|
|
1.1 ! root 1: ; emh-send.ml :: implements the emh send commands ! 2: ; Wed Oct 5 03:43:43 1983 /mtr <mrose@uci-750a> ! 3: ! 4: ! 5: (declare-buffer-specific &mhdraft &mhprocess) ! 6: ! 7: (defun ! 8: ! 9: (&mh-comp &args &buffer &components ! 10: (setq &args ! 11: (if (| prefix-argument-provided (> (nargs) 0)) ! 12: (arg 1 ": mh-comps (args) ") "components")) ! 13: (if (! (file-exists (setq &components (&mh-path &args)))) ! 14: (if (!= &args "components") ! 15: (error-message "no such file as " &components) ! 16: (if (! (file-exists ! 17: (setq &components "/usr/local/lib/mh/components"))) ! 18: (error-message "no default components file")))) ! 19: (setq &buffer (&mh-unique "compose")) ! 20: (error-occured (delete-buffer &buffer)) ! 21: (pop-to-buffer &buffer) ! 22: (provide-prefix-argument 0 (&mh-finish-build &components)) ! 23: ! 24: (novalue) ! 25: ) ! 26: ! 27: (&mh-forw &args &buffer &folder &msg ! 28: (setq &args ! 29: (if (| prefix-argument-provided (> (nargs) 0)) ! 30: (arg 1 ": mh-forw (args) ") "")) ! 31: (save-excursion ! 32: (pop-to-buffer (&mh-cur-folder)) ! 33: (setq &folder &mhfolder)) ! 34: (setq &msg (&mh-cur-message)) ! 35: (if (>= (process-status ! 36: (setq &buffer (concat "forward " &folder "/" &msg))) 0) ! 37: (error-message "already doing forw " &msg)) ! 38: (save-excursion ! 39: (temp-use-buffer &buffer) ! 40: (if (>= (process-status &mhprocess) 0) ! 41: (error-message "already posting a draft for " &msg))) ! 42: (error-occured (delete-buffer &buffer)) ! 43: (save-excursion ! 44: (temp-use-buffer &buffer) ! 45: (setq needs-checkpointing 0) ! 46: (erase-buffer) ! 47: (setq &mhfolder &folder) ! 48: (setq &mhmsg &msg) ! 49: (&mh-start-process ! 50: (concat "forw " &folder " " &msg ! 51: (if (!= &args "") (concat " " &args) "") " -build") ! 52: &buffer) ! 53: (insert-sentinel &buffer "&mh-forw-sentinel") ! 54: (setq mode-string "Starting") ! 55: (setq mode-line-format " %b: forw (status: %m) %M")) ! 56: (&mh-set-cur &msg) ! 57: ! 58: (novalue) ! 59: ) ! 60: ! 61: (&mh-forw-sentinel &flag &text ! 62: (setq &flag (>> prefix-argument 16)) ! 63: (setq &text (process-output)) ! 64: (save-excursion ! 65: (temp-use-buffer MPX-process) ! 66: (setq mode-string (substr &text 1 (- (length &text) 1))) ! 67: (if (= mode-string "Exited") ! 68: (provide-prefix-argument 1 (&mh-finish-build "draft")))) ! 69: (dot-is-visible) ; hack... ! 70: (if (bitwise-and &flag 12) ! 71: (save-excursion (pop-to-buffer MPX-process) (beginning-of-file))) ! 72: ) ! 73: ! 74: (&mh-repl &args &buffer &folder &msg ! 75: (setq &args ! 76: (if (| prefix-argument-provided (> (nargs) 0)) ! 77: (arg 1 ": mh-repl (args) ") "")) ! 78: (save-excursion ! 79: (pop-to-buffer (&mh-cur-folder)) ! 80: (setq &folder &mhfolder)) ! 81: (setq &msg (&mh-cur-message)) ! 82: (if (>= (process-status ! 83: (setq &buffer (concat "reply " &folder "/" &msg))) 0) ! 84: (error-message "already doing repl " &msg)) ! 85: (save-excursion ! 86: (temp-use-buffer &buffer) ! 87: (if (>= (process-status &mhprocess) 0) ! 88: (error-message "already posting a reply to " &msg))) ! 89: (error-occured (delete-buffer &buffer)) ! 90: (save-excursion ! 91: (temp-use-buffer &buffer) ! 92: (setq needs-checkpointing 0) ! 93: (erase-buffer) ! 94: (setq &mhfolder &folder) ! 95: (setq &mhmsg &msg) ! 96: (&mh-start-process ! 97: (concat "repl " &folder " " &msg ! 98: (if (!= &args "") (concat " " &args) "") " -build") ! 99: &buffer) ! 100: (insert-sentinel &buffer "&mh-repl-sentinel") ! 101: (setq mode-string "Starting") ! 102: (setq mode-line-format " %b: repl (status: %m) %M")) ! 103: (&mh-set-cur &msg) ! 104: ! 105: (novalue) ! 106: ) ! 107: ! 108: (&mh-repl-sentinel &flag &text ! 109: (setq &flag (>> prefix-argument 16)) ! 110: (setq &text (process-output)) ! 111: (save-excursion ! 112: (temp-use-buffer MPX-process) ! 113: (setq mode-string (substr &text 1 (- (length &text) 1))) ! 114: (if (= mode-string "Exited") ! 115: (provide-prefix-argument 1 (&mh-finish-build "reply")))) ! 116: (dot-is-visible) ; hack... ! 117: (if (bitwise-and &flag 12) ! 118: (save-excursion (pop-to-buffer MPX-process) (beginning-of-file))) ! 119: ) ! 120: ! 121: (&mh-finish-build &file &remove ! 122: (setq &file (&mh-path (arg 1 ": mh-finish-build (from file) "))) ! 123: (setq &remove prefix-argument) ! 124: (remove-all-local-bindings) ! 125: (setq mode-string "Normal") ! 126: (if (file-exists &file) ! 127: (progn ! 128: (erase-buffer) ! 129: (insert-file &file) ! 130: (error-occured ! 131: (if (is-bound &mh-draft-automode) ! 132: (execute-mlisp-line &mh-draft-automode) ! 133: (text-mode))) ! 134: (setq mode-line-format ! 135: " %b*: ^X-^S to post (%m) %M %[%p%]") ! 136: (local-bind-to-key "&mh-send" "\^X\^S") ! 137: (local-bind-to-key "&mh-@-show" "\^X@") ! 138: (if &remove ! 139: (unlink-file &file))) ! 140: (setq mode-line-format " %b: build of draft failed %M")) ! 141: ) ! 142: ! 143: (&mh-send &args &buffer &draft &file ! 144: (setq &args ! 145: (if (| prefix-argument-provided (> (nargs) 0)) ! 146: (arg 1 ": mh-send (args) ") "")) ! 147: (if (>= (process-status &mhprocess) 0) ! 148: (error-message "already sending draft")) ! 149: (write-named-file ! 150: (setq &file (concat &mhpath (setq &buffer (&mh-unique &mhexec))))) ! 151: (error-occured (delete-buffer (setq &mhprocess &buffer))) ! 152: (setq &draft (current-buffer-name)) ! 153: (setq mode-line-format ! 154: " %b*: posting in progress (%m) %M %[%p%]") ! 155: (delete-window) ! 156: (save-excursion ! 157: (temp-use-buffer &buffer) ! 158: (setq needs-checkpointing 0) ! 159: (erase-buffer) ! 160: (setq &mhdraft &draft) ! 161: (local-bind-to-key "&mh-@-show" "\^X@") ! 162: (&mh-start-process ! 163: (concat "send " &file (if (!= &args "") (concat " " &args) "")) ! 164: &buffer) ! 165: (insert-sentinel &buffer "&mh-send-sentinel") ! 166: (setq mode-string "Starting") ! 167: (setq mode-line-format ! 168: (concat " %b: send of " &draft " (status: %m) %M"))) ! 169: ! 170: (novalue) ! 171: ) ! 172: ! 173: (&mh-send-sentinel &flag &text ! 174: (setq &flag (>> prefix-argument 16)) ! 175: (setq &text (process-output)) ! 176: (save-excursion ! 177: (temp-use-buffer MPX-process) ! 178: (setq mode-string (substr &text 1 (- (length &text) 1)))) ! 179: (dot-is-visible) ; hack... ! 180: (if (bitwise-and &flag 12) ! 181: (save-excursion ! 182: (pop-to-buffer MPX-process) ! 183: (beginning-of-file) ! 184: (save-excursion ! 185: (temp-use-buffer &mhdraft) ! 186: (if (file-exists (current-file-name)) ! 187: (setq mode-line-format ! 188: (concat " %b: posting of draft in " ! 189: MPX-process " failed (%m) %M %[%p%]")) ! 190: (delete-buffer (current-buffer-name)))))) ! 191: ) ! 192: ! 193: (&mh-@-show ! 194: (if ! 195: (& (!= &mhfolder "") (!= &mhmsg "")) ! 196: (progn (&mh-set-cur &mhmsg) (&mh-show)) ! 197: (!= &mhdraft "") ! 198: (if (error-occured (next-buffer-name &mhdraft)) ! 199: (save-excursion (pop-to-buffer &mhdraft)) ! 200: (error-message "no draft message")) ! 201: (error-message "no target message")) ! 202: ! 203: (novalue) ! 204: ) ! 205: ) ! 206: ! 207: (novalue)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.