executable

Homepage: https://www.gnu.org/software/emacs

Author: Daniel Pfeiffer

Summary

Base functionality for executable interpreter scripts

Commentary

executable.el is used by certain major modes to insert a suitable
#! line at the beginning of the file, if the file does not already
have one.

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'.

Dependencies

Reverse dependencies