1#| -*-Scheme-*-
2
3Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
4    1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
5    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Massachusetts
6    Institute of Technology
7
8This file is part of MIT/GNU Scheme.
9
10MIT/GNU Scheme is free software; you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation; either version 2 of the License, or (at
13your option) any later version.
14
15MIT/GNU Scheme is distributed in the hope that it will be useful, but
16WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with MIT/GNU Scheme; if not, write to the Free Software
22Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
23USA.
24
25|#
26
27;;;; Autoload Definitions
28
29(declare (usual-integrations))
30
31;;; ****************
32
33(define-library 'TECHINFO-MODE
34  '("techinfo" (EDWIN)))
35
36(define-autoload-major-mode 'techinfo 'fundamental "TechInfo" 'TECHINFO-MODE
37  "Mode for accessing the TechInfo database.")
38
39(define-autoload-command 'techinfo 'TECHINFO-MODE
40  "Enter TechInfo mode.")
41
42;;; ****************
43
44(define-library 'TELNET-MODE
45  '("telnet" (EDWIN)))
46
47(define-autoload-major-mode 'telnet 'comint "Telnet" 'TELNET-MODE
48  "Major mode for interacting with the Telnet program.")
49
50(define-autoload-command 'telnet 'TELNET-MODE
51  "Telnet to remote host.")
52
53(define-variable telnet-mode-hook
54  "An event distributor that is invoked when entering Telnet mode."
55  (make-event-distributor))
56
57;;; ****************
58
59(define-library 'MIDAS-MODE
60  '("midas" (EDWIN)))
61
62(define-autoload-major-mode 'midas 'fundamental "Midas" 'MIDAS-MODE
63  "Major mode for editing assembly code.")
64
65(define-autoload-command 'midas-mode 'MIDAS-MODE
66  "Enter Midas mode.")
67
68(define-variable midas-mode-abbrev-table
69  "Mode-specific abbrev table for assembly code.")
70(define-abbrev-table 'midas-mode-abbrev-table '())
71
72(define-variable midas-mode-hook
73  "An event distributor that is invoked when entering Midas mode."
74  (make-event-distributor))
75
76;;; ****************
77
78(define-library 'PASCAL-MODE
79  '("pasmod" (EDWIN)))
80
81(define-autoload-major-mode 'pascal 'fundamental "Pascal" 'PASCAL-MODE
82  "Major mode specialized for editing Pascal code.")
83
84(define-autoload-command 'pascal-mode 'PASCAL-MODE
85  "Enter Pascal mode.")
86
87(define-variable pascal-mode-abbrev-table
88  "Mode-specific abbrev table for Pascal code.")
89(define-abbrev-table 'pascal-mode-abbrev-table '())
90
91(define-variable pascal-mode-hook
92  "An event distributor that is invoked when entering Pascal mode."
93  (make-event-distributor))
94
95(define-variable pascal-shift-increment
96  "Indentation increment for Pascal Shift commands."
97  2)
98
99(define-variable pascal-indentation-keywords
100  "These keywords cause the lines below them to be indented to the right.
101This must be a regular expression, or #F to disable the option."
102  false)
103
104;;; ****************
105
106(define-library 'TEXINFO-MODE
107  '("tximod" (EDWIN)))
108
109(define-autoload-major-mode 'texinfo 'text "Texinfo" 'TEXINFO-MODE
110  "Major mode for editing Texinfo files.")
111
112(define-autoload-command 'texinfo-mode 'TEXINFO-MODE
113  "Make the current mode be Texinfo mode.")
114
115(define-variable texinfo-mode-abbrev-table
116  "Mode-specific abbrev table for Texinfo.")
117(define-abbrev-table 'texinfo-mode-abbrev-table '())
118
119(define-variable texinfo-mode-hook
120  "An event distributor that is invoked when entering Texinfo mode."
121  (make-event-distributor))
122
123;;; ****************
124
125(define-library 'manual
126  '("manual" (EDWIN)))
127
128(define-autoload-command 'manual-entry 'MANUAL
129  "Display UNIX man page.")
130
131(define-autoload-command 'clean-manual-entry 'MANUAL
132  "Clean the unix manual entry in the current buffer.
133The current buffer should contain a formatted manual entry.")
134
135(define-variable manual-entry-reuse-buffer?
136  "If true, MANUAL-ENTRY uses buffer *Manual-Entry* for all entries.
137Otherwise, a new buffer is created for each topic."
138  false
139  boolean?)
140
141(define-variable manual-command
142  "A string containing the manual page formatting command.
143Section (if any) and topic strings are appended (with space separators)
144and the resulting string is provided to a shell running in a subprocess."
145  false
146  string-or-false?)
147
148;;; ****************
149
150(define-library 'print
151  '("print" (EDWIN)))
152
153(define-variable lpr-procedure
154  "Procedure that spools some text to the printer, or #F for the default.
155Procedure is called with four arguments: a region to be printed, a flag
156indicating that the text should be printed with page headers, a title string
157to appear in the header lines and on the title page, and the buffer in which
158the text was originally stored (for editor variable references).  If this
159variable's value is #F, the text is printed using LPR-COMMAND."
160  false
161  (lambda (object) (or (not object) (procedure? object))))
162
163(define-variable lpr-command
164  "Shell command for printing a file"
165  "lpr"
166  string?)
167
168(define-variable lpr-switches
169  "List of strings to pass as extra switch args to lpr when it is invoked."
170  '()
171  list-of-strings?)
172
173(define lpr-prompt-for-name?
174  ;; If true, lpr commands prompt for a name to appear on the title page.
175  false)
176
177(define lpr-print-not-special?
178  ;; If true, the print-* commands are just like the lpr-* commands.
179  false)
180
181(define-autoload-command 'lpr-buffer 'PRINT
182  "Print buffer contents with Unix command `lpr'.")
183
184(define-autoload-command 'print-buffer 'PRINT
185  "Print buffer contents as with Unix command `lpr -p'.")
186
187(define-autoload-command 'lpr-region 'PRINT
188  "Print region contents as with Unix command `lpr'.")
189
190(define-autoload-command 'print-region 'PRINT
191  "Print region contents as with Unix command `lpr -p'.")
192
193;;; ****************
194
195(define-library 'SORT
196  '("sort" (EDWIN)))
197
198(define-autoload-command 'sort-lines 'SORT
199  "Sort lines by their text.")
200
201(define-autoload-command 'sort-pages 'SORT
202  "Sort pages by their text.")
203
204(define-autoload-command 'sort-paragraphs 'SORT
205  "Sort paragraphs by their text.")
206
207(define-autoload-command 'sort-fields 'SORT
208  "Sort lines by the text of a field.")
209
210(define-autoload-command 'sort-numeric-fields 'SORT
211  "Sort lines by the numeric value of a field.")
212
213(define-autoload-command 'sort-columns 'SORT
214  "Sort lines by the text in a range of columns.")
215
216;;; ****************
217
218(define-library 'STEPPER
219  '("eystep" (EDWIN STEPPER)))
220
221(define-autoload-command 'step-expression 'STEPPER
222  "Single-step an expression.")
223
224(define-autoload-command 'step-last-sexp 'STEPPER
225  "Single-step the expression preceding point.")
226
227(define-autoload-command 'step-defun 'STEPPER
228  "Single-step the definition that the point is in or before.")
229
230(define-library 'PAREDIT
231  '("paredit" (EDWIN PAREDIT)))
232
233(define-autoload-minor-mode 'paredit "Paredit" 'PAREDIT
234  "Minor mode for pseudo-structurally editing Lisp code.")
235
236(define-autoload-command 'paredit-mode 'PAREDIT
237  "Toggle pseudo-structural editing of Lisp code.")
238
239;;; ****************
240
241(define-library 'NEWS-READER
242  '("nntp" (EDWIN NNTP))
243  '("snr" (EDWIN NEWS-READER)))
244
245(define-autoload-command 'rnews 'NEWS-READER
246  "Start a News reader.
247Normally uses the server specified by the variable news-server,
248but with a prefix arg prompts for the server name.
249Only one News reader may be open per server; if a previous News reader
250is open the that server, its buffer is selected.")
251
252;;; ****************
253
254(define-library 'VERILOG-MODE
255  '("verilog" (EDWIN VERILOG)))
256
257(define-autoload-major-mode 'verilog 'fundamental "Verilog" 'VERILOG-MODE
258  "Major mode specialized for editing Verilog code.")
259
260(define-autoload-command 'verilog-mode 'VERILOG-MODE
261  "Enter Verilog mode.")
262
263(define-variable verilog-mode-abbrev-table
264  "Mode-specific abbrev table for Verilog code.")
265(define-abbrev-table 'verilog-mode-abbrev-table '())
266
267(define-variable verilog-mode-hook
268  "An event distributor that is invoked when entering Verilog mode."
269  (make-event-distributor))
270
271(define-variable verilog-continued-statement-offset
272  "Extra indent for lines not starting new statements."
273  2
274  exact-nonnegative-integer?)
275
276(define-variable verilog-continued-header-offset
277  "Extra indent for continuation lines of structure headers."
278  4
279  exact-nonnegative-integer?)
280
281;;; ****************
282
283(define-library 'VHDL-MODE
284  '("vhdl" (EDWIN VHDL)))
285
286(define-autoload-major-mode 'vhdl 'fundamental "VHDL" 'VHDL-MODE
287  "Major mode specialized for editing VHDL code.")
288
289(define-autoload-command 'vhdl-mode 'VHDL-MODE
290  "Enter VHDL mode.")
291
292(define-variable vhdl-mode-abbrev-table
293  "Mode-specific abbrev table for VHDL code.")
294(define-abbrev-table 'vhdl-mode-abbrev-table '())
295
296(define-variable vhdl-mode-hook
297  "An event distributor that is invoked when entering VHDL mode."
298  (make-event-distributor))
299
300(define-variable vhdl-continued-header-offset
301  "Extra indent for continuation lines of structure headers."
302  4
303  exact-nonnegative-integer?)
304
305(define-variable vhdl-continued-statement-offset
306  "Extra indent for lines not starting new statements."
307  2
308  exact-nonnegative-integer?)
309
310;;; ****************
311
312(define-library 'WEBSTER
313  '("webster" (EDWIN)))
314
315(define-autoload-major-mode 'webster 'read-only "Webster" 'WEBSTER
316  "Major mode for interacting with webster server.")
317
318(define-autoload-command 'webster 'WEBSTER
319  "Look up a word in Webster's dictionary.")
320
321(define-autoload-command 'webster-define 'WEBSTER
322  "Look up a word in Webster's dictionary.")
323
324(define-autoload-command 'webster-endings 'WEBSTER
325  "Look up possible endings for a word in Webster's dictionary.")
326
327(define-autoload-command 'webster-spellings 'WEBSTER
328  "Look up possible correct spellings for a word in Webster's dictionary.")
329
330(define-variable webster-server
331  "Host name of a webster server, specified as a string."
332  #f
333  string-or-false?)
334
335(define-variable webster-port
336  "TCP port of webster server on webster-server, specified as an integer.
337This is usually 103 or 2627."
338  103
339  exact-nonnegative-integer?)
340
341(define-variable webster-mode-hook
342  "Hook to be run by webster-mode, after everything else."
343  (make-event-distributor))
344
345(define-variable webster-buffer-name
346  "The name to use for webster interaction buffer."
347  "*webster*"
348  string?)
349
350;;; ****************
351
352(define-library 'LISPPASTE
353  '("lisppaste" (EDWIN LISPPASTE)))
354
355(define-autoload-command 'lisppaste-channels 'LISPPASTE
356  "List all the channels supported by lisppaste in a temporary buffer.")
357
358(define-autoload-command 'lisppaste-insert-paste 'LISPPASTE
359  "Insert the numbered paste at the point.
360With a prefix argument, also show a header describing the paste.")
361
362(define-autoload-command 'lisppaste-insert-annotation 'LISPPASTE
363  "Insert the annotation of the numbered paste at the point.
364With a prefix argument, also show a header describing the annotation.")
365
366(define-autoload-command 'lisppaste-buffer 'LISPPASTE
367  "Create a new paste of the current buffer.")
368
369(define-autoload-command 'lisppaste-region 'LISPPASTE
370  "Create a new paste of the current region.")
371
372(define-autoload-command 'lisppaste-annotate-with-buffer 'LISPPASTE
373  "Annotate an existing paste with the current buffer.")
374
375(define-autoload-command 'lisppaste-annotate-with-region 'LISPPASTE
376  "Annotate an existing paste with the region.")
377
378(define-autoload-command 'lisppaste-list-pastes 'LISPPASTE
379  "List the headers of the last number of pastes.
380With a prefix argument, list pastes starting at a certain number.")
381
382(define-autoload-command 'lisppaste-list-channel-pastes 'LISPPASTE
383  "List the headers of the last few pastes in a certain channel.
384With a prefix argument, list pastes starting at a certain number.")
385
386(define-variable lisppaste-rpc-uri
387  "URI of the lisppaste XML-RPC service."
388  "http://common-lisp.net:8185/RPC2"
389  ->uri)
390
391(define-variable lisppaste-default-channel
392  "Default channel for lisppaste requests."
393  #f
394  string?)
395
396(define-variable lisppaste-default-nickname
397  "Default IRC nickname for lisppaste requests."
398  #f
399  string?)
400
401;;; ****************
402
403(define-library 'PASSWORD-EDIT
404  '("pwedit" (EDWIN PASSWORD-EDIT))
405  '("pwparse" (EDWIN PASSWORD-EDIT)))
406
407(define-autoload-command 'view-password-file 'PASSWORD-EDIT
408  "Read in a password file and show it in password-view mode.
409Reads the file specified in the variable password-file.
410If password-file is #f, or if prefix arg supplied, prompts for a filename.")
411
412(define-variable password-file
413  "Name of file containing passwords, or #F meaning prompt for name.
414If this specifies a relative pathname, it is relative to the home directory.
415See \\[view-password-file]."
416  #f
417  (lambda (object)
418    (or (not object)
419	(string? object)
420	(pathname? object))))
421
422(define-autoload-major-mode 'password-view 'read-only "Password-View"
423  'PASSWORD-EDIT
424  "Major mode specialized for viewing password files.")
425
426(define-autoload-command 'toggle-pw-form 'PASSWORD-EDIT
427  "Toggle the body of the password form under point.")
428
429(define-autoload-command 'mouse-toggle-pw-form 'PASSWORD-EDIT
430  "Toggle the body of the password form under mouse.")
431
432;;; ****************
433
434(define-library 'DEBIAN-CHANGELOG
435  '("debian-changelog" (EDWIN DEBIAN-CHANGELOG)))
436
437(define-autoload-major-mode 'debian-changelog 'text "Debian changelog"
438  'DEBIAN-CHANGELOG
439  "Major mode for editing Debian-style change logs.")
440
441(define-autoload-command 'debian-changelog-mode 'DEBIAN-CHANGELOG
442  "Enter Debian changelog mode.")
443
444(define-variable add-log-full-name
445  "Full name of user, for inclusion in ChangeLog headers.
446This defaults to the value `mail-full-name'."
447  #f
448  string-or-false?)
449
450(define-variable add-log-mailing-address
451  "Electronic mail address of user, for inclusion in ChangeLog headers.
452This defaults to the value of `user-mail-address'."
453  #f
454  string-or-false?)
455
456(define-variable debian-changelog-mode-hook
457  "An event distributor that is invoked when entering Debian changelog mode."
458  (make-event-distributor))
459
460;;;; DOS-specific commands
461
462(if (memq microcode-id/operating-system '(DOS))
463    (begin
464      (define-library 'DOSCOM
465	'("doscom" (EDWIN DOSJOB)))
466      (define-autoload-command 'shell-command 'DOSCOM
467	"Execute string COMMAND in inferior shell; display output, if any.")
468      (define-autoload-command 'shell-command-on-region 'DOSCOM
469	"Execute string COMMAND in inferior shell with region as input.")
470      (define-autoload-procedure 'shell-command '(EDWIN DOSJOB)
471	'DOSCOM)
472
473      (define-library 'DOSSHELL
474	'("dosshell" (EDWIN DOSJOB)))
475      (define-autoload-major-mode 'pseudo-shell 'fundamental "Pseudo Shell"
476	'DOSSHELL
477	"Major mode for executing DOS commands.")
478      (define-autoload-command 'shell 'DOSSHELL
479	"Run an inferior pseudo shell, with I/O through buffer *shell*.")))