HELP file modification to "month" program
Jeff Bauer
bauer at eta.UUCP
Tue Oct 21 02:22:13 AEST 1986
Got tired of squinting at the cheat_sheet, so modified that nice "month"
calendar routine posted earlier to read a HELP file via the "?" key.
After unpacking the below shell archive via sh, apply the user.c.diff
mods to user.c and re-make. You will have to install the HELP file in
the directory specified via the HELPFILE constant in help.c, or modify it
to your own tastes.
Apologies to the original author and descendant modifiers when appropriate.
#---------- CUT HERE --------- CUT HERE ---------- CUT HERE -------- OUCH !
#!/bin/sh
#
# This is a shell archive.
#
# Files generated - Makefile (modified from original; added help.c)
# user.c.diff (mods needed for HELP support)
# help.c (new module that displays HELP file)
# month.hf (HELP file - old cheat_sheet cleaned up)
#
echo -x - Makefile
cat > Makefile << END-OF-FILE
MONTH_OBJS = display.o lunar.o month.o psched.o schedule.o time.o user.o help.o
CC = cc
# define BSDFLG if target system is Berkeley 4.2
BSDFLG = -DBSD
CFLAGS = -O -c $(BSDFLG)
LIBS = -lm -lcurses $(LIB2)
# undefine LIB2 if target system is Pyramid SystemV Universe
# Note: some systems may require termlib instead of termcap
LIB2 = -ltermcap
month: $(MONTH_OBJS)
$(CC) $(MONTH_OBJS) $(LIBS) -o month
display.o: display.c month.h
$(CC) $(CFLAGS) display.c
lunar.o: lunar.c
$(CC) $(CFLAGS) lunar.c
help.o: help.c
$(CC) $(CFLAGS) help.c
month.o: month.c month.h
$(CC) $(CFLAGS) month.c
psched.o: psched.c month.h
$(CC) $(CFLAGS) psched.c
schedule.o: schedule.c month.h
$(CC) $(CFLAGS) schedule.c
time.o: time.c month.h
$(CC) $(CFLAGS) time.c
user.o: user.c month.h
$(CC) $(CFLAGS) user.c
END-OF-FILE
echo -x - user.c.diff
cat > user.c.diff << END-OF-FILE
169,174d168
< case 'B':
< psched();
< break;
< case '?':
< help();
< break;
176,179d169
< standout();
< mvaddstr(23,60," Press ? for HELP");
< standend();
< refresh();
181a172,174
> case 'B':
> psched();
> break;
356c349
< addstr(" -MORE-");
---
> addstr(" -more-");
END-OF-FILE
echo -x - help.c
cat > help.c << END-OF-FILE
#include <curses.h>
#define LINES 24
#define WIDTH 80
#define BUFSIZE LINES * WIDTH /* one screenful of help */
#define HELPFILE "/usr/local/month.hf"
extern FILE *fopen();
extern int fread();
help()
{
static FILE *helpf = NULL;
static char buffer[BUFSIZE];
clear();
standout();
mvaddstr(0,25," Keys and their Functions");
standend();
if (helpf == NULL) {
helpf = fopen(HELPFILE,"r");
if (helpf == NULL) mvaddstr(12,30,"HELP file unavailable!");
else {
fread(&buffer, BUFSIZE, 1, helpf);
mvaddstr(1,0,buffer);
}
}
else {
mvaddstr(1,0,buffer);
}
standout();
mvaddstr(23,18," Press any key to return to your calendar.");
standend();
refresh();
get_char();
clear();
print_screen();
}
END-OF-FILE
echo -x - month.hf
cat > month.hf << END-OF-FILE
h, l, k, j - move cursor left, right, up, down
<CR> and <LF> - select items/commands/scroll-areas
0-9 - direct entry of date or marker numbers
/ - directly type in complete date (i.e. 5/6/86) | <ESC> - abort function
<SPACE>/<BACKSPACE> - scroll hours/minutes forward/backward
m, d - and y - move into the months, days, years areas
n or +, p or '-' - go to the next or previous month, day, or year
M - mark the currently displayed date | G - go to a previously marked date
; - go to last visited date outside of currently displayed month
T - go to today's actual date (initial date displayed)
O - display schedule grid for currently displayed day
A - show days in current month that have items scheduled
S - scan the events for the currently displayed day
+ + In the scan + +
n : go to next event p : go to previous event d : delete this event
e : edit this event q : quit the scan <ESC>: same as 'q'
E - scan every stored event
P - post an event (see man page)
L - print picture of moon for 11:00 PM of current day
Q - quit, store any event changes
^L, ^R - redraw screen (including this page)
^C, ^\ - quit, ignore any event changes
END-OF-FILE
exit 0
#---------- CUT HERE --------- CUT HERE ---------- CUT HERE -------- OUCH !
--
---------------------------------------------------------------------------
Jeff Bauer UUCP: {ihnp4!rosevax, caip!meccts}!eta!bauer
ETA Systems, Inc. USPS: ETA03J, 1450 Energy Park Dr, St Paul, MN 55108
The New Force in Supercomputers
More information about the Comp.sources.unix
mailing list