summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-02-09 23:04:56 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2011-02-09 23:04:56 -0800
commitbe6d99804b3efdecf3660c4b51da1945e955fb4d (patch)
tree99b523c445f7b95572ab668f4e878cd703ff3527
parentdd4638842ad1921562bc66049ec81a4530651cdf (diff)
parent67f02b82f496be403353a1dc918cc4f2278841bb (diff)
downloademacs-be6d99804b3efdecf3660c4b51da1945e955fb4d.tar.gz
emacs-be6d99804b3efdecf3660c4b51da1945e955fb4d.tar.bz2
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 @@
-2011-02-08 Paul Eggert <eggert@cs.ucla.edu>
+2011-02-10 Paul Eggert <eggert@cs.ucla.edu>
Import getloadavg module from gnulib.
* .bzrignore: Add lib/stdlib.h.
@@ -19,6 +19,31 @@
* aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, m4/gl-comp.m4:
* src/config.in: Regenerate.
+2011-02-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * arg-nonnull.h, c++defs.h, warn-on-use.h: Fix licenses.
+ Sync from gnulib, which has been patched to fix the problem
+ with the license notices. Problem reported by Glenn Morris in
+ <http://lists.gnu.org/archive/html/emacs-devel/2011-02/msg00403.html>.
+
+2011-02-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * .bzrignore: Ignore globals.h and related stamp.
+
+2011-02-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/Makefile.in, lib/gnulib.mk: Regenerate.
+ This merges the following fix from gnulib:
+
+ 2011-02-08 Bruno Haible <bruno@clisp.org>
+
+ Split large sed scripts, for HP-UX sed.
+
+2011-02-08 Tom Tromey <tromey@redhat.com>
+
+ * configure: Rebuild.
+ * configure.in (NS_OBJC_OBJ): New subst.
+
2011-02-06 Paul Eggert <eggert@cs.ucla.edu>
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).
*** To assign or reassign a bug to a package or list of packages:
reassign 1234 emacs
+Note that reassigning clears the list of found versions, even if the
+new packages includes the original one.
+
** To remove spam from the tracker, move it to the `spam' pseudo-package:
reassign 123 spam
+(Should not be necessary any more, now that the input is moderated.)
+
** To change the title of a bug:
retitle 123 Some New Title
diff --git a/configure b/configure
index 461f5c17bf2..6f7148b0a65 100755
--- a/configure
+++ b/configure
@@ -926,6 +926,7 @@ GMALLOC_OBJ
HAVE_XSERVER
LIB_STANDARD
NS_SUPPORT
+NS_OBJC_OBJ
NS_OBJ
TEMACS_LDFLAGS2
LD_SWITCH_X_SITE_AUX_RPATH
@@ -1104,9 +1105,6 @@ LDFLAGS
LIBS
CPPFLAGS
CPP
-CPPFLAGS
-CPP
-CPPFLAGS
XMKMF'
@@ -8853,6 +8851,7 @@ fi
ns_frag=/dev/null
NS_OBJ=
+NS_OBJC_OBJ=
NS_SUPPORT=
if test "${HAVE_NS}" = yes; then
window_system=nextstep
@@ -8864,7 +8863,8 @@ if test "${HAVE_NS}" = yes; then
prefix=${ns_appresdir}
fi
ns_frag=$srcdir/src/ns.mk
- NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o"
+ NS_OBJ="fontset.o fringe.o image.o"
+ NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o"
NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc"
fi
CFLAGS="$tmp_CFLAGS"
@@ -8874,6 +8874,7 @@ CPPFLAGS="$tmp_CPPFLAGS"
+
case "${window_system}" in
x11 )
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)
ns_frag=/dev/null
NS_OBJ=
+NS_OBJC_OBJ=
NS_SUPPORT=
if test "${HAVE_NS}" = yes; then
window_system=nextstep
@@ -1527,12 +1528,14 @@ if test "${HAVE_NS}" = yes; then
prefix=${ns_appresdir}
fi
ns_frag=$srcdir/src/ns.mk
- NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o"
+ NS_OBJ="fontset.o fringe.o image.o"
+ NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o"
NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc"
fi
CFLAGS="$tmp_CFLAGS"
CPPFLAGS="$tmp_CPPFLAGS"
AC_SUBST(NS_OBJ)
+AC_SUBST(NS_OBJC_OBJ)
AC_SUBST(NS_SUPPORT)
AC_SUBST(LIB_STANDARD)
AC_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 @@
+2011-02-09 Reuben Thomas <rrt@sc3d.org>
+
+ * loading.texi (Hooks for Loading): Remove unnecessary advice
+ about eval-after-load (Bug#7986).
+
2011-02-05 Chong Yidong <cyd@stupidchicken.com>
* 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.
If you need to call functions defined by that library, you should load
the library, preferably with @code{require} (@pxref{Named Features}).
-But it is OK to use @code{eval-after-load} in your personal
-customizations if you don't feel that they must meet the design
-standards for programs meant for wider use.
-
@defvar after-load-alist
This variable stores an alist built by @code{eval-after-load},
containing 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 @@
+2011-02-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * texinfo.tex: Update to version 2011-02-07.16.
+
2011-02-07 Michael Albinus <michael.albinus@gmx.de>
* 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
** sregex.el is now obsolete, since rx.el is a strict superset.
-** s-region.el is now declared obsolete, superceded by shift-select-mode
-enabled by default in 23.1.
-
+** s-region.el and pc-select are now declared obsolete,
+superceded by shift-select-mode enabled by default in 23.1.
+** pc-mode.el is also declared obsolete.
** gdb-mi
*** 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 @@
+2011-02-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * make-docfile.c (EMACS_INTEGER): Rename from EMACS_INT.
+ This avoids collision with config.h's EMACS_INT on some
+ configurations. All uses changed.
+
+2011-02-08 Tom Tromey <tromey@redhat.com>
+
+ * make-docfile.c: Unconditionally include stdlib.h.
+ (generate_globals): New global.
+ (xrealloc): New function.
+ (main): Handle '-g'. Call start_globals, write_globals.
+ (scan_file): Conditionally call put_filename.
+ (start_globals): New function.
+ (struct global): New.
+ (num_globals, globals): New globals.
+ (add_global, compare_globals, write_globals): New functions.
+ (scan_c_file): Update for "-g".
+ (scan_lisp_file): Fail if "-g".
+
2011-02-05 Paul Eggert <eggert@cs.ucla.edu>
* 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/>. */
#undef chdir
#include <stdio.h>
+#include <stdlib.h>
#ifdef MSDOS
#include <fcntl.h>
#endif /* MSDOS */
#ifdef WINDOWSNT
-#include <stdlib.h>
#include <fcntl.h>
#include <direct.h>
#endif /* WINDOWSNT */
@@ -70,6 +70,8 @@ int scan_file (char *filename);
int scan_lisp_file (const char *filename, const char *mode);
int scan_c_file (char *filename, const char *mode);
void fatal (const char *s1, const char *s2) NO_RETURN;
+void start_globals (void);
+void write_globals (void);
#ifdef MSDOS
/* s/msdos.h defines this as sys_chdir, but we're not linking with the
@@ -85,6 +87,9 @@ FILE *outfile;
/* Name this program was invoked with. */
char *progname;
+/* Nonzero if this invocation is generating globals.h. */
+int generate_globals;
+
/* Print error message. `s1' is printf control string, `s2' is arg for it. */
/* VARARGS1 */
@@ -116,6 +121,18 @@ xmalloc (unsigned int size)
fatal ("virtual memory exhausted", 0);
return result;
}
+
+/* Like realloc but get fatal error if memory is exhausted. */
+
+void *
+xrealloc (void *arg, unsigned int size)
+{
+ void *result = (void *) realloc (arg, size);
+ if (result == NULL)
+ fatal ("virtual memory exhausted", 0);
+ return result;
+}
+
int
main (int argc, char **argv)
@@ -164,10 +181,18 @@ main (int argc, char **argv)
}
i += 2;
}
+ if (argc > i && !strcmp (argv[i], "-g"))
+ {
+ generate_globals = 1;
+ ++i;
+ }
if (outfile == 0)
fatal ("No output file specified", "");
+ if (generate_globals)
+ start_globals ();
+
first_infile = i;
for (; i < argc; i++)
{
@@ -179,6 +204,10 @@ main (int argc, char **argv)
if (j == i)
err_count += scan_file (argv[i]);
}
+
+ if (err_count == 0 && generate_globals)
+ write_globals ();
+
return (err_count > 0 ? EXIT_FAILURE : EXIT_SUCCESS);
}
@@ -208,7 +237,8 @@ scan_file (char *filename)
size_t len = strlen (filename);
- put_filename (filename);
+ if (!generate_globals)
+ put_filename (filename);
if (len > 4 && !strcmp (filename + len - 4, ".elc"))
return scan_lisp_file (filename, READ_BINARY);
else if (len > 3 && !strcmp (filename + len - 3, ".el"))
@@ -216,6 +246,14 @@ scan_file (char *filename)
else
return scan_c_file (filename, READ_TEXT);
}
+
+void
+start_globals (void)
+{
+ fprintf (outfile, "/* This file was auto-generated by make-docfile. */\n");
+ fprintf (outfile, "/* DO NOT EDIT. */\n");
+ fprintf (outfile, "struct emacs_globals {\n");
+}
char buf[128];
@@ -517,6 +555,98 @@ write_c_args (FILE *out, char *func, char *buf, int minargs, int maxargs)
putc (')', out);
}
+/* The types of globals. */
+enum global_type
+{
+ EMACS_INTEGER,
+ BOOLEAN,
+ LISP_OBJECT,
+ INVALID
+};
+
+/* A single global. */
+struct global
+{
+ enum global_type type;
+ char *name;
+};
+
+/* All the variable names we saw while scanning C sources in `-g'
+ mode. */
+int num_globals;
+int num_globals_allocated;
+struct global *globals;
+
+static void
+add_global (enum global_type type, char *name)
+{
+ /* Ignore the one non-symbol that can occur. */
+ if (strcmp (name, "..."))
+ {
+ ++num_globals;
+
+ if (num_globals_allocated == 0)
+ {
+ num_globals_allocated = 100;
+ globals = xmalloc (num_globals_allocated * sizeof (struct global));
+ }
+ else if (num_globals == num_globals_allocated)
+ {
+ num_globals_allocated *= 2;
+ globals = xrealloc (globals,
+ num_globals_allocated * sizeof (struct global));
+ }
+
+ globals[num_globals - 1].type = type;
+ globals[num_globals - 1].name = name;
+ }
+}
+
+static int
+compare_globals (const void *a, const void *b)
+{
+ const struct global *ga = a;
+ const struct global *gb = b;
+ return strcmp (ga->name, gb->name);
+}
+
+void
+write_globals (void)
+{
+ int i;
+ qsort (globals, num_globals, sizeof (struct global), compare_globals);
+ for (i = 0; i < num_globals; ++i)
+ {
+ char *type;
+
+ switch (globals[i].type)
+ {
+ case EMACS_INTEGER:
+ type = "EMACS_INT";
+ break;
+ case BOOLEAN:
+ type = "int";
+ break;
+ case LISP_OBJECT:
+ type = "Lisp_Object";
+ break;
+ default:
+ fatal ("not a recognized DEFVAR_", 0);
+ }
+
+ fprintf (outfile, " %s f_%s;\n", type, globals[i].name);
+ fprintf (outfile, "#define %s globals.f_%s\n",
+ globals[i].name, globals[i].name);
+ while (i + 1 < num_globals
+ && !strcmp (globals[i].name, globals[i + 1].name))
+ ++i;
+ }
+
+ fprintf (outfile, "};\n");
+ fprintf (outfile, "extern struct emacs_globals globals;\n");
+}
+
+
/* Read through a c file. If a .o file is named,
the corresponding .c or .m file is read instead.
Looks for DEFUN constructs such as are defined in ../src/lisp.h.
@@ -533,6 +663,7 @@ scan_c_file (char *filename, const char *mode)
register int defvarflag;
int minargs, maxargs;
int extension = filename[strlen (filename) - 1];
+ enum global_type type;
if (extension == 'o')
filename[strlen (filename) - 1] = 'c';
@@ -599,8 +730,23 @@ scan_c_file (char *filename, const char *mode)
c = getc (infile);
defvarperbufferflag = (c == 'P');
+ if (generate_globals)
+ {
+ if (c == 'I')
+ type = EMACS_INTEGER;
+ else if (c == 'L')
+ type = LISP_OBJECT;
+ else if (c == 'B')
+ type = BOOLEAN;
+ else
+ type = INVALID;
+ }
c = getc (infile);
+ /* We need to distinguish between DEFVAR_BOOL and
+ DEFVAR_BUFFER_DEFAULTS. */
+ if (generate_globals && type == BOOLEAN && c != 'O')
+ type = INVALID;
}
else if (c == 'D')
{
@@ -617,6 +763,10 @@ scan_c_file (char *filename, const char *mode)
}
else continue;
+ if (generate_globals && (!defvarflag || defvarperbufferflag
+ || type == INVALID))
+ continue;
+
while (c != '(')
{
if (c < 0)
@@ -630,6 +780,34 @@ scan_c_file (char *filename, const char *mode)
continue;
c = read_c_string_or_comment (infile, -1, 0, 0);
+ if (generate_globals)
+ {
+ int i = 0;
+ char *name;
+
+ /* Skip "," and whitespace. */
+ do
+ {
+ c = getc (infile);
+ }
+ while (c == ',' || c == ' ' || c == '\t' || c == '\n' || c == '\r');
+
+ /* Read in the identifier. */
+ do
+ {
+ buf[i++] = c;
+ c = getc (infile);
+ }
+ while (! (c == ',' || c == ' ' || c == '\t' ||
+ c == '\n' || c == '\r'));
+ buf[i] = '\0';
+
+ name = xmalloc (i + 1);
+ memcpy (name, buf, i + 1);
+ add_global (type, name);
+ continue;
+ }
+
/* DEFVAR_LISP ("name", addr, "doc")
DEFVAR_LISP ("name", addr /\* doc *\/)
DEFVAR_LISP ("name", addr, doc: /\* doc *\/) */
@@ -845,6 +1023,9 @@ scan_lisp_file (const char *filename, const char *mode)
register int c;
char *saved_string = 0;
+ if (generate_globals)
+ fatal ("scanning lisp file when -g specified", 0);
+
infile = fopen (filename, mode);
if (infile == NULL)
{
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@
NEXT_TIME_H = @NEXT_TIME_H@
NEXT_UNISTD_H = @NEXT_UNISTD_H@
NS_OBJ = @NS_OBJ@
+NS_OBJC_OBJ = @NS_OBJC_OBJ@
NS_SUPPORT = @NS_SUPPORT@
OBJEXT = @OBJEXT@
OLDXMENU = @OLDXMENU@
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8826f884560..1a69d98f17e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,46 @@
+2011-02-10 Ken Manheimer <ken.manheimer@gmail.com>
+
+ * allout.el: Synopsis: Change allout user configuration so
+ auto-activation is controlled solely by customization
+ `allout-auto-activation'.
+
+ (allout-auto-activation-helper) (allout-setup): New autoloads
+ implement new custom set procedure for allout-auto-activation.
+ Also, explicitly invoke
+ (allout-setup) after allout-auto-activation is custom-defined, to
+ effect the settings in emacs sessions besides the few where
+ allout-auto-activation customization is donea.
+ (allout-auto-activation): Use allout-auto-activation-helper to
+ :set. Revise the docstring.
+ (allout-init): Reduce functionality to just customizing
+ allout-auto-activation, and mark obsolete.
+ (allout-mode): Respect string values for allout-auto-activation.
+ Run allout-after-copy-or-kill-hook without any args.
+ (allout-mode) (allout-layout) (allout-default-layout)
+ (outlineify-sticky): Adjust docstring for new scheme.
+ (allout-after-copy-or-kill-hook): No arguments - hook implementers
+ should concentrate on the kill ring.
+
+2011-02-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/sh-script.el (sh-font-lock-open-heredoc): Fix case
+ of here-doc that immediately follows a comment.
+
+2011-02-09 Deniz Dogan <deniz.a.m.dogan@gmail.com>
+
+ * net/rcirc.el (rcirc-ctcp-sender-PING): Simplifying.
+
+ * net/rcirc.el (rcirc-cmd-ctcp): Use dedicated function when
+ available.
+ (rcirc-ctcp-sender-PING): New function.
+
+2011-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * obsolete/pc-select.el: Rename from emulation/pc-select.el (bug#7940).
+ Remove the mark/nomark handling, and activate shift-select-mode instead.
+
+ * obsolete/pc-mode.el: Rename from emulation/pc-mode.el.
+
2011-02-07 Jay Belanger <jay.p.belanger@gmail.com>
* 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 @@
;; The latest development version and helpful notes are available at
;; http://myriadicity.net/Sundry/EmacsAllout .
;;
-;; The outline menubar additions provide quick reference to many of
-;; the features, and see the docstring of the variable `allout-init'
-;; for instructions on priming your Emacs session for automatic
-;; activation of allout-mode.
-;;
-;; See the docstring of the variables `allout-layout' and
+;; The outline menubar additions provide quick reference to many of the
+;; features. See the docstring of the variables `allout-layout' and
;; `allout-auto-activation' for details on automatic activation of
-;; `allout-mode' as a minor mode. (It has changed since allout
-;; 3.x, for those of you that depend on the old method.)
+;; `allout-mode' as a minor mode. (`allout-init' is deprecated in favor of
+;; a purely customization-based method.)
;;
;; Note -- the lines beginning with `;;;_' are outline topic headers.
-;; Just `ESC-x eval-buffer' to give it a whirl.
+;; Customize `allout-auto-activation' to enable, then revisit this
+;; buffer to give it a whirl.
;; ken manheimer (ken dot manheimer at gmail dot com)
@@ -271,35 +268,56 @@ See the existing keys for examples."
:set 'allout-compose-and-institute-keymap
)
+;;;_ > allout-auto-activation-helper (var value)
+;;;###autoload
+(defun allout-auto-activation-helper (var value)
+ "Institute `allout-auto-activation'.
+
+Intended to be used as the `allout-auto-activation' :set function."
+ (set-default var value)
+ (allout-setup))
+;;;_ > allout-setup ()
+;;;###autoload
+(defun allout-setup ()
+ "Do fundamental emacs session for allout auto-activation.
+
+Establishes allout processing as part of visiting a file if
+`allout-auto-activation' is non-nil, or removes it otherwise.
+
+The proper way to use this is through customizing the setting of
+`allout-auto-activation'."
+ (if (not allout-auto-activation)
+ (remove-hook 'find-file-hook 'allout-find-file-hook)
+ (add-hook 'find-file-hook 'allout-find-file-hook)))
;;;_ = allout-auto-activation
+;;;###autoload
(defcustom allout-auto-activation nil
- "Regulates auto-activation modality of allout outlines -- see `allout-init'.
+ "Configure allout outline mode auto-activation.
-Setq-default by `allout-init' to regulate whether or not allout
-outline mode is automatically activated when the buffer-specific
-variable `allout-layout' is non-nil, and whether or not the layout
-dictated by `allout-layout' should be imposed on mode activation.
+Control whether and how allout outline mode is automatically
+activated when files are visited with non-nil buffer-specific
+file variable `allout-layout'.
-With value t, auto-mode-activation and auto-layout are enabled.
-\(This also depends on `allout-find-file-hook' being installed in
-`find-file-hook', which is also done by `allout-init'.)
+When allout-auto-activation is \"On\" \(t), allout mode is
+activated in buffers with non-nil `allout-layout', and the
+specified layout is applied.
-With value `ask', auto-mode-activation is enabled, and endorsement for
+With value \"ask\", auto-mode-activation is enabled, and endorsement for
performing auto-layout is asked of the user each time.
-With value `activate', only auto-mode-activation is enabled,
-auto-layout is not.
+With value \"activate\", only auto-mode-activation is enabled.
+Auto-layout is not.
With value nil, neither auto-mode-activation nor auto-layout are
-enabled.
-
-See the docstring for `allout-init' for the proper interface to
-this variable."
+enabled, and allout auto-activation processing is removed from
+file visiting activities."
+ :set 'allout-auto-activation-helper
:type '(choice (const :tag "On" t)
(const :tag "Ask about layout" "ask")
(const :tag "Mode only" "activate")
(const :tag "Off" nil))
:group 'allout)
+(allout-setup)
;;;_ = allout-default-layout
(defcustom allout-default-layout '(-2 : 0)
"Default allout outline layout specification.
@@ -311,7 +329,7 @@ layout specifications.
A list value specifies a default layout for the current buffer,
to be applied upon activation of `allout-mode'. Any non-nil
value will automatically trigger `allout-mode', provided
-`allout-init' has been called to enable this behavior.
+`allout-auto-activation' has been customized to enable it.
The types of elements in the layout specification are:
@@ -890,10 +908,10 @@ For details, see `allout-toggle-current-subtree-encryption's docstring."
(defvar allout-layout nil ; LEAVE GLOBAL VALUE NIL -- see docstring.
"Buffer-specific setting for allout layout.
-In buffers where this is non-nil (and if `allout-init' has been run, to
-enable this behavior), `allout-mode' will be automatically activated. The
-layout dictated by the value will be used to set the initial exposure when
-`allout-mode' is activated.
+In buffers where this is non-nil \(and if `allout-auto-activation'
+has been customized to enable this behavior), `allout-mode' will be
+automatically activated. The layout dictated by the value will be used to
+set the initial exposure when `allout-mode' is activated.
\*You should not setq-default this variable non-nil unless you want every
visited file to be treated as an allout file.*
@@ -906,9 +924,9 @@ example, the following lines at the bottom of an Emacs Lisp file:
;;;End:
dictate activation of `allout-mode' mode when the file is visited
-\(presuming allout-init was already run), followed by the
-equivalent of `(allout-expose-topic 0 : -1 -1 0)'. (This is
-the layout used for the allout.el source file.)
+\(presuming proper `allout-auto-activation' customization),
+followed by the equivalent of `(allout-expose-topic 0 : -1 -1 0)'.
+\(This is the layout used for the allout.el source file.)
`allout-default-layout' describes the specification format.
`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.")
(defvar allout-after-copy-or-kill-hook nil
"*Hook that's run after copying outline text.
-Functions on the hook should take two arguments:
-
- START, END -- integers indicating the span containing the copied text.")
+Functions on the hook should not take any arguments.")
;;;_ = allout-outside-normal-auto-fill-function
(defvar allout-outside-normal-auto-fill-function nil
"Value of normal-auto-fill-function outside of allout mode.
@@ -1621,84 +1637,19 @@ non-nil in a lasting way.")
"If t, `allout-mode's last deactivation was deliberate.
So `allout-post-command-business' should not reactivate it...")
(make-variable-buffer-local 'allout-explicitly-deactivated)
-;;;_ > allout-init (&optional mode)
-(defun allout-init (&optional mode)
- "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'.
-
-MODE is one of the following symbols:
-
- - nil (or no argument) deactivate auto-activation/layout;
- - `activate', enable auto-activation only;
- - `ask', enable auto-activation, and enable auto-layout but with
- confirmation for layout operation solicited from user each time;
- - `report', just report and return the current auto-activation state;
- - anything else (eg, t) for auto-activation and auto-layout, without
- any confirmation check.
-
-Use this function to setup your Emacs session for automatic activation
-of allout outline mode, contingent to the buffer-specific setting of
-the `allout-layout' variable. (See `allout-layout' and
-`allout-expose-topic' docstrings for more details on auto layout).
-
-`allout-init' works by setting up (or removing) the `allout-mode'
-find-file-hook, and giving `allout-auto-activation' a suitable
-setting.
-
-To prime your Emacs session for full auto-outline operation, include
-the following two lines in your Emacs init file:
-
-\(require 'allout)
-\(allout-init t)"
-
- (interactive)
- (if (allout-called-interactively-p)
- (progn
- (setq mode
- (completing-read
- (concat "Select outline auto setup mode "
- "(empty for report, ? for options) ")
- '(("nil")("full")("activate")("deactivate")
- ("ask") ("report") (""))
- nil
- t))
- (if (string= mode "")
- (setq mode 'report)
- (setq mode (intern-soft mode)))))
- (let
- ;; convenience aliases, for consistent ref to respective vars:
- ((hook 'allout-find-file-hook)
- (find-file-hook-var-name (if (boundp 'find-file-hook)
- 'find-file-hook
- 'find-file-hooks))
- (curr-mode 'allout-auto-activation))
-
- (cond ((not mode)
- (set find-file-hook-var-name
- (delq hook (symbol-value find-file-hook-var-name)))
- (if (allout-called-interactively-p)
- (message "Allout outline mode auto-activation inhibited.")))
- ((eq mode 'report)
- (if (not (memq hook (symbol-value find-file-hook-var-name)))
- (allout-init nil)
- ;; Just punt and use the reports from each of the modes:
- (allout-init (symbol-value curr-mode))))
- (t (add-hook find-file-hook-var-name hook)
- (set curr-mode ; `set', not `setq'!
- (cond ((eq mode 'activate)
- (message
- "Outline mode auto-activation enabled.")
- 'activate)
- ((eq mode 'report)
- ;; Return the current mode setting:
- (allout-init mode))
- ((eq mode 'ask)
- (message
- (concat "Outline mode auto-activation and "
- "-layout (upon confirmation) enabled."))
- 'ask)
- ((message
- "Outline mode auto-activation and -layout enabled.")
- 'full)))))))
+;;;_ > allout-init (mode)
+(defun allout-init (mode)
+ "DEPRECATED - configure allout activation by customizing
+`allout-auto-activation'. This function remains around, limited
+from what it did before, for backwards compatability.
+
+MODE is the activation mode - see `allout-auto-activation' for
+valid values."
+
+ (custom-set-variables (list 'allout-auto-activation (format "%s" mode)))
+ (format "%s" mode))
+(make-obsolete 'allout-init
+ "customize 'allout-auto-activation' instead." "23.3")
;;;_ > allout-setup-menubar ()
(defun allout-setup-menubar ()
"Populate the current buffer's menubar with `allout-mode' stuff."
@@ -1764,9 +1715,8 @@ and many other features.
Below is a description of the key bindings, and then description
of special `allout-mode' features and terminology. See also the
outline menubar additions for quick reference to many of the
-features, and see the docstring of the function `allout-init' for
-instructions on priming your emacs session for automatic
-activation of `allout-mode'.
+features. Customize `allout-auto-activation' to prepare your
+emacs session for automatic activation of `allout-mode'.
The bindings are those listed in `allout-prefixed-keybindings'
and `allout-unprefixed-keybindings'. We recommend customizing
@@ -1850,7 +1800,8 @@ M-x outlineify-sticky Activate outline mode for current buffer,
Like above 'copy-exposed', but convert topic
prefixes to section.subsection... numeric
format.
-\\[eval-expression] (allout-init t) Setup Emacs session for outline mode
+\\[customize-variable] allout-auto-activation
+ Prepare Emacs session for allout outline mode
auto-activation.
Topic Encryption
@@ -2092,8 +2043,8 @@ OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
(when (and allout-layout
allout-auto-activation
use-layout
- (and (not (eq allout-auto-activation 'activate))
- (if (eq allout-auto-activation 'ask)
+ (and (not (string= allout-auto-activation "activate"))
+ (if (string= allout-auto-activation "ask")
(if (y-or-n-p (format "Expose %s with layout '%s'? "
(buffer-name)
use-layout))
@@ -3448,7 +3399,7 @@ Returns the qualifying command, if any, else nil."
(defun allout-find-file-hook ()
"Activate `allout-mode' on non-nil `allout-auto-activation', `allout-layout'.
-See `allout-init' for setup instructions."
+See `allout-auto-activation' for setup instructions."
(if (and allout-auto-activation
(not (allout-mode-p))
allout-layout)
@@ -4394,7 +4345,7 @@ subtopics into siblings of the item."
(if (and (not beg-hidden) (not end-hidden))
(allout-unprotected (kill-line arg))
(kill-line arg))
- (run-hook-with-args 'allout-after-copy-or-kill-hook beg end)
+ (run-hooks 'allout-after-copy-or-kill-hook)
(allout-deannotate-hidden beg end)
(if allout-numbered-bullet
@@ -4446,7 +4397,7 @@ Topic exposure is marked with text-properties, to be used by
(unwind-protect ; for possible barf-if-buffer-read-only.
(allout-unprotected (kill-region beg end))
(allout-deannotate-hidden beg end)
- (run-hook-with-args 'allout-after-copy-or-kill-hook beg end)
+ (run-hooks 'allout-after-copy-or-kill-hook)
(save-excursion
(allout-renumber-to-depth depth))
@@ -4503,7 +4454,8 @@ Topic exposure is marked with text-properties, to be used by
(allout-unprotected
(let ((inhibit-read-only t)
(buffer-undo-list t))
- (remove-text-properties begin end '(allout-was-hidden t)))))
+ (remove-text-properties begin (min end (point-max))
+ '(allout-was-hidden t)))))
;;;_ > allout-hide-by-annotation (begin end)
(defun allout-hide-by-annotation (begin end)
"Translate text properties indicating exposure status into actual exposure."
@@ -6312,8 +6264,8 @@ save. See `allout-encrypt-unencrypted-on-saves' for more info."
(defun outlineify-sticky (&optional arg)
"Activate outline mode and establish file var so it is started subsequently.
-See doc-string for `allout-layout' and `allout-init' for details on
-setup for auto-startup."
+See `allout-layout' and customization of `allout-auto-activation'
+for details on preparing emacs for automatic allout activation."
(interactive "P")
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
;;;;;; do-all-symbols do-symbols dotimes dolist do* do loop return-from
;;;;;; return block etypecase typecase ecase case load-time-value
;;;;;; eval-when destructuring-bind function* defmacro* defun* gentemp
-;;;;;; gensym) "cl-macs" "cl-macs.el" "8b2ce9c2ec0e273606bb37c333c4bdde")
+;;;;;; gensym) "cl-macs" "cl-macs.el" "0904b956872432ae7cc5fa9abcefce63")
;;; Generated autoloads from cl-macs.el
(autoload 'gensym "cl-macs" "\
@@ -389,7 +389,7 @@ This is equivalent to `(return-from nil RESULT)'.
(autoload 'return-from "cl-macs" "\
Return from the block named NAME.
-This jump out to the innermost enclosing `(block NAME ...)' form,
+This jumps out to the innermost enclosing `(block NAME ...)' form,
returning RESULT from that form (or nil if RESULT is omitted).
This is compatible with Common Lisp, but note that `defun' and
`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 @@
-;;; pc-select.el --- emulate mark, cut, copy and paste from Motif
-;;; (or MAC GUI or MS-windoze (bah)) look-and-feel
-;;; including key bindings.
-
-;; Copyright (C) 1995-1997, 2000-2011 Free Software Foundation, Inc.
-
-;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
-;; Keywords: convenience emulations
-;; Created: 26 Sep 1995
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; This package emulates the mark, copy, cut and paste look-and-feel of motif
-;; programs (which is the same as the MAC gui and (sorry for that) MS-Windows).
-;; It modifies the keybindings of the cursor keys and the next, prior,
-;; home and end keys. They will modify mark-active.
-;; You can still get the old behavior of cursor moving with the
-;; control sequences C-f, C-b, etc.
-;; This package uses transient-mark-mode and
-;; delete-selection-mode.
-;;
-;; In addition to that all key-bindings from the pc-mode are
-;; done here too (as suggested by RMS).
-;;
-;; As I found out after I finished the first version, s-region.el tries
-;; to do the same.... But my code is a little more complete and using
-;; delete-selection-mode is very important for the look-and-feel.
-;; Pete Forman <pete.forman@airgun.wg.waii.com> provided some motif
-;; compliant keybindings which I added. I had to modify them a little
-;; to add the -mark and -nomark functionality of cursor moving.
-;;
-;; Credits:
-;; Many thanks to all who made comments.
-;; Thanks to RMS and Ralf Muschall <prm@rz.uni-jena.de> for criticism.
-;; Kevin Cutts <cutts@ukraine.corp.mot.com> added the beginning-of-buffer
-;; and end-of-buffer functions which I modified a little.
-;; David Biesack <sasdjb@unx.sas.com> suggested some more cleanup.
-;; Thanks to Pete Forman <pete.forman@airgun.wg.waii.com>
-;; for additional motif keybindings.
-;; Thanks to jvromans@squirrel.nl (Johan Vromans) for a bug report
-;; concerning setting of this-command.
-;; Dan Nicolaescu <done@ece.arizona.ro> suggested suppressing the
-;; scroll-up/scroll-down error.
-;; Eli Barzilay (eli@cs.bgu.ac.il) suggested the sexps functions and
-;; keybindings.
-;;
-;; Ok, some details about the idea of PC Selection mode:
-;;
-;; o The standard keys for moving around (right, left, up, down, home, end,
-;; prior, next, called "move-keys" from now on) will always de-activate
-;; the mark.
-;; o If you press "Shift" together with the "move-keys", the region
-;; you pass along is activated
-;; o You have the copy, cut and paste functions (as in many other programs)
-;; which will operate on the active region
-;; It was not possible to bind them to C-v, C-x and C-c for obvious
-;; emacs reasons.
-;; They will be bound according to the "old" behavior to S-delete (cut),
-;; S-insert (paste) and C-insert (copy). These keys do the same in many
-;; other programs.
-;;
-
-;;; Code:
-
-;; Customization:
-(defgroup pc-select nil
- "Emulate pc bindings."
- :prefix "pc-select"
- :group 'emulations)
-
-(defcustom pc-select-override-scroll-error t
- "Non-nil means don't generate error on scrolling past edge of buffer.
-This variable applies in PC Selection mode only.
-The scroll commands normally generate an error if you try to scroll
-past the top or bottom of the buffer. This is annoying when selecting
-text with these commands. If you set this variable to non-nil, these
-errors are suppressed."
- :type 'boolean
- :group 'pc-select)
-(define-obsolete-variable-alias 'pc-select-override-scroll-error
- 'scroll-error-top-bottom
- "24.1")
-
-(defcustom pc-select-selection-keys-only nil
- "Non-nil means only bind the basic selection keys when started.
-Other keys that emulate pc-behavior will be untouched.
-This gives mostly Emacs-like behavior with only the selection keys enabled."
- :type 'boolean
- :group 'pc-select)
-
-(defcustom pc-select-meta-moves-sexps nil
- "Non-nil means move sexp-wise with Meta key, otherwise move word-wise."
- :type 'boolean
- :group 'pc-select)
-
-(defcustom pc-selection-mode-hook nil
- "The hook to run when PC Selection mode is toggled."
- :type 'hook
- :group 'pc-select)
-
-(defvar pc-select-saved-settings-alist nil
- "The values of the variables before PC Selection mode was toggled on.
-When PC Selection mode is toggled on, it sets quite a few variables
-for its own purposes. This alist holds the original values of the
-variables PC Selection mode had set, so that these variables can be
-restored to their original values when PC Selection mode is toggled off.")
-
-(defvar pc-select-map nil
- "The keymap used as the global map when PC Selection mode is on." )
-
-(defvar pc-select-saved-global-map nil
- "The global map that was in effect when PC Selection mode was toggled on.")
-
-(defvar pc-select-key-bindings-alist nil
- "This alist holds all the key bindings PC Selection mode sets.")
-
-(defvar pc-select-default-key-bindings nil
- "These key bindings always get set by PC Selection mode.")
-
-(unless pc-select-default-key-bindings
- (let ((lst
- ;; This is to avoid confusion with the delete-selection-mode.
- ;; On simple displays you can't see that a region is active and
- ;; will be deleted on the next keypress IMHO especially for
- ;; copy-region-as-kill this is confusing.
- ;; The same goes for exchange-point-and-mark
- '(("\M-w" . copy-region-as-kill-nomark)
- ("\C-x\C-x" . exchange-point-and-mark-nomark)
- ([S-right] . forward-char-mark)
- ([right] . forward-char-nomark)
- ([C-S-right] . forward-word-mark)
- ([C-right] . forward-word-nomark)
- ([S-left] . backward-char-mark)
- ([left] . backward-char-nomark)
- ([C-S-left] . backward-word-mark)
- ([C-left] . backward-word-nomark)
- ([S-down] . next-line-mark)
- ([down] . next-line-nomark)
-
- ([S-end] . end-of-line-mark)
- ([end] . end-of-line-nomark)
- ([S-C-end] . end-of-buffer-mark)
- ([C-end] . end-of-buffer-nomark)
- ([S-M-end] . end-of-buffer-mark)
- ([M-end] . end-of-buffer-nomark)
-
- ([S-next] . scroll-up-mark)
- ([next] . scroll-up-nomark)
-
- ([S-up] . previous-line-mark)
- ([up] . previous-line-nomark)
-
- ([S-home] . beginning-of-line-mark)
- ([home] . beginning-of-line-nomark)
- ([S-C-home] . beginning-of-buffer-mark)
- ([C-home] . beginning-of-buffer-nomark)
- ([S-M-home] . beginning-of-buffer-mark)
- ([M-home] . beginning-of-buffer-nomark)
-
- ([M-S-down] . forward-line-mark)
- ([M-down] . forward-line-nomark)
- ([M-S-up] . backward-line-mark)
- ([M-up] . backward-line-nomark)
-
- ([S-prior] . scroll-down-mark)
- ([prior] . scroll-down-nomark)
-
- ;; Next four lines are from Pete Forman.
- ([C-down] . forward-paragraph-nomark) ; KNextPara cDn
- ([C-up] . backward-paragraph-nomark) ; KPrevPara cUp
- ([S-C-down] . forward-paragraph-mark)
- ([S-C-up] . backward-paragraph-mark))))
-
- (setq pc-select-default-key-bindings lst)))
-
-(defvar pc-select-extra-key-bindings nil
- "Key bindings to set only if `pc-select-selection-keys-only' is nil.")
-
-;; The following keybindings are for standard ISO keyboards
-;; as they are used with IBM compatible PCs, IBM RS/6000,
-;; MACs, many X-Stations and probably more
-(unless pc-select-extra-key-bindings
- (let ((lst
- '(([S-insert] . yank)
- ([C-insert] . copy-region-as-kill)
- ([S-delete] . kill-region)
-
- ;; The following bindings are useful on Sun Type 3 keyboards
- ;; They implement the Get-Delete-Put (copy-cut-paste)
- ;; functions from sunview on the L6, L8 and L10 keys
- ;; Sam Steingold <sds@gnu.org> says that f16 is copy and f18 is paste.
- ([f16] . copy-region-as-kill)
- ([f18] . yank)
- ([f20] . kill-region)
-
- ;; The following bindings are from Pete Forman.
- ([f6] . other-window) ; KNextPane F6
- ([C-delete] . kill-line) ; KEraseEndLine cDel
- ("\M-\d" . undo) ; KUndo aBS
-
- ;; The following binding is taken from pc-mode.el
- ;; as suggested by RMS.
- ;; I only used the one that is not covered above.
- ([C-M-delete] . kill-sexp)
- ;; Next line proposed by Eli Barzilay
- ([C-escape] . electric-buffer-list))))
-
- (setq pc-select-extra-key-bindings lst)))
-
-(defvar pc-select-meta-moves-sexps-key-bindings
- '((([M-S-right] . forward-sexp-mark)
- ([M-right] . forward-sexp-nomark)
- ([M-S-left] . backward-sexp-mark)
- ([M-left] . backward-sexp-nomark))
- (([M-S-right] . forward-word-mark)
- ([M-right] . forward-word-nomark)
- ([M-S-left] . backward-word-mark)
- ([M-left] . backward-word-nomark)))
- "The list of key bindings controlled by `pc-select-meta-moves-sexp'.
-The bindings in the car of this list get installed if
-`pc-select-meta-moves-sexp' is t, the bindings in the cadr of this
-list get installed otherwise.")
-
-;; This is for tty. We don't turn on normal-erase-is-backspace,
-;; but bind keys as pc-selection-mode did before
-;; normal-erase-is-backspace was invented, to keep us back
-;; compatible.
-(defvar pc-select-tty-key-bindings
- '(([delete] . delete-char) ; KDelete Del
- ([C-backspace] . backward-kill-word))
- "The list of key bindings controlled by `pc-select-selection-keys-only'.
-These key bindings get installed when running in a tty, but only if
-`pc-select-selection-keys-only' is nil.")
-
-(defvar pc-select-old-M-delete-binding nil
- "Holds the old mapping of [M-delete] in the `function-key-map'.
-This variable holds the value associated with [M-delete] in the
-`function-key-map' before PC Selection mode had changed that
-association.")
-
-;;;;
-;; misc
-;;;;
-
-(provide 'pc-select)
-
-(defun copy-region-as-kill-nomark (beg end)
- "Save the region as if killed, but don't kill it; deactivate mark.
-If `interprogram-cut-function' is non-nil, also save the text for a window
-system cut and paste.
-
-Deactivating mark is to avoid confusion with `delete-selection-mode'
-and `transient-mark-mode'."
- (interactive "r")
- (copy-region-as-kill beg end)
- (setq mark-active nil)
- (message "Region saved"))
-
-(defun exchange-point-and-mark-nomark ()
- "Like `exchange-point-and-mark' but without activating the mark."
- (interactive)
- (exchange-point-and-mark)
- (setq mark-active nil))
-
-;;;;
-;; non-interactive
-;;;;
-(defun pc-select-ensure-mark ()
- ;; make sure mark is active
- ;; test if it is active, if it isn't, set it and activate it
- (or mark-active (set-mark-command nil))
- ;; Remember who activated the mark.
- (setq mark-active 'pc-select))
-
-(defun pc-select-maybe-deactivate-mark ()
- ;; maybe switch off mark (only if *we* switched it on)
- (when (eq mark-active 'pc-select)
- (deactivate-mark)))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;;;; forward and mark
-;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(defun forward-char-mark (&optional arg)
- "Ensure mark is active; move point right ARG characters (left if ARG negative).
-On reaching end of buffer, stop and signal error."
- (interactive "p")
- (pc-select-ensure-mark)
- (forward-char arg))
-
-(defun forward-word-mark (&optional arg)
- "Ensure mark is active; move point right ARG words (backward if ARG is negative).
-Normally returns t.
-If an edge of the buffer is reached, point is left there
-and nil is returned."
- (interactive "p")
- (pc-select-ensure-mark)
- (forward-word arg))
-
-(defun forward-line-mark (&optional arg)
- "Ensure mark is active; move cursor vertically down ARG lines."
- (interactive "p")
- (pc-select-ensure-mark)
- (forward-line arg)
- (setq this-command 'forward-line)
-)
-
-(defun forward-sexp-mark (&optional arg)
- "Ensure mark is active; move forward across one balanced expression (sexp).
-With argument, do it that many times. Negative arg -N means
-move backward across N balanced expressions."
- (interactive "p")
- (pc-select-ensure-mark)
- (forward-sexp arg))
-
-(defun forward-paragraph-mark (&optional arg)
- "Ensure mark is active; move forward to end of paragraph.
-With arg N, do it N times; negative arg -N means move backward N paragraphs.
-
-A line which `paragraph-start' matches either separates paragraphs
-\(if `paragraph-separate' matches it also) or is the first line of a paragraph.
-A paragraph end is the beginning of a line which is not part of the paragraph
-to which the end of the previous line belongs, or the end of the buffer."
- (interactive "p")
- (pc-select-ensure-mark)
- (forward-paragraph arg))
-
-(defun next-line-mark (&optional arg)
- "Ensure mark is active; move cursor vertically down ARG lines.
-If there is no character in the target line exactly under the current column,
-the cursor is positioned after the character in that line which spans this
-column, or at the end of the line if it is not long enough.
-If there is no line in the buffer after this one, behavior depends on the
-value of `next-line-add-newlines'. If non-nil, it inserts a newline character
-to create a line, and moves the cursor to that line. Otherwise it moves the
-cursor to the end of the buffer \(if already at the end of the buffer, an error
-is signaled).
-
-The command \\[set-goal-column] can be used to create
-a semipermanent goal column to which this command always moves.
-Then it does not try to move vertically. This goal column is stored
-in `goal-column', which is nil when there is none."
- (interactive "p")
- (pc-select-ensure-mark)
- (with-no-warnings (next-line arg))
- (setq this-command 'next-line))
-
-(defun end-of-line-mark (&optional arg)
- "Ensure mark is active; move point to end of current line.
-With argument ARG not nil or 1, move forward ARG - 1 lines first.
-If scan reaches end of buffer, stop there without error."
- (interactive "p")
- (pc-select-ensure-mark)
- (end-of-line arg)
- (setq this-command 'end-of-line))
-
-(defun backward-line-mark (&optional arg)
- "Ensure mark is active; move cursor vertically up ARG lines."
- (interactive "p")
- (pc-select-ensure-mark)
- (if (null arg)
- (setq arg 1))
- (forward-line (- arg))
- (setq this-command 'forward-line)
-)
-
-(defun scroll-down-mark (&optional arg)
- "Ensure mark is active; scroll down ARG lines; or near full screen if no ARG.
-A near full screen is `next-screen-context-lines' less than a full screen.
-Negative ARG means scroll upward.
-When calling from a program, supply a number as argument or nil.
-Attempting to scroll past the edge of buffer does not raise an
-error, unless `pc-select-override-scroll-error' is nil."
- (interactive "P")
- (pc-select-ensure-mark)
- (cond (pc-select-override-scroll-error
- (condition-case nil (scroll-down arg)
- (beginning-of-buffer (goto-char (point-min)))))
- (t (scroll-down arg))))
-
-(defun end-of-buffer-mark (&optional arg)
- "Ensure mark is active; move point to the end of the buffer.
-With arg N, put point N/10 of the way from the end.
-
-If the buffer is narrowed, this command uses the beginning and size
-of the accessible part of the buffer.
-
-Don't use this command in Lisp programs!
-\(goto-char \(point-max)) is faster and avoids clobbering the mark."
- (interactive "P")
- (pc-select-ensure-mark)
- (let ((size (- (point-max) (point-min))))
- (goto-char (if arg
- (- (point-max)
- (if (> size 10000)
- ;; Avoid overflow for large buffer sizes!
- (* (prefix-numeric-value arg)
- (/ size 10))
- (/ (* size (prefix-numeric-value arg)) 10)))
- (point-max))))
- ;; If we went to a place in the middle of the buffer,
- ;; adjust it to the beginning of a line.
- (if arg (forward-line 1)
- ;; If the end of the buffer is not already on the screen,
- ;; then scroll specially to put it near, but not at, the bottom.
- (if (let ((old-point (point)))
- (save-excursion
- (goto-char (window-start))
- (vertical-motion (window-height))
- (< (point) old-point)))
- (progn
- (overlay-recenter (point))
- (recenter -3)))))
-
-;;;;;;;;;
-;;;;; no mark
-;;;;;;;;;
-
-(defun forward-char-nomark (&optional arg)
- "Deactivate mark; move point right ARG characters \(left if ARG negative).
-On reaching end of buffer, stop and signal error."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (forward-char arg))
-
-(defun forward-word-nomark (&optional arg)
- "Deactivate mark; move point right ARG words \(backward if ARG is negative).
-Normally returns t.
-If an edge of the buffer is reached, point is left there
-and nil is returned."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (forward-word arg))
-
-(defun forward-line-nomark (&optional arg)
- "Deactivate mark; move cursor vertically down ARG lines."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (forward-line arg)
- (setq this-command 'forward-line)
-)
-
-(defun forward-sexp-nomark (&optional arg)
- "Deactivate mark; move forward across one balanced expression (sexp).
-With argument, do it that many times. Negative arg -N means
-move backward across N balanced expressions."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (forward-sexp arg))
-
-(defun forward-paragraph-nomark (&optional arg)
- "Deactivate mark; move forward to end of paragraph.
-With arg N, do it N times; negative arg -N means move backward N paragraphs.
-
-A line which `paragraph-start' matches either separates paragraphs
-\(if `paragraph-separate' matches it also) or is the first line of a paragraph.
-A paragraph end is the beginning of a line which is not part of the paragraph
-to which the end of the previous line belongs, or the end of the buffer."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (forward-paragraph arg))
-
-(defun next-line-nomark (&optional arg)
- "Deactivate mark; move cursor vertically down ARG lines.
-If there is no character in the target line exactly under the current column,
-the cursor is positioned after the character in that line which spans this
-column, or at the end of the line if it is not long enough.
-If there is no line in the buffer after this one, behavior depends on the
-value of `next-line-add-newlines'. If non-nil, it inserts a newline character
-to create a line, and moves the cursor to that line. Otherwise it moves the
-cursor to the end of the buffer (if already at the end of the buffer, an error
-is signaled).
-
-The command \\[set-goal-column] can be used to create
-a semipermanent goal column to which this command always moves.
-Then it does not try to move vertically. This goal column is stored
-in `goal-column', which is nil when there is none."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (with-no-warnings (next-line arg))
- (setq this-command 'next-line))
-
-(defun end-of-line-nomark (&optional arg)
- "Deactivate mark; move point to end of current line.
-With argument ARG not nil or 1, move forward ARG - 1 lines first.
-If scan reaches end of buffer, stop there without error."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (end-of-line arg)
- (setq this-command 'end-of-line))
-
-(defun backward-line-nomark (&optional arg)
- "Deactivate mark; move cursor vertically up ARG lines."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (if (null arg)
- (setq arg 1))
- (forward-line (- arg))
- (setq this-command 'forward-line)
-)
-
-(defun scroll-down-nomark (&optional arg)
- "Deactivate mark; scroll down ARG lines; or near full screen if no ARG.
-A near full screen is `next-screen-context-lines' less than a full screen.
-Negative ARG means scroll upward.
-When calling from a program, supply a number as argument or nil.
-Attempting to scroll past the edge of buffer does not raise an
-error, unless `pc-select-override-scroll-error' is nil."
- (interactive "P")
- (pc-select-maybe-deactivate-mark)
- (cond (pc-select-override-scroll-error
- (condition-case nil (scroll-down arg)
- (beginning-of-buffer (goto-char (point-min)))))
- (t (scroll-down arg))))
-
-(defun end-of-buffer-nomark (&optional arg)
- "Deactivate mark; move point to the end of the buffer.
-With arg N, put point N/10 of the way from the end.
-
-If the buffer is narrowed, this command uses the beginning and size
-of the accessible part of the buffer.
-
-Don't use this command in Lisp programs!
-\(goto-char (point-max)) is faster and avoids clobbering the mark."
- (interactive "P")
- (pc-select-maybe-deactivate-mark)
- (let ((size (- (point-max) (point-min))))
- (goto-char (if arg
- (- (point-max)
- (if (> size 10000)
- ;; Avoid overflow for large buffer sizes!
- (* (prefix-numeric-value arg)
- (/ size 10))
- (/ (* size (prefix-numeric-value arg)) 10)))
- (point-max))))
- ;; If we went to a place in the middle of the buffer,
- ;; adjust it to the beginning of a line.
- (if arg (forward-line 1)
- ;; If the end of the buffer is not already on the screen,
- ;; then scroll specially to put it near, but not at, the bottom.
- (if (let ((old-point (point)))
- (save-excursion
- (goto-char (window-start))
- (vertical-motion (window-height))
- (< (point) old-point)))
- (progn
- (overlay-recenter (point))
- (recenter -3)))))
-
-
-;;;;;;;;;;;;;;;;;;;;
-;;;;;; backwards and mark
-;;;;;;;;;;;;;;;;;;;;
-
-(defun backward-char-mark (&optional arg)
- "Ensure mark is active; move point left ARG characters (right if ARG negative).
-On attempt to pass beginning or end of buffer, stop and signal error."
- (interactive "p")
- (pc-select-ensure-mark)
- (backward-char arg))
-
-(defun backward-word-mark (&optional arg)
- "Ensure mark is active; move backward until encountering the end of a word.
-With argument, do this that many times."
- (interactive "p")
- (pc-select-ensure-mark)
- (backward-word arg))
-
-(defun backward-sexp-mark (&optional arg)
- "Ensure mark is active; move backward across one balanced expression (sexp).
-With argument, do it that many times. Negative arg -N means
-move forward across N balanced expressions."
- (interactive "p")
- (pc-select-ensure-mark)
- (backward-sexp arg))
-
-(defun backward-paragraph-mark (&optional arg)
- "Ensure mark is active; move backward to start of paragraph.
-With arg N, do it N times; negative arg -N means move forward N paragraphs.
-
-A paragraph start is the beginning of a line which is a
-`first-line-of-paragraph' or which is ordinary text and follows a
-paragraph-separating line; except: if the first real line of a
-paragraph is preceded by a blank line, the paragraph starts at that
-blank line.
-
-See `forward-paragraph' for more information."
- (interactive "p")
- (pc-select-ensure-mark)
- (backward-paragraph arg))
-
-(defun previous-line-mark (&optional arg)
- "Ensure mark is active; move cursor vertically up ARG lines.
-If there is no character in the target line exactly over the current column,
-the cursor is positioned after the character in that line which spans this
-column, or at the end of the line if it is not long enough.
-
-The command \\[set-goal-column] can be used to create
-a semipermanent goal column to which this command always moves.
-Then it does not try to move vertically.
-
-If you are thinking of using this in a Lisp program, consider using
-`forward-line' with a negative argument instead. It is usually easier
-to use and more reliable (no dependence on goal column, etc.)."
- (interactive "p")
- (pc-select-ensure-mark)
- (with-no-warnings (previous-line arg))
- (setq this-command 'previous-line))
-
-(defun beginning-of-line-mark (&optional arg)
- "Ensure mark is active; move point to beginning of current line.
-With argument ARG not nil or 1, move forward ARG - 1 lines first.
-If scan reaches end of buffer, stop there without error."
- (interactive "p")
- (pc-select-ensure-mark)
- (beginning-of-line arg))
-
-
-(defun scroll-up-mark (&optional arg)
- "Ensure mark is active; scroll upward ARG lines; or near full screen if no ARG.
-A near full screen is `next-screen-context-lines' less than a full screen.
-Negative ARG means scroll downward.
-When calling from a program, supply a number as argument or nil.
-Attempting to scroll past the edge of buffer does not raise an
-error, unless `pc-select-override-scroll-error' is nil."
- (interactive "P")
- (pc-select-ensure-mark)
- (cond (pc-select-override-scroll-error
- (condition-case nil (scroll-up arg)
- (end-of-buffer (goto-char (point-max)))))
- (t (scroll-up arg))))
-
-(defun beginning-of-buffer-mark (&optional arg)
- "Ensure mark is active; move point to the beginning of the buffer.
-With arg N, put point N/10 of the way from the beginning.
-
-If the buffer is narrowed, this command uses the beginning and size
-of the accessible part of the buffer.
-
-Don't use this command in Lisp programs!
-\(goto-char (point-min)) is faster and avoids clobbering the mark."
- (interactive "P")
- (pc-select-ensure-mark)
- (let ((size (- (point-max) (point-min))))
- (goto-char (if arg
- (+ (point-min)
- (if (> size 10000)
- ;; Avoid overflow for large buffer sizes!
- (* (prefix-numeric-value arg)
- (/ size 10))
- (/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
- (point-min))))
- (if arg (forward-line 1)))
-
-;;;;;;;;
-;;; no mark
-;;;;;;;;
-
-(defun backward-char-nomark (&optional arg)
- "Deactivate mark; move point left ARG characters (right if ARG negative).
-On attempt to pass beginning or end of buffer, stop and signal error."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (backward-char arg))
-
-(defun backward-word-nomark (&optional arg)
- "Deactivate mark; move backward until encountering the end of a word.
-With argument, do this that many times."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (backward-word arg))
-
-(defun backward-sexp-nomark (&optional arg)
- "Deactivate mark; move backward across one balanced expression (sexp).
-With argument, do it that many times. Negative arg -N means
-move forward across N balanced expressions."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (backward-sexp arg))
-
-(defun backward-paragraph-nomark (&optional arg)
- "Deactivate mark; move backward to start of paragraph.
-With arg N, do it N times; negative arg -N means move forward N paragraphs.
-
-A paragraph start is the beginning of a line which is a
-`first-line-of-paragraph' or which is ordinary text and follows a
-paragraph-separating line; except: if the first real line of a
-paragraph is preceded by a blank line, the paragraph starts at that
-blank line.
-
-See `forward-paragraph' for more information."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (backward-paragraph arg))
-
-(defun previous-line-nomark (&optional arg)
- "Deactivate mark; move cursor vertically up ARG lines.
-If there is no character in the target line exactly over the current column,
-the cursor is positioned after the character in that line which spans this
-column, or at the end of the line if it is not long enough.
-
-The command \\[set-goal-column] can be used to create
-a semipermanent goal column to which this command always moves.
-Then it does not try to move vertically."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (with-no-warnings (previous-line arg))
- (setq this-command 'previous-line))
-
-(defun beginning-of-line-nomark (&optional arg)
- "Deactivate mark; move point to beginning of current line.
-With argument ARG not nil or 1, move forward ARG - 1 lines first.
-If scan reaches end of buffer, stop there without error."
- (interactive "p")
- (pc-select-maybe-deactivate-mark)
- (beginning-of-line arg))
-
-(defun scroll-up-nomark (&optional arg)
- "Deactivate mark; scroll upward ARG lines; or near full screen if no ARG.
-A near full screen is `next-screen-context-lines' less than a full screen.
-Negative ARG means scroll downward.
-When calling from a program, supply a number as argument or nil.
-Attempting to scroll past the edge of buffer does not raise an
-error, unless `pc-select-override-scroll-error' is nil."
- (interactive "P")
- (pc-select-maybe-deactivate-mark)
- (cond (pc-select-override-scroll-error
- (condition-case nil (scroll-up arg)
- (end-of-buffer (goto-char (point-max)))))
- (t (scroll-up arg))))
-
-(defun beginning-of-buffer-nomark (&optional arg)
- "Deactivate mark; move point to the beginning of the buffer.
-With arg N, put point N/10 of the way from the beginning.
-
-If the buffer is narrowed, this command uses the beginning and size
-of the accessible part of the buffer.
-
-Don't use this command in Lisp programs!
-\(goto-char (point-min)) is faster and avoids clobbering the mark."
- (interactive "P")
- (pc-select-maybe-deactivate-mark)
- (let ((size (- (point-max) (point-min))))
- (goto-char (if arg
- (+ (point-min)
- (if (> size 10000)
- ;; Avoid overflow for large buffer sizes!
- (* (prefix-numeric-value arg)
- (/ size 10))
- (/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
- (point-min))))
- (if arg (forward-line 1)))
-
-
-(defun pc-select-define-keys (alist keymap)
- "Make KEYMAP have the key bindings specified in ALIST."
- (let ((lst alist))
- (while lst
- (define-key keymap (caar lst) (cdar lst))
- (setq lst (cdr lst)))))
-
-(defun pc-select-restore-keys (alist keymap saved-map)
- "Use ALIST to restore key bindings from SAVED-MAP into KEYMAP.
-Go through all the key bindings in ALIST, and, for each key
-binding, if KEYMAP and ALIST still agree on the key binding,
-restore the previous value of that key binding from SAVED-MAP."
- (let ((lst alist))
- (while lst
- (when (equal (lookup-key keymap (caar lst)) (cdar lst))
- (define-key keymap (caar lst) (lookup-key saved-map (caar lst))))
- (setq lst (cdr lst)))))
-
-(defmacro pc-select-add-to-alist (alist var val)
- "Ensure that ALIST contains the cons cell (VAR . VAL).
-If a cons cell whose car is VAR is already on the ALIST, update the
-cdr of that cell with VAL. Otherwise, make a new cons cell
-\(VAR . VAL), and prepend it onto ALIST."
- (let ((elt (make-symbol "elt")))
- `(let ((,elt (assq ',var ,alist)))
- (if ,elt
- (setcdr ,elt ,val)
- (setq ,alist (cons (cons ',var ,val) ,alist))))))
-
-(defmacro pc-select-save-and-set-var (var newval)
- "Set VAR to NEWVAL; save the old value.
-The old value is saved on the `pc-select-saved-settings-alist'."
- `(when (boundp ',var)
- (pc-select-add-to-alist pc-select-saved-settings-alist ,var ,var)
- (setq ,var ,newval)))
-
-(defmacro pc-select-save-and-set-mode (mode &optional arg mode-var)
- "Call the function MODE; save the old value of the variable MODE.
-MODE is presumed to be a function which turns on a minor mode. First,
-save the value of the variable MODE on `pc-select-saved-settings-alist'.
-Then, if ARG is specified, call MODE with ARG, otherwise call it with
-nil as an argument. If MODE-VAR is specified, save the value of the
-variable MODE-VAR (instead of the value of the variable MODE) on
-`pc-select-saved-settings-alist'."
- (unless mode-var (setq mode-var mode))
- `(when (fboundp ',mode)
- (pc-select-add-to-alist pc-select-saved-settings-alist
- ,mode-var ,mode-var)
- (,mode ,arg)))
-
-(defmacro pc-select-restore-var (var)
- "Restore the previous value of the variable VAR.
-Look up VAR's previous value in `pc-select-saved-settings-alist', and,
-if the value is found, set VAR to that value."
- (let ((elt (make-symbol "elt")))
- `(let ((,elt (assq ',var pc-select-saved-settings-alist)))
- (unless (null ,elt)
- (setq ,var (cdr ,elt))))))
-
-(defmacro pc-select-restore-mode (mode)
- "Restore the previous state (either on or off) of the minor mode MODE.
-Look up the value of the variable MODE on `pc-select-saved-settings-alist'.
-If the value is non-nil, call the function MODE with an argument of
-1, otherwise call it with an argument of -1."
- (let ((elt (make-symbol "elt")))
- `(when (fboundp ',mode)
- (let ((,elt (assq ',mode pc-select-saved-settings-alist)))
- (unless (null ,elt)
- (,mode (if (cdr ,elt) 1 -1)))))))
-
-
-;;;###autoload
-(define-minor-mode pc-selection-mode
- "Change mark behavior to emulate Motif, Mac or MS-Windows cut and paste style.
-
-This mode enables Delete Selection mode and Transient Mark mode.
-
-The arrow keys (and others) are bound to new functions
-which modify the status of the mark.
-
-The ordinary arrow keys disable the mark.
-The shift-arrow keys move, leaving the mark behind.
-
-C-LEFT and C-RIGHT move back or forward one word, disabling the mark.
-S-C-LEFT and S-C-RIGHT move back or forward one word, leaving the mark behind.
-
-M-LEFT and M-RIGHT move back or forward one word or sexp, disabling the mark.
-S-M-LEFT and S-M-RIGHT move back or forward one word or sexp, leaving the mark
-behind. To control whether these keys move word-wise or sexp-wise set the
-variable `pc-select-meta-moves-sexps' after loading pc-select.el but before
-turning PC Selection mode on.
-
-C-DOWN and C-UP move back or forward a paragraph, disabling the mark.
-S-C-DOWN and S-C-UP move back or forward a paragraph, leaving the mark behind.
-
-HOME moves to beginning of line, disabling the mark.
-S-HOME moves to beginning of line, leaving the mark behind.
-With Ctrl or Meta, these keys move to beginning of buffer instead.
-
-END moves to end of line, disabling the mark.
-S-END moves to end of line, leaving the mark behind.
-With Ctrl or Meta, these keys move to end of buffer instead.
-
-PRIOR or PAGE-UP scrolls and disables the mark.
-S-PRIOR or S-PAGE-UP scrolls and leaves the mark behind.
-
-S-DELETE kills the region (`kill-region').
-S-INSERT yanks text from the kill ring (`yank').
-C-INSERT copies the region into the kill ring (`copy-region-as-kill').
-
-In addition, certain other PC bindings are imitated (to avoid this, set
-the variable `pc-select-selection-keys-only' to t after loading pc-select.el
-but before calling PC Selection mode):
-
- F6 other-window
- DELETE delete-char
- C-DELETE kill-line
- M-DELETE kill-word
- C-M-DELETE kill-sexp
- C-BACKSPACE backward-kill-word
- M-BACKSPACE undo"
- ;; FIXME: bring pc-bindings-mode here ?
- nil nil nil
-
- :group 'pc-select
- :global t
-
- (if pc-selection-mode
- (if (null pc-select-key-bindings-alist)
- (progn
- (setq pc-select-saved-global-map (copy-keymap (current-global-map)))
- (setq pc-select-key-bindings-alist
- (append pc-select-default-key-bindings
- (if pc-select-selection-keys-only
- nil
- pc-select-extra-key-bindings)
- (if pc-select-meta-moves-sexps
- (car pc-select-meta-moves-sexps-key-bindings)
- (cadr pc-select-meta-moves-sexps-key-bindings))
- (if (or pc-select-selection-keys-only
- (eq window-system 'x)
- (memq system-name '(ms-dos windows-nt)))
- nil
- pc-select-tty-key-bindings)))
-
- (pc-select-define-keys pc-select-key-bindings-alist
- (current-global-map))
-
- (unless (or pc-select-selection-keys-only
- (eq window-system 'x)
- (memq system-name '(ms-dos windows-nt)))
- ;; it is not clear that we need the following line
- ;; I hope it doesn't do too much harm to leave it in, though...
- (setq pc-select-old-M-delete-binding
- (lookup-key function-key-map [M-delete]))
- (define-key function-key-map [M-delete] [?\M-d]))
-
- (when (and (not pc-select-selection-keys-only)
- (or (eq window-system 'x)
- (memq system-name '(ms-dos windows-nt)))
- (fboundp 'normal-erase-is-backspace-mode))
- (pc-select-save-and-set-mode normal-erase-is-backspace-mode 1
- normal-erase-is-backspace))
- ;; the original author also had this above:
- ;; (setq-default normal-erase-is-backspace t)
- ;; However, the documentation for the variable says that
- ;; "setting it with setq has no effect", so I'm removing it.
-
- (pc-select-save-and-set-var highlight-nonselected-windows nil)
- (pc-select-save-and-set-var transient-mark-mode t)
- (pc-select-save-and-set-var mark-even-if-inactive t)
- (pc-select-save-and-set-mode delete-selection-mode 1))
- ;;else
- ;; If the user turned on pc-selection-mode a second time
- ;; do not clobber the values of the variables that were
- ;; saved from before pc-selection mode was activated --
- ;; just make sure the values are the way we like them.
- (pc-select-define-keys pc-select-key-bindings-alist
- (current-global-map))
- (unless (or pc-select-selection-keys-only
- (eq window-system 'x)
- (memq system-name '(ms-dos windows-nt)))
- ;; it is not clear that we need the following line
- ;; I hope it doesn't do too much harm to leave it in, though...
- (define-key function-key-map [M-delete] [?\M-d]))
- (when (and (not pc-select-selection-keys-only)
- (or (eq window-system 'x)
- (memq system-name '(ms-dos windows-nt)))
- (fboundp 'normal-erase-is-backspace-mode))
- (normal-erase-is-backspace-mode 1))
- (setq highlight-nonselected-windows nil)
- (setq transient-mark-mode t)
- (setq mark-even-if-inactive t)
- (delete-selection-mode 1))
- ;;else
- (when pc-select-key-bindings-alist
- (when (and (not pc-select-selection-keys-only)
- (or (eq window-system 'x)
- (memq system-name '(ms-dos windows-nt))))
- (pc-select-restore-mode normal-erase-is-backspace-mode))
-
- (pc-select-restore-keys
- pc-select-key-bindings-alist (current-global-map)
- pc-select-saved-global-map)
-
- (pc-select-restore-var highlight-nonselected-windows)
- (pc-select-restore-var transient-mark-mode)
- (pc-select-restore-var mark-even-if-inactive)
- (pc-select-restore-mode delete-selection-mode)
- (and pc-select-old-M-delete-binding
- (define-key function-key-map [M-delete]
- pc-select-old-M-delete-binding))
- (setq pc-select-key-bindings-alist nil
- pc-select-saved-settings-alist nil))))
-
-;;; 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 @@
+2011-02-07 Julien Danjou <julien@danjou.info>
+
+ * erc-track.el (erc-window-configuration-change): New function.
+ This will allow to track buffer visibility when a command is
+ finished to executed. Idea stolen from rcirc.
+ (track): Put erc-window-configuration-change in
+ window-configuration-change-hook.
+ (erc-modified-channels-update): Remove
+ erc-modified-channels-update from post-command-hook after update.
+
2011-01-31 Antoine Levitt <antoine.levitt@gmail.com> (tiny change)
* 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."
(defadvice switch-to-buffer (after erc-update (&rest args) activate)
(erc-modified-channels-update))
(add-hook 'window-configuration-change-hook
- 'erc-modified-channels-update))
+ 'erc-window-configuration-change))
(add-hook 'erc-insert-post-hook 'erc-track-modified-channels)
(add-hook 'erc-disconnected-hook 'erc-modified-channels-update))
;; enable the tracking keybindings
@@ -675,7 +675,7 @@ module, otherwise the keybindings will not do anything useful."
(if (featurep 'xemacs)
(ad-disable-advice 'switch-to-buffer 'after 'erc-update)
(remove-hook 'window-configuration-change-hook
- 'erc-modified-channels-update))
+ 'erc-window-configuration-change))
(remove-hook 'erc-disconnected-hook 'erc-modified-channels-update)
(remove-hook 'erc-insert-post-hook 'erc-track-modified-channels))
;; disable the tracking keybindings
@@ -730,6 +730,12 @@ only consider active buffers visible.")
;;; Tracking the channel modifications
+(defun erc-window-configuration-change ()
+ (unless (minibuffer-window-active-p (minibuffer-window))
+ ;; delay this until command has finished to make sure window is
+ ;; actually visible before clearing activity
+ (add-hook 'post-command-hook 'erc-modified-channels-update)))
+
(defvar erc-modified-channels-update-inside nil
"Variable to prevent running `erc-modified-channels-update' multiple
times. Without it, you cannot debug `erc-modified-channels-display',
@@ -757,8 +763,9 @@ ARGS are ignored."
(erc-modified-channels-remove-buffer buffer))))
erc-modified-channels-alist)
(when removed-channel
- (erc-modified-channels-display)
- (force-mode-line-update t)))))
+ (erc-modified-channels-display)
+ (force-mode-line-update t)))
+ (remove-hook 'post-command-hook 'erc-modified-channels-update)))
(defvar erc-track-mouse-face (if (featurep 'xemacs)
'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 @@
+2011-02-09 Lars Ingebrigtsen <larsi@gnus.org>
+
+ * nntp.el (nntp-retrieve-group-data-early-disabled): Disable the async
+ code for now, since it doesn't work for all users.
+
+2011-02-09 Julien Danjou <julien@danjou.info>
+
+ * message.el (message-options): Make message-options really buffer
+ local.
+
+2011-02-08 Julien Danjou <julien@danjou.info>
+
+ * shr.el (shr-tag-body): Add support for text attribute in body
+ markups.
+
+ * message.el (message-options): Make message-options a local variable.
+
2011-02-07 Lars Ingebrigtsen <larsi@gnus.org>
* nnimap.el (nnimap-update-info): Refactor slightly.
@@ -7,6 +24,7 @@
characters.
(nnimap-process-quirk): Renamed function to avoid collision.
(nnimap-update-info): Fix macrology bug-out.
+ (nnimap-update-info): Simplify split history test.
2011-02-06 Lars Ingebrigtsen <larsi@gnus.org>
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'."
(defvar message-options nil
"Some saved answers when sending message.")
+(make-variable-buffer-local 'message-options)
(defvar message-send-mail-real-function nil
"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.")
;; Tell Gnus whether there are any \Recent messages in any of
;; the groups.
(let ((recent (cdr (assoc '%Recent flags))))
- (when (and active recent)
- (while recent
- (when (> (car recent) (cdr active))
- (push (list (cons (gnus-group-real-name group) 0))
- nnmail-split-history)
- (setq recent nil))
- (pop recent))))
+ (when (and active
+ recent
+ (> (car (last recent)) (cdr active)))
+ (push (list (cons (gnus-group-real-name group) 0))
+ nnmail-split-history)))
;; Note the active level for the next run-through.
(gnus-group-set-parameter info 'active (gnus-active group))
(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."
(nntp-copy-to-buffer nntp-server-buffer (point-min) (point-max))
'headers)))))
-(deffoo nntp-retrieve-group-data-early (server infos)
+(deffoo nntp-retrieve-group-data-early-disabled (server infos)
"Retrieve group info on INFOS."
(nntp-with-open-group nil server
(when (nntp-find-connection-buffer nntp-server-buffer)
@@ -793,7 +793,7 @@ command whose response triggered the error."
nil command (gnus-group-real-name (gnus-info-group info)))))
(length infos)))))
-(deffoo nntp-finish-retrieve-group-infos (server infos count)
+(deffoo nntp-finish-retrieve-group-infos-disabled (server infos count)
(nntp-with-open-group nil server
(let ((buf (nntp-find-connection-buffer nntp-server-buffer))
(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."
(defun shr-tag-body (cont)
(let* ((start (point))
- (fgcolor (cdr (assq :fgcolor cont)))
+ (fgcolor (cdr (or (assq :fgcolor cont)
+ (assq :text cont))))
(bgcolor (cdr (assq :bgcolor cont)))
(shr-stylesheet (list (cons 'color fgcolor)
(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."
;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group
;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
-;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "f163e17664a89a6f0aa2b15bfaaa65a4")
+;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "eb3de21aef70e4ca75f611f1c3c56aa1")
;;; Generated autoloads from ibuf-ext.el
(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."
(defun rcirc-cmd-ctcp (args &optional process target)
(if (string-match "^\\([^ ]+\\)\\s-+\\(.+\\)$" args)
- (let ((target (match-string 1 args))
- (request (match-string 2 args)))
- (rcirc-send-string process
- (format "PRIVMSG %s \C-a%s\C-a"
- target (upcase request))))
+ (let* ((target (match-string 1 args))
+ (request (upcase (match-string 2 args)))
+ (function (intern-soft (concat "rcirc-ctcp-sender-" request))))
+ (if (fboundp function) ;; use special function if available
+ (funcall function process target request)
+ (rcirc-send-string process
+ (format "PRIVMSG %s :\C-a%s\C-a"
+ target request))))
(rcirc-print process (rcirc-nick process) "ERROR" nil
"usage: /ctcp NICK REQUEST")))
+(defun rcirc-ctcp-sender-PING (process target request)
+ "Send a CTCP PING message to TARGET."
+ (let ((timestamp (format "%.0f" (float-time))))
+ (rcirc-send-string process
+ (format "PRIVMSG %s :\C-aPING %s\C-a" target timestamp))))
+
(defun rcirc-cmd-me (args &optional process target)
(rcirc-send-string process (format "PRIVMSG %s :\C-aACTION %s\C-a"
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 @@
;; Maintainer: FSF
;; Keywords: emulations
+;; Obsolete-since: 24.1
;; This file is part of GNU Emacs.
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 @@
+;;; pc-select.el --- emulate mark, cut, copy and paste from Motif
+;;; (or MAC GUI or MS-windoze (bah)) look-and-feel
+;;; including key bindings.
+
+;; Copyright (C) 1995-1997, 2000-2011 Free Software Foundation, Inc.
+
+;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
+;; Keywords: convenience emulations
+;; Created: 26 Sep 1995
+;; Obsolete-since: 24.1
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This package emulates the mark, copy, cut and paste look-and-feel of motif
+;; programs (which is the same as the MAC gui and (sorry for that) MS-Windows).
+;; It modifies the keybindings of the cursor keys and the next, prior,
+;; home and end keys. They will modify mark-active.
+;; You can still get the old behavior of cursor moving with the
+;; control sequences C-f, C-b, etc.
+;; This package uses transient-mark-mode and
+;; delete-selection-mode.
+;;
+;; In addition to that all key-bindings from the pc-mode are
+;; done here too (as suggested by RMS).
+;;
+;; As I found out after I finished the first version, s-region.el tries
+;; to do the same.... But my code is a little more complete and using
+;; delete-selection-mode is very important for the look-and-feel.
+;; Pete Forman <pete.forman@airgun.wg.waii.com> provided some motif
+;; compliant keybindings which I added. I had to modify them a little
+;; to add the -mark and -nomark functionality of cursor moving.
+;;
+;; Credits:
+;; Many thanks to all who made comments.
+;; Thanks to RMS and Ralf Muschall <prm@rz.uni-jena.de> for criticism.
+;; Kevin Cutts <cutts@ukraine.corp.mot.com> added the beginning-of-buffer
+;; and end-of-buffer functions which I modified a little.
+;; David Biesack <sasdjb@unx.sas.com> suggested some more cleanup.
+;; Thanks to Pete Forman <pete.forman@airgun.wg.waii.com>
+;; for additional motif keybindings.
+;; Thanks to jvromans@squirrel.nl (Johan Vromans) for a bug report
+;; concerning setting of this-command.
+;; Dan Nicolaescu <done@ece.arizona.ro> suggested suppressing the
+;; scroll-up/scroll-down error.
+;; Eli Barzilay (eli@cs.bgu.ac.il) suggested the sexps functions and
+;; keybindings.
+;;
+;; Ok, some details about the idea of PC Selection mode:
+;;
+;; o The standard keys for moving around (right, left, up, down, home, end,
+;; prior, next, called "move-keys" from now on) will always de-activate
+;; the mark.
+;; o If you press "Shift" together with the "move-keys", the region
+;; you pass along is activated
+;; o You have the copy, cut and paste functions (as in many other programs)
+;; which will operate on the active region
+;; It was not possible to bind them to C-v, C-x and C-c for obvious
+;; emacs reasons.
+;; They will be bound according to the "old" behavior to S-delete (cut),
+;; S-insert (paste) and C-insert (copy). These keys do the same in many
+;; other programs.
+;;
+
+;;; Code:
+
+;; Customization:
+(defgroup pc-select nil
+ "Emulate pc bindings."
+ :prefix "pc-select"
+ :group 'emulations)
+
+(define-obsolete-variable-alias 'pc-select-override-scroll-error
+ 'scroll-error-top-bottom
+ "24.1")
+(defcustom pc-select-override-scroll-error t
+ "Non-nil means don't generate error on scrolling past edge of buffer.
+This variable applies in PC Selection mode only.
+The scroll commands normally generate an error if you try to scroll
+past the top or bottom of the buffer. This is annoying when selecting
+text with these commands. If you set this variable to non-nil, these
+errors are suppressed."
+ :type 'boolean
+ :group 'pc-select)
+
+(defcustom pc-select-selection-keys-only nil
+ "Non-nil means only bind the basic selection keys when started.
+Other keys that emulate pc-behavior will be untouched.
+This gives mostly Emacs-like behavior with only the selection keys enabled."
+ :type 'boolean
+ :group 'pc-select)
+
+(defcustom pc-select-meta-moves-sexps nil
+ "Non-nil means move sexp-wise with Meta key, otherwise move word-wise."
+ :type 'boolean
+ :group 'pc-select)
+
+(defcustom pc-selection-mode-hook nil
+ "The hook to run when PC Selection mode is toggled."
+ :type 'hook
+ :group 'pc-select)
+
+(defvar pc-select-saved-settings-alist nil
+ "The values of the variables before PC Selection mode was toggled on.
+When PC Selection mode is toggled on, it sets quite a few variables
+for its own purposes. This alist holds the original values of the
+variables PC Selection mode had set, so that these variables can be
+restored to their original values when PC Selection mode is toggled off.")
+
+(defvar pc-select-map nil
+ "The keymap used as the global map when PC Selection mode is on." )
+
+(defvar pc-select-saved-global-map nil
+ "The global map that was in effect when PC Selection mode was toggled on.")
+
+(defvar pc-select-key-bindings-alist nil
+ "This alist holds all the key bindings PC Selection mode sets.")
+
+(defvar pc-select-default-key-bindings nil
+ "These key bindings always get set by PC Selection mode.")
+
+(defvar pc-select-extra-key-bindings
+ ;; The following keybindings are for standard ISO keyboards
+ ;; as they are used with IBM compatible PCs, IBM RS/6000,
+ ;; MACs, many X-Stations and probably more.
+ '(;; Commented out since it's been standard at least since Emacs-21.
+ ;;([S-insert] . yank)
+ ;;([C-insert] . copy-region-as-kill)
+ ;;([S-delete] . kill-region)
+
+ ;; The following bindings are useful on Sun Type 3 keyboards
+ ;; They implement the Get-Delete-Put (copy-cut-paste)
+ ;; functions from sunview on the L6, L8 and L10 keys
+ ;; Sam Steingold <sds@gnu.org> says that f16 is copy and f18 is paste.
+ ([f16] . copy-region-as-kill)
+ ([f18] . yank)
+ ([f20] . kill-region)
+
+ ;; The following bindings are from Pete Forman.
+ ([f6] . other-window) ; KNextPane F6
+ ([C-delete] . kill-line) ; KEraseEndLine cDel
+ ("\M-\d" . undo) ; KUndo aBS
+
+ ;; The following binding is taken from pc-mode.el
+ ;; as suggested by RMS.
+ ;; I only used the one that is not covered above.
+ ([C-M-delete] . kill-sexp)
+ ;; Next line proposed by Eli Barzilay
+ ([C-escape] . electric-buffer-list))
+ "Key bindings to set only if `pc-select-selection-keys-only' is nil.")
+
+(defvar pc-select-meta-moves-sexps-key-bindings
+ '((([M-right] . forward-sexp)
+ ([M-left] . backward-sexp))
+ (([M-right] . forward-word)
+ ([M-left] . backward-word)))
+ "The list of key bindings controlled by `pc-select-meta-moves-sexp'.
+The bindings in the car of this list get installed if
+`pc-select-meta-moves-sexp' is t, the bindings in the cadr of this
+list get installed otherwise.")
+
+;; This is for tty. We don't turn on normal-erase-is-backspace,
+;; but bind keys as pc-selection-mode did before
+;; normal-erase-is-backspace was invented, to keep us back
+;; compatible.
+(defvar pc-select-tty-key-bindings
+ '(([delete] . delete-char) ; KDelete Del
+ ([C-backspace] . backward-kill-word))
+ "The list of key bindings controlled by `pc-select-selection-keys-only'.
+These key bindings get installed when running in a tty, but only if
+`pc-select-selection-keys-only' is nil.")
+
+(defvar pc-select-old-M-delete-binding nil
+ "Holds the old mapping of [M-delete] in the `function-key-map'.
+This variable holds the value associated with [M-delete] in the
+`function-key-map' before PC Selection mode had changed that
+association.")
+
+;;;;
+;; misc
+;;;;
+
+(provide 'pc-select)
+
+(defun pc-select-define-keys (alist keymap)
+ "Make KEYMAP have the key bindings specified in ALIST."
+ (let ((lst alist))
+ (while lst
+ (define-key keymap (caar lst) (cdar lst))
+ (setq lst (cdr lst)))))
+
+(defun pc-select-restore-keys (alist keymap saved-map)
+ "Use ALIST to restore key bindings from SAVED-MAP into KEYMAP.
+Go through all the key bindings in ALIST, and, for each key
+binding, if KEYMAP and ALIST still agree on the key binding,
+restore the previous value of that key binding from SAVED-MAP."
+ (let ((lst alist))
+ (while lst
+ (when (equal (lookup-key keymap (caar lst)) (cdar lst))
+ (define-key keymap (caar lst) (lookup-key saved-map (caar lst))))
+ (setq lst (cdr lst)))))
+
+(defmacro pc-select-add-to-alist (alist var val)
+ "Ensure that ALIST contains the cons cell (VAR . VAL).
+If a cons cell whose car is VAR is already on the ALIST, update the
+cdr of that cell with VAL. Otherwise, make a new cons cell
+\(VAR . VAL), and prepend it onto ALIST."
+ (let ((elt (make-symbol "elt")))
+ `(let ((,elt (assq ',var ,alist)))
+ (if ,elt
+ (setcdr ,elt ,val)
+ (setq ,alist (cons (cons ',var ,val) ,alist))))))
+
+(defmacro pc-select-save-and-set-var (var newval)
+ "Set VAR to NEWVAL; save the old value.
+The old value is saved on the `pc-select-saved-settings-alist'."
+ `(when (boundp ',var)
+ (pc-select-add-to-alist pc-select-saved-settings-alist ,var ,var)
+ (setq ,var ,newval)))
+
+(defmacro pc-select-save-and-set-mode (mode &optional arg mode-var)
+ "Call the function MODE; save the old value of the variable MODE.
+MODE is presumed to be a function which turns on a minor mode. First,
+save the value of the variable MODE on `pc-select-saved-settings-alist'.
+Then, if ARG is specified, call MODE with ARG, otherwise call it with
+nil as an argument. If MODE-VAR is specified, save the value of the
+variable MODE-VAR (instead of the value of the variable MODE) on
+`pc-select-saved-settings-alist'."
+ (unless mode-var (setq mode-var mode))
+ `(when (fboundp ',mode)
+ (pc-select-add-to-alist pc-select-saved-settings-alist
+ ,mode-var ,mode-var)
+ (,mode ,arg)))
+
+(defmacro pc-select-restore-var (var)
+ "Restore the previous value of the variable VAR.
+Look up VAR's previous value in `pc-select-saved-settings-alist', and,
+if the value is found, set VAR to that value."
+ (let ((elt (make-symbol "elt")))
+ `(let ((,elt (assq ',var pc-select-saved-settings-alist)))
+ (unless (null ,elt)
+ (setq ,var (cdr ,elt))))))
+
+(defmacro pc-select-restore-mode (mode)
+ "Restore the previous state (either on or off) of the minor mode MODE.
+Look up the value of the variable MODE on `pc-select-saved-settings-alist'.
+If the value is non-nil, call the function MODE with an argument of
+1, otherwise call it with an argument of -1."
+ (let ((elt (make-symbol "elt")))
+ `(when (fboundp ',mode)
+ (let ((,elt (assq ',mode pc-select-saved-settings-alist)))
+ (unless (null ,elt)
+ (,mode (if (cdr ,elt) 1 -1)))))))
+
+
+;;;###autoload
+(define-minor-mode pc-selection-mode
+ "Change mark behavior to emulate Motif, Mac or MS-Windows cut and paste style.
+
+This mode enables Delete Selection mode and Transient Mark mode.
+
+The arrow keys (and others) are bound to new functions
+which modify the status of the mark.
+
+The ordinary arrow keys disable the mark.
+The shift-arrow keys move, leaving the mark behind.
+
+C-LEFT and C-RIGHT move back or forward one word, disabling the mark.
+S-C-LEFT and S-C-RIGHT move back or forward one word, leaving the mark behind.
+
+M-LEFT and M-RIGHT move back or forward one word or sexp, disabling the mark.
+S-M-LEFT and S-M-RIGHT move back or forward one word or sexp, leaving the mark
+behind. To control whether these keys move word-wise or sexp-wise set the
+variable `pc-select-meta-moves-sexps' after loading pc-select.el but before
+turning PC Selection mode on.
+
+C-DOWN and C-UP move back or forward a paragraph, disabling the mark.
+S-C-DOWN and S-C-UP move back or forward a paragraph, leaving the mark behind.
+
+HOME moves to beginning of line, disabling the mark.
+S-HOME moves to beginning of line, leaving the mark behind.
+With Ctrl or Meta, these keys move to beginning of buffer instead.
+
+END moves to end of line, disabling the mark.
+S-END moves to end of line, leaving the mark behind.
+With Ctrl or Meta, these keys move to end of buffer instead.
+
+PRIOR or PAGE-UP scrolls and disables the mark.
+S-PRIOR or S-PAGE-UP scrolls and leaves the mark behind.
+
+S-DELETE kills the region (`kill-region').
+S-INSERT yanks text from the kill ring (`yank').
+C-INSERT copies the region into the kill ring (`copy-region-as-kill').
+
+In addition, certain other PC bindings are imitated (to avoid this, set
+the variable `pc-select-selection-keys-only' to t after loading pc-select.el
+but before calling PC Selection mode):
+
+ F6 other-window
+ DELETE delete-char
+ C-DELETE kill-line
+ M-DELETE kill-word
+ C-M-DELETE kill-sexp
+ C-BACKSPACE backward-kill-word
+ M-BACKSPACE undo"
+ ;; FIXME: bring pc-bindings-mode here ?
+ nil nil nil
+
+ :group 'pc-select
+ :global t
+
+ (if pc-selection-mode
+ (if (null pc-select-key-bindings-alist)
+ (progn
+ (setq pc-select-saved-global-map (copy-keymap (current-global-map)))
+ (setq pc-select-key-bindings-alist
+ (append pc-select-default-key-bindings
+ (if pc-select-selection-keys-only
+ nil
+ pc-select-extra-key-bindings)
+ (if pc-select-meta-moves-sexps
+ (car pc-select-meta-moves-sexps-key-bindings)
+ (cadr pc-select-meta-moves-sexps-key-bindings))
+ (if (or pc-select-selection-keys-only
+ (eq window-system 'x)
+ (memq system-name '(ms-dos windows-nt)))
+ nil
+ pc-select-tty-key-bindings)))
+
+ (pc-select-define-keys pc-select-key-bindings-alist
+ (current-global-map))
+
+ (unless (or pc-select-selection-keys-only
+ (eq window-system 'x)
+ (memq system-name '(ms-dos windows-nt)))
+ ;; it is not clear that we need the following line
+ ;; I hope it doesn't do too much harm to leave it in, though...
+ (setq pc-select-old-M-delete-binding
+ (lookup-key function-key-map [M-delete]))
+ (define-key function-key-map [M-delete] [?\M-d]))
+
+ (when (and (not pc-select-selection-keys-only)
+ (or (eq window-system 'x)
+ (memq system-name '(ms-dos windows-nt)))
+ (fboundp 'normal-erase-is-backspace-mode))
+ (pc-select-save-and-set-mode normal-erase-is-backspace-mode 1
+ normal-erase-is-backspace))
+ ;; the original author also had this above:
+ ;; (setq-default normal-erase-is-backspace t)
+ ;; However, the documentation for the variable says that
+ ;; "setting it with setq has no effect", so I'm removing it.
+
+ (pc-select-save-and-set-var highlight-nonselected-windows nil)
+ (pc-select-save-and-set-var transient-mark-mode t)
+ (pc-select-save-and-set-var shift-select-mode t)
+ (pc-select-save-and-set-var mark-even-if-inactive t)
+ (pc-select-save-and-set-mode delete-selection-mode 1))
+ ;;else
+ ;; If the user turned on pc-selection-mode a second time
+ ;; do not clobber the values of the variables that were
+ ;; saved from before pc-selection mode was activated --
+ ;; just make sure the values are the way we like them.
+ (pc-select-define-keys pc-select-key-bindings-alist
+ (current-global-map))
+ (unless (or pc-select-selection-keys-only
+ (eq window-system 'x)
+ (memq system-name '(ms-dos windows-nt)))
+ ;; it is not clear that we need the following line
+ ;; I hope it doesn't do too much harm to leave it in, though...
+ (define-key function-key-map [M-delete] [?\M-d]))
+ (when (and (not pc-select-selection-keys-only)
+ (or (eq window-system 'x)
+ (memq system-name '(ms-dos windows-nt)))
+ (fboundp 'normal-erase-is-backspace-mode))
+ (normal-erase-is-backspace-mode 1))
+ (setq highlight-nonselected-windows nil)
+ (setq transient-mark-mode t)
+ (setq mark-even-if-inactive t)
+ (delete-selection-mode 1))
+ ;;else
+ (when pc-select-key-bindings-alist
+ (when (and (not pc-select-selection-keys-only)
+ (or (eq window-system 'x)
+ (memq system-name '(ms-dos windows-nt))))
+ (pc-select-restore-mode normal-erase-is-backspace-mode))
+
+ (pc-select-restore-keys
+ pc-select-key-bindings-alist (current-global-map)
+ pc-select-saved-global-map)
+
+ (pc-select-restore-var highlight-nonselected-windows)
+ (pc-select-restore-var transient-mark-mode)
+ (pc-select-restore-var shift-select-mode)
+ (pc-select-restore-var mark-even-if-inactive)
+ (pc-select-restore-mode delete-selection-mode)
+ (and pc-select-old-M-delete-binding
+ (define-key function-key-map [M-delete]
+ pc-select-old-M-delete-binding))
+ (setq pc-select-key-bindings-alist nil
+ pc-select-saved-settings-alist nil))))
+(make-obsolete 'pc-selection-mode 'delete-selection-mode "24.1")
+
+;;; 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."
;; We're looking at <<STRING, so we add "^STRING$" to the syntactic
;; font-lock keywords to detect the end of this here document.
(let ((str (replace-regexp-in-string "['\"]" "" string))
- (ppss (save-excursion (syntax-ppss (1- (point))))))
+ (ppss (save-excursion (syntax-ppss eol))))
(if (nth 4 ppss)
;; The \n not only starts the heredoc but also closes a comment.
;; Let's close the comment just before the \n.
- (put-text-property (1- (point)) (point) 'syntax-table '(12))) ;">"
- (if (or (nth 5 ppss) (> (count-lines start (point)) 1))
+ (put-text-property (1- eol) eol 'syntax-table '(12))) ;">"
+ (if (or (nth 5 ppss) (> (count-lines start eol) 1))
;; If the sh-escaped-line-re part of sh-here-doc-open-re has matched
;; several lines, make sure we refontify them together.
;; 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."
;; Don't bother fixing it now, but place a multiline property so
;; that when jit-lock-context-* refontifies the rest of the
;; buffer, it also refontifies the current line with it.
- (put-text-property start (point) 'syntax-multiline t))
+ (put-text-property start (1+ eol) 'syntax-multiline t))
(put-text-property eol (1+ eol) 'sh-here-doc-marker str)
(prog1 sh-here-doc-syntax
(goto-char (+ 2 start))))))
@@ -1083,33 +1083,33 @@ subshells can nest."
(defun sh-syntax-propertize-function (start end)
(goto-char start)
(sh-syntax-propertize-here-doc end)
- (funcall
- (syntax-propertize-rules
+ (funcall
+ (syntax-propertize-rules
(sh-here-doc-open-re
(2 (sh-font-lock-open-heredoc
(match-beginning 0) (match-string 1) (match-beginning 2))))
("\\s|" (0 (prog1 nil (sh-syntax-propertize-here-doc end))))
- ;; A `#' begins a comment when it is unquoted and at the
- ;; beginning of a word. In the shell, words are separated by
- ;; metacharacters. The list of special chars is taken from
- ;; the single-unix spec of the shell command language (under
- ;; `quoting') but with `$' removed.
- ("[^|&;<>()`\\\"' \t\n]\\(#+\\)" (1 "_"))
- ;; In a '...' the backslash is not escaping.
- ("\\(\\\\\\)'" (1 (sh-font-lock-backslash-quote)))
- ;; Make sure $@ and $? are correctly recognized as sexps.
- ("\\$\\([?@]\\)" (1 "_"))
- ;; Distinguish the special close-paren in `case'.
- (")" (0 (sh-font-lock-paren (match-beginning 0))))
- ;; Highlight (possibly nested) subshells inside "" quoted
- ;; regions correctly.
+ ;; A `#' begins a comment when it is unquoted and at the
+ ;; beginning of a word. In the shell, words are separated by
+ ;; metacharacters. The list of special chars is taken from
+ ;; the single-unix spec of the shell command language (under
+ ;; `quoting') but with `$' removed.
+ ("[^|&;<>()`\\\"' \t\n]\\(#+\\)" (1 "_"))
+ ;; In a '...' the backslash is not escaping.
+ ("\\(\\\\\\)'" (1 (sh-font-lock-backslash-quote)))
+ ;; Make sure $@ and $? are correctly recognized as sexps.
+ ("\\$\\([?@]\\)" (1 "_"))
+ ;; Distinguish the special close-paren in `case'.
+ (")" (0 (sh-font-lock-paren (match-beginning 0))))
+ ;; Highlight (possibly nested) subshells inside "" quoted
+ ;; regions correctly.
("\"\\(?:\\(?:[^\\\"]\\|\\)*?[^\\]\\(?:\\\\\\\\\\)*\\)??\\(\\$(\\|`\\)"
- (1 (ignore
- ;; Save excursion because we want to also apply other
- ;; syntax-propertize rules within the affected region.
+ (1 (ignore
+ ;; Save excursion because we want to also apply other
+ ;; syntax-propertize rules within the affected region.
(if (nth 8 (syntax-ppss))
(goto-char (1+ (match-beginning 0)))
- (save-excursion
+ (save-excursion
(sh-font-lock-quoted-subshell end)))))))
(point) end))
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 450ede33a50..d1cd1c04e00 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,15 @@
+2011-02-10 Glenn Morris <rgm@gnu.org>
+
+ * lwlib-Xaw.c, lwlib-Xlw.c, lwlib-Xm.c, lwlib-utils.c, lwlib.c:
+ * xlwmenu.c: Standardize on <> for includes from the ../src directory.
+
+2011-02-09 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (@SET_MAKE@): New, set by configure.
+ (globals): New variable and rule.
+ (lwlib-utils.o, lwlib.o, lwlib-Xlw.o, lwlib-Xaw.o, lwlib-Xm.o)
+ (xlwmenu.o): Add dependency on src/globals.h.
+
2011-01-31 Jan Djärv <jan.h.d@swipnet.se>
* 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 @@
srcdir=@srcdir@
VPATH=@srcdir@
+@SET_MAKE@
C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
C_SWITCH_X_SYSTEM=@C_SWITCH_X_SYSTEM@
C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
@@ -65,16 +66,22 @@ liblw.a: $(OBJS)
$(AR) $@ $(OBJS)
$(RANLIB) $@
+## lisp.h includes this.
+globals = ../src/globals.h
+
+$(globals):
+ cd ../src; $(MAKE) $(MFLAGS) globals.h
+
# Depend on Makefile so that we recompile if TOOLKIT_DEFINES changes.
lwlib.o: $(srcdir)/lwlib.c Makefile
$(CC) -c $(CPPFLAGS) $(TOOLKIT_DEFINES) $(ALL_CFLAGS) $(srcdir)/lwlib.c
-lwlib-utils.o: lwlib-utils.c lwlib-utils.h
-lwlib.o: lwlib.c lwlib.h lwlib-int.h lwlib-Xaw.h lwlib-Xlw.h
-lwlib-Xlw.o: lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h
-lwlib-Xaw.o: lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h
-lwlib-Xm.o: lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h
-xlwmenu.o: xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h
+lwlib-utils.o: $(globals) lwlib-utils.c lwlib-utils.h
+lwlib.o: $(globals) lwlib.c lwlib.h lwlib-int.h lwlib-Xaw.h lwlib-Xlw.h
+lwlib-Xlw.o: $(globals) lwlib-Xlw.c lwlib.h lwlib-int.h lwlib-Xlw.h
+lwlib-Xaw.o: $(globals) lwlib-Xaw.c lwlib-Xaw.h lwlib.h lwlib-int.h
+lwlib-Xm.o: $(globals) lwlib-Xm.c lwlib-Xm.h lwlib.h lwlib-int.h lwlib-utils.h
+xlwmenu.o: $(globals) xlwmenu.c xlwmenu.h lwlib.h xlwmenuP.h
mostlyclean:
$(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 @@
/* The lwlib interface to Athena widgets.
+
Copyright (C) 1993 Chuck Thompson <cthomp@cs.uiuc.edu>
Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc.
@@ -27,7 +28,7 @@ Boston, MA 02110-1301, USA. */
#include <setjmp.h>
#include <ctype.h>
-#include "../src/lisp.h"
+#include <lisp.h>
#include "lwlib-Xaw.h"
@@ -833,4 +834,3 @@ xaw_creation_table [] =
{"main", xaw_create_main},
{NULL, NULL}
};
-
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 @@
/* The lwlib interface to "xlwmenu" menus.
- Copyright (C) 1992 Lucid, Inc.
- Copyright (C) 1994, 2000-2011 Free Software Foundation, Inc.
+
+Copyright (C) 1992 Lucid, Inc.
+Copyright (C) 1994, 2000-2011 Free Software Foundation, Inc.
This file is part of the Lucid Widget Library.
@@ -24,7 +25,7 @@ Boston, MA 02110-1301, USA. */
#endif
#include <setjmp.h>
-#include "lisp.h"
+#include <lisp.h>
#include "lwlib-Xlw.h"
#include <X11/StringDefs.h>
@@ -272,4 +273,3 @@ xlw_destroy_instance (widget_instance *instance)
if (instance->widget)
XtDestroyWidget (instance->widget);
}
-
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. */
#include <X11/CoreP.h>
#include <X11/CompositeP.h>
-#include "../src/lisp.h"
+#include <lisp.h>
#include "lwlib-Xm.h"
#include "lwlib-utils.h"
@@ -1956,4 +1956,3 @@ xm_manage_resizing (Widget w, Boolean flag)
{
XtVaSetValues (w, XtNallowShellResize, flag, NULL);
}
-
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 @@
/* Defines some widget utility functions.
+
Copyright (C) 1992 Lucid, Inc.
Copyright (C) 1994, 2001-2011 Free Software Foundation, Inc.
@@ -31,7 +32,7 @@ Boston, MA 02110-1301, USA. */
#undef rindex
#include <setjmp.h>
-#include "../src/lisp.h"
+#include <lisp.h>
#include <X11/Xatom.h>
#include <X11/IntrinsicP.h>
@@ -173,4 +174,3 @@ XtSafelyDestroyWidget (Widget widget)
abort ();
#endif
}
-
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 @@
/* A general interface to the widgets of different toolkits.
+
Copyright (C) 1992, 1993 Lucid, Inc.
Copyright (C) 1994-1996, 1999-2011 Free Software Foundation, Inc.
@@ -24,7 +25,7 @@ Boston, MA 02110-1301, USA. */
#endif
#include <setjmp.h>
-#include "../src/lisp.h"
+#include <lisp.h>
#include <sys/types.h>
#include <stdio.h>
@@ -1418,4 +1419,3 @@ lw_separator_p (const char *label, enum menu_separator *type, int motif_p)
return separator_p;
}
-
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 @@
/* Implements a lightweight menubar widget.
+
Copyright (C) 1992 Lucid, Inc.
Copyright (C) 1994-1995, 1997, 1999-2011 Free Software Foundation, Inc.
@@ -26,7 +27,7 @@ Boston, MA 02110-1301, USA. */
#endif
#include <setjmp.h>
-#include "lisp.h"
+#include <lisp.h>
#include <stdio.h>
#include <ctype.h>
@@ -56,7 +57,7 @@ extern int gray_bitmap_width;
extern int gray_bitmap_height;
extern char *gray_bitmap_bits;
-#include "xterm.h"
+#include <xterm.h>
#else /* not emacs */
@@ -2689,4 +2690,3 @@ pop_up_menu (XlwMenuWidget mw, XButtonPressedEvent *event)
((XMotionEvent*)event)->is_hint = 0;
handle_motion_event (mw, (XMotionEvent*)event);
}
-
diff --git a/nt/ChangeLog b/nt/ChangeLog
index e7f005cce61..41273114429 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,10 @@
+2011-02-09 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (bootstrap-nmake, bootstrap-gmake): Make the
+ "make-docfile" target in lib-src, before bootstrapping the src
+ directory. Needed since building in src needs to run make-docfile
+ to produce globals.h.
+
2011-02-04 Eli Zaretskii <eliz@gnu.org>
* 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
cd ..\src
$(MAKE) $(MFLAGS) clean
cd ..\lib-src
- $(MAKE) $(MFLAGS) clean
+ $(MAKE) $(MFLAGS) clean make-docfile
cd ..\lib
$(MAKE) $(MFLAGS) clean all
cd ..\src
@@ -177,7 +177,7 @@ bootstrap-nmake: addsection cmdproxy
bootstrap-gmake: addsection cmdproxy
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean make-docfile
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean all
$(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap
$(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 @@
-2011-02-08 Paul Eggert <eggert@cs.ucla.edu>
+2011-02-10 Paul Eggert <eggert@cs.ucla.edu>
Import getloadavg module from gnulib.
* deps.mk (getloadavg.o): Remove; gnulib now does this.
@@ -8,6 +8,47 @@
* src/s/netbsd.h (HAVE_GETLOADAVG): Likewise.
* config.in: Regenerate.
+2011-02-10 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (really-lwlib): Depend on globals.h, for parallel builds.
+
+2011-02-09 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (GLOBAL_SOURCES, SOME_MACHINE_OBJECTS, obj):
+ New macros.
+ (globals.h, gl-stamp): New targets.
+ (clean): Clean gl-stamp and globals.h.
+
+2011-02-09 Andreas Schwab <schwab@linux-m68k.org>
+
+ * Makefile.in (gl-stamp): Create globals.h here.
+ (globals.h): Don't do it here.
+ (mostlyclean): Clean globals.h and gl-stamp.
+
+2011-02-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.in ($(otherobj)): Depend on globals.h.
+ Otherwise 'make -j10' failed on my host, because the build lacked
+ necessary dependencies, e.g., vm-limit.o depends on globals.h.
+
+2011-02-08 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in (NS_OBJC_OBJ): New variable.
+ (base_obj): Rename from 'obj'.
+ (obj): New variable.
+ (globals.h, gl-stamp, $(obj)): New targets.
+ (GLOBAL_SOURCES): New variable.
+ * globals.h: Remove.
+ * nsselect.m (Vselection_alist): Define. Reverts part of
+ 2011-01-19T22:11:33Z!jan.h.d@swipnet.se.
+ * buffer.c: Don't use "no_cell" for name of kill-buffer-hook's
+ variable.
+ * xselect.c (Vselection_alist): Define. Reverts part of 2011-01-19T23:32:42Z!eggert@cs.ucla.edu.
+
+2011-02-08 Kenichi Handa <handa@m17n.org>
+
+ * font.c (Ffont_get): Do not cache :otf value.
+
2011-02-07 Paul Eggert <eggert@cs.ucla.edu>
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@
## This holds any special options for linking temacs only (ie, not
## used by configure). Not used elsewhere because it sometimes
-## contains options that have to do with using Emacs's crt0,
+## contains options that have to do with using Emacs's crt0,
## which are only good with temacs.
LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYSTEM_TEMACS@
@@ -190,7 +190,7 @@ OLDXMENU=@OLDXMENU@
## If HAVE_X11 && !USE_GTK, $(OLDXMENU) ../src/$(OLDXMENU); else empty.
## We use stamp-xmenu with these two deps to both ensure that lwlib
## gets remade based on its dependencies in its own makefile,
-## and remake temacs if lwlib gets changed by this.
+## and remake temacs if lwlib gets changed by this.
OLDXMENU_DEPS=@OLDXMENU_DEPS@
## 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 \
$(lispsource)/dos-fns.elc $(lispsource)/dos-w32.elc $(lispsource)/dos-vars.elc \
$(lispsource)/term/internal.elc $(lispsource)/term/pc-win.elc
## $MSDOS_SUPPORT_REAL if MSDOS.
-MSDOS_SUPPORT =
+MSDOS_SUPPORT =
ns_appdir=@ns_appdir@
ns_appbindir=@ns_appbindir@
ns_appsrc=@ns_appsrc@
NS_OBJ=@NS_OBJ@
+NS_OBJC_OBJ=@NS_OBJC_OBJ@
NS_SUPPORT=@NS_SUPPORT@
## Only set if NS_IMPL_GNUSTEP.
GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@
@@ -341,7 +342,7 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
## lastfile must follow all files whose initialized data areas should
## be dumped as pure by dump-emacs.
-obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
+base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \
cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
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 \
region-cache.o sound.o atimer.o \
doprnt.o intervals.o textprop.o composite.o md5.o xml.o \
$(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ)
+obj = $(base_obj) $(NS_OBJC_OBJ)
## Object files used on some machine or other.
## These go in the DOC file on all machines in case they are needed.
@@ -645,6 +647,18 @@ $(libsrc)/make-docfile$(EXEEXT):
buildobj.h: Makefile
echo "#define BUILDOBJ \"$(obj) $(otherobj) " "\"" > buildobj.h
+globals.h: gl-stamp; @true
+
+GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m)
+
+gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES)
+ @rm -f gl-tmp
+ $(libsrc)/make-docfile -d $(srcdir) -g $(SOME_MACHINE_OBJECTS) $(obj) > gl-tmp
+ $(srcdir)/../move-if-change gl-tmp globals.h
+ echo timestamp > $@
+
+$(obj) $(otherobj): globals.h
+
$(lib)/libgnu.a: $(config_h)
cd $(lib) && $(MAKE) libgnu.a
@@ -655,7 +669,7 @@ temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) $(lib)/libgnu.
## The following oldxmenu-related rules are only (possibly) used if
## HAVE_X11 && !USE_GTK, but there is no harm in always defining them
## (provided we take a little care that OLDXMENU is never empty).
-really-lwlib:
+really-lwlib: globals.h
cd $(lwlibdir); $(MAKE) $(MFLAGS) \
CC='$(CC)' CFLAGS='$(CFLAGS)' MAKE='$(MAKE)'
@true # make -t should not create really-lwlib.
@@ -699,6 +713,7 @@ mostlyclean:
rm -f ../etc/DOC
rm -f bootstrap-emacs$(EXEEXT) emacs-$(version)$(EXEEXT)
rm -f buildobj.h
+ rm -f globals.h gl-stamp
clean: mostlyclean
rm -f emacs-*.*.*$(EXEEXT) emacs$(EXEEXT)
-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. */)
}
/*
- DEFVAR_LISP ("kill-buffer-hook", no_cell, "\
+ DEFVAR_LISP ("kill-buffer-hook", ..., "\
Hook to be run (by `run-hooks', which see) when a buffer is killed.\n\
The buffer being killed will be current while the hook is running.\n\
See `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. */)
val = fontp->driver->otf_capability (fontp);
else
val = Fcons (Qnil, Qnil);
- font_put_extra (font, QCotf, val);
}
else
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 @@
-/* Declare all global lisp variables.
-
- Copyright (C) 2011 Free Software Foundation, Inc.
-
- This file is part of GNU Emacs.
-
- GNU Emacs is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- GNU Emacs is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
-
-struct emacs_globals
-{
-
- /* Count the amount of consing of various sorts of space. */
- EMACS_INT f_cons_cells_consed;
-
- EMACS_INT f_floats_consed;
-
- EMACS_INT f_vector_cells_consed;
-
- EMACS_INT f_symbols_consed;
-
- EMACS_INT f_string_chars_consed;
-
- EMACS_INT f_misc_objects_consed;
-
- EMACS_INT f_intervals_consed;
-
- EMACS_INT f_strings_consed;
-
- /* Minimum number of bytes of consing since GC before next GC. */
- EMACS_INT f_gc_cons_threshold;
-
- Lisp_Object f_Vgc_cons_percentage;
-
- /* Nonzero means display messages at beginning and end of GC. */
- int f_garbage_collection_messages;
-
- /* Non-nil means defun should do purecopy on the function definition. */
- Lisp_Object f_Vpurify_flag;
-
- /* Non-nil means we are handling a memory-full error. */
- Lisp_Object f_Vmemory_full;
-
- /* Total number of bytes allocated in pure storage. */
- EMACS_INT f_pure_bytes_used;
-
- /* Pre-computed signal argument for use when memory is exhausted. */
- Lisp_Object f_Vmemory_signal_data;
-
- Lisp_Object f_Vpost_gc_hook;
-
- Lisp_Object f_Vgc_elapsed;
-
- EMACS_INT f_gcs_done;
-
- /* Functions to call before and after each text change. */
- Lisp_Object f_Vbefore_change_functions;
-
- Lisp_Object f_Vafter_change_functions;
-
- Lisp_Object f_Vtransient_mark_mode;
-
- /* t means ignore all read-only text properties.
- A list means ignore such a property if its value is a member of the list.
- Any non-nil value means ignore buffer-read-only. */
- Lisp_Object f_Vinhibit_read_only;
-
- /* List of functions to call that can query about killing a buffer.
- If any of these functions returns nil, we don't kill it. */
- Lisp_Object f_Vkill_buffer_query_functions;
-
- Lisp_Object f_Vchange_major_mode_hook;
-
- /* List of functions to call before changing an unmodified buffer. */
- Lisp_Object f_Vfirst_change_hook;
-
- /* If nonzero, all modification hooks are suppressed. */
- int f_inhibit_modification_hooks;
-
- Lisp_Object f_Vbyte_code_meter;
-
- int f_byte_metering_on;
-
- Lisp_Object f_Vcurrent_prefix_arg;
-
- Lisp_Object f_Vcommand_history;
-
- Lisp_Object f_Vcommand_debug_status;
-
- /* Non-nil means treat the mark as active
- even if mark_active is 0. */
- Lisp_Object f_Vmark_even_if_inactive;
-
- Lisp_Object f_Vmouse_leave_buffer_hook;
-
- Lisp_Object f_Vexec_path;
- Lisp_Object f_Vexec_directory;
- Lisp_Object f_Vexec_suffixes;
-
- Lisp_Object f_Vdata_directory;
- Lisp_Object f_Vdoc_directory;
-
- Lisp_Object f_Vconfigure_info_directory;
- Lisp_Object f_Vshared_game_score_directory;
-
- Lisp_Object f_Vshell_file_name;
-
- Lisp_Object f_Vprocess_environment;
- Lisp_Object f_Vinitial_environment;
-
- /* Variables to determine word boundary. */
- Lisp_Object f_Vword_combining_categories;
- Lisp_Object f_Vword_separating_categories;
-
- /* This contains all code conversion map available to CCL. */
- Lisp_Object f_Vcode_conversion_map_vector;
-
- /* Alist of fontname patterns vs corresponding CCL program. */
- Lisp_Object f_Vfont_ccl_encoder_alist;
-
- /* Vector of registered hash tables for translation. */
- Lisp_Object f_Vtranslation_hash_table_vector;
-
- /* Vector of translation table ever defined.
- ID of a translation table is used to index this vector. */
- Lisp_Object f_Vtranslation_table_vector;
-
- /* A char-table for characters which may invoke auto-filling. */
- Lisp_Object f_Vauto_fill_chars;
-
- /* A char-table. An element is non-nil iff the corresponding
- character has a printable glyph. */
- Lisp_Object f_Vprintable_chars;
-
- /* A char-table. An elemnent is a column-width of the corresponding
- character. */
- Lisp_Object f_Vchar_width_table;
-
- /* A char-table. An element is a symbol indicating the direction
- property of corresponding character. */
- Lisp_Object f_Vchar_direction_table;
-
- /* Char table of scripts. */
- Lisp_Object f_Vchar_script_table;
-
- /* Alist of scripts vs representative characters. */
- Lisp_Object f_Vscript_representative_chars;
-
- Lisp_Object f_Vunicode_category_table;
-
- /* List of all charsets. This variable is used only from Emacs
- Lisp. */
- Lisp_Object f_Vcharset_list;
-
- Lisp_Object f_Vcharset_map_path;
-
- /* If nonzero, don't load charset maps. */
- int f_inhibit_load_charset_map;
-
- Lisp_Object f_Vcurrent_iso639_language;
-
- Lisp_Object f_Vpost_self_insert_hook;
-
- int f_coding_system_require_warning;
-
- Lisp_Object f_Vselect_safe_coding_system_function;
-
- /* Mnemonic string for each format of end-of-line. */
- Lisp_Object f_eol_mnemonic_unix;
- Lisp_Object f_eol_mnemonic_dos;
- Lisp_Object f_eol_mnemonic_mac;
-
- /* Mnemonic string to indicate format of end-of-line is not yet
- decided. */
- Lisp_Object f_eol_mnemonic_undecided;
-
- Lisp_Object f_Vcoding_system_list;
- Lisp_Object f_Vcoding_system_alist;
-
- /* Coding-system for reading files and receiving data from process. */
- Lisp_Object f_Vcoding_system_for_read;
-
- /* Coding-system for writing files and sending data to process. */
- Lisp_Object f_Vcoding_system_for_write;
-
- /* Coding-system actually used in the latest I/O. */
- Lisp_Object f_Vlast_coding_system_used;
-
- /* Set to non-nil when an error is detected while code conversion. */
- Lisp_Object f_Vlast_code_conversion_error;
-
- /* A vector of length 256 which contains information about special
- Latin codes (especially for dealing with Microsoft codes). */
- Lisp_Object f_Vlatin_extra_code_table;
-
- /* Flag to inhibit code conversion of end-of-line format. */
- int f_inhibit_eol_conversion;
-
- /* Flag to inhibit ISO2022 escape sequence detection. */
- int f_inhibit_iso_escape_detection;
-
- /* Flag to inhibit detection of binary files through null bytes. */
- int f_inhibit_null_byte_detection;
-
- /* Flag to make buffer-file-coding-system inherit from process-coding. */
- int f_inherit_process_coding_system;
-
- Lisp_Object f_Vfile_coding_system_alist;
-
- Lisp_Object f_Vprocess_coding_system_alist;
-
- Lisp_Object f_Vnetwork_coding_system_alist;
-
- Lisp_Object f_Vlocale_coding_system;
-
- /* Flag to tell if we look up translation table on character code
- conversion. */
- Lisp_Object f_Venable_character_translation;
-
- /* Standard translation table to look up on decoding (reading). */
- Lisp_Object f_Vstandard_translation_table_for_decode;
-
- /* Standard translation table to look up on encoding (writing). */
- Lisp_Object f_Vstandard_translation_table_for_encode;
-
- /* Alist of charsets vs revision number. */
- Lisp_Object f_Vcharset_revision_table;
-
- /* Default coding systems used for process I/O. */
- Lisp_Object f_Vdefault_process_coding_system;
-
- /* Char table for translating Quail and self-inserting input. */
- Lisp_Object f_Vtranslation_table_for_input;
-
- /* List of symbols `coding-category-xxx' ordered by priority. This
- variable is exposed to Emacs Lisp. */
- Lisp_Object f_Vcoding_category_list;
-
- /* Function to call to adjust composition. */
- Lisp_Object f_Vcompose_chars_after_function;
-
- Lisp_Object f_Vauto_composition_mode;
-
- Lisp_Object f_Vauto_composition_function;
-
- Lisp_Object f_Vcomposition_function_table;
-
- Lisp_Object f_Vmost_positive_fixnum;
- Lisp_Object f_Vmost_negative_fixnum;
-
- /* Registered buses. */
- Lisp_Object f_Vdbus_registered_buses;
-
- /* Hash table which keeps function definitions. */
- Lisp_Object f_Vdbus_registered_objects_table;
-
- /* Whether to debug D-Bus. */
- Lisp_Object f_Vdbus_debug;
-
- Lisp_Object f_Vcompletion_ignored_extensions;
-
- /* Non-zero means don't pause redisplay for pending input. (This is
- for debugging and for a future implementation of EDT-like
- scrolling. */
- int f_redisplay_dont_pause;
-
- /* If a number (float), check for user input every N seconds. */
- Lisp_Object f_Vredisplay_preemption_period;
-
- /* Lisp variable visible-bell; enables use of screen-flash instead of
- audible bell. */
- int f_visible_bell;
-
- /* Invert the color of the whole frame, at a low level. */
- int f_inverse_video;
-
- /* Line speed of the terminal. */
- EMACS_INT f_baud_rate;
-
- /* Either nil or a symbol naming the window system under which Emacs
- creates the first frame. */
- Lisp_Object f_Vinitial_window_system;
-
- /* Version number of X windows: 10, 11 or nil. */
- Lisp_Object f_Vwindow_system_version;
-
- /* Vector of glyph definitions. Indexed by glyph number, the contents
- are a string which is how to output the glyph.
-
- If Vglyph_table is nil, a glyph is output by using its low 8 bits
- as a character code.
-
- This is an obsolete feature that is no longer used. The variable
- is retained for compatibility. */
- Lisp_Object f_Vglyph_table;
-
- /* Display table to use for vectors that don't specify their own. */
- Lisp_Object f_Vstandard_display_table;
-
- /* Nonzero means reading single-character input with prompt so put
- cursor on mini-buffer after the prompt. Positive means at end of
- text in echo area; negative means at beginning of line. */
- int f_cursor_in_echo_area;
-
- Lisp_Object f_Vdoc_file_name;
-
- /* A list of files used to build this Emacs binary. */
- Lisp_Object f_Vbuild_files;
-
- /* country info */
- EMACS_INT f_dos_country_code;
-
- EMACS_INT f_dos_codepage;
-
- EMACS_INT f_dos_timezone_offset;
-
- EMACS_INT f_dos_decimal_point;
-
- EMACS_INT f_dos_keyboard_layout;
-
- EMACS_INT f_dos_hyper_key;
-
- EMACS_INT f_dos_super_key;
-
- EMACS_INT f_dos_keypad_mode;
-
- Lisp_Object f_Vdos_version;
-
- Lisp_Object f_Vdos_display_scancodes;
-
- Lisp_Object f_Vdos_windows_version;
-
- Lisp_Object f_Vbuffer_access_fontify_functions;
-
- Lisp_Object f_Vbuffer_access_fontified_property;
-
- /* Non-nil means don't stop at field boundary in text motion commands. */
- Lisp_Object f_Vinhibit_field_text_motion;
-
- /* Some static data, and a function to initialize it for each run */
- Lisp_Object f_Vsystem_name;
-
- Lisp_Object f_Vuser_real_login_name;
-
- Lisp_Object f_Vuser_full_name;
-
- Lisp_Object f_Vuser_login_name;
-
- Lisp_Object f_Voperating_system_release;
-
- /* Command line args from shell, as list of strings. */
- Lisp_Object f_Vcommand_line_args;
-
- /* The name under which Emacs was invoked, with any leading directory
- names discarded. */
- Lisp_Object f_Vinvocation_name;
-
- /* The directory name from which Emacs was invoked. */
- Lisp_Object f_Vinvocation_directory;
-
- /* The directory name in which to find subdirs such as lisp and etc.
- nil means get them only from PATH_LOADSEARCH. */
- Lisp_Object f_Vinstallation_directory;
-
- /* The values of `current-time' before and after Emacs initialization. */
- Lisp_Object f_Vbefore_init_time;
- Lisp_Object f_Vafter_init_time;
-
- /* Hook run by `kill-emacs' before it does really anything. */
- Lisp_Object f_Vkill_emacs_hook;
-
- /* Search path separator. */
- Lisp_Object f_Vpath_separator;
-
- /* Variable whose value is symbol giving operating system type. */
- Lisp_Object f_Vsystem_type;
-
- /* Variable whose value is string giving configuration built for. */
- Lisp_Object f_Vsystem_configuration;
-
- /* Variable whose value is string giving configuration options,
- for use when reporting bugs. */
- Lisp_Object f_Vsystem_configuration_options;
-
- /* Current and previous system locales for messages and time. */
- Lisp_Object f_Vsystem_messages_locale;
-
- Lisp_Object f_Vprevious_system_messages_locale;
-
- Lisp_Object f_Vsystem_time_locale;
-
- Lisp_Object f_Vprevious_system_time_locale;
-
- /* Copyright and version info. The version number may be updated by
- Lisp code. */
- Lisp_Object f_Vemacs_copyright;
- Lisp_Object f_Vemacs_version;
-
- /* Alist of external libraries and files implementing them. */
- Lisp_Object f_Vdynamic_library_alist;
-
- /* Value of Lisp variable `noninteractive'.
- Normally same as C variable `noninteractive'
- but nothing terrible happens if user sets this one. */
- int f_noninteractive1;
-
- /* Nonzero means Emacs was run in --quick mode. */
- int f_inhibit_x_resources;
-
- Lisp_Object f_Vinhibit_quit;
- Lisp_Object f_Vquit_flag;
-
- /* Maximum size allowed for specpdl allocation */
- EMACS_INT f_max_specpdl_size;
-
- /* Maximum allowed depth in Lisp evaluations and function calls. */
- EMACS_INT f_max_lisp_eval_depth;
-
- /* Nonzero means enter debugger before next function call */
- int f_debug_on_next_call;
-
- /* Non-zero means debugger may continue. This is zero when the
- debugger is called during redisplay, where it might not be safe to
- continue the interrupted redisplay. */
- int f_debugger_may_continue;
-
- /* List of conditions (non-nil atom means all) which enter the debugger
- if an error is handled by the command loop's error handler. */
- Lisp_Object f_Vdebug_on_error;
-
- /* List of conditions and regexps specifying error messages which
- do not enter the debugger even if Vdebug_on_error says they should. */
- Lisp_Object f_Vdebug_ignored_errors;
-
- /* Non-nil means call the debugger even if the error will be handled. */
- Lisp_Object f_Vdebug_on_signal;
-
- /* Hook for edebug to use. */
- Lisp_Object f_Vsignal_hook_function;
-
- /* Nonzero means enter debugger if a quit signal
- is handled by the command loop's error handler. */
- int f_debug_on_quit;
-
- Lisp_Object f_Vdebugger;
-
- /* Function to process declarations in defmacro forms. */
- Lisp_Object f_Vmacro_declaration_function;
-
- /* Coding system for file names, or nil if none. */
- Lisp_Object f_Vfile_name_coding_system;
-
- /* Coding system for file names used only when
- Vfile_name_coding_system is nil. */
- Lisp_Object f_Vdefault_file_name_coding_system;
-
- /* Alist of elements (REGEXP . HANDLER) for file names
- whose I/O is done with a special handler. */
- Lisp_Object f_Vfile_name_handler_alist;
-
- /* Function to be called to decide a coding system of a reading file. */
- Lisp_Object f_Vset_auto_coding_function;
-
- /* Functions to be called to process text properties in inserted file. */
- Lisp_Object f_Vafter_insert_file_functions;
-
- /* Functions to be called to create text property annotations for file. */
- Lisp_Object f_Vwrite_region_annotate_functions;
-
- Lisp_Object f_Vwrite_region_post_annotation_function;
-
- /* During build_annotations, each time an annotation function is called,
- this holds the annotations made by the previous functions. */
- Lisp_Object f_Vwrite_region_annotations_so_far;
-
- /* File name in which we write a list of all our auto save files. */
- Lisp_Object f_Vauto_save_list_file_name;
-
- /* Whether or not files are auto-saved into themselves. */
- Lisp_Object f_Vauto_save_visited_file_name;
-
- /* Whether or not to continue auto-saving after a large deletion. */
- Lisp_Object f_Vauto_save_include_big_deletions;
-
- /* Nonzero means skip the call to fsync in Fwrite-region. */
- int f_write_region_inhibit_fsync;
-
- /* Non-zero means call move-file-to-trash in Fdelete_file or
- Fdelete_directory_internal. */
- int f_delete_by_moving_to_trash;
-
- /* These variables describe handlers that have "already" had a chance
- to handle the current operation.
-
- Vinhibit_file_name_handlers is a list of file name handlers.
- Vinhibit_file_name_operation is the operation being handled.
- If we try to handle that operation, we ignore those handlers. */
- Lisp_Object f_Vinhibit_file_name_handlers;
-
- Lisp_Object f_Vinhibit_file_name_operation;
-
- /* The directory for writing temporary files. */
- Lisp_Object f_Vtemporary_file_directory;
-
- /* Nonzero enables use of dialog boxes for questions
- asked by mouse commands. */
- int f_use_dialog_box;
-
- /* Nonzero enables use of a file dialog for file name
- questions asked by mouse commands. */
- int f_use_file_dialog;
-
- Lisp_Object f_Vfeatures;
-
- Lisp_Object f_Vfont_weight_table;
- Lisp_Object f_Vfont_slant_table;
- Lisp_Object f_Vfont_width_table;
-
- Lisp_Object f_Vfont_encoding_alist;
-
- Lisp_Object f_Vfont_log;
-
- Lisp_Object f_Vfont_encoding_charset_alist;
-
- Lisp_Object f_Vuse_default_ascent;
-
- Lisp_Object f_Vignore_relative_composition;
-
- Lisp_Object f_Valternate_fontname_alist;
-
- Lisp_Object f_Vfontset_alias_alist;
-
- Lisp_Object f_Vvertical_centering_font_regexp;
-
- Lisp_Object f_Votf_script_alist;
-
- /* If we shall make pointer invisible when typing or not. */
- Lisp_Object f_Vmake_pointer_invisible;
-
- /* The name we're using in resource queries. Most often "emacs". */
- Lisp_Object f_Vx_resource_name;
-
- /* The application class we're using in resource queries.
- Normally "Emacs". */
- Lisp_Object f_Vx_resource_class;
-
- /* Lower limit value of the frame opacity (alpha transparency). */
- Lisp_Object f_Vframe_alpha_lower_limit;
-
- Lisp_Object f_Vmenu_bar_mode;
- Lisp_Object f_Vtool_bar_mode;
-
- Lisp_Object f_Vterminal_frame;
-
- Lisp_Object f_Vdefault_frame_alist;
-
- Lisp_Object f_Vdefault_frame_scroll_bars;
-
- Lisp_Object f_Vmouse_position_function;
-
- Lisp_Object f_Vmouse_highlight;
-
- Lisp_Object f_Vdelete_frame_functions;
-
- int f_focus_follows_mouse;
-
- /* Non-nil means that newline may flow into the right fringe. */
- Lisp_Object f_Voverflow_newline_into_fringe;
-
- /* List of known fringe bitmap symbols.
-
- The fringe bitmap number is stored in the `fringe' property on
- those symbols. Names for the built-in bitmaps are installed by
- loading fringe.el.
- */
- Lisp_Object f_Vfringe_bitmaps;
-
- /* Search path for bitmap files. */
- Lisp_Object f_Vx_bitmap_file_path;
-
- /* A list of symbols, one for each supported image type. */
- Lisp_Object f_Vimage_types;
-
- /* Time in seconds after which images should be removed from the cache
- if not displayed. */
- Lisp_Object f_Vimage_cache_eviction_delay;
-
- Lisp_Object f_Vmax_image_size;
-
- /* Non-zero means draw a cross on images having `:conversion
- disabled'. */
- int f_cross_disabled_images;
-
- Lisp_Object f_Vimagemagick_render_type;
-
- /* Indentation can insert tabs if this is non-zero;
- otherwise always uses spaces. */
- int f_indent_tabs_mode;
-
- /* Non-nil means don't call the after-change-functions right away,
- just record an element in combine_after_change_list. */
- Lisp_Object f_Vcombine_after_change_calls;
-
- /* Check all markers in the current buffer, looking for something invalid. */
- int f_check_markers_debug_flag;
-
- /* Non-nil if the present key sequence was obtained by shift translation. */
- Lisp_Object f_Vthis_command_keys_shift_translated;
-
- /* If non-nil, the function that implements the display of help.
- It's called with one argument, the help string to display. */
- Lisp_Object f_Vshow_help_function;
-
- /* Nonzero means do menu prompting. */
- int f_menu_prompting;
-
- /* Character to see next line of menu prompt. */
- Lisp_Object f_menu_prompt_more_char;
-
- /* Nonzero means disregard local maps for the menu bar. */
- int f_inhibit_local_menu_bar_menus;
-
- /* The user's hook function for outputting an error message. */
- Lisp_Object f_Vcommand_error_function;
-
- /* The user's ERASE setting. */
- Lisp_Object f_Vtty_erase_char;
-
- /* Character to recognize as the help char. */
- Lisp_Object f_Vhelp_char;
-
- /* List of other event types to recognize as meaning "help". */
- Lisp_Object f_Vhelp_event_list;
-
- /* Form to execute when help char is typed. */
- Lisp_Object f_Vhelp_form;
-
- /* Command to run when the help character follows a prefix key. */
- Lisp_Object f_Vprefix_help_command;
-
- /* List of items that should move to the end of the menu bar. */
- Lisp_Object f_Vmenu_bar_final_items;
-
- /* Expression to evaluate for the tool bar separator image.
- This is used for build_desired_tool_bar_string only. For GTK, we
- use GTK tool bar seperators. */
- Lisp_Object f_Vtool_bar_separator_image_expression;
-
- /* Non-nil means show the equivalent key-binding for
- any M-x command that has one.
- The value can be a length of time to show the message for.
- If the value is non-nil and not a number, we wait 2 seconds. */
- Lisp_Object f_Vsuggest_key_bindings;
-
- /* How long to display an echo-area message when the minibuffer is active.
- If the value is not a number, such messages don't time out. */
- Lisp_Object f_Vminibuffer_message_timeout;
-
- /* If non-nil, this is a map that overrides all other local maps. */
- Lisp_Object f_Voverriding_local_map;
-
- /* If non-nil, Voverriding_local_map applies to the menu bar. */
- Lisp_Object f_Voverriding_local_map_menu_flag;
-
- /* Keymap that defines special misc events that should
- be processed immediately at a low level. */
- Lisp_Object f_Vspecial_event_map;
-
- /* Total number of times command_loop has read a key sequence. */
- EMACS_INT f_num_input_keys;
-
- /* Last input event read as a command. */
- Lisp_Object f_last_command_event;
-
- /* Last input character read as a command, not counting menus
- reached by the mouse. */
- Lisp_Object f_last_nonmenu_event;
-
- /* Last input event read for any purpose. */
- Lisp_Object f_last_input_event;
-
- /* If not Qnil, a list of objects to be read as subsequent command input. */
- Lisp_Object f_Vunread_command_events;
-
- /* If not Qnil, a list of objects to be read as subsequent command input
- including input method processing. */
- Lisp_Object f_Vunread_input_method_events;
-
- /* If not Qnil, a list of objects to be read as subsequent command input
- but NOT including input method processing. */
- Lisp_Object f_Vunread_post_input_method_events;
-
- /* If not -1, an event to be read as subsequent command input. */
- EMACS_INT f_unread_command_char;
-
- /* A mask of extra modifier bits to put into every keyboard char. */
- EMACS_INT f_extra_keyboard_modifiers;
-
- /* Char to use as prefix when a meta character is typed in.
- This is bound on entry to minibuffer in case ESC is changed there. */
- Lisp_Object f_meta_prefix_char;
-
- /* Number of idle seconds before an auto-save and garbage collection. */
- Lisp_Object f_Vauto_save_timeout;
-
- /* Total number of times read_char has returned, outside of macros. */
- EMACS_INT f_num_nonmacro_input_events;
-
- /* Auto-save automatically when this many characters have been typed
- since the last time. */
- EMACS_INT f_auto_save_interval;
-
- /* The command being executed by the command loop.
- Commands may set this, and the value set will be copied into
- current_kboard->Vlast_command instead of the actual command. */
- Lisp_Object f_Vthis_command;
-
- /* If the lookup of the command returns a binding, the original
- command is stored in this-original-command. It is nil otherwise. */
- Lisp_Object f_Vthis_original_command;
-
- /* A user-visible version of the above, intended to allow users to
- figure out where the last event came from, if the event doesn't
- carry that information itself (i.e. if it was a character). */
- Lisp_Object f_Vlast_event_frame;
-
- /* If non-nil, active regions automatically become the window selection. */
- Lisp_Object f_Vselect_active_regions;
-
- /* The text in the active region prior to modifying the buffer.
- Used by the `select-active-regions' feature. */
- Lisp_Object f_Vsaved_region_selection;
-
- /* Echo unfinished commands after this many seconds of pause. */
- Lisp_Object f_Vecho_keystrokes;
-
- /* Form to evaluate (if non-nil) when Emacs is started. */
- Lisp_Object f_Vtop_level;
-
- /* If non-nil, this implements the current input method. */
- Lisp_Object f_Vinput_method_function;
-
- /* When we call Vinput_method_function,
- this holds the echo area message that was just erased. */
- Lisp_Object f_Vinput_method_previous_message;
-
- /* Non-nil means deactivate the mark at end of this command. */
- Lisp_Object f_Vdeactivate_mark;
-
- /* Menu bar specified in Lucid Emacs fashion. */
- Lisp_Object f_Vlucid_menu_bar_dirty_flag;
-
- Lisp_Object f_Vpre_command_hook;
-
- Lisp_Object f_Vpost_command_hook;
-
- Lisp_Object f_Vcommand_hook_internal;
-
- /* Parent keymap of terminal-local function-key-map instances. */
- Lisp_Object f_Vfunction_key_map;
-
- /* Keymap of key translations that can override keymaps. */
- Lisp_Object f_Vkey_translation_map;
-
- /* List of deferred actions to be performed at a later time.
- The precise format isn't relevant here; we just check whether it is nil. */
- Lisp_Object f_Vdeferred_action_list;
-
- /* Function to call to handle deferred actions, when there are any. */
- Lisp_Object f_Vdeferred_action_function;
-
- /* If this flag is non-nil, we check mouse_moved to see when the
- mouse moves, and motion events will appear in the input stream.
- Otherwise, mouse motion is ignored. */
- Lisp_Object f_do_mouse_tracking;
-
- /* List of absolute timers. Appears in order of next scheduled event. */
- Lisp_Object f_Vtimer_list;
-
- /* List of idle time timers. Appears in order of next scheduled event. */
- Lisp_Object f_Vtimer_idle_list;
-
- /* After a command is executed, if point is moved into a region that
- has specific properties (e.g. composition, display), we adjust
- point to the boundary of the region. But, if a command sets this
- variable to non-nil, we suppress this point adjustment. This
- variable is set to nil before reading a command. */
- Lisp_Object f_Vdisable_point_adjustment;
-
- /* If non-nil, always disable point adjustment. */
- Lisp_Object f_Vglobal_disable_point_adjustment;
-
- /* If non-nil, events produced by disabled menu items and tool-bar
- buttons are not ignored. Help functions bind this to allow help on
- those items and buttons. */
- Lisp_Object f_Venable_disabled_menus_and_buttons;
-
- /* Nonzero means don't try to suspend even if the operating system seems
- to support it. */
- int f_cannot_suspend;
-
- /* Number of seconds between polling for input. This is a Lisp
- variable that can be bound. */
- EMACS_INT f_polling_period;
-
- /* subprocesses */
- Lisp_Object f_Vthrow_on_input;
-
- /* The maximum time between clicks to make a double-click, or Qnil to
- disable double-click detection, or Qt for no time limit. */
- Lisp_Object f_Vdouble_click_time;
-
- /* Maximum number of pixels the mouse may be moved between clicks
- to make a double-click. */
- EMACS_INT f_double_click_fuzz;
-
- /* was MinibufLocalMap */
- Lisp_Object f_Vminibuffer_local_map;
-
- /* was MinibufLocalNSMap */
- Lisp_Object f_Vminibuffer_local_ns_map;
-
- /* was MinibufLocalCompletionMap */
- Lisp_Object f_Vminibuffer_local_completion_map;
-
- /* keymap used for minibuffers when doing completion in filenames */
- Lisp_Object f_Vminibuffer_local_filename_completion_map;
-
- /* keymap used for minibuffers when doing completion in filenames
- with require-match*/
- Lisp_Object f_Vminibuffer_local_filename_must_match_map;
-
- /* was MinibufLocalMustMatchMap */
- Lisp_Object f_Vminibuffer_local_must_match_map;
-
- /* Alist of minor mode variables and keymaps. */
- Lisp_Object f_Vminor_mode_map_alist;
-
- /* Alist of major-mode-specific overrides for
- minor mode variables and keymaps. */
- Lisp_Object f_Vminor_mode_overriding_map_alist;
-
- /* List of emulation mode keymap alists. */
- Lisp_Object f_Vemulation_mode_map_alists;
-
- /* A list of all commands given new bindings since a certain time
- when nil was stored here.
- This is used to speed up recomputation of menu key equivalents
- when Emacs starts up. t means don't record anything here. */
- Lisp_Object f_Vdefine_key_rebound_commands;
-
- Lisp_Object f_Vwhere_is_preferred_modifier;
-
- Lisp_Object f_Vvalues;
- Lisp_Object f_Vstandard_input;
- Lisp_Object f_Vafter_load_alist;
-
- Lisp_Object f_Veval_buffer_list;
-
- /* non-zero if inside `load' */
- int f_load_in_progress;
-
- /* Directory in which the sources were found. */
- Lisp_Object f_Vsource_directory;
-
- /* Search path and suffixes for files to be loaded. */
- Lisp_Object f_Vload_path;
- Lisp_Object f_Vload_suffixes;
- Lisp_Object f_Vload_file_rep_suffixes;
-
- /* File name of user's init file. */
- Lisp_Object f_Vuser_init_file;
-
- /* This is the user-visible association list that maps features to
- lists of defs in their load files. */
- Lisp_Object f_Vload_history;
-
- /* This is used to build the load history. */
- Lisp_Object f_Vcurrent_load_list;
-
- /* List of files that were preloaded. */
- Lisp_Object f_Vpreloaded_file_list;
-
- /* Name of file actually being read by `load'. */
- Lisp_Object f_Vload_file_name;
-
- /* Function to use for reading, in `load' and friends. */
- Lisp_Object f_Vload_read_function;
-
- /* Non-nil means read recursive structures using #n= and #n# syntax. */
- Lisp_Object f_Vread_circle;
-
- /* Nonzero means load should forcibly load all dynamic doc strings. */
- int f_load_force_doc_strings;
-
- /* Nonzero means read should convert strings to unibyte. */
- int f_load_convert_to_unibyte;
-
- /* Function to use for loading an Emacs Lisp source file (not
- compiled) instead of readevalloop. */
- Lisp_Object f_Vload_source_file_function;
-
- /* List of all DEFVAR_BOOL variables. Used by the byte optimizer. */
- Lisp_Object f_Vbyte_boolean_vars;
-
- /* Whether or not to add a `read-positions' property to symbols
- read. */
- Lisp_Object f_Vread_with_symbol_positions;
-
- /* List of (SYMBOL . POSITION) accumulated so far. */
- Lisp_Object f_Vread_symbol_positions_list;
-
- Lisp_Object f_Vold_style_backquotes;
-
- /* Non-zero means load dangerous compiled Lisp files. */
- int f_load_dangerous_libraries;
-
- /* Non-zero means force printing messages when loading Lisp files. */
- int f_force_load_messages;
-
- /* A regular expression used to detect files compiled with Emacs. */
- Lisp_Object f_Vbytecomp_version_regexp;
-
- Lisp_Object f_Vobarray;
-
- /* Normal hook run whenever a keyboard macro terminates. */
- Lisp_Object f_Vkbd_macro_termination_hook;
-
- /* Kbd macro currently being executed (a string or vector). */
- Lisp_Object f_Vexecuting_kbd_macro;
-
- /* Index of next character to fetch from that macro. */
- EMACS_INT f_executing_kbd_macro_index;
-
- /* Nonzero means enable debugging checks on byte/char correspondences. */
- int f_byte_debug_flag;
-
- Lisp_Object f_Vhistory_length;
-
- /* No duplicates in history. */
- int f_history_delete_duplicates;
-
- /* Non-nil means add new input to history. */
- Lisp_Object f_Vhistory_add_new_input;
-
- /* Nonzero means let functions called when within a minibuffer
- invoke recursive minibuffers (to read arguments, or whatever) */
- int f_enable_recursive_minibuffers;
-
- /* Nonzero means don't ignore text properties
- in Fread_from_minibuffer. */
- int f_minibuffer_allow_text_properties;
-
- /* help-form is bound to this while in the minibuffer. */
- Lisp_Object f_Vminibuffer_help_form;
-
- /* Variable which is the history list to add minibuffer values to. */
- Lisp_Object f_Vminibuffer_history_variable;
-
- /* Current position in the history list (adjusted by M-n and M-p). */
- Lisp_Object f_Vminibuffer_history_position;
-
- /* Text properties that are added to minibuffer prompts.
- These are in addition to the basic `field' property, and stickiness
- properties. */
- Lisp_Object f_Vminibuffer_prompt_properties;
-
- Lisp_Object f_Vminibuffer_setup_hook;
-
- Lisp_Object f_Vminibuffer_exit_hook;
-
- Lisp_Object f_Vread_expression_history;
-
- /* Function to call to read a buffer name. */
- Lisp_Object f_Vread_buffer_function;
-
- /* Nonzero means completion ignores case. */
- int f_completion_ignore_case;
-
- int f_read_buffer_completion_ignore_case;
-
- /* List of regexps that should restrict possible completions. */
- Lisp_Object f_Vcompletion_regexp_list;
-
- /* Nonzero means raise the minibuffer frame when the minibuffer
- is entered. */
- int f_minibuffer_auto_raise;
-
- /* Keymap for reading expressions. */
- Lisp_Object f_Vread_expression_map;
-
- Lisp_Object f_Vminibuffer_completion_table;
-
- Lisp_Object f_Vminibuffer_completion_predicate;
-
- Lisp_Object f_Vminibuffer_completion_confirm;
-
- Lisp_Object f_Vminibuffer_completing_file_name;
-
- Lisp_Object f_Vdos_unsupported_char_glyph;
-
- Lisp_Object f_Vstandard_output;
-
- Lisp_Object f_Vfloat_output_format;
-
- /* Maximum length of list to print in full; noninteger means
- effectively infinity */
- Lisp_Object f_Vprint_length;
-
- /* Maximum depth of list to print in full; noninteger means
- effectively infinity. */
- Lisp_Object f_Vprint_level;
-
- /* Nonzero means print newlines in strings as \n. */
- int f_print_escape_newlines;
-
- /* Nonzero means to print single-byte non-ascii characters in strings as
- octal escapes. */
- int f_print_escape_nonascii;
-
- /* Nonzero means to print multibyte characters in strings as hex escapes. */
- int f_print_escape_multibyte;
-
- /* Nonzero means print (quote foo) forms as 'foo, etc. */
- int f_print_quoted;
-
- /* Non-nil means print #: before uninterned symbols. */
- Lisp_Object f_Vprint_gensym;
-
- /* Non-nil means print recursive structures using #n= and #n# syntax. */
- Lisp_Object f_Vprint_circle;
-
- /* Non-nil means keep continuous number for #n= and #n# syntax
- between several print functions. */
- Lisp_Object f_Vprint_continuous_numbering;
-
- Lisp_Object f_Vprint_number_table;
-
- /* A flag to control printing of `charset' text property.
- The default value is Qdefault. */
- Lisp_Object f_Vprint_charset_text_property;
-
- /* Nonzero means delete a process right away if it exits. */
- int f_delete_exited_processes;
-
- /* t means use pty, nil means use a pipe,
- maybe other values to come. */
- Lisp_Object f_Vprocess_connection_type;
-
- /* Non-nil means to delay reading process output to improve buffering.
- A value of t means that delay is reset after each send, any other
- non-nil value does not reset the delay. A value of nil disables
- adaptive read buffering completely. */
- Lisp_Object f_Vprocess_adaptive_read_buffering;
-
- Lisp_Object f_Vsearch_spaces_regexp;
-
- /* If non-nil, the match data will not be changed during call to
- searching or matching functions. This variable is for internal use
- only. */
- Lisp_Object f_Vinhibit_changing_match_data;
-
- int f_words_include_escapes;
-
- int f_parse_sexp_lookup_properties;
-
- /* Nonzero means `scan-sexps' treat all multibyte characters as symbol. */
- int f_multibyte_syntax_as_symbol;
-
- /* Non-zero means an open parenthesis in column 0 is always considered
- to be the start of a defun. Zero means an open parenthesis in
- column 0 has no special meaning. */
- int f_open_paren_in_column_0_is_defun_start;
-
- int f_parse_sexp_ignore_comments;
-
- /* Char-table of functions that find the next or previous word
- boundary. */
- Lisp_Object f_Vfind_word_boundary_function_table;
-
- /* If true, use "vs", otherwise use "ve" to make the cursor visible. */
- int f_visible_cursor;
-
- /* Functions to call after suspending a tty. */
- Lisp_Object f_Vsuspend_tty_functions;
-
- /* Functions to call after resuming a tty. */
- Lisp_Object f_Vresume_tty_functions;
-
- /* Nonzero means no need to redraw the entire frame on resuming a
- suspended Emacs. This is useful on terminals with multiple
- pages, where one page is used for Emacs and another for all
- else. */
- int f_no_redraw_on_reenter;
-
- /* Provided for lisp packages. */
- int f_system_uses_terminfo;
-
- /* Function to use to ring the bell. */
- Lisp_Object f_Vring_bell_function;
-
- Lisp_Object f_Vdelete_terminal_functions;
-
- Lisp_Object f_Vinhibit_point_motion_hooks;
-
- Lisp_Object f_Vdefault_text_properties;
-
- Lisp_Object f_Vchar_property_alias_alist;
-
- Lisp_Object f_Vtext_property_default_nonsticky;
-
- /* Limits controlling how much undo information to keep. */
- EMACS_INT f_undo_limit;
-
- EMACS_INT f_undo_strong_limit;
-
- Lisp_Object f_Vundo_outer_limit;
-
- /* Function to call when undo_outer_limit is exceeded. */
- Lisp_Object f_Vundo_outer_limit_function;
-
- /* Nonzero means do not record point in record_point. */
- int f_undo_inhibit_record_point;
-
- /* Coding system for communicating with other Windows programs via the
- clipboard. */
- Lisp_Object f_Vselection_coding_system;
-
- /* Coding system for the next communicating with other Windows programs. */
- Lisp_Object f_Vnext_selection_coding_system;
-
- /* Determine whether to make frame dimensions match the screen buffer,
- or the current window size. The former is desirable when running
- over telnet, while the latter is more useful when working directly at
- the console with a large scroll-back buffer. */
- int f_w32_use_full_screen_buffer;
-
- /* The colormap for converting color names to RGB values */
- Lisp_Object f_Vw32_color_map;
-
- /* Non nil if alt key presses are passed on to Windows. */
- Lisp_Object f_Vw32_pass_alt_to_system;
-
- /* Non nil if alt key is translated to meta_modifier, nil if it is translated
- to alt_modifier. */
- Lisp_Object f_Vw32_alt_is_meta;
-
- /* If non-zero, the windows virtual key code for an alternative quit key. */
- int f_w32_quit_key;
-
- /* Non nil if left window key events are passed on to Windows (this only
- affects whether "tapping" the key opens the Start menu). */
- Lisp_Object f_Vw32_pass_lwindow_to_system;
-
- /* Non nil if right window key events are passed on to Windows (this
- only affects whether "tapping" the key opens the Start menu). */
- Lisp_Object f_Vw32_pass_rwindow_to_system;
-
- /* Virtual key code used to generate "phantom" key presses in order
- to stop system from acting on Windows key events. */
- Lisp_Object f_Vw32_phantom_key_code;
-
- /* Modifier associated with the left "Windows" key, or nil to act as a
- normal key. */
- Lisp_Object f_Vw32_lwindow_modifier;
-
- /* Modifier associated with the right "Windows" key, or nil to act as a
- normal key. */
- Lisp_Object f_Vw32_rwindow_modifier;
-
- /* Modifier associated with the "Apps" key, or nil to act as a normal
- key. */
- Lisp_Object f_Vw32_apps_modifier;
-
- /* Value is nil if Num Lock acts as a function key. */
- Lisp_Object f_Vw32_enable_num_lock;
-
- /* Value is nil if Caps Lock acts as a function key. */
- Lisp_Object f_Vw32_enable_caps_lock;
-
- /* Modifier associated with Scroll Lock, or nil to act as a normal key. */
- Lisp_Object f_Vw32_scroll_lock_modifier;
-
- /* Switch to control whether we inhibit requests for synthesized bold
- and italic versions of fonts. */
- int f_w32_enable_synthesized_fonts;
-
- /* Enable palette management. */
- Lisp_Object f_Vw32_enable_palette;
-
- /* Control how close left/right button down events must be to
- be converted to a middle button down event. */
- int f_w32_mouse_button_tolerance;
-
- /* Minimum interval between mouse movement (and scroll bar drag)
- events that are passed on to the event loop. */
- int f_w32_mouse_move_interval;
-
- /* Flag to indicate if XBUTTON events should be passed on to Windows. */
- int f_w32_pass_extra_mouse_buttons_to_system;
-
- /* Flag to indicate if media keys should be passed on to Windows. */
- int f_w32_pass_multimedia_buttons_to_system;
-
- /* Non nil if no window manager is in use. */
- Lisp_Object f_Vx_no_window_manager;
-
- /* The background and shape of the mouse pointer, and shape when not
- over text or in the modeline. */
- Lisp_Object f_Vx_pointer_shape;
- Lisp_Object f_Vx_nontext_pointer_shape;
- Lisp_Object f_Vx_mode_pointer_shape;
-
- /* TODO: Mouse cursor customization. */
- Lisp_Object f_Vx_hourglass_pointer_shape;
- Lisp_Object f_Vx_window_horizontal_drag_shape;
-
- /* The shape when over mouse-sensitive text. */
- Lisp_Object f_Vx_sensitive_text_pointer_shape;
-
- /* Color of chars displayed in cursor box. */
- Lisp_Object f_Vx_cursor_fore_pixel;
-
- /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
- Lisp_Object f_Vx_pixel_size_width_font_regexp;
-
- /* Alist of bdf fonts and the files that define them. */
- Lisp_Object f_Vw32_bdf_filename_alist;
-
- /* A flag to control whether fonts are matched strictly or not. */
- int f_w32_strict_fontnames;
-
- /* A flag to control whether we should only repaint if GetUpdateRect
- indicates there is an update region. */
- int f_w32_strict_painting;
-
- /* The ANSI codepage. */
- int f_w32_ansi_code_page;
-
- /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */
- Lisp_Object f_Vx_max_tooltip_size;
-
- /* Associative list linking character set strings to Windows codepages. */
- Lisp_Object f_Vw32_charset_info_alist;
-
- /* Control whether spawnve quotes arguments as necessary to ensure
- correct parsing by child process. Because not all uses of spawnve
- are careful about constructing argv arrays, we make this behavior
- conditional (off by default). */
- Lisp_Object f_Vw32_quote_process_args;
-
- /* Control whether create_child causes the process' window to be
- hidden. The default is nil. */
- Lisp_Object f_Vw32_start_process_show_window;
-
- /* Control whether create_child causes the process to inherit Emacs'
- console window, or be given a new one of its own. The default is
- nil, to allow multiple DOS programs to run on Win95. Having separate
- consoles also allows Emacs to cleanly terminate process groups. */
- Lisp_Object f_Vw32_start_process_share_console;
-
- /* Control whether create_child cause the process to inherit Emacs'
- error mode setting. The default is t, to minimize the possibility of
- subprocesses blocking when accessing unmounted drives. */
- Lisp_Object f_Vw32_start_process_inherit_error_mode;
-
- /* Time to sleep before reading from a subprocess output pipe - this
- avoids the inefficiency of frequently reading small amounts of data.
- This is primarily necessary for handling DOS processes on Windows 95,
- but is useful for W32 processes on both Windows 95 and NT as well. */
- int f_w32_pipe_read_delay;
-
- /* Control conversion of upper case file names to lower case.
- nil means no, t means yes. */
- Lisp_Object f_Vw32_downcase_file_names;
-
- /* Control whether stat() attempts to generate fake but hopefully
- "accurate" inode values, by hashing the absolute truenames of files.
- This should detect aliasing between long and short names, but still
- allows the possibility of hash collisions. */
- Lisp_Object f_Vw32_generate_fake_inodes;
-
- /* Control whether stat() attempts to determine file type and link count
- exactly, at the expense of slower operation. Since true hard links
- are supported on NTFS volumes, this is only relevant on NT. */
- Lisp_Object f_Vw32_get_true_file_attributes;
-
- /* Coding system for communicating with other programs via the
- clipboard. */
-
- /* Coding system for the next communication with other programs. */
-
- /* Non-nil means Emacs uses toolkit scroll bars. */
- Lisp_Object f_Vx_toolkit_scroll_bars;
-
- /* Non-zero means make use of UNDERLINE_POSITION font properties. */
- int f_x_use_underline_position_properties;
-
- /* Non-zero means to draw the underline at the same place as the descent line. */
- int f_x_underline_at_descent_line;
-
- int f_w32_use_visible_system_caret;
-
- int f_w32_num_mouse_buttons;
-
- Lisp_Object f_Vw32_swap_mouse_buttons;
-
- /* Control whether x_raise_frame also sets input focus. */
- Lisp_Object f_Vw32_grab_focus_on_raise;
-
- /* Control whether Caps Lock affects non-ascii characters. */
- Lisp_Object f_Vw32_capslock_is_shiftlock;
-
- /* Control whether right-alt and left-ctrl should be recognized as AltGr. */
- Lisp_Object f_Vw32_recognize_altgr;
-
- /* Non-nil means it is the window for C-M-v to scroll
- when the mini-buffer is selected. */
- Lisp_Object f_Vminibuf_scroll_window;
-
- /* Non-nil means this is the buffer whose window C-M-v should scroll. */
- Lisp_Object f_Vother_window_scroll_buffer;
-
- /* Non-nil means it's function to call to display temp buffers. */
- Lisp_Object f_Vtemp_buffer_show_function;
-
- /* Non-zero means line and page scrolling on tall lines (with images)
- does partial scrolling by modifying window-vscroll. */
- int f_auto_window_vscroll_p;
-
- /* Non-zero means to use mode-line-inactive face in all windows but the
- selected-window and the minibuffer-scroll-window when the
- minibuffer is active. */
- int f_mode_line_in_non_selected_windows;
-
- /* If a window gets smaller than either of these, it is removed. */
- EMACS_INT f_window_min_height;
-
- EMACS_INT f_window_min_width;
-
- /* Number of lines of continuity in scrolling by screenfuls. */
- EMACS_INT f_next_screen_context_lines;
-
- Lisp_Object f_Vwindow_configuration_change_hook;
-
- /* Non-nil means scroll commands try to put point
- at the same screen height as previously. */
- Lisp_Object f_Vscroll_preserve_screen_position;
-
- /* Non-nil means that text is inserted before window's markers. */
- Lisp_Object f_Vwindow_point_insertion_type;
-
- /* If non-nil, then the `recenter' command with a nil argument
- the entire frame to be redrawn; the special value `tty' causes the
- frame to be redrawn only if it is a tty frame. */
- Lisp_Object f_Vrecenter_redisplay;
-
- Lisp_Object f_Vwindow_scroll_functions;
-
- Lisp_Object f_Vwindow_text_change_functions;
-
- Lisp_Object f_Vredisplay_end_trigger_functions;
-
- /* Functions called to fontify regions of text. */
- Lisp_Object f_Vfontification_functions;
-
- /* Non-nil means automatically select any window when the mouse
- cursor moves into it. */
- Lisp_Object f_Vmouse_autoselect_window;
-
- Lisp_Object f_Vwrap_prefix;
-
- Lisp_Object f_Vline_prefix;
-
- /* Non-zero means draw tool bar buttons raised when the mouse moves
- over them. */
- int f_auto_raise_tool_bar_buttons_p;
-
- /* Non-zero means to reposition window if cursor line is only partially visible. */
- int f_make_cursor_line_fully_visible_p;
-
- /* Margin below tool bar in pixels. 0 or nil means no margin.
- If value is `internal-border-width' or `border-width',
- the corresponding frame parameter is used. */
- Lisp_Object f_Vtool_bar_border;
-
- /* Margin around tool bar buttons in pixels. */
- Lisp_Object f_Vtool_bar_button_margin;
-
- /* Thickness of shadow to draw around tool bar buttons. */
- EMACS_INT f_tool_bar_button_relief;
-
- /* Non-nil means automatically resize tool-bars so that all tool-bar
- items are visible, and no blank lines remain.
-
- If value is `grow-only', only make tool-bar bigger. */
- Lisp_Object f_Vauto_resize_tool_bars;
-
- /* Type of tool bar. Can be symbols image, text, both or both-hroiz. */
- Lisp_Object f_Vtool_bar_style;
-
- /* Maximum number of characters a label can have to be shown. */
- EMACS_INT f_tool_bar_max_label_size;
-
- /* Non-zero means draw block and hollow cursor as wide as the glyph
- under it. For example, if a block cursor is over a tab, it will be
- drawn as wide as that tab on the display. */
- int f_x_stretch_cursor_p;
-
- Lisp_Object f_Vinhibit_redisplay;
-
- /* Non-zero means Lisp evaluation during redisplay is inhibited. */
- int f_inhibit_eval_during_redisplay;
-
- /* Symbols used in text property values. */
- Lisp_Object f_Vdisplay_pixels_per_inch;
-
- /* Non-nil means highlight trailing whitespace. */
- Lisp_Object f_Vshow_trailing_whitespace;
-
- /* Non-nil means escape non-break space and hyphens. */
- Lisp_Object f_Vnobreak_char_display;
-
- /* Non-nil means show the text cursor in void text areas
- i.e. in blank areas after eol and eob. This used to be
- the default in 21.3. */
- Lisp_Object f_Vvoid_text_area_pointer;
-
- /* Nonzero means truncate lines in all windows less wide than the
- frame. */
- Lisp_Object f_Vtruncate_partial_width_windows;
-
- /* A flag to control how to display unibyte 8-bit character. */
- int f_unibyte_display_via_language_environment;
-
- /* Nonzero means we have more than one non-mini-buffer-only frame.
- Not guaranteed to be accurate except while parsing
- frame-title-format. */
- int f_multiple_frames;
-
- Lisp_Object f_Vglobal_mode_string;
-
- /* List of variables (symbols) which hold markers for overlay arrows.
- The symbols on this list are examined during redisplay to determine
- where to display overlay arrows. */
- Lisp_Object f_Voverlay_arrow_variable_list;
-
- /* Marker for where to display an arrow on top of the buffer text. */
- Lisp_Object f_Voverlay_arrow_position;
-
- /* String to display for the arrow. Only used on terminal frames. */
- Lisp_Object f_Voverlay_arrow_string;
-
- /* Like mode-line-format, but for the title bar on a visible frame. */
- Lisp_Object f_Vframe_title_format;
-
- /* Like mode-line-format, but for the title bar on an iconified frame. */
- Lisp_Object f_Vicon_title_format;
-
- /* List of functions to call when a window's size changes. These
- functions get one arg, a frame on which one or more windows' sizes
- have changed. */
- Lisp_Object f_Vwindow_size_change_functions;
-
- Lisp_Object f_Vmenu_bar_update_hook;
-
- /* Nonzero means highlight the region even in nonselected windows. */
- int f_highlight_nonselected_windows;
-
- /* If cursor motion alone moves point off frame, try scrolling this
- many lines up or down if that will bring it back. */
- EMACS_INT f_emacs_scroll_step;
-
- /* Nonzero means scroll just far enough to bring point back on the
- screen, when appropriate. */
- EMACS_INT f_scroll_conservatively;
-
- /* Recenter the window whenever point gets within this many lines of
- the top or bottom of the window. This value is translated into a
- pixel value by multiplying it with FRAME_LINE_HEIGHT, which means
- that there is really a fixed pixel height scroll margin. */
- EMACS_INT f_scroll_margin;
-
- /* Zero means display the mode-line/header-line/menu-bar in the default face
- (this slightly odd definition is for compatibility with previous versions
- of emacs), non-zero means display them using their respective faces.
-
- This variable is deprecated. */
- int f_mode_line_inverse_video;
-
- /* Maximum buffer size for which to display line numbers. */
- Lisp_Object f_Vline_number_display_limit;
-
- /* Line width to consider when repositioning for line number display. */
- EMACS_INT f_line_number_display_limit_width;
-
- /* Number of lines to keep in the message log buffer. t means
- infinite. nil means don't log at all. */
- Lisp_Object f_Vmessage_log_max;
-
- int f_inhibit_menubar_update;
-
- /* When evaluating expressions from menu bar items (enable conditions,
- for instance), this is the frame they are being processed for. */
- Lisp_Object f_Vmenu_updating_frame;
-
- /* Maximum height for resizing mini-windows. Either a float
- specifying a fraction of the available height, or an integer
- specifying a number of lines. */
- Lisp_Object f_Vmax_mini_window_height;
-
- /* Non-zero means messages should be displayed with truncated
- lines instead of being continued. */
- int f_message_truncate_lines;
-
- /* How to blink the default frame cursor off. */
- Lisp_Object f_Vblink_cursor_alist;
-
- /* Variables to turn off display optimizations from Lisp. */
- int f_inhibit_try_window_id;
- int f_inhibit_try_window_reusing;
-
- int f_inhibit_try_cursor_movement;
-
- /* Non-zero means automatically scroll windows horizontally to make
- point visible. */
- int f_automatic_hscrolling_p;
-
- /* How close to the margin can point get before the window is scrolled
- horizontally. */
- EMACS_INT f_hscroll_margin;
-
- /* How much to scroll horizontally when point is inside the above margin. */
- Lisp_Object f_Vhscroll_step;
-
- /* The variable `resize-mini-windows'. If nil, don't resize
- mini-windows. If t, always resize them to fit the text they
- display. If `grow-only', let mini-windows grow only until they
- become empty. */
- Lisp_Object f_Vresize_mini_windows;
-
- /* Space between overline and text. */
- EMACS_INT f_overline_margin;
-
- /* Require underline to be at least this many screen pixels below baseline
- This to avoid underline "merging" with the base of letters at small
- font sizes, particularly when x_use_underline_position_properties is on. */
- EMACS_INT f_underline_minimum_offset;
-
- /* Non-zero means don't free realized faces. Bound while freeing
- realized faces is dangerous because glyph matrices might still
- reference them. */
- int f_inhibit_free_realized_faces;
-
- /* Non-zero means we're allowed to display a hourglass pointer. */
- int f_display_hourglass_p;
-
- /* Number of seconds to wait before displaying an hourglass cursor. */
- Lisp_Object f_Vhourglass_delay;
-
- /* Char-table to control the display of glyphless characters. */
- Lisp_Object f_Vglyphless_char_display;
-
- EMACS_INT f_debug_end_pos;
-
- /* Default stipple pattern used on monochrome displays. This stipple
- pattern is used on monochrome displays instead of shades of gray
- for a face background color. See `set-face-stipple' for possible
- values for this variable. */
- Lisp_Object f_Vface_default_stipple;
-
- Lisp_Object f_Vscalable_fonts_allowed;
-
- /* List of regular expressions that matches names of fonts to ignore. */
- Lisp_Object f_Vface_ignored_fonts;
-
- /* Alist of font name patterns vs the rescaling factor. */
- Lisp_Object f_Vface_font_rescale_alist;
-
- /* Maximum number of fonts to consider in font_list. If not an
- integer > 0, DEFAULT_FONT_LIST_LIMIT is used instead. */
- Lisp_Object f_Vfont_list_limit;
-
- /* Alist of global face definitions. Each element is of the form
- (FACE . LFACE) where FACE is a symbol naming a face and LFACE
- is a Lisp vector of face attributes. These faces are used
- to initialize faces for new frames. */
- Lisp_Object f_Vface_new_frame_defaults;
-
- /* Alist of face remappings. Each element is of the form:
- (FACE REPLACEMENT...) which causes display of the face FACE to use
- REPLACEMENT... instead. REPLACEMENT... is interpreted the same way
- the value of a `face' text property is: it may be (1) A face name,
- (2) A list of face names, (3) A property-list of face attribute/value
- pairs, or (4) A list of face names intermixed with lists containing
- face attribute/value pairs.
-
- Multiple entries in REPLACEMENT... are merged together to form the final
- result, with faces or attributes earlier in the list taking precedence
- over those that are later.
-
- Face-name remapping cycles are suppressed; recursive references use
- the underlying face instead of the remapped face. */
- Lisp_Object f_Vface_remapping_alist;
-
- /* An alist of defined terminal colors and their RGB values. */
- Lisp_Object f_Vtty_defined_color_alist;
-
- /* LessTif/Motif version info. */
- Lisp_Object f_Vmotif_version_string;
-
- /* GTK+ version info */
- Lisp_Object f_Vgtk_version_string;
-
- /* Non-zero means prompt with the old GTK file selection dialog. */
- int f_x_gtk_use_old_file_dialog;
-
- /* If non-zero, by default show hidden files in the GTK file chooser. */
- int f_x_gtk_show_hidden_files;
-
- /* If non-zero, don't show additional help text in the GTK file chooser. */
- int f_x_gtk_file_dialog_help_text;
-
- /* If non-zero, don't collapse to tool bar when it is detached. */
- int f_x_gtk_whole_detached_tool_bar;
-
- /* If non-zero, use Gtk+ tooltips. */
- int f_x_gtk_use_system_tooltips;
-
- /* The background and shape of the mouse pointer, and shape when not
- over text or in the modeline. */
-
- /* The shape when over mouse-sensitive text. */
-
- /* If non-nil, the pointer shape to indicate that windows can be
- dragged horizontally. */
-
- /* Color of chars displayed in cursor box. */
-
- /* Non nil if no window manager is in use. */
-
- /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */
-
- /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */
-
- Lisp_Object f_Vx_lost_selection_functions;
-
- Lisp_Object f_Vx_sent_selection_functions;
-
- /* This is an alist whose CARs are selection-types (whose names are the same
- as the names of X Atoms) and whose CDRs are the names of Lisp functions to
- call to convert the given Emacs selection value to a string representing
- the given selection type. This is for Lisp-level extension of the emacs
- selection handling. */
- Lisp_Object f_Vselection_converter_alist;
-
- /* If the selection owner takes too long to reply to a selection request,
- we give up on it. This is in milliseconds (0 = no timeout.) */
- EMACS_INT f_x_selection_timeout;
-
- int f_use_system_font;
-
- Lisp_Object f_Vxft_settings;
-
- /* The client session id for this session as a lisp object. */
- Lisp_Object f_Vx_session_id;
-
- /* The id we had the previous session. This is only available if we
- have been started by the session manager with SMID_OPT. */
- Lisp_Object f_Vx_session_previous_id;
-
- /* Non-nil means Emacs uses toolkit scroll bars. */
-
- /* Non-zero means make use of UNDERLINE_POSITION font properties. */
-
- /* Non-zero means to draw the underline at the same place as the descent line. */
-
- /* Non-zero means to not move point as a result of clicking on a
- frame to focus it (when focus-follows-mouse is nil). */
- int f_x_mouse_click_focus_ignore_position;
-
- /* The keysyms to use for the various modifiers. */
- Lisp_Object f_Vx_alt_keysym;
- Lisp_Object f_Vx_hyper_keysym;
- Lisp_Object f_Vx_meta_keysym;
- Lisp_Object f_Vx_super_keysym;
-
- Lisp_Object f_Vx_keysym_table;
-
- /* Lisp communications */
- Lisp_Object f_ns_input_file, f_ns_input_font, f_ns_input_fontsize,
- f_ns_input_line;
- Lisp_Object f_ns_input_color, f_ns_input_text, f_ns_working_text;
- Lisp_Object f_ns_input_spi_name, f_ns_input_spi_arg;
-
- /* Specifies which emacs modifier should be generated when NS receives
- the Alternate modifier. May be Qnone or any of the modifier lisp symbols.
- */
- Lisp_Object f_ns_alternate_modifier;
-
- /* Specifies which emacs modifier should be generated when NS receives
- the right Alternate modifier. Has same values as ns_alternate_modifier
- plus the value Qleft which means whatever value ns_alternate_modifier has.
- */
- Lisp_Object f_ns_right_alternate_modifier;
-
- /* Specifies which emacs modifier should be generated when NS receives
- the Command modifier. May be any of the modifier lisp symbols. */
- Lisp_Object f_ns_command_modifier;
-
- /* Specifies which emacs modifier should be generated when NS receives
- the right Command modifier. Has same values as ns_command_modifier plus
- the value Qleft which means whatever value ns_command_modifier has. */
- Lisp_Object f_ns_right_command_modifier;
-
- /* Specifies which emacs modifier should be generated when NS receives
- the Control modifier. May be any of the modifier lisp symbols. */
- Lisp_Object f_ns_control_modifier;
-
- /* Specifies which emacs modifier should be generated when NS receives
- the right Control modifier. Has same values as ns_control_modifier plus
- the value Qleft which means whatever value ns_control_modifier has. */
- Lisp_Object f_ns_right_control_modifier;
-
- /* Specifies which emacs modifier should be generated when NS receives
- the Function modifier (laptops). May be any of the modifier lisp symbols.
- */
- Lisp_Object f_ns_function_modifier;
-
- /* Control via default 'GSFontAntiAlias' on OS X and GNUstep. */
- Lisp_Object f_ns_antialias_text;
-
- /* Confirm on exit. */
- Lisp_Object f_ns_confirm_quit;
-
- /* Alist of elements (REGEXP . IMAGE) for images of icons associated
- to frames.*/
- Lisp_Object f_Vns_icon_type_alist;
-
- /* Toolkit version support. */
- Lisp_Object f_Vns_version_string;
-
- Lisp_Object f_Vns_sent_selection_hooks;
- Lisp_Object f_Vns_lost_selection_hooks;
-
- /* This is an association list whose elements are of the form
- ( SELECTION-NAME SELECTION-VALUE SELECTION-TIMESTAMP FRAME)
- SELECTION-NAME is a lisp symbol, whose name is the name of an X Atom.
- SELECTION-VALUE is the value that emacs owns for that selection.
- It may be any kind of Lisp object.
- SELECTION-TIMESTAMP is the time at which emacs began owning this
- selection, as a cons of two 16-bit numbers (making a 32 bit time.)
- FRAME is the frame for which we made the selection.
- If there is an entry in this alist, then it can be assumed that Emacs owns
- that selection.
- The only (eq) parts of this list that are visible from Lisp are the
- selection-values. */
- Lisp_Object f_Vselection_alist;
-
- Lisp_Object f_Vns_reg_to_script;
-
-
-};
-
-extern struct emacs_globals globals;
-
-#define Vafter_change_functions \
- globals.f_Vafter_change_functions
-#define Vafter_init_time \
- globals.f_Vafter_init_time
-#define Vafter_insert_file_functions \
- globals.f_Vafter_insert_file_functions
-#define Vafter_load_alist \
- globals.f_Vafter_load_alist
-#define Valternate_fontname_alist \
- globals.f_Valternate_fontname_alist
-#define Vauto_composition_function \
- globals.f_Vauto_composition_function
-#define Vauto_composition_mode \
- globals.f_Vauto_composition_mode
-#define Vauto_fill_chars \
- globals.f_Vauto_fill_chars
-#define Vauto_resize_tool_bars \
- globals.f_Vauto_resize_tool_bars
-#define Vauto_save_include_big_deletions \
- globals.f_Vauto_save_include_big_deletions
-#define Vauto_save_list_file_name \
- globals.f_Vauto_save_list_file_name
-#define Vauto_save_timeout \
- globals.f_Vauto_save_timeout
-#define Vauto_save_visited_file_name \
- globals.f_Vauto_save_visited_file_name
-#define Vbefore_change_functions \
- globals.f_Vbefore_change_functions
-#define Vbefore_init_time \
- globals.f_Vbefore_init_time
-#define Vblink_cursor_alist \
- globals.f_Vblink_cursor_alist
-#define Vbuffer_access_fontified_property \
- globals.f_Vbuffer_access_fontified_property
-#define Vbuffer_access_fontify_functions \
- globals.f_Vbuffer_access_fontify_functions
-#define Vbuild_files \
- globals.f_Vbuild_files
-#define Vbyte_boolean_vars \
- globals.f_Vbyte_boolean_vars
-#define Vbyte_code_meter \
- globals.f_Vbyte_code_meter
-#define Vbytecomp_version_regexp \
- globals.f_Vbytecomp_version_regexp
-#define Vchange_major_mode_hook \
- globals.f_Vchange_major_mode_hook
-#define Vchar_direction_table \
- globals.f_Vchar_direction_table
-#define Vchar_property_alias_alist \
- globals.f_Vchar_property_alias_alist
-#define Vchar_script_table \
- globals.f_Vchar_script_table
-#define Vchar_width_table \
- globals.f_Vchar_width_table
-#define Vcharset_list \
- globals.f_Vcharset_list
-#define Vcharset_map_path \
- globals.f_Vcharset_map_path
-#define Vcharset_revision_table \
- globals.f_Vcharset_revision_table
-#define Vcode_conversion_map_vector \
- globals.f_Vcode_conversion_map_vector
-#define Vcoding_category_list \
- globals.f_Vcoding_category_list
-#define Vcoding_system_alist \
- globals.f_Vcoding_system_alist
-#define Vcoding_system_for_read \
- globals.f_Vcoding_system_for_read
-#define Vcoding_system_for_write \
- globals.f_Vcoding_system_for_write
-#define Vcoding_system_list \
- globals.f_Vcoding_system_list
-#define Vcombine_after_change_calls \
- globals.f_Vcombine_after_change_calls
-#define Vcommand_debug_status \
- globals.f_Vcommand_debug_status
-#define Vcommand_error_function \
- globals.f_Vcommand_error_function
-#define Vcommand_history \
- globals.f_Vcommand_history
-#define Vcommand_hook_internal \
- globals.f_Vcommand_hook_internal
-#define Vcommand_line_args \
- globals.f_Vcommand_line_args
-#define Vcompletion_ignored_extensions \
- globals.f_Vcompletion_ignored_extensions
-#define Vcompletion_regexp_list \
- globals.f_Vcompletion_regexp_list
-#define Vcompose_chars_after_function \
- globals.f_Vcompose_chars_after_function
-#define Vcomposition_function_table \
- globals.f_Vcomposition_function_table
-#define Vconfigure_info_directory \
- globals.f_Vconfigure_info_directory
-#define Vcurrent_iso639_language \
- globals.f_Vcurrent_iso639_language
-#define Vcurrent_load_list \
- globals.f_Vcurrent_load_list
-#define Vcurrent_prefix_arg \
- globals.f_Vcurrent_prefix_arg
-#define Vdata_directory \
- globals.f_Vdata_directory
-#define Vdbus_debug \
- globals.f_Vdbus_debug
-#define Vdbus_registered_buses \
- globals.f_Vdbus_registered_buses
-#define Vdbus_registered_objects_table \
- globals.f_Vdbus_registered_objects_table
-#define Vdeactivate_mark \
- globals.f_Vdeactivate_mark
-#define Vdebug_ignored_errors \
- globals.f_Vdebug_ignored_errors
-#define Vdebug_on_error \
- globals.f_Vdebug_on_error
-#define Vdebug_on_signal \
- globals.f_Vdebug_on_signal
-#define Vdebugger \
- globals.f_Vdebugger
-#define Vdefault_file_name_coding_system \
- globals.f_Vdefault_file_name_coding_system
-#define Vdefault_frame_alist \
- globals.f_Vdefault_frame_alist
-#define Vdefault_frame_scroll_bars \
- globals.f_Vdefault_frame_scroll_bars
-#define Vdefault_process_coding_system \
- globals.f_Vdefault_process_coding_system
-#define Vdefault_text_properties \
- globals.f_Vdefault_text_properties
-#define Vdeferred_action_function \
- globals.f_Vdeferred_action_function
-#define Vdeferred_action_list \
- globals.f_Vdeferred_action_list
-#define Vdefine_key_rebound_commands \
- globals.f_Vdefine_key_rebound_commands
-#define Vdelete_frame_functions \
- globals.f_Vdelete_frame_functions
-#define Vdelete_terminal_functions \
- globals.f_Vdelete_terminal_functions
-#define Vdisable_point_adjustment \
- globals.f_Vdisable_point_adjustment
-#define Vdisplay_pixels_per_inch \
- globals.f_Vdisplay_pixels_per_inch
-#define Vdoc_directory \
- globals.f_Vdoc_directory
-#define Vdoc_file_name \
- globals.f_Vdoc_file_name
-#define Vdos_display_scancodes \
- globals.f_Vdos_display_scancodes
-#define Vdos_unsupported_char_glyph \
- globals.f_Vdos_unsupported_char_glyph
-#define Vdos_version \
- globals.f_Vdos_version
-#define Vdos_windows_version \
- globals.f_Vdos_windows_version
-#define Vdouble_click_time \
- globals.f_Vdouble_click_time
-#define Vdynamic_library_alist \
- globals.f_Vdynamic_library_alist
-#define Vecho_keystrokes \
- globals.f_Vecho_keystrokes
-#define Vemacs_copyright \
- globals.f_Vemacs_copyright
-#define Vemacs_version \
- globals.f_Vemacs_version
-#define Vemulation_mode_map_alists \
- globals.f_Vemulation_mode_map_alists
-#define Venable_character_translation \
- globals.f_Venable_character_translation
-#define Venable_disabled_menus_and_buttons \
- globals.f_Venable_disabled_menus_and_buttons
-#define Veval_buffer_list \
- globals.f_Veval_buffer_list
-#define Vexec_directory \
- globals.f_Vexec_directory
-#define Vexec_path \
- globals.f_Vexec_path
-#define Vexec_suffixes \
- globals.f_Vexec_suffixes
-#define Vkbd_macro_termination_hook \
- globals.f_Vkbd_macro_termination_hook
-#define Vexecuting_kbd_macro \
- globals.f_Vexecuting_kbd_macro
-#define Vface_default_stipple \
- globals.f_Vface_default_stipple
-#define Vface_font_rescale_alist \
- globals.f_Vface_font_rescale_alist
-#define Vface_ignored_fonts \
- globals.f_Vface_ignored_fonts
-#define Vface_new_frame_defaults \
- globals.f_Vface_new_frame_defaults
-#define Vface_remapping_alist \
- globals.f_Vface_remapping_alist
-#define Vfeatures \
- globals.f_Vfeatures
-#define Vfile_coding_system_alist \
- globals.f_Vfile_coding_system_alist
-#define Vfile_name_coding_system \
- globals.f_Vfile_name_coding_system
-#define Vfile_name_handler_alist \
- globals.f_Vfile_name_handler_alist
-#define Vfind_word_boundary_function_table \
- globals.f_Vfind_word_boundary_function_table
-#define Vfirst_change_hook \
- globals.f_Vfirst_change_hook
-#define Vfloat_output_format \
- globals.f_Vfloat_output_format
-#define Vfont_ccl_encoder_alist \
- globals.f_Vfont_ccl_encoder_alist
-#define Vfont_encoding_alist \
- globals.f_Vfont_encoding_alist
-#define Vfont_encoding_charset_alist \
- globals.f_Vfont_encoding_charset_alist
-#define Vfont_list_limit \
- globals.f_Vfont_list_limit
-#define Vfont_log \
- globals.f_Vfont_log
-#define Vfont_slant_table \
- globals.f_Vfont_slant_table
-#define Vfont_weight_table \
- globals.f_Vfont_weight_table
-#define Vfont_width_table \
- globals.f_Vfont_width_table
-#define Vfontification_functions \
- globals.f_Vfontification_functions
-#define Vfontset_alias_alist \
- globals.f_Vfontset_alias_alist
-#define Vframe_alpha_lower_limit \
- globals.f_Vframe_alpha_lower_limit
-#define Vframe_title_format \
- globals.f_Vframe_title_format
-#define Vfringe_bitmaps \
- globals.f_Vfringe_bitmaps
-#define Vfunction_key_map \
- globals.f_Vfunction_key_map
-#define Vgc_cons_percentage \
- globals.f_Vgc_cons_percentage
-#define Vgc_elapsed \
- globals.f_Vgc_elapsed
-#define Vglobal_disable_point_adjustment \
- globals.f_Vglobal_disable_point_adjustment
-#define Vglobal_mode_string \
- globals.f_Vglobal_mode_string
-#define Vglyph_table \
- globals.f_Vglyph_table
-#define Vglyphless_char_display \
- globals.f_Vglyphless_char_display
-#define Vgtk_version_string \
- globals.f_Vgtk_version_string
-#define Vhelp_char \
- globals.f_Vhelp_char
-#define Vhelp_event_list \
- globals.f_Vhelp_event_list
-#define Vhelp_form \
- globals.f_Vhelp_form
-#define Vhistory_add_new_input \
- globals.f_Vhistory_add_new_input
-#define Vhistory_length \
- globals.f_Vhistory_length
-#define Vhourglass_delay \
- globals.f_Vhourglass_delay
-#define Vhscroll_step \
- globals.f_Vhscroll_step
-#define Vicon_title_format \
- globals.f_Vicon_title_format
-#define Vignore_relative_composition \
- globals.f_Vignore_relative_composition
-#define Vimage_cache_eviction_delay \
- globals.f_Vimage_cache_eviction_delay
-#define Vimage_types \
- globals.f_Vimage_types
-#define Vimagemagick_render_type \
- globals.f_Vimagemagick_render_type
-#define Vinhibit_changing_match_data \
- globals.f_Vinhibit_changing_match_data
-#define Vinhibit_field_text_motion \
- globals.f_Vinhibit_field_text_motion
-#define Vinhibit_file_name_handlers \
- globals.f_Vinhibit_file_name_handlers
-#define Vinhibit_file_name_operation \
- globals.f_Vinhibit_file_name_operation
-#define Vinhibit_point_motion_hooks \
- globals.f_Vinhibit_point_motion_hooks
-#define Vinhibit_quit \
- globals.f_Vinhibit_quit
-#define Vinhibit_read_only \
- globals.f_Vinhibit_read_only
-#define Vinhibit_redisplay \
- globals.f_Vinhibit_redisplay
-#define Vinitial_environment \
- globals.f_Vinitial_environment
-#define Vinitial_window_system \
- globals.f_Vinitial_window_system
-#define Vinput_method_function \
- globals.f_Vinput_method_function
-#define Vinput_method_previous_message \
- globals.f_Vinput_method_previous_message
-#define Vinstallation_directory \
- globals.f_Vinstallation_directory
-#define Vinvocation_directory \
- globals.f_Vinvocation_directory
-#define Vinvocation_name \
- globals.f_Vinvocation_name
-#define Vkey_translation_map \
- globals.f_Vkey_translation_map
-#define Vkill_buffer_query_functions \
- globals.f_Vkill_buffer_query_functions
-#define Vkill_emacs_hook \
- globals.f_Vkill_emacs_hook
-#define Vlast_code_conversion_error \
- globals.f_Vlast_code_conversion_error
-#define Vlast_coding_system_used \
- globals.f_Vlast_coding_system_used
-#define Vlast_event_frame \
- globals.f_Vlast_event_frame
-#define Vlatin_extra_code_table \
- globals.f_Vlatin_extra_code_table
-#define Vline_number_display_limit \
- globals.f_Vline_number_display_limit
-#define Vline_prefix \
- globals.f_Vline_prefix
-#define Vload_file_name \
- globals.f_Vload_file_name
-#define Vload_file_rep_suffixes \
- globals.f_Vload_file_rep_suffixes
-#define Vload_history \
- globals.f_Vload_history
-#define Vload_path \
- globals.f_Vload_path
-#define Vload_read_function \
- globals.f_Vload_read_function
-#define Vload_source_file_function \
- globals.f_Vload_source_file_function
-#define Vload_suffixes \
- globals.f_Vload_suffixes
-#define Vlocale_coding_system \
- globals.f_Vlocale_coding_system
-#define Vlucid_menu_bar_dirty_flag \
- globals.f_Vlucid_menu_bar_dirty_flag
-#define Vmacro_declaration_function \
- globals.f_Vmacro_declaration_function
-#define Vmake_pointer_invisible \
- globals.f_Vmake_pointer_invisible
-#define Vmark_even_if_inactive \
- globals.f_Vmark_even_if_inactive
-#define Vmax_image_size \
- globals.f_Vmax_image_size
-#define Vmax_mini_window_height \
- globals.f_Vmax_mini_window_height
-#define Vmemory_full \
- globals.f_Vmemory_full
-#define Vmemory_signal_data \
- globals.f_Vmemory_signal_data
-#define Vmenu_bar_final_items \
- globals.f_Vmenu_bar_final_items
-#define Vmenu_bar_mode \
- globals.f_Vmenu_bar_mode
-#define Vmenu_bar_update_hook \
- globals.f_Vmenu_bar_update_hook
-#define Vmenu_updating_frame \
- globals.f_Vmenu_updating_frame
-#define Vmessage_log_max \
- globals.f_Vmessage_log_max
-#define Vminibuf_scroll_window \
- globals.f_Vminibuf_scroll_window
-#define Vminibuffer_completing_file_name \
- globals.f_Vminibuffer_completing_file_name
-#define Vminibuffer_completion_confirm \
- globals.f_Vminibuffer_completion_confirm
-#define Vminibuffer_completion_predicate \
- globals.f_Vminibuffer_completion_predicate
-#define Vminibuffer_completion_table \
- globals.f_Vminibuffer_completion_table
-#define Vminibuffer_exit_hook \
- globals.f_Vminibuffer_exit_hook
-#define Vminibuffer_help_form \
- globals.f_Vminibuffer_help_form
-#define Vminibuffer_history_position \
- globals.f_Vminibuffer_history_position
-#define Vminibuffer_history_variable \
- globals.f_Vminibuffer_history_variable
-#define Vminibuffer_local_completion_map \
- globals.f_Vminibuffer_local_completion_map
-#define Vminibuffer_local_filename_completion_map \
- globals.f_Vminibuffer_local_filename_completion_map
-#define Vminibuffer_local_filename_must_match_map \
- globals.f_Vminibuffer_local_filename_must_match_map
-#define Vminibuffer_local_map \
- globals.f_Vminibuffer_local_map
-#define Vminibuffer_local_must_match_map \
- globals.f_Vminibuffer_local_must_match_map
-#define Vminibuffer_local_ns_map \
- globals.f_Vminibuffer_local_ns_map
-#define Vminibuffer_message_timeout \
- globals.f_Vminibuffer_message_timeout
-#define Vminibuffer_prompt_properties \
- globals.f_Vminibuffer_prompt_properties
-#define Vminibuffer_setup_hook \
- globals.f_Vminibuffer_setup_hook
-#define Vminor_mode_map_alist \
- globals.f_Vminor_mode_map_alist
-#define Vminor_mode_overriding_map_alist \
- globals.f_Vminor_mode_overriding_map_alist
-#define Vmost_negative_fixnum \
- globals.f_Vmost_negative_fixnum
-#define Vmost_positive_fixnum \
- globals.f_Vmost_positive_fixnum
-#define Vmotif_version_string \
- globals.f_Vmotif_version_string
-#define Vmouse_autoselect_window \
- globals.f_Vmouse_autoselect_window
-#define Vmouse_highlight \
- globals.f_Vmouse_highlight
-#define Vmouse_leave_buffer_hook \
- globals.f_Vmouse_leave_buffer_hook
-#define Vmouse_position_function \
- globals.f_Vmouse_position_function
-#define Vnetwork_coding_system_alist \
- globals.f_Vnetwork_coding_system_alist
-#define Vnext_selection_coding_system \
- globals.f_Vnext_selection_coding_system
-#define Vnobreak_char_display \
- globals.f_Vnobreak_char_display
-#define Vobarray \
- globals.f_Vobarray
-#define Vold_style_backquotes \
- globals.f_Vold_style_backquotes
-#define Voperating_system_release \
- globals.f_Voperating_system_release
-#define Votf_script_alist \
- globals.f_Votf_script_alist
-#define Vother_window_scroll_buffer \
- globals.f_Vother_window_scroll_buffer
-#define Voverflow_newline_into_fringe \
- globals.f_Voverflow_newline_into_fringe
-#define Voverlay_arrow_position \
- globals.f_Voverlay_arrow_position
-#define Voverlay_arrow_string \
- globals.f_Voverlay_arrow_string
-#define Voverlay_arrow_variable_list \
- globals.f_Voverlay_arrow_variable_list
-#define Voverriding_local_map \
- globals.f_Voverriding_local_map
-#define Voverriding_local_map_menu_flag \
- globals.f_Voverriding_local_map_menu_flag
-#define Vpath_separator \
- globals.f_Vpath_separator
-#define Vpost_command_hook \
- globals.f_Vpost_command_hook
-#define Vpost_gc_hook \
- globals.f_Vpost_gc_hook
-#define Vpost_self_insert_hook \
- globals.f_Vpost_self_insert_hook
-#define Vpre_command_hook \
- globals.f_Vpre_command_hook
-#define Vprefix_help_command \
- globals.f_Vprefix_help_command
-#define Vpreloaded_file_list \
- globals.f_Vpreloaded_file_list
-#define Vprevious_system_messages_locale \
- globals.f_Vprevious_system_messages_locale
-#define Vprevious_system_time_locale \
- globals.f_Vprevious_system_time_locale
-#define Vprint_charset_text_property \
- globals.f_Vprint_charset_text_property
-#define Vprint_circle \
- globals.f_Vprint_circle
-#define Vprint_continuous_numbering \
- globals.f_Vprint_continuous_numbering
-#define Vprint_gensym \
- globals.f_Vprint_gensym
-#define Vprint_length \
- globals.f_Vprint_length
-#define Vprint_level \
- globals.f_Vprint_level
-#define Vprint_number_table \
- globals.f_Vprint_number_table
-#define Vprintable_chars \
- globals.f_Vprintable_chars
-#define Vprocess_adaptive_read_buffering \
- globals.f_Vprocess_adaptive_read_buffering
-#define Vprocess_coding_system_alist \
- globals.f_Vprocess_coding_system_alist
-#define Vprocess_connection_type \
- globals.f_Vprocess_connection_type
-#define Vprocess_environment \
- globals.f_Vprocess_environment
-#define Vpurify_flag \
- globals.f_Vpurify_flag
-#define Vquit_flag \
- globals.f_Vquit_flag
-#define Vread_buffer_function \
- globals.f_Vread_buffer_function
-#define Vread_expression_history \
- globals.f_Vread_expression_history
-#define Vread_circle \
- globals.f_Vread_circle
-#define Vread_expression_map \
- globals.f_Vread_expression_map
-#define Vread_symbol_positions_list \
- globals.f_Vread_symbol_positions_list
-#define Vread_with_symbol_positions \
- globals.f_Vread_with_symbol_positions
-#define Vrecenter_redisplay \
- globals.f_Vrecenter_redisplay
-#define Vredisplay_end_trigger_functions \
- globals.f_Vredisplay_end_trigger_functions
-#define Vredisplay_preemption_period \
- globals.f_Vredisplay_preemption_period
-#define Vresize_mini_windows \
- globals.f_Vresize_mini_windows
-#define Vresume_tty_functions \
- globals.f_Vresume_tty_functions
-#define Vring_bell_function \
- globals.f_Vring_bell_function
-#define Vsaved_region_selection \
- globals.f_Vsaved_region_selection
-#define Vscalable_fonts_allowed \
- globals.f_Vscalable_fonts_allowed
-#define Vscript_representative_chars \
- globals.f_Vscript_representative_chars
-#define Vscroll_preserve_screen_position \
- globals.f_Vscroll_preserve_screen_position
-#define Vsearch_spaces_regexp \
- globals.f_Vsearch_spaces_regexp
-#define Vselect_active_regions \
- globals.f_Vselect_active_regions
-#define Vselect_safe_coding_system_function \
- globals.f_Vselect_safe_coding_system_function
-#define Vselection_coding_system \
- globals.f_Vselection_coding_system
-#define Vselection_converter_alist \
- globals.f_Vselection_converter_alist
-#define Vset_auto_coding_function \
- globals.f_Vset_auto_coding_function
-#define Vshared_game_score_directory \
- globals.f_Vshared_game_score_directory
-#define Vshell_file_name \
- globals.f_Vshell_file_name
-#define Vshow_help_function \
- globals.f_Vshow_help_function
-#define Vshow_trailing_whitespace \
- globals.f_Vshow_trailing_whitespace
-#define Vsignal_hook_function \
- globals.f_Vsignal_hook_function
-#define Vsource_directory \
- globals.f_Vsource_directory
-#define Vspecial_event_map \
- globals.f_Vspecial_event_map
-#define Vstandard_display_table \
- globals.f_Vstandard_display_table
-#define Vstandard_input \
- globals.f_Vstandard_input
-#define Vstandard_output \
- globals.f_Vstandard_output
-#define Vstandard_translation_table_for_decode \
- globals.f_Vstandard_translation_table_for_decode
-#define Vstandard_translation_table_for_encode \
- globals.f_Vstandard_translation_table_for_encode
-#define Vsuggest_key_bindings \
- globals.f_Vsuggest_key_bindings
-#define Vsuspend_tty_functions \
- globals.f_Vsuspend_tty_functions
-#define Vsystem_configuration \
- globals.f_Vsystem_configuration
-#define Vsystem_configuration_options \
- globals.f_Vsystem_configuration_options
-#define Vsystem_messages_locale \
- globals.f_Vsystem_messages_locale
-#define Vsystem_name \
- globals.f_Vsystem_name
-#define Vsystem_time_locale \
- globals.f_Vsystem_time_locale
-#define Vsystem_type \
- globals.f_Vsystem_type
-#define Vtemp_buffer_show_function \
- globals.f_Vtemp_buffer_show_function
-#define Vtemporary_file_directory \
- globals.f_Vtemporary_file_directory
-#define Vterminal_frame \
- globals.f_Vterminal_frame
-#define Vtext_property_default_nonsticky \
- globals.f_Vtext_property_default_nonsticky
-#define Vthis_command \
- globals.f_Vthis_command
-#define Vthis_command_keys_shift_translated \
- globals.f_Vthis_command_keys_shift_translated
-#define Vthis_original_command \
- globals.f_Vthis_original_command
-#define Vthrow_on_input \
- globals.f_Vthrow_on_input
-#define Vtimer_idle_list \
- globals.f_Vtimer_idle_list
-#define Vtimer_list \
- globals.f_Vtimer_list
-#define Vtool_bar_border \
- globals.f_Vtool_bar_border
-#define Vtool_bar_button_margin \
- globals.f_Vtool_bar_button_margin
-#define Vtool_bar_mode \
- globals.f_Vtool_bar_mode
-#define Vtool_bar_separator_image_expression \
- globals.f_Vtool_bar_separator_image_expression
-#define Vtool_bar_style \
- globals.f_Vtool_bar_style
-#define Vtop_level \
- globals.f_Vtop_level
-#define Vtransient_mark_mode \
- globals.f_Vtransient_mark_mode
-#define Vtranslation_hash_table_vector \
- globals.f_Vtranslation_hash_table_vector
-#define Vtranslation_table_for_input \
- globals.f_Vtranslation_table_for_input
-#define Vtranslation_table_vector \
- globals.f_Vtranslation_table_vector
-#define Vtruncate_partial_width_windows \
- globals.f_Vtruncate_partial_width_windows
-#define Vtty_defined_color_alist \
- globals.f_Vtty_defined_color_alist
-#define Vtty_erase_char \
- globals.f_Vtty_erase_char
-#define Vundo_outer_limit \
- globals.f_Vundo_outer_limit
-#define Vundo_outer_limit_function \
- globals.f_Vundo_outer_limit_function
-#define Vunicode_category_table \
- globals.f_Vunicode_category_table
-#define Vunread_command_events \
- globals.f_Vunread_command_events
-#define Vunread_input_method_events \
- globals.f_Vunread_input_method_events
-#define Vunread_post_input_method_events \
- globals.f_Vunread_post_input_method_events
-#define Vuse_default_ascent \
- globals.f_Vuse_default_ascent
-#define Vuser_full_name \
- globals.f_Vuser_full_name
-#define Vuser_init_file \
- globals.f_Vuser_init_file
-#define Vuser_login_name \
- globals.f_Vuser_login_name
-#define Vuser_real_login_name \
- globals.f_Vuser_real_login_name
-#define Vvalues \
- globals.f_Vvalues
-#define Vvertical_centering_font_regexp \
- globals.f_Vvertical_centering_font_regexp
-#define Vvoid_text_area_pointer \
- globals.f_Vvoid_text_area_pointer
-#define Vw32_alt_is_meta \
- globals.f_Vw32_alt_is_meta
-#define Vw32_apps_modifier \
- globals.f_Vw32_apps_modifier
-#define Vw32_bdf_filename_alist \
- globals.f_Vw32_bdf_filename_alist
-#define Vw32_capslock_is_shiftlock \
- globals.f_Vw32_capslock_is_shiftlock
-#define Vw32_charset_info_alist \
- globals.f_Vw32_charset_info_alist
-#define Vw32_color_map \
- globals.f_Vw32_color_map
-#define Vw32_downcase_file_names \
- globals.f_Vw32_downcase_file_names
-#define Vw32_enable_caps_lock \
- globals.f_Vw32_enable_caps_lock
-#define Vw32_enable_num_lock \
- globals.f_Vw32_enable_num_lock
-#define Vw32_enable_palette \
- globals.f_Vw32_enable_palette
-#define Vw32_generate_fake_inodes \
- globals.f_Vw32_generate_fake_inodes
-#define Vw32_get_true_file_attributes \
- globals.f_Vw32_get_true_file_attributes
-#define Vw32_grab_focus_on_raise \
- globals.f_Vw32_grab_focus_on_raise
-#define Vw32_lwindow_modifier \
- globals.f_Vw32_lwindow_modifier
-#define Vw32_pass_alt_to_system \
- globals.f_Vw32_pass_alt_to_system
-#define Vw32_pass_lwindow_to_system \
- globals.f_Vw32_pass_lwindow_to_system
-#define Vw32_pass_rwindow_to_system \
- globals.f_Vw32_pass_rwindow_to_system
-#define Vw32_phantom_key_code \
- globals.f_Vw32_phantom_key_code
-#define Vw32_quote_process_args \
- globals.f_Vw32_quote_process_args
-#define Vw32_recognize_altgr \
- globals.f_Vw32_recognize_altgr
-#define Vw32_rwindow_modifier \
- globals.f_Vw32_rwindow_modifier
-#define Vw32_scroll_lock_modifier \
- globals.f_Vw32_scroll_lock_modifier
-#define Vw32_start_process_inherit_error_mode \
- globals.f_Vw32_start_process_inherit_error_mode
-#define Vw32_start_process_share_console \
- globals.f_Vw32_start_process_share_console
-#define Vw32_start_process_show_window \
- globals.f_Vw32_start_process_show_window
-#define Vw32_swap_mouse_buttons \
- globals.f_Vw32_swap_mouse_buttons
-#define Vwhere_is_preferred_modifier \
- globals.f_Vwhere_is_preferred_modifier
-#define Vwindow_configuration_change_hook \
- globals.f_Vwindow_configuration_change_hook
-#define Vwindow_point_insertion_type \
- globals.f_Vwindow_point_insertion_type
-#define Vwindow_scroll_functions \
- globals.f_Vwindow_scroll_functions
-#define Vwindow_size_change_functions \
- globals.f_Vwindow_size_change_functions
-#define Vwindow_system_version \
- globals.f_Vwindow_system_version
-#define Vwindow_text_change_functions \
- globals.f_Vwindow_text_change_functions
-#define Vword_combining_categories \
- globals.f_Vword_combining_categories
-#define Vword_separating_categories \
- globals.f_Vword_separating_categories
-#define Vwrap_prefix \
- globals.f_Vwrap_prefix
-#define Vwrite_region_annotate_functions \
- globals.f_Vwrite_region_annotate_functions
-#define Vwrite_region_annotations_so_far \
- globals.f_Vwrite_region_annotations_so_far
-#define Vwrite_region_post_annotation_function \
- globals.f_Vwrite_region_post_annotation_function
-#define Vx_alt_keysym \
- globals.f_Vx_alt_keysym
-#define Vx_bitmap_file_path \
- globals.f_Vx_bitmap_file_path
-#define Vx_cursor_fore_pixel \
- globals.f_Vx_cursor_fore_pixel
-#define Vx_hourglass_pointer_shape \
- globals.f_Vx_hourglass_pointer_shape
-#define Vx_hyper_keysym \
- globals.f_Vx_hyper_keysym
-#define Vx_keysym_table \
- globals.f_Vx_keysym_table
-#define Vx_lost_selection_functions \
- globals.f_Vx_lost_selection_functions
-#define Vx_max_tooltip_size \
- globals.f_Vx_max_tooltip_size
-#define Vx_meta_keysym \
- globals.f_Vx_meta_keysym
-#define Vx_mode_pointer_shape \
- globals.f_Vx_mode_pointer_shape
-#define Vx_no_window_manager \
- globals.f_Vx_no_window_manager
-#define Vx_nontext_pointer_shape \
- globals.f_Vx_nontext_pointer_shape
-#define Vx_pixel_size_width_font_regexp \
- globals.f_Vx_pixel_size_width_font_regexp
-#define Vx_pointer_shape \
- globals.f_Vx_pointer_shape
-#define Vx_resource_class \
- globals.f_Vx_resource_class
-#define Vx_resource_name \
- globals.f_Vx_resource_name
-#define Vx_sensitive_text_pointer_shape \
- globals.f_Vx_sensitive_text_pointer_shape
-#define Vx_sent_selection_functions \
- globals.f_Vx_sent_selection_functions
-#define Vx_session_id \
- globals.f_Vx_session_id
-#define Vx_session_previous_id \
- globals.f_Vx_session_previous_id
-#define Vx_super_keysym \
- globals.f_Vx_super_keysym
-#define Vx_toolkit_scroll_bars \
- globals.f_Vx_toolkit_scroll_bars
-#define Vx_window_horizontal_drag_shape \
- globals.f_Vx_window_horizontal_drag_shape
-#define Vxft_settings \
- globals.f_Vxft_settings
-#define auto_raise_tool_bar_buttons_p \
- globals.f_auto_raise_tool_bar_buttons_p
-#define auto_save_interval \
- globals.f_auto_save_interval
-#define auto_window_vscroll_p \
- globals.f_auto_window_vscroll_p
-#define automatic_hscrolling_p \
- globals.f_automatic_hscrolling_p
-#define baud_rate \
- globals.f_baud_rate
-#define byte_debug_flag \
- globals.f_byte_debug_flag
-#define byte_metering_on \
- globals.f_byte_metering_on
-#define cannot_suspend \
- globals.f_cannot_suspend
-#define check_markers_debug_flag \
- globals.f_check_markers_debug_flag
-#define coding_system_require_warning \
- globals.f_coding_system_require_warning
-#define completion_ignore_case \
- globals.f_completion_ignore_case
-#define cons_cells_consed \
- globals.f_cons_cells_consed
-#define cross_disabled_images \
- globals.f_cross_disabled_images
-#define cursor_in_echo_area \
- globals.f_cursor_in_echo_area
-#define debug_end_pos \
- globals.f_debug_end_pos
-#define debug_on_next_call \
- globals.f_debug_on_next_call
-#define debug_on_quit \
- globals.f_debug_on_quit
-#define debugger_may_continue \
- globals.f_debugger_may_continue
-#define delete_by_moving_to_trash \
- globals.f_delete_by_moving_to_trash
-#define delete_exited_processes \
- globals.f_delete_exited_processes
-#define display_hourglass_p \
- globals.f_display_hourglass_p
-#define do_mouse_tracking \
- globals.f_do_mouse_tracking
-#define dos_codepage \
- globals.f_dos_codepage
-#define dos_country_code \
- globals.f_dos_country_code
-#define dos_decimal_point \
- globals.f_dos_decimal_point
-#define dos_hyper_key \
- globals.f_dos_hyper_key
-#define dos_keyboard_layout \
- globals.f_dos_keyboard_layout
-#define dos_keypad_mode \
- globals.f_dos_keypad_mode
-#define dos_super_key \
- globals.f_dos_super_key
-#define dos_timezone_offset \
- globals.f_dos_timezone_offset
-#define double_click_fuzz \
- globals.f_double_click_fuzz
-#define emacs_scroll_step \
- globals.f_emacs_scroll_step
-#define enable_recursive_minibuffers \
- globals.f_enable_recursive_minibuffers
-#define eol_mnemonic_dos \
- globals.f_eol_mnemonic_dos
-#define eol_mnemonic_mac \
- globals.f_eol_mnemonic_mac
-#define eol_mnemonic_undecided \
- globals.f_eol_mnemonic_undecided
-#define eol_mnemonic_unix \
- globals.f_eol_mnemonic_unix
-#define executing_kbd_macro_index \
- globals.f_executing_kbd_macro_index
-#define extra_keyboard_modifiers \
- globals.f_extra_keyboard_modifiers
-#define floats_consed \
- globals.f_floats_consed
-#define focus_follows_mouse \
- globals.f_focus_follows_mouse
-#define force_load_messages \
- globals.f_force_load_messages
-#define garbage_collection_messages \
- globals.f_garbage_collection_messages
-#define gc_cons_threshold \
- globals.f_gc_cons_threshold
-#define gcs_done \
- globals.f_gcs_done
-#define highlight_nonselected_windows \
- globals.f_highlight_nonselected_windows
-#define history_delete_duplicates \
- globals.f_history_delete_duplicates
-#define hscroll_margin \
- globals.f_hscroll_margin
-#define indent_tabs_mode \
- globals.f_indent_tabs_mode
-#define inherit_process_coding_system \
- globals.f_inherit_process_coding_system
-#define inhibit_eol_conversion \
- globals.f_inhibit_eol_conversion
-#define inhibit_eval_during_redisplay \
- globals.f_inhibit_eval_during_redisplay
-#define inhibit_free_realized_faces \
- globals.f_inhibit_free_realized_faces
-#define inhibit_iso_escape_detection \
- globals.f_inhibit_iso_escape_detection
-#define inhibit_load_charset_map \
- globals.f_inhibit_load_charset_map
-#define inhibit_local_menu_bar_menus \
- globals.f_inhibit_local_menu_bar_menus
-#define inhibit_menubar_update \
- globals.f_inhibit_menubar_update
-#define inhibit_modification_hooks \
- globals.f_inhibit_modification_hooks
-#define inhibit_null_byte_detection \
- globals.f_inhibit_null_byte_detection
-#define inhibit_try_cursor_movement \
- globals.f_inhibit_try_cursor_movement
-#define inhibit_try_window_id \
- globals.f_inhibit_try_window_id
-#define inhibit_try_window_reusing \
- globals.f_inhibit_try_window_reusing
-#define inhibit_x_resources \
- globals.f_inhibit_x_resources
-#define intervals_consed \
- globals.f_intervals_consed
-#define inverse_video \
- globals.f_inverse_video
-#define last_command_event \
- globals.f_last_command_event
-#define last_input_event \
- globals.f_last_input_event
-#define last_nonmenu_event \
- globals.f_last_nonmenu_event
-#define line_number_display_limit_width \
- globals.f_line_number_display_limit_width
-#define load_convert_to_unibyte \
- globals.f_load_convert_to_unibyte
-#define load_dangerous_libraries \
- globals.f_load_dangerous_libraries
-#define load_force_doc_strings \
- globals.f_load_force_doc_strings
-#define load_in_progress \
- globals.f_load_in_progress
-#define make_cursor_line_fully_visible_p \
- globals.f_make_cursor_line_fully_visible_p
-#define max_lisp_eval_depth \
- globals.f_max_lisp_eval_depth
-#define max_specpdl_size \
- globals.f_max_specpdl_size
-#define menu_prompt_more_char \
- globals.f_menu_prompt_more_char
-#define menu_prompting \
- globals.f_menu_prompting
-#define message_truncate_lines \
- globals.f_message_truncate_lines
-#define meta_prefix_char \
- globals.f_meta_prefix_char
-#define minibuffer_allow_text_properties \
- globals.f_minibuffer_allow_text_properties
-#define minibuffer_auto_raise \
- globals.f_minibuffer_auto_raise
-#define misc_objects_consed \
- globals.f_misc_objects_consed
-#define mode_line_in_non_selected_windows \
- globals.f_mode_line_in_non_selected_windows
-#define mode_line_inverse_video \
- globals.f_mode_line_inverse_video
-#define multibyte_syntax_as_symbol \
- globals.f_multibyte_syntax_as_symbol
-#define multiple_frames \
- globals.f_multiple_frames
-#define next_screen_context_lines \
- globals.f_next_screen_context_lines
-#define no_redraw_on_reenter \
- globals.f_no_redraw_on_reenter
-#define noninteractive1 \
- globals.f_noninteractive1
-#define num_input_keys \
- globals.f_num_input_keys
-#define num_nonmacro_input_events \
- globals.f_num_nonmacro_input_events
-#define open_paren_in_column_0_is_defun_start \
- globals.f_open_paren_in_column_0_is_defun_start
-#define overline_margin \
- globals.f_overline_margin
-#define parse_sexp_ignore_comments \
- globals.f_parse_sexp_ignore_comments
-#define parse_sexp_lookup_properties \
- globals.f_parse_sexp_lookup_properties
-#define polling_period \
- globals.f_polling_period
-#define print_escape_multibyte \
- globals.f_print_escape_multibyte
-#define print_escape_newlines \
- globals.f_print_escape_newlines
-#define print_escape_nonascii \
- globals.f_print_escape_nonascii
-#define print_quoted \
- globals.f_print_quoted
-#define pure_bytes_used \
- globals.f_pure_bytes_used
-#define read_buffer_completion_ignore_case \
- globals.f_read_buffer_completion_ignore_case
-#define redisplay_dont_pause \
- globals.f_redisplay_dont_pause
-#define scroll_conservatively \
- globals.f_scroll_conservatively
-#define scroll_margin \
- globals.f_scroll_margin
-#define string_chars_consed \
- globals.f_string_chars_consed
-#define strings_consed \
- globals.f_strings_consed
-#define symbols_consed \
- globals.f_symbols_consed
-#define system_uses_terminfo \
- globals.f_system_uses_terminfo
-#define tool_bar_button_relief \
- globals.f_tool_bar_button_relief
-#define tool_bar_max_label_size \
- globals.f_tool_bar_max_label_size
-#define underline_minimum_offset \
- globals.f_underline_minimum_offset
-#define undo_inhibit_record_point \
- globals.f_undo_inhibit_record_point
-#define undo_limit \
- globals.f_undo_limit
-#define undo_strong_limit \
- globals.f_undo_strong_limit
-#define unibyte_display_via_language_environment \
- globals.f_unibyte_display_via_language_environment
-#define unread_command_char \
- globals.f_unread_command_char
-#define use_dialog_box \
- globals.f_use_dialog_box
-#define use_file_dialog \
- globals.f_use_file_dialog
-#define use_system_font \
- globals.f_use_system_font
-#define vector_cells_consed \
- globals.f_vector_cells_consed
-#define visible_bell \
- globals.f_visible_bell
-#define visible_cursor \
- globals.f_visible_cursor
-#define w32_ansi_code_page \
- globals.f_w32_ansi_code_page
-#define w32_enable_synthesized_fonts \
- globals.f_w32_enable_synthesized_fonts
-#define w32_mouse_button_tolerance \
- globals.f_w32_mouse_button_tolerance
-#define w32_mouse_move_interval \
- globals.f_w32_mouse_move_interval
-#define w32_num_mouse_buttons \
- globals.f_w32_num_mouse_buttons
-#define w32_pass_extra_mouse_buttons_to_system \
- globals.f_w32_pass_extra_mouse_buttons_to_system
-#define w32_pass_multimedia_buttons_to_system \
- globals.f_w32_pass_multimedia_buttons_to_system
-#define w32_pipe_read_delay \
- globals.f_w32_pipe_read_delay
-#define w32_quit_key \
- globals.f_w32_quit_key
-#define w32_strict_fontnames \
- globals.f_w32_strict_fontnames
-#define w32_strict_painting \
- globals.f_w32_strict_painting
-#define w32_use_full_screen_buffer \
- globals.f_w32_use_full_screen_buffer
-#define w32_use_visible_system_caret \
- globals.f_w32_use_visible_system_caret
-#define window_min_height \
- globals.f_window_min_height
-#define window_min_width \
- globals.f_window_min_width
-#define words_include_escapes \
- globals.f_words_include_escapes
-#define write_region_inhibit_fsync \
- globals.f_write_region_inhibit_fsync
-#define x_gtk_file_dialog_help_text \
- globals.f_x_gtk_file_dialog_help_text
-#define x_gtk_show_hidden_files \
- globals.f_x_gtk_show_hidden_files
-#define x_gtk_use_old_file_dialog \
- globals.f_x_gtk_use_old_file_dialog
-#define x_gtk_use_system_tooltips \
- globals.f_x_gtk_use_system_tooltips
-#define x_gtk_whole_detached_tool_bar \
- globals.f_x_gtk_whole_detached_tool_bar
-#define x_mouse_click_focus_ignore_position \
- globals.f_x_mouse_click_focus_ignore_position
-#define x_selection_timeout \
- globals.f_x_selection_timeout
-#define x_stretch_cursor_p \
- globals.f_x_stretch_cursor_p
-#define x_underline_at_descent_line \
- globals.f_x_underline_at_descent_line
-#define x_use_underline_position_properties \
- globals.f_x_use_underline_position_properties
-#define ns_input_file \
- globals.f_ns_input_file
-#define ns_input_font \
- globals.f_ns_input_font
-#define ns_input_fontsize \
- globals.f_ns_input_fontsize
-#define ns_input_line \
- globals.f_ns_input_line
-#define ns_input_color \
- globals.f_ns_input_color
-#define ns_input_text \
- globals.f_ns_input_text
-#define ns_working_text \
- globals.f_ns_working_text
-#define ns_input_spi_name \
- globals.f_ns_input_spi_name
-#define ns_input_spi_arg \
- globals.f_ns_input_spi_arg
-#define ns_alternate_modifier \
- globals.f_ns_alternate_modifier
-#define ns_right_alternate_modifier \
- globals.f_ns_right_alternate_modifier
-#define ns_command_modifier \
- globals.f_ns_command_modifier
-#define ns_right_command_modifier \
- globals.f_ns_right_command_modifier
-#define ns_control_modifier \
- globals.f_ns_control_modifier
-#define ns_right_control_modifier \
- globals.f_ns_right_control_modifier
-#define ns_function_modifier \
- globals.f_ns_function_modifier
-#define ns_antialias_text \
- globals.f_ns_antialias_text
-#define ns_confirm_quit \
- globals.f_ns_confirm_quit
-#define Vns_icon_type_alist \
- globals.f_Vns_icon_type_alist
-#define Vns_version_string \
- globals.f_Vns_version_string
-#define Vns_sent_selection_hooks \
- globals.f_Vns_sent_selection_hooks
-#define Vns_lost_selection_hooks \
- globals.f_Vns_lost_selection_hooks
-#define Vselection_alist \
- globals.f_Vselection_alist
-#define Vns_reg_to_script \
- 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:
echo $(OBJ2) '\' >> buildobj.h
echo '$(DQUOTE)' >> buildobj.h
+GLOBAL_SOURCES = dosfns.c msdos.c \
+ xterm.c xfns.c xmenu.c xselect.c xrdb.c xsmfns.c fringe.c image.c \
+ fontset.c menu.c dbusbind.c \
+ w32.c w32console.c w32fns.c w32heap.c w32inevt.c \
+ w32menu.c w32proc.c w32reg.c w32select.c w32term.c w32xfns.c \
+ font.c w32font.c w32uniscribe.c \
+ dispnew.c frame.c scroll.c xdisp.c window.c bidi.c \
+ charset.c coding.c category.c ccl.c character.c chartab.c \
+ cm.c term.c terminal.c xfaces.c \
+ emacs.c keyboard.c macros.c keymap.c sysdep.c \
+ buffer.c filelock.c insdel.c marker.c \
+ minibuf.c fileio.c dired.c filemode.c \
+ cmds.c casetab.c casefiddle.c indent.c search.c regex.c undo.c \
+ alloc.c data.c doc.c editfns.c callint.c \
+ eval.c floatfns.c fns.c print.c lread.c \
+ syntax.c bytecode.c \
+ process.c callproc.c unexw32.c \
+ region-cache.c sound.c atimer.c \
+ doprnt.c intervals.c textprop.c composite.c md5.c
+SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
+ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o
+obj = $(GLOBAL_SOURCES:.c=.o)
+
+globals.h: gl-stamp
+
+gl-stamp: ../lib-src/$(BLD)/make-docfile.exe $(GLOBAL_SOURCES)
+ - $(DEL) gl-tmp
+ "../lib-src/$(BLD)/make-docfile" -d . -g $(SOME_MACHINE_OBJECTS) $(obj) > gl-tmp
+ cmd /c "fc /b gl-tmp globals.h >nul 2>&1 || $(CP) gl-tmp globals.h"
+ - $(DEL) gl-tmp
+ echo timestamp > $@
+
bootstrap: bootstrap-emacs
#
@@ -279,7 +311,7 @@ clean:
- $(DEL) "s/*.h~" "m/*.h~"
- $(DEL) $(COMPILER_TEMP_FILES)
- $(DEL_TREE) $(OBJDIR)
- - $(DEL) stamp_BLD
+ - $(DEL) stamp_BLD gl-stamp globals.h
- $(DEL) buildobj.h
distclean: 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)
Lisp_Object QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME;
+static Lisp_Object Vselection_alist;
+
static Lisp_Object Qforeign_selection;
/* 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;
/* Defined in keyboard.c. */
extern unsigned long last_event_timestamp;
+/* This is an association list whose elements are of the form
+ ( SELECTION-NAME SELECTION-VALUE SELECTION-TIMESTAMP FRAME)
+ SELECTION-NAME is a lisp symbol, whose name is the name of an X Atom.
+ SELECTION-VALUE is the value that emacs owns for that selection.
+ It may be any kind of Lisp object.
+ SELECTION-TIMESTAMP is the time at which emacs began owning this selection,
+ as a cons of two 16-bit numbers (making a 32 bit time.)
+ FRAME is the frame for which we made the selection.
+ If there is an entry in this alist, then it can be assumed that Emacs owns
+ that selection.
+ The only (eq) parts of this list that are visible from Lisp are the
+ selection-values. */
+static Lisp_Object Vselection_alist;
+
/* 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 @@
+2011-02-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * indent/shell.sh:
+ * indent/shell.rc: New files.
+
2011-01-27 Chong Yidong <cyd@stupidchicken.com>
* 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 @@
+#!/bin/rc
+
+if (foo) {
+ echo 1
+}
+if not {
+ echo 2
+}
+
+if (foo)
+ echo 3 # KNOWN INDENT BUG
+if not
+ echo 4 # KNOWN INDENT BUG
+
+switch ($a) {
+ case 3
+ echo 4
+ case 5
+ echo 7
+ for (i in a b c) {
+ echo $i
+ }
+ for (i in a b c)
+ echo "$i" # KNOWN INDENT BUG
+ echo titi
+
+ case *
+ echo other
+}
+
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 @@
+#!/bin/sh
+
+setlock -n /tmp/getmail.lock && echo getmail isn\'t running
+
+# adsgsdg
+
+foo () {
+
+ bar () {
+ blilbi
+ }
+
+ case toto
+ in a) hello # KNOWN INDENT BUG
+ ;; b) hi # KNOWN INDENT BUG
+ esac
+
+ case $toto in
+ a) echo 1;; b) echo 2;;
+ c) echo 3;;
+ esac
+
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=/\\1=''/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add
+ # quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ cat # KNOWN INDENT BUG
+
+ case toto in
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+ 5)
+ hello ;;
+ 3) hello $(adfad)
+ echo esac ;; # KNOWN INDENT BUG
+ 5) hello ;;
+ 4) hello ;&
+ 4) hello ;;&
+ 5) hello ;;
+ 5) hello ;;
+ esac
+
+ echo "'" wfgfe
+
+ #!/bin/bash
+ cat << EOF \
+ | cat sadfsafd \
+ sadfsafd "KNOWN INDENT BUG" \
+ | tee -a bug.txt
+asdfsaf
+This is a test case for a bug in bash shell mode text highlighting
+EOF
+
+ cat <<EOF1 <<EOF2 # KNOWN INDENT BUG
+help1
+EOF1
+help2
+EOF2
+}
+bar () {
+ if [ $# == 0 ]; then
+ while
+ f # KNOWN INDENT BUG
+ do
+ bla;
+ done
+ echo "Highlighting is screwed up now"
+ if [ 1 = 1 ]; then
+ # adsgsdg
+ echo "screwed up"
+ fi
+
+ $@ $? $#
+
+ for f in *
+ do
+ sdfg
+ done
+
+ if swrgfef
+ then blas
+ else sdf
+ fi
+
+ fi
+}