view lisp/msw-init.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 f3244b2b4053
children e34711681f30
line wrap: on
line source

;;; msw-init.el --- initialization code for mswindows
;; Copyright (C) 1990, 1993, 1994 Free Software Foundation, Inc.
;; Copyright (C) 1995 Board of Trustees, University of Illinois.
;; Copyright (C) 1995, 1996 Ben Wing.

;; Author: various
;; Rewritten for mswindows by: Jonathan Harris

;; This file is part of XEmacs.

;; XEmacs is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; XEmacs is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with XEmacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

(defvar mswindows-win-initted nil)
(defvar mswindows-pre-win-initted nil)
(defvar mswindows-post-win-initted nil)

(defun init-pre-mswindows-win ()
  "Initialize mswindows GUI at startup (pre).  Don't call this."
  (unless mswindows-pre-win-initted
    (setq mswindows-pre-win-initted t)))

(defun init-mswindows-win ()
  "Initialize mswindows GUI at startup.  Don't call this."
  (unless mswindows-win-initted
    (init-pre-mswindows-win)
    (make-mswindows-device)
    (init-post-mswindows-win (selected-console))
    (setq mswindows-win-initted t)))

(defun init-post-mswindows-win (console)
  "Initialize mswindows GUI at startup (post).  Don't call this."
  (unless mswindows-post-win-initted
    ;; Old-style mswindows bindings. The new-style mswindows bindings
    ;; (namely Ctrl-X, Ctrl-C and Ctrl-V) are already spoken for by XEmacs.
    (global-set-key '(shift delete)   'kill-primary-selection)
    (global-set-key '(shift insert)   'yank-clipboard-selection)
    (global-set-key '(control insert) 'copy-primary-selection)

    (global-set-key '(meta f4)	      'save-buffers-kill-emacs)

    (setq mswindows-post-win-initted t)))