mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-08 12:40:49 -08:00
; * src/emacs.c (main): Add commentary about command-line processing.
This commit is contained in:
parent
4d16a2f737
commit
cfaf681d3d
1 changed files with 33 additions and 0 deletions
33
src/emacs.c
33
src/emacs.c
|
|
@ -1342,6 +1342,39 @@ main (int argc, char **argv)
|
||||||
init_standard_fds ();
|
init_standard_fds ();
|
||||||
atexit (close_output_streams);
|
atexit (close_output_streams);
|
||||||
|
|
||||||
|
/* Command-line argument processing.
|
||||||
|
|
||||||
|
The arguments in the argv[] array are sorted in the descending
|
||||||
|
order of their priority as defined in the standard_args[] array
|
||||||
|
below. Then the sorted arguments are processed from the highest
|
||||||
|
to the lowest priority. Each command-line argument that is
|
||||||
|
recognized by 'main', if found in argv[], causes skip_args to be
|
||||||
|
incremented, effectively removing the processed argument from the
|
||||||
|
command line.
|
||||||
|
|
||||||
|
Then init_cmdargs is called, and conses a list of the unprocessed
|
||||||
|
command-line arguments, as strings, in 'command-line-args'. It
|
||||||
|
ignores all the arguments up to the one indexed by skip_args, as
|
||||||
|
those were already processed.
|
||||||
|
|
||||||
|
The arguments in 'command-line-args' are further processed by
|
||||||
|
startup.el, functions 'command-line' and 'command-line-1'. The
|
||||||
|
first of them handles the arguments which need to be processed
|
||||||
|
before loading the user init file and initializing the
|
||||||
|
window-system. The second one processes the arguments that are
|
||||||
|
related to the GUI system, like -font, -geometry, and -title, and
|
||||||
|
then processes the rest of arguments whose priority is below
|
||||||
|
those that are related to the GUI system. The arguments
|
||||||
|
porcessed by 'command-line' are removed from 'command-line-args';
|
||||||
|
the arguments processed by 'command-line-1' aren't, they are only
|
||||||
|
removed from 'command-line-args-left'.
|
||||||
|
|
||||||
|
'command-line-1' emits an error message for any argument it
|
||||||
|
doesn't recognize, so any command-line arguments processed in C
|
||||||
|
below whose priority is below the GUI system related switches
|
||||||
|
should be explicitly recognized, ignored, and removed from
|
||||||
|
'command-line-args-left' in 'command-line-1'. */
|
||||||
|
|
||||||
sort_args (argc, argv);
|
sort_args (argc, argv);
|
||||||
argc = 0;
|
argc = 0;
|
||||||
while (argv[argc]) argc++;
|
while (argv[argc]) argc++;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue