home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / jove-4.16-src.tgz / tar.out / bsd / jove / xjove / jovemenu.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  21KB  |  608 lines

  1. /***************************************************************************
  2.  * This program is Copyright (C) 1991-1996 by C.H.Lindsey, University of   *
  3.  * Manchester.  (X)JOVETOOL is provided to you without charge, and with no *
  4.  * warranty.  You may give away copies of (X)JOVETOOL, including sources,  *
  5.  * provided that this notice is included in all the files, except insofar  *
  6.  * as a more specific copyright notices attaches to the file (x)jovetool.c *
  7.  ***************************************************************************/
  8.  
  9. /*
  10.  * Note that the key bindings shown in the various menus below include some
  11.  * for the Sun function keys. These presuppose that the provided jove.rc.sun
  12.  * or jove.rc.sun-cmd (or even jove.rc.xterm) is being used. If some other
  13.  * conventional binding is in use locally, this file should be ammended
  14.  * accordingly.
  15.  *
  16.  * The following commands are not given menu items.
  17.  * - because they involve some kind of self-insertion:
  18.  *    digit-[0-9]
  19.  *    digit-minus
  20.  *    paren-flash
  21.  *    self-insert
  22.  *
  23.  * - because it is not usefully executed:
  24.  *    unbound
  25.  *
  26.  * - because they are mouse actions:
  27.  *    xj-mouse-copy-cut
  28.  *    xj-mouse-line
  29.  *    xj-mouse-mark
  30.  *    xj-mouse-point
  31.  *    xj-mouse-word
  32.  *    xj-mouse-yank
  33.  *    xt-mouse-mark
  34.  *    xt-mouse-point
  35.  *    xt-mouse-up
  36.  *
  37.  *
  38.  * The "xt-mouse" variable is not supported because it doesn't
  39.  * apply to this "terminal".
  40.  */
  41.  
  42. VARPROC(var_variables_proc, variables_menu)
  43. VARPROC(var_files_proc, var_files_menu)
  44. VARPROC(var_modes_proc, var_modes_menu)
  45. VARPROC(var_move_proc, var_move_menu)
  46. VARPROC(var_search_proc, var_search_menu)
  47. VARPROC(var_process_proc, var_process_menu)
  48. VARPROC(var_compile_proc, var_compile_menu)
  49. VARPROC(var_format_proc, var_format_menu)
  50. VARPROC(var_misc_proc, var_misc_menu)
  51.  
  52. void
  53. menu_init()
  54. {
  55.     describing = printing = 0;
  56.  
  57.     empty_menu_item = menu_create_item(
  58.         MENU_STRING, "", MENU_CLIENT_DATA, "",
  59.         MENU_NOTIFY_PROC, print_client_data, 0
  60.         );
  61.  
  62.     empty_menu = menu_create(
  63.             MENU_APPEND_ITEM, empty_menu_item,
  64.         0);
  65.  
  66.     on_off_menu = menu_create(
  67.         MENU_NOTIFY_PROC, menu_return_item,
  68.             MENU_APPEND_ITEM, empty_menu_item,
  69.             MENU_ITEM, MENU_STRING, "on", MENU_CLIENT_DATA, "on", MENU_ACTION_PROC, sp_printit,  0,
  70.             MENU_ITEM, MENU_STRING, "off", MENU_CLIENT_DATA, "off", MENU_ACTION_PROC, sp_printit, 0,
  71.         0);
  72.  
  73. VARGROUP(var_files_menu)
  74.             VARIBOOL("allow-bad-characters-in-filenames")
  75. #ifdef F_COMPLETION
  76.             VARIABLE("bad-filename-extensions")
  77.             VARIBOOL("display-filenames-with-bad-extensions")
  78.             VARIBOOL("expand-environment-variables")
  79. #endif
  80. #ifndef MSDOS
  81.             VARIABLE("file-creation-mode")
  82. #endif
  83.             VARIBOOL("files-should-end-with-newline")
  84. #ifdef BACKUPFILES
  85.             VARIBOOL("make-backup-files")
  86. #endif
  87.             VARIABLE("tag-file")
  88.     0);
  89.  
  90. VARGROUP(var_modes_menu)
  91.             VARIABLE("c-argument-indentation")
  92.             VARIABLE("c-indentation-increment")
  93.             VARIABLE("paren-flash-delay")
  94.     0);
  95.  
  96. VARGROUP(var_move_menu)
  97.             VARIABLE("mark-threshold")
  98.             VARIBOOL("scroll-all-lines")
  99. #ifdef    HIGHLIGHTING
  100.             VARIBOOL("scroll-bar")
  101. #endif
  102.             VARIABLE("scroll-step")
  103.     0);
  104.  
  105. VARGROUP(var_search_menu)
  106.             VARIBOOL("case-ignore-search")
  107.             VARIBOOL("match-regular-expressions")
  108.             VARIABLE("search-exit-char")
  109.             VARIBOOL("wrap-search")
  110.     0);
  111.  
  112. VARGROUP(var_process_menu)
  113. #ifdef IPROCS
  114.             VARIABLE("dbx-format-string")
  115. #endif
  116. #ifdef IPROCS
  117.             VARIABLE("process-prompt")
  118. #endif
  119. #ifdef SUBSHELL
  120.             VARIABLE("shell")
  121.             VARIABLE("shell-flags")
  122. #endif
  123.             VARIBOOL("send-typeout-to-buffer")
  124. #if defined(SUBSHELL) || defined(IPROCS)
  125.             VARIBOOL("wrap-process-lines")
  126. #endif
  127.     0);
  128.  
  129. VARGROUP(var_compile_menu)
  130.             VARIABLE("error-format-string")
  131.             VARIABLE("error-window-size")
  132. #ifdef SUBSHELL
  133.             VARIBOOL("write-files-on-make")
  134. #endif
  135.     0);
  136.  
  137. VARGROUP(var_format_menu)
  138. #ifdef CMT_FMT
  139.             VARIABLE("comment-format")
  140. #endif
  141.             VARIABLE("left-margin")
  142.             VARIABLE("paragraph-delimiter-pattern")
  143.             VARIABLE("right-margin")
  144.             VARIBOOL("space-sentence-2")
  145.             VARIABLE("tab-width")
  146.     0);
  147.  
  148. VARGROUP(var_abbrev_menu)
  149. #ifdef ABBREV
  150.             VARIBOOL("auto-case-abbrev")
  151. #endif
  152.     0);
  153.  
  154. VARGROUP(var_misc_menu)
  155.             VARIABLE("abort-char")
  156. #ifdef UNIX
  157.             VARIBOOL("allow-^S-and-^Q")
  158. #endif /* UNIX */
  159. #ifdef BIFF
  160.             VARIBOOL("disable-biff")
  161. #endif
  162. #ifdef IBMPCDOS
  163.             VARIBOOL("enhanced-keyboard")
  164. #endif
  165. #ifdef HIGHLIGHTING
  166. # ifdef IBMPCDOS
  167.             VARIABLE("highlight-attribute")
  168. # endif
  169.             VARIABLE("highlight-mark")
  170. #endif /* HIGHLIGHTING */
  171. #ifdef    UNIX
  172.             VARIABLE("interrupt-character")
  173. #endif    /* UNIX */
  174. #if defined(USE_CTYPE) && !defined(NO_SETLOCALE)
  175.             VARIABLE("lc-ctype")
  176. #endif
  177. #ifdef MAC
  178.             VARIBOOL("macify")
  179. #endif
  180. #ifdef UNIX
  181.             VARIABLE("mailbox")
  182.             VARIABLE("mail-check-frequency")
  183. #endif /* UNIX */
  184.             VARIBOOL("meta-key")
  185.             VARIABLE("mode-line")
  186. #ifdef IBMPCDOS
  187.             VARIABLE("mode-line-attribute")
  188. #endif
  189.             VARIBOOL("mode-line-should-standout")
  190.             VARIBOOL("one-key-confirmation")
  191. #ifdef RECOVER
  192.             VARIABLE("sync-frequency")
  193. #endif /* RECOVER */
  194. #ifdef IBMPCDOS
  195.             VARIABLE("text-attribute")
  196. #endif /* IBMPCDOS */
  197.             VARIABLE("tmp-file-pathname")
  198. #ifdef UNIX
  199.             VARIABLE("update-time-frequency")
  200. #endif /* UNIX */
  201. #ifdef ID_CHAR
  202.             VARIBOOL("use-i/d-char")
  203. #endif
  204.             VARIBOOL("visible-bell")
  205.     0);
  206.  
  207.     variables_menu = menu_create(
  208.         MENU_NOTIFY_PROC, print_client_data,
  209.         MENU_APPEND_ITEM, empty_menu_item,
  210.         GROUPNAME(var_files_menu, "Files")
  211.         GROUPNAME(var_modes_menu, "Modes")
  212.         GROUPNAME(var_move_menu, "Movement")
  213.         GROUPNAME(var_search_menu, "Search/Replace")
  214.         GROUPNAME(var_process_menu, "Processes/Shell")
  215.         GROUPNAME(var_compile_menu, "Compiling")
  216.         GROUPNAME(var_format_menu, "Formatting")
  217. #if defined(ABBREV)
  218.         GROUPNAME(var_abbrev_menu, "Abbreviations")
  219. #endif
  220.         GROUPNAME(var_misc_menu, "Miscellaneous")
  221.         0);
  222.  
  223. GROUP(help_menu)
  224.     MENU_GEN_PROC, do_describing_proc,
  225.     FUNCPULLPROC(" E ? describe-command", "describe-command",  commands_proc)
  226.     FUNCPULL("     describe-variable", "describe-variable",  variables_menu)
  227.     FUNCTION("^X ? describe-key", "describe-key")
  228.     FUNCTION("     describe-bindings", "describe-bindings")
  229.     FUNCTION("     apropos", "apropos")
  230.     FUNCTION("Help keychart (mac)", "execute-macro keychart")
  231.     0);
  232.  
  233. GROUP(file_menu)
  234.     FUNCTION("     append-region", "append-region")
  235.     FUNCTION("     auto-execute-command", "auto-execute-command")
  236.     FUNCTION("     auto-execute-macro", "auto-execute-macro")
  237.     FUNCTION("F12  find-file", "find-file")
  238.     FUNCTION("^X T find-tag", "find-tag")
  239.     FUNCTION("     find-tag-at-point", "find-tag-at-point")
  240.     FUNCTION("^X^I insert-file", "insert-file")
  241.     FUNCTION("^X^S save-file", "save-file")
  242.     FUNCTION("^X^V visit-file", "visit-file")
  243.     FUNCTION("^X^W write-file", "write-file")
  244.     FUNCTION("^X^M write-modified-files", "write-modified-files")
  245.     FUNCTION("     write-region", "write-region")
  246.     FUNCPULLPROC("VARS print", "print",  var_files_proc)
  247.     FUNCPULLPROC("VARS set", "set",  var_files_proc)
  248.     0);
  249.  
  250. GROUP(mode_menu)
  251. #if defined(LISP)
  252.     FUNCTION("     add-lisp-special", "add-lisp-special")
  253. #endif
  254.     FUNCTION("     auto-fill-mode", "auto-fill-mode")
  255.     FUNCTION("     auto-indent-mode", "auto-indent-mode")
  256.     FUNCTION("     c-mode", "c-mode")
  257.     FUNCTION("     fundamental-mode", "fundamental-mode")
  258. #if defined(LISP)
  259.     FUNCTION("     lisp-mode", "lisp-mode")
  260. #endif
  261.     FUNCTION("L1   over-write-mode", "over-write-mode")
  262. #if defined(IPROCS)
  263.     FUNCTION("     process-dbx-output", "process-dbx-output")
  264. #endif
  265.     FUNCTION("     read-only-mode", "read-only-mode")
  266.     FUNCTION("     show-match-mode", "show-match-mode")
  267.     FUNCTION("     text-mode", "text-mode")
  268.     FUNCPULLPROC("VARS print", "print",  var_modes_proc)
  269.     FUNCPULLPROC("VARS set", "set",  var_modes_proc)
  270.     0);
  271.  
  272. GROUP(move_menu)
  273.     FUNCTION("<-   backward-character", "backward-character")
  274.     FUNCTION("R2   backward-list", "backward-list")
  275.     FUNCTION("     backward-paragraph", "backward-paragraph")
  276.     FUNCTION(" E^B backward-s-expression", "backward-s-expression")
  277.     FUNCTION(" E A backward-sentence", "backward-sentence")
  278.     FUNCTION(" E^U backward-up-list", "backward-up-list")
  279.     FUNCTION("R6   backward-word", "backward-word")
  280.     FUNCTION("R7   beginning-of-file", "beginning-of-file")
  281.     FUNCTION("R1   beginning-of-line", "beginning-of-line")
  282.     FUNCTION(" E , beginning-of-window", "beginning-of-window")
  283.     FUNCTION(" E^D down-list", "down-list")
  284.     FUNCTION("R13  end-of-file", "end-of-file")
  285.     FUNCTION("R4   end-of-line", "end-of-line")
  286.     FUNCTION(" E . end-of-window", "end-of-window")
  287.     FUNCTION(" E M first-non-blank", "first-non-blank")
  288.     FUNCTION("->   forward-character", "forward-character")
  289.     FUNCTION("R5   forward-list", "forward-list")
  290.     FUNCTION(" E ] forward-paragraph", "forward-paragraph")
  291.     FUNCTION(" E^F forward-s-expression", "forward-s-expression")
  292.     FUNCTION(" E E forward-sentence", "forward-sentence")
  293.     FUNCTION("R6   forward-word", "forward-word")
  294.     FUNCTION(" E G goto-line", "goto-line")
  295.     FUNCTION("DOWN next-line", "next-line")
  296.     FUNCTION("R15  next-page", "next-page")
  297.     FUNCTION("UP   previous-line", "previous-line")
  298.     FUNCTION("R9   previous-page", "previous-page")
  299.     FUNCTION("KP_- scroll-down", "scroll-down")
  300.     FUNCTION("     scroll-left", "scroll-left")
  301.     FUNCTION("     scroll-right", "scroll-right")
  302.     FUNCTION("KP_+ scroll-up", "scroll-up")
  303.     FUNCTION("     shift-region-left", "shift-region-left")
  304.     FUNCTION("     shift-region-right", "shift-region-right")
  305.     FUNCPULLPROC("VARS print", "print",  var_move_proc)
  306.     FUNCPULLPROC("VARS set", "set",  var_move_proc)
  307.     0);
  308.  
  309. GROUP(bind_menu)
  310.     FUNCTION("     bind-keymap-to-key", "bind-keymap-to-key")
  311.     FUNCTION("     bind-macro-to-key", "bind-macro-to-key")
  312. #if defined(ABBREV)
  313.     FUNCTION("     bind-macro-to-word-abbrev", "bind-macro-to-word-abbrev")
  314. #endif
  315.     FUNCTION("     bind-to-key", "bind-to-key")
  316.     FUNCTION("     local-bind-keymap-to-key", "local-bind-keymap-to-key")
  317.     FUNCTION("     local-bind-macro-to-key", "local-bind-macro-to-key")
  318.     FUNCTION("     local-bind-to-key", "local-bind-to-key")
  319.     FUNCTION("     process-bind-keymap-to-key", "process-bind-keymap-to-key")
  320.     FUNCTION("     process-bind-macro-to-key", "process-bind-macro-to-key")
  321.     FUNCTION("     process-bind-to-key", "process-bind-to-key")
  322.     0);
  323.  
  324. GROUP(macro_menu)
  325.     FUNCTION("^X ( begin-kbd-macro", "begin-kbd-macro")
  326.     FUNCTION("     define-macro", "define-macro")
  327.     FUNCTION("^X ) end-kbd-macro", "end-kbd-macro")
  328.     FUNCTION("^X E execute-kbd-macro", "execute-kbd-macro")
  329.     FUNCTION("     execute-macro", "execute-macro")
  330.     FUNCTION(" E I make-macro-interactive", "make-macro-interactive")
  331.     FUNCTION("     name-kbd-macro", "name-kbd-macro")
  332.     FUNCTION("     start-remembering", "start-remembering")
  333.     FUNCTION("     stop-remembering", "stop-remembering")
  334.     FUNCTION("     write-macros-to-file", "write-macros-to-file")
  335.     0);
  336.  
  337. GROUP(buffer_menu)
  338.     FUNCTION("     buffer-position", "buffer-position")
  339.     FUNCTION("^X K delete-buffer", "delete-buffer")
  340.     FUNCTION("     erase-buffer", "erase-buffer")
  341.     FUNCTION("     kill-some-buffers", "kill-some-buffers")
  342.     FUNCTION("F10  list-buffers", "list-buffers")
  343.     FUNCTION("     make-buffer-unmodified", "make-buffer-unmodified")
  344.     FUNCTION("     rename-buffer", "rename-buffer")
  345.     FUNCTION("F11  select-buffer", "select-buffer")
  346.     FUNCTION("     select-buffer-1", "select-buffer-1")
  347.     FUNCTION("     select-buffer-2", "select-buffer-2")
  348.     FUNCTION("     select-buffer-3", "select-buffer-3")
  349.     FUNCTION("     select-buffer-4", "select-buffer-4")
  350.     FUNCTION("     select-buffer-5", "select-buffer-5")
  351.     FUNCTION("     select-buffer-6", "select-buffer-6")
  352.     FUNCTION("     select-buffer-7", "select-buffer-7")
  353.     FUNCTION("     select-buffer-8", "select-buffer-8")
  354.     FUNCTION("     select-buffer-9", "select-buffer-9")
  355.     FUNCTION("     select-buffer-10", "select-buffer-10")
  356.     0);
  357.  
  358. GROUP(window_menu)
  359.     FUNCTION("F4   delete-other-windows", "delete-other-windows")
  360.     FUNCTION("F5   delete-current-window", "delete-current-window")
  361.     FUNCTION("     goto-window-with-buffer", "goto-window-with-buffer")
  362.     FUNCTION("F6   grow-window", "grow-window")
  363.     FUNCTION("F3   next-window", "next-window")
  364.     FUNCTION("     number-lines-in-window", "number-lines-in-window")
  365.     FUNCTION(" E^V page-next-window", "page-next-window")
  366.     FUNCTION("^X P previous-window", "previous-window")
  367.     FUNCTION("     shrink-window", "shrink-window")
  368.     FUNCTION("F2   split-current-window", "split-current-window")
  369.     FUNCTION("     visible-spaces-in-window", "visible-spaces-in-window")
  370.     FUNCTION("^X 4 window-find", "window-find")
  371.     0);
  372.  
  373. GROUP(mark_menu)
  374.     FUNCTION("     case-region-lower", "case-region-lower")
  375.     FUNCTION("     case-region-upper", "case-region-upper")
  376.     FUNCTION("L6   copy-region", "copy-region")
  377.     FUNCTION("L4   exchange-point-and-mark", "exchange-point-and-mark")
  378. #if defined(SUBSHELL)
  379.     FUNCTION("     filter-region", "filter-region")
  380. #endif
  381.     FUNCTION("L10  kill-region", "kill-region")
  382.     FUNCTION("     pop-mark", "pop-mark")
  383.     FUNCTION("     replace-in-region", "replace-in-region")
  384.     FUNCTION("L3   set-mark", "set-mark")
  385.     FUNCTION("L8   yank", "yank")
  386.     FUNCTION(" E Y yank-pop", "yank-pop")
  387.     0);
  388.  
  389. GROUP(edit_menu)
  390.     FUNCTION("     case-character-capitalize", "case-character-capitalize")
  391.     FUNCTION("     case-region-lower", "case-region-lower")
  392.     FUNCTION("     case-region-upper", "case-region-upper")
  393.     FUNCTION(" E C case-word-capitalize", "case-word-capitalize")
  394.     FUNCTION(" E L case-word-lower", "case-word-lower")
  395.     FUNCTION(" E U case-word-upper", "case-word-upper")
  396.     FUNCTION("     character-to-octal-insert", "character-to-octal-insert")
  397.     FUNCTION("^X^O delete-blank-lines", "delete-blank-lines")
  398.     FUNCTION("KP_. kill-line (mac)", "execute-macro kill-line")
  399.     FUNCTION("  ^D delete-next-character", "delete-next-character")
  400.     FUNCTION("DEL  delete-previous-character", "delete-previous-character")
  401.     FUNCTION(" E \\ delete-white-space", "delete-white-space")
  402.     FUNCTION(" E D kill-next-word", "kill-next-word")
  403.     FUNCTION(" EDL kill-previous-word", "kill-previous-word")
  404.     FUNCTION(" E^K kill-s-expression", "kill-s-expression")
  405.     FUNCTION("^XDL kill-to-beginning-of-sentence", "kill-to-beginning-of-sentence")
  406.     FUNCTION("  ^K kill-to-end-of-line", "kill-to-end-of-line")
  407.     FUNCTION(" E K kill-to-end-of-sentence", "kill-to-end-of-sentence")
  408.     FUNCTION("RET  newline", "newline")
  409.     FUNCTION("KP_0 newline-and-backup", "newline-and-backup")
  410.     FUNCTION("LF   newline-and-indent", "newline-and-indent")
  411.     FUNCTION("  ^Q quoted-insert", "quoted-insert")
  412.     FUNCTION("  ^T transpose-characters", "transpose-characters")
  413.     FUNCTION("^X^T transpose-lines", "transpose-lines")
  414.     0);
  415.  
  416. GROUP(directory_menu)
  417.     FUNCTION("     cd", "cd")
  418.     FUNCTION("     dirs", "dirs")
  419.     FUNCTION("     popd", "popd")
  420.     FUNCTION("     pushd", "pushd")
  421.     FUNCTION("     pushlibd", "pushlibd")
  422.     FUNCTION("     pwd", "pwd")
  423.     0);
  424.  
  425. GROUP(compile_menu)
  426. #if defined(SUBSHELL)
  427.     FUNCTION("^X^E compile-it", "compile-it")
  428. #endif
  429.     FUNCTION("     current-error", "current-error")
  430.     FUNCTION("^X^N next-error", "next-error")
  431.     FUNCTION("     parse-errors", "parse-errors")
  432. #if defined(SPELL)
  433.     FUNCTION("     parse-spelling-errors-in-buffer", "parse-spelling-errors-in-buffer")
  434. #endif
  435.     FUNCTION("^X^P previous-error", "previous-error")
  436. #if defined(SPELL)
  437.     FUNCTION("F7   spell-buffer", "spell-buffer")
  438.     FUNCPULLPROC("VARS print", "print",  var_compile_proc)
  439.     FUNCPULLPROC("VARS set", "set",  var_compile_proc)
  440.     0);
  441.  
  442. GROUP(format_menu)
  443. #if defined(CMT_FMT)
  444.     FUNCTION("F8   fill-comment", "fill-comment")
  445. #endif /* CMT_FMT */
  446.     FUNCTION("F9   fill-paragraph", "fill-paragraph")
  447.     FUNCTION("     fill-region", "fill-region")
  448. #if defined(LISP)
  449.     FUNCTION("     grind-s-expr", "grind-s-expr")
  450. #endif
  451.     FUNCTION("TAB  handle-tab", "handle-tab")
  452.     FUNCTION("     left-margin-here", "left-margin-here")
  453.     FUNCTION("     right-margin-here", "right-margin-here")
  454. #endif
  455.     FUNCPULLPROC("VARS print", "print",  var_format_proc)
  456.     FUNCPULLPROC("VARS set", "set",  var_format_proc)
  457.     0);
  458.  
  459. GROUP(search_menu)
  460.     FUNCTION("     i-search-forward", "i-search-forward")
  461.     FUNCTION("     i-search-reverse", "i-search-reverse")
  462.     FUNCTION(" E Q query-replace-string", "query-replace-string")
  463.     FUNCTION("     replace-in-region", "replace-in-region")
  464.     FUNCTION(" E R replace-string", "replace-string")
  465.     FUNCTION("L9   search-forward", "search-forward")
  466.     FUNCTION("     search-forward-nd", "search-forward-nd")
  467.     FUNCTION("EL9  search-reverse", "search-reverse")
  468.     FUNCTION("     search-reverse-nd", "search-reverse-nd")
  469.     FUNCPULLPROC("VARS print", "print",  var_search_proc)
  470.     FUNCPULLPROC("VARS set", "set",  var_search_proc)
  471.     0);
  472.  
  473. GROUP(process_menu)
  474. #if defined(PTYPROCS)
  475.     FUNCTION("     continue-process", "continue-process")
  476.     FUNCTION("^C^Y dstop-process", "dstop-process")
  477.     FUNCTION("^C^D eof-process", "eof-process")
  478. #endif
  479. #if defined(IPROCS)
  480.     FUNCTION("     i-shell-command", "i-shell-command")
  481.     FUNCTION("^C^C interrupt-process", "interrupt-process")
  482.     FUNCTION("     kill-process", "kill-process")
  483.     FUNCTION("     list-processes", "list-processes")
  484.     FUNCTION("CR   process-newline", "process-newline")
  485.     FUNCTION("     process-send-data-no-return", "process-send-data-no-return")
  486. #endif
  487. #if defined(SUBSHELL)
  488.     FUNCTION("     push-shell", "push-shell")
  489. #endif
  490. #if defined(IPROCS)
  491.     FUNCTION("^C^\\ quit-process", "quit-process")
  492. #endif
  493. #if defined(IPROCS)    /* for GNU compatibility */
  494.     FUNCTION("Ent  shell", "shell")
  495. #endif
  496. #if defined(SUBSHELL)
  497.     FUNCTION("^X ! shell-command", "shell-command")
  498.     FUNCTION("     shell-command-no-buffer", "shell-command-no-buffer")
  499.     FUNCTION("     shell-command-to-buffer", "shell-command-to-buffer")
  500.     FUNCTION("     shell-command-with-typeout", "shell-command-with-typeout")
  501. #endif
  502. #if defined(PTYPROCS)
  503.     FUNCTION("^C^Z stop-process", "stop-process")
  504. #endif
  505.     FUNCPULLPROC("VARS print", "print",  var_process_proc)
  506.     FUNCPULLPROC("VARS set", "set",  var_process_proc)
  507.     0);
  508.  
  509. GROUP(abbrev_menu)
  510. #if defined(ABBREV)
  511.     FUNCTION("     define-global-word-abbrev", "define-global-word-abbrev")
  512.     FUNCTION("     define-mode-word-abbrev", "define-mode-word-abbrev")
  513.     FUNCTION("     edit-word-abbrevs", "edit-word-abbrevs")
  514.     FUNCTION("     read-word-abbrev-file", "read-word-abbrev-file")
  515.     FUNCTION("     word-abbrev-mode", "word-abbrev-mode")
  516.     FUNCTION("     write-word-abbrev-file", "write-word-abbrev-file")
  517. #endif
  518.     0);
  519.  
  520. GROUP(misc_menu)
  521.     FUNCTION(" E^L clear-and-redraw", "clear-and-redraw")
  522.     FUNCTION("     date", "date")
  523.     FUNCTION("     execute-named-command", "execute-named-command")
  524.     FUNCTION("^X^C exit-jove", "exit-jove")
  525.     FUNCTION("  ^U gather-numeric-argument", "gather-numeric-argument")
  526. #if defined(JOB_CONTROL)
  527.     FUNCTION(" E S pause-jove", "pause-jove")
  528. #else
  529. #    ifndef MAC
  530.     FUNCTION(" E S pause-jove", "pause-jove")
  531. #    endif
  532. #endif
  533.     FUNCTION("     recursive-edit", "recursive-edit")
  534.     FUNCTION("  ^L redraw-display", "redraw-display")
  535.     FUNCTION("     source", "source")
  536.     FUNCTION("     string-length", "string-length")
  537. #if defined(JOB_CONTROL)
  538.     FUNCTION("     suspend-jove", "suspend-jove")
  539. #endif
  540.     FUNCTION("     version", "version")
  541.     FUNCPULLPROC("VARS print", "print",  var_misc_proc)
  542.     FUNCPULLPROC("VARS set", "set",  var_misc_proc)
  543.     0);
  544.  
  545.     main_menu = menu_create(
  546. #ifndef    SUNVIEW
  547.         XV_FONT, font,    /* not in SunView */
  548. #endif
  549.         MENU_NOTIFY_PROC, main_notify,
  550.             GROUPNAME(help_menu, "Help")
  551.             GROUPNAME(file_menu, "Files")
  552.             GROUPNAME(directory_menu, "Directories")
  553.             GROUPNAME(mode_menu, "Modes")
  554.             GROUPNAME(move_menu, "Movement")
  555.             GROUPNAME(edit_menu, "Editing")
  556.             GROUPNAME(search_menu, "Search/Replace")
  557.             GROUPNAME(buffer_menu, "Buffers")
  558.             GROUPNAME(window_menu, "Windows")
  559.             GROUPNAME(mark_menu, "Mark/Region")
  560.             GROUPNAME(process_menu, "Processes/Shell")
  561.             GROUPNAME(compile_menu, "Compiling/Spell")
  562.             GROUPNAME(format_menu, "Formatting")
  563.             GROUPNAME(macro_menu, "Macros")
  564. #if defined(ABBREV)
  565.             GROUPNAME(abbrev_menu, "Abbreviations")
  566. #endif
  567.             GROUPNAME(bind_menu, "Binding")
  568.             GROUPNAME(misc_menu, "Miscellaneous")
  569.             FUNCPULLPROC("VARS print", "print",  var_variables_proc)
  570.             FUNCPULLPROC("VARS set", "set",  var_variables_proc)
  571.         0);
  572.  
  573. GROUP(another_help_menu)
  574.     FUNCTION(" E ? describe-command", "describe-command")
  575.     FUNCTION("     describe-variable", "describe-variable")
  576.     FUNCTION("^X ? describe-key", "describe-key")
  577.     FUNCTION("     describe-bindings", "describe-bindings")
  578.     FUNCTION("     apropos", "apropos")
  579.     0);
  580.  
  581.     commands_menu = menu_create(
  582.         MENU_NOTIFY_PROC, sp_printit,
  583.             MENU_APPEND_ITEM, empty_menu_item,
  584.             GROUPNAME(another_help_menu, "Help")
  585.             GROUPNAME(file_menu, "Files")
  586.             GROUPNAME(directory_menu, "Directories")
  587.             GROUPNAME(mode_menu, "Modes")
  588.             GROUPNAME(move_menu, "Movement")
  589.             GROUPNAME(edit_menu, "Editing")
  590.             GROUPNAME(search_menu, "Search/Replace")
  591.             GROUPNAME(buffer_menu, "Buffers")
  592.             GROUPNAME(window_menu, "Windows")
  593.             GROUPNAME(mark_menu, "Mark/Region")
  594.             GROUPNAME(process_menu, "Processes/Shell")
  595.             GROUPNAME(compile_menu, "Compiling/Spell")
  596.             GROUPNAME(format_menu, "Formatting")
  597.             GROUPNAME(macro_menu, "Macros")
  598. #if defined(ABBREV)
  599.             GROUPNAME(abbrev_menu, "Abbreviations")
  600. #endif
  601.             GROUPNAME(bind_menu, "Binding")
  602.             GROUPNAME(misc_menu, "Miscellaneous")
  603.             FUNCTION("VARS print", "print")
  604.             FUNCTION("VARS set", "set")
  605.         0);
  606.  
  607. }
  608.