aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-02-09 23:04:56 -0800
committerPaul Eggert2011-02-09 23:04:56 -0800
commitbe6d99804b3efdecf3660c4b51da1945e955fb4d (patch)
tree99b523c445f7b95572ab668f4e878cd703ff3527
parentdd4638842ad1921562bc66049ec81a4530651cdf (diff)
parent67f02b82f496be403353a1dc918cc4f2278841bb (diff)
downloademacs-be6d99804b3efdecf3660c4b51da1945e955fb4d.tar.gz
emacs-be6d99804b3efdecf3660c4b51da1945e955fb4d.zip
Merge from mainline.
-rw-r--r--ChangeLog27
-rw-r--r--admin/notes/bugtracker5
-rwxr-xr-xconfigure9
-rw-r--r--configure.in5
-rw-r--r--doc/lispref/ChangeLog5
-rw-r--r--doc/lispref/loading.texi4
-rw-r--r--doc/misc/ChangeLog4
-rw-r--r--etc/NEWS6
-rw-r--r--lib-src/ChangeLog20
-rw-r--r--lib-src/make-docfile.c185
-rw-r--r--lib/Makefile.in1
-rw-r--r--lisp/ChangeLog43
-rw-r--r--lisp/allout.el202
-rw-r--r--lisp/emacs-lisp/cl-loaddefs.el4
-rw-r--r--lisp/emulation/pc-select.el985
-rw-r--r--lisp/erc/ChangeLog10
-rw-r--r--lisp/erc/erc-track.el15
-rw-r--r--lisp/gnus/ChangeLog18
-rw-r--r--lisp/gnus/message.el1
-rw-r--r--lisp/gnus/nnimap.el12
-rw-r--r--lisp/gnus/nntp.el4
-rw-r--r--lisp/gnus/shr.el3
-rw-r--r--lisp/ibuffer.el2
-rw-r--r--lisp/net/rcirc.el19
-rw-r--r--lisp/obsolete/pc-mode.el (renamed from lisp/emulation/pc-mode.el)1
-rw-r--r--lisp/obsolete/pc-select.el417
-rw-r--r--lisp/progmodes/sh-script.el48
-rw-r--r--lwlib/ChangeLog12
-rw-r--r--lwlib/Makefile.in19
-rw-r--r--lwlib/lwlib-Xaw.c4
-rw-r--r--lwlib/lwlib-Xlw.c8
-rw-r--r--lwlib/lwlib-Xm.c3
-rw-r--r--lwlib/lwlib-utils.c4
-rw-r--r--lwlib/lwlib.c4
-rw-r--r--lwlib/xlwmenu.c6
-rw-r--r--nt/ChangeLog7
-rw-r--r--nt/makefile.w32-in4
-rw-r--r--src/ChangeLog43
-rw-r--r--src/Makefile.in25
-rw-r--r--src/buffer.c2
-rw-r--r--src/font.c1
-rw-r--r--src/globals.h2900
-rw-r--r--src/makefile.w32-in34
-rw-r--r--src/nsselect.m2
-rw-r--r--src/xselect.c14
-rw-r--r--test/ChangeLog5
-rwxr-xr-xtest/indent/shell.rc30
-rwxr-xr-xtest/indent/shell.sh98
48 files changed, 1177 insertions, 4103 deletions
diff --git a/ChangeLog b/ChangeLog
index 649fe4b2ba6..85165338460 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,4 @@
12011-02-08 Paul Eggert <eggert@cs.ucla.edu> 12011-02-10 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Import getloadavg module from gnulib. 3 Import getloadavg module from gnulib.
4 * .bzrignore: Add lib/stdlib.h. 4 * .bzrignore: Add lib/stdlib.h.
@@ -19,6 +19,31 @@
19 * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, m4/gl-comp.m4: 19 * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, m4/gl-comp.m4:
20 * src/config.in: Regenerate. 20 * src/config.in: Regenerate.
21 21
222011-02-10 Paul Eggert <eggert@cs.ucla.edu>
23
24 * arg-nonnull.h, c++defs.h, warn-on-use.h: Fix licenses.
25 Sync from gnulib, which has been patched to fix the problem
26 with the license notices. Problem reported by Glenn Morris in
27 <http://lists.gnu.org/archive/html/emacs-devel/2011-02/msg00403.html>.
28
292011-02-09 Stefan Monnier <monnier@iro.umontreal.ca>
30
31 * .bzrignore: Ignore globals.h and related stamp.
32
332011-02-09 Paul Eggert <eggert@cs.ucla.edu>
34
35 * lib/Makefile.in, lib/gnulib.mk: Regenerate.
36 This merges the following fix from gnulib:
37
38 2011-02-08 Bruno Haible <bruno@clisp.org>
39
40 Split large sed scripts, for HP-UX sed.
41
422011-02-08 Tom Tromey <tromey@redhat.com>
43
44 * configure: Rebuild.
45 * configure.in (NS_OBJC_OBJ): New subst.
46
222011-02-06 Paul Eggert <eggert@cs.ucla.edu> 472011-02-06 Paul Eggert <eggert@cs.ucla.edu>
23 48
24 gnulib: allow multiple gnulib generated replacements to coexist 49 gnulib: allow multiple gnulib generated replacements to coexist
diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker
index 7c6c0ff4272..02ca77bf7de 100644
--- a/admin/notes/bugtracker
+++ b/admin/notes/bugtracker
@@ -395,9 +395,14 @@ automatically sets a found version (if none is explicitly specified).
395*** To assign or reassign a bug to a package or list of packages: 395*** To assign or reassign a bug to a package or list of packages:
396reassign 1234 emacs 396reassign 1234 emacs
397 397
398Note that reassigning clears the list of found versions, even if the
399new packages includes the original one.
400
398** To remove spam from the tracker, move it to the `spam' pseudo-package: 401** To remove spam from the tracker, move it to the `spam' pseudo-package:
399reassign 123 spam 402reassign 123 spam
400 403
404(Should not be necessary any more, now that the input is moderated.)
405
401** To change the title of a bug: 406** To change the title of a bug:
402retitle 123 Some New Title 407retitle 123 Some New Title
403 408
diff --git a/configure b/configure
index 461f5c17bf2..6f7148b0a65 100755
--- a/configure
+++ b/configure
@@ -926,6 +926,7 @@ GMALLOC_OBJ
926HAVE_XSERVER 926HAVE_XSERVER
927LIB_STANDARD 927LIB_STANDARD
928NS_SUPPORT 928NS_SUPPORT
929NS_OBJC_OBJ
929NS_OBJ 930NS_OBJ
930TEMACS_LDFLAGS2 931TEMACS_LDFLAGS2
931LD_SWITCH_X_SITE_AUX_RPATH 932LD_SWITCH_X_SITE_AUX_RPATH
@@ -1104,9 +1105,6 @@ LDFLAGS
1104LIBS 1105LIBS
1105CPPFLAGS 1106CPPFLAGS
1106CPP 1107CPP
1107CPPFLAGS
1108CPP
1109CPPFLAGS
1110XMKMF' 1108XMKMF'
1111 1109
1112 1110
@@ -8853,6 +8851,7 @@ fi
8853 8851
8854ns_frag=/dev/null 8852ns_frag=/dev/null
8855NS_OBJ= 8853NS_OBJ=
8854NS_OBJC_OBJ=
8856NS_SUPPORT= 8855NS_SUPPORT=
8857if test "${HAVE_NS}" = yes; then 8856if test "${HAVE_NS}" = yes; then
8858 window_system=nextstep 8857 window_system=nextstep
@@ -8864,7 +8863,8 @@ if test "${HAVE_NS}" = yes; then
8864 prefix=${ns_appresdir} 8863 prefix=${ns_appresdir}
8865 fi 8864 fi
8866 ns_frag=$srcdir/src/ns.mk 8865 ns_frag=$srcdir/src/ns.mk
8867 NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o" 8866 NS_OBJ="fontset.o fringe.o image.o"
8867 NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o"
8868 NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc" 8868 NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc"
8869fi 8869fi
8870CFLAGS="$tmp_CFLAGS" 8870CFLAGS="$tmp_CFLAGS"
@@ -8874,6 +8874,7 @@ CPPFLAGS="$tmp_CPPFLAGS"
8874 8874
8875 8875
8876 8876
8877
8877case "${window_system}" in 8878case "${window_system}" in
8878 x11 ) 8879 x11 )
8879 HAVE_X_WINDOWS=yes 8880 HAVE_X_WINDOWS=yes
diff --git a/configure.in b/configure.in
index d095e08fb23..ed25373a12d 100644
--- a/configure.in
+++ b/configure.in
@@ -1516,6 +1516,7 @@ AC_SUBST(TEMACS_LDFLAGS2)
1516 1516
1517ns_frag=/dev/null 1517ns_frag=/dev/null
1518NS_OBJ= 1518NS_OBJ=
1519NS_OBJC_OBJ=
1519NS_SUPPORT= 1520NS_SUPPORT=
1520if test "${HAVE_NS}" = yes; then 1521if test "${HAVE_NS}" = yes; then
1521 window_system=nextstep 1522 window_system=nextstep
@@ -1527,12 +1528,14 @@ if test "${HAVE_NS}" = yes; then
1527 prefix=${ns_appresdir} 1528 prefix=${ns_appresdir}
1528 fi 1529 fi
1529 ns_frag=$srcdir/src/ns.mk 1530 ns_frag=$srcdir/src/ns.mk
1530 NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o" 1531 NS_OBJ="fontset.o fringe.o image.o"
1532 NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o"
1531 NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc" 1533 NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc"
1532fi 1534fi
1533CFLAGS="$tmp_CFLAGS" 1535CFLAGS="$tmp_CFLAGS"
1534CPPFLAGS="$tmp_CPPFLAGS" 1536CPPFLAGS="$tmp_CPPFLAGS"
1535AC_SUBST(NS_OBJ) 1537AC_SUBST(NS_OBJ)
1538AC_SUBST(NS_OBJC_OBJ)
1536AC_SUBST(NS_SUPPORT) 1539AC_SUBST(NS_SUPPORT)
1537AC_SUBST(LIB_STANDARD) 1540AC_SUBST(LIB_STANDARD)
1538AC_SUBST_FILE(ns_frag) 1541AC_SUBST_FILE(ns_frag)
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index aab3fc16f1a..0f1f0425478 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,8 @@
12011-02-09 Reuben Thomas <rrt@sc3d.org>
2
3 * loading.texi (Hooks for Loading): Remove unnecessary advice
4 about eval-after-load (Bug#7986).
5
12011-02-05 Chong Yidong <cyd@stupidchicken.com> 62011-02-05 Chong Yidong <cyd@stupidchicken.com>
2 7
3 * commands.texi (Accessing Mouse): Note that a header line is not 8 * commands.texi (Accessing Mouse): Note that a header line is not
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index 4e47647360f..ca233ac5f21 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -1000,10 +1000,6 @@ it immediately---there is no need to wait until the library is loaded.
1000If you need to call functions defined by that library, you should load 1000If you need to call functions defined by that library, you should load
1001the library, preferably with @code{require} (@pxref{Named Features}). 1001the library, preferably with @code{require} (@pxref{Named Features}).
1002 1002
1003But it is OK to use @code{eval-after-load} in your personal
1004customizations if you don't feel that they must meet the design
1005standards for programs meant for wider use.
1006
1007@defvar after-load-alist 1003@defvar after-load-alist
1008This variable stores an alist built by @code{eval-after-load}, 1004This variable stores an alist built by @code{eval-after-load},
1009containing the expressions to evaluate when certain libraries are 1005containing the expressions to evaluate when certain libraries are
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 53109fe7948..61e05aaf332 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,7 @@
12011-02-09 Paul Eggert <eggert@cs.ucla.edu>
2
3 * texinfo.tex: Update to version 2011-02-07.16.
4
12011-02-07 Michael Albinus <michael.albinus@gmx.de> 52011-02-07 Michael Albinus <michael.albinus@gmx.de>
2 6
3 * dbus.texi (Bus names): Adapt descriptions for 7 * dbus.texi (Bus names): Adapt descriptions for
diff --git a/etc/NEWS b/etc/NEWS
index 020aa2f26a0..11425c21342 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -562,9 +562,9 @@ listing object name completions when being sent text via
562 562
563** sregex.el is now obsolete, since rx.el is a strict superset. 563** sregex.el is now obsolete, since rx.el is a strict superset.
564 564
565** s-region.el is now declared obsolete, superceded by shift-select-mode 565** s-region.el and pc-select are now declared obsolete,
566enabled by default in 23.1. 566superceded by shift-select-mode enabled by default in 23.1.
567 567** pc-mode.el is also declared obsolete.
568** gdb-mi 568** gdb-mi
569 569
570*** GDB User Interface migrated to GDB Machine Interface and now 570*** GDB User Interface migrated to GDB Machine Interface and now
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 3f4e4b1b9ff..0f93941151e 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,23 @@
12011-02-09 Paul Eggert <eggert@cs.ucla.edu>
2
3 * make-docfile.c (EMACS_INTEGER): Rename from EMACS_INT.
4 This avoids collision with config.h's EMACS_INT on some
5 configurations. All uses changed.
6
72011-02-08 Tom Tromey <tromey@redhat.com>
8
9 * make-docfile.c: Unconditionally include stdlib.h.
10 (generate_globals): New global.
11 (xrealloc): New function.
12 (main): Handle '-g'. Call start_globals, write_globals.
13 (scan_file): Conditionally call put_filename.
14 (start_globals): New function.
15 (struct global): New.
16 (num_globals, globals): New globals.
17 (add_global, compare_globals, write_globals): New functions.
18 (scan_c_file): Update for "-g".
19 (scan_lisp_file): Fail if "-g".
20
12011-02-05 Paul Eggert <eggert@cs.ucla.edu> 212011-02-05 Paul Eggert <eggert@cs.ucla.edu>
2 22
3 * emacsclient.c: conform to C89 pointer rules 23 * emacsclient.c: conform to C89 pointer rules
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 8addbda0489..93994c1ed3e 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -41,11 +41,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
41#undef chdir 41#undef chdir
42 42
43#include <stdio.h> 43#include <stdio.h>
44#include <stdlib.h>
44#ifdef MSDOS 45#ifdef MSDOS
45#include <fcntl.h> 46#include <fcntl.h>
46#endif /* MSDOS */ 47#endif /* MSDOS */
47#ifdef WINDOWSNT 48#ifdef WINDOWSNT
48#include <stdlib.h>
49#include <fcntl.h> 49#include <fcntl.h>
50#include <direct.h> 50#include <direct.h>
51#endif /* WINDOWSNT */ 51#endif /* WINDOWSNT */
@@ -70,6 +70,8 @@ int scan_file (char *filename);
70int scan_lisp_file (const char *filename, const char *mode); 70int scan_lisp_file (const char *filename, const char *mode);
71int scan_c_file (char *filename, const char *mode); 71int scan_c_file (char *filename, const char *mode);
72void fatal (const char *s1, const char *s2) NO_RETURN; 72void fatal (const char *s1, const char *s2) NO_RETURN;
73void start_globals (void);
74void write_globals (void);
73 75
74#ifdef MSDOS 76#ifdef MSDOS
75/* s/msdos.h defines this as sys_chdir, but we're not linking with the 77/* s/msdos.h defines this as sys_chdir, but we're not linking with the
@@ -85,6 +87,9 @@ FILE *outfile;
85/* Name this program was invoked with. */ 87/* Name this program was invoked with. */
86char *progname; 88char *progname;
87 89
90/* Nonzero if this invocation is generating globals.h. */
91int generate_globals;
92
88/* Print error message. `s1' is printf control string, `s2' is arg for it. */ 93/* Print error message. `s1' is printf control string, `s2' is arg for it. */
89 94
90/* VARARGS1 */ 95/* VARARGS1 */
@@ -116,6 +121,18 @@ xmalloc (unsigned int size)
116 fatal ("virtual memory exhausted", 0); 121 fatal ("virtual memory exhausted", 0);
117 return result; 122 return result;
118} 123}
124
125/* Like realloc but get fatal error if memory is exhausted. */
126
127void *
128xrealloc (void *arg, unsigned int size)
129{
130 void *result = (void *) realloc (arg, size);
131 if (result == NULL)
132 fatal ("virtual memory exhausted", 0);
133 return result;
134}
135
119 136
120int 137int
121main (int argc, char **argv) 138main (int argc, char **argv)
@@ -164,10 +181,18 @@ main (int argc, char **argv)
164 } 181 }
165 i += 2; 182 i += 2;
166 } 183 }
184 if (argc > i && !strcmp (argv[i], "-g"))
185 {
186 generate_globals = 1;
187 ++i;
188 }
167 189
168 if (outfile == 0) 190 if (outfile == 0)
169 fatal ("No output file specified", ""); 191 fatal ("No output file specified", "");
170 192
193 if (generate_globals)
194 start_globals ();
195
171 first_infile = i; 196 first_infile = i;
172 for (; i < argc; i++) 197 for (; i < argc; i++)
173 { 198 {
@@ -179,6 +204,10 @@ main (int argc, char **argv)
179 if (j == i) 204 if (j == i)
180 err_count += scan_file (argv[i]); 205 err_count += scan_file (argv[i]);
181 } 206 }
207
208 if (err_count == 0 && generate_globals)
209 write_globals ();
210
182 return (err_count > 0 ? EXIT_FAILURE : EXIT_SUCCESS); 211 return (err_count > 0 ? EXIT_FAILURE : EXIT_SUCCESS);
183} 212}
184 213
@@ -208,7 +237,8 @@ scan_file (char *filename)
208 237
209 size_t len = strlen (filename); 238 size_t len = strlen (filename);
210 239
211 put_filename (filename); 240 if (!generate_globals)
241 put_filename (filename);
212 if (len > 4 && !strcmp (filename + len - 4, ".elc")) 242 if (len > 4 && !strcmp (filename + len - 4, ".elc"))
213 return scan_lisp_file (filename, READ_BINARY); 243 return scan_lisp_file (filename, READ_BINARY);
214 else if (len > 3 && !strcmp (filename + len - 3, ".el")) 244 else if (len > 3 && !strcmp (filename + len - 3, ".el"))
@@ -216,6 +246,14 @@ scan_file (char *filename)
216 else 246 else
217 return scan_c_file (filename, READ_TEXT); 247 return scan_c_file (filename, READ_TEXT);
218} 248}
249
250void
251start_globals (void)
252{
253 fprintf (outfile, "/* This file was auto-generated by make-docfile. */\n");
254 fprintf (outfile, "/* DO NOT EDIT. */\n");
255 fprintf (outfile, "struct emacs_globals {\n");
256}
219 257
220char buf[128]; 258char buf[128];
221 259
@@ -517,6 +555,98 @@ write_c_args (FILE *out, char *func, char *buf, int minargs, int maxargs)
517 putc (')', out); 555 putc (')', out);
518} 556}
519 557
558/* The types of globals. */
559enum global_type
560{
561 EMACS_INTEGER,
562 BOOLEAN,
563 LISP_OBJECT,
564 INVALID
565};
566
567/* A single global. */
568struct global
569{
570 enum global_type type;
571 char *name;
572};
573
574/* All the variable names we saw while scanning C sources in `-g'
575 mode. */
576int num_globals;
577int num_globals_allocated;
578struct global *globals;
579
580static void
581add_global (enum global_type type, char *name)
582{
583 /* Ignore the one non-symbol that can occur. */
584 if (strcmp (name, "..."))
585 {
586 ++num_globals;
587
588 if (num_globals_allocated == 0)
589 {
590 num_globals_allocated = 100;
591 globals = xmalloc (num_globals_allocated * sizeof (struct global));
592 }
593 else if (num_globals == num_globals_allocated)
594 {
595 num_globals_allocated *= 2;
596 globals = xrealloc (globals,
597 num_globals_allocated * sizeof (struct global));
598 }
599
600 globals[num_globals - 1].type = type;
601 globals[num_globals - 1].name = name;
602 }
603}
604
605static int
606compare_globals (const void *a, const void *b)
607{
608 const struct global *ga = a;
609 const struct global *gb = b;
610 return strcmp (ga->name, gb->name);
611}
612
613void
614write_globals (void)
615{
616 int i;
617 qsort (globals, num_globals, sizeof (struct global), compare_globals);
618 for (i = 0; i < num_globals; ++i)
619 {
620 char *type;
621
622 switch (globals[i].type)
623 {
624 case EMACS_INTEGER:
625 type = "EMACS_INT";
626 break;
627 case BOOLEAN:
628 type = "int";
629 break;
630 case LISP_OBJECT:
631 type = "Lisp_Object";
632 break;
633 default:
634 fatal ("not a recognized DEFVAR_", 0);
635 }
636
637 fprintf (outfile, " %s f_%s;\n", type, globals[i].name);
638 fprintf (outfile, "#define %s globals.f_%s\n",
639 globals[i].name, globals[i].name);
640 while (i + 1 < num_globals
641 && !strcmp (globals[i].name, globals[i + 1].name))
642 ++i;
643 }
644
645 fprintf (outfile, "};\n");
646 fprintf (outfile, "extern struct emacs_globals globals;\n");
647}
648
649
520/* Read through a c file. If a .o file is named, 650/* Read through a c file. If a .o file is named,
521 the corresponding .c or .m file is read instead. 651 the corresponding .c or .m file is read instead.
522 Looks for DEFUN constructs such as are defined in ../src/lisp.h. 652 Looks for DEFUN constructs such as are defined in ../src/lisp.h.
@@ -533,6 +663,7 @@ scan_c_file (char *filename, const char *mode)
533 register int defvarflag; 663 register int defvarflag;
534 int minargs, maxargs; 664 int minargs, maxargs;
535 int extension = filename[strlen (filename) - 1]; 665 int extension = filename[strlen (filename) - 1];
666 enum global_type type;
536 667
537 if (extension == 'o') 668 if (extension == 'o')
538 filename[strlen (filename) - 1] = 'c'; 669 filename[strlen (filename) - 1] = 'c';
@@ -599,8 +730,23 @@ scan_c_file (char *filename, const char *mode)
599 730
600 c = getc (infile); 731 c = getc (infile);
601 defvarperbufferflag = (c == 'P'); 732 defvarperbufferflag = (c == 'P');
733 if (generate_globals)
734 {
735 if (c == 'I')
736 type = EMACS_INTEGER;
737 else if (c == 'L')
738 type = LISP_OBJECT;
739 else if (c == 'B')
740 type = BOOLEAN;
741 else
742 type = INVALID;
743 }
602 744
603 c = getc (infile); 745 c = getc (infile);
746 /* We need to distinguish between DEFVAR_BOOL and
747 DEFVAR_BUFFER_DEFAULTS. */
748 if (generate_globals && type == BOOLEAN && c != 'O')
749 type = INVALID;
604 } 750 }
605 else if (c == 'D') 751 else if (c == 'D')
606 { 752 {
@@ -617,6 +763,10 @@ scan_c_file (char *filename, const char *mode)
617 } 763 }
618 else continue; 764 else continue;
619 765
766 if (generate_globals && (!defvarflag || defvarperbufferflag
767 || type == INVALID))
768 continue;
769
620 while (c != '(') 770 while (c != '(')
621 { 771 {
622 if (c < 0) 772 if (c < 0)
@@ -630,6 +780,34 @@ scan_c_file (char *filename, const char *mode)
630 continue; 780 continue;
631 c = read_c_string_or_comment (infile, -1, 0, 0); 781 c = read_c_string_or_comment (infile, -1, 0, 0);
632 782
783 if (generate_globals)
784 {
785 int i = 0;
786 char *name;
787
788 /* Skip "," and whitespace. */
789 do
790 {
791 c = getc (infile);
792 }
793 while (c == ',' || c == ' ' || c == '\t' || c == '\n' || c == '\r');
794
795 /* Read in the identifier. */
796 do
797 {
798 buf[i++] = c;
799 c = getc (infile);
800 }
801 while (! (c == ',' || c == ' ' || c == '\t' ||
802 c == '\n' || c == '\r'));
803 buf[i] = '\0';
804
805 name = xmalloc (i + 1);
806 memcpy (name, buf, i + 1);
807 add_global (type, name);
808 continue;
809 }
810
633 /* DEFVAR_LISP ("name", addr, "doc") 811 /* DEFVAR_LISP ("name", addr, "doc")
634 DEFVAR_LISP ("name", addr /\* doc *\/) 812 DEFVAR_LISP ("name", addr /\* doc *\/)
635 DEFVAR_LISP ("name", addr, doc: /\* doc *\/) */ 813 DEFVAR_LISP ("name", addr, doc: /\* doc *\/) */
@@ -845,6 +1023,9 @@ scan_lisp_file (const char *filename, const char *mode)
845 register int c; 1023 register int c;
846 char *saved_string = 0; 1024 char *saved_string = 0;
847 1025
1026 if (generate_globals)
1027 fatal ("scanning lisp file when -g specified", 0);
1028
848 infile = fopen (filename, mode); 1029 infile = fopen (filename, mode);
849 if (infile == NULL) 1030 if (infile == NULL)
850 { 1031 {
diff --git a/lib/Makefile.in b/lib/Makefile.in
index f45a086bb1f..bdc405a505f 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -361,6 +361,7 @@ NEXT_STDLIB_H = @NEXT_STDLIB_H@
361NEXT_TIME_H = @NEXT_TIME_H@ 361NEXT_TIME_H = @NEXT_TIME_H@
362NEXT_UNISTD_H = @NEXT_UNISTD_H@ 362NEXT_UNISTD_H = @NEXT_UNISTD_H@
363NS_OBJ = @NS_OBJ@ 363NS_OBJ = @NS_OBJ@
364NS_OBJC_OBJ = @NS_OBJC_OBJ@
364NS_SUPPORT = @NS_SUPPORT@ 365NS_SUPPORT = @NS_SUPPORT@
365OBJEXT = @OBJEXT@ 366OBJEXT = @OBJEXT@
366OLDXMENU = @OLDXMENU@ 367OLDXMENU = @OLDXMENU@
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8826f884560..1a69d98f17e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,46 @@
12011-02-10 Ken Manheimer <ken.manheimer@gmail.com>
2
3 * allout.el: Synopsis: Change allout user configuration so
4 auto-activation is controlled solely by customization
5 `allout-auto-activation'.
6
7 (allout-auto-activation-helper) (allout-setup): New autoloads
8 implement new custom set procedure for allout-auto-activation.
9 Also, explicitly invoke
10 (allout-setup) after allout-auto-activation is custom-defined, to
11 effect the settings in emacs sessions besides the few where
12 allout-auto-activation customization is donea.
13 (allout-auto-activation): Use allout-auto-activation-helper to
14 :set. Revise the docstring.
15 (allout-init): Reduce functionality to just customizing
16 allout-auto-activation, and mark obsolete.
17 (allout-mode): Respect string values for allout-auto-activation.
18 Run allout-after-copy-or-kill-hook without any args.
19 (allout-mode) (allout-layout) (allout-default-layout)
20 (outlineify-sticky): Adjust docstring for new scheme.
21 (allout-after-copy-or-kill-hook): No arguments - hook implementers
22 should concentrate on the kill ring.
23
242011-02-09 Stefan Monnier <monnier@iro.umontreal.ca>
25
26 * progmodes/sh-script.el (sh-font-lock-open-heredoc): Fix case
27 of here-doc that immediately follows a comment.
28
292011-02-09 Deniz Dogan <deniz.a.m.dogan@gmail.com>
30
31 * net/rcirc.el (rcirc-ctcp-sender-PING): Simplifying.
32
33 * net/rcirc.el (rcirc-cmd-ctcp): Use dedicated function when
34 available.
35 (rcirc-ctcp-sender-PING): New function.
36
372011-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
38
39 * obsolete/pc-select.el: Rename from emulation/pc-select.el (bug#7940).
40 Remove the mark/nomark handling, and activate shift-select-mode instead.
41
42 * obsolete/pc-mode.el: Rename from emulation/pc-mode.el.
43
12011-02-07 Jay Belanger <jay.p.belanger@gmail.com> 442011-02-07 Jay Belanger <jay.p.belanger@gmail.com>
2 45
3 * calc/calc-units.el (math-logunits-quant): Add support for 46 * calc/calc-units.el (math-logunits-quant): Add support for
diff --git a/lisp/allout.el b/lisp/allout.el
index 49c2dba322a..5d87415a57f 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -62,18 +62,15 @@
62;; The latest development version and helpful notes are available at 62;; The latest development version and helpful notes are available at
63;; http://myriadicity.net/Sundry/EmacsAllout . 63;; http://myriadicity.net/Sundry/EmacsAllout .
64;; 64;;
65;; The outline menubar additions provide quick reference to many of 65;; The outline menubar additions provide quick reference to many of the
66;; the features, and see the docstring of the variable `allout-init' 66;; features. See the docstring of the variables `allout-layout' and
67;; for instructions on priming your Emacs session for automatic
68;; activation of allout-mode.
69;;
70;; See the docstring of the variables `allout-layout' and
71;; `allout-auto-activation' for details on automatic activation of 67;; `allout-auto-activation' for details on automatic activation of
72;; `allout-mode' as a minor mode. (It has changed since allout 68;; `allout-mode' as a minor mode. (`allout-init' is deprecated in favor of
73;; 3.x, for those of you that depend on the old method.) 69;; a purely customization-based method.)
74;; 70;;
75;; Note -- the lines beginning with `;;;_' are outline topic headers. 71;; Note -- the lines beginning with `;;;_' are outline topic headers.
76;; Just `ESC-x eval-buffer' to give it a whirl. 72;; Customize `allout-auto-activation' to enable, then revisit this
73;; buffer to give it a whirl.
77 74
78;; ken manheimer (ken dot manheimer at gmail dot com) 75;; ken manheimer (ken dot manheimer at gmail dot com)
79 76
@@ -271,35 +268,56 @@ See the existing keys for examples."
271 :set 'allout-compose-and-institute-keymap 268 :set 'allout-compose-and-institute-keymap
272 ) 269 )
273 270
271;;;_ > allout-auto-activation-helper (var value)
272;;;###autoload
273(defun allout-auto-activation-helper (var value)
274 "Institute `allout-auto-activation'.
275
276Intended to be used as the `allout-auto-activation' :set function."
277 (set-default var value)
278 (allout-setup))
279;;;_ > allout-setup ()
280;;;###autoload
281(defun allout-setup ()
282 "Do fundamental emacs session for allout auto-activation.
283
284Establishes allout processing as part of visiting a file if
285`allout-auto-activation' is non-nil, or removes it otherwise.
286
287The proper way to use this is through customizing the setting of
288`allout-auto-activation'."
289 (if (not allout-auto-activation)
290 (remove-hook 'find-file-hook 'allout-find-file-hook)
291 (add-hook 'find-file-hook 'allout-find-file-hook)))
274;;;_ = allout-auto-activation 292;;;_ = allout-auto-activation
293;;;###autoload
275(defcustom allout-auto-activation nil 294(defcustom allout-auto-activation nil
276 "Regulates auto-activation modality of allout outlines -- see `allout-init'. 295 "Configure allout outline mode auto-activation.
277 296
278Setq-default by `allout-init' to regulate whether or not allout 297Control whether and how allout outline mode is automatically
279outline mode is automatically activated when the buffer-specific 298activated when files are visited with non-nil buffer-specific
280variable `allout-layout' is non-nil, and whether or not the layout 299file variable `allout-layout'.
281dictated by `allout-layout' should be imposed on mode activation.
282 300
283With value t, auto-mode-activation and auto-layout are enabled. 301When allout-auto-activation is \"On\" \(t), allout mode is
284\(This also depends on `allout-find-file-hook' being installed in 302activated in buffers with non-nil `allout-layout', and the
285`find-file-hook', which is also done by `allout-init'.) 303specified layout is applied.
286 304
287With value `ask', auto-mode-activation is enabled, and endorsement for 305With value \"ask\", auto-mode-activation is enabled, and endorsement for
288performing auto-layout is asked of the user each time. 306performing auto-layout is asked of the user each time.
289 307
290With value `activate', only auto-mode-activation is enabled, 308With value \"activate\", only auto-mode-activation is enabled.
291auto-layout is not. 309Auto-layout is not.
292 310
293With value nil, neither auto-mode-activation nor auto-layout are 311With value nil, neither auto-mode-activation nor auto-layout are
294enabled. 312enabled, and allout auto-activation processing is removed from
295 313file visiting activities."
296See the docstring for `allout-init' for the proper interface to 314 :set 'allout-auto-activation-helper
297this variable."
298 :type '(choice (const :tag "On" t) 315 :type '(choice (const :tag "On" t)
299 (const :tag "Ask about layout" "ask") 316 (const :tag "Ask about layout" "ask")
300 (const :tag "Mode only" "activate") 317 (const :tag "Mode only" "activate")
301 (const :tag "Off" nil)) 318 (const :tag "Off" nil))
302 :group 'allout) 319 :group 'allout)
320(allout-setup)
303;;;_ = allout-default-layout 321;;;_ = allout-default-layout
304(defcustom allout-default-layout '(-2 : 0) 322(defcustom allout-default-layout '(-2 : 0)
305 "Default allout outline layout specification. 323 "Default allout outline layout specification.
@@ -311,7 +329,7 @@ layout specifications.
311A list value specifies a default layout for the current buffer, 329A list value specifies a default layout for the current buffer,
312to be applied upon activation of `allout-mode'. Any non-nil 330to be applied upon activation of `allout-mode'. Any non-nil
313value will automatically trigger `allout-mode', provided 331value will automatically trigger `allout-mode', provided
314`allout-init' has been called to enable this behavior. 332`allout-auto-activation' has been customized to enable it.
315 333
316The types of elements in the layout specification are: 334The types of elements in the layout specification are:
317 335
@@ -890,10 +908,10 @@ For details, see `allout-toggle-current-subtree-encryption's docstring."
890(defvar allout-layout nil ; LEAVE GLOBAL VALUE NIL -- see docstring. 908(defvar allout-layout nil ; LEAVE GLOBAL VALUE NIL -- see docstring.
891 "Buffer-specific setting for allout layout. 909 "Buffer-specific setting for allout layout.
892 910
893In buffers where this is non-nil (and if `allout-init' has been run, to 911In buffers where this is non-nil \(and if `allout-auto-activation'
894enable this behavior), `allout-mode' will be automatically activated. The 912has been customized to enable this behavior), `allout-mode' will be
895layout dictated by the value will be used to set the initial exposure when 913automatically activated. The layout dictated by the value will be used to
896`allout-mode' is activated. 914set the initial exposure when `allout-mode' is activated.
897 915
898\*You should not setq-default this variable non-nil unless you want every 916\*You should not setq-default this variable non-nil unless you want every
899visited file to be treated as an allout file.* 917visited file to be treated as an allout file.*
@@ -906,9 +924,9 @@ example, the following lines at the bottom of an Emacs Lisp file:
906;;;End: 924;;;End:
907 925
908dictate activation of `allout-mode' mode when the file is visited 926dictate activation of `allout-mode' mode when the file is visited
909\(presuming allout-init was already run), followed by the 927\(presuming proper `allout-auto-activation' customization),
910equivalent of `(allout-expose-topic 0 : -1 -1 0)'. (This is 928followed by the equivalent of `(allout-expose-topic 0 : -1 -1 0)'.
911the layout used for the allout.el source file.) 929\(This is the layout used for the allout.el source file.)
912 930
913`allout-default-layout' describes the specification format. 931`allout-default-layout' describes the specification format.
914`allout-layout' can additionally have the value `t', in which 932`allout-layout' can additionally have the value `t', in which
@@ -1441,9 +1459,7 @@ This hook might be invoked multiple times by a single command.")
1441(defvar allout-after-copy-or-kill-hook nil 1459(defvar allout-after-copy-or-kill-hook nil
1442 "*Hook that's run after copying outline text. 1460 "*Hook that's run after copying outline text.
1443 1461
1444Functions on the hook should take two arguments: 1462Functions on the hook should not take any arguments.")
1445
1446 START, END -- integers indicating the span containing the copied text.")
1447;;;_ = allout-outside-normal-auto-fill-function 1463;;;_ = allout-outside-normal-auto-fill-function
1448(defvar allout-outside-normal-auto-fill-function nil 1464(defvar allout-outside-normal-auto-fill-function nil
1449 "Value of normal-auto-fill-function outside of allout mode. 1465 "Value of normal-auto-fill-function outside of allout mode.
@@ -1621,84 +1637,19 @@ non-nil in a lasting way.")
1621 "If t, `allout-mode's last deactivation was deliberate. 1637 "If t, `allout-mode's last deactivation was deliberate.
1622So `allout-post-command-business' should not reactivate it...") 1638So `allout-post-command-business' should not reactivate it...")
1623(make-variable-buffer-local 'allout-explicitly-deactivated) 1639(make-variable-buffer-local 'allout-explicitly-deactivated)
1624;;;_ > allout-init (&optional mode) 1640;;;_ > allout-init (mode)
1625(defun allout-init (&optional mode) 1641(defun allout-init (mode)
1626 "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'. 1642 "DEPRECATED - configure allout activation by customizing
1627 1643`allout-auto-activation'. This function remains around, limited
1628MODE is one of the following symbols: 1644from what it did before, for backwards compatability.
1629 1645
1630 - nil (or no argument) deactivate auto-activation/layout; 1646MODE is the activation mode - see `allout-auto-activation' for
1631 - `activate', enable auto-activation only; 1647valid values."
1632 - `ask', enable auto-activation, and enable auto-layout but with 1648
1633 confirmation for layout operation solicited from user each time; 1649 (custom-set-variables (list 'allout-auto-activation (format "%s" mode)))
1634 - `report', just report and return the current auto-activation state; 1650 (format "%s" mode))
1635 - anything else (eg, t) for auto-activation and auto-layout, without 1651(make-obsolete 'allout-init
1636 any confirmation check. 1652 "customize 'allout-auto-activation' instead." "23.3")
1637
1638Use this function to setup your Emacs session for automatic activation
1639of allout outline mode, contingent to the buffer-specific setting of
1640the `allout-layout' variable. (See `allout-layout' and
1641`allout-expose-topic' docstrings for more details on auto layout).
1642
1643`allout-init' works by setting up (or removing) the `allout-mode'
1644find-file-hook, and giving `allout-auto-activation' a suitable
1645setting.
1646
1647To prime your Emacs session for full auto-outline operation, include
1648the following two lines in your Emacs init file:
1649
1650\(require 'allout)
1651\(allout-init t)"
1652
1653 (interactive)
1654 (if (allout-called-interactively-p)
1655 (progn
1656 (setq mode
1657 (completing-read
1658 (concat "Select outline auto setup mode "
1659 "(empty for report, ? for options) ")
1660 '(("nil")("full")("activate")("deactivate")
1661 ("ask") ("report") (""))
1662 nil
1663 t))
1664 (if (string= mode "")
1665 (setq mode 'report)
1666 (setq mode (intern-soft mode)))))
1667 (let
1668 ;; convenience aliases, for consistent ref to respective vars:
1669 ((hook 'allout-find-file-hook)
1670 (find-file-hook-var-name (if (boundp 'find-file-hook)
1671 'find-file-hook
1672 'find-file-hooks))
1673 (curr-mode 'allout-auto-activation))
1674
1675 (cond ((not mode)
1676 (set find-file-hook-var-name
1677 (delq hook (symbol-value find-file-hook-var-name)))
1678 (if (allout-called-interactively-p)
1679 (message "Allout outline mode auto-activation inhibited.")))
1680 ((eq mode 'report)
1681 (if (not (memq hook (symbol-value find-file-hook-var-name)))
1682 (allout-init nil)
1683 ;; Just punt and use the reports from each of the modes:
1684 (allout-init (symbol-value curr-mode))))
1685 (t (add-hook find-file-hook-var-name hook)
1686 (set curr-mode ; `set', not `setq'!
1687 (cond ((eq mode 'activate)
1688 (message
1689 "Outline mode auto-activation enabled.")
1690 'activate)
1691 ((eq mode 'report)
1692 ;; Return the current mode setting:
1693 (allout-init mode))
1694 ((eq mode 'ask)
1695 (message
1696 (concat "Outline mode auto-activation and "
1697 "-layout (upon confirmation) enabled."))
1698 'ask)
1699 ((message
1700 "Outline mode auto-activation and -layout enabled.")
1701 'full)))))))
1702;;;_ > allout-setup-menubar () 1653;;;_ > allout-setup-menubar ()
1703(defun allout-setup-menubar () 1654(defun allout-setup-menubar ()
1704 "Populate the current buffer's menubar with `allout-mode' stuff." 1655 "Populate the current buffer's menubar with `allout-mode' stuff."
@@ -1764,9 +1715,8 @@ and many other features.
1764Below is a description of the key bindings, and then description 1715Below is a description of the key bindings, and then description
1765of special `allout-mode' features and terminology. See also the 1716of special `allout-mode' features and terminology. See also the
1766outline menubar additions for quick reference to many of the 1717outline menubar additions for quick reference to many of the
1767features, and see the docstring of the function `allout-init' for 1718features. Customize `allout-auto-activation' to prepare your
1768instructions on priming your emacs session for automatic 1719emacs session for automatic activation of `allout-mode'.
1769activation of `allout-mode'.
1770 1720
1771The bindings are those listed in `allout-prefixed-keybindings' 1721The bindings are those listed in `allout-prefixed-keybindings'
1772and `allout-unprefixed-keybindings'. We recommend customizing 1722and `allout-unprefixed-keybindings'. We recommend customizing
@@ -1850,7 +1800,8 @@ M-x outlineify-sticky Activate outline mode for current buffer,
1850 Like above 'copy-exposed', but convert topic 1800 Like above 'copy-exposed', but convert topic
1851 prefixes to section.subsection... numeric 1801 prefixes to section.subsection... numeric
1852 format. 1802 format.
1853\\[eval-expression] (allout-init t) Setup Emacs session for outline mode 1803\\[customize-variable] allout-auto-activation
1804 Prepare Emacs session for allout outline mode
1854 auto-activation. 1805 auto-activation.
1855 1806
1856 Topic Encryption 1807 Topic Encryption
@@ -2092,8 +2043,8 @@ OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
2092 (when (and allout-layout 2043 (when (and allout-layout
2093 allout-auto-activation 2044 allout-auto-activation
2094 use-layout 2045 use-layout
2095 (and (not (eq allout-auto-activation 'activate)) 2046 (and (not (string= allout-auto-activation "activate"))
2096 (if (eq allout-auto-activation 'ask) 2047 (if (string= allout-auto-activation "ask")
2097 (if (y-or-n-p (format "Expose %s with layout '%s'? " 2048 (if (y-or-n-p (format "Expose %s with layout '%s'? "
2098 (buffer-name) 2049 (buffer-name)
2099 use-layout)) 2050 use-layout))
@@ -3448,7 +3399,7 @@ Returns the qualifying command, if any, else nil."
3448(defun allout-find-file-hook () 3399(defun allout-find-file-hook ()
3449 "Activate `allout-mode' on non-nil `allout-auto-activation', `allout-layout'. 3400 "Activate `allout-mode' on non-nil `allout-auto-activation', `allout-layout'.
3450 3401
3451See `allout-init' for setup instructions." 3402See `allout-auto-activation' for setup instructions."
3452 (if (and allout-auto-activation 3403 (if (and allout-auto-activation
3453 (not (allout-mode-p)) 3404 (not (allout-mode-p))
3454 allout-layout) 3405 allout-layout)
@@ -4394,7 +4345,7 @@ subtopics into siblings of the item."
4394 (if (and (not beg-hidden) (not end-hidden)) 4345 (if (and (not beg-hidden) (not end-hidden))
4395 (allout-unprotected (kill-line arg)) 4346 (allout-unprotected (kill-line arg))
4396 (kill-line arg)) 4347 (kill-line arg))
4397 (run-hook-with-args 'allout-after-copy-or-kill-hook beg end) 4348 (run-hooks 'allout-after-copy-or-kill-hook)
4398 (allout-deannotate-hidden beg end) 4349 (allout-deannotate-hidden beg end)
4399 4350
4400 (if allout-numbered-bullet 4351 (if allout-numbered-bullet
@@ -4446,7 +4397,7 @@ Topic exposure is marked with text-properties, to be used by
4446 (unwind-protect ; for possible barf-if-buffer-read-only. 4397 (unwind-protect ; for possible barf-if-buffer-read-only.
4447 (allout-unprotected (kill-region beg end)) 4398 (allout-unprotected (kill-region beg end))
4448 (allout-deannotate-hidden beg end) 4399 (allout-deannotate-hidden beg end)
4449 (run-hook-with-args 'allout-after-copy-or-kill-hook beg end) 4400 (run-hooks 'allout-after-copy-or-kill-hook)
4450 4401
4451 (save-excursion 4402 (save-excursion
4452 (allout-renumber-to-depth depth)) 4403 (allout-renumber-to-depth depth))
@@ -4503,7 +4454,8 @@ Topic exposure is marked with text-properties, to be used by
4503 (allout-unprotected 4454 (allout-unprotected
4504 (let ((inhibit-read-only t) 4455 (let ((inhibit-read-only t)
4505 (buffer-undo-list t)) 4456 (buffer-undo-list t))
4506 (remove-text-properties begin end '(allout-was-hidden t))))) 4457 (remove-text-properties begin (min end (point-max))
4458 '(allout-was-hidden t)))))
4507;;;_ > allout-hide-by-annotation (begin end) 4459;;;_ > allout-hide-by-annotation (begin end)
4508(defun allout-hide-by-annotation (begin end) 4460(defun allout-hide-by-annotation (begin end)
4509 "Translate text properties indicating exposure status into actual exposure." 4461 "Translate text properties indicating exposure status into actual exposure."
@@ -6312,8 +6264,8 @@ save. See `allout-encrypt-unencrypted-on-saves' for more info."
6312(defun outlineify-sticky (&optional arg) 6264(defun outlineify-sticky (&optional arg)
6313 "Activate outline mode and establish file var so it is started subsequently. 6265 "Activate outline mode and establish file var so it is started subsequently.
6314 6266
6315See doc-string for `allout-layout' and `allout-init' for details on 6267See `allout-layout' and customization of `allout-auto-activation'
6316setup for auto-startup." 6268for details on preparing emacs for automatic allout activation."
6317 6269
6318 (interactive "P") 6270 (interactive "P")
6319 6271
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el
index 05bfa0f262e..e10dc10447c 100644
--- a/lisp/emacs-lisp/cl-loaddefs.el
+++ b/lisp/emacs-lisp/cl-loaddefs.el
@@ -282,7 +282,7 @@ Not documented
282;;;;;; do-all-symbols do-symbols dotimes dolist do* do loop return-from 282;;;;;; do-all-symbols do-symbols dotimes dolist do* do loop return-from
283;;;;;; return block etypecase typecase ecase case load-time-value 283;;;;;; return block etypecase typecase ecase case load-time-value
284;;;;;; eval-when destructuring-bind function* defmacro* defun* gentemp 284;;;;;; eval-when destructuring-bind function* defmacro* defun* gentemp
285;;;;;; gensym) "cl-macs" "cl-macs.el" "8b2ce9c2ec0e273606bb37c333c4bdde") 285;;;;;; gensym) "cl-macs" "cl-macs.el" "0904b956872432ae7cc5fa9abcefce63")
286;;; Generated autoloads from cl-macs.el 286;;; Generated autoloads from cl-macs.el
287 287
288(autoload 'gensym "cl-macs" "\ 288(autoload 'gensym "cl-macs" "\
@@ -389,7 +389,7 @@ This is equivalent to `(return-from nil RESULT)'.
389 389
390(autoload 'return-from "cl-macs" "\ 390(autoload 'return-from "cl-macs" "\
391Return from the block named NAME. 391Return from the block named NAME.
392This jump out to the innermost enclosing `(block NAME ...)' form, 392This jumps out to the innermost enclosing `(block NAME ...)' form,
393returning RESULT from that form (or nil if RESULT is omitted). 393returning RESULT from that form (or nil if RESULT is omitted).
394This is compatible with Common Lisp, but note that `defun' and 394This is compatible with Common Lisp, but note that `defun' and
395`defmacro' do not create implicit blocks as they do in Common Lisp. 395`defmacro' do not create implicit blocks as they do in Common Lisp.
diff --git a/lisp/emulation/pc-select.el b/lisp/emulation/pc-select.el
deleted file mode 100644
index 76562dd75ca..00000000000
--- a/lisp/emulation/pc-select.el
+++ /dev/null
@@ -1,985 +0,0 @@
1;;; pc-select.el --- emulate mark, cut, copy and paste from Motif
2;;; (or MAC GUI or MS-windoze (bah)) look-and-feel
3;;; including key bindings.
4
5;; Copyright (C) 1995-1997, 2000-2011 Free Software Foundation, Inc.
6
7;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
8;; Keywords: convenience emulations
9;; Created: 26 Sep 1995
10
11;; This file is part of GNU Emacs.
12
13;; GNU Emacs is free software: you can redistribute it and/or modify
14;; it under the terms of the GNU General Public License as published by
15;; the Free Software Foundation, either version 3 of the License, or
16;; (at your option) any later version.
17
18;; GNU Emacs is distributed in the hope that it will be useful,
19;; but WITHOUT ANY WARRANTY; without even the implied warranty of
20;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;; GNU General Public License for more details.
22
23;; You should have received a copy of the GNU General Public License
24;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
25
26;;; Commentary:
27
28;; This package emulates the mark, copy, cut and paste look-and-feel of motif
29;; programs (which is the same as the MAC gui and (sorry for that) MS-Windows).
30;; It modifies the keybindings of the cursor keys and the next, prior,
31;; home and end keys. They will modify mark-active.
32;; You can still get the old behavior of cursor moving with the
33;; control sequences C-f, C-b, etc.
34;; This package uses transient-mark-mode and
35;; delete-selection-mode.
36;;
37;; In addition to that all key-bindings from the pc-mode are
38;; done here too (as suggested by RMS).
39;;
40;; As I found out after I finished the first version, s-region.el tries
41;; to do the same.... But my code is a little more complete and using
42;; delete-selection-mode is very important for the look-and-feel.
43;; Pete Forman <pete.forman@airgun.wg.waii.com> provided some motif
44;; compliant keybindings which I added. I had to modify them a little
45;; to add the -mark and -nomark functionality of cursor moving.
46;;
47;; Credits:
48;; Many thanks to all who made comments.
49;; Thanks to RMS and Ralf Muschall <prm@rz.uni-jena.de> for criticism.
50;; Kevin Cutts <cutts@ukraine.corp.mot.com> added the beginning-of-buffer
51;; and end-of-buffer functions which I modified a little.
52;; David Biesack <sasdjb@unx.sas.com> suggested some more cleanup.
53;; Thanks to Pete Forman <pete.forman@airgun.wg.waii.com>
54;; for additional motif keybindings.
55;; Thanks to jvromans@squirrel.nl (Johan Vromans) for a bug report
56;; concerning setting of this-command.
57;; Dan Nicolaescu <done@ece.arizona.ro> suggested suppressing the
58;; scroll-up/scroll-down error.
59;; Eli Barzilay (eli@cs.bgu.ac.il) suggested the sexps functions and
60;; keybindings.
61;;
62;; Ok, some details about the idea of PC Selection mode:
63;;
64;; o The standard keys for moving around (right, left, up, down, home, end,
65;; prior, next, called "move-keys" from now on) will always de-activate
66;; the mark.
67;; o If you press "Shift" together with the "move-keys", the region
68;; you pass along is activated
69;; o You have the copy, cut and paste functions (as in many other programs)
70;; which will operate on the active region
71;; It was not possible to bind them to C-v, C-x and C-c for obvious
72;; emacs reasons.
73;; They will be bound according to the "old" behavior to S-delete (cut),
74;; S-insert (paste) and C-insert (copy). These keys do the same in many
75;; other programs.
76;;
77
78;;; Code:
79
80;; Customization:
81(defgroup pc-select nil
82 "Emulate pc bindings."
83 :prefix "pc-select"
84 :group 'emulations)
85
86(defcustom pc-select-override-scroll-error t
87 "Non-nil means don't generate error on scrolling past edge of buffer.
88This variable applies in PC Selection mode only.
89The scroll commands normally generate an error if you try to scroll
90past the top or bottom of the buffer. This is annoying when selecting
91text with these commands. If you set this variable to non-nil, these
92errors are suppressed."
93 :type 'boolean
94 :group 'pc-select)
95(define-obsolete-variable-alias 'pc-select-override-scroll-error
96 'scroll-error-top-bottom
97 "24.1")
98
99(defcustom pc-select-selection-keys-only nil
100 "Non-nil means only bind the basic selection keys when started.
101Other keys that emulate pc-behavior will be untouched.
102This gives mostly Emacs-like behavior with only the selection keys enabled."
103 :type 'boolean
104 :group 'pc-select)
105
106(defcustom pc-select-meta-moves-sexps nil
107 "Non-nil means move sexp-wise with Meta key, otherwise move word-wise."
108 :type 'boolean
109 :group 'pc-select)
110
111(defcustom pc-selection-mode-hook nil
112 "The hook to run when PC Selection mode is toggled."
113 :type 'hook
114 :group 'pc-select)
115
116(defvar pc-select-saved-settings-alist nil
117 "The values of the variables before PC Selection mode was toggled on.
118When PC Selection mode is toggled on, it sets quite a few variables
119for its own purposes. This alist holds the original values of the
120variables PC Selection mode had set, so that these variables can be
121restored to their original values when PC Selection mode is toggled off.")
122
123(defvar pc-select-map nil
124 "The keymap used as the global map when PC Selection mode is on." )
125
126(defvar pc-select-saved-global-map nil
127 "The global map that was in effect when PC Selection mode was toggled on.")
128
129(defvar pc-select-key-bindings-alist nil
130 "This alist holds all the key bindings PC Selection mode sets.")
131
132(defvar pc-select-default-key-bindings nil
133 "These key bindings always get set by PC Selection mode.")
134
135(unless pc-select-default-key-bindings
136 (let ((lst
137 ;; This is to avoid confusion with the delete-selection-mode.
138 ;; On simple displays you can't see that a region is active and
139 ;; will be deleted on the next keypress IMHO especially for
140 ;; copy-region-as-kill this is confusing.
141 ;; The same goes for exchange-point-and-mark
142 '(("\M-w" . copy-region-as-kill-nomark)
143 ("\C-x\C-x" . exchange-point-and-mark-nomark)
144 ([S-right] . forward-char-mark)
145 ([right] . forward-char-nomark)
146 ([C-S-right] . forward-word-mark)
147 ([C-right] . forward-word-nomark)
148 ([S-left] . backward-char-mark)
149 ([left] . backward-char-nomark)
150 ([C-S-left] . backward-word-mark)
151 ([C-left] . backward-word-nomark)
152 ([S-down] . next-line-mark)
153 ([down] . next-line-nomark)
154
155 ([S-end] . end-of-line-mark)
156 ([end] . end-of-line-nomark)
157 ([S-C-end] . end-of-buffer-mark)
158 ([C-end] . end-of-buffer-nomark)
159 ([S-M-end] . end-of-buffer-mark)
160 ([M-end] . end-of-buffer-nomark)
161
162 ([S-next] . scroll-up-mark)
163 ([next] . scroll-up-nomark)
164
165 ([S-up] . previous-line-mark)
166 ([up] . previous-line-nomark)
167
168 ([S-home] . beginning-of-line-mark)
169 ([home] . beginning-of-line-nomark)
170 ([S-C-home] . beginning-of-buffer-mark)
171 ([C-home] . beginning-of-buffer-nomark)
172 ([S-M-home] . beginning-of-buffer-mark)
173 ([M-home] . beginning-of-buffer-nomark)
174
175 ([M-S-down] . forward-line-mark)
176 ([M-down] . forward-line-nomark)
177 ([M-S-up] . backward-line-mark)
178 ([M-up] . backward-line-nomark)
179
180 ([S-prior] . scroll-down-mark)
181 ([prior] . scroll-down-nomark)
182
183 ;; Next four lines are from Pete Forman.
184 ([C-down] . forward-paragraph-nomark) ; KNextPara cDn
185 ([C-up] . backward-paragraph-nomark) ; KPrevPara cUp
186 ([S-C-down] . forward-paragraph-mark)
187 ([S-C-up] . backward-paragraph-mark))))
188
189 (setq pc-select-default-key-bindings lst)))
190
191(defvar pc-select-extra-key-bindings nil
192 "Key bindings to set only if `pc-select-selection-keys-only' is nil.")
193
194;; The following keybindings are for standard ISO keyboards
195;; as they are used with IBM compatible PCs, IBM RS/6000,
196;; MACs, many X-Stations and probably more
197(unless pc-select-extra-key-bindings
198 (let ((lst
199 '(([S-insert] . yank)
200 ([C-insert] . copy-region-as-kill)
201 ([S-delete] . kill-region)
202
203 ;; The following bindings are useful on Sun Type 3 keyboards
204 ;; They implement the Get-Delete-Put (copy-cut-paste)
205 ;; functions from sunview on the L6, L8 and L10 keys
206 ;; Sam Steingold <sds@gnu.org> says that f16 is copy and f18 is paste.
207 ([f16] . copy-region-as-kill)
208 ([f18] . yank)
209 ([f20] . kill-region)
210
211 ;; The following bindings are from Pete Forman.
212 ([f6] . other-window) ; KNextPane F6
213 ([C-delete] . kill-line) ; KEraseEndLine cDel
214 ("\M-\d" . undo) ; KUndo aBS
215
216 ;; The following binding is taken from pc-mode.el
217 ;; as suggested by RMS.
218 ;; I only used the one that is not covered above.
219 ([C-M-delete] . kill-sexp)
220 ;; Next line proposed by Eli Barzilay
221 ([C-escape] . electric-buffer-list))))
222
223 (setq pc-select-extra-key-bindings lst)))
224
225(defvar pc-select-meta-moves-sexps-key-bindings
226 '((([M-S-right] . forward-sexp-mark)
227 ([M-right] . forward-sexp-nomark)
228 ([M-S-left] . backward-sexp-mark)
229 ([M-left] . backward-sexp-nomark))
230 (([M-S-right] . forward-word-mark)
231 ([M-right] . forward-word-nomark)
232 ([M-S-left] . backward-word-mark)
233 ([M-left] . backward-word-nomark)))
234 "The list of key bindings controlled by `pc-select-meta-moves-sexp'.
235The bindings in the car of this list get installed if
236`pc-select-meta-moves-sexp' is t, the bindings in the cadr of this
237list get installed otherwise.")
238
239;; This is for tty. We don't turn on normal-erase-is-backspace,
240;; but bind keys as pc-selection-mode did before
241;; normal-erase-is-backspace was invented, to keep us back
242;; compatible.
243(defvar pc-select-tty-key-bindings
244 '(([delete] . delete-char) ; KDelete Del
245 ([C-backspace] . backward-kill-word))
246 "The list of key bindings controlled by `pc-select-selection-keys-only'.
247These key bindings get installed when running in a tty, but only if
248`pc-select-selection-keys-only' is nil.")
249
250(defvar pc-select-old-M-delete-binding nil
251 "Holds the old mapping of [M-delete] in the `function-key-map'.
252This variable holds the value associated with [M-delete] in the
253`function-key-map' before PC Selection mode had changed that
254association.")
255
256;;;;
257;; misc
258;;;;
259
260(provide 'pc-select)
261
262(defun copy-region-as-kill-nomark (beg end)
263 "Save the region as if killed, but don't kill it; deactivate mark.
264If `interprogram-cut-function' is non-nil, also save the text for a window
265system cut and paste.
266
267Deactivating mark is to avoid confusion with `delete-selection-mode'
268and `transient-mark-mode'."
269 (interactive "r")
270 (copy-region-as-kill beg end)
271 (setq mark-active nil)
272 (message "Region saved"))
273
274(defun exchange-point-and-mark-nomark ()
275 "Like `exchange-point-and-mark' but without activating the mark."
276 (interactive)
277 (exchange-point-and-mark)
278 (setq mark-active nil))
279
280;;;;
281;; non-interactive
282;;;;
283(defun pc-select-ensure-mark ()
284 ;; make sure mark is active
285 ;; test if it is active, if it isn't, set it and activate it
286 (or mark-active (set-mark-command nil))
287 ;; Remember who activated the mark.
288 (setq mark-active 'pc-select))
289
290(defun pc-select-maybe-deactivate-mark ()
291 ;; maybe switch off mark (only if *we* switched it on)
292 (when (eq mark-active 'pc-select)
293 (deactivate-mark)))
294
295;;;;;;;;;;;;;;;;;;;;;;;;;;;
296;;;;; forward and mark
297;;;;;;;;;;;;;;;;;;;;;;;;;;;
298
299(defun forward-char-mark (&optional arg)
300 "Ensure mark is active; move point right ARG characters (left if ARG negative).
301On reaching end of buffer, stop and signal error."
302 (interactive "p")
303 (pc-select-ensure-mark)
304 (forward-char arg))
305
306(defun forward-word-mark (&optional arg)
307 "Ensure mark is active; move point right ARG words (backward if ARG is negative).
308Normally returns t.
309If an edge of the buffer is reached, point is left there
310and nil is returned."
311 (interactive "p")
312 (pc-select-ensure-mark)
313 (forward-word arg))
314
315(defun forward-line-mark (&optional arg)
316 "Ensure mark is active; move cursor vertically down ARG lines."
317 (interactive "p")
318 (pc-select-ensure-mark)
319 (forward-line arg)
320 (setq this-command 'forward-line)
321)
322
323(defun forward-sexp-mark (&optional arg)
324 "Ensure mark is active; move forward across one balanced expression (sexp).
325With argument, do it that many times. Negative arg -N means
326move backward across N balanced expressions."
327 (interactive "p")
328 (pc-select-ensure-mark)
329 (forward-sexp arg))
330
331(defun forward-paragraph-mark (&optional arg)
332 "Ensure mark is active; move forward to end of paragraph.
333With arg N, do it N times; negative arg -N means move backward N paragraphs.
334
335A line which `paragraph-start' matches either separates paragraphs
336\(if `paragraph-separate' matches it also) or is the first line of a paragraph.
337A paragraph end is the beginning of a line which is not part of the paragraph
338to which the end of the previous line belongs, or the end of the buffer."
339 (interactive "p")
340 (pc-select-ensure-mark)
341 (forward-paragraph arg))
342
343(defun next-line-mark (&optional arg)
344 "Ensure mark is active; move cursor vertically down ARG lines.
345If there is no character in the target line exactly under the current column,
346the cursor is positioned after the character in that line which spans this
347column, or at the end of the line if it is not long enough.
348If there is no line in the buffer after this one, behavior depends on the
349value of `next-line-add-newlines'. If non-nil, it inserts a newline character
350to create a line, and moves the cursor to that line. Otherwise it moves the
351cursor to the end of the buffer \(if already at the end of the buffer, an error
352is signaled).
353
354The command \\[set-goal-column] can be used to create
355a semipermanent goal column to which this command always moves.
356Then it does not try to move vertically. This goal column is stored
357in `goal-column', which is nil when there is none."
358 (interactive "p")
359 (pc-select-ensure-mark)
360 (with-no-warnings (next-line arg))
361 (setq this-command 'next-line))
362
363(defun end-of-line-mark (&optional arg)
364 "Ensure mark is active; move point to end of current line.
365With argument ARG not nil or 1, move forward ARG - 1 lines first.
366If scan reaches end of buffer, stop there without error."
367 (interactive "p")
368 (pc-select-ensure-mark)
369 (end-of-line arg)
370 (setq this-command 'end-of-line))
371
372(defun backward-line-mark (&optional arg)
373 "Ensure mark is active; move cursor vertically up ARG lines."
374 (interactive "p")
375 (pc-select-ensure-mark)
376 (if (null arg)
377 (setq arg 1))
378 (forward-line (- arg))
379 (setq this-command 'forward-line)
380)
381
382(defun scroll-down-mark (&optional arg)
383 "Ensure mark is active; scroll down ARG lines; or near full screen if no ARG.
384A near full screen is `next-screen-context-lines' less than a full screen.
385Negative ARG means scroll upward.
386When calling from a program, supply a number as argument or nil.
387Attempting to scroll past the edge of buffer does not raise an
388error, unless `pc-select-override-scroll-error' is nil."
389 (interactive "P")
390 (pc-select-ensure-mark)
391 (cond (pc-select-override-scroll-error
392 (condition-case nil (scroll-down arg)
393 (beginning-of-buffer (goto-char (point-min)))))
394 (t (scroll-down arg))))
395
396(defun end-of-buffer-mark (&optional arg)
397 "Ensure mark is active; move point to the end of the buffer.
398With arg N, put point N/10 of the way from the end.
399
400If the buffer is narrowed, this command uses the beginning and size
401of the accessible part of the buffer.
402
403Don't use this command in Lisp programs!
404\(goto-char \(point-max)) is faster and avoids clobbering the mark."
405 (interactive "P")
406 (pc-select-ensure-mark)
407 (let ((size (- (point-max) (point-min))))
408 (goto-char (if arg
409 (- (point-max)
410 (if (> size 10000)
411 ;; Avoid overflow for large buffer sizes!
412 (* (prefix-numeric-value arg)
413 (/ size 10))
414 (/ (* size (prefix-numeric-value arg)) 10)))
415 (point-max))))
416 ;; If we went to a place in the middle of the buffer,
417 ;; adjust it to the beginning of a line.
418 (if arg (forward-line 1)
419 ;; If the end of the buffer is not already on the screen,
420 ;; then scroll specially to put it near, but not at, the bottom.
421 (if (let ((old-point (point)))
422 (save-excursion
423 (goto-char (window-start))
424 (vertical-motion (window-height))
425 (< (point) old-point)))
426 (progn
427 (overlay-recenter (point))
428 (recenter -3)))))
429
430;;;;;;;;;
431;;;;; no mark
432;;;;;;;;;
433
434(defun forward-char-nomark (&optional arg)
435 "Deactivate mark; move point right ARG characters \(left if ARG negative).
436On reaching end of buffer, stop and signal error."
437 (interactive "p")
438 (pc-select-maybe-deactivate-mark)
439 (forward-char arg))
440
441(defun forward-word-nomark (&optional arg)
442 "Deactivate mark; move point right ARG words \(backward if ARG is negative).
443Normally returns t.
444If an edge of the buffer is reached, point is left there
445and nil is returned."
446 (interactive "p")
447 (pc-select-maybe-deactivate-mark)
448 (forward-word arg))
449
450(defun forward-line-nomark (&optional arg)
451 "Deactivate mark; move cursor vertically down ARG lines."
452 (interactive "p")
453 (pc-select-maybe-deactivate-mark)
454 (forward-line arg)
455 (setq this-command 'forward-line)
456)
457
458(defun forward-sexp-nomark (&optional arg)
459 "Deactivate mark; move forward across one balanced expression (sexp).
460With argument, do it that many times. Negative arg -N means
461move backward across N balanced expressions."
462 (interactive "p")
463 (pc-select-maybe-deactivate-mark)
464 (forward-sexp arg))
465
466(defun forward-paragraph-nomark (&optional arg)
467 "Deactivate mark; move forward to end of paragraph.
468With arg N, do it N times; negative arg -N means move backward N paragraphs.
469
470A line which `paragraph-start' matches either separates paragraphs
471\(if `paragraph-separate' matches it also) or is the first line of a paragraph.
472A paragraph end is the beginning of a line which is not part of the paragraph
473to which the end of the previous line belongs, or the end of the buffer."
474 (interactive "p")
475 (pc-select-maybe-deactivate-mark)
476 (forward-paragraph arg))
477
478(defun next-line-nomark (&optional arg)
479 "Deactivate mark; move cursor vertically down ARG lines.
480If there is no character in the target line exactly under the current column,
481the cursor is positioned after the character in that line which spans this
482column, or at the end of the line if it is not long enough.
483If there is no line in the buffer after this one, behavior depends on the
484value of `next-line-add-newlines'. If non-nil, it inserts a newline character
485to create a line, and moves the cursor to that line. Otherwise it moves the
486cursor to the end of the buffer (if already at the end of the buffer, an error
487is signaled).
488
489The command \\[set-goal-column] can be used to create
490a semipermanent goal column to which this command always moves.
491Then it does not try to move vertically. This goal column is stored
492in `goal-column', which is nil when there is none."
493 (interactive "p")
494 (pc-select-maybe-deactivate-mark)
495 (with-no-warnings (next-line arg))
496 (setq this-command 'next-line))
497
498(defun end-of-line-nomark (&optional arg)
499 "Deactivate mark; move point to end of current line.
500With argument ARG not nil or 1, move forward ARG - 1 lines first.
501If scan reaches end of buffer, stop there without error."
502 (interactive "p")
503 (pc-select-maybe-deactivate-mark)
504 (end-of-line arg)
505 (setq this-command 'end-of-line))
506
507(defun backward-line-nomark (&optional arg)
508 "Deactivate mark; move cursor vertically up ARG lines."
509 (interactive "p")
510 (pc-select-maybe-deactivate-mark)
511 (if (null arg)
512 (setq arg 1))
513 (forward-line (- arg))
514 (setq this-command 'forward-line)
515)
516
517(defun scroll-down-nomark (&optional arg)
518 "Deactivate mark; scroll down ARG lines; or near full screen if no ARG.
519A near full screen is `next-screen-context-lines' less than a full screen.
520Negative ARG means scroll upward.
521When calling from a program, supply a number as argument or nil.
522Attempting to scroll past the edge of buffer does not raise an
523error, unless `pc-select-override-scroll-error' is nil."
524 (interactive "P")
525 (pc-select-maybe-deactivate-mark)
526 (cond (pc-select-override-scroll-error
527 (condition-case nil (scroll-down arg)
528 (beginning-of-buffer (goto-char (point-min)))))
529 (t (scroll-down arg))))
530
531(defun end-of-buffer-nomark (&optional arg)
532 "Deactivate mark; move point to the end of the buffer.
533With arg N, put point N/10 of the way from the end.
534
535If the buffer is narrowed, this command uses the beginning and size
536of the accessible part of the buffer.
537
538Don't use this command in Lisp programs!
539\(goto-char (point-max)) is faster and avoids clobbering the mark."
540 (interactive "P")
541 (pc-select-maybe-deactivate-mark)
542 (let ((size (- (point-max) (point-min))))
543 (goto-char (if arg
544 (- (point-max)
545 (if (> size 10000)
546 ;; Avoid overflow for large buffer sizes!
547 (* (prefix-numeric-value arg)
548 (/ size 10))
549 (/ (* size (prefix-numeric-value arg)) 10)))
550 (point-max))))
551 ;; If we went to a place in the middle of the buffer,
552 ;; adjust it to the beginning of a line.
553 (if arg (forward-line 1)
554 ;; If the end of the buffer is not already on the screen,
555 ;; then scroll specially to put it near, but not at, the bottom.
556 (if (let ((old-point (point)))
557 (save-excursion
558 (goto-char (window-start))
559 (vertical-motion (window-height))
560 (< (point) old-point)))
561 (progn
562 (overlay-recenter (point))
563 (recenter -3)))))
564
565
566;;;;;;;;;;;;;;;;;;;;
567;;;;;; backwards and mark
568;;;;;;;;;;;;;;;;;;;;
569
570(defun backward-char-mark (&optional arg)
571 "Ensure mark is active; move point left ARG characters (right if ARG negative).
572On attempt to pass beginning or end of buffer, stop and signal error."
573 (interactive "p")
574 (pc-select-ensure-mark)
575 (backward-char arg))
576
577(defun backward-word-mark (&optional arg)
578 "Ensure mark is active; move backward until encountering the end of a word.
579With argument, do this that many times."
580 (interactive "p")
581 (pc-select-ensure-mark)
582 (backward-word arg))
583
584(defun backward-sexp-mark (&optional arg)
585 "Ensure mark is active; move backward across one balanced expression (sexp).
586With argument, do it that many times. Negative arg -N means
587move forward across N balanced expressions."
588 (interactive "p")
589 (pc-select-ensure-mark)
590 (backward-sexp arg))
591
592(defun backward-paragraph-mark (&optional arg)
593 "Ensure mark is active; move backward to start of paragraph.
594With arg N, do it N times; negative arg -N means move forward N paragraphs.
595
596A paragraph start is the beginning of a line which is a
597`first-line-of-paragraph' or which is ordinary text and follows a
598paragraph-separating line; except: if the first real line of a
599paragraph is preceded by a blank line, the paragraph starts at that
600blank line.
601
602See `forward-paragraph' for more information."
603 (interactive "p")
604 (pc-select-ensure-mark)
605 (backward-paragraph arg))
606
607(defun previous-line-mark (&optional arg)
608 "Ensure mark is active; move cursor vertically up ARG lines.
609If there is no character in the target line exactly over the current column,
610the cursor is positioned after the character in that line which spans this
611column, or at the end of the line if it is not long enough.
612
613The command \\[set-goal-column] can be used to create
614a semipermanent goal column to which this command always moves.
615Then it does not try to move vertically.
616
617If you are thinking of using this in a Lisp program, consider using
618`forward-line' with a negative argument instead. It is usually easier
619to use and more reliable (no dependence on goal column, etc.)."
620 (interactive "p")
621 (pc-select-ensure-mark)
622 (with-no-warnings (previous-line arg))
623 (setq this-command 'previous-line))
624
625(defun beginning-of-line-mark (&optional arg)
626 "Ensure mark is active; move point to beginning of current line.
627With argument ARG not nil or 1, move forward ARG - 1 lines first.
628If scan reaches end of buffer, stop there without error."
629 (interactive "p")
630 (pc-select-ensure-mark)
631 (beginning-of-line arg))
632
633
634(defun scroll-up-mark (&optional arg)
635 "Ensure mark is active; scroll upward ARG lines; or near full screen if no ARG.
636A near full screen is `next-screen-context-lines' less than a full screen.
637Negative ARG means scroll downward.
638When calling from a program, supply a number as argument or nil.
639Attempting to scroll past the edge of buffer does not raise an
640error, unless `pc-select-override-scroll-error' is nil."
641 (interactive "P")
642 (pc-select-ensure-mark)
643 (cond (pc-select-override-scroll-error
644 (condition-case nil (scroll-up arg)
645 (end-of-buffer (goto-char (point-max)))))
646 (t (scroll-up arg))))
647
648(defun beginning-of-buffer-mark (&optional arg)
649 "Ensure mark is active; move point to the beginning of the buffer.
650With arg N, put point N/10 of the way from the beginning.
651
652If the buffer is narrowed, this command uses the beginning and size
653of the accessible part of the buffer.
654
655Don't use this command in Lisp programs!
656\(goto-char (point-min)) is faster and avoids clobbering the mark."
657 (interactive "P")
658 (pc-select-ensure-mark)
659 (let ((size (- (point-max) (point-min))))
660 (goto-char (if arg
661 (+ (point-min)
662 (if (> size 10000)
663 ;; Avoid overflow for large buffer sizes!
664 (* (prefix-numeric-value arg)
665 (/ size 10))
666 (/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
667 (point-min))))
668 (if arg (forward-line 1)))
669
670;;;;;;;;
671;;; no mark
672;;;;;;;;
673
674(defun backward-char-nomark (&optional arg)
675 "Deactivate mark; move point left ARG characters (right if ARG negative).
676On attempt to pass beginning or end of buffer, stop and signal error."
677 (interactive "p")
678 (pc-select-maybe-deactivate-mark)
679 (backward-char arg))
680
681(defun backward-word-nomark (&optional arg)
682 "Deactivate mark; move backward until encountering the end of a word.
683With argument, do this that many times."
684 (interactive "p")
685 (pc-select-maybe-deactivate-mark)
686 (backward-word arg))
687
688(defun backward-sexp-nomark (&optional arg)
689 "Deactivate mark; move backward across one balanced expression (sexp).
690With argument, do it that many times. Negative arg -N means
691move forward across N balanced expressions."
692 (interactive "p")
693 (pc-select-maybe-deactivate-mark)
694 (backward-sexp arg))
695
696(defun backward-paragraph-nomark (&optional arg)
697 "Deactivate mark; move backward to start of paragraph.
698With arg N, do it N times; negative arg -N means move forward N paragraphs.
699
700A paragraph start is the beginning of a line which is a
701`first-line-of-paragraph' or which is ordinary text and follows a
702paragraph-separating line; except: if the first real line of a
703paragraph is preceded by a blank line, the paragraph starts at that
704blank line.
705
706See `forward-paragraph' for more information."
707 (interactive "p")
708 (pc-select-maybe-deactivate-mark)
709 (backward-paragraph arg))
710
711(defun previous-line-nomark (&optional arg)
712 "Deactivate mark; move cursor vertically up ARG lines.
713If there is no character in the target line exactly over the current column,
714the cursor is positioned after the character in that line which spans this
715column, or at the end of the line if it is not long enough.
716
717The command \\[set-goal-column] can be used to create
718a semipermanent goal column to which this command always moves.
719Then it does not try to move vertically."
720 (interactive "p")
721 (pc-select-maybe-deactivate-mark)
722 (with-no-warnings (previous-line arg))
723 (setq this-command 'previous-line))
724
725(defun beginning-of-line-nomark (&optional arg)
726 "Deactivate mark; move point to beginning of current line.
727With argument ARG not nil or 1, move forward ARG - 1 lines first.
728If scan reaches end of buffer, stop there without error."
729 (interactive "p")
730 (pc-select-maybe-deactivate-mark)
731 (beginning-of-line arg))
732
733(defun scroll-up-nomark (&optional arg)
734 "Deactivate mark; scroll upward ARG lines; or near full screen if no ARG.
735A near full screen is `next-screen-context-lines' less than a full screen.
736Negative ARG means scroll downward.
737When calling from a program, supply a number as argument or nil.
738Attempting to scroll past the edge of buffer does not raise an
739error, unless `pc-select-override-scroll-error' is nil."
740 (interactive "P")
741 (pc-select-maybe-deactivate-mark)
742 (cond (pc-select-override-scroll-error
743 (condition-case nil (scroll-up arg)
744 (end-of-buffer (goto-char (point-max)))))
745 (t (scroll-up arg))))
746
747(defun beginning-of-buffer-nomark (&optional arg)
748 "Deactivate mark; move point to the beginning of the buffer.
749With arg N, put point N/10 of the way from the beginning.
750
751If the buffer is narrowed, this command uses the beginning and size
752of the accessible part of the buffer.
753
754Don't use this command in Lisp programs!
755\(goto-char (point-min)) is faster and avoids clobbering the mark."
756 (interactive "P")
757 (pc-select-maybe-deactivate-mark)
758 (let ((size (- (point-max) (point-min))))
759 (goto-char (if arg
760 (+ (point-min)
761 (if (> size 10000)
762 ;; Avoid overflow for large buffer sizes!
763 (* (prefix-numeric-value arg)
764 (/ size 10))
765 (/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
766 (point-min))))
767 (if arg (forward-line 1)))
768
769
770(defun pc-select-define-keys (alist keymap)
771 "Make KEYMAP have the key bindings specified in ALIST."
772 (let ((lst alist))
773 (while lst
774 (define-key keymap (caar lst) (cdar lst))
775 (setq lst (cdr lst)))))
776
777(defun pc-select-restore-keys (alist keymap saved-map)
778 "Use ALIST to restore key bindings from SAVED-MAP into KEYMAP.
779Go through all the key bindings in ALIST, and, for each key
780binding, if KEYMAP and ALIST still agree on the key binding,
781restore the previous value of that key binding from SAVED-MAP."
782 (let ((lst alist))
783 (while lst
784 (when (equal (lookup-key keymap (caar lst)) (cdar lst))
785 (define-key keymap (caar lst) (lookup-key saved-map (caar lst))))
786 (setq lst (cdr lst)))))
787
788(defmacro pc-select-add-to-alist (alist var val)
789 "Ensure that ALIST contains the cons cell (VAR . VAL).
790If a cons cell whose car is VAR is already on the ALIST, update the
791cdr of that cell with VAL. Otherwise, make a new cons cell
792\(VAR . VAL), and prepend it onto ALIST."
793 (let ((elt (make-symbol "elt")))
794 `(let ((,elt (assq ',var ,alist)))
795 (if ,elt
796 (setcdr ,elt ,val)
797 (setq ,alist (cons (cons ',var ,val) ,alist))))))
798
799(defmacro pc-select-save-and-set-var (var newval)
800 "Set VAR to NEWVAL; save the old value.
801The old value is saved on the `pc-select-saved-settings-alist'."
802 `(when (boundp ',var)
803 (pc-select-add-to-alist pc-select-saved-settings-alist ,var ,var)
804 (setq ,var ,newval)))
805
806(defmacro pc-select-save-and-set-mode (mode &optional arg mode-var)
807 "Call the function MODE; save the old value of the variable MODE.
808MODE is presumed to be a function which turns on a minor mode. First,
809save the value of the variable MODE on `pc-select-saved-settings-alist'.
810Then, if ARG is specified, call MODE with ARG, otherwise call it with
811nil as an argument. If MODE-VAR is specified, save the value of the
812variable MODE-VAR (instead of the value of the variable MODE) on
813`pc-select-saved-settings-alist'."
814 (unless mode-var (setq mode-var mode))
815 `(when (fboundp ',mode)
816 (pc-select-add-to-alist pc-select-saved-settings-alist
817 ,mode-var ,mode-var)
818 (,mode ,arg)))
819
820(defmacro pc-select-restore-var (var)
821 "Restore the previous value of the variable VAR.
822Look up VAR's previous value in `pc-select-saved-settings-alist', and,
823if the value is found, set VAR to that value."
824 (let ((elt (make-symbol "elt")))
825 `(let ((,elt (assq ',var pc-select-saved-settings-alist)))
826 (unless (null ,elt)
827 (setq ,var (cdr ,elt))))))
828
829(defmacro pc-select-restore-mode (mode)
830 "Restore the previous state (either on or off) of the minor mode MODE.
831Look up the value of the variable MODE on `pc-select-saved-settings-alist'.
832If the value is non-nil, call the function MODE with an argument of
8331, otherwise call it with an argument of -1."
834 (let ((elt (make-symbol "elt")))
835 `(when (fboundp ',mode)
836 (let ((,elt (assq ',mode pc-select-saved-settings-alist)))
837 (unless (null ,elt)
838 (,mode (if (cdr ,elt) 1 -1)))))))
839
840
841;;;###autoload
842(define-minor-mode pc-selection-mode
843 "Change mark behavior to emulate Motif, Mac or MS-Windows cut and paste style.
844
845This mode enables Delete Selection mode and Transient Mark mode.
846
847The arrow keys (and others) are bound to new functions
848which modify the status of the mark.
849
850The ordinary arrow keys disable the mark.
851The shift-arrow keys move, leaving the mark behind.
852
853C-LEFT and C-RIGHT move back or forward one word, disabling the mark.
854S-C-LEFT and S-C-RIGHT move back or forward one word, leaving the mark behind.
855
856M-LEFT and M-RIGHT move back or forward one word or sexp, disabling the mark.
857S-M-LEFT and S-M-RIGHT move back or forward one word or sexp, leaving the mark
858behind. To control whether these keys move word-wise or sexp-wise set the
859variable `pc-select-meta-moves-sexps' after loading pc-select.el but before
860turning PC Selection mode on.
861
862C-DOWN and C-UP move back or forward a paragraph, disabling the mark.
863S-C-DOWN and S-C-UP move back or forward a paragraph, leaving the mark behind.
864
865HOME moves to beginning of line, disabling the mark.
866S-HOME moves to beginning of line, leaving the mark behind.
867With Ctrl or Meta, these keys move to beginning of buffer instead.
868
869END moves to end of line, disabling the mark.
870S-END moves to end of line, leaving the mark behind.
871With Ctrl or Meta, these keys move to end of buffer instead.
872
873PRIOR or PAGE-UP scrolls and disables the mark.
874S-PRIOR or S-PAGE-UP scrolls and leaves the mark behind.
875
876S-DELETE kills the region (`kill-region').
877S-INSERT yanks text from the kill ring (`yank').
878C-INSERT copies the region into the kill ring (`copy-region-as-kill').
879
880In addition, certain other PC bindings are imitated (to avoid this, set
881the variable `pc-select-selection-keys-only' to t after loading pc-select.el
882but before calling PC Selection mode):
883
884 F6 other-window
885 DELETE delete-char
886 C-DELETE kill-line
887 M-DELETE kill-word
888 C-M-DELETE kill-sexp
889 C-BACKSPACE backward-kill-word
890 M-BACKSPACE undo"
891 ;; FIXME: bring pc-bindings-mode here ?
892 nil nil nil
893
894 :group 'pc-select
895 :global t
896
897 (if pc-selection-mode
898 (if (null pc-select-key-bindings-alist)
899 (progn
900 (setq pc-select-saved-global-map (copy-keymap (current-global-map)))
901 (setq pc-select-key-bindings-alist
902 (append pc-select-default-key-bindings
903 (if pc-select-selection-keys-only
904 nil
905 pc-select-extra-key-bindings)
906 (if pc-select-meta-moves-sexps
907 (car pc-select-meta-moves-sexps-key-bindings)
908 (cadr pc-select-meta-moves-sexps-key-bindings))
909 (if (or pc-select-selection-keys-only
910 (eq window-system 'x)
911 (memq system-name '(ms-dos windows-nt)))
912 nil
913 pc-select-tty-key-bindings)))
914
915 (pc-select-define-keys pc-select-key-bindings-alist
916 (current-global-map))
917
918 (unless (or pc-select-selection-keys-only
919 (eq window-system 'x)
920 (memq system-name '(ms-dos windows-nt)))
921 ;; it is not clear that we need the following line
922 ;; I hope it doesn't do too much harm to leave it in, though...
923 (setq pc-select-old-M-delete-binding
924 (lookup-key function-key-map [M-delete]))
925 (define-key function-key-map [M-delete] [?\M-d]))
926
927 (when (and (not pc-select-selection-keys-only)
928 (or (eq window-system 'x)
929 (memq system-name '(ms-dos windows-nt)))
930 (fboundp 'normal-erase-is-backspace-mode))
931 (pc-select-save-and-set-mode normal-erase-is-backspace-mode 1
932 normal-erase-is-backspace))
933 ;; the original author also had this above:
934 ;; (setq-default normal-erase-is-backspace t)
935 ;; However, the documentation for the variable says that
936 ;; "setting it with setq has no effect", so I'm removing it.
937
938 (pc-select-save-and-set-var highlight-nonselected-windows nil)
939 (pc-select-save-and-set-var transient-mark-mode t)
940 (pc-select-save-and-set-var mark-even-if-inactive t)
941 (pc-select-save-and-set-mode delete-selection-mode 1))
942 ;;else
943 ;; If the user turned on pc-selection-mode a second time
944 ;; do not clobber the values of the variables that were
945 ;; saved from before pc-selection mode was activated --
946 ;; just make sure the values are the way we like them.
947 (pc-select-define-keys pc-select-key-bindings-alist
948 (current-global-map))
949 (unless (or pc-select-selection-keys-only
950 (eq window-system 'x)
951 (memq system-name '(ms-dos windows-nt)))
952 ;; it is not clear that we need the following line
953 ;; I hope it doesn't do too much harm to leave it in, though...
954 (define-key function-key-map [M-delete] [?\M-d]))
955 (when (and (not pc-select-selection-keys-only)
956 (or (eq window-system 'x)
957 (memq system-name '(ms-dos windows-nt)))
958 (fboundp 'normal-erase-is-backspace-mode))
959 (normal-erase-is-backspace-mode 1))
960 (setq highlight-nonselected-windows nil)
961 (setq transient-mark-mode t)
962 (setq mark-even-if-inactive t)
963 (delete-selection-mode 1))
964 ;;else
965 (when pc-select-key-bindings-alist
966 (when (and (not pc-select-selection-keys-only)
967 (or (eq window-system 'x)
968 (memq system-name '(ms-dos windows-nt))))
969 (pc-select-restore-mode normal-erase-is-backspace-mode))
970
971 (pc-select-restore-keys
972 pc-select-key-bindings-alist (current-global-map)
973 pc-select-saved-global-map)
974
975 (pc-select-restore-var highlight-nonselected-windows)
976 (pc-select-restore-var transient-mark-mode)
977 (pc-select-restore-var mark-even-if-inactive)
978 (pc-select-restore-mode delete-selection-mode)
979 (and pc-select-old-M-delete-binding
980 (define-key function-key-map [M-delete]
981 pc-select-old-M-delete-binding))
982 (setq pc-select-key-bindings-alist nil
983 pc-select-saved-settings-alist nil))))
984
985;;; pc-select.el ends here
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog
index ee81bc48693..b7cf79cc3cb 100644
--- a/lisp/erc/ChangeLog
+++ b/lisp/erc/ChangeLog
@@ -1,3 +1,13 @@
12011-02-07 Julien Danjou <julien@danjou.info>
2
3 * erc-track.el (erc-window-configuration-change): New function.
4 This will allow to track buffer visibility when a command is
5 finished to executed. Idea stolen from rcirc.
6 (track): Put erc-window-configuration-change in
7 window-configuration-change-hook.
8 (erc-modified-channels-update): Remove
9 erc-modified-channels-update from post-command-hook after update.
10
12011-01-31 Antoine Levitt <antoine.levitt@gmail.com> (tiny change) 112011-01-31 Antoine Levitt <antoine.levitt@gmail.com> (tiny change)
2 12
3 * erc-track.el (track): Don't reset erc-modified-channels-object 13 * erc-track.el (track): Don't reset erc-modified-channels-object
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index de920eb9c33..a89244f695d 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -653,7 +653,7 @@ module, otherwise the keybindings will not do anything useful."
653 (defadvice switch-to-buffer (after erc-update (&rest args) activate) 653 (defadvice switch-to-buffer (after erc-update (&rest args) activate)
654 (erc-modified-channels-update)) 654 (erc-modified-channels-update))
655 (add-hook 'window-configuration-change-hook 655 (add-hook 'window-configuration-change-hook
656 'erc-modified-channels-update)) 656 'erc-window-configuration-change))
657 (add-hook 'erc-insert-post-hook 'erc-track-modified-channels) 657 (add-hook 'erc-insert-post-hook 'erc-track-modified-channels)
658 (add-hook 'erc-disconnected-hook 'erc-modified-channels-update)) 658 (add-hook 'erc-disconnected-hook 'erc-modified-channels-update))
659 ;; enable the tracking keybindings 659 ;; enable the tracking keybindings
@@ -675,7 +675,7 @@ module, otherwise the keybindings will not do anything useful."
675 (if (featurep 'xemacs) 675 (if (featurep 'xemacs)
676 (ad-disable-advice 'switch-to-buffer 'after 'erc-update) 676 (ad-disable-advice 'switch-to-buffer 'after 'erc-update)
677 (remove-hook 'window-configuration-change-hook 677 (remove-hook 'window-configuration-change-hook
678 'erc-modified-channels-update)) 678 'erc-window-configuration-change))
679 (remove-hook 'erc-disconnected-hook 'erc-modified-channels-update) 679 (remove-hook 'erc-disconnected-hook 'erc-modified-channels-update)
680 (remove-hook 'erc-insert-post-hook 'erc-track-modified-channels)) 680 (remove-hook 'erc-insert-post-hook 'erc-track-modified-channels))
681 ;; disable the tracking keybindings 681 ;; disable the tracking keybindings
@@ -730,6 +730,12 @@ only consider active buffers visible.")
730 730
731;;; Tracking the channel modifications 731;;; Tracking the channel modifications
732 732
733(defun erc-window-configuration-change ()
734 (unless (minibuffer-window-active-p (minibuffer-window))
735 ;; delay this until command has finished to make sure window is
736 ;; actually visible before clearing activity
737 (add-hook 'post-command-hook 'erc-modified-channels-update)))
738
733(defvar erc-modified-channels-update-inside nil 739(defvar erc-modified-channels-update-inside nil
734 "Variable to prevent running `erc-modified-channels-update' multiple 740 "Variable to prevent running `erc-modified-channels-update' multiple
735times. Without it, you cannot debug `erc-modified-channels-display', 741times. Without it, you cannot debug `erc-modified-channels-display',
@@ -757,8 +763,9 @@ ARGS are ignored."
757 (erc-modified-channels-remove-buffer buffer)))) 763 (erc-modified-channels-remove-buffer buffer))))
758 erc-modified-channels-alist) 764 erc-modified-channels-alist)
759 (when removed-channel 765 (when removed-channel
760 (erc-modified-channels-display) 766 (erc-modified-channels-display)
761 (force-mode-line-update t))))) 767 (force-mode-line-update t)))
768 (remove-hook 'post-command-hook 'erc-modified-channels-update)))
762 769
763(defvar erc-track-mouse-face (if (featurep 'xemacs) 770(defvar erc-track-mouse-face (if (featurep 'xemacs)
764 'modeline-mousable 771 'modeline-mousable
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index a18f145cb68..ba4d270951b 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,20 @@
12011-02-09 Lars Ingebrigtsen <larsi@gnus.org>
2
3 * nntp.el (nntp-retrieve-group-data-early-disabled): Disable the async
4 code for now, since it doesn't work for all users.
5
62011-02-09 Julien Danjou <julien@danjou.info>
7
8 * message.el (message-options): Make message-options really buffer
9 local.
10
112011-02-08 Julien Danjou <julien@danjou.info>
12
13 * shr.el (shr-tag-body): Add support for text attribute in body
14 markups.
15
16 * message.el (message-options): Make message-options a local variable.
17
12011-02-07 Lars Ingebrigtsen <larsi@gnus.org> 182011-02-07 Lars Ingebrigtsen <larsi@gnus.org>
2 19
3 * nnimap.el (nnimap-update-info): Refactor slightly. 20 * nnimap.el (nnimap-update-info): Refactor slightly.
@@ -7,6 +24,7 @@
7 characters. 24 characters.
8 (nnimap-process-quirk): Renamed function to avoid collision. 25 (nnimap-process-quirk): Renamed function to avoid collision.
9 (nnimap-update-info): Fix macrology bug-out. 26 (nnimap-update-info): Fix macrology bug-out.
27 (nnimap-update-info): Simplify split history test.
10 28
112011-02-06 Lars Ingebrigtsen <larsi@gnus.org> 292011-02-06 Lars Ingebrigtsen <larsi@gnus.org>
12 30
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 3ba57caba4f..e30f7f2c973 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1814,6 +1814,7 @@ You must have the \"hashcash\" binary installed, see `hashcash-path'."
1814 1814
1815(defvar message-options nil 1815(defvar message-options nil
1816 "Some saved answers when sending message.") 1816 "Some saved answers when sending message.")
1817(make-variable-buffer-local 'message-options)
1817 1818
1818(defvar message-send-mail-real-function nil 1819(defvar message-send-mail-real-function nil
1819 "Internal send mail function.") 1820 "Internal send mail function.")
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index 127082bc28f..a6fe6b1489b 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -1342,13 +1342,11 @@ textual parts.")
1342 ;; Tell Gnus whether there are any \Recent messages in any of 1342 ;; Tell Gnus whether there are any \Recent messages in any of
1343 ;; the groups. 1343 ;; the groups.
1344 (let ((recent (cdr (assoc '%Recent flags)))) 1344 (let ((recent (cdr (assoc '%Recent flags))))
1345 (when (and active recent) 1345 (when (and active
1346 (while recent 1346 recent
1347 (when (> (car recent) (cdr active)) 1347 (> (car (last recent)) (cdr active)))
1348 (push (list (cons (gnus-group-real-name group) 0)) 1348 (push (list (cons (gnus-group-real-name group) 0))
1349 nnmail-split-history) 1349 nnmail-split-history)))
1350 (setq recent nil))
1351 (pop recent))))
1352 ;; Note the active level for the next run-through. 1350 ;; Note the active level for the next run-through.
1353 (gnus-group-set-parameter info 'active (gnus-active group)) 1351 (gnus-group-set-parameter info 'active (gnus-active group))
1354 (gnus-group-set-parameter info 'uidvalidity uidvalidity) 1352 (gnus-group-set-parameter info 'uidvalidity uidvalidity)
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 0e009b2068b..eb2dd004638 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -774,7 +774,7 @@ command whose response triggered the error."
774 (nntp-copy-to-buffer nntp-server-buffer (point-min) (point-max)) 774 (nntp-copy-to-buffer nntp-server-buffer (point-min) (point-max))
775 'headers))))) 775 'headers)))))
776 776
777(deffoo nntp-retrieve-group-data-early (server infos) 777(deffoo nntp-retrieve-group-data-early-disabled (server infos)
778 "Retrieve group info on INFOS." 778 "Retrieve group info on INFOS."
779 (nntp-with-open-group nil server 779 (nntp-with-open-group nil server
780 (when (nntp-find-connection-buffer nntp-server-buffer) 780 (when (nntp-find-connection-buffer nntp-server-buffer)
@@ -793,7 +793,7 @@ command whose response triggered the error."
793 nil command (gnus-group-real-name (gnus-info-group info))))) 793 nil command (gnus-group-real-name (gnus-info-group info)))))
794 (length infos))))) 794 (length infos)))))
795 795
796(deffoo nntp-finish-retrieve-group-infos (server infos count) 796(deffoo nntp-finish-retrieve-group-infos-disabled (server infos count)
797 (nntp-with-open-group nil server 797 (nntp-with-open-group nil server
798 (let ((buf (nntp-find-connection-buffer nntp-server-buffer)) 798 (let ((buf (nntp-find-connection-buffer nntp-server-buffer))
799 (method (gnus-find-method-for-group 799 (method (gnus-find-method-for-group
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el
index 5b4e6c7389d..bb9695ebb72 100644
--- a/lisp/gnus/shr.el
+++ b/lisp/gnus/shr.el
@@ -696,7 +696,8 @@ ones, in case fg and bg are nil."
696 696
697(defun shr-tag-body (cont) 697(defun shr-tag-body (cont)
698 (let* ((start (point)) 698 (let* ((start (point))
699 (fgcolor (cdr (assq :fgcolor cont))) 699 (fgcolor (cdr (or (assq :fgcolor cont)
700 (assq :text cont))))
700 (bgcolor (cdr (assq :bgcolor cont))) 701 (bgcolor (cdr (assq :bgcolor cont)))
701 (shr-stylesheet (list (cons 'color fgcolor) 702 (shr-stylesheet (list (cons 'color fgcolor)
702 (cons 'background-color bgcolor)))) 703 (cons 'background-color bgcolor))))
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 3e5b301cbfb..04048e0e572 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -2638,7 +2638,7 @@ will be inserted before the group at point."
2638;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group 2638;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group
2639;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group 2639;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
2640;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode 2640;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
2641;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "f163e17664a89a6f0aa2b15bfaaa65a4") 2641;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "eb3de21aef70e4ca75f611f1c3c56aa1")
2642;;; Generated autoloads from ibuf-ext.el 2642;;; Generated autoloads from ibuf-ext.el
2643 2643
2644(autoload 'ibuffer-auto-mode "ibuf-ext" "\ 2644(autoload 'ibuffer-auto-mode "ibuf-ext" "\
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 21934ce8b01..62fa7eb0feb 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -2185,14 +2185,23 @@ With a prefix arg, prompt for new topic."
2185 2185
2186(defun rcirc-cmd-ctcp (args &optional process target) 2186(defun rcirc-cmd-ctcp (args &optional process target)
2187 (if (string-match "^\\([^ ]+\\)\\s-+\\(.+\\)$" args) 2187 (if (string-match "^\\([^ ]+\\)\\s-+\\(.+\\)$" args)
2188 (let ((target (match-string 1 args)) 2188 (let* ((target (match-string 1 args))
2189 (request (match-string 2 args))) 2189 (request (upcase (match-string 2 args)))
2190 (rcirc-send-string process 2190 (function (intern-soft (concat "rcirc-ctcp-sender-" request))))
2191 (format "PRIVMSG %s \C-a%s\C-a" 2191 (if (fboundp function) ;; use special function if available
2192 target (upcase request)))) 2192 (funcall function process target request)
2193 (rcirc-send-string process
2194 (format "PRIVMSG %s :\C-a%s\C-a"
2195 target request))))
2193 (rcirc-print process (rcirc-nick process) "ERROR" nil 2196 (rcirc-print process (rcirc-nick process) "ERROR" nil
2194 "usage: /ctcp NICK REQUEST"))) 2197 "usage: /ctcp NICK REQUEST")))
2195 2198
2199(defun rcirc-ctcp-sender-PING (process target request)
2200 "Send a CTCP PING message to TARGET."
2201 (let ((timestamp (format "%.0f" (float-time))))
2202 (rcirc-send-string process
2203 (format "PRIVMSG %s :\C-aPING %s\C-a" target timestamp))))
2204
2196(defun rcirc-cmd-me (args &optional process target) 2205(defun rcirc-cmd-me (args &optional process target)
2197 (rcirc-send-string process (format "PRIVMSG %s :\C-aACTION %s\C-a" 2206 (rcirc-send-string process (format "PRIVMSG %s :\C-aACTION %s\C-a"
2198 target args))) 2207 target args)))
diff --git a/lisp/emulation/pc-mode.el b/lisp/obsolete/pc-mode.el
index c0ed1925b49..192392d3821 100644
--- a/lisp/emulation/pc-mode.el
+++ b/lisp/obsolete/pc-mode.el
@@ -4,6 +4,7 @@
4 4
5;; Maintainer: FSF 5;; Maintainer: FSF
6;; Keywords: emulations 6;; Keywords: emulations
7;; Obsolete-since: 24.1
7 8
8;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
9 10
diff --git a/lisp/obsolete/pc-select.el b/lisp/obsolete/pc-select.el
new file mode 100644
index 00000000000..9a5f9e9d9dc
--- /dev/null
+++ b/lisp/obsolete/pc-select.el
@@ -0,0 +1,417 @@
1;;; pc-select.el --- emulate mark, cut, copy and paste from Motif
2;;; (or MAC GUI or MS-windoze (bah)) look-and-feel
3;;; including key bindings.
4
5;; Copyright (C) 1995-1997, 2000-2011 Free Software Foundation, Inc.
6
7;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
8;; Keywords: convenience emulations
9;; Created: 26 Sep 1995
10;; Obsolete-since: 24.1
11
12;; This file is part of GNU Emacs.
13
14;; GNU Emacs is free software: you can redistribute it and/or modify
15;; it under the terms of the GNU General Public License as published by
16;; the Free Software Foundation, either version 3 of the License, or
17;; (at your option) any later version.
18
19;; GNU Emacs is distributed in the hope that it will be useful,
20;; but WITHOUT ANY WARRANTY; without even the implied warranty of
21;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22;; GNU General Public License for more details.
23
24;; You should have received a copy of the GNU General Public License
25;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
26
27;;; Commentary:
28
29;; This package emulates the mark, copy, cut and paste look-and-feel of motif
30;; programs (which is the same as the MAC gui and (sorry for that) MS-Windows).
31;; It modifies the keybindings of the cursor keys and the next, prior,
32;; home and end keys. They will modify mark-active.
33;; You can still get the old behavior of cursor moving with the
34;; control sequences C-f, C-b, etc.
35;; This package uses transient-mark-mode and
36;; delete-selection-mode.
37;;
38;; In addition to that all key-bindings from the pc-mode are
39;; done here too (as suggested by RMS).
40;;
41;; As I found out after I finished the first version, s-region.el tries
42;; to do the same.... But my code is a little more complete and using
43;; delete-selection-mode is very important for the look-and-feel.
44;; Pete Forman <pete.forman@airgun.wg.waii.com> provided some motif
45;; compliant keybindings which I added. I had to modify them a little
46;; to add the -mark and -nomark functionality of cursor moving.
47;;
48;; Credits:
49;; Many thanks to all who made comments.
50;; Thanks to RMS and Ralf Muschall <prm@rz.uni-jena.de> for criticism.
51;; Kevin Cutts <cutts@ukraine.corp.mot.com> added the beginning-of-buffer
52;; and end-of-buffer functions which I modified a little.
53;; David Biesack <sasdjb@unx.sas.com> suggested some more cleanup.
54;; Thanks to Pete Forman <pete.forman@airgun.wg.waii.com>
55;; for additional motif keybindings.
56;; Thanks to jvromans@squirrel.nl (Johan Vromans) for a bug report
57;; concerning setting of this-command.
58;; Dan Nicolaescu <done@ece.arizona.ro> suggested suppressing the
59;; scroll-up/scroll-down error.
60;; Eli Barzilay (eli@cs.bgu.ac.il) suggested the sexps functions and
61;; keybindings.
62;;
63;; Ok, some details about the idea of PC Selection mode:
64;;
65;; o The standard keys for moving around (right, left, up, down, home, end,
66;; prior, next, called "move-keys" from now on) will always de-activate
67;; the mark.
68;; o If you press "Shift" together with the "move-keys", the region
69;; you pass along is activated
70;; o You have the copy, cut and paste functions (as in many other programs)
71;; which will operate on the active region
72;; It was not possible to bind them to C-v, C-x and C-c for obvious
73;; emacs reasons.
74;; They will be bound according to the "old" behavior to S-delete (cut),
75;; S-insert (paste) and C-insert (copy). These keys do the same in many
76;; other programs.
77;;
78
79;;; Code:
80
81;; Customization:
82(defgroup pc-select nil
83 "Emulate pc bindings."
84 :prefix "pc-select"
85 :group 'emulations)
86
87(define-obsolete-variable-alias 'pc-select-override-scroll-error
88 'scroll-error-top-bottom
89 "24.1")
90(defcustom pc-select-override-scroll-error t
91 "Non-nil means don't generate error on scrolling past edge of buffer.
92This variable applies in PC Selection mode only.
93The scroll commands normally generate an error if you try to scroll
94past the top or bottom of the buffer. This is annoying when selecting
95text with these commands. If you set this variable to non-nil, these
96errors are suppressed."
97 :type 'boolean
98 :group 'pc-select)
99
100(defcustom pc-select-selection-keys-only nil
101 "Non-nil means only bind the basic selection keys when started.
102Other keys that emulate pc-behavior will be untouched.
103This gives mostly Emacs-like behavior with only the selection keys enabled."
104 :type 'boolean
105 :group 'pc-select)
106
107(defcustom pc-select-meta-moves-sexps nil
108 "Non-nil means move sexp-wise with Meta key, otherwise move word-wise."
109 :type 'boolean
110 :group 'pc-select)
111
112(defcustom pc-selection-mode-hook nil
113 "The hook to run when PC Selection mode is toggled."
114 :type 'hook
115 :group 'pc-select)
116
117(defvar pc-select-saved-settings-alist nil
118 "The values of the variables before PC Selection mode was toggled on.
119When PC Selection mode is toggled on, it sets quite a few variables
120for its own purposes. This alist holds the original values of the
121variables PC Selection mode had set, so that these variables can be
122restored to their original values when PC Selection mode is toggled off.")
123
124(defvar pc-select-map nil
125 "The keymap used as the global map when PC Selection mode is on." )
126
127(defvar pc-select-saved-global-map nil
128 "The global map that was in effect when PC Selection mode was toggled on.")
129
130(defvar pc-select-key-bindings-alist nil
131 "This alist holds all the key bindings PC Selection mode sets.")
132
133(defvar pc-select-default-key-bindings nil
134 "These key bindings always get set by PC Selection mode.")
135
136(defvar pc-select-extra-key-bindings
137 ;; The following keybindings are for standard ISO keyboards
138 ;; as they are used with IBM compatible PCs, IBM RS/6000,
139 ;; MACs, many X-Stations and probably more.
140 '(;; Commented out since it's been standard at least since Emacs-21.
141 ;;([S-insert] . yank)
142 ;;([C-insert] . copy-region-as-kill)
143 ;;([S-delete] . kill-region)
144
145 ;; The following bindings are useful on Sun Type 3 keyboards
146 ;; They implement the Get-Delete-Put (copy-cut-paste)
147 ;; functions from sunview on the L6, L8 and L10 keys
148 ;; Sam Steingold <sds@gnu.org> says that f16 is copy and f18 is paste.
149 ([f16] . copy-region-as-kill)
150 ([f18] . yank)
151 ([f20] . kill-region)
152
153 ;; The following bindings are from Pete Forman.
154 ([f6] . other-window) ; KNextPane F6
155 ([C-delete] . kill-line) ; KEraseEndLine cDel
156 ("\M-\d" . undo) ; KUndo aBS
157
158 ;; The following binding is taken from pc-mode.el
159 ;; as suggested by RMS.
160 ;; I only used the one that is not covered above.
161 ([C-M-delete] . kill-sexp)
162 ;; Next line proposed by Eli Barzilay
163 ([C-escape] . electric-buffer-list))
164 "Key bindings to set only if `pc-select-selection-keys-only' is nil.")
165
166(defvar pc-select-meta-moves-sexps-key-bindings
167 '((([M-right] . forward-sexp)
168 ([M-left] . backward-sexp))
169 (([M-right] . forward-word)
170 ([M-left] . backward-word)))
171 "The list of key bindings controlled by `pc-select-meta-moves-sexp'.
172The bindings in the car of this list get installed if
173`pc-select-meta-moves-sexp' is t, the bindings in the cadr of this
174list get installed otherwise.")
175
176;; This is for tty. We don't turn on normal-erase-is-backspace,
177;; but bind keys as pc-selection-mode did before
178;; normal-erase-is-backspace was invented, to keep us back
179;; compatible.
180(defvar pc-select-tty-key-bindings
181 '(([delete] . delete-char) ; KDelete Del
182 ([C-backspace] . backward-kill-word))
183 "The list of key bindings controlled by `pc-select-selection-keys-only'.
184These key bindings get installed when running in a tty, but only if
185`pc-select-selection-keys-only' is nil.")
186
187(defvar pc-select-old-M-delete-binding nil
188 "Holds the old mapping of [M-delete] in the `function-key-map'.
189This variable holds the value associated with [M-delete] in the
190`function-key-map' before PC Selection mode had changed that
191association.")
192
193;;;;
194;; misc
195;;;;
196
197(provide 'pc-select)
198
199(defun pc-select-define-keys (alist keymap)
200 "Make KEYMAP have the key bindings specified in ALIST."
201 (let ((lst alist))
202 (while lst
203 (define-key keymap (caar lst) (cdar lst))
204 (setq lst (cdr lst)))))
205
206(defun pc-select-restore-keys (alist keymap saved-map)
207 "Use ALIST to restore key bindings from SAVED-MAP into KEYMAP.
208Go through all the key bindings in ALIST, and, for each key
209binding, if KEYMAP and ALIST still agree on the key binding,
210restore the previous value of that key binding from SAVED-MAP."
211 (let ((lst alist))
212 (while lst
213 (when (equal (lookup-key keymap (caar lst)) (cdar lst))
214 (define-key keymap (caar lst) (lookup-key saved-map (caar lst))))
215 (setq lst (cdr lst)))))
216
217(defmacro pc-select-add-to-alist (alist var val)
218 "Ensure that ALIST contains the cons cell (VAR . VAL).
219If a cons cell whose car is VAR is already on the ALIST, update the
220cdr of that cell with VAL. Otherwise, make a new cons cell
221\(VAR . VAL), and prepend it onto ALIST."
222 (let ((elt (make-symbol "elt")))
223 `(let ((,elt (assq ',var ,alist)))
224 (if ,elt
225 (setcdr ,elt ,val)
226 (setq ,alist (cons (cons ',var ,val) ,alist))))))
227
228(defmacro pc-select-save-and-set-var (var newval)
229 "Set VAR to NEWVAL; save the old value.
230The old value is saved on the `pc-select-saved-settings-alist'."
231 `(when (boundp ',var)
232 (pc-select-add-to-alist pc-select-saved-settings-alist ,var ,var)
233 (setq ,var ,newval)))
234
235(defmacro pc-select-save-and-set-mode (mode &optional arg mode-var)
236 "Call the function MODE; save the old value of the variable MODE.
237MODE is presumed to be a function which turns on a minor mode. First,
238save the value of the variable MODE on `pc-select-saved-settings-alist'.
239Then, if ARG is specified, call MODE with ARG, otherwise call it with
240nil as an argument. If MODE-VAR is specified, save the value of the
241variable MODE-VAR (instead of the value of the variable MODE) on
242`pc-select-saved-settings-alist'."
243 (unless mode-var (setq mode-var mode))
244 `(when (fboundp ',mode)
245 (pc-select-add-to-alist pc-select-saved-settings-alist
246 ,mode-var ,mode-var)
247 (,mode ,arg)))
248
249(defmacro pc-select-restore-var (var)
250 "Restore the previous value of the variable VAR.
251Look up VAR's previous value in `pc-select-saved-settings-alist', and,
252if the value is found, set VAR to that value."
253 (let ((elt (make-symbol "elt")))
254 `(let ((,elt (assq ',var pc-select-saved-settings-alist)))
255 (unless (null ,elt)
256 (setq ,var (cdr ,elt))))))
257
258(defmacro pc-select-restore-mode (mode)
259 "Restore the previous state (either on or off) of the minor mode MODE.
260Look up the value of the variable MODE on `pc-select-saved-settings-alist'.
261If the value is non-nil, call the function MODE with an argument of
2621, otherwise call it with an argument of -1."
263 (let ((elt (make-symbol "elt")))
264 `(when (fboundp ',mode)
265 (let ((,elt (assq ',mode pc-select-saved-settings-alist)))
266 (unless (null ,elt)
267 (,mode (if (cdr ,elt) 1 -1)))))))
268
269
270;;;###autoload
271(define-minor-mode pc-selection-mode
272 "Change mark behavior to emulate Motif, Mac or MS-Windows cut and paste style.
273
274This mode enables Delete Selection mode and Transient Mark mode.
275
276The arrow keys (and others) are bound to new functions
277which modify the status of the mark.
278
279The ordinary arrow keys disable the mark.
280The shift-arrow keys move, leaving the mark behind.
281
282C-LEFT and C-RIGHT move back or forward one word, disabling the mark.
283S-C-LEFT and S-C-RIGHT move back or forward one word, leaving the mark behind.
284
285M-LEFT and M-RIGHT move back or forward one word or sexp, disabling the mark.
286S-M-LEFT and S-M-RIGHT move back or forward one word or sexp, leaving the mark
287behind. To control whether these keys move word-wise or sexp-wise set the
288variable `pc-select-meta-moves-sexps' after loading pc-select.el but before
289turning PC Selection mode on.
290
291C-DOWN and C-UP move back or forward a paragraph, disabling the mark.
292S-C-DOWN and S-C-UP move back or forward a paragraph, leaving the mark behind.
293
294HOME moves to beginning of line, disabling the mark.
295S-HOME moves to beginning of line, leaving the mark behind.
296With Ctrl or Meta, these keys move to beginning of buffer instead.
297
298END moves to end of line, disabling the mark.
299S-END moves to end of line, leaving the mark behind.
300With Ctrl or Meta, these keys move to end of buffer instead.
301
302PRIOR or PAGE-UP scrolls and disables the mark.
303S-PRIOR or S-PAGE-UP scrolls and leaves the mark behind.
304
305S-DELETE kills the region (`kill-region').
306S-INSERT yanks text from the kill ring (`yank').
307C-INSERT copies the region into the kill ring (`copy-region-as-kill').
308
309In addition, certain other PC bindings are imitated (to avoid this, set
310the variable `pc-select-selection-keys-only' to t after loading pc-select.el
311but before calling PC Selection mode):
312
313 F6 other-window
314 DELETE delete-char
315 C-DELETE kill-line
316 M-DELETE kill-word
317 C-M-DELETE kill-sexp
318 C-BACKSPACE backward-kill-word
319 M-BACKSPACE undo"
320 ;; FIXME: bring pc-bindings-mode here ?
321 nil nil nil
322
323 :group 'pc-select
324 :global t
325
326 (if pc-selection-mode
327 (if (null pc-select-key-bindings-alist)
328 (progn
329 (setq pc-select-saved-global-map (copy-keymap (current-global-map)))
330 (setq pc-select-key-bindings-alist
331 (append pc-select-default-key-bindings
332 (if pc-select-selection-keys-only
333 nil
334 pc-select-extra-key-bindings)
335 (if pc-select-meta-moves-sexps
336 (car pc-select-meta-moves-sexps-key-bindings)
337 (cadr pc-select-meta-moves-sexps-key-bindings))
338 (if (or pc-select-selection-keys-only
339 (eq window-system 'x)
340 (memq system-name '(ms-dos windows-nt)))
341 nil
342 pc-select-tty-key-bindings)))
343
344 (pc-select-define-keys pc-select-key-bindings-alist
345 (current-global-map))
346
347 (unless (or pc-select-selection-keys-only
348 (eq window-system 'x)
349 (memq system-name '(ms-dos windows-nt)))
350 ;; it is not clear that we need the following line
351 ;; I hope it doesn't do too much harm to leave it in, though...
352 (setq pc-select-old-M-delete-binding
353 (lookup-key function-key-map [M-delete]))
354 (define-key function-key-map [M-delete] [?\M-d]))
355
356 (when (and (not pc-select-selection-keys-only)
357 (or (eq window-system 'x)
358 (memq system-name '(ms-dos windows-nt)))
359 (fboundp 'normal-erase-is-backspace-mode))
360 (pc-select-save-and-set-mode normal-erase-is-backspace-mode 1
361 normal-erase-is-backspace))
362 ;; the original author also had this above:
363 ;; (setq-default normal-erase-is-backspace t)
364 ;; However, the documentation for the variable says that
365 ;; "setting it with setq has no effect", so I'm removing it.
366
367 (pc-select-save-and-set-var highlight-nonselected-windows nil)
368 (pc-select-save-and-set-var transient-mark-mode t)
369 (pc-select-save-and-set-var shift-select-mode t)
370 (pc-select-save-and-set-var mark-even-if-inactive t)
371 (pc-select-save-and-set-mode delete-selection-mode 1))
372 ;;else
373 ;; If the user turned on pc-selection-mode a second time
374 ;; do not clobber the values of the variables that were
375 ;; saved from before pc-selection mode was activated --
376 ;; just make sure the values are the way we like them.
377 (pc-select-define-keys pc-select-key-bindings-alist
378 (current-global-map))
379 (unless (or pc-select-selection-keys-only
380 (eq window-system 'x)
381 (memq system-name '(ms-dos windows-nt)))
382 ;; it is not clear that we need the following line
383 ;; I hope it doesn't do too much harm to leave it in, though...
384 (define-key function-key-map [M-delete] [?\M-d]))
385 (when (and (not pc-select-selection-keys-only)
386 (or (eq window-system 'x)
387 (memq system-name '(ms-dos windows-nt)))
388 (fboundp 'normal-erase-is-backspace-mode))
389 (normal-erase-is-backspace-mode 1))
390 (setq highlight-nonselected-windows nil)
391 (setq transient-mark-mode t)
392 (setq mark-even-if-inactive t)
393 (delete-selection-mode 1))
394 ;;else
395 (when pc-select-key-bindings-alist
396 (when (and (not pc-select-selection-keys-only)
397 (or (eq window-system 'x)
398 (memq system-name '(ms-dos windows-nt))))
399 (pc-select-restore-mode normal-erase-is-backspace-mode))
400
401 (pc-select-restore-keys
402 pc-select-key-bindings-alist (current-global-map)
403 pc-select-saved-global-map)
404
405 (pc-select-restore-var highlight-nonselected-windows)
406 (pc-select-restore-var transient-mark-mode)
407 (pc-select-restore-var shift-select-mode)
408 (pc-select-restore-var mark-even-if-inactive)
409 (pc-select-restore-mode delete-selection-mode)
410 (and pc-select-old-M-delete-binding
411 (define-key function-key-map [M-delete]
412 pc-select-old-M-delete-binding))
413 (setq pc-select-key-bindings-alist nil
414 pc-select-saved-settings-alist nil))))
415(make-obsolete 'pc-selection-mode 'delete-selection-mode "24.1")
416
417;;; pc-select.el ends here
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index d80d814156e..900072fe356 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -948,12 +948,12 @@ Point is at the beginning of the next line."
948 ;; We're looking at <<STRING, so we add "^STRING$" to the syntactic 948 ;; We're looking at <<STRING, so we add "^STRING$" to the syntactic
949 ;; font-lock keywords to detect the end of this here document. 949 ;; font-lock keywords to detect the end of this here document.
950 (let ((str (replace-regexp-in-string "['\"]" "" string)) 950 (let ((str (replace-regexp-in-string "['\"]" "" string))
951 (ppss (save-excursion (syntax-ppss (1- (point)))))) 951 (ppss (save-excursion (syntax-ppss eol))))
952 (if (nth 4 ppss) 952 (if (nth 4 ppss)
953 ;; The \n not only starts the heredoc but also closes a comment. 953 ;; The \n not only starts the heredoc but also closes a comment.
954 ;; Let's close the comment just before the \n. 954 ;; Let's close the comment just before the \n.
955 (put-text-property (1- (point)) (point) 'syntax-table '(12))) ;">" 955 (put-text-property (1- eol) eol 'syntax-table '(12))) ;">"
956 (if (or (nth 5 ppss) (> (count-lines start (point)) 1)) 956 (if (or (nth 5 ppss) (> (count-lines start eol) 1))
957 ;; If the sh-escaped-line-re part of sh-here-doc-open-re has matched 957 ;; If the sh-escaped-line-re part of sh-here-doc-open-re has matched
958 ;; several lines, make sure we refontify them together. 958 ;; several lines, make sure we refontify them together.
959 ;; Furthermore, if (nth 5 ppss) is non-nil (i.e. the \n is 959 ;; Furthermore, if (nth 5 ppss) is non-nil (i.e. the \n is
@@ -961,7 +961,7 @@ Point is at the beginning of the next line."
961 ;; Don't bother fixing it now, but place a multiline property so 961 ;; Don't bother fixing it now, but place a multiline property so
962 ;; that when jit-lock-context-* refontifies the rest of the 962 ;; that when jit-lock-context-* refontifies the rest of the
963 ;; buffer, it also refontifies the current line with it. 963 ;; buffer, it also refontifies the current line with it.
964 (put-text-property start (point) 'syntax-multiline t)) 964 (put-text-property start (1+ eol) 'syntax-multiline t))
965 (put-text-property eol (1+ eol) 'sh-here-doc-marker str) 965 (put-text-property eol (1+ eol) 'sh-here-doc-marker str)
966 (prog1 sh-here-doc-syntax 966 (prog1 sh-here-doc-syntax
967 (goto-char (+ 2 start)))))) 967 (goto-char (+ 2 start))))))
@@ -1083,33 +1083,33 @@ subshells can nest."
1083(defun sh-syntax-propertize-function (start end) 1083(defun sh-syntax-propertize-function (start end)
1084 (goto-char start) 1084 (goto-char start)
1085 (sh-syntax-propertize-here-doc end) 1085 (sh-syntax-propertize-here-doc end)
1086 (funcall 1086 (funcall
1087 (syntax-propertize-rules 1087 (syntax-propertize-rules
1088 (sh-here-doc-open-re 1088 (sh-here-doc-open-re
1089 (2 (sh-font-lock-open-heredoc 1089 (2 (sh-font-lock-open-heredoc
1090 (match-beginning 0) (match-string 1) (match-beginning 2)))) 1090 (match-beginning 0) (match-string 1) (match-beginning 2))))
1091 ("\\s|" (0 (prog1 nil (sh-syntax-propertize-here-doc end)))) 1091 ("\\s|" (0 (prog1 nil (sh-syntax-propertize-here-doc end))))
1092 ;; A `#' begins a comment when it is unquoted and at the 1092 ;; A `#' begins a comment when it is unquoted and at the
1093 ;; beginning of a word. In the shell, words are separated by 1093 ;; beginning of a word. In the shell, words are separated by
1094 ;; metacharacters. The list of special chars is taken from 1094 ;; metacharacters. The list of special chars is taken from
1095 ;; the single-unix spec of the shell command language (under 1095 ;; the single-unix spec of the shell command language (under
1096 ;; `quoting') but with `$' removed. 1096 ;; `quoting') but with `$' removed.
1097 ("[^|&;<>()`\\\"' \t\n]\\(#+\\)" (1 "_")) 1097 ("[^|&;<>()`\\\"' \t\n]\\(#+\\)" (1 "_"))
1098 ;; In a '...' the backslash is not escaping. 1098 ;; In a '...' the backslash is not escaping.
1099 ("\\(\\\\\\)'" (1 (sh-font-lock-backslash-quote))) 1099 ("\\(\\\\\\)'" (1 (sh-font-lock-backslash-quote)))
1100 ;; Make sure $@ and $? are correctly recognized as sexps. 1100 ;; Make sure $@ and $? are correctly recognized as sexps.
1101 ("\\$\\([?@]\\)" (1 "_")) 1101 ("\\$\\([?@]\\)" (1 "_"))
1102 ;; Distinguish the special close-paren in `case'. 1102 ;; Distinguish the special close-paren in `case'.
1103 (")" (0 (sh-font-lock-paren (match-beginning 0)))) 1103 (")" (0 (sh-font-lock-paren (match-beginning 0))))
1104 ;; Highlight (possibly nested) subshells inside "" quoted 1104 ;; Highlight (possibly nested) subshells inside "" quoted
1105 ;; regions correctly. 1105 ;; regions correctly.
1106 ("\"\\(?:\\(?:[^\\\"]\\|\\)*?[^\\]\\(?:\\\\\\\\\\)*\\)??\\(\\$(\\|`\\)" 1106 ("\"\\(?:\\(?:[^\\\"]\\|\\)*?[^\\]\\(?:\\\\\\\\\\)*\\)??\\(\\$(\\|`\\)"
1107 (1 (ignore 1107 (1 (ignore
1108 ;; Save excursion because we want to also apply other 1108 ;; Save excursion because we want to also apply other
1109 ;; syntax-propertize rules within the affected region. 1109 ;; syntax-propertize rules within the affected region.
1110 (if (nth 8 (syntax-ppss)) 1110 (if (nth 8 (syntax-ppss))
1111 (goto-char (1+ (match-beginning 0))) 1111 (goto-char (1+ (match-beginning 0)))
1112 (save-excursion 1112 (save-excursion
1113 (sh-font-lock-quoted-subshell end))))))) 1113 (sh-font-lock-quoted-subshell end)))))))
1114 (point) end)) 1114 (point) end))
1115 1115
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 450ede33a50..d1cd1c04e00 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,15 @@
12011-02-10 Glenn Morris <rgm@gnu.org>
2
3 * lwlib-Xaw.c, lwlib-Xlw.c, lwlib-Xm.c, lwlib-utils.c, lwlib.c:
4 * xlwmenu.c: Standardize on <> for includes from the ../src directory.
5
62011-02-09 Glenn Morris <rgm@gnu.org>
7
8 * Makefile.in (@SET_MAKE@): New, set by configure.
9 (globals): New variable and rule.
10 (lwlib-utils.o, lwlib.o, lwlib-Xlw.o, lwlib-Xaw.o, lwlib-Xm.o)
11 (xlwmenu.o): Add dependency on src/globals.h.
12
12011-01-31 Jan Djärv <jan.h.d@swipnet.se> 132011-01-31 Jan Djärv <jan.h.d@swipnet.se>
2 14
3 * lwlib-Xm.c (make_destroyed_instance): 15 * lwlib-Xm.c (make_destroyed_instance):
diff --git a/lwlib/Makefile.in b/lwlib/Makefile.in
index a89d60dc68b..68b465dff30 100644
--- a/lwlib/Makefile.in
+++ b/lwlib/Makefile.in
@@ -24,6 +24,7 @@
24 24
25srcdir=@srcdir@ 25srcdir=@srcdir@
26VPATH=@srcdir@ 26VPATH=@srcdir@
27@SET_MAKE@
27C_SWITCH_X_SITE=@C_SWITCH_X_SITE@ 28C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
28C_SWITCH_X_SYSTEM=@C_SWITCH_X_SYSTEM@ 29C_SWITCH_X_SYSTEM=@C_SWITCH_X_SYSTEM@
29C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@ 30C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
@@ -65,16 +66,22 @@ liblw.a: $(OBJS)
65 $(AR) $@ $(OBJS) 66 $(AR) $@ $(OBJS)
66 $(RANLIB) $@ 67 $(RANLIB) $@
67 68
69## lisp.h includes this.
70globals = ../src/globals.h
71
72$(globals):
73 cd ../src; $(MAKE) $(MFLAGS) globals.h
74
68# Depend on Makefile so that we recompile if TOOLKIT_DEFINES changes. 75# Depend on Makefile so that we recompile if TOOLKIT_DEFINES changes.
69lwlib.o: $(srcdir)/lwlib.c Makefile 76lwlib.o: $(srcdir)/lwlib.c Makefile
70 $(CC) -c $(CPPFLAGS) $(TOOLKIT_DEFINES) $(ALL_CFLAGS) $(srcdir)/lwlib.c 77 $(CC) -c $(CPPFLAGS) $(TOOLKIT_DEFINES) $(ALL_CFLAGS) $(srcdir)/lwlib.c
71 78
72lwlib-utils.o: lwlib-utils.c lwlib-utils.h 79lwlib-utils.o: $(globals) lwlib-utils.c lwlib-utils.h
73lwlib.o: lwlib.c lwlib.h lwlib-int.h lwlib-Xaw.h lwlib-Xlw.h 80lwlib.o: $(globals) lwlib.c lwlib.h lwlib-int.h lwlib-Xaw.h lwlib-Xlw.h
74lwlib-Xlw.o: lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h 81lwlib-Xlw.o: $(globals) lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h
75lwlib-Xaw.o: lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h 82lwlib-Xaw.o: $(globals) lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h
76lwlib-Xm.o: lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h 83lwlib-Xm.o: $(globals) lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h
77xlwmenu.o: xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h 84xlwmenu.o: $(globals) xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h
78 85
79mostlyclean: 86mostlyclean:
80 $(RM) *.o core liblw.a \#* 87 $(RM) *.o core liblw.a \#*
diff --git a/lwlib/lwlib-Xaw.c b/lwlib/lwlib-Xaw.c
index cf98a371968..19c2440989d 100644
--- a/lwlib/lwlib-Xaw.c
+++ b/lwlib/lwlib-Xaw.c
@@ -1,4 +1,5 @@
1/* The lwlib interface to Athena widgets. 1/* The lwlib interface to Athena widgets.
2
2Copyright (C) 1993 Chuck Thompson <cthomp@cs.uiuc.edu> 3Copyright (C) 1993 Chuck Thompson <cthomp@cs.uiuc.edu>
3Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. 4Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc.
4 5
@@ -27,7 +28,7 @@ Boston, MA 02110-1301, USA. */
27#include <setjmp.h> 28#include <setjmp.h>
28#include <ctype.h> 29#include <ctype.h>
29 30
30#include "../src/lisp.h" 31#include <lisp.h>
31 32
32#include "lwlib-Xaw.h" 33#include "lwlib-Xaw.h"
33 34
@@ -833,4 +834,3 @@ xaw_creation_table [] =
833 {"main", xaw_create_main}, 834 {"main", xaw_create_main},
834 {NULL, NULL} 835 {NULL, NULL}
835}; 836};
836
diff --git a/lwlib/lwlib-Xlw.c b/lwlib/lwlib-Xlw.c
index 537011738fd..fe33eec29bf 100644
--- a/lwlib/lwlib-Xlw.c
+++ b/lwlib/lwlib-Xlw.c
@@ -1,6 +1,7 @@
1/* The lwlib interface to "xlwmenu" menus. 1/* The lwlib interface to "xlwmenu" menus.
2 Copyright (C) 1992 Lucid, Inc. 2
3 Copyright (C) 1994, 2000-2011 Free Software Foundation, Inc. 3Copyright (C) 1992 Lucid, Inc.
4Copyright (C) 1994, 2000-2011 Free Software Foundation, Inc.
4 5
5This file is part of the Lucid Widget Library. 6This file is part of the Lucid Widget Library.
6 7
@@ -24,7 +25,7 @@ Boston, MA 02110-1301, USA. */
24#endif 25#endif
25 26
26#include <setjmp.h> 27#include <setjmp.h>
27#include "lisp.h" 28#include <lisp.h>
28 29
29#include "lwlib-Xlw.h" 30#include "lwlib-Xlw.h"
30#include <X11/StringDefs.h> 31#include <X11/StringDefs.h>
@@ -272,4 +273,3 @@ xlw_destroy_instance (widget_instance *instance)
272 if (instance->widget) 273 if (instance->widget)
273 XtDestroyWidget (instance->widget); 274 XtDestroyWidget (instance->widget);
274} 275}
275
diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c
index 059cf10d2bb..55b27b9dab0 100644
--- a/lwlib/lwlib-Xm.c
+++ b/lwlib/lwlib-Xm.c
@@ -34,7 +34,7 @@ Boston, MA 02110-1301, USA. */
34#include <X11/CoreP.h> 34#include <X11/CoreP.h>
35#include <X11/CompositeP.h> 35#include <X11/CompositeP.h>
36 36
37#include "../src/lisp.h" 37#include <lisp.h>
38 38
39#include "lwlib-Xm.h" 39#include "lwlib-Xm.h"
40#include "lwlib-utils.h" 40#include "lwlib-utils.h"
@@ -1956,4 +1956,3 @@ xm_manage_resizing (Widget w, Boolean flag)
1956{ 1956{
1957 XtVaSetValues (w, XtNallowShellResize, flag, NULL); 1957 XtVaSetValues (w, XtNallowShellResize, flag, NULL);
1958} 1958}
1959
diff --git a/lwlib/lwlib-utils.c b/lwlib/lwlib-utils.c
index 30f4f94f376..7c9a56d2aeb 100644
--- a/lwlib/lwlib-utils.c
+++ b/lwlib/lwlib-utils.c
@@ -1,4 +1,5 @@
1/* Defines some widget utility functions. 1/* Defines some widget utility functions.
2
2Copyright (C) 1992 Lucid, Inc. 3Copyright (C) 1992 Lucid, Inc.
3Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc. 4Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc.
4 5
@@ -31,7 +32,7 @@ Boston, MA 02110-1301, USA. */
31#undef rindex 32#undef rindex
32 33
33#include <setjmp.h> 34#include <setjmp.h>
34#include "../src/lisp.h" 35#include <lisp.h>
35 36
36#include <X11/Xatom.h> 37#include <X11/Xatom.h>
37#include <X11/IntrinsicP.h> 38#include <X11/IntrinsicP.h>
@@ -173,4 +174,3 @@ XtSafelyDestroyWidget (Widget widget)
173 abort (); 174 abort ();
174#endif 175#endif
175} 176}
176
diff --git a/lwlib/lwlib.c b/lwlib/lwlib.c
index e03196d7927..290ce091301 100644
--- a/lwlib/lwlib.c
+++ b/lwlib/lwlib.c
@@ -1,4 +1,5 @@
1/* A general interface to the widgets of different toolkits. 1/* A general interface to the widgets of different toolkits.
2
2Copyright (C) 1992, 1993 Lucid, Inc. 3Copyright (C) 1992, 1993 Lucid, Inc.
3Copyright (C) 1994-1996, 1999-2011 Free Software Foundation, Inc. 4Copyright (C) 1994-1996, 1999-2011 Free Software Foundation, Inc.
4 5
@@ -24,7 +25,7 @@ Boston, MA 02110-1301, USA. */
24#endif 25#endif
25 26
26#include <setjmp.h> 27#include <setjmp.h>
27#include "../src/lisp.h" 28#include <lisp.h>
28 29
29#include <sys/types.h> 30#include <sys/types.h>
30#include <stdio.h> 31#include <stdio.h>
@@ -1418,4 +1419,3 @@ lw_separator_p (const char *label, enum menu_separator *type, int motif_p)
1418 1419
1419 return separator_p; 1420 return separator_p;
1420} 1421}
1421
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index a53275c8e87..065d81e1fde 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -1,4 +1,5 @@
1/* Implements a lightweight menubar widget. 1/* Implements a lightweight menubar widget.
2
2Copyright (C) 1992 Lucid, Inc. 3Copyright (C) 1992 Lucid, Inc.
3Copyright (C) 1994-1995, 1997, 1999-2011 Free Software Foundation, Inc. 4Copyright (C) 1994-1995, 1997, 1999-2011 Free Software Foundation, Inc.
4 5
@@ -26,7 +27,7 @@ Boston, MA 02110-1301, USA. */
26#endif 27#endif
27 28
28#include <setjmp.h> 29#include <setjmp.h>
29#include "lisp.h" 30#include <lisp.h>
30 31
31#include <stdio.h> 32#include <stdio.h>
32#include <ctype.h> 33#include <ctype.h>
@@ -56,7 +57,7 @@ extern int gray_bitmap_width;
56extern int gray_bitmap_height; 57extern int gray_bitmap_height;
57extern char *gray_bitmap_bits; 58extern char *gray_bitmap_bits;
58 59
59#include "xterm.h" 60#include <xterm.h>
60 61
61#else /* not emacs */ 62#else /* not emacs */
62 63
@@ -2689,4 +2690,3 @@ pop_up_menu (XlwMenuWidget mw, XButtonPressedEvent *event)
2689 ((XMotionEvent*)event)->is_hint = 0; 2690 ((XMotionEvent*)event)->is_hint = 0;
2690 handle_motion_event (mw, (XMotionEvent*)event); 2691 handle_motion_event (mw, (XMotionEvent*)event);
2691} 2692}
2692
diff --git a/nt/ChangeLog b/nt/ChangeLog
index e7f005cce61..41273114429 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,10 @@
12011-02-09 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in (bootstrap-nmake, bootstrap-gmake): Make the
4 "make-docfile" target in lib-src, before bootstrapping the src
5 directory. Needed since building in src needs to run make-docfile
6 to produce globals.h.
7
12011-02-04 Eli Zaretskii <eliz@gnu.org> 82011-02-04 Eli Zaretskii <eliz@gnu.org>
2 9
3 * config.nt (inline) [__GNUC__]: Define (for gnulib). 10 * config.nt (inline) [__GNUC__]: Define (for gnulib).
diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in
index 28ee8b6e09c..31ca3143fb8 100644
--- a/nt/makefile.w32-in
+++ b/nt/makefile.w32-in
@@ -160,7 +160,7 @@ bootstrap-nmake: addsection cmdproxy
160 cd ..\src 160 cd ..\src
161 $(MAKE) $(MFLAGS) clean 161 $(MAKE) $(MFLAGS) clean
162 cd ..\lib-src 162 cd ..\lib-src
163 $(MAKE) $(MFLAGS) clean 163 $(MAKE) $(MFLAGS) clean make-docfile
164 cd ..\lib 164 cd ..\lib
165 $(MAKE) $(MFLAGS) clean all 165 $(MAKE) $(MFLAGS) clean all
166 cd ..\src 166 cd ..\src
@@ -177,7 +177,7 @@ bootstrap-nmake: addsection cmdproxy
177bootstrap-gmake: addsection cmdproxy 177bootstrap-gmake: addsection cmdproxy
178 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean 178 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean
179 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean 179 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
180 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean 180 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean make-docfile
181 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean all 181 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean all
182 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap 182 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap
183 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean 183 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean
diff --git a/src/ChangeLog b/src/ChangeLog
index 72d6c49592a..ccb54ffffa7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,4 @@
12011-02-08 Paul Eggert <eggert@cs.ucla.edu> 12011-02-10 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Import getloadavg module from gnulib. 3 Import getloadavg module from gnulib.
4 * deps.mk (getloadavg.o): Remove; gnulib now does this. 4 * deps.mk (getloadavg.o): Remove; gnulib now does this.
@@ -8,6 +8,47 @@
8 * src/s/netbsd.h (HAVE_GETLOADAVG): Likewise. 8 * src/s/netbsd.h (HAVE_GETLOADAVG): Likewise.
9 * config.in: Regenerate. 9 * config.in: Regenerate.
10 10
112011-02-10 Glenn Morris <rgm@gnu.org>
12
13 * Makefile.in (really-lwlib): Depend on globals.h, for parallel builds.
14
152011-02-09 Eli Zaretskii <eliz@gnu.org>
16
17 * makefile.w32-in (GLOBAL_SOURCES, SOME_MACHINE_OBJECTS, obj):
18 New macros.
19 (globals.h, gl-stamp): New targets.
20 (clean): Clean gl-stamp and globals.h.
21
222011-02-09 Andreas Schwab <schwab@linux-m68k.org>
23
24 * Makefile.in (gl-stamp): Create globals.h here.
25 (globals.h): Don't do it here.
26 (mostlyclean): Clean globals.h and gl-stamp.
27
282011-02-09 Paul Eggert <eggert@cs.ucla.edu>
29
30 * Makefile.in ($(otherobj)): Depend on globals.h.
31 Otherwise 'make -j10' failed on my host, because the build lacked
32 necessary dependencies, e.g., vm-limit.o depends on globals.h.
33
342011-02-08 Tom Tromey <tromey@redhat.com>
35
36 * Makefile.in (NS_OBJC_OBJ): New variable.
37 (base_obj): Rename from 'obj'.
38 (obj): New variable.
39 (globals.h, gl-stamp, $(obj)): New targets.
40 (GLOBAL_SOURCES): New variable.
41 * globals.h: Remove.
42 * nsselect.m (Vselection_alist): Define. Reverts part of
43 2011-01-19T22:11:33Z!jan.h.d@swipnet.se.
44 * buffer.c: Don't use "no_cell" for name of kill-buffer-hook's
45 variable.
46 * xselect.c (Vselection_alist): Define. Reverts part of 2011-01-19T23:32:42Z!eggert@cs.ucla.edu.
47
482011-02-08 Kenichi Handa <handa@m17n.org>
49
50 * font.c (Ffont_get): Do not cache :otf value.
51
112011-02-07 Paul Eggert <eggert@cs.ucla.edu> 522011-02-07 Paul Eggert <eggert@cs.ucla.edu>
12 53
13 conform to C89 pointer rules 54 conform to C89 pointer rules
diff --git a/src/Makefile.in b/src/Makefile.in
index 98b4c981482..fda65be7084 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -106,7 +106,7 @@ LD_SWITCH_SYSTEM=@LD_SWITCH_SYSTEM@
106 106
107## This holds any special options for linking temacs only (ie, not 107## This holds any special options for linking temacs only (ie, not
108## used by configure). Not used elsewhere because it sometimes 108## used by configure). Not used elsewhere because it sometimes
109## contains options that have to do with using Emacs's crt0, 109## contains options that have to do with using Emacs's crt0,
110## which are only good with temacs. 110## which are only good with temacs.
111LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYSTEM_TEMACS@ 111LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYSTEM_TEMACS@
112 112
@@ -190,7 +190,7 @@ OLDXMENU=@OLDXMENU@
190## If HAVE_X11 && !USE_GTK, $(OLDXMENU) ../src/$(OLDXMENU); else empty. 190## If HAVE_X11 && !USE_GTK, $(OLDXMENU) ../src/$(OLDXMENU); else empty.
191## We use stamp-xmenu with these two deps to both ensure that lwlib 191## We use stamp-xmenu with these two deps to both ensure that lwlib
192## gets remade based on its dependencies in its own makefile, 192## gets remade based on its dependencies in its own makefile,
193## and remake temacs if lwlib gets changed by this. 193## and remake temacs if lwlib gets changed by this.
194OLDXMENU_DEPS=@OLDXMENU_DEPS@ 194OLDXMENU_DEPS=@OLDXMENU_DEPS@
195 195
196## If !HAVE_X11 && HAVE_X_WINDOWS, -lXMenu (this case no longer possible). 196## If !HAVE_X11 && HAVE_X_WINDOWS, -lXMenu (this case no longer possible).
@@ -241,12 +241,13 @@ MSDOS_SUPPORT_REAL = $(lispsource)/ls-lisp.elc $(lispsource)/disp-table.elc \
241 $(lispsource)/dos-fns.elc $(lispsource)/dos-w32.elc $(lispsource)/dos-vars.elc \ 241 $(lispsource)/dos-fns.elc $(lispsource)/dos-w32.elc $(lispsource)/dos-vars.elc \
242 $(lispsource)/term/internal.elc $(lispsource)/term/pc-win.elc 242 $(lispsource)/term/internal.elc $(lispsource)/term/pc-win.elc
243## $MSDOS_SUPPORT_REAL if MSDOS. 243## $MSDOS_SUPPORT_REAL if MSDOS.
244MSDOS_SUPPORT = 244MSDOS_SUPPORT =
245 245
246ns_appdir=@ns_appdir@ 246ns_appdir=@ns_appdir@
247ns_appbindir=@ns_appbindir@ 247ns_appbindir=@ns_appbindir@
248ns_appsrc=@ns_appsrc@ 248ns_appsrc=@ns_appsrc@
249NS_OBJ=@NS_OBJ@ 249NS_OBJ=@NS_OBJ@
250NS_OBJC_OBJ=@NS_OBJC_OBJ@
250NS_SUPPORT=@NS_SUPPORT@ 251NS_SUPPORT=@NS_SUPPORT@
251## Only set if NS_IMPL_GNUSTEP. 252## Only set if NS_IMPL_GNUSTEP.
252GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@ 253GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@
@@ -341,7 +342,7 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
341 342
342## lastfile must follow all files whose initialized data areas should 343## lastfile must follow all files whose initialized data areas should
343## be dumped as pure by dump-emacs. 344## be dumped as pure by dump-emacs.
344obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ 345base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
345 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \ 346 charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \
346 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \ 347 cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
347 emacs.o keyboard.o macros.o keymap.o sysdep.o \ 348 emacs.o keyboard.o macros.o keymap.o sysdep.o \
@@ -355,6 +356,7 @@ obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
355 region-cache.o sound.o atimer.o \ 356 region-cache.o sound.o atimer.o \
356 doprnt.o intervals.o textprop.o composite.o md5.o xml.o \ 357 doprnt.o intervals.o textprop.o composite.o md5.o xml.o \
357 $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) 358 $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ)
359obj = $(base_obj) $(NS_OBJC_OBJ)
358 360
359## Object files used on some machine or other. 361## Object files used on some machine or other.
360## These go in the DOC file on all machines in case they are needed. 362## These go in the DOC file on all machines in case they are needed.
@@ -645,6 +647,18 @@ $(libsrc)/make-docfile$(EXEEXT):
645buildobj.h: Makefile 647buildobj.h: Makefile
646 echo "#define BUILDOBJ \"$(obj) $(otherobj) " "\"" > buildobj.h 648 echo "#define BUILDOBJ \"$(obj) $(otherobj) " "\"" > buildobj.h
647 649
650globals.h: gl-stamp; @true
651
652GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m)
653
654gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES)
655 @rm -f gl-tmp
656 $(libsrc)/make-docfile -d $(srcdir) -g $(SOME_MACHINE_OBJECTS) $(obj) > gl-tmp
657 $(srcdir)/../move-if-change gl-tmp globals.h
658 echo timestamp > $@
659
660$(obj) $(otherobj): globals.h
661
648$(lib)/libgnu.a: $(config_h) 662$(lib)/libgnu.a: $(config_h)
649 cd $(lib) && $(MAKE) libgnu.a 663 cd $(lib) && $(MAKE) libgnu.a
650 664
@@ -655,7 +669,7 @@ temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) $(lib)/libgnu.
655## The following oldxmenu-related rules are only (possibly) used if 669## The following oldxmenu-related rules are only (possibly) used if
656## HAVE_X11 && !USE_GTK, but there is no harm in always defining them 670## HAVE_X11 && !USE_GTK, but there is no harm in always defining them
657## (provided we take a little care that OLDXMENU is never empty). 671## (provided we take a little care that OLDXMENU is never empty).
658really-lwlib: 672really-lwlib: globals.h
659 cd $(lwlibdir); $(MAKE) $(MFLAGS) \ 673 cd $(lwlibdir); $(MAKE) $(MFLAGS) \
660 CC='$(CC)' CFLAGS='$(CFLAGS)' MAKE='$(MAKE)' 674 CC='$(CC)' CFLAGS='$(CFLAGS)' MAKE='$(MAKE)'
661 @true # make -t should not create really-lwlib. 675 @true # make -t should not create really-lwlib.
@@ -699,6 +713,7 @@ mostlyclean:
699 rm -f ../etc/DOC 713 rm -f ../etc/DOC
700 rm -f bootstrap-emacs$(EXEEXT) emacs-$(version)$(EXEEXT) 714 rm -f bootstrap-emacs$(EXEEXT) emacs-$(version)$(EXEEXT)
701 rm -f buildobj.h 715 rm -f buildobj.h
716 rm -f globals.h gl-stamp
702clean: mostlyclean 717clean: mostlyclean
703 rm -f emacs-*.*.*$(EXEEXT) emacs$(EXEEXT) 718 rm -f emacs-*.*.*$(EXEEXT) emacs$(EXEEXT)
704 -rm -rf $(DEPDIR) 719 -rm -rf $(DEPDIR)
diff --git a/src/buffer.c b/src/buffer.c
index f8008195498..05cc12eea6f 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1320,7 +1320,7 @@ No argument or nil as argument means do this for the current buffer. */)
1320} 1320}
1321 1321
1322/* 1322/*
1323 DEFVAR_LISP ("kill-buffer-hook", no_cell, "\ 1323 DEFVAR_LISP ("kill-buffer-hook", ..., "\
1324Hook to be run (by `run-hooks', which see) when a buffer is killed.\n\ 1324Hook to be run (by `run-hooks', which see) when a buffer is killed.\n\
1325The buffer being killed will be current while the hook is running.\n\ 1325The buffer being killed will be current while the hook is running.\n\
1326See `kill-buffer'." 1326See `kill-buffer'."
diff --git a/src/font.c b/src/font.c
index 394c0055328..841125a0587 100644
--- a/src/font.c
+++ b/src/font.c
@@ -3982,7 +3982,6 @@ Layout tags. */)
3982 val = fontp->driver->otf_capability (fontp); 3982 val = fontp->driver->otf_capability (fontp);
3983 else 3983 else
3984 val = Fcons (Qnil, Qnil); 3984 val = Fcons (Qnil, Qnil);
3985 font_put_extra (font, QCotf, val);
3986 } 3985 }
3987 else 3986 else
3988 val = Fcdr (val); 3987 val = Fcdr (val);
diff --git a/src/globals.h b/src/globals.h
deleted file mode 100644
index 5dc2d540409..00000000000
--- a/src/globals.h
+++ /dev/null
@@ -1,2900 +0,0 @@
1/* Declare all global lisp variables.
2
3 Copyright (C) 2011 Free Software Foundation, Inc.
4
5 This file is part of GNU Emacs.
6
7 GNU Emacs is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20struct emacs_globals
21{
22
23 /* Count the amount of consing of various sorts of space. */
24 EMACS_INT f_cons_cells_consed;
25
26 EMACS_INT f_floats_consed;
27
28 EMACS_INT f_vector_cells_consed;
29
30 EMACS_INT f_symbols_consed;
31
32 EMACS_INT f_string_chars_consed;
33
34 EMACS_INT f_misc_objects_consed;
35
36 EMACS_INT f_intervals_consed;
37
38 EMACS_INT f_strings_consed;
39
40 /* Minimum number of bytes of consing since GC before next GC. */
41 EMACS_INT f_gc_cons_threshold;
42
43 Lisp_Object f_Vgc_cons_percentage;
44
45 /* Nonzero means display messages at beginning and end of GC. */
46 int f_garbage_collection_messages;
47
48 /* Non-nil means defun should do purecopy on the function definition. */
49 Lisp_Object f_Vpurify_flag;
50
51 /* Non-nil means we are handling a memory-full error. */
52 Lisp_Object f_Vmemory_full;
53
54 /* Total number of bytes allocated in pure storage. */
55 EMACS_INT f_pure_bytes_used;
56
57 /* Pre-computed signal argument for use when memory is exhausted. */
58 Lisp_Object f_Vmemory_signal_data;
59
60 Lisp_Object f_Vpost_gc_hook;
61
62 Lisp_Object f_Vgc_elapsed;
63
64 EMACS_INT f_gcs_done;
65
66 /* Functions to call before and after each text change. */
67 Lisp_Object f_Vbefore_change_functions;
68
69 Lisp_Object f_Vafter_change_functions;
70
71 Lisp_Object f_Vtransient_mark_mode;
72
73 /* t means ignore all read-only text properties.
74 A list means ignore such a property if its value is a member of the list.
75 Any non-nil value means ignore buffer-read-only. */
76 Lisp_Object f_Vinhibit_read_only;
77
78 /* List of functions to call that can query about killing a buffer.
79 If any of these functions returns nil, we don't kill it. */
80 Lisp_Object f_Vkill_buffer_query_functions;
81
82 Lisp_Object f_Vchange_major_mode_hook;
83
84 /* List of functions to call before changing an unmodified buffer. */
85 Lisp_Object f_Vfirst_change_hook;
86
87 /* If nonzero, all modification hooks are suppressed. */
88 int f_inhibit_modification_hooks;
89
90 Lisp_Object f_Vbyte_code_meter;
91
92 int f_byte_metering_on;
93
94 Lisp_Object f_Vcurrent_prefix_arg;
95
96 Lisp_Object f_Vcommand_history;
97
98 Lisp_Object f_Vcommand_debug_status;
99
100 /* Non-nil means treat the mark as active
101 even if mark_active is 0. */
102 Lisp_Object f_Vmark_even_if_inactive;
103
104 Lisp_Object f_Vmouse_leave_buffer_hook;
105
106 Lisp_Object f_Vexec_path;
107 Lisp_Object f_Vexec_directory;
108 Lisp_Object f_Vexec_suffixes;
109
110 Lisp_Object f_Vdata_directory;
111 Lisp_Object f_Vdoc_directory;
112
113 Lisp_Object f_Vconfigure_info_directory;
114 Lisp_Object f_Vshared_game_score_directory;
115
116 Lisp_Object f_Vshell_file_name;
117
118 Lisp_Object f_Vprocess_environment;
119 Lisp_Object f_Vinitial_environment;
120
121 /* Variables to determine word boundary. */
122 Lisp_Object f_Vword_combining_categories;
123 Lisp_Object f_Vword_separating_categories;
124
125 /* This contains all code conversion map available to CCL. */
126 Lisp_Object f_Vcode_conversion_map_vector;
127
128 /* Alist of fontname patterns vs corresponding CCL program. */
129 Lisp_Object f_Vfont_ccl_encoder_alist;
130
131 /* Vector of registered hash tables for translation. */
132 Lisp_Object f_Vtranslation_hash_table_vector;
133
134 /* Vector of translation table ever defined.
135 ID of a translation table is used to index this vector. */
136 Lisp_Object f_Vtranslation_table_vector;
137
138 /* A char-table for characters which may invoke auto-filling. */
139 Lisp_Object f_Vauto_fill_chars;
140
141 /* A char-table. An element is non-nil iff the corresponding
142 character has a printable glyph. */
143 Lisp_Object f_Vprintable_chars;
144
145 /* A char-table. An elemnent is a column-width of the corresponding
146 character. */
147 Lisp_Object f_Vchar_width_table;
148
149 /* A char-table. An element is a symbol indicating the direction
150 property of corresponding character. */
151 Lisp_Object f_Vchar_direction_table;
152
153 /* Char table of scripts. */
154 Lisp_Object f_Vchar_script_table;
155
156 /* Alist of scripts vs representative characters. */
157 Lisp_Object f_Vscript_representative_chars;
158
159 Lisp_Object f_Vunicode_category_table;
160
161 /* List of all charsets. This variable is used only from Emacs
162 Lisp. */
163 Lisp_Object f_Vcharset_list;
164
165 Lisp_Object f_Vcharset_map_path;
166
167 /* If nonzero, don't load charset maps. */
168 int f_inhibit_load_charset_map;
169
170 Lisp_Object f_Vcurrent_iso639_language;
171
172 Lisp_Object f_Vpost_self_insert_hook;
173
174 int f_coding_system_require_warning;
175
176 Lisp_Object f_Vselect_safe_coding_system_function;
177
178 /* Mnemonic string for each format of end-of-line. */
179 Lisp_Object f_eol_mnemonic_unix;
180 Lisp_Object f_eol_mnemonic_dos;
181 Lisp_Object f_eol_mnemonic_mac;
182
183 /* Mnemonic string to indicate format of end-of-line is not yet
184 decided. */
185 Lisp_Object f_eol_mnemonic_undecided;
186
187 Lisp_Object f_Vcoding_system_list;
188 Lisp_Object f_Vcoding_system_alist;
189
190 /* Coding-system for reading files and receiving data from process. */
191 Lisp_Object f_Vcoding_system_for_read;
192
193 /* Coding-system for writing files and sending data to process. */
194 Lisp_Object f_Vcoding_system_for_write;
195
196 /* Coding-system actually used in the latest I/O. */
197 Lisp_Object f_Vlast_coding_system_used;
198
199 /* Set to non-nil when an error is detected while code conversion. */
200 Lisp_Object f_Vlast_code_conversion_error;
201
202 /* A vector of length 256 which contains information about special
203 Latin codes (especially for dealing with Microsoft codes). */
204 Lisp_Object f_Vlatin_extra_code_table;
205
206 /* Flag to inhibit code conversion of end-of-line format. */
207 int f_inhibit_eol_conversion;
208
209 /* Flag to inhibit ISO2022 escape sequence detection. */
210 int f_inhibit_iso_escape_detection;
211
212 /* Flag to inhibit detection of binary files through null bytes. */
213 int f_inhibit_null_byte_detection;
214
215 /* Flag to make buffer-file-coding-system inherit from process-coding. */
216 int f_inherit_process_coding_system;
217
218 Lisp_Object f_Vfile_coding_system_alist;
219
220 Lisp_Object f_Vprocess_coding_system_alist;
221
222 Lisp_Object f_Vnetwork_coding_system_alist;
223
224 Lisp_Object f_Vlocale_coding_system;
225
226 /* Flag to tell if we look up translation table on character code
227 conversion. */
228 Lisp_Object f_Venable_character_translation;
229
230 /* Standard translation table to look up on decoding (reading). */
231 Lisp_Object f_Vstandard_translation_table_for_decode;
232
233 /* Standard translation table to look up on encoding (writing). */
234 Lisp_Object f_Vstandard_translation_table_for_encode;
235
236 /* Alist of charsets vs revision number. */
237 Lisp_Object f_Vcharset_revision_table;
238
239 /* Default coding systems used for process I/O. */
240 Lisp_Object f_Vdefault_process_coding_system;
241
242 /* Char table for translating Quail and self-inserting input. */
243 Lisp_Object f_Vtranslation_table_for_input;
244
245 /* List of symbols `coding-category-xxx' ordered by priority. This
246 variable is exposed to Emacs Lisp. */
247 Lisp_Object f_Vcoding_category_list;
248
249 /* Function to call to adjust composition. */
250 Lisp_Object f_Vcompose_chars_after_function;
251
252 Lisp_Object f_Vauto_composition_mode;
253
254 Lisp_Object f_Vauto_composition_function;
255
256 Lisp_Object f_Vcomposition_function_table;
257
258 Lisp_Object f_Vmost_positive_fixnum;
259 Lisp_Object f_Vmost_negative_fixnum;
260
261 /* Registered buses. */
262 Lisp_Object f_Vdbus_registered_buses;
263
264 /* Hash table which keeps function definitions. */
265 Lisp_Object f_Vdbus_registered_objects_table;
266
267 /* Whether to debug D-Bus. */
268 Lisp_Object f_Vdbus_debug;
269
270 Lisp_Object f_Vcompletion_ignored_extensions;
271
272 /* Non-zero means don't pause redisplay for pending input. (This is
273 for debugging and for a future implementation of EDT-like
274 scrolling. */
275 int f_redisplay_dont_pause;
276
277 /* If a number (float), check for user input every N seconds. */
278 Lisp_Object f_Vredisplay_preemption_period;
279
280 /* Lisp variable visible-bell; enables use of screen-flash instead of
281 audible bell. */
282 int f_visible_bell;
283
284 /* Invert the color of the whole frame, at a low level. */
285 int f_inverse_video;
286
287 /* Line speed of the terminal. */
288 EMACS_INT f_baud_rate;
289
290 /* Either nil or a symbol naming the window system under which Emacs
291 creates the first frame. */
292 Lisp_Object f_Vinitial_window_system;
293
294 /* Version number of X windows: 10, 11 or nil. */
295 Lisp_Object f_Vwindow_system_version;
296
297 /* Vector of glyph definitions. Indexed by glyph number, the contents
298 are a string which is how to output the glyph.
299
300 If Vglyph_table is nil, a glyph is output by using its low 8 bits
301 as a character code.
302
303 This is an obsolete feature that is no longer used. The variable
304 is retained for compatibility. */
305 Lisp_Object f_Vglyph_table;
306
307 /* Display table to use for vectors that don't specify their own. */
308 Lisp_Object f_Vstandard_display_table;
309
310 /* Nonzero means reading single-character input with prompt so put
311 cursor on mini-buffer after the prompt. Positive means at end of
312 text in echo area; negative means at beginning of line. */
313 int f_cursor_in_echo_area;
314
315 Lisp_Object f_Vdoc_file_name;
316
317 /* A list of files used to build this Emacs binary. */
318 Lisp_Object f_Vbuild_files;
319
320 /* country info */
321 EMACS_INT f_dos_country_code;
322
323 EMACS_INT f_dos_codepage;
324
325 EMACS_INT f_dos_timezone_offset;
326
327 EMACS_INT f_dos_decimal_point;
328
329 EMACS_INT f_dos_keyboard_layout;
330
331 EMACS_INT f_dos_hyper_key;
332
333 EMACS_INT f_dos_super_key;
334
335 EMACS_INT f_dos_keypad_mode;
336
337 Lisp_Object f_Vdos_version;
338
339 Lisp_Object f_Vdos_display_scancodes;
340
341 Lisp_Object f_Vdos_windows_version;
342
343 Lisp_Object f_Vbuffer_access_fontify_functions;
344
345 Lisp_Object f_Vbuffer_access_fontified_property;
346
347 /* Non-nil means don't stop at field boundary in text motion commands. */
348 Lisp_Object f_Vinhibit_field_text_motion;
349
350 /* Some static data, and a function to initialize it for each run */
351 Lisp_Object f_Vsystem_name;
352
353 Lisp_Object f_Vuser_real_login_name;
354
355 Lisp_Object f_Vuser_full_name;
356
357 Lisp_Object f_Vuser_login_name;
358
359 Lisp_Object f_Voperating_system_release;
360
361 /* Command line args from shell, as list of strings. */
362 Lisp_Object f_Vcommand_line_args;
363
364 /* The name under which Emacs was invoked, with any leading directory
365 names discarded. */
366 Lisp_Object f_Vinvocation_name;
367
368 /* The directory name from which Emacs was invoked. */
369 Lisp_Object f_Vinvocation_directory;
370
371 /* The directory name in which to find subdirs such as lisp and etc.
372 nil means get them only from PATH_LOADSEARCH. */
373 Lisp_Object f_Vinstallation_directory;
374
375 /* The values of `current-time' before and after Emacs initialization. */
376 Lisp_Object f_Vbefore_init_time;
377 Lisp_Object f_Vafter_init_time;
378
379 /* Hook run by `kill-emacs' before it does really anything. */
380 Lisp_Object f_Vkill_emacs_hook;
381
382 /* Search path separator. */
383 Lisp_Object f_Vpath_separator;
384
385 /* Variable whose value is symbol giving operating system type. */
386 Lisp_Object f_Vsystem_type;
387
388 /* Variable whose value is string giving configuration built for. */
389 Lisp_Object f_Vsystem_configuration;
390
391 /* Variable whose value is string giving configuration options,
392 for use when reporting bugs. */
393 Lisp_Object f_Vsystem_configuration_options;
394
395 /* Current and previous system locales for messages and time. */
396 Lisp_Object f_Vsystem_messages_locale;
397
398 Lisp_Object f_Vprevious_system_messages_locale;
399
400 Lisp_Object f_Vsystem_time_locale;
401
402 Lisp_Object f_Vprevious_system_time_locale;
403
404 /* Copyright and version info. The version number may be updated by
405 Lisp code. */
406 Lisp_Object f_Vemacs_copyright;
407 Lisp_Object f_Vemacs_version;
408
409 /* Alist of external libraries and files implementing them. */
410 Lisp_Object f_Vdynamic_library_alist;
411
412 /* Value of Lisp variable `noninteractive'.
413 Normally same as C variable `noninteractive'
414 but nothing terrible happens if user sets this one. */
415 int f_noninteractive1;
416
417 /* Nonzero means Emacs was run in --quick mode. */
418 int f_inhibit_x_resources;
419
420 Lisp_Object f_Vinhibit_quit;
421 Lisp_Object f_Vquit_flag;
422
423 /* Maximum size allowed for specpdl allocation */
424 EMACS_INT f_max_specpdl_size;
425
426 /* Maximum allowed depth in Lisp evaluations and function calls. */
427 EMACS_INT f_max_lisp_eval_depth;
428
429 /* Nonzero means enter debugger before next function call */
430 int f_debug_on_next_call;
431
432 /* Non-zero means debugger may continue. This is zero when the
433 debugger is called during redisplay, where it might not be safe to
434 continue the interrupted redisplay. */
435 int f_debugger_may_continue;
436
437 /* List of conditions (non-nil atom means all) which enter the debugger
438 if an error is handled by the command loop's error handler. */
439 Lisp_Object f_Vdebug_on_error;
440
441 /* List of conditions and regexps specifying error messages which
442 do not enter the debugger even if Vdebug_on_error says they should. */
443 Lisp_Object f_Vdebug_ignored_errors;
444
445 /* Non-nil means call the debugger even if the error will be handled. */
446 Lisp_Object f_Vdebug_on_signal;
447
448 /* Hook for edebug to use. */
449 Lisp_Object f_Vsignal_hook_function;
450
451 /* Nonzero means enter debugger if a quit signal
452 is handled by the command loop's error handler. */
453 int f_debug_on_quit;
454
455 Lisp_Object f_Vdebugger;
456
457 /* Function to process declarations in defmacro forms. */
458 Lisp_Object f_Vmacro_declaration_function;
459
460 /* Coding system for file names, or nil if none. */
461 Lisp_Object f_Vfile_name_coding_system;
462
463 /* Coding system for file names used only when
464 Vfile_name_coding_system is nil. */
465 Lisp_Object f_Vdefault_file_name_coding_system;
466
467 /* Alist of elements (REGEXP . HANDLER) for file names
468 whose I/O is done with a special handler. */
469 Lisp_Object f_Vfile_name_handler_alist;
470
471 /* Function to be called to decide a coding system of a reading file. */
472 Lisp_Object f_Vset_auto_coding_function;
473
474 /* Functions to be called to process text properties in inserted file. */
475 Lisp_Object f_Vafter_insert_file_functions;
476
477 /* Functions to be called to create text property annotations for file. */
478 Lisp_Object f_Vwrite_region_annotate_functions;
479
480 Lisp_Object f_Vwrite_region_post_annotation_function;
481
482 /* During build_annotations, each time an annotation function is called,
483 this holds the annotations made by the previous functions. */
484 Lisp_Object f_Vwrite_region_annotations_so_far;
485
486 /* File name in which we write a list of all our auto save files. */
487 Lisp_Object f_Vauto_save_list_file_name;
488
489 /* Whether or not files are auto-saved into themselves. */
490 Lisp_Object f_Vauto_save_visited_file_name;
491
492 /* Whether or not to continue auto-saving after a large deletion. */
493 Lisp_Object f_Vauto_save_include_big_deletions;
494
495 /* Nonzero means skip the call to fsync in Fwrite-region. */
496 int f_write_region_inhibit_fsync;
497
498 /* Non-zero means call move-file-to-trash in Fdelete_file or
499 Fdelete_directory_internal. */
500 int f_delete_by_moving_to_trash;
501
502 /* These variables describe handlers that have "already" had a chance
503 to handle the current operation.
504
505 Vinhibit_file_name_handlers is a list of file name handlers.
506 Vinhibit_file_name_operation is the operation being handled.
507 If we try to handle that operation, we ignore those handlers. */
508 Lisp_Object f_Vinhibit_file_name_handlers;
509
510 Lisp_Object f_Vinhibit_file_name_operation;
511
512 /* The directory for writing temporary files. */
513 Lisp_Object f_Vtemporary_file_directory;
514
515 /* Nonzero enables use of dialog boxes for questions
516 asked by mouse commands. */
517 int f_use_dialog_box;
518
519 /* Nonzero enables use of a file dialog for file name
520 questions asked by mouse commands. */
521 int f_use_file_dialog;
522
523 Lisp_Object f_Vfeatures;
524
525 Lisp_Object f_Vfont_weight_table;
526 Lisp_Object f_Vfont_slant_table;
527 Lisp_Object f_Vfont_width_table;
528
529 Lisp_Object f_Vfont_encoding_alist;
530
531 Lisp_Object f_Vfont_log;
532
533 Lisp_Object f_Vfont_encoding_charset_alist;
534
535 Lisp_Object f_Vuse_default_ascent;
536
537 Lisp_Object f_Vignore_relative_composition;
538
539 Lisp_Object f_Valternate_fontname_alist;
540
541 Lisp_Object f_Vfontset_alias_alist;
542
543 Lisp_Object f_Vvertical_centering_font_regexp;
544
545 Lisp_Object f_Votf_script_alist;
546
547 /* If we shall make pointer invisible when typing or not. */
548 Lisp_Object f_Vmake_pointer_invisible;
549
550 /* The name we're using in resource queries. Most often "emacs". */
551 Lisp_Object f_Vx_resource_name;
552
553 /* The application class we're using in resource queries.
554 Normally "Emacs". */
555 Lisp_Object f_Vx_resource_class;
556
557 /* Lower limit value of the frame opacity (alpha transparency). */
558 Lisp_Object f_Vframe_alpha_lower_limit;
559
560 Lisp_Object f_Vmenu_bar_mode;
561 Lisp_Object f_Vtool_bar_mode;
562
563 Lisp_Object f_Vterminal_frame;
564
565 Lisp_Object f_Vdefault_frame_alist;
566
567 Lisp_Object f_Vdefault_frame_scroll_bars;
568
569 Lisp_Object f_Vmouse_position_function;
570
571 Lisp_Object f_Vmouse_highlight;
572
573 Lisp_Object f_Vdelete_frame_functions;
574
575 int f_focus_follows_mouse;
576
577 /* Non-nil means that newline may flow into the right fringe. */
578 Lisp_Object f_Voverflow_newline_into_fringe;
579
580 /* List of known fringe bitmap symbols.
581
582 The fringe bitmap number is stored in the `fringe' property on
583 those symbols. Names for the built-in bitmaps are installed by
584 loading fringe.el.
585 */
586 Lisp_Object f_Vfringe_bitmaps;
587
588 /* Search path for bitmap files. */
589 Lisp_Object f_Vx_bitmap_file_path;
590
591 /* A list of symbols, one for each supported image type. */
592 Lisp_Object f_Vimage_types;
593
594 /* Time in seconds after which images should be removed from the cache
595 if not displayed. */
596 Lisp_Object f_Vimage_cache_eviction_delay;
597
598 Lisp_Object f_Vmax_image_size;
599
600 /* Non-zero means draw a cross on images having `:conversion
601 disabled'. */
602 int f_cross_disabled_images;
603
604 Lisp_Object f_Vimagemagick_render_type;
605
606 /* Indentation can insert tabs if this is non-zero;
607 otherwise always uses spaces. */
608 int f_indent_tabs_mode;
609
610 /* Non-nil means don't call the after-change-functions right away,
611 just record an element in combine_after_change_list. */
612 Lisp_Object f_Vcombine_after_change_calls;
613
614 /* Check all markers in the current buffer, looking for something invalid. */
615 int f_check_markers_debug_flag;
616
617 /* Non-nil if the present key sequence was obtained by shift translation. */
618 Lisp_Object f_Vthis_command_keys_shift_translated;
619
620 /* If non-nil, the function that implements the display of help.
621 It's called with one argument, the help string to display. */
622 Lisp_Object f_Vshow_help_function;
623
624 /* Nonzero means do menu prompting. */
625 int f_menu_prompting;
626
627 /* Character to see next line of menu prompt. */
628 Lisp_Object f_menu_prompt_more_char;
629
630 /* Nonzero means disregard local maps for the menu bar. */
631 int f_inhibit_local_menu_bar_menus;
632
633 /* The user's hook function for outputting an error message. */
634 Lisp_Object f_Vcommand_error_function;
635
636 /* The user's ERASE setting. */
637 Lisp_Object f_Vtty_erase_char;
638
639 /* Character to recognize as the help char. */
640 Lisp_Object f_Vhelp_char;
641
642 /* List of other event types to recognize as meaning "help". */
643 Lisp_Object f_Vhelp_event_list;
644
645 /* Form to execute when help char is typed. */
646 Lisp_Object f_Vhelp_form;
647
648 /* Command to run when the help character follows a prefix key. */
649 Lisp_Object f_Vprefix_help_command;
650
651 /* List of items that should move to the end of the menu bar. */
652 Lisp_Object f_Vmenu_bar_final_items;
653
654 /* Expression to evaluate for the tool bar separator image.
655 This is used for build_desired_tool_bar_string only. For GTK, we
656 use GTK tool bar seperators. */
657 Lisp_Object f_Vtool_bar_separator_image_expression;
658
659 /* Non-nil means show the equivalent key-binding for
660 any M-x command that has one.
661 The value can be a length of time to show the message for.
662 If the value is non-nil and not a number, we wait 2 seconds. */
663 Lisp_Object f_Vsuggest_key_bindings;
664
665 /* How long to display an echo-area message when the minibuffer is active.
666 If the value is not a number, such messages don't time out. */
667 Lisp_Object f_Vminibuffer_message_timeout;
668
669 /* If non-nil, this is a map that overrides all other local maps. */
670 Lisp_Object f_Voverriding_local_map;
671
672 /* If non-nil, Voverriding_local_map applies to the menu bar. */
673 Lisp_Object f_Voverriding_local_map_menu_flag;
674
675 /* Keymap that defines special misc events that should
676 be processed immediately at a low level. */
677 Lisp_Object f_Vspecial_event_map;
678
679 /* Total number of times command_loop has read a key sequence. */
680 EMACS_INT f_num_input_keys;
681
682 /* Last input event read as a command. */
683 Lisp_Object f_last_command_event;
684
685 /* Last input character read as a command, not counting menus
686 reached by the mouse. */
687 Lisp_Object f_last_nonmenu_event;
688
689 /* Last input event read for any purpose. */
690 Lisp_Object f_last_input_event;
691
692 /* If not Qnil, a list of objects to be read as subsequent command input. */
693 Lisp_Object f_Vunread_command_events;
694
695 /* If not Qnil, a list of objects to be read as subsequent command input
696 including input method processing. */
697 Lisp_Object f_Vunread_input_method_events;
698
699 /* If not Qnil, a list of objects to be read as subsequent command input
700 but NOT including input method processing. */
701 Lisp_Object f_Vunread_post_input_method_events;
702
703 /* If not -1, an event to be read as subsequent command input. */
704 EMACS_INT f_unread_command_char;
705
706 /* A mask of extra modifier bits to put into every keyboard char. */
707 EMACS_INT f_extra_keyboard_modifiers;
708
709 /* Char to use as prefix when a meta character is typed in.
710 This is bound on entry to minibuffer in case ESC is changed there. */
711 Lisp_Object f_meta_prefix_char;
712
713 /* Number of idle seconds before an auto-save and garbage collection. */
714 Lisp_Object f_Vauto_save_timeout;
715
716 /* Total number of times read_char has returned, outside of macros. */
717 EMACS_INT f_num_nonmacro_input_events;
718
719 /* Auto-save automatically when this many characters have been typed
720 since the last time. */
721 EMACS_INT f_auto_save_interval;
722
723 /* The command being executed by the command loop.
724 Commands may set this, and the value set will be copied into
725 current_kboard->Vlast_command instead of the actual command. */
726 Lisp_Object f_Vthis_command;
727
728 /* If the lookup of the command returns a binding, the original
729 command is stored in this-original-command. It is nil otherwise. */
730 Lisp_Object f_Vthis_original_command;
731
732 /* A user-visible version of the above, intended to allow users to
733 figure out where the last event came from, if the event doesn't
734 carry that information itself (i.e. if it was a character). */
735 Lisp_Object f_Vlast_event_frame;
736
737 /* If non-nil, active regions automatically become the window selection. */
738 Lisp_Object f_Vselect_active_regions;
739
740 /* The text in the active region prior to modifying the buffer.
741 Used by the `select-active-regions' feature. */
742 Lisp_Object f_Vsaved_region_selection;
743
744 /* Echo unfinished commands after this many seconds of pause. */
745 Lisp_Object f_Vecho_keystrokes;
746
747 /* Form to evaluate (if non-nil) when Emacs is started. */
748 Lisp_Object f_Vtop_level;
749
750 /* If non-nil, this implements the current input method. */
751 Lisp_Object f_Vinput_method_function;
752
753 /* When we call Vinput_method_function,
754 this holds the echo area message that was just erased. */
755 Lisp_Object f_Vinput_method_previous_message;
756
757 /* Non-nil means deactivate the mark at end of this command. */
758 Lisp_Object f_Vdeactivate_mark;
759
760 /* Menu bar specified in Lucid Emacs fashion. */
761 Lisp_Object f_Vlucid_menu_bar_dirty_flag;
762
763 Lisp_Object f_Vpre_command_hook;
764
765 Lisp_Object f_Vpost_command_hook;
766
767 Lisp_Object f_Vcommand_hook_internal;
768
769 /* Parent keymap of terminal-local function-key-map instances. */
770 Lisp_Object f_Vfunction_key_map;
771
772 /* Keymap of key translations that can override keymaps. */
773 Lisp_Object f_Vkey_translation_map;
774
775 /* List of deferred actions to be performed at a later time.
776 The precise format isn't relevant here; we just check whether it is nil. */
777 Lisp_Object f_Vdeferred_action_list;
778
779 /* Function to call to handle deferred actions, when there are any. */
780 Lisp_Object f_Vdeferred_action_function;
781
782 /* If this flag is non-nil, we check mouse_moved to see when the
783 mouse moves, and motion events will appear in the input stream.
784 Otherwise, mouse motion is ignored. */
785 Lisp_Object f_do_mouse_tracking;
786
787 /* List of absolute timers. Appears in order of next scheduled event. */
788 Lisp_Object f_Vtimer_list;
789
790 /* List of idle time timers. Appears in order of next scheduled event. */
791 Lisp_Object f_Vtimer_idle_list;
792
793 /* After a command is executed, if point is moved into a region that
794 has specific properties (e.g. composition, display), we adjust
795 point to the boundary of the region. But, if a command sets this
796 variable to non-nil, we suppress this point adjustment. This
797 variable is set to nil before reading a command. */
798 Lisp_Object f_Vdisable_point_adjustment;
799
800 /* If non-nil, always disable point adjustment. */
801 Lisp_Object f_Vglobal_disable_point_adjustment;
802
803 /* If non-nil, events produced by disabled menu items and tool-bar
804 buttons are not ignored. Help functions bind this to allow help on
805 those items and buttons. */
806 Lisp_Object f_Venable_disabled_menus_and_buttons;
807
808 /* Nonzero means don't try to suspend even if the operating system seems
809 to support it. */
810 int f_cannot_suspend;
811
812 /* Number of seconds between polling for input. This is a Lisp
813 variable that can be bound. */
814 EMACS_INT f_polling_period;
815
816 /* subprocesses */
817 Lisp_Object f_Vthrow_on_input;
818
819 /* The maximum time between clicks to make a double-click, or Qnil to
820 disable double-click detection, or Qt for no time limit. */
821 Lisp_Object f_Vdouble_click_time;
822
823 /* Maximum number of pixels the mouse may be moved between clicks
824 to make a double-click. */
825 EMACS_INT f_double_click_fuzz;
826
827 /* was MinibufLocalMap */
828 Lisp_Object f_Vminibuffer_local_map;
829
830 /* was MinibufLocalNSMap */
831 Lisp_Object f_Vminibuffer_local_ns_map;
832
833 /* was MinibufLocalCompletionMap */
834 Lisp_Object f_Vminibuffer_local_completion_map;
835
836 /* keymap used for minibuffers when doing completion in filenames */
837 Lisp_Object f_Vminibuffer_local_filename_completion_map;
838
839 /* keymap used for minibuffers when doing completion in filenames
840 with require-match*/
841 Lisp_Object f_Vminibuffer_local_filename_must_match_map;
842
843 /* was MinibufLocalMustMatchMap */
844 Lisp_Object f_Vminibuffer_local_must_match_map;
845
846 /* Alist of minor mode variables and keymaps. */
847 Lisp_Object f_Vminor_mode_map_alist;
848
849 /* Alist of major-mode-specific overrides for
850 minor mode variables and keymaps. */
851 Lisp_Object f_Vminor_mode_overriding_map_alist;
852
853 /* List of emulation mode keymap alists. */
854 Lisp_Object f_Vemulation_mode_map_alists;
855
856 /* A list of all commands given new bindings since a certain time
857 when nil was stored here.
858 This is used to speed up recomputation of menu key equivalents
859 when Emacs starts up. t means don't record anything here. */
860 Lisp_Object f_Vdefine_key_rebound_commands;
861
862 Lisp_Object f_Vwhere_is_preferred_modifier;
863
864 Lisp_Object f_Vvalues;
865 Lisp_Object f_Vstandard_input;
866 Lisp_Object f_Vafter_load_alist;
867
868 Lisp_Object f_Veval_buffer_list;
869
870 /* non-zero if inside `load' */
871 int f_load_in_progress;
872
873 /* Directory in which the sources were found. */
874 Lisp_Object f_Vsource_directory;
875
876 /* Search path and suffixes for files to be loaded. */
877 Lisp_Object f_Vload_path;
878 Lisp_Object f_Vload_suffixes;
879 Lisp_Object f_Vload_file_rep_suffixes;
880
881 /* File name of user's init file. */
882 Lisp_Object f_Vuser_init_file;
883
884 /* This is the user-visible association list that maps features to
885 lists of defs in their load files. */
886 Lisp_Object f_Vload_history;
887
888 /* This is used to build the load history. */
889 Lisp_Object f_Vcurrent_load_list;
890
891 /* List of files that were preloaded. */
892 Lisp_Object f_Vpreloaded_file_list;
893
894 /* Name of file actually being read by `load'. */
895 Lisp_Object f_Vload_file_name;
896
897 /* Function to use for reading, in `load' and friends. */
898 Lisp_Object f_Vload_read_function;
899
900 /* Non-nil means read recursive structures using #n= and #n# syntax. */
901 Lisp_Object f_Vread_circle;
902
903 /* Nonzero means load should forcibly load all dynamic doc strings. */
904 int f_load_force_doc_strings;
905
906 /* Nonzero means read should convert strings to unibyte. */
907 int f_load_convert_to_unibyte;
908
909 /* Function to use for loading an Emacs Lisp source file (not
910 compiled) instead of readevalloop. */
911 Lisp_Object f_Vload_source_file_function;
912
913 /* List of all DEFVAR_BOOL variables. Used by the byte optimizer. */
914 Lisp_Object f_Vbyte_boolean_vars;
915
916 /* Whether or not to add a `read-positions' property to symbols
917 read. */
918 Lisp_Object f_Vread_with_symbol_positions;
919
920 /* List of (SYMBOL . POSITION) accumulated so far. */
921 Lisp_Object f_Vread_symbol_positions_list;
922
923 Lisp_Object f_Vold_style_backquotes;
924
925 /* Non-zero means load dangerous compiled Lisp files. */
926 int f_load_dangerous_libraries;
927
928 /* Non-zero means force printing messages when loading Lisp files. */
929 int f_force_load_messages;
930
931 /* A regular expression used to detect files compiled with Emacs. */
932 Lisp_Object f_Vbytecomp_version_regexp;
933
934 Lisp_Object f_Vobarray;
935
936 /* Normal hook run whenever a keyboard macro terminates. */
937 Lisp_Object f_Vkbd_macro_termination_hook;
938
939 /* Kbd macro currently being executed (a string or vector). */
940 Lisp_Object f_Vexecuting_kbd_macro;
941
942 /* Index of next character to fetch from that macro. */
943 EMACS_INT f_executing_kbd_macro_index;
944
945 /* Nonzero means enable debugging checks on byte/char correspondences. */
946 int f_byte_debug_flag;
947
948 Lisp_Object f_Vhistory_length;
949
950 /* No duplicates in history. */
951 int f_history_delete_duplicates;
952
953 /* Non-nil means add new input to history. */
954 Lisp_Object f_Vhistory_add_new_input;
955
956 /* Nonzero means let functions called when within a minibuffer
957 invoke recursive minibuffers (to read arguments, or whatever) */
958 int f_enable_recursive_minibuffers;
959
960 /* Nonzero means don't ignore text properties
961 in Fread_from_minibuffer. */
962 int f_minibuffer_allow_text_properties;
963
964 /* help-form is bound to this while in the minibuffer. */
965 Lisp_Object f_Vminibuffer_help_form;
966
967 /* Variable which is the history list to add minibuffer values to. */
968 Lisp_Object f_Vminibuffer_history_variable;
969
970 /* Current position in the history list (adjusted by M-n and M-p). */
971 Lisp_Object f_Vminibuffer_history_position;
972
973 /* Text properties that are added to minibuffer prompts.
974 These are in addition to the basic `field' property, and stickiness
975 properties. */
976 Lisp_Object f_Vminibuffer_prompt_properties;
977
978 Lisp_Object f_Vminibuffer_setup_hook;
979
980 Lisp_Object f_Vminibuffer_exit_hook;
981
982 Lisp_Object f_Vread_expression_history;
983
984 /* Function to call to read a buffer name. */
985 Lisp_Object f_Vread_buffer_function;
986
987 /* Nonzero means completion ignores case. */
988 int f_completion_ignore_case;
989
990 int f_read_buffer_completion_ignore_case;
991
992 /* List of regexps that should restrict possible completions. */
993 Lisp_Object f_Vcompletion_regexp_list;
994
995 /* Nonzero means raise the minibuffer frame when the minibuffer
996 is entered. */
997 int f_minibuffer_auto_raise;
998
999 /* Keymap for reading expressions. */
1000 Lisp_Object f_Vread_expression_map;
1001
1002 Lisp_Object f_Vminibuffer_completion_table;
1003
1004 Lisp_Object f_Vminibuffer_completion_predicate;
1005
1006 Lisp_Object f_Vminibuffer_completion_confirm;
1007
1008 Lisp_Object f_Vminibuffer_completing_file_name;
1009
1010 Lisp_Object f_Vdos_unsupported_char_glyph;
1011
1012 Lisp_Object f_Vstandard_output;
1013
1014 Lisp_Object f_Vfloat_output_format;
1015
1016 /* Maximum length of list to print in full; noninteger means
1017 effectively infinity */
1018 Lisp_Object f_Vprint_length;
1019
1020 /* Maximum depth of list to print in full; noninteger means
1021 effectively infinity. */
1022 Lisp_Object f_Vprint_level;
1023
1024 /* Nonzero means print newlines in strings as \n. */
1025 int f_print_escape_newlines;
1026
1027 /* Nonzero means to print single-byte non-ascii characters in strings as
1028 octal escapes. */
1029 int f_print_escape_nonascii;
1030
1031 /* Nonzero means to print multibyte characters in strings as hex escapes. */
1032 int f_print_escape_multibyte;
1033
1034 /* Nonzero means print (quote foo) forms as 'foo, etc. */
1035 int f_print_quoted;
1036
1037 /* Non-nil means print #: before uninterned symbols. */
1038 Lisp_Object f_Vprint_gensym;
1039
1040 /* Non-nil means print recursive structures using #n= and #n# syntax. */
1041 Lisp_Object f_Vprint_circle;
1042
1043 /* Non-nil means keep continuous number for #n= and #n# syntax
1044 between several print functions. */
1045 Lisp_Object f_Vprint_continuous_numbering;
1046
1047 Lisp_Object f_Vprint_number_table;
1048
1049 /* A flag to control printing of `charset' text property.
1050 The default value is Qdefault. */
1051 Lisp_Object f_Vprint_charset_text_property;
1052
1053 /* Nonzero means delete a process right away if it exits. */
1054 int f_delete_exited_processes;
1055
1056 /* t means use pty, nil means use a pipe,
1057 maybe other values to come. */
1058 Lisp_Object f_Vprocess_connection_type;
1059
1060 /* Non-nil means to delay reading process output to improve buffering.
1061 A value of t means that delay is reset after each send, any other
1062 non-nil value does not reset the delay. A value of nil disables
1063 adaptive read buffering completely. */
1064 Lisp_Object f_Vprocess_adaptive_read_buffering;
1065
1066 Lisp_Object f_Vsearch_spaces_regexp;
1067
1068 /* If non-nil, the match data will not be changed during call to
1069 searching or matching functions. This variable is for internal use
1070 only. */
1071 Lisp_Object f_Vinhibit_changing_match_data;
1072
1073 int f_words_include_escapes;
1074
1075 int f_parse_sexp_lookup_properties;
1076
1077 /* Nonzero means `scan-sexps' treat all multibyte characters as symbol. */
1078 int f_multibyte_syntax_as_symbol;
1079
1080 /* Non-zero means an open parenthesis in column 0 is always considered
1081 to be the start of a defun. Zero means an open parenthesis in
1082 column 0 has no special meaning. */
1083 int f_open_paren_in_column_0_is_defun_start;
1084
1085 int f_parse_sexp_ignore_comments;
1086
1087 /* Char-table of functions that find the next or previous word
1088 boundary. */
1089 Lisp_Object f_Vfind_word_boundary_function_table;
1090
1091 /* If true, use "vs", otherwise use "ve" to make the cursor visible. */
1092 int f_visible_cursor;
1093
1094 /* Functions to call after suspending a tty. */
1095 Lisp_Object f_Vsuspend_tty_functions;
1096
1097 /* Functions to call after resuming a tty. */
1098 Lisp_Object f_Vresume_tty_functions;
1099
1100 /* Nonzero means no need to redraw the entire frame on resuming a
1101 suspended Emacs. This is useful on terminals with multiple
1102 pages, where one page is used for Emacs and another for all
1103 else. */
1104 int f_no_redraw_on_reenter;
1105
1106 /* Provided for lisp packages. */
1107 int f_system_uses_terminfo;
1108
1109 /* Function to use to ring the bell. */
1110 Lisp_Object f_Vring_bell_function;
1111
1112 Lisp_Object f_Vdelete_terminal_functions;
1113
1114 Lisp_Object f_Vinhibit_point_motion_hooks;
1115
1116 Lisp_Object f_Vdefault_text_properties;
1117
1118 Lisp_Object f_Vchar_property_alias_alist;
1119
1120 Lisp_Object f_Vtext_property_default_nonsticky;
1121
1122 /* Limits controlling how much undo information to keep. */
1123 EMACS_INT f_undo_limit;
1124
1125 EMACS_INT f_undo_strong_limit;
1126
1127 Lisp_Object f_Vundo_outer_limit;
1128
1129 /* Function to call when undo_outer_limit is exceeded. */
1130 Lisp_Object f_Vundo_outer_limit_function;
1131
1132 /* Nonzero means do not record point in record_point. */
1133 int f_undo_inhibit_record_point;
1134
1135 /* Coding system for communicating with other Windows programs via the
1136 clipboard. */
1137 Lisp_Object f_Vselection_coding_system;
1138
1139 /* Coding system for the next communicating with other Windows programs. */
1140 Lisp_Object f_Vnext_selection_coding_system;
1141
1142 /* Determine whether to make frame dimensions match the screen buffer,
1143 or the current window size. The former is desirable when running
1144 over telnet, while the latter is more useful when working directly at
1145 the console with a large scroll-back buffer. */
1146 int f_w32_use_full_screen_buffer;
1147
1148 /* The colormap for converting color names to RGB values */
1149 Lisp_Object f_Vw32_color_map;
1150
1151 /* Non nil if alt key presses are passed on to Windows. */
1152 Lisp_Object f_Vw32_pass_alt_to_system;
1153
1154 /* Non nil if alt key is translated to meta_modifier, nil if it is translated
1155 to alt_modifier. */
1156 Lisp_Object f_Vw32_alt_is_meta;
1157
1158 /* If non-zero, the windows virtual key code for an alternative quit key. */
1159 int f_w32_quit_key;
1160
1161 /* Non nil if left window key events are passed on to Windows (this only
1162 affects whether "tapping" the key opens the Start menu). */
1163 Lisp_Object f_Vw32_pass_lwindow_to_system;
1164
1165 /* Non nil if right window key events are passed on to Windows (this
1166 only affects whether "tapping" the key opens the Start menu). */
1167 Lisp_Object f_Vw32_pass_rwindow_to_system;
1168
1169 /* Virtual key code used to generate "phantom" key presses in order
1170 to stop system from acting on Windows key events. */
1171 Lisp_Object f_Vw32_phantom_key_code;
1172
1173 /* Modifier associated with the left "Windows" key, or nil to act as a
1174 normal key. */
1175 Lisp_Object f_Vw32_lwindow_modifier;
1176
1177 /* Modifier associated with the right "Windows" key, or nil to act as a
1178 normal key. */
1179 Lisp_Object f_Vw32_rwindow_modifier;
1180
1181 /* Modifier associated with the "Apps" key, or nil to act as a normal
1182 key. */
1183 Lisp_Object f_Vw32_apps_modifier;
1184
1185 /* Value is nil if Num Lock acts as a function key. */
1186 Lisp_Object f_Vw32_enable_num_lock;
1187
1188 /* Value is nil if Caps Lock acts as a function key. */
1189 Lisp_Object f_Vw32_enable_caps_lock;
1190
1191 /* Modifier associated with Scroll Lock, or nil to act as a normal key. */
1192 Lisp_Object f_Vw32_scroll_lock_modifier;
1193
1194 /* Switch to control whether we inhibit requests for synthesized bold
1195 and italic versions of fonts. */
1196 int f_w32_enable_synthesized_fonts;
1197
1198 /* Enable palette management. */
1199 Lisp_Object f_Vw32_enable_palette;
1200
1201 /* Control how close left/right button down events must be to
1202 be converted to a middle button down event. */
1203 int f_w32_mouse_button_tolerance;
1204
1205 /* Minimum interval between mouse movement (and scroll bar drag)
1206 events that are passed on to the event loop. */
1207 int f_w32_mouse_move_interval;
1208
1209 /* Flag to indicate if XBUTTON events should be passed on to Windows. */
1210 int f_w32_pass_extra_mouse_buttons_to_system;
1211
1212 /* Flag to indicate if media keys should be passed on to Windows. */
1213 int f_w32_pass_multimedia_buttons_to_system;
1214
1215 /* Non nil if no window manager is in use. */
1216 Lisp_Object f_Vx_no_window_manager;
1217
1218 /* The background and shape of the mouse pointer, and shape when not
1219 over text or in the modeline. */
1220 Lisp_Object f_Vx_pointer_shape;
1221 Lisp_Object f_Vx_nontext_pointer_shape;
1222 Lisp_Object f_Vx_mode_pointer_shape;
1223
1224 /* TODO: Mouse cursor customization. */
1225 Lisp_Object f_Vx_hourglass_pointer_shape;
1226 Lisp_Object f_Vx_window_horizontal_drag_shape;
1227
1228 /* The shape when over mouse-sensitive text. */
1229 Lisp_Object f_Vx_sensitive_text_pointer_shape;
1230
1231 /* Color of chars displayed in cursor box. */
1232 Lisp_Object f_Vx_cursor_fore_pixel;
1233
1234 /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
1235 Lisp_Object f_Vx_pixel_size_width_font_regexp;
1236
1237 /* Alist of bdf fonts and the files that define them. */
1238 Lisp_Object f_Vw32_bdf_filename_alist;
1239
1240 /* A flag to control whether fonts are matched strictly or not. */
1241 int f_w32_strict_fontnames;
1242
1243 /* A flag to control whether we should only repaint if GetUpdateRect
1244 indicates there is an update region. */
1245 int f_w32_strict_painting;
1246
1247 /* The ANSI codepage. */
1248 int f_w32_ansi_code_page;
1249
1250 /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */
1251 Lisp_Object f_Vx_max_tooltip_size;
1252
1253 /* Associative list linking character set strings to Windows codepages. */
1254 Lisp_Object f_Vw32_charset_info_alist;
1255
1256 /* Control whether spawnve quotes arguments as necessary to ensure
1257 correct parsing by child process. Because not all uses of spawnve
1258 are careful about constructing argv arrays, we make this behavior
1259 conditional (off by default). */
1260 Lisp_Object f_Vw32_quote_process_args;
1261
1262 /* Control whether create_child causes the process' window to be
1263 hidden. The default is nil. */
1264 Lisp_Object f_Vw32_start_process_show_window;
1265
1266 /* Control whether create_child causes the process to inherit Emacs'
1267 console window, or be given a new one of its own. The default is
1268 nil, to allow multiple DOS programs to run on Win95. Having separate
1269 consoles also allows Emacs to cleanly terminate process groups. */
1270 Lisp_Object f_Vw32_start_process_share_console;
1271
1272 /* Control whether create_child cause the process to inherit Emacs'
1273 error mode setting. The default is t, to minimize the possibility of
1274 subprocesses blocking when accessing unmounted drives. */
1275 Lisp_Object f_Vw32_start_process_inherit_error_mode;
1276
1277 /* Time to sleep before reading from a subprocess output pipe - this
1278 avoids the inefficiency of frequently reading small amounts of data.
1279 This is primarily necessary for handling DOS processes on Windows 95,
1280 but is useful for W32 processes on both Windows 95 and NT as well. */
1281 int f_w32_pipe_read_delay;
1282
1283 /* Control conversion of upper case file names to lower case.
1284 nil means no, t means yes. */
1285 Lisp_Object f_Vw32_downcase_file_names;
1286
1287 /* Control whether stat() attempts to generate fake but hopefully
1288 "accurate" inode values, by hashing the absolute truenames of files.
1289 This should detect aliasing between long and short names, but still
1290 allows the possibility of hash collisions. */
1291 Lisp_Object f_Vw32_generate_fake_inodes;
1292
1293 /* Control whether stat() attempts to determine file type and link count
1294 exactly, at the expense of slower operation. Since true hard links
1295 are supported on NTFS volumes, this is only relevant on NT. */
1296 Lisp_Object f_Vw32_get_true_file_attributes;
1297
1298 /* Coding system for communicating with other programs via the
1299 clipboard. */
1300
1301 /* Coding system for the next communication with other programs. */
1302
1303 /* Non-nil means Emacs uses toolkit scroll bars. */
1304 Lisp_Object f_Vx_toolkit_scroll_bars;
1305
1306 /* Non-zero means make use of UNDERLINE_POSITION font properties. */
1307 int f_x_use_underline_position_properties;
1308
1309 /* Non-zero means to draw the underline at the same place as the descent line. */
1310 int f_x_underline_at_descent_line;
1311
1312 int f_w32_use_visible_system_caret;
1313
1314 int f_w32_num_mouse_buttons;
1315
1316 Lisp_Object f_Vw32_swap_mouse_buttons;
1317
1318 /* Control whether x_raise_frame also sets input focus. */
1319 Lisp_Object f_Vw32_grab_focus_on_raise;
1320
1321 /* Control whether Caps Lock affects non-ascii characters. */
1322 Lisp_Object f_Vw32_capslock_is_shiftlock;
1323
1324 /* Control whether right-alt and left-ctrl should be recognized as AltGr. */
1325 Lisp_Object f_Vw32_recognize_altgr;
1326
1327 /* Non-nil means it is the window for C-M-v to scroll
1328 when the mini-buffer is selected. */
1329 Lisp_Object f_Vminibuf_scroll_window;
1330
1331 /* Non-nil means this is the buffer whose window C-M-v should scroll. */
1332 Lisp_Object f_Vother_window_scroll_buffer;
1333
1334 /* Non-nil means it's function to call to display temp buffers. */
1335 Lisp_Object f_Vtemp_buffer_show_function;
1336
1337 /* Non-zero means line and page scrolling on tall lines (with images)
1338 does partial scrolling by modifying window-vscroll. */
1339 int f_auto_window_vscroll_p;
1340
1341 /* Non-zero means to use mode-line-inactive face in all windows but the
1342 selected-window and the minibuffer-scroll-window when the
1343 minibuffer is active. */
1344 int f_mode_line_in_non_selected_windows;
1345
1346 /* If a window gets smaller than either of these, it is removed. */
1347 EMACS_INT f_window_min_height;
1348
1349 EMACS_INT f_window_min_width;
1350
1351 /* Number of lines of continuity in scrolling by screenfuls. */
1352 EMACS_INT f_next_screen_context_lines;
1353
1354 Lisp_Object f_Vwindow_configuration_change_hook;
1355
1356 /* Non-nil means scroll commands try to put point
1357 at the same screen height as previously. */
1358 Lisp_Object f_Vscroll_preserve_screen_position;
1359
1360 /* Non-nil means that text is inserted before window's markers. */
1361 Lisp_Object f_Vwindow_point_insertion_type;
1362
1363 /* If non-nil, then the `recenter' command with a nil argument
1364 the entire frame to be redrawn; the special value `tty' causes the
1365 frame to be redrawn only if it is a tty frame. */
1366 Lisp_Object f_Vrecenter_redisplay;
1367
1368 Lisp_Object f_Vwindow_scroll_functions;
1369
1370 Lisp_Object f_Vwindow_text_change_functions;
1371
1372 Lisp_Object f_Vredisplay_end_trigger_functions;
1373
1374 /* Functions called to fontify regions of text. */
1375 Lisp_Object f_Vfontification_functions;
1376
1377 /* Non-nil means automatically select any window when the mouse
1378 cursor moves into it. */
1379 Lisp_Object f_Vmouse_autoselect_window;
1380
1381 Lisp_Object f_Vwrap_prefix;
1382
1383 Lisp_Object f_Vline_prefix;
1384
1385 /* Non-zero means draw tool bar buttons raised when the mouse moves
1386 over them. */
1387 int f_auto_raise_tool_bar_buttons_p;
1388
1389 /* Non-zero means to reposition window if cursor line is only partially visible. */
1390 int f_make_cursor_line_fully_visible_p;
1391
1392 /* Margin below tool bar in pixels. 0 or nil means no margin.
1393 If value is `internal-border-width' or `border-width',
1394 the corresponding frame parameter is used. */
1395 Lisp_Object f_Vtool_bar_border;
1396
1397 /* Margin around tool bar buttons in pixels. */
1398 Lisp_Object f_Vtool_bar_button_margin;
1399
1400 /* Thickness of shadow to draw around tool bar buttons. */
1401 EMACS_INT f_tool_bar_button_relief;
1402
1403 /* Non-nil means automatically resize tool-bars so that all tool-bar
1404 items are visible, and no blank lines remain.
1405
1406 If value is `grow-only', only make tool-bar bigger. */
1407 Lisp_Object f_Vauto_resize_tool_bars;
1408
1409 /* Type of tool bar. Can be symbols image, text, both or both-hroiz. */
1410 Lisp_Object f_Vtool_bar_style;
1411
1412 /* Maximum number of characters a label can have to be shown. */
1413 EMACS_INT f_tool_bar_max_label_size;
1414
1415 /* Non-zero means draw block and hollow cursor as wide as the glyph
1416 under it. For example, if a block cursor is over a tab, it will be
1417 drawn as wide as that tab on the display. */
1418 int f_x_stretch_cursor_p;
1419
1420 Lisp_Object f_Vinhibit_redisplay;
1421
1422 /* Non-zero means Lisp evaluation during redisplay is inhibited. */
1423 int f_inhibit_eval_during_redisplay;
1424
1425 /* Symbols used in text property values. */
1426 Lisp_Object f_Vdisplay_pixels_per_inch;
1427
1428 /* Non-nil means highlight trailing whitespace. */
1429 Lisp_Object f_Vshow_trailing_whitespace;
1430
1431 /* Non-nil means escape non-break space and hyphens. */
1432 Lisp_Object f_Vnobreak_char_display;
1433
1434 /* Non-nil means show the text cursor in void text areas
1435 i.e. in blank areas after eol and eob. This used to be
1436 the default in 21.3. */
1437 Lisp_Object f_Vvoid_text_area_pointer;
1438
1439 /* Nonzero means truncate lines in all windows less wide than the
1440 frame. */
1441 Lisp_Object f_Vtruncate_partial_width_windows;
1442
1443 /* A flag to control how to display unibyte 8-bit character. */
1444 int f_unibyte_display_via_language_environment;
1445
1446 /* Nonzero means we have more than one non-mini-buffer-only frame.
1447 Not guaranteed to be accurate except while parsing
1448 frame-title-format. */
1449 int f_multiple_frames;
1450
1451 Lisp_Object f_Vglobal_mode_string;
1452
1453 /* List of variables (symbols) which hold markers for overlay arrows.
1454 The symbols on this list are examined during redisplay to determine
1455 where to display overlay arrows. */
1456 Lisp_Object f_Voverlay_arrow_variable_list;
1457
1458 /* Marker for where to display an arrow on top of the buffer text. */
1459 Lisp_Object f_Voverlay_arrow_position;
1460
1461 /* String to display for the arrow. Only used on terminal frames. */
1462 Lisp_Object f_Voverlay_arrow_string;
1463
1464 /* Like mode-line-format, but for the title bar on a visible frame. */
1465 Lisp_Object f_Vframe_title_format;
1466
1467 /* Like mode-line-format, but for the title bar on an iconified frame. */
1468 Lisp_Object f_Vicon_title_format;
1469
1470 /* List of functions to call when a window's size changes. These
1471 functions get one arg, a frame on which one or more windows' sizes
1472 have changed. */
1473 Lisp_Object f_Vwindow_size_change_functions;
1474
1475 Lisp_Object f_Vmenu_bar_update_hook;
1476
1477 /* Nonzero means highlight the region even in nonselected windows. */
1478 int f_highlight_nonselected_windows;
1479
1480 /* If cursor motion alone moves point off frame, try scrolling this
1481 many lines up or down if that will bring it back. */
1482 EMACS_INT f_emacs_scroll_step;
1483
1484 /* Nonzero means scroll just far enough to bring point back on the
1485 screen, when appropriate. */
1486 EMACS_INT f_scroll_conservatively;
1487
1488 /* Recenter the window whenever point gets within this many lines of
1489 the top or bottom of the window. This value is translated into a
1490 pixel value by multiplying it with FRAME_LINE_HEIGHT, which means
1491 that there is really a fixed pixel height scroll margin. */
1492 EMACS_INT f_scroll_margin;
1493
1494 /* Zero means display the mode-line/header-line/menu-bar in the default face
1495 (this slightly odd definition is for compatibility with previous versions
1496 of emacs), non-zero means display them using their respective faces.
1497
1498 This variable is deprecated. */
1499 int f_mode_line_inverse_video;
1500
1501 /* Maximum buffer size for which to display line numbers. */
1502 Lisp_Object f_Vline_number_display_limit;
1503
1504 /* Line width to consider when repositioning for line number display. */
1505 EMACS_INT f_line_number_display_limit_width;
1506
1507 /* Number of lines to keep in the message log buffer. t means
1508 infinite. nil means don't log at all. */
1509 Lisp_Object f_Vmessage_log_max;
1510
1511 int f_inhibit_menubar_update;
1512
1513 /* When evaluating expressions from menu bar items (enable conditions,
1514 for instance), this is the frame they are being processed for. */
1515 Lisp_Object f_Vmenu_updating_frame;
1516
1517 /* Maximum height for resizing mini-windows. Either a float
1518 specifying a fraction of the available height, or an integer
1519 specifying a number of lines. */
1520 Lisp_Object f_Vmax_mini_window_height;
1521
1522 /* Non-zero means messages should be displayed with truncated
1523 lines instead of being continued. */
1524 int f_message_truncate_lines;
1525
1526 /* How to blink the default frame cursor off. */
1527 Lisp_Object f_Vblink_cursor_alist;
1528
1529 /* Variables to turn off display optimizations from Lisp. */
1530 int f_inhibit_try_window_id;
1531 int f_inhibit_try_window_reusing;
1532
1533 int f_inhibit_try_cursor_movement;
1534
1535 /* Non-zero means automatically scroll windows horizontally to make
1536 point visible. */
1537 int f_automatic_hscrolling_p;
1538
1539 /* How close to the margin can point get before the window is scrolled
1540 horizontally. */
1541 EMACS_INT f_hscroll_margin;
1542
1543 /* How much to scroll horizontally when point is inside the above margin. */
1544 Lisp_Object f_Vhscroll_step;
1545
1546 /* The variable `resize-mini-windows'. If nil, don't resize
1547 mini-windows. If t, always resize them to fit the text they
1548 display. If `grow-only', let mini-windows grow only until they
1549 become empty. */
1550 Lisp_Object f_Vresize_mini_windows;
1551
1552 /* Space between overline and text. */
1553 EMACS_INT f_overline_margin;
1554
1555 /* Require underline to be at least this many screen pixels below baseline
1556 This to avoid underline "merging" with the base of letters at small
1557 font sizes, particularly when x_use_underline_position_properties is on. */
1558 EMACS_INT f_underline_minimum_offset;
1559
1560 /* Non-zero means don't free realized faces. Bound while freeing
1561 realized faces is dangerous because glyph matrices might still
1562 reference them. */
1563 int f_inhibit_free_realized_faces;
1564
1565 /* Non-zero means we're allowed to display a hourglass pointer. */
1566 int f_display_hourglass_p;
1567
1568 /* Number of seconds to wait before displaying an hourglass cursor. */
1569 Lisp_Object f_Vhourglass_delay;
1570
1571 /* Char-table to control the display of glyphless characters. */
1572 Lisp_Object f_Vglyphless_char_display;
1573
1574 EMACS_INT f_debug_end_pos;
1575
1576 /* Default stipple pattern used on monochrome displays. This stipple
1577 pattern is used on monochrome displays instead of shades of gray
1578 for a face background color. See `set-face-stipple' for possible
1579 values for this variable. */
1580 Lisp_Object f_Vface_default_stipple;
1581
1582 Lisp_Object f_Vscalable_fonts_allowed;
1583
1584 /* List of regular expressions that matches names of fonts to ignore. */
1585 Lisp_Object f_Vface_ignored_fonts;
1586
1587 /* Alist of font name patterns vs the rescaling factor. */
1588 Lisp_Object f_Vface_font_rescale_alist;
1589
1590 /* Maximum number of fonts to consider in font_list. If not an
1591 integer > 0, DEFAULT_FONT_LIST_LIMIT is used instead. */
1592 Lisp_Object f_Vfont_list_limit;
1593
1594 /* Alist of global face definitions. Each element is of the form
1595 (FACE . LFACE) where FACE is a symbol naming a face and LFACE
1596 is a Lisp vector of face attributes. These faces are used
1597 to initialize faces for new frames. */
1598 Lisp_Object f_Vface_new_frame_defaults;
1599
1600 /* Alist of face remappings. Each element is of the form:
1601 (FACE REPLACEMENT...) which causes display of the face FACE to use
1602 REPLACEMENT... instead. REPLACEMENT... is interpreted the same way
1603 the value of a `face' text property is: it may be (1) A face name,
1604 (2) A list of face names, (3) A property-list of face attribute/value
1605 pairs, or (4) A list of face names intermixed with lists containing
1606 face attribute/value pairs.
1607
1608 Multiple entries in REPLACEMENT... are merged together to form the final
1609 result, with faces or attributes earlier in the list taking precedence
1610 over those that are later.
1611
1612 Face-name remapping cycles are suppressed; recursive references use
1613 the underlying face instead of the remapped face. */
1614 Lisp_Object f_Vface_remapping_alist;
1615
1616 /* An alist of defined terminal colors and their RGB values. */
1617 Lisp_Object f_Vtty_defined_color_alist;
1618
1619 /* LessTif/Motif version info. */
1620 Lisp_Object f_Vmotif_version_string;
1621
1622 /* GTK+ version info */
1623 Lisp_Object f_Vgtk_version_string;
1624
1625 /* Non-zero means prompt with the old GTK file selection dialog. */
1626 int f_x_gtk_use_old_file_dialog;
1627
1628 /* If non-zero, by default show hidden files in the GTK file chooser. */
1629 int f_x_gtk_show_hidden_files;
1630
1631 /* If non-zero, don't show additional help text in the GTK file chooser. */
1632 int f_x_gtk_file_dialog_help_text;
1633
1634 /* If non-zero, don't collapse to tool bar when it is detached. */
1635 int f_x_gtk_whole_detached_tool_bar;
1636
1637 /* If non-zero, use Gtk+ tooltips. */
1638 int f_x_gtk_use_system_tooltips;
1639
1640 /* The background and shape of the mouse pointer, and shape when not
1641 over text or in the modeline. */
1642
1643 /* The shape when over mouse-sensitive text. */
1644
1645 /* If non-nil, the pointer shape to indicate that windows can be
1646 dragged horizontally. */
1647
1648 /* Color of chars displayed in cursor box. */
1649
1650 /* Non nil if no window manager is in use. */
1651
1652 /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
1653
1654 /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */
1655
1656 Lisp_Object f_Vx_lost_selection_functions;
1657
1658 Lisp_Object f_Vx_sent_selection_functions;
1659
1660 /* This is an alist whose CARs are selection-types (whose names are the same
1661 as the names of X Atoms) and whose CDRs are the names of Lisp functions to
1662 call to convert the given Emacs selection value to a string representing
1663 the given selection type. This is for Lisp-level extension of the emacs
1664 selection handling. */
1665 Lisp_Object f_Vselection_converter_alist;
1666
1667 /* If the selection owner takes too long to reply to a selection request,
1668 we give up on it. This is in milliseconds (0 = no timeout.) */
1669 EMACS_INT f_x_selection_timeout;
1670
1671 int f_use_system_font;
1672
1673 Lisp_Object f_Vxft_settings;
1674
1675 /* The client session id for this session as a lisp object. */
1676 Lisp_Object f_Vx_session_id;
1677
1678 /* The id we had the previous session. This is only available if we
1679 have been started by the session manager with SMID_OPT. */
1680 Lisp_Object f_Vx_session_previous_id;
1681
1682 /* Non-nil means Emacs uses toolkit scroll bars. */
1683
1684 /* Non-zero means make use of UNDERLINE_POSITION font properties. */
1685
1686 /* Non-zero means to draw the underline at the same place as the descent line. */
1687
1688 /* Non-zero means to not move point as a result of clicking on a
1689 frame to focus it (when focus-follows-mouse is nil). */
1690 int f_x_mouse_click_focus_ignore_position;
1691
1692 /* The keysyms to use for the various modifiers. */
1693 Lisp_Object f_Vx_alt_keysym;
1694 Lisp_Object f_Vx_hyper_keysym;
1695 Lisp_Object f_Vx_meta_keysym;
1696 Lisp_Object f_Vx_super_keysym;
1697
1698 Lisp_Object f_Vx_keysym_table;
1699
1700 /* Lisp communications */
1701 Lisp_Object f_ns_input_file, f_ns_input_font, f_ns_input_fontsize,
1702 f_ns_input_line;
1703 Lisp_Object f_ns_input_color, f_ns_input_text, f_ns_working_text;
1704 Lisp_Object f_ns_input_spi_name, f_ns_input_spi_arg;
1705
1706 /* Specifies which emacs modifier should be generated when NS receives
1707 the Alternate modifier. May be Qnone or any of the modifier lisp symbols.
1708 */
1709 Lisp_Object f_ns_alternate_modifier;
1710
1711 /* Specifies which emacs modifier should be generated when NS receives
1712 the right Alternate modifier. Has same values as ns_alternate_modifier
1713 plus the value Qleft which means whatever value ns_alternate_modifier has.
1714 */
1715 Lisp_Object f_ns_right_alternate_modifier;
1716
1717 /* Specifies which emacs modifier should be generated when NS receives
1718 the Command modifier. May be any of the modifier lisp symbols. */
1719 Lisp_Object f_ns_command_modifier;
1720
1721 /* Specifies which emacs modifier should be generated when NS receives
1722 the right Command modifier. Has same values as ns_command_modifier plus
1723 the value Qleft which means whatever value ns_command_modifier has. */
1724 Lisp_Object f_ns_right_command_modifier;
1725
1726 /* Specifies which emacs modifier should be generated when NS receives
1727 the Control modifier. May be any of the modifier lisp symbols. */
1728 Lisp_Object f_ns_control_modifier;
1729
1730 /* Specifies which emacs modifier should be generated when NS receives
1731 the right Control modifier. Has same values as ns_control_modifier plus
1732 the value Qleft which means whatever value ns_control_modifier has. */
1733 Lisp_Object f_ns_right_control_modifier;
1734
1735 /* Specifies which emacs modifier should be generated when NS receives
1736 the Function modifier (laptops). May be any of the modifier lisp symbols.
1737 */
1738 Lisp_Object f_ns_function_modifier;
1739
1740 /* Control via default 'GSFontAntiAlias' on OS X and GNUstep. */
1741 Lisp_Object f_ns_antialias_text;
1742
1743 /* Confirm on exit. */
1744 Lisp_Object f_ns_confirm_quit;
1745
1746 /* Alist of elements (REGEXP . IMAGE) for images of icons associated
1747 to frames.*/
1748 Lisp_Object f_Vns_icon_type_alist;
1749
1750 /* Toolkit version support. */
1751 Lisp_Object f_Vns_version_string;
1752
1753 Lisp_Object f_Vns_sent_selection_hooks;
1754 Lisp_Object f_Vns_lost_selection_hooks;
1755
1756 /* This is an association list whose elements are of the form
1757 ( SELECTION-NAME SELECTION-VALUE SELECTION-TIMESTAMP FRAME)
1758 SELECTION-NAME is a lisp symbol, whose name is the name of an X Atom.
1759 SELECTION-VALUE is the value that emacs owns for that selection.
1760 It may be any kind of Lisp object.
1761 SELECTION-TIMESTAMP is the time at which emacs began owning this
1762 selection, as a cons of two 16-bit numbers (making a 32 bit time.)
1763 FRAME is the frame for which we made the selection.
1764 If there is an entry in this alist, then it can be assumed that Emacs owns
1765 that selection.
1766 The only (eq) parts of this list that are visible from Lisp are the
1767 selection-values. */
1768 Lisp_Object f_Vselection_alist;
1769
1770 Lisp_Object f_Vns_reg_to_script;
1771
1772
1773};
1774
1775extern struct emacs_globals globals;
1776
1777#define Vafter_change_functions \
1778 globals.f_Vafter_change_functions
1779#define Vafter_init_time \
1780 globals.f_Vafter_init_time
1781#define Vafter_insert_file_functions \
1782 globals.f_Vafter_insert_file_functions
1783#define Vafter_load_alist \
1784 globals.f_Vafter_load_alist
1785#define Valternate_fontname_alist \
1786 globals.f_Valternate_fontname_alist
1787#define Vauto_composition_function \
1788 globals.f_Vauto_composition_function
1789#define Vauto_composition_mode \
1790 globals.f_Vauto_composition_mode
1791#define Vauto_fill_chars \
1792 globals.f_Vauto_fill_chars
1793#define Vauto_resize_tool_bars \
1794 globals.f_Vauto_resize_tool_bars
1795#define Vauto_save_include_big_deletions \
1796 globals.f_Vauto_save_include_big_deletions
1797#define Vauto_save_list_file_name \
1798 globals.f_Vauto_save_list_file_name
1799#define Vauto_save_timeout \
1800 globals.f_Vauto_save_timeout
1801#define Vauto_save_visited_file_name \
1802 globals.f_Vauto_save_visited_file_name
1803#define Vbefore_change_functions \
1804 globals.f_Vbefore_change_functions
1805#define Vbefore_init_time \
1806 globals.f_Vbefore_init_time
1807#define Vblink_cursor_alist \
1808 globals.f_Vblink_cursor_alist
1809#define Vbuffer_access_fontified_property \
1810 globals.f_Vbuffer_access_fontified_property
1811#define Vbuffer_access_fontify_functions \
1812 globals.f_Vbuffer_access_fontify_functions
1813#define Vbuild_files \
1814 globals.f_Vbuild_files
1815#define Vbyte_boolean_vars \
1816 globals.f_Vbyte_boolean_vars
1817#define Vbyte_code_meter \
1818 globals.f_Vbyte_code_meter
1819#define Vbytecomp_version_regexp \
1820 globals.f_Vbytecomp_version_regexp
1821#define Vchange_major_mode_hook \
1822 globals.f_Vchange_major_mode_hook
1823#define Vchar_direction_table \
1824 globals.f_Vchar_direction_table
1825#define Vchar_property_alias_alist \
1826 globals.f_Vchar_property_alias_alist
1827#define Vchar_script_table \
1828 globals.f_Vchar_script_table
1829#define Vchar_width_table \
1830 globals.f_Vchar_width_table
1831#define Vcharset_list \
1832 globals.f_Vcharset_list
1833#define Vcharset_map_path \
1834 globals.f_Vcharset_map_path
1835#define Vcharset_revision_table \
1836 globals.f_Vcharset_revision_table
1837#define Vcode_conversion_map_vector \
1838 globals.f_Vcode_conversion_map_vector
1839#define Vcoding_category_list \
1840 globals.f_Vcoding_category_list
1841#define Vcoding_system_alist \
1842 globals.f_Vcoding_system_alist
1843#define Vcoding_system_for_read \
1844 globals.f_Vcoding_system_for_read
1845#define Vcoding_system_for_write \
1846 globals.f_Vcoding_system_for_write
1847#define Vcoding_system_list \
1848 globals.f_Vcoding_system_list
1849#define Vcombine_after_change_calls \
1850 globals.f_Vcombine_after_change_calls
1851#define Vcommand_debug_status \
1852 globals.f_Vcommand_debug_status
1853#define Vcommand_error_function \
1854 globals.f_Vcommand_error_function
1855#define Vcommand_history \
1856 globals.f_Vcommand_history
1857#define Vcommand_hook_internal \
1858 globals.f_Vcommand_hook_internal
1859#define Vcommand_line_args \
1860 globals.f_Vcommand_line_args
1861#define Vcompletion_ignored_extensions \
1862 globals.f_Vcompletion_ignored_extensions
1863#define Vcompletion_regexp_list \
1864 globals.f_Vcompletion_regexp_list
1865#define Vcompose_chars_after_function \
1866 globals.f_Vcompose_chars_after_function
1867#define Vcomposition_function_table \
1868 globals.f_Vcomposition_function_table
1869#define Vconfigure_info_directory \
1870 globals.f_Vconfigure_info_directory
1871#define Vcurrent_iso639_language \
1872 globals.f_Vcurrent_iso639_language
1873#define Vcurrent_load_list \
1874 globals.f_Vcurrent_load_list
1875#define Vcurrent_prefix_arg \
1876 globals.f_Vcurrent_prefix_arg
1877#define Vdata_directory \
1878 globals.f_Vdata_directory
1879#define Vdbus_debug \
1880 globals.f_Vdbus_debug
1881#define Vdbus_registered_buses \
1882 globals.f_Vdbus_registered_buses
1883#define Vdbus_registered_objects_table \
1884 globals.f_Vdbus_registered_objects_table
1885#define Vdeactivate_mark \
1886 globals.f_Vdeactivate_mark
1887#define Vdebug_ignored_errors \
1888 globals.f_Vdebug_ignored_errors
1889#define Vdebug_on_error \
1890 globals.f_Vdebug_on_error
1891#define Vdebug_on_signal \
1892 globals.f_Vdebug_on_signal
1893#define Vdebugger \
1894 globals.f_Vdebugger
1895#define Vdefault_file_name_coding_system \
1896 globals.f_Vdefault_file_name_coding_system
1897#define Vdefault_frame_alist \
1898 globals.f_Vdefault_frame_alist
1899#define Vdefault_frame_scroll_bars \
1900 globals.f_Vdefault_frame_scroll_bars
1901#define Vdefault_process_coding_system \
1902 globals.f_Vdefault_process_coding_system
1903#define Vdefault_text_properties \
1904 globals.f_Vdefault_text_properties
1905#define Vdeferred_action_function \
1906 globals.f_Vdeferred_action_function
1907#define Vdeferred_action_list \
1908 globals.f_Vdeferred_action_list
1909#define Vdefine_key_rebound_commands \
1910 globals.f_Vdefine_key_rebound_commands
1911#define Vdelete_frame_functions \
1912 globals.f_Vdelete_frame_functions
1913#define Vdelete_terminal_functions \
1914 globals.f_Vdelete_terminal_functions
1915#define Vdisable_point_adjustment \
1916 globals.f_Vdisable_point_adjustment
1917#define Vdisplay_pixels_per_inch \
1918 globals.f_Vdisplay_pixels_per_inch
1919#define Vdoc_directory \
1920 globals.f_Vdoc_directory
1921#define Vdoc_file_name \
1922 globals.f_Vdoc_file_name
1923#define Vdos_display_scancodes \
1924 globals.f_Vdos_display_scancodes
1925#define Vdos_unsupported_char_glyph \
1926 globals.f_Vdos_unsupported_char_glyph
1927#define Vdos_version \
1928 globals.f_Vdos_version
1929#define Vdos_windows_version \
1930 globals.f_Vdos_windows_version
1931#define Vdouble_click_time \
1932 globals.f_Vdouble_click_time
1933#define Vdynamic_library_alist \
1934 globals.f_Vdynamic_library_alist
1935#define Vecho_keystrokes \
1936 globals.f_Vecho_keystrokes
1937#define Vemacs_copyright \
1938 globals.f_Vemacs_copyright
1939#define Vemacs_version \
1940 globals.f_Vemacs_version
1941#define Vemulation_mode_map_alists \
1942 globals.f_Vemulation_mode_map_alists
1943#define Venable_character_translation \
1944 globals.f_Venable_character_translation
1945#define Venable_disabled_menus_and_buttons \
1946 globals.f_Venable_disabled_menus_and_buttons
1947#define Veval_buffer_list \
1948 globals.f_Veval_buffer_list
1949#define Vexec_directory \
1950 globals.f_Vexec_directory
1951#define Vexec_path \
1952 globals.f_Vexec_path
1953#define Vexec_suffixes \
1954 globals.f_Vexec_suffixes
1955#define Vkbd_macro_termination_hook \
1956 globals.f_Vkbd_macro_termination_hook
1957#define Vexecuting_kbd_macro \
1958 globals.f_Vexecuting_kbd_macro
1959#define Vface_default_stipple \
1960 globals.f_Vface_default_stipple
1961#define Vface_font_rescale_alist \
1962 globals.f_Vface_font_rescale_alist
1963#define Vface_ignored_fonts \
1964 globals.f_Vface_ignored_fonts
1965#define Vface_new_frame_defaults \
1966 globals.f_Vface_new_frame_defaults
1967#define Vface_remapping_alist \
1968 globals.f_Vface_remapping_alist
1969#define Vfeatures \
1970 globals.f_Vfeatures
1971#define Vfile_coding_system_alist \
1972 globals.f_Vfile_coding_system_alist
1973#define Vfile_name_coding_system \
1974 globals.f_Vfile_name_coding_system
1975#define Vfile_name_handler_alist \
1976 globals.f_Vfile_name_handler_alist
1977#define Vfind_word_boundary_function_table \
1978 globals.f_Vfind_word_boundary_function_table
1979#define Vfirst_change_hook \
1980 globals.f_Vfirst_change_hook
1981#define Vfloat_output_format \
1982 globals.f_Vfloat_output_format
1983#define Vfont_ccl_encoder_alist \
1984 globals.f_Vfont_ccl_encoder_alist
1985#define Vfont_encoding_alist \
1986 globals.f_Vfont_encoding_alist
1987#define Vfont_encoding_charset_alist \
1988 globals.f_Vfont_encoding_charset_alist
1989#define Vfont_list_limit \
1990 globals.f_Vfont_list_limit
1991#define Vfont_log \
1992 globals.f_Vfont_log
1993#define Vfont_slant_table \
1994 globals.f_Vfont_slant_table
1995#define Vfont_weight_table \
1996 globals.f_Vfont_weight_table
1997#define Vfont_width_table \
1998 globals.f_Vfont_width_table
1999#define Vfontification_functions \
2000 globals.f_Vfontification_functions
2001#define Vfontset_alias_alist \
2002 globals.f_Vfontset_alias_alist
2003#define Vframe_alpha_lower_limit \
2004 globals.f_Vframe_alpha_lower_limit
2005#define Vframe_title_format \
2006 globals.f_Vframe_title_format
2007#define Vfringe_bitmaps \
2008 globals.f_Vfringe_bitmaps
2009#define Vfunction_key_map \
2010 globals.f_Vfunction_key_map
2011#define Vgc_cons_percentage \
2012 globals.f_Vgc_cons_percentage
2013#define Vgc_elapsed \
2014 globals.f_Vgc_elapsed
2015#define Vglobal_disable_point_adjustment \
2016 globals.f_Vglobal_disable_point_adjustment
2017#define Vglobal_mode_string \
2018 globals.f_Vglobal_mode_string
2019#define Vglyph_table \
2020 globals.f_Vglyph_table
2021#define Vglyphless_char_display \
2022 globals.f_Vglyphless_char_display
2023#define Vgtk_version_string \
2024 globals.f_Vgtk_version_string
2025#define Vhelp_char \
2026 globals.f_Vhelp_char
2027#define Vhelp_event_list \
2028 globals.f_Vhelp_event_list
2029#define Vhelp_form \
2030 globals.f_Vhelp_form
2031#define Vhistory_add_new_input \
2032 globals.f_Vhistory_add_new_input
2033#define Vhistory_length \
2034 globals.f_Vhistory_length
2035#define Vhourglass_delay \
2036 globals.f_Vhourglass_delay
2037#define Vhscroll_step \
2038 globals.f_Vhscroll_step
2039#define Vicon_title_format \
2040 globals.f_Vicon_title_format
2041#define Vignore_relative_composition \
2042 globals.f_Vignore_relative_composition
2043#define Vimage_cache_eviction_delay \
2044 globals.f_Vimage_cache_eviction_delay
2045#define Vimage_types \
2046 globals.f_Vimage_types
2047#define Vimagemagick_render_type \
2048 globals.f_Vimagemagick_render_type
2049#define Vinhibit_changing_match_data \
2050 globals.f_Vinhibit_changing_match_data
2051#define Vinhibit_field_text_motion \
2052 globals.f_Vinhibit_field_text_motion
2053#define Vinhibit_file_name_handlers \
2054 globals.f_Vinhibit_file_name_handlers
2055#define Vinhibit_file_name_operation \
2056 globals.f_Vinhibit_file_name_operation
2057#define Vinhibit_point_motion_hooks \
2058 globals.f_Vinhibit_point_motion_hooks
2059#define Vinhibit_quit \
2060 globals.f_Vinhibit_quit
2061#define Vinhibit_read_only \
2062 globals.f_Vinhibit_read_only
2063#define Vinhibit_redisplay \
2064 globals.f_Vinhibit_redisplay
2065#define Vinitial_environment \
2066 globals.f_Vinitial_environment
2067#define Vinitial_window_system \
2068 globals.f_Vinitial_window_system
2069#define Vinput_method_function \
2070 globals.f_Vinput_method_function
2071#define Vinput_method_previous_message \
2072 globals.f_Vinput_method_previous_message
2073#define Vinstallation_directory \
2074 globals.f_Vinstallation_directory
2075#define Vinvocation_directory \
2076 globals.f_Vinvocation_directory
2077#define Vinvocation_name \
2078 globals.f_Vinvocation_name
2079#define Vkey_translation_map \
2080 globals.f_Vkey_translation_map
2081#define Vkill_buffer_query_functions \
2082 globals.f_Vkill_buffer_query_functions
2083#define Vkill_emacs_hook \
2084 globals.f_Vkill_emacs_hook
2085#define Vlast_code_conversion_error \
2086 globals.f_Vlast_code_conversion_error
2087#define Vlast_coding_system_used \
2088 globals.f_Vlast_coding_system_used
2089#define Vlast_event_frame \
2090 globals.f_Vlast_event_frame
2091#define Vlatin_extra_code_table \
2092 globals.f_Vlatin_extra_code_table
2093#define Vline_number_display_limit \
2094 globals.f_Vline_number_display_limit
2095#define Vline_prefix \
2096 globals.f_Vline_prefix
2097#define Vload_file_name \
2098 globals.f_Vload_file_name
2099#define Vload_file_rep_suffixes \
2100 globals.f_Vload_file_rep_suffixes
2101#define Vload_history \
2102 globals.f_Vload_history
2103#define Vload_path \
2104 globals.f_Vload_path
2105#define Vload_read_function \
2106 globals.f_Vload_read_function
2107#define Vload_source_file_function \
2108 globals.f_Vload_source_file_function
2109#define Vload_suffixes \
2110 globals.f_Vload_suffixes
2111#define Vlocale_coding_system \
2112 globals.f_Vlocale_coding_system
2113#define Vlucid_menu_bar_dirty_flag \
2114 globals.f_Vlucid_menu_bar_dirty_flag
2115#define Vmacro_declaration_function \
2116 globals.f_Vmacro_declaration_function
2117#define Vmake_pointer_invisible \
2118 globals.f_Vmake_pointer_invisible
2119#define Vmark_even_if_inactive \
2120 globals.f_Vmark_even_if_inactive
2121#define Vmax_image_size \
2122 globals.f_Vmax_image_size
2123#define Vmax_mini_window_height \
2124 globals.f_Vmax_mini_window_height
2125#define Vmemory_full \
2126 globals.f_Vmemory_full
2127#define Vmemory_signal_data \
2128 globals.f_Vmemory_signal_data
2129#define Vmenu_bar_final_items \
2130 globals.f_Vmenu_bar_final_items
2131#define Vmenu_bar_mode \
2132 globals.f_Vmenu_bar_mode
2133#define Vmenu_bar_update_hook \
2134 globals.f_Vmenu_bar_update_hook
2135#define Vmenu_updating_frame \
2136 globals.f_Vmenu_updating_frame
2137#define Vmessage_log_max \
2138 globals.f_Vmessage_log_max
2139#define Vminibuf_scroll_window \
2140 globals.f_Vminibuf_scroll_window
2141#define Vminibuffer_completing_file_name \
2142 globals.f_Vminibuffer_completing_file_name
2143#define Vminibuffer_completion_confirm \
2144 globals.f_Vminibuffer_completion_confirm
2145#define Vminibuffer_completion_predicate \
2146 globals.f_Vminibuffer_completion_predicate
2147#define Vminibuffer_completion_table \
2148 globals.f_Vminibuffer_completion_table
2149#define Vminibuffer_exit_hook \
2150 globals.f_Vminibuffer_exit_hook
2151#define Vminibuffer_help_form \
2152 globals.f_Vminibuffer_help_form
2153#define Vminibuffer_history_position \
2154 globals.f_Vminibuffer_history_position
2155#define Vminibuffer_history_variable \
2156 globals.f_Vminibuffer_history_variable
2157#define Vminibuffer_local_completion_map \
2158 globals.f_Vminibuffer_local_completion_map
2159#define Vminibuffer_local_filename_completion_map \
2160 globals.f_Vminibuffer_local_filename_completion_map
2161#define Vminibuffer_local_filename_must_match_map \
2162 globals.f_Vminibuffer_local_filename_must_match_map
2163#define Vminibuffer_local_map \
2164 globals.f_Vminibuffer_local_map
2165#define Vminibuffer_local_must_match_map \
2166 globals.f_Vminibuffer_local_must_match_map
2167#define Vminibuffer_local_ns_map \
2168 globals.f_Vminibuffer_local_ns_map
2169#define Vminibuffer_message_timeout \
2170 globals.f_Vminibuffer_message_timeout
2171#define Vminibuffer_prompt_properties \
2172 globals.f_Vminibuffer_prompt_properties
2173#define Vminibuffer_setup_hook \
2174 globals.f_Vminibuffer_setup_hook
2175#define Vminor_mode_map_alist \
2176 globals.f_Vminor_mode_map_alist
2177#define Vminor_mode_overriding_map_alist \
2178 globals.f_Vminor_mode_overriding_map_alist
2179#define Vmost_negative_fixnum \
2180 globals.f_Vmost_negative_fixnum
2181#define Vmost_positive_fixnum \
2182 globals.f_Vmost_positive_fixnum
2183#define Vmotif_version_string \
2184 globals.f_Vmotif_version_string
2185#define Vmouse_autoselect_window \
2186 globals.f_Vmouse_autoselect_window
2187#define Vmouse_highlight \
2188 globals.f_Vmouse_highlight
2189#define Vmouse_leave_buffer_hook \
2190 globals.f_Vmouse_leave_buffer_hook
2191#define Vmouse_position_function \
2192 globals.f_Vmouse_position_function
2193#define Vnetwork_coding_system_alist \
2194 globals.f_Vnetwork_coding_system_alist
2195#define Vnext_selection_coding_system \
2196 globals.f_Vnext_selection_coding_system
2197#define Vnobreak_char_display \
2198 globals.f_Vnobreak_char_display
2199#define Vobarray \
2200 globals.f_Vobarray
2201#define Vold_style_backquotes \
2202 globals.f_Vold_style_backquotes
2203#define Voperating_system_release \
2204 globals.f_Voperating_system_release
2205#define Votf_script_alist \
2206 globals.f_Votf_script_alist
2207#define Vother_window_scroll_buffer \
2208 globals.f_Vother_window_scroll_buffer
2209#define Voverflow_newline_into_fringe \
2210 globals.f_Voverflow_newline_into_fringe
2211#define Voverlay_arrow_position \
2212 globals.f_Voverlay_arrow_position
2213#define Voverlay_arrow_string \
2214 globals.f_Voverlay_arrow_string
2215#define Voverlay_arrow_variable_list \
2216 globals.f_Voverlay_arrow_variable_list
2217#define Voverriding_local_map \
2218 globals.f_Voverriding_local_map
2219#define Voverriding_local_map_menu_flag \
2220 globals.f_Voverriding_local_map_menu_flag
2221#define Vpath_separator \
2222 globals.f_Vpath_separator
2223#define Vpost_command_hook \
2224 globals.f_Vpost_command_hook
2225#define Vpost_gc_hook \
2226 globals.f_Vpost_gc_hook
2227#define Vpost_self_insert_hook \
2228 globals.f_Vpost_self_insert_hook
2229#define Vpre_command_hook \
2230 globals.f_Vpre_command_hook
2231#define Vprefix_help_command \
2232 globals.f_Vprefix_help_command
2233#define Vpreloaded_file_list \
2234 globals.f_Vpreloaded_file_list
2235#define Vprevious_system_messages_locale \
2236 globals.f_Vprevious_system_messages_locale
2237#define Vprevious_system_time_locale \
2238 globals.f_Vprevious_system_time_locale
2239#define Vprint_charset_text_property \
2240 globals.f_Vprint_charset_text_property
2241#define Vprint_circle \
2242 globals.f_Vprint_circle
2243#define Vprint_continuous_numbering \
2244 globals.f_Vprint_continuous_numbering
2245#define Vprint_gensym \
2246 globals.f_Vprint_gensym
2247#define Vprint_length \
2248 globals.f_Vprint_length
2249#define Vprint_level \
2250 globals.f_Vprint_level
2251#define Vprint_number_table \
2252 globals.f_Vprint_number_table
2253#define Vprintable_chars \
2254 globals.f_Vprintable_chars
2255#define Vprocess_adaptive_read_buffering \
2256 globals.f_Vprocess_adaptive_read_buffering
2257#define Vprocess_coding_system_alist \
2258 globals.f_Vprocess_coding_system_alist
2259#define Vprocess_connection_type \
2260 globals.f_Vprocess_connection_type
2261#define Vprocess_environment \
2262 globals.f_Vprocess_environment
2263#define Vpurify_flag \
2264 globals.f_Vpurify_flag
2265#define Vquit_flag \
2266 globals.f_Vquit_flag
2267#define Vread_buffer_function \
2268 globals.f_Vread_buffer_function
2269#define Vread_expression_history \
2270 globals.f_Vread_expression_history
2271#define Vread_circle \
2272 globals.f_Vread_circle
2273#define Vread_expression_map \
2274 globals.f_Vread_expression_map
2275#define Vread_symbol_positions_list \
2276 globals.f_Vread_symbol_positions_list
2277#define Vread_with_symbol_positions \
2278 globals.f_Vread_with_symbol_positions
2279#define Vrecenter_redisplay \
2280 globals.f_Vrecenter_redisplay
2281#define Vredisplay_end_trigger_functions \
2282 globals.f_Vredisplay_end_trigger_functions
2283#define Vredisplay_preemption_period \
2284 globals.f_Vredisplay_preemption_period
2285#define Vresize_mini_windows \
2286 globals.f_Vresize_mini_windows
2287#define Vresume_tty_functions \
2288 globals.f_Vresume_tty_functions
2289#define Vring_bell_function \
2290 globals.f_Vring_bell_function
2291#define Vsaved_region_selection \
2292 globals.f_Vsaved_region_selection
2293#define Vscalable_fonts_allowed \
2294 globals.f_Vscalable_fonts_allowed
2295#define Vscript_representative_chars \
2296 globals.f_Vscript_representative_chars
2297#define Vscroll_preserve_screen_position \
2298 globals.f_Vscroll_preserve_screen_position
2299#define Vsearch_spaces_regexp \
2300 globals.f_Vsearch_spaces_regexp
2301#define Vselect_active_regions \
2302 globals.f_Vselect_active_regions
2303#define Vselect_safe_coding_system_function \
2304 globals.f_Vselect_safe_coding_system_function
2305#define Vselection_coding_system \
2306 globals.f_Vselection_coding_system
2307#define Vselection_converter_alist \
2308 globals.f_Vselection_converter_alist
2309#define Vset_auto_coding_function \
2310 globals.f_Vset_auto_coding_function
2311#define Vshared_game_score_directory \
2312 globals.f_Vshared_game_score_directory
2313#define Vshell_file_name \
2314 globals.f_Vshell_file_name
2315#define Vshow_help_function \
2316 globals.f_Vshow_help_function
2317#define Vshow_trailing_whitespace \
2318 globals.f_Vshow_trailing_whitespace
2319#define Vsignal_hook_function \
2320 globals.f_Vsignal_hook_function
2321#define Vsource_directory \
2322 globals.f_Vsource_directory
2323#define Vspecial_event_map \
2324 globals.f_Vspecial_event_map
2325#define Vstandard_display_table \
2326 globals.f_Vstandard_display_table
2327#define Vstandard_input \
2328 globals.f_Vstandard_input
2329#define Vstandard_output \
2330 globals.f_Vstandard_output
2331#define Vstandard_translation_table_for_decode \
2332 globals.f_Vstandard_translation_table_for_decode
2333#define Vstandard_translation_table_for_encode \
2334 globals.f_Vstandard_translation_table_for_encode
2335#define Vsuggest_key_bindings \
2336 globals.f_Vsuggest_key_bindings
2337#define Vsuspend_tty_functions \
2338 globals.f_Vsuspend_tty_functions
2339#define Vsystem_configuration \
2340 globals.f_Vsystem_configuration
2341#define Vsystem_configuration_options \
2342 globals.f_Vsystem_configuration_options
2343#define Vsystem_messages_locale \
2344 globals.f_Vsystem_messages_locale
2345#define Vsystem_name \
2346 globals.f_Vsystem_name
2347#define Vsystem_time_locale \
2348 globals.f_Vsystem_time_locale
2349#define Vsystem_type \
2350 globals.f_Vsystem_type
2351#define Vtemp_buffer_show_function \
2352 globals.f_Vtemp_buffer_show_function
2353#define Vtemporary_file_directory \
2354 globals.f_Vtemporary_file_directory
2355#define Vterminal_frame \
2356 globals.f_Vterminal_frame
2357#define Vtext_property_default_nonsticky \
2358 globals.f_Vtext_property_default_nonsticky
2359#define Vthis_command \
2360 globals.f_Vthis_command
2361#define Vthis_command_keys_shift_translated \
2362 globals.f_Vthis_command_keys_shift_translated
2363#define Vthis_original_command \
2364 globals.f_Vthis_original_command
2365#define Vthrow_on_input \
2366 globals.f_Vthrow_on_input
2367#define Vtimer_idle_list \
2368 globals.f_Vtimer_idle_list
2369#define Vtimer_list \
2370 globals.f_Vtimer_list
2371#define Vtool_bar_border \
2372 globals.f_Vtool_bar_border
2373#define Vtool_bar_button_margin \
2374 globals.f_Vtool_bar_button_margin
2375#define Vtool_bar_mode \
2376 globals.f_Vtool_bar_mode
2377#define Vtool_bar_separator_image_expression \
2378 globals.f_Vtool_bar_separator_image_expression
2379#define Vtool_bar_style \
2380 globals.f_Vtool_bar_style
2381#define Vtop_level \
2382 globals.f_Vtop_level
2383#define Vtransient_mark_mode \
2384 globals.f_Vtransient_mark_mode
2385#define Vtranslation_hash_table_vector \
2386 globals.f_Vtranslation_hash_table_vector
2387#define Vtranslation_table_for_input \
2388 globals.f_Vtranslation_table_for_input
2389#define Vtranslation_table_vector \
2390 globals.f_Vtranslation_table_vector
2391#define Vtruncate_partial_width_windows \
2392 globals.f_Vtruncate_partial_width_windows
2393#define Vtty_defined_color_alist \
2394 globals.f_Vtty_defined_color_alist
2395#define Vtty_erase_char \
2396 globals.f_Vtty_erase_char
2397#define Vundo_outer_limit \
2398 globals.f_Vundo_outer_limit
2399#define Vundo_outer_limit_function \
2400 globals.f_Vundo_outer_limit_function
2401#define Vunicode_category_table \
2402 globals.f_Vunicode_category_table
2403#define Vunread_command_events \
2404 globals.f_Vunread_command_events
2405#define Vunread_input_method_events \
2406 globals.f_Vunread_input_method_events
2407#define Vunread_post_input_method_events \
2408 globals.f_Vunread_post_input_method_events
2409#define Vuse_default_ascent \
2410 globals.f_Vuse_default_ascent
2411#define Vuser_full_name \
2412 globals.f_Vuser_full_name
2413#define Vuser_init_file \
2414 globals.f_Vuser_init_file
2415#define Vuser_login_name \
2416 globals.f_Vuser_login_name
2417#define Vuser_real_login_name \
2418 globals.f_Vuser_real_login_name
2419#define Vvalues \
2420 globals.f_Vvalues
2421#define Vvertical_centering_font_regexp \
2422 globals.f_Vvertical_centering_font_regexp
2423#define Vvoid_text_area_pointer \
2424 globals.f_Vvoid_text_area_pointer
2425#define Vw32_alt_is_meta \
2426 globals.f_Vw32_alt_is_meta
2427#define Vw32_apps_modifier \
2428 globals.f_Vw32_apps_modifier
2429#define Vw32_bdf_filename_alist \
2430 globals.f_Vw32_bdf_filename_alist
2431#define Vw32_capslock_is_shiftlock \
2432 globals.f_Vw32_capslock_is_shiftlock
2433#define Vw32_charset_info_alist \
2434 globals.f_Vw32_charset_info_alist
2435#define Vw32_color_map \
2436 globals.f_Vw32_color_map
2437#define Vw32_downcase_file_names \
2438 globals.f_Vw32_downcase_file_names
2439#define Vw32_enable_caps_lock \
2440 globals.f_Vw32_enable_caps_lock
2441#define Vw32_enable_num_lock \
2442 globals.f_Vw32_enable_num_lock
2443#define Vw32_enable_palette \
2444 globals.f_Vw32_enable_palette
2445#define Vw32_generate_fake_inodes \
2446 globals.f_Vw32_generate_fake_inodes
2447#define Vw32_get_true_file_attributes \
2448 globals.f_Vw32_get_true_file_attributes
2449#define Vw32_grab_focus_on_raise \
2450 globals.f_Vw32_grab_focus_on_raise
2451#define Vw32_lwindow_modifier \
2452 globals.f_Vw32_lwindow_modifier
2453#define Vw32_pass_alt_to_system \
2454 globals.f_Vw32_pass_alt_to_system
2455#define Vw32_pass_lwindow_to_system \
2456 globals.f_Vw32_pass_lwindow_to_system
2457#define Vw32_pass_rwindow_to_system \
2458 globals.f_Vw32_pass_rwindow_to_system
2459#define Vw32_phantom_key_code \
2460 globals.f_Vw32_phantom_key_code
2461#define Vw32_quote_process_args \
2462 globals.f_Vw32_quote_process_args
2463#define Vw32_recognize_altgr \
2464 globals.f_Vw32_recognize_altgr
2465#define Vw32_rwindow_modifier \
2466 globals.f_Vw32_rwindow_modifier
2467#define Vw32_scroll_lock_modifier \
2468 globals.f_Vw32_scroll_lock_modifier
2469#define Vw32_start_process_inherit_error_mode \
2470 globals.f_Vw32_start_process_inherit_error_mode
2471#define Vw32_start_process_share_console \
2472 globals.f_Vw32_start_process_share_console
2473#define Vw32_start_process_show_window \
2474 globals.f_Vw32_start_process_show_window
2475#define Vw32_swap_mouse_buttons \
2476 globals.f_Vw32_swap_mouse_buttons
2477#define Vwhere_is_preferred_modifier \
2478 globals.f_Vwhere_is_preferred_modifier
2479#define Vwindow_configuration_change_hook \
2480 globals.f_Vwindow_configuration_change_hook
2481#define Vwindow_point_insertion_type \
2482 globals.f_Vwindow_point_insertion_type
2483#define Vwindow_scroll_functions \
2484 globals.f_Vwindow_scroll_functions
2485#define Vwindow_size_change_functions \
2486 globals.f_Vwindow_size_change_functions
2487#define Vwindow_system_version \
2488 globals.f_Vwindow_system_version
2489#define Vwindow_text_change_functions \
2490 globals.f_Vwindow_text_change_functions
2491#define Vword_combining_categories \
2492 globals.f_Vword_combining_categories
2493#define Vword_separating_categories \
2494 globals.f_Vword_separating_categories
2495#define Vwrap_prefix \
2496 globals.f_Vwrap_prefix
2497#define Vwrite_region_annotate_functions \
2498 globals.f_Vwrite_region_annotate_functions
2499#define Vwrite_region_annotations_so_far \
2500 globals.f_Vwrite_region_annotations_so_far
2501#define Vwrite_region_post_annotation_function \
2502 globals.f_Vwrite_region_post_annotation_function
2503#define Vx_alt_keysym \
2504 globals.f_Vx_alt_keysym
2505#define Vx_bitmap_file_path \
2506 globals.f_Vx_bitmap_file_path
2507#define Vx_cursor_fore_pixel \
2508 globals.f_Vx_cursor_fore_pixel
2509#define Vx_hourglass_pointer_shape \
2510 globals.f_Vx_hourglass_pointer_shape
2511#define Vx_hyper_keysym \
2512 globals.f_Vx_hyper_keysym
2513#define Vx_keysym_table \
2514 globals.f_Vx_keysym_table
2515#define Vx_lost_selection_functions \
2516 globals.f_Vx_lost_selection_functions
2517#define Vx_max_tooltip_size \
2518 globals.f_Vx_max_tooltip_size
2519#define Vx_meta_keysym \
2520 globals.f_Vx_meta_keysym
2521#define Vx_mode_pointer_shape \
2522 globals.f_Vx_mode_pointer_shape
2523#define Vx_no_window_manager \
2524 globals.f_Vx_no_window_manager
2525#define Vx_nontext_pointer_shape \
2526 globals.f_Vx_nontext_pointer_shape
2527#define Vx_pixel_size_width_font_regexp \
2528 globals.f_Vx_pixel_size_width_font_regexp
2529#define Vx_pointer_shape \
2530 globals.f_Vx_pointer_shape
2531#define Vx_resource_class \
2532 globals.f_Vx_resource_class
2533#define Vx_resource_name \
2534 globals.f_Vx_resource_name
2535#define Vx_sensitive_text_pointer_shape \
2536 globals.f_Vx_sensitive_text_pointer_shape
2537#define Vx_sent_selection_functions \
2538 globals.f_Vx_sent_selection_functions
2539#define Vx_session_id \
2540 globals.f_Vx_session_id
2541#define Vx_session_previous_id \
2542 globals.f_Vx_session_previous_id
2543#define Vx_super_keysym \
2544 globals.f_Vx_super_keysym
2545#define Vx_toolkit_scroll_bars \
2546 globals.f_Vx_toolkit_scroll_bars
2547#define Vx_window_horizontal_drag_shape \
2548 globals.f_Vx_window_horizontal_drag_shape
2549#define Vxft_settings \
2550 globals.f_Vxft_settings
2551#define auto_raise_tool_bar_buttons_p \
2552 globals.f_auto_raise_tool_bar_buttons_p
2553#define auto_save_interval \
2554 globals.f_auto_save_interval
2555#define auto_window_vscroll_p \
2556 globals.f_auto_window_vscroll_p
2557#define automatic_hscrolling_p \
2558 globals.f_automatic_hscrolling_p
2559#define baud_rate \
2560 globals.f_baud_rate
2561#define byte_debug_flag \
2562 globals.f_byte_debug_flag
2563#define byte_metering_on \
2564 globals.f_byte_metering_on
2565#define cannot_suspend \
2566 globals.f_cannot_suspend
2567#define check_markers_debug_flag \
2568 globals.f_check_markers_debug_flag
2569#define coding_system_require_warning \
2570 globals.f_coding_system_require_warning
2571#define completion_ignore_case \
2572 globals.f_completion_ignore_case
2573#define cons_cells_consed \
2574 globals.f_cons_cells_consed
2575#define cross_disabled_images \
2576 globals.f_cross_disabled_images
2577#define cursor_in_echo_area \
2578 globals.f_cursor_in_echo_area
2579#define debug_end_pos \
2580 globals.f_debug_end_pos
2581#define debug_on_next_call \
2582 globals.f_debug_on_next_call
2583#define debug_on_quit \
2584 globals.f_debug_on_quit
2585#define debugger_may_continue \
2586 globals.f_debugger_may_continue
2587#define delete_by_moving_to_trash \
2588 globals.f_delete_by_moving_to_trash
2589#define delete_exited_processes \
2590 globals.f_delete_exited_processes
2591#define display_hourglass_p \
2592 globals.f_display_hourglass_p
2593#define do_mouse_tracking \
2594 globals.f_do_mouse_tracking
2595#define dos_codepage \
2596 globals.f_dos_codepage
2597#define dos_country_code \
2598 globals.f_dos_country_code
2599#define dos_decimal_point \
2600 globals.f_dos_decimal_point
2601#define dos_hyper_key \
2602 globals.f_dos_hyper_key
2603#define dos_keyboard_layout \
2604 globals.f_dos_keyboard_layout
2605#define dos_keypad_mode \
2606 globals.f_dos_keypad_mode
2607#define dos_super_key \
2608 globals.f_dos_super_key
2609#define dos_timezone_offset \
2610 globals.f_dos_timezone_offset
2611#define double_click_fuzz \
2612 globals.f_double_click_fuzz
2613#define emacs_scroll_step \
2614 globals.f_emacs_scroll_step
2615#define enable_recursive_minibuffers \
2616 globals.f_enable_recursive_minibuffers
2617#define eol_mnemonic_dos \
2618 globals.f_eol_mnemonic_dos
2619#define eol_mnemonic_mac \
2620 globals.f_eol_mnemonic_mac
2621#define eol_mnemonic_undecided \
2622 globals.f_eol_mnemonic_undecided
2623#define eol_mnemonic_unix \
2624 globals.f_eol_mnemonic_unix
2625#define executing_kbd_macro_index \
2626 globals.f_executing_kbd_macro_index
2627#define extra_keyboard_modifiers \
2628 globals.f_extra_keyboard_modifiers
2629#define floats_consed \
2630 globals.f_floats_consed
2631#define focus_follows_mouse \
2632 globals.f_focus_follows_mouse
2633#define force_load_messages \
2634 globals.f_force_load_messages
2635#define garbage_collection_messages \
2636 globals.f_garbage_collection_messages
2637#define gc_cons_threshold \
2638 globals.f_gc_cons_threshold
2639#define gcs_done \
2640 globals.f_gcs_done
2641#define highlight_nonselected_windows \
2642 globals.f_highlight_nonselected_windows
2643#define history_delete_duplicates \
2644 globals.f_history_delete_duplicates
2645#define hscroll_margin \
2646 globals.f_hscroll_margin
2647#define indent_tabs_mode \
2648 globals.f_indent_tabs_mode
2649#define inherit_process_coding_system \
2650 globals.f_inherit_process_coding_system
2651#define inhibit_eol_conversion \
2652 globals.f_inhibit_eol_conversion
2653#define inhibit_eval_during_redisplay \
2654 globals.f_inhibit_eval_during_redisplay
2655#define inhibit_free_realized_faces \
2656 globals.f_inhibit_free_realized_faces
2657#define inhibit_iso_escape_detection \
2658 globals.f_inhibit_iso_escape_detection
2659#define inhibit_load_charset_map \
2660 globals.f_inhibit_load_charset_map
2661#define inhibit_local_menu_bar_menus \
2662 globals.f_inhibit_local_menu_bar_menus
2663#define inhibit_menubar_update \
2664 globals.f_inhibit_menubar_update
2665#define inhibit_modification_hooks \
2666 globals.f_inhibit_modification_hooks
2667#define inhibit_null_byte_detection \
2668 globals.f_inhibit_null_byte_detection
2669#define inhibit_try_cursor_movement \
2670 globals.f_inhibit_try_cursor_movement
2671#define inhibit_try_window_id \
2672 globals.f_inhibit_try_window_id
2673#define inhibit_try_window_reusing \
2674 globals.f_inhibit_try_window_reusing
2675#define inhibit_x_resources \
2676 globals.f_inhibit_x_resources
2677#define intervals_consed \
2678 globals.f_intervals_consed
2679#define inverse_video \
2680 globals.f_inverse_video
2681#define last_command_event \
2682 globals.f_last_command_event
2683#define last_input_event \
2684 globals.f_last_input_event
2685#define last_nonmenu_event \
2686 globals.f_last_nonmenu_event
2687#define line_number_display_limit_width \
2688 globals.f_line_number_display_limit_width
2689#define load_convert_to_unibyte \
2690 globals.f_load_convert_to_unibyte
2691#define load_dangerous_libraries \
2692 globals.f_load_dangerous_libraries
2693#define load_force_doc_strings \
2694 globals.f_load_force_doc_strings
2695#define load_in_progress \
2696 globals.f_load_in_progress
2697#define make_cursor_line_fully_visible_p \
2698 globals.f_make_cursor_line_fully_visible_p
2699#define max_lisp_eval_depth \
2700 globals.f_max_lisp_eval_depth
2701#define max_specpdl_size \
2702 globals.f_max_specpdl_size
2703#define menu_prompt_more_char \
2704 globals.f_menu_prompt_more_char
2705#define menu_prompting \
2706 globals.f_menu_prompting
2707#define message_truncate_lines \
2708 globals.f_message_truncate_lines
2709#define meta_prefix_char \
2710 globals.f_meta_prefix_char
2711#define minibuffer_allow_text_properties \
2712 globals.f_minibuffer_allow_text_properties
2713#define minibuffer_auto_raise \
2714 globals.f_minibuffer_auto_raise
2715#define misc_objects_consed \
2716 globals.f_misc_objects_consed
2717#define mode_line_in_non_selected_windows \
2718 globals.f_mode_line_in_non_selected_windows
2719#define mode_line_inverse_video \
2720 globals.f_mode_line_inverse_video
2721#define multibyte_syntax_as_symbol \
2722 globals.f_multibyte_syntax_as_symbol
2723#define multiple_frames \
2724 globals.f_multiple_frames
2725#define next_screen_context_lines \
2726 globals.f_next_screen_context_lines
2727#define no_redraw_on_reenter \
2728 globals.f_no_redraw_on_reenter
2729#define noninteractive1 \
2730 globals.f_noninteractive1
2731#define num_input_keys \
2732 globals.f_num_input_keys
2733#define num_nonmacro_input_events \
2734 globals.f_num_nonmacro_input_events
2735#define open_paren_in_column_0_is_defun_start \
2736 globals.f_open_paren_in_column_0_is_defun_start
2737#define overline_margin \
2738 globals.f_overline_margin
2739#define parse_sexp_ignore_comments \
2740 globals.f_parse_sexp_ignore_comments
2741#define parse_sexp_lookup_properties \
2742 globals.f_parse_sexp_lookup_properties
2743#define polling_period \
2744 globals.f_polling_period
2745#define print_escape_multibyte \
2746 globals.f_print_escape_multibyte
2747#define print_escape_newlines \
2748 globals.f_print_escape_newlines
2749#define print_escape_nonascii \
2750 globals.f_print_escape_nonascii
2751#define print_quoted \
2752 globals.f_print_quoted
2753#define pure_bytes_used \
2754 globals.f_pure_bytes_used
2755#define read_buffer_completion_ignore_case \
2756 globals.f_read_buffer_completion_ignore_case
2757#define redisplay_dont_pause \
2758 globals.f_redisplay_dont_pause
2759#define scroll_conservatively \
2760 globals.f_scroll_conservatively
2761#define scroll_margin \
2762 globals.f_scroll_margin
2763#define string_chars_consed \
2764 globals.f_string_chars_consed
2765#define strings_consed \
2766 globals.f_strings_consed
2767#define symbols_consed \
2768 globals.f_symbols_consed
2769#define system_uses_terminfo \
2770 globals.f_system_uses_terminfo
2771#define tool_bar_button_relief \
2772 globals.f_tool_bar_button_relief
2773#define tool_bar_max_label_size \
2774 globals.f_tool_bar_max_label_size
2775#define underline_minimum_offset \
2776 globals.f_underline_minimum_offset
2777#define undo_inhibit_record_point \
2778 globals.f_undo_inhibit_record_point
2779#define undo_limit \
2780 globals.f_undo_limit
2781#define undo_strong_limit \
2782 globals.f_undo_strong_limit
2783#define unibyte_display_via_language_environment \
2784 globals.f_unibyte_display_via_language_environment
2785#define unread_command_char \
2786 globals.f_unread_command_char
2787#define use_dialog_box \
2788 globals.f_use_dialog_box
2789#define use_file_dialog \
2790 globals.f_use_file_dialog
2791#define use_system_font \
2792 globals.f_use_system_font
2793#define vector_cells_consed \
2794 globals.f_vector_cells_consed
2795#define visible_bell \
2796 globals.f_visible_bell
2797#define visible_cursor \
2798 globals.f_visible_cursor
2799#define w32_ansi_code_page \
2800 globals.f_w32_ansi_code_page
2801#define w32_enable_synthesized_fonts \
2802 globals.f_w32_enable_synthesized_fonts
2803#define w32_mouse_button_tolerance \
2804 globals.f_w32_mouse_button_tolerance
2805#define w32_mouse_move_interval \
2806 globals.f_w32_mouse_move_interval
2807#define w32_num_mouse_buttons \
2808 globals.f_w32_num_mouse_buttons
2809#define w32_pass_extra_mouse_buttons_to_system \
2810 globals.f_w32_pass_extra_mouse_buttons_to_system
2811#define w32_pass_multimedia_buttons_to_system \
2812 globals.f_w32_pass_multimedia_buttons_to_system
2813#define w32_pipe_read_delay \
2814 globals.f_w32_pipe_read_delay
2815#define w32_quit_key \
2816 globals.f_w32_quit_key
2817#define w32_strict_fontnames \
2818 globals.f_w32_strict_fontnames
2819#define w32_strict_painting \
2820 globals.f_w32_strict_painting
2821#define w32_use_full_screen_buffer \
2822 globals.f_w32_use_full_screen_buffer
2823#define w32_use_visible_system_caret \
2824 globals.f_w32_use_visible_system_caret
2825#define window_min_height \
2826 globals.f_window_min_height
2827#define window_min_width \
2828 globals.f_window_min_width
2829#define words_include_escapes \
2830 globals.f_words_include_escapes
2831#define write_region_inhibit_fsync \
2832 globals.f_write_region_inhibit_fsync
2833#define x_gtk_file_dialog_help_text \
2834 globals.f_x_gtk_file_dialog_help_text
2835#define x_gtk_show_hidden_files \
2836 globals.f_x_gtk_show_hidden_files
2837#define x_gtk_use_old_file_dialog \
2838 globals.f_x_gtk_use_old_file_dialog
2839#define x_gtk_use_system_tooltips \
2840 globals.f_x_gtk_use_system_tooltips
2841#define x_gtk_whole_detached_tool_bar \
2842 globals.f_x_gtk_whole_detached_tool_bar
2843#define x_mouse_click_focus_ignore_position \
2844 globals.f_x_mouse_click_focus_ignore_position
2845#define x_selection_timeout \
2846 globals.f_x_selection_timeout
2847#define x_stretch_cursor_p \
2848 globals.f_x_stretch_cursor_p
2849#define x_underline_at_descent_line \
2850 globals.f_x_underline_at_descent_line
2851#define x_use_underline_position_properties \
2852 globals.f_x_use_underline_position_properties
2853#define ns_input_file \
2854 globals.f_ns_input_file
2855#define ns_input_font \
2856 globals.f_ns_input_font
2857#define ns_input_fontsize \
2858 globals.f_ns_input_fontsize
2859#define ns_input_line \
2860 globals.f_ns_input_line
2861#define ns_input_color \
2862 globals.f_ns_input_color
2863#define ns_input_text \
2864 globals.f_ns_input_text
2865#define ns_working_text \
2866 globals.f_ns_working_text
2867#define ns_input_spi_name \
2868 globals.f_ns_input_spi_name
2869#define ns_input_spi_arg \
2870 globals.f_ns_input_spi_arg
2871#define ns_alternate_modifier \
2872 globals.f_ns_alternate_modifier
2873#define ns_right_alternate_modifier \
2874 globals.f_ns_right_alternate_modifier
2875#define ns_command_modifier \
2876 globals.f_ns_command_modifier
2877#define ns_right_command_modifier \
2878 globals.f_ns_right_command_modifier
2879#define ns_control_modifier \
2880 globals.f_ns_control_modifier
2881#define ns_right_control_modifier \
2882 globals.f_ns_right_control_modifier
2883#define ns_function_modifier \
2884 globals.f_ns_function_modifier
2885#define ns_antialias_text \
2886 globals.f_ns_antialias_text
2887#define ns_confirm_quit \
2888 globals.f_ns_confirm_quit
2889#define Vns_icon_type_alist \
2890 globals.f_Vns_icon_type_alist
2891#define Vns_version_string \
2892 globals.f_Vns_version_string
2893#define Vns_sent_selection_hooks \
2894 globals.f_Vns_sent_selection_hooks
2895#define Vns_lost_selection_hooks \
2896 globals.f_Vns_lost_selection_hooks
2897#define Vselection_alist \
2898 globals.f_Vselection_alist
2899#define Vns_reg_to_script \
2900 globals.f_Vns_reg_to_script
diff --git a/src/makefile.w32-in b/src/makefile.w32-in
index 54a30f28ff2..ce4b9f35de8 100644
--- a/src/makefile.w32-in
+++ b/src/makefile.w32-in
@@ -203,6 +203,38 @@ make-buildobj-SH:
203 echo $(OBJ2) '\' >> buildobj.h 203 echo $(OBJ2) '\' >> buildobj.h
204 echo '$(DQUOTE)' >> buildobj.h 204 echo '$(DQUOTE)' >> buildobj.h
205 205
206GLOBAL_SOURCES = dosfns.c msdos.c \
207 xterm.c xfns.c xmenu.c xselect.c xrdb.c xsmfns.c fringe.c image.c \
208 fontset.c menu.c dbusbind.c \
209 w32.c w32console.c w32fns.c w32heap.c w32inevt.c \
210 w32menu.c w32proc.c w32reg.c w32select.c w32term.c w32xfns.c \
211 font.c w32font.c w32uniscribe.c \
212 dispnew.c frame.c scroll.c xdisp.c window.c bidi.c \
213 charset.c coding.c category.c ccl.c character.c chartab.c \
214 cm.c term.c terminal.c xfaces.c \
215 emacs.c keyboard.c macros.c keymap.c sysdep.c \
216 buffer.c filelock.c insdel.c marker.c \
217 minibuf.c fileio.c dired.c filemode.c \
218 cmds.c casetab.c casefiddle.c indent.c search.c regex.c undo.c \
219 alloc.c data.c doc.c editfns.c callint.c \
220 eval.c floatfns.c fns.c print.c lread.c \
221 syntax.c bytecode.c \
222 process.c callproc.c unexw32.c \
223 region-cache.c sound.c atimer.c \
224 doprnt.c intervals.c textprop.c composite.c md5.c
225SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
226 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o
227obj = $(GLOBAL_SOURCES:.c=.o)
228
229globals.h: gl-stamp
230
231gl-stamp: ../lib-src/$(BLD)/make-docfile.exe $(GLOBAL_SOURCES)
232 - $(DEL) gl-tmp
233 "../lib-src/$(BLD)/make-docfile" -d . -g $(SOME_MACHINE_OBJECTS) $(obj) > gl-tmp
234 cmd /c "fc /b gl-tmp globals.h >nul 2>&1 || $(CP) gl-tmp globals.h"
235 - $(DEL) gl-tmp
236 echo timestamp > $@
237
206bootstrap: bootstrap-emacs 238bootstrap: bootstrap-emacs
207 239
208# 240#
@@ -279,7 +311,7 @@ clean:
279 - $(DEL) "s/*.h~" "m/*.h~" 311 - $(DEL) "s/*.h~" "m/*.h~"
280 - $(DEL) $(COMPILER_TEMP_FILES) 312 - $(DEL) $(COMPILER_TEMP_FILES)
281 - $(DEL_TREE) $(OBJDIR) 313 - $(DEL_TREE) $(OBJDIR)
282 - $(DEL) stamp_BLD 314 - $(DEL) stamp_BLD gl-stamp globals.h
283 - $(DEL) buildobj.h 315 - $(DEL) buildobj.h
284 316
285distclean: cleanall 317distclean: cleanall
diff --git a/src/nsselect.m b/src/nsselect.m
index 299a24e4a8c..950fb1f1f14 100644
--- a/src/nsselect.m
+++ b/src/nsselect.m
@@ -39,6 +39,8 @@ GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu)
39 39
40Lisp_Object QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME; 40Lisp_Object QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME;
41 41
42static Lisp_Object Vselection_alist;
43
42static Lisp_Object Qforeign_selection; 44static Lisp_Object Qforeign_selection;
43 45
44/* NSGeneralPboard is pretty much analogous to X11 CLIPBOARD */ 46/* NSGeneralPboard is pretty much analogous to X11 CLIPBOARD */
diff --git a/src/xselect.c b/src/xselect.c
index 96c8b9c4c47..a502a74f904 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -126,6 +126,20 @@ static Lisp_Object Qforeign_selection;
126/* Defined in keyboard.c. */ 126/* Defined in keyboard.c. */
127extern unsigned long last_event_timestamp; 127extern unsigned long last_event_timestamp;
128 128
129/* This is an association list whose elements are of the form
130 ( SELECTION-NAME SELECTION-VALUE SELECTION-TIMESTAMP FRAME)
131 SELECTION-NAME is a lisp symbol, whose name is the name of an X Atom.
132 SELECTION-VALUE is the value that emacs owns for that selection.
133 It may be any kind of Lisp object.
134 SELECTION-TIMESTAMP is the time at which emacs began owning this selection,
135 as a cons of two 16-bit numbers (making a 32 bit time.)
136 FRAME is the frame for which we made the selection.
137 If there is an entry in this alist, then it can be assumed that Emacs owns
138 that selection.
139 The only (eq) parts of this list that are visible from Lisp are the
140 selection-values. */
141static Lisp_Object Vselection_alist;
142
129 143
130 144
131/* Define a queue to save up SELECTION_REQUEST_EVENT events for later 145/* Define a queue to save up SELECTION_REQUEST_EVENT events for later
diff --git a/test/ChangeLog b/test/ChangeLog
index f555878cb49..3f2dbec1e55 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
12011-02-09 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * indent/shell.sh:
4 * indent/shell.rc: New files.
5
12011-01-27 Chong Yidong <cyd@stupidchicken.com> 62011-01-27 Chong Yidong <cyd@stupidchicken.com>
2 7
3 * automated/font-parse-tests.el: Move from 8 * automated/font-parse-tests.el: Move from
diff --git a/test/indent/shell.rc b/test/indent/shell.rc
new file mode 100755
index 00000000000..841223555b9
--- /dev/null
+++ b/test/indent/shell.rc
@@ -0,0 +1,30 @@
1#!/bin/rc
2
3if (foo) {
4 echo 1
5}
6if not {
7 echo 2
8}
9
10if (foo)
11 echo 3 # KNOWN INDENT BUG
12if not
13 echo 4 # KNOWN INDENT BUG
14
15switch ($a) {
16 case 3
17 echo 4
18 case 5
19 echo 7
20 for (i in a b c) {
21 echo $i
22 }
23 for (i in a b c)
24 echo "$i" # KNOWN INDENT BUG
25 echo titi
26
27 case *
28 echo other
29}
30
diff --git a/test/indent/shell.sh b/test/indent/shell.sh
new file mode 100755
index 00000000000..89f47d0bfe3
--- /dev/null
+++ b/test/indent/shell.sh
@@ -0,0 +1,98 @@
1#!/bin/sh
2
3setlock -n /tmp/getmail.lock && echo getmail isn\'t running
4
5# adsgsdg
6
7foo () {
8
9 bar () {
10 blilbi
11 }
12
13 case toto
14 in a) hello # KNOWN INDENT BUG
15 ;; b) hi # KNOWN INDENT BUG
16 esac
17
18 case $toto in
19 a) echo 1;; b) echo 2;;
20 c) echo 3;;
21 esac
22
23 case $as_nl`(ac_space=' '; set) 2>&1` in #(
24 *${as_nl}ac_space=\ *)
25 # `set' does not quote correctly, so add quotes: double-quote
26 # substitution turns \\\\ into \\, and sed turns \\ into \.
27 sed -n \
28 "s/'/'\\\\''/g;
29 s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=/\\1=''/p"
30 ;; #(
31 *)
32 # `set' quotes correctly as required by POSIX, so do not add
33 # quotes.
34 sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
35 ;;
36 esac |
37 cat # KNOWN INDENT BUG
38
39 case toto in
40 -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
41 | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* \
42 | --exec=* | --exe=* | --ex=*)
43 exec_prefix=$ac_optarg ;;
44 5)
45 hello ;;
46 3) hello $(adfad)
47 echo esac ;; # KNOWN INDENT BUG
48 5) hello ;;
49 4) hello ;&
50 4) hello ;;&
51 5) hello ;;
52 5) hello ;;
53 esac
54
55 echo "'" wfgfe
56
57 #!/bin/bash
58 cat << EOF \
59 | cat sadfsafd \
60 sadfsafd "KNOWN INDENT BUG" \
61 | tee -a bug.txt
62asdfsaf
63This is a test case for a bug in bash shell mode text highlighting
64EOF
65
66 cat <<EOF1 <<EOF2 # KNOWN INDENT BUG
67help1
68EOF1
69help2
70EOF2
71}
72bar () {
73 if [ $# == 0 ]; then
74 while
75 f # KNOWN INDENT BUG
76 do
77 bla;
78 done
79 echo "Highlighting is screwed up now"
80 if [ 1 = 1 ]; then
81 # adsgsdg
82 echo "screwed up"
83 fi
84
85 $@ $? $#
86
87 for f in *
88 do
89 sdfg
90 done
91
92 if swrgfef
93 then blas
94 else sdf
95 fi
96
97 fi
98}