|
|
1.1 root 1: ; This autoloaded file implements the "x" key of mhe: extended commands.
2: (defun
3: (&mh-extras
4: (save-excursion
5: (pop-to-buffer "mh-xcommands")
6: (use-local-map "&mh-x-keymap")
7: (if (= 0 (buffer-size))
8: (insert-string
9: "Key Meaning (Type extended command character: )\n"
10: " q Quit: get out of this extended command mode\n"
11: " p Pack the current folder (renumber messages to be 1-N)\n"
12: " c Close the current folder (process deletes and moves).\n"
13: " s Scavenge the current folder (regenerate header buffer)\n"
14: " f Show a list of the existing folders\n"
15: " l Print the current message on the line printer.\n"
16: " m Make a new folder.\n"
17: " k Kill a folder (erase it and all of its contents)\n"
18: )
19: )
20: (setq mode-line-format
21: "mhe extended command mode. Type 'q' to quit this mode %M")
22: (setq buffer-is-modified 0)
23: (beginning-of-file) (end-of-line) (backward-character)
24: (backward-character)
25: (local-bind-to-key "&mh-xpack" "p")
26: (local-bind-to-key "&mh-xclose" "c")
27: (local-bind-to-key "&mh-xscavenge" "s")
28: (local-bind-to-key "&mh-xfolders" "f")
29: (local-bind-to-key "&mh-xlprint" "l")
30: (local-bind-to-key "&mh-xmake" "m")
31: (local-bind-to-key "&mh-xkill" "k")
32: (recursive-edit)
33: (pop-to-buffer "mh-xcommands")
34: (delete-window)
35: )
36: )
37: (&mh-beep (error-message "Use 'q' to quit this extended command mode."))
38:
39: (&mh-xpack
40: (pop-to-buffer (concat "+" mh-folder))
41: (&mh-pack-folder)
42: (&mh-adjust-window)
43: (exit-emacs)
44: )
45:
46: (&mh-xclose
47: (message "C: close folder...") (sit-for 0)
48: (pop-to-buffer (concat "+" mh-folder))
49: (message "C: close folder...") (sit-for 1)
50: (&mh-close-folder)
51: (exit-emacs)
52: )
53:
54: (&mh-xscavenge sm
55: (pop-to-buffer (concat "+" mh-folder))
56: (setq sm mode-line-format)
57: (&mh-regenerate-headers)
58: (setq mode-line-format sm)
59: (exit-emacs)
60: )
61:
62: (&mh-xfolders
63: (message "F: list folders...")
64: (pop-to-buffer "mh-temp")
65: (use-local-map "&mh-keymap")
66: (erase-buffer) (sit-for 0)
67: (send-to-shell (concat mh-progs "/folders"))
68: (exit-emacs)
69: )
70:
71: (&mh-xlprint
72: (error-message "L: command not implemented.")
73: )
74:
75: (&mh-xmake exists msgg name
76: (message "M: make a new folder...")
77: (setq exists 1)
78: (setq msgg "M: make a new folder...name for it? ")
79: (while exists
80: (setq name (get-tty-string msgg))
81: (if (= 0 (length name))
82: (progn
83: (message "Aborted.") (sit-for 5)
84: (exit-emacs)))
85: (if (!= (string-to-char (substr name 1 1)) '/')
86: (setq t-buffer-filename (concat mh-path "/" name))
87: (setq t-buffer-filename name)
88: )
89: (setq exists (file-exists t-buffer-filename))
90: (if (= exists 1)
91: (setq msgg (concat "Folder +" name " already exists. Try another name? "))
92: )
93: )
94: (send-to-shell
95: (concat "mkdir " t-buffer-filename))
96: (exit-emacs)
97: )
98:
99: (&mh-xkill exists action name msgg
100: (message "K: kill a folder, erasing all of its contents...")
101: (setq exists 0)
102: (setq msgg "K: kill a folder, erasing all of its contents...which folder? ")
103: (while (! exists)
104: (setq name (get-tty-string msgg))
105: (if (= 0 (length name))
106: (progn
107: (message "Aborted.") (sit-for 5)
108: (exit-emacs)))
109: (if (!= (string-to-char (substr name 1 1)) '/')
110: (setq t-buffer-filename (concat mh-path "/" name))
111: (setq t-buffer-filename name)
112: )
113: (setq exists (file-exists t-buffer-filename))
114: (if (= exists 0)
115: (setq msgg (concat "Folder +" name " does not exist. Try another name? "))
116: )
117: )
118: (setq action
119: (get-response (concat "Do you really want to destroy folder +"
120: name " and all its contents? ")
121: "yYnN\3" "Please answer y or n"))
122: (if (= name "inbox")
123: (setq action
124: (get-response "That's your one and only inbox you are asking me to destroy. Still sure? "
125: "yYnN\3" "Please answer y or n: destroy inbox??? ")))
126: (if (= action 'y')
127: (progn
128: (send-to-shell (concat "rmf +" name))
129: (message "OK, the deed is done... +" name " destroyed.")
130: )
131: (message "Nothing has been destroyed.")
132: )
133: (sit-for 10)
134: (exit-emacs)
135: )
136: )
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.