Fixes for Sparc systems
This commit is contained in:
parent
80b71dc43a
commit
3b40aba444
@ -4304,6 +4304,8 @@ v0.33.19 26-Oct-2001
|
|||||||
Changed users password length to 14 characters instead of 12.
|
Changed users password length to 14 characters instead of 12.
|
||||||
When you make a tty line available, some settings are
|
When you make a tty line available, some settings are
|
||||||
automatic set to reasonable defaults.
|
automatic set to reasonable defaults.
|
||||||
|
The color editor now has a rangecheck.
|
||||||
|
Rewrote calling of the color editor for Sparc systems.
|
||||||
|
|
||||||
mbsebbs:
|
mbsebbs:
|
||||||
Added menu 317, change FS editor shortcut keys to (Emacs/
|
Added menu 317, change FS editor shortcut keys to (Emacs/
|
||||||
|
@ -1442,14 +1442,14 @@ void show_aka(int y, int x, fidoaddr aka)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void edit_color(int *fg, int *bg, char *help)
|
void edit_color(int *fg, int *bg, char *title, char *help)
|
||||||
{
|
{
|
||||||
int ch, f, b;
|
int ch, f, b;
|
||||||
char temp[81];
|
char temp[81];
|
||||||
|
|
||||||
clr_index();
|
clr_index();
|
||||||
set_color(WHITE, BLACK);
|
set_color(WHITE, BLACK);
|
||||||
mvprintw(5, 6, "1.8 EDIT COLORS");
|
mvprintw(5, 6, title);
|
||||||
sprintf(temp, "Change the ^%s^ color with arrow keys, press <Enter> whene done", help);
|
sprintf(temp, "Change the ^%s^ color with arrow keys, press <Enter> whene done", help);
|
||||||
showhelp(temp);
|
showhelp(temp);
|
||||||
|
|
||||||
@ -1458,15 +1458,16 @@ void edit_color(int *fg, int *bg, char *help)
|
|||||||
set_color(f, b);
|
set_color(f, b);
|
||||||
mvprintw(b + 9, f + 33, ".");
|
mvprintw(b + 9, f + 33, ".");
|
||||||
}
|
}
|
||||||
f = (* fg);
|
|
||||||
b = (* bg);
|
f = (*fg) & 15;
|
||||||
|
b = (*bg) & 7;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
set_color(f, b);
|
set_color(f, b);
|
||||||
mvprintw(7, 6, "This is an example...");
|
mvprintw(7, 6, "This is an example...");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
mvprintw(b + 9, f + 33, "*");
|
mvprintw(b + 9, f + 33, "*");
|
||||||
ch = readkey(7,28,f,b);
|
ch = readkey(7,28, f, b);
|
||||||
mvprintw(b + 9, f + 33, ".");
|
mvprintw(b + 9, f + 33, ".");
|
||||||
switch(ch) {
|
switch(ch) {
|
||||||
case KEY_LINEFEED:
|
case KEY_LINEFEED:
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
/* $Id$ */
|
||||||
|
|
||||||
#ifndef _LEDIT_H
|
#ifndef _LEDIT_H
|
||||||
#define _LEDIT_H
|
#define _LEDIT_H
|
||||||
|
|
||||||
@ -58,7 +60,7 @@ char *getmagictype(int);
|
|||||||
void show_magictype(int, int, int);
|
void show_magictype(int, int, int);
|
||||||
int edit_magictype(int, int, int);
|
int edit_magictype(int, int, int);
|
||||||
void show_aka(int, int, fidoaddr);
|
void show_aka(int, int, fidoaddr);
|
||||||
void edit_color(int *, int *, char *);
|
void edit_color(int *, int *, char *, char *);
|
||||||
char *get_color(int);
|
char *get_color(int);
|
||||||
char *getmenutype(int);
|
char *getmenutype(int);
|
||||||
|
|
||||||
|
@ -436,6 +436,14 @@ void e_newuser(void)
|
|||||||
|
|
||||||
void e_colors(void)
|
void e_colors(void)
|
||||||
{
|
{
|
||||||
|
int fg, bg;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* With this macro intermediate variables are passed to the color editor to prevent SIGBUS
|
||||||
|
* on some CPU's (Sparc).
|
||||||
|
*/
|
||||||
|
#define ED_COL(f, b, t, h) fg = f; bg = b; edit_color(&fg, &bg, (char *)t, (char *)h); f = fg; b = bg; break;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
clr_index();
|
clr_index();
|
||||||
set_color(WHITE, BLACK);
|
set_color(WHITE, BLACK);
|
||||||
@ -466,17 +474,17 @@ void e_colors(void)
|
|||||||
|
|
||||||
switch(select_menu(11)) {
|
switch(select_menu(11)) {
|
||||||
case 0: return;
|
case 0: return;
|
||||||
case 1: edit_color(&CFG.TextColourF, &CFG.TextColourB, (char *)"normal text"); break;
|
case 1: ED_COL(CFG.TextColourF, CFG.TextColourB, "1.8.1 EDIT COLOR", "normal text")
|
||||||
case 2: edit_color(&CFG.UnderlineColourF, &CFG.UnderlineColourB, (char *)"underline"); break;
|
case 2: ED_COL(CFG.UnderlineColourF, CFG.UnderlineColourB, "1.8.2 EDIT COLOR", "underline")
|
||||||
case 3: edit_color(&CFG.InputColourF, &CFG.InputColourB, (char *)"input"); break;
|
case 3: ED_COL(CFG.InputColourF, CFG.InputColourB, "1.8.3 EDIT COLOR", "input")
|
||||||
case 4: edit_color(&CFG.CRColourF, &CFG.CRColourB, (char *)"<Carriage Return>"); break;
|
case 4: ED_COL(CFG.CRColourF, CFG.CRColourB, "1.8.4 EDIT COLOR", "<Carriage Return>")
|
||||||
case 5: edit_color(&CFG.MoreF, &CFG.MoreB, (char *)"more prompt"); break;
|
case 5: ED_COL(CFG.MoreF, CFG.MoreB, "1.8.5 EDIT COLOR", "more prompt")
|
||||||
case 6: edit_color(&CFG.HiliteF, &CFG.HiliteB, (char *)"hilite text"); break;
|
case 6: ED_COL(CFG.HiliteF, CFG.HiliteB, "1.8.6 EDIT COLOR", "hilite text")
|
||||||
case 7: edit_color(&CFG.FilenameF, &CFG.FilenameB, (char *)"file name"); break;
|
case 7: ED_COL(CFG.FilenameF, CFG.FilenameB, "1.8.7 EDIT COLOR", "file name")
|
||||||
case 8: edit_color(&CFG.FilesizeF, &CFG.FilesizeB, (char *)"file size"); break;
|
case 8: ED_COL(CFG.FilesizeF, CFG.FilesizeB, "1.8.8 EDIT COLOR", "file size")
|
||||||
case 9: edit_color(&CFG.FiledateF, &CFG.FiledateB, (char *)"file date"); break;
|
case 9: ED_COL(CFG.FiledateF, CFG.FiledateB, "1.8.9 EDIT COLOR", "file date")
|
||||||
case 10:edit_color(&CFG.FiledescF, &CFG.FiledescB, (char *)"file description"); break;
|
case 10:ED_COL(CFG.FiledescF, CFG.FiledescB, "1.8.10 EDIT COLOR", "file description")
|
||||||
case 11:edit_color(&CFG.MsgInputColourF, &CFG.MsgInputColourB, (char *)"message input"); break;
|
case 11:ED_COL(CFG.MsgInputColourF, CFG.MsgInputColourB, "1.8.11 EDIT COLOR", "message input")
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -209,6 +209,8 @@ int GetMenuType(void)
|
|||||||
void Edit_A_Menu(void);
|
void Edit_A_Menu(void);
|
||||||
void Edit_A_Menu(void)
|
void Edit_A_Menu(void)
|
||||||
{
|
{
|
||||||
|
int fg, bg;
|
||||||
|
|
||||||
Show_A_Menu();
|
Show_A_Menu();
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@ -226,15 +228,23 @@ void Edit_A_Menu(void)
|
|||||||
break;
|
break;
|
||||||
case 3: E_STR( 9,16,64, menus.OptionalData, "The ^optional data^ for this menu item")
|
case 3: E_STR( 9,16,64, menus.OptionalData, "The ^optional data^ for this menu item")
|
||||||
case 4: E_STR(11,16,64, menus.Display, "The text to ^display^ for this menu")
|
case 4: E_STR(11,16,64, menus.Display, "The text to ^display^ for this menu")
|
||||||
case 5: E_SEC(12,16, menus.MenuSecurity, "7.3.5 MENU ACCESS SECURITY", Show_A_Menu)
|
case 5: E_SEC(12,16, menus.MenuSecurity, "8.3.5 MENU ACCESS SECURITY", Show_A_Menu)
|
||||||
case 6: E_INT(13,16, menus.Age, "The minimum ^Age^ to select this menu, 0 is don't care")
|
case 6: E_INT(13,16, menus.Age, "The minimum ^Age^ to select this menu, 0 is don't care")
|
||||||
case 7: E_INT(14,16, menus.MaxSecurity, "The maximum ^Security level^ to access this menu")
|
case 7: E_INT(14,16, menus.MaxSecurity, "The maximum ^Security level^ to access this menu")
|
||||||
case 8: E_STR(15,16,14, menus.Password, "The ^password^ to access this menu item")
|
case 8: E_STR(15,16,14, menus.Password, "The ^password^ to access this menu item")
|
||||||
case 9: E_INT(16,16, menus.Credit, "The ^credit cost^ for this menu item")
|
case 9: E_INT(16,16, menus.Credit, "The ^credit cost^ for this menu item")
|
||||||
case 10:edit_color(&menus.ForeGnd, &menus.BackGnd, (char *)"normal");
|
case 10:fg = menus.ForeGnd;
|
||||||
|
bg = menus.BackGnd;
|
||||||
|
edit_color(&fg, &bg, (char *)"8.3.10 EDIT COLOR", (char *)"normal");
|
||||||
|
menus.ForeGnd = fg;
|
||||||
|
menus.BackGnd = bg;
|
||||||
Show_A_Menu();
|
Show_A_Menu();
|
||||||
break;
|
break;
|
||||||
case 11:edit_color(&menus.HiForeGnd, &menus.HiBackGnd, (char *)"bright");
|
case 11:fg = menus.HiForeGnd;
|
||||||
|
bg = menus.HiBackGnd;
|
||||||
|
edit_color(&fg, &bg, (char *)"8.3.11 EDIT COLOR", (char *)"bright");
|
||||||
|
menus.HiForeGnd = fg;
|
||||||
|
menus.HiBackGnd = bg;
|
||||||
Show_A_Menu();
|
Show_A_Menu();
|
||||||
break;
|
break;
|
||||||
case 12:E_BOOL(19,16, menus.AutoExec, "Is this an ^Autoexecute^ menu item")
|
case 12:E_BOOL(19,16, menus.AutoExec, "Is this an ^Autoexecute^ menu item")
|
||||||
@ -339,7 +349,7 @@ void EditMenu(char *Name)
|
|||||||
if ((fil = fopen(temp, "w+")) == NULL) {
|
if ((fil = fopen(temp, "w+")) == NULL) {
|
||||||
working(2, 0, 0);
|
working(2, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
Syslog('+', "Updated menu %s", temp);
|
Syslog('+', "Updated menu %s (%s)", temp, lang.Name);
|
||||||
fseek(tmp, 0, SEEK_SET);
|
fseek(tmp, 0, SEEK_SET);
|
||||||
while (fread(&menus, sizeof(menus), 1, tmp) == 1) {
|
while (fread(&menus, sizeof(menus), 1, tmp) == 1) {
|
||||||
if (menus.MenuKey[0] || menus.AutoExec)
|
if (menus.MenuKey[0] || menus.AutoExec)
|
||||||
|
@ -74,12 +74,15 @@ static int old_b = -1;
|
|||||||
|
|
||||||
void set_color(int f, int b)
|
void set_color(int f, int b)
|
||||||
{
|
{
|
||||||
if ((f != old_f) || (b != old_b)) {
|
f = f & 15;
|
||||||
old_f = f;
|
b = b & 7;
|
||||||
old_b = b;
|
|
||||||
colour(f, b);
|
if ((f != old_f) || (b != old_b)) {
|
||||||
fflush(stdout);
|
old_f = f;
|
||||||
}
|
old_b = b;
|
||||||
|
colour(f, b);
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user