annotate src/prefix-args.c @ 45098:06120f91eb06

(eshell-modify-global-environment): Added this customization variable, which will cause any "export" commands within any eshell buffer to modify the global Emacs environment. It defaults to nil, which means that such commands will only modify that Eshell buffer's environment. (eshell-var-initialize): Initialize `eshell-modify-global-environment'.
author John Wiegley <johnw@newartisans.com>
date Fri, 03 May 2002 20:43:53 +0000
parents 0c4cb98fb3f4
children 695cf19ef79e d7ddb3e565de
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20572
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 /* prefix-args.c - echo each argument, prefixed by a string.
36273
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
2 Copyright (C) 1992 Free Software Foundation, Inc.
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
3
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
4 This file is part of GNU Emacs.
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
5
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
7 it under the terms of the GNU General Public License as published by
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
9 any later version.
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
10
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
14 GNU General Public License for more details.
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
15
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
16 You should have received a copy of the GNU General Public License
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
19 Boston, MA 02111-1307, USA. */
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
20
0c4cb98fb3f4 Add copyright and permissions.
Richard M. Stallman <rms@gnu.org>
parents: 21514
diff changeset
21 /* Jim Blandy <jimb@occs.cs.oberlin.edu> - September 1992
20572
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 When using GCC 2 as the linker in the build process, options
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 intended for the linker need to be prefixed with the "-Xlinker"
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25 option. If an option takes an argument, we need to use -Xlinker
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 twice - once for the option and once for its argument. For
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 example, to run the linker with the options "-Bstatic" "-e"
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 "_start", you'd need to pass the following options to GCC:
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 -Xlinker -Bstatic -Xlinker -e -Xlinker _start.
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 The Emacs makefile used to use a Bourne Shell `for' loop to prefix
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 each linker option with "-Xlinker", but 1) the for loop was hairier
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 than one might hope because it had to work when there were no
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 arguments to pass to the linker - the shell barfs on a loop like
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 this:
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 for arg in ; do echo -Xlinker "$arg"; done
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 and 2) the whole compilation command containing this loop seems to
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 exit with a non-zero status and halt the build under Ultrix.
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 If I can't write a completely portable program to do this in C,
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 I'm quitting and taking up gardening. */
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 #include <stdio.h>
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 20572
diff changeset
48 int
20572
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 main (argc, argv)
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 int argc;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 char **argv;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 {
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 char *progname;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 char *prefix;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 progname = argv[0];
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 argc--, argv++;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 if (argc < 1)
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 {
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 fprintf (stderr, "Usage: %s PREFIX ARGS...\n\
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 Echo each ARG preceded by PREFIX and a space.\n", progname);
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 exit (2);
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 }
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 prefix = argv[0];
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 argc--, argv++;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 for (; argc > 0; argc--, argv++)
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 printf ("%s %s%c", prefix, argv[0], (argc > 1) ? ' ' : '\n');
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 exit (0);
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 }