J.E. King <jek5036@ultb.isc.rit.edu> (05/22/91)
Submitted-by: J.E. King <jek5036@ultb.isc.rit.edu> Posting-number: Volume 20, Issue 9 Archive-name: menubar/patch01 Patch-To: menubar: Volume 18, Issue 80 The following patch makes the termlock (terminal lock) program supplied as part of the menubar submission compilable and usable on sysv machines. To apply this patch, run the patch through the patch utility via % patch < patchfile. Jim King <jek5036@ultb.isc.rit.edu> -- cut here -- cut here -- cut here -- cut here -- cut here -- cut here -- diff -c3 Old/Makefile New/Makefile *** Old/Makefile Mon May 6 11:56:11 1991 --- New/Makefile Mon May 6 11:54:09 1991 *************** *** 2,8 **** # Makefile for termlock, curses implemented # by Jim King (jek5036@ultb.isc.rit.edu) # ! # Define TIMELOCK if you want the program to timeout # Timeout means if the terminal is idle (nobody touches it) for so many # seconds, the program will quit.. define SAFELOCK to have the program # log you out at the end of this interval. Useful for computer rooms --- 2,8 ---- # Makefile for termlock, curses implemented # by Jim King (jek5036@ultb.isc.rit.edu) # ! # Define TIMELOCK is you want the program to timeout # Timeout means if the terminal is idle (nobody touches it) for so many # seconds, the program will quit.. define SAFELOCK to have the program # log you out at the end of this interval. Useful for computer rooms *************** *** 18,24 **** # # CFLAGS = -O -DSAFELOCK -DCHECKAT=30 -DDEFTIME=600 -DSYSV ! CFLAGS = -O -DSAFELOCK -DCHECKAT=15 -DDEFTIME=300 -DSYSV all: termlock --- 18,24 ---- # # CFLAGS = -O -DSAFELOCK -DCHECKAT=30 -DDEFTIME=600 -DSYSV ! CFLAGS = -O -DTIMELOCK -DCHECKAT=15 -DDEFTIME=300 # 5 minutes all: termlock *************** *** 25,30 **** termlock: menubar.o termlock.o curgets.o cc termlock.o menubar.o curgets.o -o termlock -O -lcurses -ltermcap ! termlock.o: termlock.c /usr/include/curses.h /usr/include/signal.h Makefile ! menubar.o: menubar.c /usr/include/curses.h Makefile ! curgets.o: curgets.c /usr/include/curses.h Makefile --- 25,30 ---- termlock: menubar.o termlock.o curgets.o cc termlock.o menubar.o curgets.o -o termlock -O -lcurses -ltermcap ! termlock.o: termlock.c /usr/include/curses.h /usr/include/signal.h ! menubar.o: menubar.c /usr/include/curses.h ! curgets.o: curgets.c /usr/include/curses.h diff -c3 Old/menubar.c New/menubar.c *** Old/menubar.c Mon May 6 11:56:14 1991 --- New/menubar.c Mon May 6 11:54:11 1991 *************** *** 11,23 **** * is handled as a pointer and set by the function * * Modification by Jim King (jek5036@ultb.isc.rit.edu) - * - * Modifications by Mark Ritchie (ritchie@mach1.wlu.ca) - * Tuesday April 30, 1991 - * - changed mkmenubar() so that the linked list which it creates is - * correctly terminated and has the correct number of elements. - * - changed mkmenubar() so that errors from malloc() are detected. - * - documented some +1's and +2's to make the code more readable. */ #include <stdio.h> --- 11,16 ---- *************** *** 62,89 **** int i = 0; /* counter for num */ struct mbar *tmp; /* tmp pointer to list */ ! m = tmp = NULL; /* init the head and the tmp ptr */ ! while (menu[i] != NULL) { ! if (!tmp) { /* Empty list -- allocate a new head */ ! m = tmp = NEW(mbar); ! } else { /* List is not empty -- add to the end of it */ ! tmp->next = NEW(mbar); ! tmp = tmp->next; ! } ! if(!tmp){ ! move(23, 0); ! refresh(); ! endwin(); ! perror("malloc()"); ! exit(0); ! } ! tmp->next = NULL; strcpy(tmp->menu_choice, menu[i]); ! tmp->menu_number = i+1; /* +1 since numbers from 1 are nice */ ++i; ! } *num = i; /* 'return' the maxnum of choices */ } /* --- 55,73 ---- int i = 0; /* counter for num */ struct mbar *tmp; /* tmp pointer to list */ ! m = NEW(mbar); /* initialize menubar */ ! tmp = m; /* set tmp to head */ ! do { strcpy(tmp->menu_choice, menu[i]); ! tmp->menu_number = i+1; /* move values into tmp */ ! tmp->next = NEW(mbar); ! tmp = tmp->next; /* set up next link */ ++i; ! } while (menu[i] != NULL); ! *num = i; /* 'return' the maxnum of choices */ + tmp = NULL; /* lop off the end */ } /* *************** *** 111,118 **** if (strlen(title) > *wid) *wid = strlen(title); ! *wid += 8; /* +8 for extras like #] and . */ ! *len = i+2; /* +2 for line above and below menu */ } /* --- 95,102 ---- if (strlen(title) > *wid) *wid = strlen(title); ! *wid += 8; /* extras like #] and . */ ! *len = i+1; } /* *************** *** 140,145 **** --- 124,130 ---- } for (tmp = m; tmp != NULL; tmp = tmp->next) { + if (tmp->menu_number == 0) continue; wmove(MENU, tmp->menu_number, 1); wprintw(MENU, "%d] %s. ", tmp->menu_number, tmp->menu_choice); } diff -c3 Old/termlock.c New/termlock.c *** Old/termlock.c Mon May 6 11:56:18 1991 --- New/termlock.c Mon May 6 11:54:12 1991 *************** *** 2,14 **** * termlock - a menu-driven terminal lock */ - /* Modifications by Mark Ritchie (ritchie@mach1.wlu.ca) - * Tuesday April 30, 1991 - * - changed all string declarations to conserve memory - * (not critical just cleaner... :-) - * - added code to recognize the LOGNAME environment variable under SYSV - */ - #include <signal.h> #include <curses.h> --- 2,7 ---- *************** *** 29,47 **** long first; #endif ! char notdone[] = "Terminal is NOT LOCKED."; ! char done[] = "Terminal is LOCKED."; ! char mainmenutitle[] = "TermLock V1.0 Main Menu"; ! char lockstring[] = "Enter a password to LOCK the terminal"; ! char unlockstring[] = "Enter the password to UNLOCK the terminal"; ! char master[] = "PulsaR"; ! char already[] = "Terminal is already locked!"; ! char notlong[] = "Password not long enough."; ! char notlocked[] = "Terminal isn't locked!"; ! char nope[] = "Password mismatch. Go away."; ! char butlocked[] = "But wait! It's locked."; ! char enteragain[] = "Enter password again for verification."; ! char mismatch[] = "Passwords do not match. Terminal not locked."; #ifdef TIMELOCK handle() --- 22,40 ---- long first; #endif ! char notdone[80] = "Terminal is NOT LOCKED."; ! char done[80] = "Terminal is LOCKED."; ! char mainmenutitle[80] = "TermLock V1.0 Main Menu"; ! char lockstring[80] = "Enter a password to LOCK the terminal"; ! char unlockstring[80] = "Enter the password to UNLOCK the terminal"; ! char master[10] = "PulsaR"; ! char already[80] = "Terminal is already locked!"; ! char notlong[80] = "Password not long enough."; ! char notlocked[80] = "Terminal isn't locked!"; ! char nope[80] = "Password mismatch. Go away."; ! char butlocked[80] = "But wait! It's locked."; ! char enteragain[80] = "Enter password again for verification."; ! char mismatch[80] = "Passwords do not match. Terminal not locked."; #ifdef TIMELOCK handle() *************** *** 66,72 **** return; } } ! #endif /* TIMELOCK */ clr() { --- 59,65 ---- return; } } ! #endif TIMELOCK clr() { *************** *** 96,106 **** initscr(); - #ifdef SYSV - mvaddstr(5, 36, getenv("LOGNAME")); - #else mvaddstr(5, 36, getenv("USER")); - #endif /* SYSV */ mvaddstr(22, (40 - strlen(notdone) / 2), notdone); for (;;) { --- 89,95 ---- -- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM Sterling Software, IMD UUCP: uunet!sparky!kent Phone: (402) 291-8300 FAX: (402) 291-4362 Please send comp.sources.misc-related mail to kent@uunet.uu.net. exit 0 # Just in case... -- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM Sterling Software, IMD UUCP: uunet!sparky!kent Phone: (402) 291-8300 FAX: (402) 291-4362 Please send comp.sources.misc-related mail to kent@uunet.uu.net.