Mercurial > hg > xemacs-beta
comparison lisp/startup.el @ 4448:fd8a9a4d81d9
Support #!, to allow XEmacs to be called as a script interpreter.
ChangeLog addition:
2008-01-20 Aidan Kehoe <kehoea@parhasard.net>
* Makefile.in.in (SHEBANG_PROGNAME):
New variable; a symbol link to the XEmacs binary to tell it it
should read a script from stdin.
* configure.ac (XE_EXPAND_VARIABLE):
Set SHEBANG_PROGNAME.
* configure:
Regenerate.
src/ChangeLog addition:
2008-01-20 Aidan Kehoe <kehoea@parhasard.net>
* config.h.in: Add SHEBANG_PROGNAME.
* emacs.c (main_1):
If we've been called using SHEBANG_PROGNAME, rewrite our arguments
to add a --script argument.
Also, handle the --script argument by setting noninteractive and
vanilla.
* lread.c (Fload_internal):
If the first two characters of a file are #!, replace them with ;!
before they get to the Lisp reader.
lisp/ChangeLog addition:
2008-01-20 Aidan Kehoe <kehoea@parhasard.net>
* startup.el (command-line-do-script): New.
(command-switch-alist): Use command-line-do-script.
New argument, compatible with GNU; --script or -script says "treat
the following argument as a file to load in batch mode".
man/ChangeLog addition:
2008-01-20 Aidan Kehoe <kehoea@parhasard.net>
* xemacs/cmdargs.texi (Command Switches):
Describe --script, -script.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 20 Jan 2008 19:53:54 +0100 |
parents | 6b571dc4ba3f |
children | e34711681f30 |
comparison
equal
deleted
inserted
replaced
4408:8bbabcab2c42 | 4448:fd8a9a4d81d9 |
---|---|
232 ("-f" . command-line-do-funcall) | 232 ("-f" . command-line-do-funcall) |
233 ("-e" . command-line-do-funcall-1) | 233 ("-e" . command-line-do-funcall-1) |
234 ("-eval" . command-line-do-eval) | 234 ("-eval" . command-line-do-eval) |
235 ("-load" . command-line-do-load) | 235 ("-load" . command-line-do-load) |
236 ("-l" . command-line-do-load) | 236 ("-l" . command-line-do-load) |
237 ("--script" . command-line-do-script) | |
238 ("-script" . command-line-do-script) | |
237 ("-insert" . command-line-do-insert) | 239 ("-insert" . command-line-do-insert) |
238 ("-i" . command-line-do-insert) | 240 ("-i" . command-line-do-insert) |
239 ("-kill" . command-line-do-kill) | 241 ("-kill" . command-line-do-kill) |
240 ("-eol" . command-line-do-enable-eol-detection) | 242 ("-eol" . command-line-do-enable-eol-detection) |
241 ("-enable-eol-detection" . command-line-do-enable-eol-detection) | 243 ("-enable-eol-detection" . command-line-do-enable-eol-detection) |
434 ;; Take file from default dir if it exists there; | 436 ;; Take file from default dir if it exists there; |
435 ;; otherwise let `load' search for it. | 437 ;; otherwise let `load' search for it. |
436 (if (file-exists-p (expand-file-name file)) | 438 (if (file-exists-p (expand-file-name file)) |
437 (setq file (expand-file-name file))) | 439 (setq file (expand-file-name file))) |
438 (load file nil t))) | 440 (load file nil t))) |
441 | |
442 (defun command-line-do-script (arg) | |
443 "Load the named file of Lisp code into XEmacs. | |
444 <file>" | |
445 (let ((file (pop command-line-args-left))) | |
446 (load file nil t t))) | |
439 | 447 |
440 (defun command-line-do-insert (arg) | 448 (defun command-line-do-insert (arg) |
441 "Insert file into the current buffer. | 449 "Insert file into the current buffer. |
442 <file>" | 450 <file>" |
443 (insert-file-contents (pop command-line-args-left))) | 451 (insert-file-contents (pop command-line-args-left))) |