1: /************************************************************************* 2: * This program is copyright (C) 1985, 1986 by Jonathan Payne. It is * 3: * provided to you without charge for use only on a licensed Unix * 4: * system. You may copy JOVE provided that this notice is included with * 5: * the copy. You may not sell copies of this program or versions * 6: * modified for use on microcomputer systems, unless the copies are * 7: * included with a Unix system distribution and the source is provided. * 8: *************************************************************************/ 9: 10: #include "jove.h" 11: 12: struct variable variables[] = { 13: VARIABLE, "allow-^S-and-^Q", &OKXonXoff, V_BOOL|V_TTY_RESET, 14: VARIABLE, "allow-bad-filenames", &OkayBadChars, V_BOOL, 15: #ifdef ABBREV 16: VARIABLE, "auto-case-abbrev", &AutoCaseAbbrev, V_BOOL, 17: #endif 18: #ifdef F_COMPLETION 19: VARIABLE, "bad-filename-extensions", (int *) BadExtensions, V_STRING, 20: #endif 21: VARIABLE, "c-indentation-increment", &CIndIncrmt, V_BASE10, 22: VARIABLE, "case-ignore-search", &CaseIgnore, V_BOOL, 23: #ifdef CMT_FMT 24: VARIABLE, "comment-format", (int *) CmtFmt, V_STRING, 25: #endif 26: #ifdef BIFF 27: VARIABLE, "disable-biff", &BiffChk, V_BOOL, 28: #endif 29: VARIABLE, "error-window-size", &EWSize, V_BASE10, 30: VARIABLE, "file-creation-mode", &CreatMode, V_BASE8, 31: VARIABLE, "files-should-end-with-newline", &EndWNewline, V_BOOL, 32: VARIABLE, "internal-tabstop", &tabstop, V_BASE10|V_CLRSCREEN, 33: VARIABLE, "left-margin", &LMargin, V_BASE10, 34: VARIABLE, "mailbox", (int *) Mailbox, V_STRING, 35: VARIABLE, "mail-check-frequency", (int *) &MailInt, V_BASE10, 36: #ifdef BACKUPFILES 37: VARIABLE, "make-backup-files", &BkupOnWrite, V_BOOL, 38: #endif 39: VARIABLE, "mark-threshold", &MarkThresh, V_BASE10, 40: VARIABLE, "marks-should-float", &MarksShouldFloat, V_BOOL, 41: VARIABLE, "match-regular-expressions", &UseRE, V_BOOL, 42: VARIABLE, "meta-key", &MetaKey, V_BOOL|V_TTY_RESET, 43: VARIABLE, "mode-line", (int *) ModeFmt, V_STRING|V_MODELINE, 44: VARIABLE, "mode-line-should-standout", &BriteMode, V_BOOL|V_MODELINE, 45: VARIABLE, "paren-flash-delay", &PDelay, V_BASE10, 46: VARIABLE, "physical-tabstop", &phystab, V_BASE10|V_CLRSCREEN, 47: #ifdef IPROCS 48: VARIABLE, "process-prompt", (int *) proc_prompt, V_STRING, 49: #endif 50: VARIABLE, "right-margin", &RMargin, V_BASE10, 51: VARIABLE, "scroll-step", &ScrollStep, V_BASE10, 52: VARIABLE, "search-exit-char", &SExitChar, V_CHAR, 53: VARIABLE, "send-typeout-to-buffer", &UseBuffers, V_BOOL, 54: VARIABLE, "shell", (int *) Shell, V_STRING, 55: VARIABLE, "shell-flags", (int *) ShFlags, V_STRING, 56: VARIABLE, "sync-frequency", &SyncFreq, V_BASE10, 57: VARIABLE, "tag-file", (int *) TagFile, V_STRING, 58: VARIABLE, "update-time-frequency", &UpdFreq, V_BASE10, 59: #ifdef ID_CHAR 60: VARIABLE, "use-i/d-char", &UseIC, V_BOOL, 61: #endif 62: VARIABLE, "visible-bell", &VisBell, V_BOOL, 63: VARIABLE, "wrap-search", &WrapScan, V_BOOL, 64: VARIABLE, "write-files-on-make", &WtOnMk, V_BOOL, 65: VARIABLE, 0, 0, 0 66: }; 67: 68: data_obj * 69: findvar(prompt) 70: char *prompt; 71: { 72: static char *strings[(sizeof variables) / sizeof (struct variable)]; 73: static int beenhere = 0; 74: register int com; 75: 76: if (beenhere == 0) { 77: register char **strs = strings; 78: register struct variable *v = variables; 79: 80: beenhere = 1; 81: for (; v->Name; v++) 82: *strs++ = v->Name; 83: *strs = 0; 84: } 85: 86: if ((com = complete(strings, prompt)) < 0) 87: return 0; 88: return (data_obj *) &variables[com]; 89: }