# HG changeset patch # User Richard M. Stallman # Date 825657989 0 # Node ID 4f6baee20482bc3dbb60f40b0cb2736776f8c895 # Parent 2630ac7746472b54abd941b340dcebb016a44533 Comment change. diff -r 2630ac774647 -r 4f6baee20482 lisp/progmodes/executable.el --- a/lisp/progmodes/executable.el Thu Feb 29 22:00:50 1996 +0000 +++ b/lisp/progmodes/executable.el Fri Mar 01 05:26:29 1996 +0000 @@ -28,13 +28,27 @@ ;; #! line at the beginning of the file, if the file does not already ;; have one. -;; This is support code for the likes of sh-, awk-, perl-, tcl- or -;; makefile-mode. Those mode-setting commands can call the like of -;; `(executable-set-magic "sh")' or `(executable-set-magic "perl" "-f")'. -;; Unless the file name matches `executable-magicless-file-regexp' this will -;; search $PATH if the given interpreter isn't absolute, and then insert a -;; first line like `#! /bin/sh' or `#! /usr/local/bin/perl -f'. -;; Also it makes the file executable as soon as it's saved, if it wasn't. +;; Unless it has a magic number, a Unix file with executable mode is passed to +;; a new instance of the running shell (or to a Bourne shell if a csh is +;; running and the file starts with `:'). Only a shell can start such a file, +;; exec() cannot, which is why it is important to have a magic number in every +;; executable script. Such a magic number is made up by the characters `#!' +;; the filename of an interpreter (in COFF, ELF or somesuch format) and one +;; optional argument. + +;; This library is for certain major modes like sh-, awk-, perl-, tcl- or +;; makefile-mode to insert or update a suitable #! line at the beginning of +;; the file, if the file does not already have one and the file is not a +;; default file of that interpreter (like .profile or makefile). It also +;; makes the file executable if it wasn't, as soon as it's saved. + +;; It also allows debugging scripts, with an adaptation of compile, as far +;; as interpreters give out meaningful error messages. + +;; Modes that use this should nconc `executable-map' to the end of their own +;; keymap and `executable-font-lock-keywords' to the end of their own font +;; lock keywords. Their mode-setting commands should call +;; `executable-set-magic'. ;;; Code: