Notes on the CCMD package ARL, 2/17/85: If the Lattice C compiler complains that it cannot find an included header file under MSDOS, the problem could be that your FILES limit is set too low in your \CONFIG.SYS file. This is especially likely for the system header file setjmp.h, which is included by ccmdmd.h, which is included by ccmd.h, which is included by programs using ccmd. ---------------- [i_a] Insh_Allah assorted notes start here. Sorry if there's a few rants in here too ;-) i_a 8/aug/2000: * basic stuff ported to ANSI C, prototypes added, lotsa callback proto's fixed (the function pointers everywhere; some implemented functions would accept one parameters, others three, while anybody would get three). * posted questions about tops-20 COMND JSYS in alt.folklore.computers. Got many extremely helpfull responses, especially from Hans Liss (helppages, etc.). * kicked out the setjmp/longjmp stuff; we'll see what happens when we hit that during trial debug sessions later. In the meantime I'd better think up something smart to replace this ugly behaviour. * searched for use of cmrealloc() and found cmhist() was a VERY dangerous routine, which expected the OLD h->bufs space still to be valid AFTER a cmrealloc to 'b' if the history grew! This is beyond 'yuck'! Rushed in to fix (and probably add some bugs of my own). * cmhst() should be checked very thoroughly. Should history->enabled be reset to FALSE if you specify a hitory of ZERO(0) elements to remain? * void remember(void) is not 'cool' as it enters a line into history EVERY TIME, even if that line already exists in history. So we'd better add code to filters those 'existing' lines and reshuffle(?) the history list so that the most recent used entries are at the front. (h->current - 1 ???) * Hans Liss provided me with the original COMND JSYS helppages. Which are also found in the JSYS info pages at ftp://ftp.biostat.washington.edu/pub/pdp-10/jsys/ * looks like the whole CC_HIDDEN/CC_NO_ECHO business is not feeling well. Should test how the whole reacts to hidden (inserted) default values and such as the cmcursor.c routines are not quite clear among themselves when to included char's (calculating new positions, moving to new positions, etc.) * Noise words are only printed if you hit ESC *immediately* after the closing double-quote if any argument in the 'COMMENT' command of the CCMDTEST application. This is logical as only then are all conditions so that cmnoise() actually DOES something (like print the noise words). For instance COMM[ESC] "//"[ESC] will produce both pieces of noise. COMM[ESC] "//" [ESC] will not. The last [ESC] will only produce a beep. As the parser already skipped the second cmnoise() and is now waiting for input inside the third cmparse() (second QST Quoted String argument). I don't know how to improve this behaviour (also include noise words if previous field is postfixed with extra whitespace) without hacking the whole system. And I don't understand it that well, YET. * CM_ARG: switches: we should allow for 'optional argument'. Which is what CCMD currently does anyway. It doesn't understand about mandatory arguments, though. And the flag is instead the addition of the cmswend character at the end of the sw_string switch token string. I guess I'm going to kill that behaviour (or keep it for CCMD compatiblity? naw...). * we should do something about KEY_IGN (ignore) and KEY_NOR (no recall) being the same bit in the keyword flags. Once more, an extra detailed at the original COMND JSYS documentation wouldn't hurt, I fear.