-This directory tree holds version 22.0.94 of GNU Emacs, the extensible,
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
+ See the end of the file for license conditions.
+
+
+This directory tree holds version 23.0.51 of GNU Emacs, the extensible,
customizable, self-documenting real-time display editor.
The file INSTALL in this directory says how to build and install GNU
that aren't part of the standard distribution of the OS. The
platform-specific README files and installation instructions should
list the required tools.
+
+ \f
+ 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 2, 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; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
vax-*-netbsd*) machine=vax ;;
arm-*-netbsd*) machine=arm ;;
x86_64-*-netbsd*) machine=amdx86-64 ;;
+ hppa-*-netbsd*) machine=hp800 ;;
shle-*-netbsd*) machine=sh3el ;;
esac
;;
esac
;;
+ hppa*-*-linux-gnu* )
+ machine=hp800 opsys=gnu-linux
+ ;;
+
+ hppa*-*-nextstep* )
+ machine=hp800 opsys=nextstep
+ ;;
+
## Orion machines
orion-orion-bsd* )
machine=orion opsys=bsd4-2
{ echo "$as_me:$LINENO: checking ALSA_CFLAGS" >&5
echo $ECHO_N "checking ALSA_CFLAGS... $ECHO_C" >&6; }
- ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES"`
+ ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES"|sed -e 's,///*,/,g'`
{ echo "$as_me:$LINENO: result: $ALSA_CFLAGS" >&5
echo "${ECHO_T}$ALSA_CFLAGS" >&6; }
{ echo "$as_me:$LINENO: checking ALSA_LIBS" >&5
echo $ECHO_N "checking ALSA_LIBS... $ECHO_C" >&6; }
- ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES"`
+ ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES"|sed -e 's,///*,/,g'`
{ echo "$as_me:$LINENO: result: $ALSA_LIBS" >&5
echo "${ECHO_T}$ALSA_LIBS" >&6; }
else
{ echo "$as_me:$LINENO: checking GTK_CFLAGS" >&5
echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6; }
- GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"`
+ GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"|sed -e 's,///*,/,g'`
{ echo "$as_me:$LINENO: result: $GTK_CFLAGS" >&5
echo "${ECHO_T}$GTK_CFLAGS" >&6; }
{ echo "$as_me:$LINENO: checking GTK_LIBS" >&5
echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6; }
- GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"`
+ GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"|sed -e 's,///*,/,g'`
{ echo "$as_me:$LINENO: result: $GTK_LIBS" >&5
echo "${ECHO_T}$GTK_LIBS" >&6; }
else
with_toolkit_scroll_bars=yes
fi
- HAVE_GTK_MULTIDISPLAY=no
+ HAVE_GTK_MULTIDISPLAY=no
-for ac_func in gdk_display_open
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
- (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext &&
- $as_test_x conftest$ac_exeext; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_var=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval echo '${'$as_ac_var'}'`
- { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
- HAVE_GTK_MULTIDISPLAY=yes
-fi
-done
-
- if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GTK_MULTIDISPLAY 1
-_ACEOF
-
- fi
HAVE_GTK_FILE_SELECTION=no
for ac_func in gtk_file_selection_new
{ echo "$as_me:$LINENO: checking XFT_CFLAGS" >&5
echo $ECHO_N "checking XFT_CFLAGS... $ECHO_C" >&6; }
- XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"`
+ XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"|sed -e 's,///*,/,g'`
{ echo "$as_me:$LINENO: result: $XFT_CFLAGS" >&5
echo "${ECHO_T}$XFT_CFLAGS" >&6; }
{ echo "$as_me:$LINENO: checking XFT_LIBS" >&5
echo $ECHO_N "checking XFT_LIBS... $ECHO_C" >&6; }
- XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"`
+ XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"|sed -e 's,///*,/,g'`
{ echo "$as_me:$LINENO: result: $XFT_LIBS" >&5
echo "${ECHO_T}$XFT_LIBS" >&6; }
else
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdio.h>
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
int
main ()
{
-return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
;
return 0;
}
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#define _LARGEFILE_SOURCE 1
-#include <stdio.h>
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
int
main ()
{
-return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
;
return 0;
}
vax-*-netbsd*) machine=vax ;;
arm-*-netbsd*) machine=arm ;;
x86_64-*-netbsd*) machine=amdx86-64 ;;
+ hppa-*-netbsd*) machine=hp800 ;;
shle-*-netbsd*) machine=sh3el ;;
esac
;;
esac
;;
+ hppa*-*-linux-gnu* )
+ machine=hp800 opsys=gnu-linux
+ ;;
+
+ hppa*-*-nextstep* )
+ machine=hp800 opsys=nextstep
+ ;;
+
## Orion machines
orion-orion-bsd* )
machine=orion opsys=bsd4-2
succeeded=yes
AC_MSG_CHECKING($1_CFLAGS)
- $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+ $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
AC_MSG_RESULT($$1_CFLAGS)
AC_MSG_CHECKING($1_LIBS)
- $1_LIBS=`$PKG_CONFIG --libs "$2"`
+ $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
AC_MSG_RESULT($$1_LIBS)
else
AC_MSG_RESULT(no)
dnl Check if we can use multiple displays with this GTK version.
dnl If gdk_display_open exists, assume all others are there also.
+ dnl XXX The multidisplay feature is severely broken in current GTK
+ dnl versions. --lorentey
HAVE_GTK_MULTIDISPLAY=no
- AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
- if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
- AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
- [Define to 1 if GTK can handle more than one display.])
- fi
+ dnl AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
+ dnl if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
+ dnl AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
+ dnl [Define to 1 if GTK can handle more than one display.])
+ dnl fi
+
dnl Check if we have the old file selection dialog.
dnl If gdk_display_open exists, assume all others are there also.
HAVE_GTK_FILE_SELECTION=no
# include <pwd.h>
#endif /* not WINDOWSNT */
#endif /* not VMS */
+#include <sys/stat.h>
+#include <signal.h>
+#include <errno.h>
+
+/* From lisp.h */
+#ifndef DIRECTORY_SEP
+#define DIRECTORY_SEP '/'
+#endif
+#ifndef IS_DIRECTORY_SEP
+#define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
+#endif
+#ifndef IS_DEVICE_SEP
+#ifndef DEVICE_SEP
+#define IS_DEVICE_SEP(_c_) 0
+#else
+#define IS_DEVICE_SEP(_c_) ((_c_) == DEVICE_SEP)
+#endif
+#endif
+#ifndef IS_ANY_SEP
+#define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_))
+#endif
+
+
+\f
char *getenv (), *getwd ();
char *(getcwd) ();
#endif
\f
#define SEND_STRING(data) (send_to_emacs (s, (data)))
-#define SEND_QUOTED(data) (quote_file_name (s, (data)))
+#define SEND_QUOTED(data) (quote_argument (s, (data)))
#ifndef EXIT_SUCCESS
#define EXIT_SUCCESS 0
/* Name used to invoke this program. */
char *progname;
+/* The first argument to main. */
+int main_argc;
+
+/* The second argument to main. */
+char **main_argv;
+
/* Nonzero means don't wait for a response from Emacs. --no-wait. */
int nowait = 0;
/* Nonzero means args are expressions to be evaluated. --eval. */
int eval = 0;
+/* Nonzero means don't open a new frame. --current-frame. */
+int current_frame = 0;
+
+/* Nonzero means open a new graphical frame. */
+int window_system = 0;
+
/* The display on which Emacs should work. --display. */
char *display = NULL;
+/* Nonzero means open a new Emacs frame on the current terminal. */
+int tty = 0;
+
/* If non-NULL, the name of an editor to fallback to if the server
is not running. --alternate-editor. */
const char *alternate_editor = NULL;
/* PID of the Emacs server process. */
int emacs_pid = 0;
+/* Socket used to communicate with the Emacs server process. */
+HSOCKET s;
+
void print_help_and_exit () NO_RETURN;
struct option longopts[] =
{ "eval", no_argument, NULL, 'e' },
{ "help", no_argument, NULL, 'H' },
{ "version", no_argument, NULL, 'V' },
+ { "tty", no_argument, NULL, 't' },
+ { "current-frame", no_argument, NULL, 'c' },
{ "alternate-editor", required_argument, NULL, 'a' },
#ifndef NO_SOCKETS_IN_FILE_SYSTEM
{ "socket-name", required_argument, NULL, 's' },
{ 0, 0, 0, 0 }
};
+\f
+/* Like malloc but get fatal error if memory is exhausted. */
+
+long *
+xmalloc (size)
+ unsigned int size;
+{
+ long *result = (long *) malloc (size);
+ if (result == NULL)
+ {
+ perror ("malloc");
+ exit (EXIT_FAILURE);
+ }
+ return result;
+}
+
+/* Like strdup but get a fatal error if memory is exhausted. */
+
+char *
+xstrdup (const char *s)
+{
+ char *result = strdup (s);
+ if (result == NULL)
+ {
+ perror ("strdup");
+ exit (EXIT_FAILURE);
+ }
+ return result;
+}
+
+/* From sysdep.c */
+#if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME)
+
+/* Return the current working directory. Returns NULL on errors.
+ Any other returned value must be freed with free. This is used
+ only when get_current_dir_name is not defined on the system. */
+char*
+get_current_dir_name ()
+{
+ char *buf;
+ char *pwd;
+ struct stat dotstat, pwdstat;
+ /* If PWD is accurate, use it instead of calling getwd. PWD is
+ sometimes a nicer name, and using it may avoid a fatal error if a
+ parent directory is searchable but not readable. */
+ if ((pwd = getenv ("PWD")) != 0
+ && (IS_DIRECTORY_SEP (*pwd) || (*pwd && IS_DEVICE_SEP (pwd[1])))
+ && stat (pwd, &pwdstat) == 0
+ && stat (".", &dotstat) == 0
+ && dotstat.st_ino == pwdstat.st_ino
+ && dotstat.st_dev == pwdstat.st_dev
+#ifdef MAXPATHLEN
+ && strlen (pwd) < MAXPATHLEN
+#endif
+ )
+ {
+ buf = (char *) xmalloc (strlen (pwd) + 1);
+ if (!buf)
+ return NULL;
+ strcpy (buf, pwd);
+ }
+#ifdef HAVE_GETCWD
+ else
+ {
+ size_t buf_size = 1024;
+ buf = (char *) xmalloc (buf_size);
+ if (!buf)
+ return NULL;
+ for (;;)
+ {
+ if (getcwd (buf, buf_size) == buf)
+ break;
+ if (errno != ERANGE)
+ {
+ int tmp_errno = errno;
+ free (buf);
+ errno = tmp_errno;
+ return NULL;
+ }
+ buf_size *= 2;
+ buf = (char *) realloc (buf, buf_size);
+ if (!buf)
+ return NULL;
+ }
+ }
+#else
+ else
+ {
+ /* We need MAXPATHLEN here. */
+ buf = (char *) xmalloc (MAXPATHLEN + 1);
+ if (!buf)
+ return NULL;
+ if (getwd (buf) == NULL)
+ {
+ int tmp_errno = errno;
+ free (buf);
+ errno = tmp_errno;
+ return NULL;
+ }
+ }
+#endif
+ return buf;
+}
+#endif
+
/* Message functions. */
#ifdef WINDOWSNT
char **argv;
{
alternate_editor = getenv ("ALTERNATE_EDITOR");
+ display = getenv ("DISPLAY");
+ if (display && strlen (display) == 0)
+ display = NULL;
while (1)
{
int opt = getopt_long (argc, argv,
#ifndef NO_SOCKETS_IN_FILE_SYSTEM
- "VHnea:s:f:d:",
+ "VHnea:s:f:d:tc",
#else
- "VHnea:f:d:",
+ "VHnea:f:d:tc",
#endif
- longopts, 0);
+ longopts, 0);
if (opt == EOF)
break;
exit (EXIT_SUCCESS);
break;
+ case 't':
+ tty = 1;
+ break;
+
+ case 'c':
+ current_frame = 1;
+ break;
+
case 'H':
print_help_and_exit ();
break;
break;
}
}
+
+ if (!tty && display)
+ window_system = 1;
+ else
+ tty = 1;
+
+ /* --no-wait implies --current-frame on ttys when there are file
+ arguments or expressions given. */
+ if (nowait && tty && argc - optind > 0)
+ current_frame = 1;
+
+ if (current_frame)
+ {
+ tty = 0;
+ window_system = 0;
+ }
+
+ if (tty)
+ window_system = 0;
}
+\f
void
print_help_and_exit ()
{
message (FALSE,
- "Usage: %s [OPTIONS] FILE...\n\
+ "Usage: %s [OPTIONS] FILE...\n\
Tell the Emacs server to visit the specified files.\n\
Every FILE can be either just a FILENAME or [+LINE[:COLUMN]] FILENAME.\n\
\n\
The following OPTIONS are accepted:\n\
-\n\
--V, --version Just print version info and return\n\
--H, --help Print this usage information message\n\
--e, --eval Evaluate FILE arguments as Lisp expressions\n\
--n, --no-wait Don't wait for the server to return\n\
--d, --display=DISPLAY Visit the file in the given display\n"
+-V, --version Just print version info and return\n\
+-H, --help Print this usage information message\n\
+-t, --tty Open a new Emacs frame on the current terminal\n\
+-c, --current-frame Do not create a new frame; use the current Emacs frame\n\
+-e, --eval Evaluate the FILE arguments as ELisp expressions\n\
+-n, --no-wait Don't wait for the server to return\n\
+-d, --display=DISPLAY Visit the file in the given display\n"
#ifndef NO_SOCKETS_IN_FILE_SYSTEM
"-s, --socket-name=FILENAME\n\
- Set filename of the UNIX socket for communication\n"
+ Set filename of the UNIX socket for communication\n"
#endif
"-f, --server-file=FILENAME\n\
- Set filename of the TCP authentication file\n\
+ Set filename of the TCP authentication file\n\
-a, --alternate-editor=EDITOR\n\
- Editor to fallback to if server is not running\n\
+ Editor to fallback to if the server is not running\n\
\n\
Report bugs to bug-gnu-emacs@gnu.org.\n", progname);
exit (EXIT_SUCCESS);
}
-\f
-#ifdef WINDOWSNT
-
-/*
- execvp wrapper for Windows. Quotes arguments with embedded spaces.
-
- This is necessary due to the broken implementation of exec* routines in
- the Microsoft libraries: they concatenate the arguments together without
- quoting special characters, and pass the result to CreateProcess, with
- predictably bad results. By contrast, Posix execvp passes the arguments
- directly into the argv array of the child process.
-*/
-int
-w32_execvp (path, argv)
- char *path;
- char **argv;
-{
- int i;
-
- /* Required to allow a .BAT script as alternate editor. */
- argv[0] = (char *) alternate_editor;
-
- for (i = 0; argv[i]; i++)
- if (strchr (argv[i], ' '))
- {
- char *quoted = alloca (strlen (argv[i]) + 3);
- sprintf (quoted, "\"%s\"", argv[i]);
- argv[i] = quoted;
- }
-
- return execvp (path, argv);
-}
-
-#undef execvp
-#define execvp w32_execvp
-
-#endif /* WINDOWSNT */
-
/*
Try to run a different command, or --if no alternate editor is
defined-- exit with an errorcode.
*/
void
-fail (argc, argv)
- int argc;
- char **argv;
+fail (void)
{
if (alternate_editor)
{
int i = optind - 1;
- execvp (alternate_editor, argv + i);
+ execvp (alternate_editor, main_argv + i);
message (TRUE, "%s: error executing alternate editor \"%s\"\n",
- progname, alternate_editor);
+ progname, alternate_editor);
}
exit (EXIT_FAILURE);
}
int argc;
char **argv;
{
- message (TRUE, "%s: Sorry, the Emacs server is supported only\non systems with Berkely sockets.\n",
+ main_argc = argc;
+ main_argv = argv;
+ progname = argv[0];
+ message (TRUE, "%s: Sorry, the Emacs server is supported only\n"
+ "on systems with Berkeley sockets.\n",
argv[0]);
-
- fail (argc, argv);
+ fail ();
}
#else /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
}
}
-/* In NAME, insert a & before each &, each space, each newline, and
+\f
+/* In STR, insert a & before each &, each space, each newline, and
any initial -. Change spaces to underscores, too, so that the
- return value never contains a space. */
+ return value never contains a space.
+
+ Does not change the string. Outputs the result to STREAM. */
void
-quote_file_name (s, name)
+quote_argument (s, str)
HSOCKET s;
- char *name;
+ char *str;
{
- char *copy = (char *) malloc (strlen (name) * 2 + 1);
+ char *copy = (char *) xmalloc (strlen (str) * 2 + 1);
char *p, *q;
- p = name;
+ p = str;
q = copy;
while (*p)
{
}
else
{
- if (*p == '&' || (*p == '-' && p == name))
+ if (*p == '&' || (*p == '-' && p == str))
*q++ = '&';
*q++ = *p++;
}
free (copy);
}
+
+/* The inverse of quote_argument. Removes quoting in string STR by
+ modifying the string in place. Returns STR. */
+
+char *
+unquote_argument (str)
+ char *str;
+{
+ char *p, *q;
+
+ if (! str)
+ return str;
+
+ p = str;
+ q = str;
+ while (*p)
+ {
+ if (*p == '&')
+ {
+ p++;
+ if (*p == '&')
+ *p = '&';
+ else if (*p == '_')
+ *p = ' ';
+ else if (*p == 'n')
+ *p = '\n';
+ else if (*p == '-')
+ *p = '-';
+ }
+ *q++ = *p++;
+ }
+ *q = 0;
+ return str;
+}
+
+\f
int
file_name_absolute_p (filename)
const unsigned char *filename;
if (filename[0] == '\0') return FALSE;
#ifdef WINDOWSNT
- /* X:\xxx is always absolute; X:xxx is an error and will fail. */
+ /* X:\xxx is always absolute. */
if (isalpha (filename[0])
&& filename[1] == ':' && (filename[2] == '\\' || filename[2] == '/'))
return TRUE;
/* Both \xxx and \\xxx\yyy are absolute. */
if (filename[0] == '\\') return TRUE;
+
+ /*
+ FIXME: There's a corner case not dealt with, "x:y", where:
+
+ 1) x is a valid drive designation (usually a letter in the A-Z range)
+ and y is a path, relative to the current directory on drive x. This
+ is absolute, *after* fixing the y part to include the current
+ directory in x.
+
+ 2) x is a relative file name, and y is an NTFS stream name. This is a
+ correct relative path, but it is very unusual.
+
+ The trouble is that first case items are also valid examples of the
+ second case, i.e., "c:test" can be understood as drive:path or as
+ file:stream.
+
+ The "right" fix would involve checking whether
+ - the current drive/partition is NTFS,
+ - x is a valid (and accesible) drive designator,
+ - x:y already exists as a file:stream in the current directory,
+ - y already exists on the current directory of drive x,
+ - the auspices are favorable,
+ and then taking an "informed decision" based on the above.
+
+ Whatever the result, Emacs currently does a very bad job of dealing
+ with NTFS file:streams: it cannot visit them, and the only way to
+ create one is by setting `buffer-file-name' to point to it (either
+ manually or with emacsclient). So perhaps resorting to 1) and ignoring
+ 2) for now is the right thing to do.
+
+ Anyway, something to decide After the Release.
+ */
#endif
return FALSE;
atexit (close_winsock);
}
#endif /* WINDOWSNT */
+
\f
+#ifdef WINDOWSNT
+
+/*
+ execvp wrapper for Windows. Quotes arguments with embedded spaces.
+
+ This is necessary due to the broken implementation of exec* routines in
+ the Microsoft libraries: they concatenate the arguments together without
+ quoting special characters, and pass the result to CreateProcess, with
+ predictably bad results. By contrast, Posix execvp passes the arguments
+ directly into the argv array of the child process.
+*/
+int
+w32_execvp (path, argv)
+ char *path;
+ char **argv;
+{
+ int i;
+
+ /* Required to allow a .BAT script as alternate editor. */
+ argv[0] = (char *) alternate_editor;
+
+ for (i = 0; argv[i]; i++)
+ if (strchr (argv[i], ' '))
+ {
+ char *quoted = alloca (strlen (argv[i]) + 3);
+ sprintf (quoted, "\"%s\"", argv[i]);
+ argv[i] = quoted;
+ }
+
+ return execvp (path, argv);
+}
+
+#undef execvp
+#define execvp w32_execvp
+
+#endif /* WINDOWSNT */
+
/*
* Read the information needed to set up a TCP comm channel with
* the Emacs server: host, port, pid and authentication string.
return 0;
}
+\f
+/* A signal handler that passes the signal to the Emacs process.
+ Useful for SIGWINCH. */
+
+SIGTYPE
+pass_signal_to_emacs (int signalnum)
+{
+ int old_errno = errno;
+
+ if (emacs_pid)
+ kill (emacs_pid, signalnum);
+
+ signal (signalnum, pass_signal_to_emacs);
+ errno = old_errno;
+}
+
+/* Signal handler for SIGCONT; notify the Emacs process that it can
+ now resume our tty frame. */
+
+SIGTYPE
+handle_sigcont (int signalnum)
+{
+ int old_errno = errno;
+
+ if (tcgetpgrp (1) == getpgrp ())
+ {
+ /* We are in the foreground. */
+ SEND_STRING ("-resume \n");
+ }
+ else
+ {
+ /* We are in the background; cancel the continue. */
+ kill (getpid (), SIGSTOP);
+ }
+
+ signal (signalnum, handle_sigcont);
+ errno = old_errno;
+}
+
+/* Signal handler for SIGTSTP; notify the Emacs process that we are
+ going to sleep. Normally the suspend is initiated by Emacs via
+ server-handle-suspend-tty, but if the server gets out of sync with
+ reality, we may get a SIGTSTP on C-z. Handling this signal and
+ notifying Emacs about it should get things under control again. */
+
+SIGTYPE
+handle_sigtstp (int signalnum)
+{
+ int old_errno = errno;
+ sigset_t set;
+
+ if (s)
+ SEND_STRING ("-suspend \n");
+
+ /* Unblock this signal and call the default handler by temprarily
+ changing the handler and resignalling. */
+ sigprocmask (SIG_BLOCK, NULL, &set);
+ sigdelset (&set, signalnum);
+ signal (signalnum, SIG_DFL);
+ kill (getpid (), signalnum);
+ sigprocmask (SIG_SETMASK, &set, NULL); /* Let's the above signal through. */
+ signal (signalnum, handle_sigtstp);
+
+ errno = old_errno;
+}
+
+/* Set up signal handlers before opening a frame on the current tty. */
+
+void
+init_signals (void)
+{
+ /* Set up signal handlers. */
+ signal (SIGWINCH, pass_signal_to_emacs);
+
+ /* Don't pass SIGINT and SIGQUIT to Emacs, because it has no way of
+ deciding which terminal the signal came from. C-g is now a
+ normal input event on secondary terminals. */
+#if 0
+ signal (SIGINT, pass_signal_to_emacs);
+ signal (SIGQUIT, pass_signal_to_emacs);
+#endif
+
+ signal (SIGCONT, handle_sigcont);
+ signal (SIGTSTP, handle_sigtstp);
+ signal (SIGTTOU, handle_sigtstp);
+}
+
+
+
+/* Returns 1 if PREFIX is a prefix of STRING. */
+static int
+strprefix (char *prefix, char *string)
+{
+ int i;
+ if (! prefix)
+ return 1;
+
+ if (!string)
+ return 0;
+
+ for (i = 0; prefix[i]; i++)
+ if (!string[i] || string[i] != prefix[i])
+ return 0;
+ return 1;
+}
+
+
HSOCKET
set_local_socket ()
{
{
int sock_status = 0;
int default_sock = !socket_name;
- int saved_errno;
+ int saved_errno = 0;
+
char *server_name = "server";
if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\'))
{ /* socket_name is a file name component. */
- server_name = socket_name;
- socket_name = NULL;
- default_sock = 1; /* Try both UIDs. */
+ server_name = socket_name;
+ socket_name = NULL;
+ default_sock = 1; /* Try both UIDs. */
}
if (default_sock)
{
- socket_name = alloca (100 + strlen (server_name));
- sprintf (socket_name, "/tmp/emacs%d/%s",
- (int) geteuid (), server_name);
+ socket_name = alloca (100 + strlen (server_name));
+ sprintf (socket_name, "/tmp/emacs%d/%s",
+ (int) geteuid (), server_name);
}
if (strlen (socket_name) < sizeof (server.sun_path))
strcpy (server.sun_path, socket_name);
else
{
- message (TRUE, "%s: socket-name %s too long",
- progname, socket_name);
- exit (EXIT_FAILURE);
+ message (TRUE, "%s: socket-name %s too long",
+ progname, socket_name);
+ fail ();
}
/* See if the socket exists, and if it's owned by us. */
}
sock_status = socket_status (server.sun_path);
- saved_errno = errno;
+ saved_errno = errno;
}
else
errno = saved_errno;
switch (sock_status)
{
case 1:
- /* There's a socket, but it isn't owned by us. This is OK if
- we are root. */
- if (0 != geteuid ())
- {
- message (TRUE, "%s: Invalid socket owner\n", progname);
+ /* There's a socket, but it isn't owned by us. This is OK if
+ we are root. */
+ if (0 != geteuid ())
+ {
+ message (TRUE, "%s: Invalid socket owner\n", progname);
return INVALID_SOCKET;
- }
- break;
+ }
+ break;
case 2:
- /* `stat' failed */
- if (saved_errno == ENOENT)
- message (TRUE,
- "%s: can't find socket; have you started the server?\n\
+ /* `stat' failed */
+ if (saved_errno == ENOENT)
+ message (TRUE,
+ "%s: can't find socket; have you started the server?\n\
To start the server in Emacs, type \"M-x server-start\".\n",
progname);
- else
- message (TRUE, "%s: can't stat %s: %s\n",
+ else
+ message (TRUE, "%s: can't stat %s: %s\n",
progname, server.sun_path, strerror (saved_errno));
- return INVALID_SOCKET;
+ return INVALID_SOCKET;
}
}
set_socket ()
{
HSOCKET s;
-
+
INITIALIZE ();
-
+
#ifndef NO_SOCKETS_IN_FILE_SYSTEM
/* Explicit --socket-name argument. */
if (socket_name)
{
s = set_local_socket ();
if ((s != INVALID_SOCKET) || alternate_editor)
- return s;
-
+ return s;
message (TRUE, "%s: error accessing socket \"%s\"",
- progname, socket_name);
+ progname, socket_name);
exit (EXIT_FAILURE);
}
#endif
{
s = set_tcp_socket ();
if ((s != INVALID_SOCKET) || alternate_editor)
- return s;
-
+ return s;
+
message (TRUE, "%s: error accessing server file \"%s\"",
- progname, server_file);
+ progname, server_file);
exit (EXIT_FAILURE);
}
-
+
#ifndef NO_SOCKETS_IN_FILE_SYSTEM
/* Implicit local socket. */
s = set_local_socket ();
{
HMODULE hUser32;
- /* It should'nt happen when dealing with TCP sockets. */
+ /* It shouldn't happen when dealing with TCP sockets. */
if (!emacs_pid) return;
if (!(hUser32 = LoadLibrary ("user32.dll"))) return;
int argc;
char **argv;
{
- HSOCKET s;
int i, rl, needlf = 0;
- char *cwd;
+ char *cwd, *str;
char string[BUFSIZ+1];
+ main_argc = argc;
+ main_argv = argv;
progname = argv[0];
/* Process options. */
decode_options (argc, argv);
- if ((argc - optind < 1) && !eval)
+ if ((argc - optind < 1) && !eval && !tty && !window_system)
{
- message (TRUE, "%s: file name or argument required\nTry `%s --help' for more information\n",
- progname, progname);
+ message (TRUE, "%s: file name or argument required\n"
+ "Try `%s --help' for more information\n",
+ progname, progname);
exit (EXIT_FAILURE);
}
if ((s = set_socket ()) == INVALID_SOCKET)
- fail (argc, argv);
+ fail ();
-#ifdef HAVE_GETCWD
- cwd = getcwd (string, sizeof string);
-#else
- cwd = getwd (string);
-#endif
+
+ cwd = get_current_dir_name ();
if (cwd == 0)
{
/* getwd puts message in STRING if it fails. */
- message (TRUE, "%s: %s (%s)\n", progname,
-#ifdef HAVE_GETCWD
- "Cannot get current working directory",
-#else
- string,
-#endif
- strerror (errno));
- fail (argc, argv);
+ message (TRUE, "%s: %s\n", progname,
+ "Cannot get current working directory");
+ fail ();
}
#ifdef WINDOWSNT
w32_give_focus ();
#endif
+ /* First of all, send our version number for verification. */
+ SEND_STRING ("-version ");
+ SEND_STRING (VERSION);
+ SEND_STRING (" ");
+
+ /* Send over our environment. */
+ if (!current_frame)
+ {
+ extern char **environ;
+ int i;
+ for (i = 0; environ[i]; i++)
+ {
+ char *name = xstrdup (environ[i]);
+ char *value = strchr (name, '=');
+ SEND_STRING ("-env ");
+ SEND_QUOTED (environ[i]);
+ SEND_STRING (" ");
+ }
+ }
+
+ /* Send over our current directory. */
+ if (!current_frame)
+ {
+ SEND_STRING ("-dir ");
+ SEND_QUOTED (cwd);
+ SEND_STRING ("/");
+ SEND_STRING (" ");
+ }
+
+ retry:
if (nowait)
SEND_STRING ("-nowait ");
- if (eval)
- SEND_STRING ("-eval ");
-
+ if (current_frame)
+ SEND_STRING ("-current-frame ");
+
if (display)
{
SEND_STRING ("-display ");
SEND_STRING (" ");
}
+ if (tty)
+ {
+ char *tty_name = ttyname (fileno (stdin));
+ char *type = getenv ("TERM");
+
+ if (! tty_name)
+ {
+ message (TRUE, "%s: could not get terminal name\n", progname);
+ fail ();
+ }
+
+ if (! type)
+ {
+ message (TRUE, "%s: please set the TERM variable to your terminal type\n",
+ progname);
+ fail ();
+ }
+
+ if (! strcmp (type, "eterm"))
+ {
+ /* This causes nasty, MULTI_KBOARD-related input lockouts. */
+ message (TRUE, "%s: opening a frame in an Emacs term buffer"
+ " is not supported\n", progname);
+ fail ();
+ }
+
+ init_signals ();
+
+ SEND_STRING ("-tty ");
+ SEND_QUOTED (tty_name);
+ SEND_STRING (" ");
+ SEND_QUOTED (type);
+ SEND_STRING (" ");
+ }
+
+ if (window_system)
+ SEND_STRING ("-window-system ");
+
if ((argc - optind > 0))
{
for (i = optind; i < argc; i++)
{
+ int relative = 0;
+
if (eval)
- ; /* Don't prepend any cwd or anything like that. */
- else if (*argv[i] == '+')
- {
+ {
+ /* Don't prepend cwd or anything like that. */
+ SEND_STRING ("-eval ");
+ SEND_QUOTED (argv[i]);
+ SEND_STRING (" ");
+ continue;
+ }
+
+ if (*argv[i] == '+')
+ {
char *p = argv[i] + 1;
while (isdigit ((unsigned char) *p) || *p == ':') p++;
- if (*p != 0)
- {
- SEND_QUOTED (cwd);
- SEND_STRING ("/");
- }
- }
+ if (*p == 0)
+ {
+ SEND_STRING ("-position ");
+ SEND_QUOTED (argv[i]);
+ SEND_STRING (" ");
+ continue;
+ }
+ else
+ relative = 1;
+ }
else if (! file_name_absolute_p (argv[i]))
- {
- SEND_QUOTED (cwd);
- SEND_STRING ("/");
- }
-
- SEND_QUOTED (argv[i]);
- SEND_STRING (" ");
- }
+ relative = 1;
+
+ SEND_STRING ("-file ");
+ if (relative)
+ {
+ SEND_QUOTED (cwd);
+ SEND_STRING ("/");
+ }
+ SEND_QUOTED (argv[i]);
+ SEND_STRING (" ");
+ }
}
else
{
- while (fgets (string, BUFSIZ, stdin))
- {
- SEND_QUOTED (string);
- }
- SEND_STRING (" ");
+ if (!tty && !window_system)
+ {
+ while ((str = fgets (string, BUFSIZ, stdin)))
+ {
+ if (eval)
+ SEND_STRING ("-eval ");
+ else
+ SEND_STRING ("-file ");
+ SEND_QUOTED (str);
+ }
+ SEND_STRING (" ");
+ }
}
SEND_STRING ("\n");
- /* Maybe wait for an answer. */
- if (!nowait)
+ /* Wait for an answer. */
+ if (!eval && !tty && !nowait)
+ {
+ printf ("Waiting for Emacs...");
+ needlf = 2;
+ }
+ fflush (stdout);
+ fsync (1);
+
+ /* Now, wait for an answer and print any messages. */
+ while ((rl = recv (s, string, BUFSIZ, 0)) > 0)
{
- if (!eval)
+ char *p;
+ string[rl] = '\0';
+
+ p = string + strlen (string) - 1;
+ while (p > string && *p == '\n')
+ *p-- = 0;
+
+ if (strprefix ("-good-version ", string))
{
- printf ("Waiting for Emacs...");
- needlf = 2;
+ /* -good-version: The versions match. */
}
- fflush (stdout);
-
- /* Now, wait for an answer and print any messages. */
- while ((rl = recv (s, string, BUFSIZ, 0)) > 0)
+ else if (strprefix ("-emacs-pid ", string))
{
- string[rl] = '\0';
- if (needlf == 2)
+ /* -emacs-pid PID: The process id of the Emacs process. */
+ emacs_pid = strtol (string + strlen ("-emacs-pid"), NULL, 10);
+ }
+ else if (strprefix ("-window-system-unsupported ", string))
+ {
+ /* -window-system-unsupported: Emacs was compiled without X
+ support. Try again on the terminal. */
+ window_system = 0;
+ nowait = 0;
+ tty = 1;
+ goto retry;
+ }
+ else if (strprefix ("-print ", string))
+ {
+ /* -print STRING: Print STRING on the terminal. */
+ str = unquote_argument (string + strlen ("-print "));
+ if (needlf)
printf ("\n");
- printf ("%s", string);
- needlf = string[0] == '\0' ? needlf : string[strlen (string) - 1] != '\n';
+ printf ("%s", str);
+ needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
+ }
+ else if (strprefix ("-error ", string))
+ {
+ /* -error DESCRIPTION: Signal an error on the terminal. */
+ str = unquote_argument (string + strlen ("-error "));
+ if (needlf)
+ printf ("\n");
+ fprintf (stderr, "*ERROR*: %s", str);
+ needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
+ }
+ else if (strprefix ("-suspend ", string))
+ {
+ /* -suspend: Suspend this terminal, i.e., stop the process. */
+ if (needlf)
+ printf ("\n");
+ needlf = 0;
+ kill (0, SIGSTOP);
+ }
+ else
+ {
+ /* Unknown command. */
+ if (needlf)
+ printf ("\n");
+ printf ("*ERROR*: Unknown message: %s", string);
+ needlf = string[0] == '\0' ? needlf : string[strlen (string) - 1] != '\n';
}
-
- if (needlf)
- printf ("\n");
- fflush (stdout);
}
+ if (needlf)
+ printf ("\n");
+ fflush (stdout);
+ fsync (1);
+
CLOSE_SOCKET (s);
return EXIT_SUCCESS;
}
#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
+\f
#ifndef HAVE_STRERROR
char *
strerror (errnum)
(push (cons eol (cons mnemonic desc)) mode-line-eol-desc-cache)
desc)))
+(defvar mode-line-client
+ `(""
+ (:propertize ("" (:eval (if (frame-parameter nil 'client) "@" "")))
+ help-echo "Emacsclient frame"))
+ "Mode-line control for identifying Emacsclient frames.")
+
(defvar mode-line-mule-info
`(""
(current-input-method
(make-variable-buffer-local 'mode-line-mule-info)
-(defvar mode-line-frame-identification '("-%F ")
+(defvar mode-line-frame-identification '(window-system " " "-%F ")
"Mode-line control to describe the current frame.")
(defvar mode-line-process nil "\
"%e"
(propertize "-" 'help-echo help-echo)
'mode-line-mule-info
+ 'mode-line-client
'mode-line-modified
'mode-line-frame-identification
'mode-line-buffer-identification
'local-map (make-mode-line-mouse-map
'mouse-2 #'mode-line-widen))
(propertize ")%]--" 'help-echo help-echo)))
+
(standard-mode-line-position
`((-3 ,(propertize "%p" 'help-echo help-echo))
(size-indication-mode
(define-key ctl-x-map "rw" 'window-configuration-to-register)
(define-key ctl-x-map "rf" 'frame-configuration-to-register)
- ;; These key bindings are deprecated; use the above C-x r map instead.
- ;; We use these aliases so \[...] will show the C-x r bindings instead.
- (defalias 'point-to-register-compatibility-binding 'point-to-register)
- (defalias 'jump-to-register-compatibility-binding 'jump-to-register)
- (defalias 'copy-to-register-compatibility-binding 'copy-to-register)
- (defalias 'insert-register-compatibility-binding 'insert-register)
- (define-key ctl-x-map "/" 'point-to-register-compatibility-binding)
- (define-key ctl-x-map "j" 'jump-to-register-compatibility-binding)
- (define-key ctl-x-map "x" 'copy-to-register-compatibility-binding)
- (define-key ctl-x-map "g" 'insert-register-compatibility-binding)
- ;; (define-key ctl-x-map "r" 'copy-rectangle-to-register)
-
(define-key esc-map "q" 'fill-paragraph)
;; (define-key esc-map "g" 'fill-region)
(define-key ctl-x-map "." 'set-fill-prefix)
(defun internal-find-face (name &optional frame)
"Retrieve the face named NAME.
Return nil if there is no such face.
- If the optional argument FRAME is given, this gets the face NAME for
- that frame; otherwise, it uses the selected frame.
- If FRAME is the symbol t, then the global, non-frame face is returned.
- If NAME is already a face, it is simply returned."
+ If NAME is already a face, it is simply returned.
+ The optional argument FRAME is ignored."
(facep name))
(make-obsolete 'internal-find-face 'facep "21.1")
(defun internal-get-face (name &optional frame)
"Retrieve the face named NAME; error if there is none.
- If the optional argument FRAME is given, this gets the face NAME for
- that frame; otherwise, it uses the selected frame.
- If FRAME is the symbol t, then the global, non-frame face is returned.
- If NAME is already a face, it is simply returned."
+ If NAME is already a face, it is simply returned.
+ The optional argument FRAME is ignored."
(or (facep name)
(check-face name)))
(make-obsolete 'internal-get-face "see `facep' and `check-face'." "21.1")
If FRAME is omitted or nil, use the selected frame."
(let ((attrs
'(:family :width :height :weight :slant :foreground
- :foreground :background :underline :overline
- :strike-through :box :inverse-video))
+ :background :underline :overline :strike-through
+ :box :inverse-video))
(differs nil))
(while (and attrs (not differs))
(let* ((attr (pop attrs))
(set-face-attribute face frame :stipple (or stipple 'unspecified)))
- (defun set-face-underline-p (face underline-p &optional frame)
+ (defun set-face-underline-p (face underline &optional frame)
"Specify whether face FACE is underlined.
UNDERLINE nil means FACE explicitly doesn't underline.
UNDERLINE non-nil means FACE explicitly does underlining
(interactive
(let ((list (read-face-and-attribute :underline)))
(list (car list) (eq (car (cdr list)) t))))
- (set-face-attribute face frame :underline underline-p))
+ (set-face-attribute face frame :underline underline))
(define-obsolete-function-alias 'set-face-underline
'set-face-underline-p "22.1")
(let ((valid
(case attribute
(:family
- (if window-system
+ (if (window-system frame)
(mapcar #'(lambda (x) (cons (car x) (car x)))
(x-font-family-list))
;; Only one font on TTYs.
(mapcar #'(lambda (x) (cons (symbol-name x) x))
(internal-lisp-face-attribute-values attribute)))
((:underline :overline :strike-through :box)
- (if window-system
+ (if (window-system frame)
(nconc (mapcar #'(lambda (x) (cons (symbol-name x) x))
(internal-lisp-face-attribute-values attribute))
(mapcar #'(lambda (c) (cons c c))
- (x-defined-colors frame)))
+ (defined-colors frame)))
(mapcar #'(lambda (x) (cons (symbol-name x) x))
(internal-lisp-face-attribute-values attribute))))
((:foreground :background)
((:height)
'integerp)
(:stipple
- (and (memq window-system '(x w32 mac))
+ (and (memq (window-system frame) '(x w32 mac))
(mapcar #'list
(apply #'nconc
(mapcar (lambda (dir)
;; explicitly in VALID, using color approximation code
;; in tty-colors.el.
(when (and (memq attribute '(:foreground :background))
- (not (memq window-system '(x w32 mac)))
+ (not (memq (window-system frame) '(x w32 mac)))
(not (member new-value
'("unspecified"
"unspecified-fg" "unspecified-bg"))))
result))))))
(defun modify-face (&optional face foreground background stipple
- bold-p italic-p underline-p inverse-p frame)
+ bold-p italic-p underline inverse-p frame)
"Modify attributes of faces interactively.
If optional argument FRAME is nil or omitted, modify the face used
for newly created frame, i.e. the global face.
:stipple stipple
:bold bold-p
:italic italic-p
- :underline underline-p
+ :underline underline
:inverse-video inverse-p)
(setq face (read-face-name "Modify face"))
(apply #'set-face-attribute face frame
req (car conjunct)
options (cdr conjunct)
match (cond ((eq req 'type)
- (or (memq window-system options)
+ (or (memq (window-system frame) options)
;; FIXME: This should be revisited to use
;; display-graphic-p, provided that the
;; color selection depends on the number
;; of supported colors, and all defface's
;; are changed to look at number of colors
;; instead of (type graphic) etc.
- (and (null window-system)
+ (and (null (window-system frame))
(memq 'tty options))
(and (memq 'motif options)
(featurep 'motif))
(defun color-values (color &optional frame)
"Return a description of the color named COLOR on frame FRAME.
- The value is a list of integer RGB values--\(RED GREEN BLUE\).
- These values appear to range from 0 65535; white is \(65535 65535 65535\).
+ The value is a list of integer RGB values--(RED GREEN BLUE).
+ These values appear to range from 0 to 65280 or 65535, depending
+ on the system; white is \(65280 65280 65280\) or \(65535 65535 65535\).
If FRAME is omitted or nil, use the selected frame.
If FRAME cannot display COLOR, the value is nil.
If COLOR is the symbol `unspecified' or one of the strings
(const light)
(const :tag "automatic" nil)))
-(defvar default-frame-background-mode nil
- "Internal variable for the default brightness of the background.
-Emacs sets it automatically depending on the terminal type.
-The value `nil' means `dark'. If Emacs runs in non-windowed
-mode from `xterm' or a similar terminal emulator, the value is
-`light'. On rxvt terminals, the value depends on the environment
-variable COLORFGBG.")
(defun frame-set-background-mode (frame)
"Set up display-dependent faces on FRAME.
Display-dependent faces are those which have different definitions
according to the `background-mode' and `display-type' frame parameters."
(let* ((bg-resource
- (and window-system
+ (and (window-system frame)
(x-get-resource "backgroundMode" "BackgroundMode")))
(bg-color (frame-parameter frame 'background-color))
+ (terminal-bg-mode (terminal-parameter frame 'background-mode))
+ (tty-type (tty-type frame))
(bg-mode
(cond (frame-background-mode)
(bg-resource
(intern (downcase bg-resource)))
- ((and (null window-system) (null bg-color))
- ;; No way to determine this automatically (?).
- (or default-frame-background-mode 'dark))
- ;; Unspecified frame background color can only happen
- ;; on tty's.
- ((member bg-color '(unspecified "unspecified-bg"))
- (or default-frame-background-mode 'dark))
+ (terminal-bg-mode)
+ ((and (null (window-system frame))
+ ;; Unspecified frame background color can only
+ ;; happen on tty's.
+ (member bg-color '(nil unspecified "unspecified-bg")))
+ ;; There is no way to determine the background mode
+ ;; automatically, so we make a guess based on the
+ ;; terminal type.
+ (if (and tty-type
+ (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
+ tty-type))
+ 'light
+ 'dark))
((equal bg-color "unspecified-fg") ; inverted colors
- (if (eq default-frame-background-mode 'light) 'dark 'light))
+ (if (and tty-type
+ (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
+ tty-type))
+ 'dark
+ 'light))
- ((>= (apply '+ (x-color-values bg-color frame))
+ ((>= (apply '+ (color-values bg-color frame))
;; Just looking at the screen, colors whose
;; values add up to .6 of the white total
;; still look dark to me.
- (* (apply '+ (x-color-values "white" frame)) .6))
+ (* (apply '+ (color-values "white" frame)) .6))
'light)
(t 'dark)))
(display-type
- (cond ((null window-system)
+ (cond ((null (window-system frame))
(if (tty-display-color-p frame) 'color 'mono))
- ((x-display-color-p frame)
+ ((display-color-p frame)
'color)
((x-display-grayscale-p frame)
'grayscale)
Value is the new frame created."
(setq parameters (x-handle-named-frame-geometry parameters))
(let ((visibility-spec (assq 'visibility parameters))
- (frame-list (frame-list))
- (frame (x-create-frame (cons '(visibility . nil) parameters)))
+ (frame (x-create-frame `((visibility . nil) . ,parameters)))
success)
(unwind-protect
(progn
+ (x-setup-function-keys frame)
(x-handle-reverse-video frame parameters)
(frame-set-background-mode frame)
(face-set-after-frame-default frame)
- (if (or (null frame-list) (null visibility-spec))
+ ;; Arrange for the kill and yank functions to set and check the clipboard.
+ (modify-frame-parameters
+ frame '((interprogram-cut-function . x-select-text)))
+ (modify-frame-parameters
+ frame '((interprogram-paste-function . x-cut-buffer-or-selection-value)))
+ ;; Make sure the tool-bar is ready to be enabled. The
+ ;; `tool-bar-lines' frame parameter will not take effect
+ ;; without this call.
+ (tool-bar-setup frame)
+ (if (null visibility-spec)
(make-frame-visible frame)
(modify-frame-parameters frame (list visibility-spec)))
(setq success t))
(face-attribute 'default :weight t))
(set-face-attribute 'default frame :width
(face-attribute 'default :width t))))
- (dolist (face (face-list))
- ;; Don't let frame creation fail because of an invalid face spec.
- (condition-case ()
- (when (not (equal face 'default))
- (face-spec-set face (face-user-default-spec face) frame)
- (internal-merge-in-global-face face frame)
- (when (and (memq (window-system frame) '(x w32 mac))
- (or (not (boundp 'inhibit-default-face-x-resources))
- (not (eq face 'default))))
- (make-face-x-resource-internal face frame)))
- (error nil)))
- ;; Initialize attributes from frame parameters.
- (let ((params '((foreground-color default :foreground)
- (background-color default :background)
- (border-color border :background)
- (cursor-color cursor :background)
- (scroll-bar-foreground scroll-bar :foreground)
- (scroll-bar-background scroll-bar :background)
- (mouse-color mouse :background))))
- (dolist (param params)
- (let ((frame-param (frame-parameter frame (nth 0 param)))
- (face (nth 1 param))
- (attr (nth 2 param)))
- (when (and frame-param
- ;; Don't override face attributes explicitly
- ;; specified for new frames.
- (eq (face-attribute face attr t) 'unspecified))
- (set-face-attribute face frame attr frame-param))))))
-
+ ;; Find attributes that should be initialized from frame parameters.
+ (let ((face-params '((foreground-color default :foreground)
+ (background-color default :background)
+ (border-color border :background)
+ (cursor-color cursor :background)
+ (scroll-bar-foreground scroll-bar :foreground)
+ (scroll-bar-background scroll-bar :background)
+ (mouse-color mouse :background)))
+ apply-params)
+ (dolist (param face-params)
+ (let* ((value (frame-parameter frame (nth 0 param)))
+ (face (nth 1 param))
+ (attr (nth 2 param))
+ (default-value (face-attribute face attr t)))
+ ;; Compile a list of face attributes to set, but don't set
+ ;; them yet. The call to make-face-x-resource-internal,
+ ;; below, can change frame parameters, and the final set of
+ ;; frame parameters should be the ones acquired at this step.
+ (if (eq default-value 'unspecified)
+ ;; The face spec does not specify a new-frame value for
+ ;; this attribute. Check if the existing frame parameter
+ ;; specifies it.
+ (if value
+ (push (list face frame attr value) apply-params))
+ ;; The face spec specifies a value for this attribute, to be
+ ;; applied to the face on all new frames.
+ (push (list face frame attr default-value) apply-params))))
+ ;; Initialize faces from face specs and X resources. The
+ ;; condition-case prevents invalid specs from causing frame
+ ;; creation to fail.
+ (dolist (face (delq 'default (face-list)))
+ (condition-case ()
+ (progn
+ (face-spec-set face (face-user-default-spec face) frame)
+ (internal-merge-in-global-face face frame)
- (if (memq window-system '(x w32 mac))
++ (if (memq (window-system frame) '(x w32 mac))
+ (make-face-x-resource-internal face frame)))
+ (error nil)))
+ ;; Apply the attributes specified by frame parameters. This
+ ;; rewrites parameters changed by make-face-x-resource-internal
+ (dolist (param apply-params)
+ (apply 'set-face-attribute param))))
(defun tty-handle-reverse-video (frame parameters)
"Handle the reverse-video frame parameter for terminal frames."
(let ((frame (make-terminal-frame parameters))
success)
(unwind-protect
- (progn
+ (with-selected-frame frame
(tty-handle-reverse-video frame (frame-parameters frame))
+
+ ;; Make sure the kill and yank functions do not touch the X clipboard.
+ (modify-frame-parameters frame '((interprogram-cut-function . nil)))
+ (modify-frame-parameters frame '((interprogram-paste-function . nil)))
+
+ (set-locale-environment nil frame)
+ (tty-run-terminal-initialization frame)
(frame-set-background-mode frame)
(face-set-after-frame-default frame)
(setq success t))
(delete-frame frame)))
frame))
+(defun tty-find-type (pred type)
+ "Return the longest prefix of TYPE to which PRED returns non-nil.
+TYPE should be a tty type name such as \"xterm-16color\".
+
+The function tries only those prefixes that are followed by a
+dash or underscore in the original type name, like \"xterm\" in
+the above example."
+ (let (hyphend)
+ (while (and type
+ (not (funcall pred type)))
+ ;; Strip off last hyphen and what follows, then try again
+ (setq type
+ (if (setq hyphend (string-match "[-_][^-_]+$" type))
+ (substring type 0 hyphend)
+ nil))))
+ type)
+
+(defun tty-run-terminal-initialization (frame &optional type)
+ "Run the special initialization code for the terminal type of FRAME.
+The optional TYPE parameter may be used to override the autodetected
+terminal type to a different value."
+ (setq type (or type (tty-type frame)))
+ ;; Load library for our terminal type.
+ ;; User init file can set term-file-prefix to nil to prevent this.
+ (with-selected-frame frame
+ (unless (or (null term-file-prefix)
+ ;; Don't reinitialize the terminal each time a new
+ ;; frame is opened on it.
+ (terminal-parameter frame 'terminal-initted))
+ (let* (term-init-func)
+ ;; First, load the terminal initialization file, if it is
+ ;; available and it hasn't been loaded already.
+ (tty-find-type #'(lambda (type)
+ (let ((file (locate-library (concat term-file-prefix type))))
+ (and file
+ (or (assoc file load-history)
+ (load file t t)))))
+ type)
+ ;; Next, try to find a matching initialization function, and call it.
+ (tty-find-type #'(lambda (type)
+ (fboundp (setq term-init-func
+ (intern (concat "terminal-init-" type)))))
+ type)
+ (when (fboundp term-init-func)
+ (funcall term-init-func))
+ (set-terminal-parameter frame 'terminal-initted term-init-func)))))
;; Called from C function init_display to initialize faces of the
;; dumped terminal frame on startup.
minor-mode-overriding-map-alist
mode-line-buffer-identification
mode-line-format
+ mode-line-client
mode-line-modes
mode-line-modified
mode-line-mule-info
However, the mode will not be changed if
\(1) a local variables list or the `-*-' line specifies a major mode, or
\(2) the current major mode is a \"special\" mode,
- \ not suitable for ordinary files, or
+ \ not suitable for ordinary files, or
\(3) the new file name does not particularly specify any mode."
:type 'boolean
:group 'editing-basics)
"Return the amount of free space on directory DIR's file system.
The result is a string that gives the number of free 1KB blocks,
or nil if the system call or the program which retrieve the information
- fail.
+ fail. It returns also nil when DIR is a remote directory.
This function calls `file-system-info' if it is available, or invokes the
program specified by `directory-free-space-program' if that is non-nil."
- ;; Try to find the number of free blocks. Non-Posix systems don't
- ;; always have df, but might have an equivalent system call.
- (if (fboundp 'file-system-info)
- (let ((fsinfo (file-system-info dir)))
- (if fsinfo
- (format "%.0f" (/ (nth 2 fsinfo) 1024))))
- (save-match-data
- (with-temp-buffer
- (when (and directory-free-space-program
- (eq 0 (call-process directory-free-space-program
- nil t nil
- directory-free-space-args
- dir)))
- ;; Usual format is a header line followed by a line of
- ;; numbers.
- (goto-char (point-min))
- (forward-line 1)
- (if (not (eobp))
- (progn
- ;; Move to the end of the "available blocks" number.
- (skip-chars-forward "^ \t")
- (forward-word 3)
- ;; Copy it into AVAILABLE.
- (let ((end (point)))
- (forward-word -1)
- (buffer-substring (point) end)))))))))
+ (when (not (file-remote-p dir))
+ ;; Try to find the number of free blocks. Non-Posix systems don't
+ ;; always have df, but might have an equivalent system call.
+ (if (fboundp 'file-system-info)
+ (let ((fsinfo (file-system-info dir)))
+ (if fsinfo
+ (format "%.0f" (/ (nth 2 fsinfo) 1024))))
+ (save-match-data
+ (with-temp-buffer
+ (when (and directory-free-space-program
+ (eq 0 (call-process directory-free-space-program
+ nil t nil
+ directory-free-space-args
+ dir)))
+ ;; Usual format is a header line followed by a line of
+ ;; numbers.
+ (goto-char (point-min))
+ (forward-line 1)
+ (if (not (eobp))
+ (progn
+ ;; Move to the end of the "available blocks" number.
+ (skip-chars-forward "^ \t")
+ (forward-word 3)
+ ;; Copy it into AVAILABLE.
+ (let ((end (point)))
+ (forward-word -1)
+ (buffer-substring (point) end))))))))))
;; The following expression replaces `dired-move-to-filename-regexp'.
(defvar directory-listing-before-filename-regexp
(or (null confirm-kill-emacs)
(funcall confirm-kill-emacs "Really exit Emacs? "))
(kill-emacs)))
+
+(defun save-buffers-kill-terminal (&optional arg)
+ "Offer to save each buffer, then kill the current connection.
+If the current frame has no client, kill Emacs itself.
+
+With prefix arg, silently save all file-visiting buffers, then kill.
+
+If emacsclient was started with a list of filenames to edit, then
+only these files will be asked to be saved."
+ (interactive "P")
+ (let ((proc (frame-parameter (selected-frame) 'client))
+ (frame (selected-frame)))
+ (if (null proc)
+ (save-buffers-kill-emacs)
+ (server-save-buffers-kill-terminal proc arg))))
+
\f
;; We use /: as a prefix to "quote" a file name
;; so that magic file name handlers will not apply to it.
(define-key ctl-x-map "i" 'insert-file)
(define-key esc-map "~" 'not-modified)
(define-key ctl-x-map "\C-d" 'list-directory)
-(define-key ctl-x-map "\C-c" 'save-buffers-kill-emacs)
+(define-key ctl-x-map "\C-c" 'save-buffers-kill-terminal)
(define-key ctl-x-map "\C-q" 'toggle-read-only)
(define-key ctl-x-4-map "f" 'find-file-other-window)
(setq font-lock-beg (or (previous-single-property-change
font-lock-beg 'font-lock-multiline)
(point-min))))
- ;;
+ ;;
(when (get-text-property font-lock-end 'font-lock-multiline)
(setq changed t)
(setq font-lock-end (or (text-property-any font-lock-end (point-max)
'font-lock-multiline nil)
(point-max))))
changed))
-
-
+
(defun font-lock-extend-region-wholelines ()
"Move fontification boundaries to beginning of lines."
(let ((changed nil))
(goto-char font-lock-beg)
- (unless (bolp) (setq changed t font-lock-beg (line-beginning-position)))
+ (unless (bolp)
+ (setq changed t font-lock-beg (line-beginning-position)))
(goto-char font-lock-end)
- (unless (bolp) (setq changed t font-lock-end (line-beginning-position 2)))
+ (unless (bolp)
+ (unless (eq font-lock-end
+ (setq font-lock-end (line-beginning-position 2)))
+ (setq changed t)))
changed))
(defun font-lock-default-fontify-region (beg end loudly)
`(;; Control structures. Emacs Lisp forms.
(,(concat
"(" (regexp-opt
- '("cond" "if" "while" "while-no-input" "let" "let*"
+ '("cond" "if" "while" "while-no-input" "let" "let*" "let-environment"
"prog" "progn" "progv" "prog1" "prog2" "prog*"
"inline" "lambda" "save-restriction" "save-excursion"
"save-window-excursion" "save-selected-window"
"with-current-buffer" "with-electric-help"
"with-local-quit" "with-no-warnings"
"with-output-to-string" "with-output-to-temp-buffer"
- "with-selected-window" "with-syntax-table"
+ "with-selected-window" "with-selected-frame" "with-syntax-table"
"with-temp-buffer" "with-temp-file" "with-temp-message"
"with-timeout" "with-timeout-handler") t)
"\\>")
t)
(define-key-after set-coding-system-map [set-terminal-coding-system]
'(menu-item "For Terminal" set-terminal-coding-system
- :enable (null (memq window-system '(x w32 mac)))
+ :enable (null (memq initial-window-system '(x w32 mac)))
:help "How to encode terminal output")
t)
(define-key-after set-coding-system-map [separator-3]
(reset-language-environment)
-(defun set-display-table-and-terminal-coding-system (language-name &optional coding-system)
+(defun set-display-table-and-terminal-coding-system (language-name &optional coding-system display)
"Set up the display table and terminal coding system for LANGUAGE-NAME."
(let ((coding (get-language-info language-name 'unibyte-display)))
(if (and coding
(dotimes (i 128)
(aset standard-display-table (+ i 128) nil))))
(or (eq window-system 'pc)
- (set-terminal-coding-system (or coding-system coding)))))
+ (set-terminal-coding-system (or coding-system coding) display))))
(defun set-language-environment (language-name)
"Set up multi-lingual environment for using LANGUAGE-NAME.
;; en_IN -- fx.
("en_IN" "English" utf-8) ; glibc uses utf-8 for English in India
("en" "English" iso-8859-1) ; English
- ("eo" . "Latin-3") ; Esperanto
+ ("eo" . "Esperanto") ; Esperanto
("es" "Spanish" iso-8859-1)
("et" . "Latin-1") ; Estonian
("eu" . "Latin-1") ; Basque
;; too, for setting things such as calendar holidays, ps-print paper
;; size, spelling dictionary.
-(defun set-locale-environment (&optional locale-name)
+(defun set-locale-environment (&optional locale-name display)
"Set up multi-lingual environment for using LOCALE-NAME.
This sets the language environment, the coding system priority,
the default input method and sometimes other things.
will be translated according to the table specified by
`locale-translation-file-name'.
+If DISPLAY is non-nil, only set the keyboard coding system and
+the terminal coding system for the given display, and don't touch
+session-global parameters like the language environment. DISPLAY
+may be a display id or a frame.
+
See also `locale-charset-language-names', `locale-language-names',
`locale-preferred-coding-systems' and `locale-coding-system'."
(interactive "sSet environment for locale: ")
(let ((vars '("LC_ALL" "LC_CTYPE" "LANG")))
(while (and vars
(= 0 (length locale))) ; nil or empty string
- (setq locale (getenv (pop vars))))))
+ (setq locale (getenv (pop vars) display)))))
(unless locale
;; The two tests are kept separate so the byte-compiler sees
;; Set up for this character set. This is now the right way
;; to do it for both unibyte and multibyte modes.
- (set-language-environment language-name)
+ (unless display
+ (set-language-environment language-name))
;; If default-enable-multibyte-characters is nil,
;; we are using single-byte characters,
;; so the display table and terminal coding system are irrelevant.
(when default-enable-multibyte-characters
(set-display-table-and-terminal-coding-system
- language-name coding-system))
+ language-name coding-system display))
;; Set the `keyboard-coding-system' if appropriate (tty
;; only). At least X and MS Windows can generate
;; multilingual input.
- (unless window-system
- (let ((kcs (or coding-system
- (car (get-language-info language-name
- 'coding-system)))))
- (if kcs (set-keyboard-coding-system kcs))))
-
- (setq locale-coding-system
- (car (get-language-info language-name 'coding-priority))))
-
- (when (and coding-system
+ ;; XXX This was disabled unless `window-system', but that
+ ;; leads to buggy behaviour when a tty frame is opened
+ ;; later. Setting the keyboard coding system has no adverse
+ ;; effect on X, so let's do it anyway. -- Lorentey
+ (let ((kcs (or coding-system
+ (car (get-language-info language-name
+ 'coding-system)))))
+ (if kcs (set-keyboard-coding-system kcs display)))
+
+ (unless display
+ (setq locale-coding-system
+ (car (get-language-info language-name 'coding-priority)))))
+
+ (when (and (not display)
+ coding-system
(not (coding-system-equal coding-system
locale-coding-system)))
(prefer-coding-system coding-system)
(when (boundp 'w32-ansi-code-page)
(let ((code-page-coding (intern (format "cp%d" w32-ansi-code-page))))
(when (coding-system-p code-page-coding)
- (setq locale-coding-system code-page-coding)
- (set-keyboard-coding-system code-page-coding)
- (set-terminal-coding-system code-page-coding))))
+ (unless display (setq locale-coding-system code-page-coding))
+ (set-keyboard-coding-system code-page-coding display)
+ (set-terminal-coding-system code-page-coding display))))
(when (eq system-type 'darwin)
;; On Darwin, file names are always encoded in utf-8, no matter
;; Mac OS X's Terminal.app by default uses utf-8 regardless of
;; the locale.
(when (and (null window-system)
- (equal (getenv "TERM_PROGRAM") "Apple_Terminal"))
+ (equal (getenv "TERM_PROGRAM" display) "Apple_Terminal"))
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)))
;; Default to A4 paper if we're not in a C, POSIX or US locale.
;; (See comments in Flocale_info.)
- (let ((locale locale)
- (paper (locale-info 'paper)))
- (if paper
- ;; This will always be null at the time of writing.
- (cond
- ((equal paper '(216 279))
- (setq ps-paper-type 'letter))
- ((equal paper '(210 297))
- (setq ps-paper-type 'a4)))
- (let ((vars '("LC_ALL" "LC_PAPER" "LANG")))
- (while (and vars (= 0 (length locale)))
- (setq locale (getenv (pop vars)))))
- (when locale
- ;; As of glibc 2.2.5, these are the only US Letter locales,
- ;; and the rest are A4.
- (setq ps-paper-type
- (or (locale-name-match locale '(("c$" . letter)
- ("posix$" . letter)
- (".._us" . letter)
- (".._pr" . letter)
- (".._ca" . letter)
- ("enu$" . letter) ; Windows
- ("esu$" . letter)
- ("enc$" . letter)
- ("frc$" . letter)))
- 'a4))))))
+ (unless display
+ (let ((locale locale)
+ (paper (locale-info 'paper)))
+ (if paper
+ ;; This will always be null at the time of writing.
+ (cond
+ ((equal paper '(216 279))
+ (setq ps-paper-type 'letter))
+ ((equal paper '(210 297))
+ (setq ps-paper-type 'a4)))
+ (let ((vars '("LC_ALL" "LC_PAPER" "LANG")))
+ (while (and vars (= 0 (length locale)))
+ (setq locale (getenv (pop vars) display))))
+ (when locale
+ ;; As of glibc 2.2.5, these are the only US Letter locales,
+ ;; and the rest are A4.
+ (setq ps-paper-type
+ (or (locale-name-match locale '(("c$" . letter)
+ ("posix$" . letter)
+ (".._us" . letter)
+ (".._pr" . letter)
+ (".._ca" . letter)
+ ("enu$" . letter) ; Windows
+ ("esu$" . letter)
+ ("enc$" . letter)
+ ("frc$" . letter)))
+ 'a4)))))))
nil)
\f
;;; Charset property
This is normally set according to the selected language environment.
See also the command `set-terminal-coding-system'.")
-(defun set-terminal-coding-system (coding-system)
- "Set coding system of your terminal to CODING-SYSTEM.
-All text output to the terminal will be encoded
+(defun set-terminal-coding-system (coding-system &optional display)
+ "Set coding system of terminal output to CODING-SYSTEM.
+All text output to DISPLAY will be encoded
with the specified coding system.
+
For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems].
The default is determined by the selected language environment
-or by the previous use of this command."
+or by the previous use of this command.
+
+DISPLAY may be a display id, a frame, or nil for the selected frame's display.
+The setting has no effect on graphical displays."
(interactive
(list (let ((default (if (and (not (terminal-coding-system))
default-terminal-coding-system)
(setq coding-system default-terminal-coding-system))
(if coding-system
(setq default-terminal-coding-system coding-system))
- (set-terminal-coding-system-internal coding-system)
+ (set-terminal-coding-system-internal coding-system display)
(redraw-frame (selected-frame)))
(defvar default-keyboard-coding-system nil
This is normally set according to the selected language environment.
See also the command `set-keyboard-coding-system'.")
-(defun set-keyboard-coding-system (coding-system)
- "Set coding system for keyboard input to CODING-SYSTEM.
-In addition, this command enables Encoded-kbd minor mode.
-\(If CODING-SYSTEM is nil, Encoded-kbd mode is turned off -- see
-`encoded-kbd-mode'.)
+(defun set-keyboard-coding-system (coding-system &optional display)
+ "Set coding system for keyboard input on DISPLAY to CODING-SYSTEM.
+In addition, this command calls `encoded-kbd-setup-display' to set up the
+translation of keyboard input events to the specified coding system.
+
For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems].
The default is determined by the selected language environment
-or by the previous use of this command."
+or by the previous use of this command.
+
+DISPLAY may be a display id, a frame, or nil for the selected frame's display.
+The setting has no effect on graphical displays."
(interactive
(list (let ((default (if (and (not (keyboard-coding-system))
default-keyboard-coding-system)
(if (and coding-system
(coding-system-get coding-system 'ascii-incompatible))
(error "%s is not ASCII-compatible" coding-system))
- (set-keyboard-coding-system-internal coding-system)
+ (set-keyboard-coding-system-internal coding-system display)
(setq keyboard-coding-system coding-system)
- (encoded-kbd-mode (if coding-system 1 0)))
+ (encoded-kbd-setup-display display))
(defcustom keyboard-coding-system nil
"Specify coding system for keyboard input.
:link '(info-link "(emacs)Terminal Coding")
:link '(info-link "(emacs)Unibyte Mode")
:set (lambda (symbol value)
- ;; Don't load encoded-kbd-mode unnecessarily.
- (if (or value (boundp 'encoded-kbd-mode))
+ ;; Don't load encoded-kb unnecessarily.
+ (if (or value (boundp 'encoded-kbd-setup-display))
(set-keyboard-coding-system value)
(set-default 'keyboard-coding-system nil))) ; must initialize
:version "22.1"
system and SOURCE is a symbol `auto-coding-alist',
`auto-coding-regexp-alist', `coding:', or `auto-coding-functions'
indicating by what CODING is specified. Note that the validity
- of CODING is not checked; it's callers responsibility to check it.
+ of CODING is not checked; it's the caller's responsibility to check it.
If nothing is specified, the return value is nil."
(or (let ((coding-system (auto-coding-alist-lookup filename)))
(keylist (listify-key-sequence key))
scroll-command isearch-point)
(cond ((and (= (length key) 1)
- (let ((lookup (lookup-key function-key-map key)))
+ (let ((lookup (lookup-key local-function-key-map key)))
(not (or (null lookup) (integerp lookup)
(keymapp lookup)))))
;; Handle a function key that translates into something else.
(isearch-done)
(apply 'isearch-unread keylist))
(setq keylist
- (listify-key-sequence (lookup-key function-key-map key)))
+ (listify-key-sequence (lookup-key local-function-key-map key)))
(while keylist
(setq key (car keylist))
;; If KEY is a printing char, we handle it here
(defvar isearch-lazy-highlight-window-end nil)
(defvar isearch-lazy-highlight-case-fold-search nil)
(defvar isearch-lazy-highlight-regexp nil)
+ (defvar isearch-lazy-highlight-space-regexp nil)
(defun lazy-highlight-cleanup (&optional force)
"Stop lazy highlighting and remove extra highlighting from current buffer.
isearch-lazy-highlight-last-string isearch-string
isearch-lazy-highlight-case-fold-search isearch-case-fold-search
isearch-lazy-highlight-regexp isearch-regexp
- isearch-lazy-highlight-wrapped nil)
+ isearch-lazy-highlight-wrapped nil
+ isearch-lazy-highlight-space-regexp search-whitespace-regexp)
(unless (equal isearch-string "")
(setq isearch-lazy-highlight-timer
(run-with-idle-timer lazy-highlight-initial-delay nil
Attempt to do the search exactly the way the pending isearch would."
(let ((case-fold-search isearch-lazy-highlight-case-fold-search)
(isearch-regexp isearch-lazy-highlight-regexp)
- (search-spaces-regexp search-whitespace-regexp))
+ (search-spaces-regexp isearch-lazy-highlight-space-regexp))
(condition-case nil
(isearch-search-string
isearch-lazy-highlight-last-string
\f
;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best
;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5"
-;;;;;; "play/5x5.el" (17876 36878))
+;;;;;; "play/5x5.el" (17817 14124))
;;; Generated autoloads from play/5x5.el
(autoload (quote 5x5) "5x5" "\
\(fn)" t nil)
(autoload (quote 5x5-crack-xor-mutate) "5x5" "\
- Attempt to crack 5x5 by xor the current and best solution.
+ Attempt to crack 5x5 by xoring the current and best solution.
Mutate the result.
\(fn)" t nil)
5x5-crack takes the argument BREEDER which should be a function that takes
two parameters, the first will be a grid vector array that is the current
- solution and the second will be the best solution so far. The function
+ solution and the second will be the best solution so far. The function
should return a grid vector array that is the new solution.
\(fn BREEDER)" t nil)
;;;***
\f
-;;;### (autoloads nil "abbrev" "abbrev.el" (17851 10813))
+;;;### (autoloads nil "abbrev" "abbrev.el" (17817 13973))
;;; Generated autoloads from abbrev.el
(put 'abbrev-mode 'safe-local-variable 'booleanp)
;;;***
\f
;;;### (autoloads (list-one-abbrev-table) "abbrevlist" "abbrevlist.el"
-;;;;;; (17851 10813))
+;;;;;; (17817 13973))
;;; Generated autoloads from abbrevlist.el
(autoload (quote list-one-abbrev-table) "abbrevlist" "\
;;;***
\f
;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el"
-;;;;;; (17851 10866))
+;;;;;; (17778 50475))
;;; Generated autoloads from progmodes/ada-mode.el
(autoload (quote ada-add-extensions) "ada-mode" "\
;;;***
\f
;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el"
-;;;;;; (17851 10866))
+;;;;;; (17778 50475))
;;; Generated autoloads from progmodes/ada-stmt.el
(autoload (quote ada-header) "ada-stmt" "\
;;;***
\f
;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el"
-;;;;;; (17851 10866))
+;;;;;; (17817 13969))
;;; Generated autoloads from progmodes/ada-xref.el
(autoload (quote ada-find-file) "ada-xref" "\
;;;;;; change-log-mode add-change-log-entry-other-window add-change-log-entry
;;;;;; find-change-log prompt-for-change-log-name add-log-mailing-address
;;;;;; add-log-full-name add-log-current-defun-function) "add-log"
-;;;;;; "add-log.el" (17852 50694))
+;;;;;; "add-log.el" (17817 16160))
;;; Generated autoloads from add-log.el
(defvar add-log-current-defun-function nil "\
\f
;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice
;;;;;; ad-enable-advice ad-default-compilation-action ad-redefinition-action)
-;;;;;; "advice" "emacs-lisp/advice.el" (17851 10852))
+;;;;;; "advice" "emacs-lisp/advice.el" (17817 13982))
;;; Generated autoloads from emacs-lisp/advice.el
(defvar ad-redefinition-action (quote warn) "\
\f
;;;### (autoloads (align-newline-and-indent align-unhighlight-rule
;;;;;; align-highlight-rule align-current align-entire align-regexp
-;;;;;; align) "align" "align.el" (17851 10813))
+;;;;;; align) "align" "align.el" (17817 15485))
;;; Generated autoloads from align.el
(autoload (quote align) "align" "\
;;;***
\f
;;;### (autoloads (outlineify-sticky allout-mode) "allout" "allout.el"
-;;;;;; (17851 10813))
+;;;;;; (17817 16945))
;;; Generated autoloads from allout.el
(put (quote allout-show-bodies) (quote safe-local-variable) (if (fboundp (quote booleanp)) (quote booleanp) (quote (lambda (x) (member x (quote (t nil)))))))
;;;***
\f
;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp"
-;;;;;; "net/ange-ftp.el" (17856 1487))
+;;;;;; "net/ange-ftp.el" (17817 15940))
;;; Generated autoloads from net/ange-ftp.el
(defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir))
;;;***
\f
;;;### (autoloads (animate-birthday-present animate-sequence animate-string)
-;;;;;; "animate" "play/animate.el" (17851 10865))
+;;;;;; "animate" "play/animate.el" (17383 38807))
;;; Generated autoloads from play/animate.el
(autoload (quote animate-string) "animate" "\
;;;***
\f
;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on)
-;;;;;; "ansi-color" "ansi-color.el" (17851 10813))
+;;;;;; "ansi-color" "ansi-color.el" (17390 26934))
;;; Generated autoloads from ansi-color.el
(autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\
;;;***
\f
;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules)
-;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17851 10866))
+;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17490 7905))
;;; Generated autoloads from progmodes/antlr-mode.el
(autoload (quote antlr-show-makefile-rules) "antlr-mode" "\
;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add
;;;;;; appt-display-diary appt-display-duration appt-display-mode-line
;;;;;; appt-msg-window appt-visible appt-audible appt-message-warning-time
-;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17851 10850))
+;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17713 5989))
;;; Generated autoloads from calendar/appt.el
(defvar appt-issue-message t "\
\f
;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property
;;;;;; apropos-command apropos-variable apropos-read-pattern) "apropos"
-;;;;;; "apropos.el" (17851 10813))
+;;;;;; "apropos.el" (17778 50472))
;;; Generated autoloads from apropos.el
(autoload (quote apropos-read-pattern) "apropos" "\
;;;***
\f
-;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17851
-;;;;;; 10814))
+;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17817
+;;;;;; 13973))
;;; Generated autoloads from arc-mode.el
(autoload (quote archive-mode) "arc-mode" "\
;;;***
\f
-;;;### (autoloads (array-mode) "array" "array.el" (17851 10814))
+;;;### (autoloads (array-mode) "array" "array.el" (17817 13973))
;;; Generated autoloads from array.el
(autoload (quote array-mode) "array" "\
;;;***
\f
-;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17851
-;;;;;; 10872))
+;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17524
+;;;;;; 8598))
;;; Generated autoloads from textmodes/artist.el
(autoload (quote artist-mode) "artist" "\
;;;***
\f
-;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17851
-;;;;;; 10866))
+;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17490
+;;;;;; 7930))
;;; Generated autoloads from progmodes/asm-mode.el
(autoload (quote asm-mode) "asm-mode" "\
\(fn)" t nil)
+;;;***
+\f
+;;;### (autoloads (auto-show-mode auto-show-mode) "auto-show" "obsolete/auto-show.el"
+;;;;;; (17279 27080))
+;;; Generated autoloads from obsolete/auto-show.el
+
+(defvar auto-show-mode nil "\
+Obsolete.")
+
+(custom-autoload (quote auto-show-mode) "auto-show")
+
+(autoload (quote auto-show-mode) "auto-show" "\
+This command is obsolete.
+
+\(fn ARG)" t nil)
+
;;;***
\f
;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el"
-;;;;;; (17851 10814))
+;;;;;; (17817 13973))
;;; Generated autoloads from autoarg.el
(defvar autoarg-mode nil "\
;;;***
\f
;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el"
-;;;;;; (17851 10866))
+;;;;;; (17817 14147))
;;; Generated autoloads from progmodes/autoconf.el
(autoload (quote autoconf-mode) "autoconf" "\
;;;***
\f
;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert)
-;;;;;; "autoinsert" "autoinsert.el" (17851 10814))
+;;;;;; "autoinsert" "autoinsert.el" (17817 13973))
;;; Generated autoloads from autoinsert.el
(autoload (quote auto-insert) "autoinsert" "\
\f
;;;### (autoloads (batch-update-autoloads update-directory-autoloads
;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el"
-;;;;;; (17860 50251))
+;;;;;; (17611 8435))
;;; Generated autoloads from emacs-lisp/autoload.el
(autoload (quote update-file-autoloads) "autoload" "\
\f
;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode
;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode)
-;;;;;; "autorevert" "autorevert.el" (17851 10814))
+;;;;;; "autorevert" "autorevert.el" (17505 62410))
;;; Generated autoloads from autorevert.el
(autoload (quote auto-revert-mode) "autorevert" "\
Non-nil if Global-Auto-Revert mode is enabled.
See the command `global-auto-revert-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-auto-revert-mode'.")
+use either \\[customize] or the function `global-auto-revert-mode'.")
-(custom-autoload (quote global-auto-revert-mode) "autorevert" nil)
+(custom-autoload (quote global-auto-revert-mode) "autorevert")
(autoload (quote global-auto-revert-mode) "autorevert" "\
Revert any buffer when file on disk changes.
;;;***
\f
;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid"
-;;;;;; "avoid.el" (17851 10814))
+;;;;;; "avoid.el" (17817 13974))
;;; Generated autoloads from avoid.el
(defvar mouse-avoidance-mode nil "\
;;;***
\f
;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el"
-;;;;;; (17851 10852))
+;;;;;; (17390 26937))
;;; Generated autoloads from emacs-lisp/backquote.el
(autoload (quote backquote) "backquote" "\
;;;***
\f
;;;### (autoloads (display-battery-mode battery) "battery" "battery.el"
-;;;;;; (17851 10815))
+;;;;;; (17778 50472))
;;; Generated autoloads from battery.el
(put 'battery-mode-line-string 'risky-local-variable t)
;;;***
\f
;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run)
-;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17851 10852))
+;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17390 26937))
;;; Generated autoloads from emacs-lisp/benchmark.el
(autoload (quote benchmark-run) "benchmark" "\
;;;***
\f
-;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17851
-;;;;;; 39452))
+;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17817
+;;;;;; 14127))
;;; Generated autoloads from textmodes/bibtex.el
(autoload (quote bibtex-mode) "bibtex" "\
\f
;;;### (autoloads (binhex-decode-region binhex-decode-region-external
;;;;;; binhex-decode-region-internal) "binhex" "gnus/binhex.el"
-;;;;;; (17851 10856))
+;;;;;; (17383 38804))
;;; Generated autoloads from gnus/binhex.el
(defconst binhex-begin-line "^:...............................................................$")
;;;***
\f
-;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17851
-;;;;;; 10865))
+;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17383
+;;;;;; 38807))
;;; Generated autoloads from play/blackbox.el
(autoload (quote blackbox) "blackbox" "\
;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save
;;;;;; bookmark-write bookmark-delete bookmark-insert bookmark-rename
;;;;;; bookmark-insert-location bookmark-relocate bookmark-jump
-;;;;;; bookmark-set) "bookmark" "bookmark.el" (17851 10815))
+;;;;;; bookmark-set) "bookmark" "bookmark.el" (17390 26935))
;;; Generated autoloads from bookmark.el
(define-key ctl-x-map "rb" 'bookmark-jump)
(define-key ctl-x-map "rm" 'bookmark-set)
;;;;;; browse-url browse-url-of-region browse-url-of-dired-file
;;;;;; browse-url-of-buffer browse-url-of-file browse-url-url-at-point
;;;;;; browse-url-galeon-program browse-url-firefox-program browse-url-browser-function)
-;;;;;; "browse-url" "net/browse-url.el" (17851 10863))
+;;;;;; "browse-url" "net/browse-url.el" (17817 13984))
;;; Generated autoloads from net/browse-url.el
(defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\
;;;***
\f
-;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17851
-;;;;;; 10865))
+;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17817
+;;;;;; 14124))
;;; Generated autoloads from play/bruce.el
(autoload (quote bruce) "bruce" "\
;;;***
\f
;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next)
-;;;;;; "bs" "bs.el" (17851 10816))
+;;;;;; "bs" "bs.el" (17817 16161))
;;; Generated autoloads from bs.el
(autoload (quote bs-cycle-next) "bs" "\
;;;***
\f
;;;### (autoloads (insert-text-button make-text-button insert-button
-;;;;;; make-button define-button-type) "button" "button.el" (17851
-;;;;;; 10816))
+;;;;;; make-button define-button-type) "button" "button.el" (17390
+;;;;;; 26935))
;;; Generated autoloads from button.el
(defvar button-map (let ((map (make-sparse-keymap))) (define-key map "\r" (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\
;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile
;;;;;; compile-defun byte-compile-file byte-recompile-directory
;;;;;; byte-force-recompile byte-compile-warnings-safe-p) "bytecomp"
-;;;;;; "emacs-lisp/bytecomp.el" (17873 60335))
+;;;;;; "emacs-lisp/bytecomp.el" (17778 50473))
;;; Generated autoloads from emacs-lisp/bytecomp.el
(put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
-(put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
(put 'byte-compile-dynamic-docstrings 'safe-local-variable 'booleanp)
(autoload (quote byte-compile-warnings-safe-p) "bytecomp" "\
(autoload (quote byte-compile-file) "bytecomp" "\
Compile a file of Lisp code named FILENAME into a file of byte code.
- The output file's name is made by appending `c' to the end of FILENAME.
+ The output file's name is generated by passing FILENAME to the
+ `byte-compile-dest-file' function (which see).
With prefix arg (noninteractively: 2nd arg), LOAD the file after compiling.
The value is non-nil if there were no errors, nil if errors.
;;;***
\f
-;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17851 10850))
+;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17817 16161))
;;; Generated autoloads from calendar/cal-dst.el
(put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t)
;;;***
\f
;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el"
-;;;;;; (17851 10850))
+;;;;;; (17390 27324))
;;; Generated autoloads from calendar/cal-hebrew.el
(autoload (quote list-yahrzeit-dates) "cal-hebrew" "\
;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle
;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc
;;;;;; full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el"
-;;;;;; (17851 10850))
+;;;;;; (17713 5989))
;;; Generated autoloads from calc/calc.el
(defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\
;;;***
\f
-;;;### (autoloads (calculator) "calculator" "calculator.el" (17871
-;;;;;; 15753))
+;;;### (autoloads (calculator) "calculator" "calculator.el" (17390
+;;;;;; 26935))
;;; Generated autoloads from calculator.el
(autoload (quote calculator) "calculator" "\
;;;;;; mark-holidays-in-calendar view-calendar-holidays-initially
;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar
;;;;;; view-diary-entries-initially calendar-offset) "calendar"
-;;;;;; "calendar/calendar.el" (17851 10851))
+;;;;;; "calendar/calendar.el" (17817 16151))
;;; Generated autoloads from calendar/calendar.el
(defvar calendar-offset 0 "\
;;;***
\f
;;;### (autoloads (canlock-verify canlock-insert-header) "canlock"
-;;;;;; "gnus/canlock.el" (17851 10856))
+;;;;;; "gnus/canlock.el" (17383 38804))
;;; Generated autoloads from gnus/canlock.el
(autoload (quote canlock-insert-header) "canlock" "\
;;;***
\f
-;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17851
-;;;;;; 10866))
+;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17817
+;;;;;; 13957))
;;; Generated autoloads from progmodes/cc-compat.el
(put 'c-indent-level 'safe-local-variable 'integerp)
;;;***
\f
;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
-;;;;;; (17859 56529))
+;;;;;; (17817 13957))
;;; Generated autoloads from progmodes/cc-engine.el
(autoload (quote c-guess-basic-syntax) "cc-engine" "\
\f
;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
-;;;;;; (17851 10867))
+;;;;;; (17817 15855))
;;; Generated autoloads from progmodes/cc-mode.el
(autoload (quote c-initialize-cc-mode) "cc-mode" "\
;;;***
\f
;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles"
-;;;;;; "progmodes/cc-styles.el" (17851 10867))
+;;;;;; "progmodes/cc-styles.el" (17817 13957))
;;; Generated autoloads from progmodes/cc-styles.el
(autoload (quote c-set-style) "cc-styles" "\
;;;***
\f
-;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17851
-;;;;;; 10867))
+;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17515
+;;;;;; 24933))
;;; Generated autoloads from progmodes/cc-subword.el
(autoload 'c-subword-mode "cc-subword" "Mode enabling subword movement and editing keys." t)
;;;***
\f
-;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17854 10614))
+;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17817 13957))
;;; Generated autoloads from progmodes/cc-vars.el
(put 'c-basic-offset 'safe-local-variable 'integerp)
(put 'c-backslash-column 'safe-local-variable 'integerp)
\f
;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program
;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el"
-;;;;;; (17851 10860))
+;;;;;; (17817 15477))
;;; Generated autoloads from international/ccl.el
(autoload (quote ccl-compile) "ccl" "\
;;;***
\f
;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el"
-;;;;;; (17851 10867))
+;;;;;; (17713 5991))
;;; Generated autoloads from progmodes/cfengine.el
(autoload (quote cfengine-mode) "cfengine" "\
;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer
;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive
;;;;;; checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el"
-;;;;;; (17851 10852))
+;;;;;; (17778 50473))
;;; Generated autoloads from emacs-lisp/checkdoc.el
(autoload (quote checkdoc) "checkdoc" "\
;;;***
\f
;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer
-;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17851
-;;;;;; 10861))
+;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17817
+;;;;;; 15478))
;;; Generated autoloads from language/china-util.el
(autoload (quote decode-hz-region) "china-util" "\
;;;***
\f
;;;### (autoloads (command-history list-command-history repeat-matching-complex-command)
-;;;;;; "chistory" "chistory.el" (17851 10817))
+;;;;;; "chistory" "chistory.el" (17817 13974))
;;; Generated autoloads from chistory.el
(autoload (quote repeat-matching-complex-command) "chistory" "\
;;;***
\f
-;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17851 10852))
+;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17817 13982))
;;; Generated autoloads from emacs-lisp/cl.el
(defvar custom-print-functions nil "\
;;;***
\f
;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el"
-;;;;;; (17851 10852))
+;;;;;; (17778 49129))
;;; Generated autoloads from emacs-lisp/cl-indent.el
(autoload (quote common-lisp-indent-function) "cl-indent" "\
;;;***
\f
;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el"
-;;;;;; (17851 10867))
+;;;;;; (17390 27407))
;;; Generated autoloads from progmodes/cmacexp.el
(autoload (quote c-macro-expand) "cmacexp" "\
;;;***
\f
-;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17851
-;;;;;; 10817))
+;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17817
+;;;;;; 14115))
;;; Generated autoloads from cmuscheme.el
(autoload (quote run-scheme) "cmuscheme" "\
;;;***
\f
;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el"
-;;;;;; (17851 10860))
+;;;;;; (17817 14139))
;;; Generated autoloads from international/code-pages.el
(autoload (quote cp-make-coding-system) "code-pages" "\
\f
;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage
;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage)
-;;;;;; "codepage" "international/codepage.el" (17851 10860))
+;;;;;; "codepage" "international/codepage.el" (17817 15477))
;;; Generated autoloads from international/codepage.el
(autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\
;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command
;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
-;;;;;; (17856 42110))
+;;;;;; (17817 15855))
;;; Generated autoloads from comint.el
(defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\
;;;***
\f
-;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17851
-;;;;;; 10817))
+;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17817
+;;;;;; 13974))
;;; Generated autoloads from compare-w.el
(autoload (quote compare-windows) "compare-w" "\
;;;;;; compilation-shell-minor-mode compilation-mode compilation-start
;;;;;; compile compilation-disable-input compile-command compilation-search-path
;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook)
-;;;;;; "compile" "progmodes/compile.el" (17851 10867))
+;;;;;; "compile" "progmodes/compile.el" (17778 50475))
;;; Generated autoloads from progmodes/compile.el
(defvar compilation-mode-hook nil "\
;;;***
\f
;;;### (autoloads (partial-completion-mode) "complete" "complete.el"
-;;;;;; (17851 10818))
+;;;;;; (17817 13974))
;;; Generated autoloads from complete.el
(defvar partial-completion-mode nil "\
;;;***
\f
;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el"
-;;;;;; (17851 10818))
+;;;;;; (17817 13975))
;;; Generated autoloads from completion.el
(defvar dynamic-completion-mode nil "\
;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after
;;;;;; find-composition compose-chars decompose-string compose-string
;;;;;; decompose-region compose-region encode-composition-rule)
-;;;;;; "composite" "composite.el" (17851 10818))
+;;;;;; "composite" "composite.el" (17817 15477))
;;; Generated autoloads from composite.el
(defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\
;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode
;;;;;; conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode
;;;;;; conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el"
-;;;;;; (17851 10872))
+;;;;;; (17713 5992))
;;; Generated autoloads from textmodes/conf-mode.el
(autoload (quote conf-mode) "conf-mode" "\
;;;***
\f
;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie)
-;;;;;; "cookie1" "play/cookie1.el" (17851 10865))
+;;;;;; "cookie1" "play/cookie1.el" (17817 14124))
;;; Generated autoloads from play/cookie1.el
(autoload (quote cookie) "cookie1" "\
;;;***
\f
;;;### (autoloads (copyright copyright-fix-years copyright-update)
-;;;;;; "copyright" "emacs-lisp/copyright.el" (17851 10852))
+;;;;;; "copyright" "emacs-lisp/copyright.el" (17390 26938))
;;; Generated autoloads from emacs-lisp/copyright.el
(autoload (quote copyright-update) "copyright" "\
;;;***
\f
;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode)
-;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (17851 10867))
+;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (17817 13977))
;;; Generated autoloads from progmodes/cperl-mode.el
(autoload (quote cperl-mode) "cperl-mode" "\
;;;***
\f
;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el"
-;;;;;; (17851 10867))
+;;;;;; (17390 27408))
;;; Generated autoloads from progmodes/cpp.el
(autoload (quote cpp-highlight-buffer) "cpp" "\
;;;***
\f
;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el"
-;;;;;; (17851 10853))
+;;;;;; (17817 13982))
;;; Generated autoloads from emulation/crisp.el
(defvar crisp-mode nil "\
;;;***
\f
;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el"
-;;;;;; (17851 10852))
+;;;;;; (17817 13982))
;;; Generated autoloads from emacs-lisp/crm.el
(autoload (quote completing-read-multiple) "crm" "\
;;;***
\f
;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el"
-;;;;;; (17853 23392))
+;;;;;; (17817 13978))
;;; Generated autoloads from emulation/cua-base.el
(defvar cua-mode nil "\
;;;;;; custom-save-all custom-file customize-browse custom-buffer-create-other-window
;;;;;; custom-buffer-create customize-apropos-groups customize-apropos-faces
;;;;;; customize-apropos-options customize-apropos customize-saved
-;;;;;; customize-rogue customize-unsaved customize-face-other-window
+;;;;;; customize-rogue customize-customized customize-face-other-window
;;;;;; customize-face customize-changed-options customize-option-other-window
;;;;;; customize-option customize-group-other-window customize-group
;;;;;; customize-mode customize customize-save-variable customize-set-variable
;;;;;; customize-set-value custom-menu-sort-alphabetically custom-buffer-sort-alphabetically
;;;;;; custom-browse-sort-alphabetically) "cus-edit" "cus-edit.el"
-;;;;;; (17851 10819))
+;;;;;; (17817 16161))
;;; Generated autoloads from cus-edit.el
(defvar custom-browse-sort-alphabetically nil "\
;;;***
\f
;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces
-;;;;;; custom-declare-face) "cus-face" "cus-face.el" (17851 10821))
+;;;;;; custom-declare-face) "cus-face" "cus-face.el" (17390 26936))
;;; Generated autoloads from cus-face.el
(autoload (quote custom-declare-face) "cus-face" "\
;;;***
\f
;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el"
-;;;;;; (17851 10821))
+;;;;;; (17713 5203))
;;; Generated autoloads from cus-theme.el
(autoload (quote customize-create-theme) "cus-theme" "\
;;;***
\f
;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el"
-;;;;;; (17851 10822))
+;;;;;; (17817 13975))
;;; Generated autoloads from cvs-status.el
(autoload (quote cvs-status-mode) "cvs-status" "\
;;;***
\f
;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode)
-;;;;;; "cwarn" "progmodes/cwarn.el" (17860 50288))
+;;;;;; "cwarn" "progmodes/cwarn.el" (17390 27408))
;;; Generated autoloads from progmodes/cwarn.el
(autoload (quote cwarn-mode) "cwarn" "\
\f
;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char
;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el"
-;;;;;; (17851 10861))
+;;;;;; (17817 14143))
;;; Generated autoloads from language/cyril-util.el
(autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\
;;;***
\f
;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
-;;;;;; (17851 10822))
+;;;;;; (17390 26936))
;;; Generated autoloads from dabbrev.el
(define-key esc-map "/" 'dabbrev-expand)
(define-key esc-map [?\C-/] 'dabbrev-completion)
;;;***
\f
-;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17851
-;;;;;; 10867))
+;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17390
+;;;;;; 27408))
;;; Generated autoloads from progmodes/dcl-mode.el
(autoload (quote dcl-mode) "dcl-mode" "\
;;;***
\f
;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug"
-;;;;;; "emacs-lisp/debug.el" (17851 10852))
+;;;;;; "emacs-lisp/debug.el" (17390 26938))
;;; Generated autoloads from emacs-lisp/debug.el
(setq debugger (quote debug))
;;;***
\f
;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el"
-;;;;;; (17851 10865))
+;;;;;; (17817 14124))
;;; Generated autoloads from play/decipher.el
(autoload (quote decipher) "decipher" "\
;;;***
\f
;;;### (autoloads (delimit-columns-rectangle delimit-columns-region
-;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17851
-;;;;;; 10822))
+;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17817
+;;;;;; 13975))
;;; Generated autoloads from delim-col.el
(autoload (quote delimit-columns-customize) "delim-col" "\
;;;***
\f
-;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17851
-;;;;;; 10867))
+;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17611
+;;;;;; 9414))
;;; Generated autoloads from progmodes/delphi.el
(autoload (quote delphi-mode) "delphi" "\
;;;***
\f
-;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17851
-;;;;;; 10822))
+;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17390
+;;;;;; 26936))
;;; Generated autoloads from delsel.el
(defalias (quote pending-delete-mode) (quote delete-selection-mode))
;;;***
\f
;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode)
-;;;;;; "derived" "emacs-lisp/derived.el" (17851 10852))
+;;;;;; "derived" "emacs-lisp/derived.el" (17817 13982))
;;; Generated autoloads from emacs-lisp/derived.el
(autoload (quote define-derived-mode) "derived" "\
;;;***
\f
;;;### (autoloads (describe-char describe-text-properties) "descr-text"
-;;;;;; "descr-text.el" (17875 14312))
+;;;;;; "descr-text.el" (17817 13959))
;;; Generated autoloads from descr-text.el
(autoload (quote describe-text-properties) "descr-text" "\
;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir
;;;;;; desktop-load-default desktop-read desktop-remove desktop-save
;;;;;; desktop-clear desktop-locals-to-save desktop-save-mode) "desktop"
-;;;;;; "desktop.el" (17851 10822))
+;;;;;; "desktop.el" (17713 5989))
;;; Generated autoloads from desktop.el
(defvar desktop-save-mode nil "\
\f
;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article
;;;;;; gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines)
-;;;;;; "deuglify" "gnus/deuglify.el" (17851 10856))
+;;;;;; "deuglify" "gnus/deuglify.el" (17817 15855))
;;; Generated autoloads from gnus/deuglify.el
(autoload (quote gnus-article-outlook-unwrap-lines) "deuglify" "\
;;;***
\f
;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region)
-;;;;;; "devan-util" "language/devan-util.el" (17851 10861))
+;;;;;; "devan-util" "language/devan-util.el" (17817 15478))
;;; Generated autoloads from language/devan-util.el
(defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]")
;;;***
\f
;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib"
-;;;;;; "calendar/diary-lib.el" (17851 10852))
+;;;;;; "calendar/diary-lib.el" (17518 54393))
;;; Generated autoloads from calendar/diary-lib.el
(autoload (quote diary) "diary-lib" "\
;;;***
\f
;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff"
-;;;;;; "diff.el" (17851 10822))
+;;;;;; "diff.el" (17549 4607))
;;; Generated autoloads from diff.el
(defvar diff-switches "-c" "\
*A string or list of strings specifying switches to be passed to diff.")
-(custom-autoload (quote diff-switches) "diff" t)
+(custom-autoload (quote diff-switches) "diff")
(defvar diff-command "diff" "\
*The command to use to run diff.")
-(custom-autoload (quote diff-command) "diff" t)
+(custom-autoload (quote diff-command) "diff")
(autoload (quote diff) "diff" "\
Find and display the differences between OLD and NEW files.
;;;***
\f
;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el"
-;;;;;; (17867 21034))
+;;;;;; (17778 50473))
;;; Generated autoloads from diff-mode.el
(autoload (quote diff-mode) "diff-mode" "\
;;;;;; dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink
;;;;;; dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename
;;;;;; dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches)
-;;;;;; "dired" "dired.el" (17852 50694))
+;;;;;; "dired" "dired.el" (17817 16882))
;;; Generated autoloads from dired.el
(defvar dired-listing-switches "-al" "\
`dired-ls-F-marks-symlinks' concerning the `F' switch.
On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp,
some of the `ls' switches are not supported; see the doc string of
- `insert-directory' on `ls-lisp.el' for more details.")
+ `insert-directory' in `ls-lisp.el' for more details.")
(custom-autoload (quote dired-listing-switches) "dired" t)
;;;;;; dired-run-shell-command dired-do-shell-command dired-clean-directory
;;;;;; dired-do-print dired-do-touch dired-do-chown dired-do-chgrp
;;;;;; dired-do-chmod dired-compare-directories dired-backup-diff
-;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17859 27906))
+;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17778 50473))
;;; Generated autoloads from dired-aux.el
(autoload (quote dired-diff) "dired-aux" "\
suggested for the target directory depends on the value of
`dired-dwim-target', which see.
+ For relative symlinks, use \\[dired-do-relsymlink].
+
\(fn &optional ARG)" t nil)
(autoload (quote dired-do-hardlink) "dired-aux" "\
;;;***
\f
-;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el"
-;;;;;; (17859 56528))
+;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (17713 5989))
;;; Generated autoloads from dired-x.el
(autoload (quote dired-jump) "dired-x" "\
\(fn &optional OTHER-WINDOW)" t nil)
+ (autoload (quote dired-do-relsymlink) "dired-x" "\
+ Relative symlink all marked (or next ARG) files into a directory.
+ Otherwise make a relative symbolic link to the current file.
+ This creates relative symbolic links like
+
+ foo -> ../bar/foo
+
+ not absolute ones like
+
+ foo -> /ugly/file/name/that/may/change/any/day/bar/foo
+
+ For absolute symlinks, use \\[dired-do-symlink].
+
+ \(fn &optional ARG)" t nil)
+
;;;***
\f
-;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17851 10823))
+;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17817 13975))
;;; Generated autoloads from dirtrack.el
(autoload (quote dirtrack) "dirtrack" "\
;;;***
\f
-;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17851
-;;;;;; 10852))
+;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17390
+;;;;;; 26938))
;;; Generated autoloads from emacs-lisp/disass.el
(autoload (quote disassemble) "disass" "\
;;;***
\f
-;;;### (autoloads (standard-display-european glyph-face glyph-char
-;;;;;; make-glyph-code create-glyph standard-display-underline standard-display-graphic
-;;;;;; standard-display-g1 standard-display-ascii standard-display-default
-;;;;;; standard-display-8bit describe-current-display-table describe-display-table
-;;;;;; set-display-table-slot display-table-slot make-display-table)
-;;;;;; "disp-table" "disp-table.el" (17875 14312))
+;;;### (autoloads (standard-display-european create-glyph standard-display-underline
+;;;;;; standard-display-graphic standard-display-g1 standard-display-ascii
+;;;;;; standard-display-default standard-display-8bit describe-current-display-table
+;;;;;; describe-display-table set-display-table-slot display-table-slot
+;;;;;; make-display-table) "disp-table" "disp-table.el" (17817 13975))
;;; Generated autoloads from disp-table.el
(autoload (quote make-display-table) "disp-table" "\
\(fn STRING)" nil nil)
+ (autoload (quote make-glyph-code) "disp-table" "\
+ Return a glyph code representing char CHAR with face FACE.
+
+ \(fn CHAR &optional FACE)" nil nil)
+
+ (autoload (quote glyph-char) "disp-table" "\
+ Return the character of glyph code GLYPH.
+
+ \(fn GLYPH)" nil nil)
+
+ (autoload (quote glyph-face) "disp-table" "\
+ Return the face of glyph code GLYPH, or nil if glyph has default face.
+
+ \(fn GLYPH)" nil nil)
+
(autoload (quote standard-display-european) "disp-table" "\
Semi-obsolete way to toggle display of ISO 8859 European characters.
;;;***
\f
;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el"
-;;;;;; (17851 10865))
+;;;;;; (17817 14124))
;;; Generated autoloads from play/dissociate.el
(autoload (quote dissociated-press) "dissociate" "\
;;;***
\f
-;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17851 10823))
+;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17713 5989))
;;; Generated autoloads from dnd.el
(defvar dnd-protocol-alist (quote (("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file) ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file))) "\
;;;***
\f
;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode"
-;;;;;; "textmodes/dns-mode.el" (17851 10872))
+;;;;;; "textmodes/dns-mode.el" (17713 5203))
;;; Generated autoloads from textmodes/dns-mode.el
(autoload (quote dns-mode) "dns-mode" "\
;;;***
\f
-;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17851 10865))
+;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17817 14124))
;;; Generated autoloads from play/doctor.el
(autoload (quote doctor) "doctor" "\
;;;***
\f
;;;### (autoloads (double-mode double-mode) "double" "double.el"
-;;;;;; (17851 10823))
+;;;;;; (17817 13975))
;;; Generated autoloads from double.el
(defvar double-mode nil "\
;;;***
\f
-;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17851 10865))
+;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17778 50475))
;;; Generated autoloads from play/dunnet.el
(autoload (quote dunnet) "dunnet" "\
;;;***
\f
;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el"
-;;;;;; (17851 10856))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/earcon.el
(autoload (quote gnus-earcon-display) "earcon" "\
;;;***
\f
;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
-;;;;;; define-globalized-minor-mode define-minor-mode) "easy-mmode"
-;;;;;; "emacs-lisp/easy-mmode.el" (17860 50311))
+;;;;;; define-global-minor-mode define-minor-mode) "easy-mmode"
+;;;;;; "emacs-lisp/easy-mmode.el" (17817 16945))
;;; Generated autoloads from emacs-lisp/easy-mmode.el
(defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode))
\(fn MODE DOC &optional INIT-VALUE LIGHTER KEYMAP &rest BODY)" nil (quote macro))
- (defalias (quote easy-mmode-define-global-mode) (quote define-global-minor-mode))
+ (defalias (quote easy-mmode-define-global-mode) (quote define-globalized-minor-mode))
+
+ (defalias (quote define-global-minor-mode) (quote define-globalized-minor-mode))
- (autoload (quote define-global-minor-mode) "easy-mmode" "\
+ (autoload (quote define-globalized-minor-mode) "easy-mmode" "\
Make a global mode GLOBAL-MODE corresponding to buffer-local minor MODE.
TURN-ON is a function that will be called with no args in every buffer
and that should try to turn MODE on if applicable for that buffer.
which see. In particular, :group specifies the custom group.
The most useful keywords are those that are passed on to the
`defcustom'. It normally makes no sense to pass the :lighter
- or :keymap keywords to `define-global-minor-mode', since these
+ or :keymap keywords to `define-globalized-minor-mode', since these
are usually passed to the buffer-local version of the minor mode.
If MODE's set-up depends on the major mode in effect when it was
;;;***
\f
;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define
-;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17851
-;;;;;; 10852))
+;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17817
+;;;;;; 16161))
;;; Generated autoloads from emacs-lisp/easymenu.el
(put (quote easy-menu-define) (quote lisp-indent-function) (quote defun))
menu-bar keymap. It can also be a symbol, which has earlier been used as the
first argument in a call to `easy-menu-define', or the value of such a symbol.
+If MAP is specified, it should normally be a keymap; nil stands for the local
+menu-bar keymap. It can also be a symbol, which has earlier been used as the
+first argument in a call to `easy-menu-define', or the value of such a symbol.
+
If the menu located by PATH has no submenu named NAME, add one.
If the optional argument BEFORE is present, add it just before
the submenu named BEFORE, otherwise add it at the end of the menu.
;;;;;; ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ebnf-spool-file
;;;;;; ebnf-spool-directory ebnf-print-region ebnf-print-buffer
;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps"
-;;;;;; "progmodes/ebnf2ps.el" (17859 56529))
+;;;;;; "progmodes/ebnf2ps.el" (17817 13971))
;;; Generated autoloads from progmodes/ebnf2ps.el
(autoload (quote ebnf-customize) "ebnf2ps" "\
\(fn FILE &optional DO-NOT-KILL-BUFFER-WHEN-DONE)" t nil)
(autoload (quote ebnf-eps-buffer) "ebnf2ps" "\
- Generate a PostScript syntactic chart image of the buffer in a EPS file.
+ Generate a PostScript syntactic chart image of the buffer in an EPS file.
- Indeed, for each production is generated a EPS file.
+ Generate an EPS file for each production in the buffer.
The EPS file name has the following form:
<PREFIX><PRODUCTION>.eps
The default value is \"ebnf--\".
<PRODUCTION> is the production name.
- The production name is mapped to form a valid file name.
- For example, the production name \"A/B + C\" is mapped to
- \"A_B_+_C\" and the EPS file name used is \"ebnf--A_B_+_C.eps\".
+ Some characters in the production file name are replaced to
+ produce a valid file name. For example, the production name
+ \"A/B + C\" is modified to produce \"A_B_+_C\", and the EPS
+ file name used in this case will be \"ebnf--A_B_+_C.eps\".
- WARNING: It's *NOT* asked any confirmation to override an existing file.
+ WARNING: This function does *NOT* ask any confirmation to override existing
+ files.
\(fn)" t nil)
(autoload (quote ebnf-eps-region) "ebnf2ps" "\
- Generate a PostScript syntactic chart image of the region in a EPS file.
+ Generate a PostScript syntactic chart image of the region in an EPS file.
- Indeed, for each production is generated a EPS file.
+ Generate an EPS file for each production in the region.
The EPS file name has the following form:
<PREFIX><PRODUCTION>.eps
The default value is \"ebnf--\".
<PRODUCTION> is the production name.
- The production name is mapped to form a valid file name.
- For example, the production name \"A/B + C\" is mapped to
- \"A_B_+_C\" and the EPS file name used is \"ebnf--A_B_+_C.eps\".
+ Some characters in the production file name are replaced to
+ produce a valid file name. For example, the production name
+ \"A/B + C\" is modified to produce \"A_B_+_C\", and the EPS
+ file name used in this case will be \"ebnf--A_B_+_C.eps\".
- WARNING: It's *NOT* asked any confirmation to override an existing file.
+ WARNING: This function does *NOT* ask any confirmation to override existing
+ files.
\(fn FROM TO)" t nil)
(defalias (quote ebnf-despool) (quote ps-despool))
(autoload (quote ebnf-syntax-directory) "ebnf2ps" "\
- Does a syntactic analysis of the files in DIRECTORY.
+ Do a syntactic analysis of the files in DIRECTORY.
- If DIRECTORY is nil, it's used `default-directory'.
+ If DIRECTORY is nil, use `default-directory'.
- The files in DIRECTORY that matches `ebnf-file-suffix-regexp' (which see) are
- processed.
+ Only the files in DIRECTORY that match `ebnf-file-suffix-regexp' (which see)
+ are processed.
See also `ebnf-syntax-buffer'.
\(fn &optional DIRECTORY)" t nil)
(autoload (quote ebnf-syntax-file) "ebnf2ps" "\
- Does a syntactic analysis of the FILE.
+ Do a syntactic analysis of the named FILE.
If optional arg DO-NOT-KILL-BUFFER-WHEN-DONE is non-nil, the buffer isn't
killed after syntax checking.
\(fn FILE &optional DO-NOT-KILL-BUFFER-WHEN-DONE)" t nil)
(autoload (quote ebnf-syntax-buffer) "ebnf2ps" "\
- Does a syntactic analysis of the current buffer.
+ Do a syntactic analysis of the current buffer.
\(fn)" t nil)
(autoload (quote ebnf-syntax-region) "ebnf2ps" "\
- Does a syntactic analysis of a region.
+ Do a syntactic analysis of region.
\(fn FROM TO)" t nil)
(autoload (quote ebnf-apply-style) "ebnf2ps" "\
Set STYLE as the current style.
- It returns the old style symbol.
+ Returns the old style symbol.
See `ebnf-style-database' documentation.
(autoload (quote ebnf-reset-style) "ebnf2ps" "\
Reset current style.
- It returns the old style symbol.
+ Returns the old style symbol.
See `ebnf-style-database' documentation.
\(fn &optional STYLE)" t nil)
(autoload (quote ebnf-push-style) "ebnf2ps" "\
- Push the current style and set STYLE as the current style.
+ Push the current style onto a stack and set STYLE as the current style.
+
+ Returns the old style symbol.
- It returns the old style symbol.
+ See also `ebnf-pop-style'.
See `ebnf-style-database' documentation.
\(fn &optional STYLE)" t nil)
(autoload (quote ebnf-pop-style) "ebnf2ps" "\
- Pop a style and set it as the current style.
+ Pop a style from the stack of pushed styles and set it as the current style.
+
+ Returns the old style symbol.
- It returns the old style symbol.
+ See also `ebnf-push-style'.
See `ebnf-style-database' documentation.
;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition
;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration
;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree
-;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17838
-;;;;;; 58221))
+;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17591
+;;;;;; 9719))
;;; Generated autoloads from progmodes/ebrowse.el
(autoload (quote ebrowse-tree-mode) "ebrowse" "\
;;;***
\f
;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el"
-;;;;;; (17851 10823))
+;;;;;; (17817 13975))
;;; Generated autoloads from ebuff-menu.el
(autoload (quote electric-buffer-list) "ebuff-menu" "\
;;;***
\f
;;;### (autoloads (Electric-command-history-redo-expression) "echistory"
-;;;;;; "echistory.el" (17851 10823))
+;;;;;; "echistory.el" (17817 13975))
;;; Generated autoloads from echistory.el
(autoload (quote Electric-command-history-redo-expression) "echistory" "\
\f
;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form
;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug"
-;;;;;; "emacs-lisp/edebug.el" (17851 10852))
+;;;;;; "emacs-lisp/edebug.el" (17713 5203))
;;; Generated autoloads from emacs-lisp/edebug.el
(defvar edebug-all-defs nil "\
;;;;;; ediff-merge-directory-revisions ediff-merge-directories-with-ancestor
;;;;;; ediff-merge-directories ediff-directories3 ediff-directory-revisions
;;;;;; ediff-directories ediff-buffers3 ediff-buffers ediff-backup
-;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17851 39450))
+;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17778 50473))
;;; Generated autoloads from ediff.el
(autoload (quote ediff-files) "ediff" "\
;;;***
\f
;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el"
-;;;;;; (17851 10823))
+;;;;;; (17401 60342))
;;; Generated autoloads from ediff-help.el
(autoload (quote ediff-customize) "ediff-help" "\
;;;***
\f
-;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17851 10823))
+;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17401 60342))
;;; Generated autoloads from ediff-hook.el
(defvar ediff-window-setup-function)
;;;***
\f
;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el"
-;;;;;; (17851 10823))
+;;;;;; (17778 49123))
;;; Generated autoloads from ediff-mult.el
(autoload (quote ediff-show-registry) "ediff-mult" "\
;;;***
\f
;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe)
-;;;;;; "ediff-util" "ediff-util.el" (17851 39450))
+;;;;;; "ediff-util" "ediff-util.el" (17713 5989))
;;; Generated autoloads from ediff-util.el
(autoload (quote ediff-toggle-multiframe) "ediff-util" "\
\f
;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro
;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el"
-;;;;;; (17851 10823))
+;;;;;; (17817 13975))
;;; Generated autoloads from edmacro.el
(defvar edmacro-eight-bits nil "\
;;;***
\f
;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt"
-;;;;;; "emulation/edt.el" (17851 10853))
+;;;;;; "emulation/edt.el" (17817 15738))
;;; Generated autoloads from emulation/edt.el
(autoload (quote edt-set-scroll-margins) "edt" "\
;;;***
\f
;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el"
-;;;;;; (17873 60335))
+;;;;;; (17778 50473))
;;; Generated autoloads from ehelp.el
(autoload (quote with-electric-help) "ehelp" "\
Pop up an \"electric\" help buffer.
+The arguments are THUNK &optional BUFFER NOERASE MINHEIGHT.
THUNK is a function of no arguments which is called to initialize the
contents of BUFFER. BUFFER defaults to `*Help*'. BUFFER will be
erased before THUNK is called unless NOERASE is non-nil. THUNK will
After THUNK has been called, this function \"electrically\" pops up a window
in which BUFFER is displayed and allows the user to scroll through that buffer
- in electric-help-mode. The window's height will be at least MINHEIGHT if
+ in `electric-help-mode'. The window's height will be at least MINHEIGHT if
this value is non-nil.
If THUNK returns nil, we display BUFFER starting at the top, and
When the user exits (with `electric-help-exit', or otherwise), the help
buffer's window disappears (i.e., we use `save-window-excursion'), and
- BUFFER is put into `default-major-mode' (or `fundamental-mode') when we exit.
+ BUFFER is put into `default-major-mode' (or `fundamental-mode').
\(fn THUNK &optional BUFFER NOERASE MINHEIGHT)" nil nil)
;;;***
\f
;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
-;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17851 10853))
+;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17817 13982))
;;; Generated autoloads from emacs-lisp/eldoc.el
(defvar eldoc-minor-mode-string " ElDoc" "\
;;;***
\f
-;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17851
-;;;;;; 10826))
+;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17817
+;;;;;; 13975))
;;; Generated autoloads from elide-head.el
(autoload (quote elide-head) "elide-head" "\
;;;***
\f
;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el"
-;;;;;; (17851 10853))
+;;;;;; (17817 13982))
;;; Generated autoloads from emacs-lisp/elint.el
(autoload (quote elint-initialize) "elint" "\
;;;***
\f
;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list
-;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17851
-;;;;;; 10853))
+;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17390
+;;;;;; 26938))
;;; Generated autoloads from emacs-lisp/elp.el
(autoload (quote elp-instrument-function) "elp" "\
;;;***
\f
;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el"
-;;;;;; (17851 10861))
+;;;;;; (17778 50475))
;;; Generated autoloads from mail/emacsbug.el
(autoload (quote report-emacs-bug) "emacsbug" "\
;;;;;; emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote
;;;;;; emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor
;;;;;; emerge-buffers emerge-files-with-ancestor emerge-files) "emerge"
-;;;;;; "emerge.el" (17504 41540))
+;;;;;; "emerge.el" (17279 27122))
;;; Generated autoloads from emerge.el
(defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge"))
;;;***
\f
-;;;### (autoloads (encoded-kbd-mode) "encoded-kb" "international/encoded-kb.el"
-;;;;;; (17851 10860))
+;;;### (autoloads (encoded-kbd-setup-display) "encoded-kb" "international/encoded-kb.el"
+;;;;;; (17817 15477))
;;; Generated autoloads from international/encoded-kb.el
-(defvar encoded-kbd-mode nil "\
-Non-nil if Encoded-Kbd mode is enabled.
-See the command `encoded-kbd-mode' for a description of this minor-mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `encoded-kbd-mode'.")
-
-(custom-autoload (quote encoded-kbd-mode) "encoded-kb" nil)
-
-(autoload (quote encoded-kbd-mode) "encoded-kb" "\
-Toggle Encoded-kbd minor mode.
-With arg, turn Encoded-kbd mode on if and only if arg is positive.
+(autoload (quote encoded-kbd-setup-display) "encoded-kb" "\
+Set up a `key-translation-map' for `keyboard-coding-system' on DISPLAY.
-You should not turn this mode on manually, instead use the command
-\\[set-keyboard-coding-system] which turns on or off this mode
-automatically.
+DISPLAY may be a display id, a frame, or nil for the selected frame's display.
-In Encoded-kbd mode, a text sent from keyboard is accepted
-as a multilingual text encoded in a coding system set by
-\\[set-keyboard-coding-system].
-
-\(fn &optional ARG)" t nil)
+\(fn DISPLAY)" nil nil)
;;;***
\f
;;;### (autoloads (enriched-decode enriched-encode enriched-mode)
-;;;;;; "enriched" "textmodes/enriched.el" (17851 10872))
+;;;;;; "enriched" "textmodes/enriched.el" (17817 14127))
;;; Generated autoloads from textmodes/enriched.el
(autoload (quote enriched-mode) "enriched" "\
;;;***
\f
;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc"
-;;;;;; "erc/erc.el" (17851 10855))
+;;;;;; "erc/erc.el" (17817 15473))
;;; Generated autoloads from erc/erc.el
(autoload (quote erc-select-read-args) "erc" "\
;;;***
\f
-;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17851
-;;;;;; 10855))
+;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17778
+;;;;;; 50473))
;;; Generated autoloads from erc/erc-autoaway.el
(autoload 'erc-autoaway-mode "erc-autoaway")
;;;***
\f
-;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17851 10855))
+;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17454 30949))
;;; Generated autoloads from erc/erc-button.el
(autoload 'erc-button-mode "erc-button" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17843 27870))
-;;; Generated autoloads from erc/erc-capab.el
- (autoload 'erc-capab-identify-mode "erc-capab" nil t)
-
-;;;***
-\f
-;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17851 10855))
+;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17778 50473))
;;; Generated autoloads from erc/erc-compat.el
(autoload 'erc-define-minor-mode "erc-compat")
;;;***
\f
;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC)
-;;;;;; "erc-dcc" "erc/erc-dcc.el" (17851 10855))
+;;;;;; "erc-dcc" "erc/erc-dcc.el" (17817 13983))
;;; Generated autoloads from erc/erc-dcc.el
(autoload (quote erc-cmd-DCC) "erc-dcc" "\
;;;;;; erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list
;;;;;; erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action
;;;;;; erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el"
-;;;;;; (17851 10855))
+;;;;;; (17817 14136))
;;; Generated autoloads from erc/erc-ezbounce.el
(autoload (quote erc-cmd-ezb) "erc-ezbounce" "\
;;;***
\f
-;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17851
-;;;;;; 10855))
+;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17778
+;;;;;; 50473))
;;; Generated autoloads from erc/erc-fill.el
(autoload 'erc-fill-mode "erc-fill" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17851
-;;;;;; 10855))
+;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17396
+;;;;;; 42158))
;;; Generated autoloads from erc/erc-hecomplete.el
(autoload 'erc-hecomplete-mode "erc-hecomplete" nil t)
;;;***
\f
;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd"
-;;;;;; "erc/erc-identd.el" (17851 10855))
+;;;;;; "erc/erc-identd.el" (17591 9873))
;;; Generated autoloads from erc/erc-identd.el
(autoload 'erc-identd-mode "erc-identd")
;;;***
\f
;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el"
-;;;;;; (17851 10855))
+;;;;;; (17591 9873))
;;; Generated autoloads from erc/erc-imenu.el
(autoload (quote erc-create-imenu-index) "erc-imenu" "\
;;;***
\f
-;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17851 10855))
+;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17469 12056))
;;; Generated autoloads from erc/erc-join.el
(autoload 'erc-autojoin-mode "erc-join" nil t)
;;;***
\f
;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log"
-;;;;;; "erc/erc-log.el" (17851 10855))
+;;;;;; "erc/erc-log.el" (17778 50473))
;;; Generated autoloads from erc/erc-log.el
(autoload 'erc-log-mode "erc-log" nil t)
;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host
;;;;;; erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool
;;;;;; erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el"
-;;;;;; (17851 10855))
+;;;;;; (17713 5203))
;;; Generated autoloads from erc/erc-match.el
(autoload 'erc-match-mode "erc-match")
\(fn)" t nil)
-;;;***
-\f
-;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17851 10855))
-;;; Generated autoloads from erc/erc-menu.el
- (autoload 'erc-menu-mode "erc-menu" nil t)
-
;;;***
\f
;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el"
-;;;;;; (17851 10855))
+;;;;;; (17469 12056))
;;; Generated autoloads from erc/erc-netsplit.el
(autoload 'erc-netsplit-mode "erc-netsplit")
;;;***
\f
;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks"
-;;;;;; "erc/erc-networks.el" (17851 10855))
+;;;;;; "erc/erc-networks.el" (17778 50473))
;;; Generated autoloads from erc/erc-networks.el
(autoload (quote erc-determine-network) "erc-networks" "\
;;;***
\f
;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify"
-;;;;;; "erc/erc-notify.el" (17851 10855))
+;;;;;; "erc/erc-notify.el" (17396 42158))
;;; Generated autoloads from erc/erc-notify.el
(autoload 'erc-notify-mode "erc-notify" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17851 10855))
+;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17396 42158))
;;; Generated autoloads from erc/erc-page.el
(autoload 'erc-page-mode "erc-page")
;;;***
\f
-;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17851
-;;;;;; 10855))
+;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17591
+;;;;;; 9873))
;;; Generated autoloads from erc/erc-pcomplete.el
(autoload 'erc-completion-mode "erc-pcomplete" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17851 10855))
+;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17778 50473))
;;; Generated autoloads from erc/erc-replace.el
(autoload 'erc-replace-mode "erc-replace")
;;;***
\f
-;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17851 10855))
+;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17396 42158))
;;; Generated autoloads from erc/erc-ring.el
(autoload 'erc-ring-mode "erc-ring" nil t)
;;;***
\f
;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode)
-;;;;;; "erc-services" "erc/erc-services.el" (17851 10855))
+;;;;;; "erc-services" "erc/erc-services.el" (17396 42158))
;;; Generated autoloads from erc/erc-services.el
(autoload 'erc-services-mode "erc-services" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17851 10855))
+;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17778 50473))
;;; Generated autoloads from erc/erc-sound.el
(autoload 'erc-sound-mode "erc-sound")
;;;***
\f
;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el"
-;;;;;; (17851 10855))
+;;;;;; (17396 42158))
;;; Generated autoloads from erc/erc-speedbar.el
(autoload (quote erc-speedbar-browser) "erc-speedbar" "\
;;;***
\f
-;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17851
-;;;;;; 10855))
+;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17713
+;;;;;; 2485))
;;; Generated autoloads from erc/erc-spelling.el
(autoload 'erc-spelling-mode "erc-spelling" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17851 10855))
+;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17817 13983))
;;; Generated autoloads from erc/erc-stamp.el
(autoload 'erc-timestamp-mode "erc-stamp" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-track" "erc/erc-track.el" (17851 10855))
+;;;### (autoloads nil "erc-track" "erc/erc-track.el" (17778 50473))
;;; Generated autoloads from erc/erc-track.el
(autoload 'erc-track-mode "erc-track" nil t)
(autoload 'erc-track-when-inactive-mode "erc-track" nil t)
;;;***
\f
;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size)
-;;;;;; "erc-truncate" "erc/erc-truncate.el" (17851 10855))
+;;;;;; "erc-truncate" "erc/erc-truncate.el" (17778 50473))
;;; Generated autoloads from erc/erc-truncate.el
(autoload 'erc-truncate-mode "erc-truncate" nil t)
;;;***
\f
;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el"
-;;;;;; (17851 10855))
+;;;;;; (17396 42158))
;;; Generated autoloads from erc/erc-xdcc.el
(autoload (quote erc-xdcc-add-file) "erc-xdcc" "\
;;;***
\f
-;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17851
-;;;;;; 10856))
+;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17390
+;;;;;; 26939))
;;; Generated autoloads from eshell/esh-mode.el
(autoload (quote eshell-mode) "esh-mode" "\
;;;***
\f
-;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17851
-;;;;;; 10856))
+;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17817
+;;;;;; 14118))
;;; Generated autoloads from eshell/esh-test.el
(autoload (quote eshell-test) "esh-test" "\
;;;***
\f
;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command
-;;;;;; eshell) "eshell" "eshell/eshell.el" (17851 10856))
+;;;;;; eshell) "eshell" "eshell/eshell.el" (17817 14118))
;;; Generated autoloads from eshell/eshell.el
(autoload (quote eshell) "eshell" "\
;;;;;; visit-tags-table tags-table-mode find-tag-default-function
;;;;;; find-tag-hook tags-add-tables tags-compression-info-list
;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el"
-;;;;;; (17851 10867))
+;;;;;; (17411 11766))
;;; Generated autoloads from progmodes/etags.el
(defvar tags-file-name nil "\
;;;;;; ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker
;;;;;; ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker
;;;;;; ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal)
-;;;;;; "ethio-util" "language/ethio-util.el" (17851 10861))
+;;;;;; "ethio-util" "language/ethio-util.el" (17817 15478))
;;; Generated autoloads from language/ethio-util.el
(autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\
\f
;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline
;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el"
-;;;;;; (17851 10863))
+;;;;;; (17817 14121))
;;; Generated autoloads from net/eudc.el
(autoload (quote eudc-set-server) "eudc" "\
\f
;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline
;;;;;; eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary)
-;;;;;; "eudc-bob" "net/eudc-bob.el" (17851 10863))
+;;;;;; "eudc-bob" "net/eudc-bob.el" (17817 14121))
;;; Generated autoloads from net/eudc-bob.el
(autoload (quote eudc-display-generic-binary) "eudc-bob" "\
;;;***
\f
;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb)
-;;;;;; "eudc-export" "net/eudc-export.el" (17851 10863))
+;;;;;; "eudc-export" "net/eudc-export.el" (17817 14121))
;;; Generated autoloads from net/eudc-export.el
(autoload (quote eudc-insert-record-at-point-into-bbdb) "eudc-export" "\
;;;***
\f
;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el"
-;;;;;; (17851 10863))
+;;;;;; (17817 14121))
;;; Generated autoloads from net/eudc-hotlist.el
(autoload (quote eudc-edit-hotlist) "eudc-hotlist" "\
;;;***
\f
-;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17851
-;;;;;; 10853))
+;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17817
+;;;;;; 13982))
;;; Generated autoloads from emacs-lisp/ewoc.el
(autoload (quote ewoc-create) "ewoc" "\
;;;### (autoloads (executable-make-buffer-file-executable-if-script-p
;;;;;; executable-self-display executable-set-magic executable-interpret
;;;;;; executable-command-find-posix-p) "executable" "progmodes/executable.el"
-;;;;;; (17851 10867))
+;;;;;; (17390 27408))
;;; Generated autoloads from progmodes/executable.el
(autoload (quote executable-command-find-posix-p) "executable" "\
;;;***
\f
;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot
-;;;;;; expand-add-abbrevs) "expand" "expand.el" (17851 10827))
+;;;;;; expand-add-abbrevs) "expand" "expand.el" (17817 13975))
;;; Generated autoloads from expand.el
(autoload (quote expand-add-abbrevs) "expand" "\
;;;***
\f
-;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17851 10867))
+;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17817 13977))
;;; Generated autoloads from progmodes/f90.el
(autoload (quote f90-mode) "f90" "\
;;;;;; facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only
;;;;;; facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu
;;;;;; facemenu-set-background facemenu-set-foreground facemenu-set-face)
-;;;;;; "facemenu" "facemenu.el" (17851 10827))
+;;;;;; "facemenu" "facemenu.el" (17817 13971))
;;; Generated autoloads from facemenu.el
(define-key global-map "\M-o" 'facemenu-keymap)
(autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap)
\(fn &optional LIST BUFFER-NAME)" t nil)
+;;;***
+\f
+;;;### (autoloads (turn-on-fast-lock fast-lock-mode) "fast-lock"
+;;;;;; "obsolete/fast-lock.el" (17817 14122))
+;;; Generated autoloads from obsolete/fast-lock.el
+
+(autoload (quote fast-lock-mode) "fast-lock" "\
+Toggle Fast Lock mode.
+With arg, turn Fast Lock mode on if and only if arg is positive and the buffer
+is associated with a file. Enable it automatically in your `~/.emacs' by:
+
+ (setq font-lock-support-mode 'fast-lock-mode)
+
+If Fast Lock mode is enabled, and the current buffer does not contain any text
+properties, any associated Font Lock cache is used if its timestamp matches the
+buffer's file, and its `font-lock-keywords' match those that you are using.
+
+Font Lock caches may be saved:
+- When you save the file's buffer.
+- When you kill an unmodified file's buffer.
+- When you exit Emacs, for all unmodified or saved buffers.
+Depending on the value of `fast-lock-save-events'.
+See also the commands `fast-lock-read-cache' and `fast-lock-save-cache'.
+
+Use \\[font-lock-fontify-buffer] to fontify the buffer if the cache is bad.
+
+Various methods of control are provided for the Font Lock cache. In general,
+see variable `fast-lock-cache-directories' and function `fast-lock-cache-name'.
+For saving, see variables `fast-lock-minimum-size', `fast-lock-save-events',
+`fast-lock-save-others' and `fast-lock-save-faces'.
+
+\(fn &optional ARG)" t nil)
+
+(autoload (quote turn-on-fast-lock) "fast-lock" "\
+Unconditionally turn on Fast Lock mode.
+
+\(fn)" nil nil)
+
+(when (fboundp (quote add-minor-mode)) (defvar fast-lock-mode nil) (add-minor-mode (quote fast-lock-mode) nil))
+
;;;***
\f
;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue
;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts
-;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17753 42784))
+;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17778 50475))
;;; Generated autoloads from mail/feedmail.el
(autoload (quote feedmail-send-it) "feedmail" "\
;;;***
\f
;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu
-;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17851 10827))
+;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17817 13975))
;;; Generated autoloads from ffap.el
(autoload (quote ffap-next) "ffap" "\
;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively
;;;;;; file-cache-add-directory-using-locate file-cache-add-directory-using-find
;;;;;; file-cache-add-file file-cache-add-directory-list file-cache-add-directory)
-;;;;;; "filecache" "filecache.el" (17851 10827))
+;;;;;; "filecache" "filecache.el" (17817 13975))
;;; Generated autoloads from filecache.el
(autoload (quote file-cache-add-directory) "filecache" "\
;;;***
\f
-;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17851
-;;;;;; 10827))
+;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17778
+;;;;;; 48448))
;;; Generated autoloads from filesets.el
(autoload (quote filesets-init) "filesets" "\
;;;***
\f
-;;;### (autoloads nil "fill" "textmodes/fill.el" (17852 50694))
+;;;### (autoloads nil "fill" "textmodes/fill.el" (17817 16882))
;;; Generated autoloads from textmodes/fill.el
(put 'colon-double-space 'safe-local-variable 'booleanp)
\f
;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options
;;;;;; find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el"
-;;;;;; (17851 10827))
+;;;;;; (17817 13975))
;;; Generated autoloads from find-dired.el
(defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\
\f
;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file
;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el"
-;;;;;; (17851 10828))
+;;;;;; (17817 13975))
;;; Generated autoloads from find-file.el
(defvar ff-special-constructs (quote (("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (buffer-substring (match-beginning 2) (match-end 2))))) "\
;;;;;; find-variable find-variable-noselect find-function-other-frame
;;;;;; find-function-other-window find-function find-function-noselect
;;;;;; find-function-search-for-symbol find-library) "find-func"
-;;;;;; "emacs-lisp/find-func.el" (17851 10853))
+;;;;;; "emacs-lisp/find-func.el" (17817 14115))
;;; Generated autoloads from emacs-lisp/find-func.el
(autoload (quote find-library) "find-func" "\
;;;***
\f
;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories
-;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17851 10828))
+;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17817 13975))
;;; Generated autoloads from find-lisp.el
(autoload (quote find-lisp-find-dired) "find-lisp" "\
;;;***
\f
;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords)
-;;;;;; "finder" "finder.el" (17851 10828))
+;;;;;; "finder" "finder.el" (17469 12047))
;;; Generated autoloads from finder.el
(autoload (quote finder-list-keywords) "finder" "\
;;;***
\f
;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl"
-;;;;;; "flow-ctrl.el" (17851 10828))
+;;;;;; "flow-ctrl.el" (17817 13975))
;;; Generated autoloads from flow-ctrl.el
(autoload (quote enable-flow-control) "flow-ctrl" "\
;;;***
\f
;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el"
-;;;;;; (17851 10856))
+;;;;;; (17478 25198))
;;; Generated autoloads from gnus/flow-fill.el
(autoload (quote fill-flowed-encode) "flow-fill" "\
;;;***
\f
;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode)
-;;;;;; "flymake" "progmodes/flymake.el" (17854 10614))
+;;;;;; "flymake" "progmodes/flymake.el" (17778 50475))
;;; Generated autoloads from progmodes/flymake.el
(autoload (quote flymake-mode) "flymake" "\
\f
;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
-;;;;;; "flyspell" "textmodes/flyspell.el" (17851 10872))
+;;;;;; "flyspell" "textmodes/flyspell.el" (17817 14127))
;;; Generated autoloads from textmodes/flyspell.el
(autoload (quote flyspell-prog-mode) "flyspell" "\
\f
;;;### (autoloads (follow-delete-other-windows-and-split follow-mode
;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el"
-;;;;;; (17851 10828))
+;;;;;; (17778 50473))
;;; Generated autoloads from follow.el
(autoload (quote turn-on-follow-mode) "follow" "\
;;;***
\f
-;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17851
-;;;;;; 10861))
+;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17817
+;;;;;; 16161))
;;; Generated autoloads from mail/footnote.el
(autoload (quote footnote-mode) "footnote" "\
;;;***
\f
;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode)
-;;;;;; "forms" "forms.el" (17851 10829))
+;;;;;; "forms" "forms.el" (17817 13976))
;;; Generated autoloads from forms.el
(autoload (quote forms-mode) "forms" "\
;;;***
\f
;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran"
-;;;;;; "progmodes/fortran.el" (17851 10868))
+;;;;;; "progmodes/fortran.el" (17817 13977))
;;; Generated autoloads from progmodes/fortran.el
(defvar fortran-tab-mode-default nil "\
;;;***
\f
;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region
-;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17851 10865))
+;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17383 38807))
;;; Generated autoloads from play/fortune.el
(autoload (quote fortune-add-fortune) "fortune" "\
;;;***
\f
;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el"
-;;;;;; (17866 27909))
+;;;;;; (17817 16161))
;;; Generated autoloads from progmodes/gdb-ui.el
(autoload (quote gdba) "gdb-ui" "\
\(fn COMMAND-LINE)" t nil)
(defvar gdb-enable-debug nil "\
-Non-nil means record the process input and output in `gdb-debug-log'.")
+Non-nil means record the process input and output in `gdb-debug-ring'.")
(custom-autoload (quote gdb-enable-debug) "gdb-ui" t)
;;;***
\f
;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal
-;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17851
-;;;;;; 10853))
+;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17817
+;;;;;; 13982))
;;; Generated autoloads from emacs-lisp/generic.el
(defvar generic-mode-list nil "\
;;;***
\f
;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el"
-;;;;;; (17851 10868))
+;;;;;; (17817 14147))
;;; Generated autoloads from progmodes/glasses.el
(autoload (quote glasses-mode) "glasses" "\
;;;***
\f
;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error
-;;;;;; gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17851 10856))
+;;;;;; gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17778 48450))
;;; Generated autoloads from gnus/gmm-utils.el
(autoload (quote gmm-message) "gmm-utils" "\
;;;***
\f
;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
-;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17851 10857))
+;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17778 50473))
;;; Generated autoloads from gnus/gnus.el
(when (fboundp 'custom-autoload)
(custom-autoload 'gnus-select-method "gnus"))
;;;;;; gnus-agent-get-undownloaded-list gnus-agent-delete-group
;;;;;; gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize
;;;;;; gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent"
-;;;;;; "gnus/gnus-agent.el" (17851 10856))
+;;;;;; "gnus/gnus-agent.el" (17778 50473))
;;; Generated autoloads from gnus/gnus-agent.el
(autoload (quote gnus-unplugged) "gnus-agent" "\
;;;***
\f
;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
-;;;;;; (17854 10614))
+;;;;;; (17817 16940))
;;; Generated autoloads from gnus/gnus-art.el
(autoload (quote gnus-article-prepare-display) "gnus-art" "\
;;;***
\f
;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el"
-;;;;;; (17851 10857))
+;;;;;; (17817 14137))
;;; Generated autoloads from gnus/gnus-audio.el
(autoload (quote gnus-audio-play) "gnus-audio" "\
\f
;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group
;;;;;; gnus-cache-generate-nov-databases gnus-cache-generate-active
-;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17851
-;;;;;; 10857))
+;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17383
+;;;;;; 38805))
;;; Generated autoloads from gnus/gnus-cache.el
(autoload (quote gnus-jog-cache) "gnus-cache" "\
;;;***
\f
;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article)
-;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17851 10857))
+;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17383 38805))
;;; Generated autoloads from gnus/gnus-delay.el
(autoload (quote gnus-delay-article) "gnus-delay" "\
;;;***
\f
;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d)
-;;;;;; "gnus-diary" "gnus/gnus-diary.el" (17851 10857))
+;;;;;; "gnus-diary" "gnus/gnus-diary.el" (17817 15855))
;;; Generated autoloads from gnus/gnus-diary.el
(autoload (quote gnus-user-format-function-d) "gnus-diary" "\
;;;***
\f
;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el"
-;;;;;; (17851 10857))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/gnus-dired.el
(autoload (quote turn-on-gnus-dired-mode) "gnus-dired" "\
;;;***
\f
;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el"
-;;;;;; (17851 10857))
+;;;;;; (17713 5989))
;;; Generated autoloads from gnus/gnus-draft.el
(autoload (quote gnus-draft-reminder) "gnus-draft" "\
\f
;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png
;;;;;; gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header
-;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17851
-;;;;;; 10857))
+;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17466
+;;;;;; 28574))
;;; Generated autoloads from gnus/gnus-fun.el
(autoload (quote gnus-random-x-face) "gnus-fun" "\
;;;***
\f
;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group)
-;;;;;; "gnus-group" "gnus/gnus-group.el" (17851 10857))
+;;;;;; "gnus-group" "gnus/gnus-group.el" (17817 16148))
;;; Generated autoloads from gnus/gnus-group.el
(autoload (quote gnus-fetch-group) "gnus-group" "\
;;;***
\f
;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el"
-;;;;;; (17851 10857))
+;;;;;; (17817 14137))
;;; Generated autoloads from gnus/gnus-kill.el
(defalias (quote gnus-batch-kill) (quote gnus-batch-score))
\f
;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate
;;;;;; turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el"
-;;;;;; (17851 10857))
+;;;;;; (17549 5046))
;;; Generated autoloads from gnus/gnus-ml.el
(autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\
\f
;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update
;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el"
-;;;;;; (17851 10857))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/gnus-mlspl.el
(autoload (quote gnus-group-split-setup) "gnus-mlspl" "\
;;;***
\f
;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el"
-;;;;;; (17851 10857))
+;;;;;; (17817 14137))
;;; Generated autoloads from gnus/gnus-move.el
(autoload (quote gnus-change-server) "gnus-move" "\
;;;***
\f
;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
-;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17851 10857))
+;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17383 38805))
;;; Generated autoloads from gnus/gnus-msg.el
(autoload (quote gnus-msg-mail) "gnus-msg" "\
;;;***
\f
;;;### (autoloads (gnus-nocem-load-cache gnus-nocem-scan-groups)
-;;;;;; "gnus-nocem" "gnus/gnus-nocem.el" (17851 10857))
+;;;;;; "gnus-nocem" "gnus/gnus-nocem.el" (17817 14137))
;;; Generated autoloads from gnus/gnus-nocem.el
(autoload (quote gnus-nocem-scan-groups) "gnus-nocem" "\
\f
;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon
;;;;;; gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el"
-;;;;;; (17851 10857))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/gnus-picon.el
(autoload (quote gnus-treat-from-picon) "gnus-picon" "\
;;;;;; gnus-sorted-nintersection gnus-sorted-range-intersection
;;;;;; gnus-sorted-intersection gnus-intersection gnus-sorted-complement
;;;;;; gnus-sorted-ndifference gnus-sorted-difference) "gnus-range"
-;;;;;; "gnus/gnus-range.el" (17851 10857))
+;;;;;; "gnus/gnus-range.el" (17383 38805))
;;; Generated autoloads from gnus/gnus-range.el
(autoload (quote gnus-sorted-difference) "gnus-range" "\
;;;***
\f
;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize)
-;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17851 10857))
+;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17713 5990))
;;; Generated autoloads from gnus/gnus-registry.el
(autoload (quote gnus-registry-initialize) "gnus-registry" "\
;;;***
\f
;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate
-;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17851
-;;;;;; 10857))
+;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17469
+;;;;;; 13458))
;;; Generated autoloads from gnus/gnus-sieve.el
(autoload (quote gnus-sieve-update) "gnus-sieve" "\
;;;***
\f
;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el"
-;;;;;; (17851 10857))
+;;;;;; (17817 14137))
;;; Generated autoloads from gnus/gnus-soup.el
(autoload (quote gnus-batch-brew-soup) "gnus-soup" "\
;;;***
\f
;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el"
-;;;;;; (17851 10857))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/gnus-spec.el
(autoload (quote gnus-update-format) "gnus-spec" "\
;;;***
\f
;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news
-;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17851
-;;;;;; 10857))
+;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17778
+;;;;;; 50473))
;;; Generated autoloads from gnus/gnus-start.el
(autoload (quote gnus-declare-backend) "gnus-start" "\
;;;***
\f
;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el"
-;;;;;; (17851 10857))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/gnus-win.el
(autoload (quote gnus-add-configuration) "gnus-win" "\
;;;***
\f
-;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17851 10865))
+;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17778 50475))
;;; Generated autoloads from play/gomoku.el
(autoload (quote gomoku) "gomoku" "\
;;;***
\f
;;;### (autoloads (goto-address goto-address-at-point) "goto-addr"
-;;;;;; "net/goto-addr.el" (17851 10863))
+;;;;;; "net/goto-addr.el" (17591 9445))
;;; Generated autoloads from net/goto-addr.el
(define-obsolete-function-alias (quote goto-address-at-mouse) (quote goto-address-at-point) "22.1")
\f
;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults
;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command
-;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17875 14313))
+;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17713 5410))
;;; Generated autoloads from progmodes/grep.el
(defvar grep-window-height nil "\
or \\<grep-mode-map>\\[compile-goto-error] in the grep output buffer, to go to the lines
where grep found matches.
+ For doing a recursive `grep', see the `rgrep' command. For running
+ `grep' in a specific directory, see `lgrep'.
+
This command uses a special history list for its COMMAND-ARGS, so you can
easily repeat a grep command.
(defalias (quote find-grep) (quote grep-find))
(autoload (quote lgrep) "grep" "\
- Run grep, searching for REGEXP in FILES in current directory.
+ Run grep, searching for REGEXP in FILES in directory DIR.
The search is limited to file names matching shell pattern FILES.
FILES may use abbreviations defined in `grep-files-aliases', e.g.
entering `ch' is equivalent to `*.[ch]'.
This command shares argument histories with \\[rgrep] and \\[grep].
- \(fn REGEXP &optional FILES)" t nil)
+ \(fn REGEXP &optional FILES DIR)" t nil)
(autoload (quote rgrep) "grep" "\
Recursively grep for REGEXP in FILES in directory tree rooted at DIR.
;;;***
\f
-;;;### (autoloads (gs-load-image) "gs" "gs.el" (17851 10830))
+;;;### (autoloads (gs-load-image) "gs" "gs.el" (17390 26939))
;;; Generated autoloads from gs.el
(autoload (quote gs-load-image) "gs" "\
;;;***
\f
;;;### (autoloads (gdb-script-mode bashdb jdb pdb perldb xdb dbx
-;;;;;; sdb gdb) "gud" "progmodes/gud.el" (17871 15754))
+;;;;;; sdb gdb) "gud" "progmodes/gud.el" (17817 13989))
;;; Generated autoloads from progmodes/gud.el
(autoload (quote gdb) "gud" "\
;;;***
\f
-;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17851
-;;;;;; 10866))
+;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17817
+;;;;;; 14125))
;;; Generated autoloads from play/handwrite.el
(autoload (quote handwrite) "handwrite" "\
;;;***
\f
;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el"
-;;;;;; (17753 42784))
+;;;;;; (17778 50475))
;;; Generated autoloads from play/hanoi.el
(autoload (quote hanoi) "hanoi" "\
;;;### (autoloads (scan-buf-previous-region scan-buf-next-region
;;;;;; scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer
;;;;;; help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string
-;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17851 10830))
+;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17713 5990))
;;; Generated autoloads from help-at-pt.el
(autoload (quote help-at-pt-string) "help-at-pt" "\
;;;### (autoloads (describe-categories describe-syntax describe-variable
;;;;;; variable-at-point describe-function-1 describe-simplify-lib-file-name
;;;;;; help-C-file-name describe-function) "help-fns" "help-fns.el"
-;;;;;; (17851 39450))
+;;;;;; (17817 15855))
;;; Generated autoloads from help-fns.el
(autoload (quote describe-function) "help-fns" "\
(autoload (quote describe-variable) "help-fns" "\
Display the full documentation of VARIABLE (a symbol).
Returns the documentation as a string, also.
-If VARIABLE has a buffer-local value in BUFFER (default to the current buffer),
+If VARIABLE has a buffer-local value in BUFFER or FRAME
+\(default to the current buffer and current frame),
it is displayed along with the global value.
-\(fn VARIABLE &optional BUFFER)" t nil)
+\(fn VARIABLE &optional BUFFER FRAME)" t nil)
(autoload (quote describe-syntax) "help-fns" "\
Describe the syntax specifications in the syntax table of BUFFER.
;;;***
\f
;;;### (autoloads (three-step-help) "help-macro" "help-macro.el"
-;;;;;; (17851 10830))
+;;;;;; (17817 13976))
;;; Generated autoloads from help-macro.el
(defvar three-step-help nil "\
\f
;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button
;;;;;; help-make-xrefs help-setup-xref help-mode-finish help-mode-setup
-;;;;;; help-mode) "help-mode" "help-mode.el" (17851 10833))
+;;;;;; help-mode) "help-mode" "help-mode.el" (17611 9183))
;;; Generated autoloads from help-mode.el
(autoload (quote help-mode) "help-mode" "\
;;;***
\f
;;;### (autoloads (Helper-help Helper-describe-bindings) "helper"
-;;;;;; "emacs-lisp/helper.el" (17851 10853))
+;;;;;; "emacs-lisp/helper.el" (17817 13982))
;;; Generated autoloads from emacs-lisp/helper.el
(autoload (quote Helper-describe-bindings) "helper" "\
;;;***
\f
;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl"
-;;;;;; "hexl.el" (17851 39450))
+;;;;;; "hexl.el" (17778 50473))
;;; Generated autoloads from hexl.el
(autoload (quote hexl-mode) "hexl" "\
;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
;;;;;; global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
-;;;;;; (17860 50079))
+;;;;;; (17390 26939))
;;; Generated autoloads from hi-lock.el
(autoload (quote hi-lock-mode) "hi-lock" "\
;;;***
\f
;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially
-;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17851 10868))
+;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17524 8597))
;;; Generated autoloads from progmodes/hideif.el
(autoload (quote hide-ifdef-mode) "hideif" "\
(defvar hide-ifdef-initially nil "\
*Non-nil means call `hide-ifdefs' when Hide-Ifdef mode is first activated.")
-(custom-autoload (quote hide-ifdef-initially) "hideif" t)
+(custom-autoload (quote hide-ifdef-initially) "hideif")
(defvar hide-ifdef-read-only nil "\
*Set to non-nil if you want buffer to be read-only while hiding text.")
-(custom-autoload (quote hide-ifdef-read-only) "hideif" t)
+(custom-autoload (quote hide-ifdef-read-only) "hideif")
(defvar hide-ifdef-lines nil "\
*Non-nil means hide the #ifX, #else, and #endif lines.")
-(custom-autoload (quote hide-ifdef-lines) "hideif" t)
+(custom-autoload (quote hide-ifdef-lines) "hideif")
;;;***
\f
;;;### (autoloads (hs-minor-mode) "hideshow" "progmodes/hideshow.el"
-;;;;;; (17851 10868))
+;;;;;; (17778 50476))
;;; Generated autoloads from progmodes/hideshow.el
(defvar hs-special-modes-alist (quote ((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning))) "\
;;;;;; highlight-compare-buffers highlight-changes-rotate-faces
;;;;;; highlight-changes-previous-change highlight-changes-next-change
;;;;;; highlight-changes-mode highlight-changes-remove-highlight)
-;;;;;; "hilit-chg" "hilit-chg.el" (17851 10833))
+;;;;;; "hilit-chg" "hilit-chg.el" (17817 13976))
;;; Generated autoloads from hilit-chg.el
(autoload (quote highlight-changes-remove-highlight) "hilit-chg" "\
;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction
;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space
;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp"
-;;;;;; "hippie-exp.el" (17851 10833))
+;;;;;; "hippie-exp.el" (17817 13976))
;;; Generated autoloads from hippie-exp.el
(defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\
;;;***
\f
;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el"
-;;;;;; (17851 10833))
+;;;;;; (17713 5990))
;;; Generated autoloads from hl-line.el
(autoload (quote hl-line-mode) "hl-line" "\
;;;***
\f
;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el"
-;;;;;; (17851 10852))
+;;;;;; (17427 42815))
;;; Generated autoloads from calendar/holidays.el
(autoload (quote holidays) "holidays" "\
;;;***
\f
-;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17851
-;;;;;; 10857))
+;;;### (autoloads (hscroll-global-mode hscroll-mode turn-on-hscroll)
+;;;;;; "hscroll" "obsolete/hscroll.el" (17817 14122))
+;;; Generated autoloads from obsolete/hscroll.el
+
+(autoload (quote turn-on-hscroll) "hscroll" "\
+This function is obsolete.
+Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
+Also see `automatic-hscrolling'.
+
+\(fn)" nil nil)
+
+(autoload (quote hscroll-mode) "hscroll" "\
+This function is obsolete.
+Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
+Also see `automatic-hscrolling'.
+
+\(fn &optional ARG)" t nil)
+
+(autoload (quote hscroll-global-mode) "hscroll" "\
+This function is obsolete.
+Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
+Also see `automatic-hscrolling'.
+
+\(fn &optional ARG)" t nil)
+
+;;;***
+\f
+;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17778
+;;;;;; 50473))
;;; Generated autoloads from gnus/html2text.el
(autoload (quote html2text) "html2text" "\
;;;;;; 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" (17851 10833))
+;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17713 5990))
;;; Generated autoloads from ibuf-ext.el
(autoload (quote ibuffer-auto-mode) "ibuf-ext" "\
;;;***
\f
;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter
-;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17851
-;;;;;; 10834))
+;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17466
+;;;;;; 28164))
;;; Generated autoloads from ibuf-macs.el
(autoload (quote define-ibuffer-column) "ibuf-macs" "\
;;;***
\f
;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers)
-;;;;;; "ibuffer" "ibuffer.el" (17851 10834))
+;;;;;; "ibuffer" "ibuffer.el" (17713 5990))
;;; Generated autoloads from ibuffer.el
(autoload (quote ibuffer-list-buffers) "ibuffer" "\
\f
;;;### (autoloads (icalendar-import-buffer icalendar-import-file
;;;;;; icalendar-export-region icalendar-export-file) "icalendar"
-;;;;;; "calendar/icalendar.el" (17851 10852))
+;;;;;; "calendar/icalendar.el" (17817 15855))
;;; Generated autoloads from calendar/icalendar.el
(autoload (quote icalendar-export-file) "icalendar" "\
non-marking.
Return code t means that importing worked well, return code nil
-means that an error has occurred. Error messages will be in the
+means that an error has occured. Error messages will be in the
buffer `*icalendar-errors*'.
\(fn &optional DIARY-FILE DO-NOT-ASK NON-MARKING)" t nil)
;;;***
\f
-;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17851
-;;;;;; 10834))
+;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17778
+;;;;;; 50473))
;;; Generated autoloads from icomplete.el
(defvar icomplete-mode nil "\
;;;***
\f
-;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17851 10868))
+;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17390 27408))
;;; Generated autoloads from progmodes/icon.el
(autoload (quote icon-mode) "icon" "\
;;;***
\f
;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el"
-;;;;;; (17887 5449))
+;;;;;; (17778 50476))
;;; Generated autoloads from progmodes/idlw-shell.el
(autoload (quote idlwave-shell) "idlw-shell" "\
;;;***
\f
;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;; (17859 27907))
+;;;;;; (17817 14147))
;;; Generated autoloads from progmodes/idlwave.el
(autoload (quote idlwave-mode) "idlwave" "\
;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file
;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
-;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17864
-;;;;;; 64718))
+;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17817
+;;;;;; 16161))
;;; Generated autoloads from ido.el
(defvar ido-mode nil "\
(autoload (quote ido-switch-buffer-other-window) "ido" "\
Switch to another buffer and show it in another window.
The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
\(fn)" t nil)
(autoload (quote ido-display-buffer) "ido" "\
Display a buffer in another window but don't select it.
The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
\(fn)" t nil)
(autoload (quote ido-kill-buffer) "ido" "\
Kill a buffer.
The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
\(fn)" t nil)
(autoload (quote ido-insert-buffer) "ido" "\
Insert contents of a buffer in current buffer after point.
The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
\(fn)" t nil)
(autoload (quote ido-switch-buffer-other-frame) "ido" "\
Switch to another buffer and show it in another frame.
The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
\(fn)" t nil)
(autoload (quote ido-find-file-other-window) "ido" "\
Switch to another file and show it in another window.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-find-alternate-file) "ido" "\
Switch to another file and show it in another window.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-find-file-read-only) "ido" "\
Edit file read-only with name obtained via minibuffer.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-find-file-read-only-other-window) "ido" "\
Edit file read-only in other window with name obtained via minibuffer.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-find-file-read-only-other-frame) "ido" "\
Edit file read-only in other frame with name obtained via minibuffer.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-display-file) "ido" "\
Display a file in another window but don't select it.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-find-file-other-frame) "ido" "\
Switch to another file and show it in another frame.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-write-file) "ido" "\
Write current buffer to a file.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-insert-file) "ido" "\
Insert contents of file in current buffer.
The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
(autoload (quote ido-dired) "ido" "\
Call `dired' the ido way.
The directory is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
\(fn)" t nil)
;;;***
\f
-;;;### (autoloads (ielm) "ielm" "ielm.el" (17851 10834))
+;;;### (autoloads (ielm) "ielm" "ielm.el" (17817 13976))
;;; Generated autoloads from ielm.el
(add-hook 'same-window-buffer-names "*ielm*")
;;;***
\f
;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el"
-;;;;;; (17851 10834))
+;;;;;; (17778 50473))
;;; Generated autoloads from iimage.el
(autoload (quote turn-on-iimage-mode) "iimage" "\
;;;;;; insert-image put-image create-image image-type-auto-detected-p
;;;;;; image-type-available-p image-type image-type-from-file-name
;;;;;; image-type-from-file-header image-type-from-buffer image-type-from-data)
-;;;;;; "image" "image.el" (17868 42183))
+;;;;;; "image" "image.el" (17817 16882))
;;; Generated autoloads from image.el
(autoload (quote image-type-from-data) "image" "\
\(fn TYPE)" nil nil)
+(autoload (quote image-type-auto-detected-p) "image" "\
+Return t iff the current buffer contains an auto-detectable image.
+Whether image types are auto-detectable or not depends on the setting
+of the variable `image-type-auto-detectable'.
+
+This function is intended to be used from `magic-mode-alist' (which see).
+
+\(fn)" nil nil)
+
(autoload (quote image-type-auto-detected-p) "image" "\
Return t iff the current buffer contains an auto-detectable image.
- Whether image types are auto-detectable or not depends on the setting
- of the variable `image-type-auto-detectable'.
-
This function is intended to be used from `magic-mode-alist' (which see).
+ First, compare the beginning of the buffer with `image-type-header-regexps'.
+ If an appropriate image type is found, check if that image type can be
+ autodetected using the variable `image-type-auto-detectable'. Finally,
+ if `buffer-file-name' is non-nil, check if it matches another major mode
+ in `auto-mode-alist' apart from `image-mode'; if there is another match,
+ the autodetection is considered to have failed. Return t if all the above
+ steps succeed.
+
\(fn)" nil nil)
(autoload (quote create-image) "image" "\
\f
;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp
;;;;;; image-file-name-regexps image-file-name-extensions) "image-file"
-;;;;;; "image-file.el" (17851 10834))
+;;;;;; "image-file.el" (17390 26940))
;;; Generated autoloads from image-file.el
(defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\
;;;***
\f
;;;### (autoloads (image-mode-maybe image-minor-mode image-mode)
-;;;;;; "image-mode" "image-mode.el" (17866 8262))
+;;;;;; "image-mode" "image-mode.el" (17713 5990))
;;; Generated autoloads from image-mode.el
(push '("\\.jpe?g\\'" . image-mode) auto-mode-alist)
(push '("\\.png\\'" . image-mode) auto-mode-alist)
;;;***
\f
;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar
-;;;;;; imenu-sort-function) "imenu" "imenu.el" (17851 10835))
+;;;;;; imenu-sort-function) "imenu" "imenu.el" (17817 13976))
;;; Generated autoloads from imenu.el
(defvar imenu-sort-function nil "\
\f
;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion
;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region)
-;;;;;; "ind-util" "language/ind-util.el" (17851 10861))
+;;;;;; "ind-util" "language/ind-util.el" (17817 14144))
;;; Generated autoloads from language/ind-util.el
(autoload (quote indian-compose-region) "ind-util" "\
\f
;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command
;;;;;; inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp"
-;;;;;; "progmodes/inf-lisp.el" (17851 10868))
+;;;;;; "progmodes/inf-lisp.el" (17549 4607))
;;; Generated autoloads from progmodes/inf-lisp.el
(defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\
;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node
;;;;;; Info-goto-emacs-command-node Info-mode info-apropos Info-index
;;;;;; Info-directory Info-on-current-buffer info-standalone info-emacs-manual
-;;;;;; info info-other-window) "info" "info.el" (17870 6128))
+;;;;;; info info-other-window) "info" "info.el" (17817 16152))
;;; Generated autoloads from info.el
(autoload (quote info-other-window) "info" "\
\f
;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
-;;;;;; (17880 31192))
+;;;;;; (17778 50473))
;;; Generated autoloads from info-look.el
(autoload (quote info-lookup-reset) "info-look" "\
;;;***
\f
;;;### (autoloads (info-xref-check-all-custom info-xref-check-all
-;;;;;; info-xref-check) "info-xref" "info-xref.el" (17851 10835))
+;;;;;; info-xref-check) "info-xref" "info-xref.el" (17524 8597))
;;; Generated autoloads from info-xref.el
(autoload (quote info-xref-check) "info-xref" "\
;;;***
\f
;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify)
-;;;;;; "informat" "informat.el" (17851 10835))
+;;;;;; "informat" "informat.el" (17817 13976))
;;; Generated autoloads from informat.el
(autoload (quote Info-tagify) "informat" "\
\f
;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method
;;;;;; isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el"
-;;;;;; (17851 10860))
+;;;;;; (17817 15477))
;;; Generated autoloads from international/isearch-x.el
(autoload (quote isearch-toggle-specified-input-method) "isearch-x" "\
;;;***
\f
-;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17854
-;;;;;; 10613))
+;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17817
+;;;;;; 15738))
;;; Generated autoloads from isearchb.el
(autoload (quote isearchb-activate) "isearchb" "\
\(fn)" t nil)
+;;;***
+\f
+;;;### (autoloads (iso-accents-mode) "iso-acc" "obsolete/iso-acc.el"
+;;;;;; (17383 38806))
+;;; Generated autoloads from obsolete/iso-acc.el
+
+(autoload (quote iso-accents-mode) "iso-acc" "\
+Toggle ISO Accents mode, in which accents modify the following letter.
+This permits easy insertion of accented characters according to ISO-8859-1.
+When Iso-accents mode is enabled, accent character keys
+\(`, ', \", ^, / and ~) do not self-insert; instead, they modify the following
+letter key so that it inserts an ISO accented letter.
+
+You can customize ISO Accents mode to a particular language
+with the command `iso-accents-customize'.
+
+Special combinations: ~c gives a c with cedilla,
+~d gives an Icelandic eth (d with dash).
+~t gives an Icelandic thorn.
+\"s gives German sharp s.
+/a gives a with ring.
+/e gives an a-e ligature.
+~< and ~> give guillemots.
+~! gives an inverted exclamation mark.
+~? gives an inverted question mark.
+
+With an argument, a positive argument enables ISO Accents mode,
+and a negative argument disables it.
+
+\(fn &optional ARG)" t nil)
+
;;;***
\f
;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
-;;;;;; "international/iso-cvt.el" (17851 10860))
+;;;;;; "international/iso-cvt.el" (17817 14140))
;;; Generated autoloads from international/iso-cvt.el
(autoload (quote iso-spanish) "iso-cvt" "\
;;;***
\f
;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
-;;;;;; (17851 10860))
+;;;;;; (17817 14140))
;;; Generated autoloads from international/iso-transl.el
(or key-translation-map (setq key-translation-map (make-sparse-keymap)))
(define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell
;;;;;; ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist
;;;;;; ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
-;;;;;; (17875 14313))
+;;;;;; (17778 50479))
;;; Generated autoloads from textmodes/ispell.el
(put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
DICTIONARY-NAME is a possible string value of variable `ispell-dictionary',
nil means the default dictionary.
- CASECHARS is a regular expression of valid characters that comprise a
- word.
+ CASECHARS is a regular expression of valid characters that comprise a word.
NOT-CASECHARS is the opposite regexp of CASECHARS.
If you want OTHERCHARS to be empty, use the empty string.
Hint: regexp syntax requires the hyphen to be declared first here.
- CASECHAS, NOT-CASECHARS, and OTHERCHARS must be a unibyte string
+ CASECHARS, NOT-CASECHARS, and OTHERCHARS must be unibyte strings
containing bytes of CHARACTER-SET. In addition, if they contain
a non-ASCII byte, the regular expression must be a single
`character set' construct that doesn't specify a character range
This will check or reload the dictionary. Use \\[ispell-change-dictionary]
or \\[ispell-region] to update the Ispell process.
- return values:
+ Return values:
nil word is correct or spelling is accepted.
0 word is inserted into buffer-local definitions.
\"word\" word corrected from word list.
`l': Look up typed-in replacement in alternate dictionary. Wildcards okay.
`u': Like `i', but the word is lower-cased first.
`m': Place typed-in value in personal dictionary, then recheck current word.
- `C-l': redraws screen
- `C-r': recursive edit
- `C-z': suspend Emacs or iconify frame
+ `C-l': Redraw screen.
+ `C-r': Recursive edit.
+ `C-z': Suspend Emacs or iconify frame.
\(fn)" nil nil)
;;;***
\f
-;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17838
-;;;;;; 58217))
+;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17441
+;;;;;; 26660))
;;; Generated autoloads from iswitchb.el
(defvar iswitchb-mode nil "\
Non-nil if Iswitchb mode is enabled.
See the command `iswitchb-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `iswitchb-mode'.")
+use either \\[customize] or the function `iswitchb-mode'.")
+
+(custom-autoload (quote iswitchb-mode) "iswitchb")
-(custom-autoload (quote iswitchb-mode) "iswitchb" nil)
+(put (quote iswitchb-mode) (quote custom-set) (quote custom-set-minor-mode))
(autoload (quote iswitchb-mode) "iswitchb" "\
Toggle Iswitchb global minor mode.
;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region
;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku
;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal)
-;;;;;; "japan-util" "language/japan-util.el" (17851 10861))
+;;;;;; "japan-util" "language/japan-util.el" (17817 15478))
;;; Generated autoloads from language/japan-util.el
(autoload (quote setup-japanese-environment-internal) "japan-util" "\
;;;***
\f
;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr"
-;;;;;; "jka-compr.el" (17853 24757))
+;;;;;; "jka-compr.el" (17817 13976))
;;; Generated autoloads from jka-compr.el
(defvar jka-compr-inhibit nil "\
\f
;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup
;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el"
-;;;;;; (17851 10853))
+;;;;;; (17390 26938))
;;; Generated autoloads from emulation/keypad.el
(defvar keypad-setup nil "\
;;;***
\f
;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el"
-;;;;;; (17851 10860))
+;;;;;; (17817 15477))
;;; Generated autoloads from international/kinsoku.el
(autoload (quote kinsoku) "kinsoku" "\
;;;***
\f
-;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17851
-;;;;;; 10860))
+;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17817
+;;;;;; 15477))
;;; Generated autoloads from international/kkc.el
(defvar kkc-after-update-conversion-functions nil "\
;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro"
-;;;;;; "kmacro.el" (17851 10836))
+;;;;;; "kmacro.el" (17778 50473))
;;; Generated autoloads from kmacro.el
(global-set-key "\C-x(" 'kmacro-start-macro)
(global-set-key "\C-x)" 'kmacro-end-macro)
\f
;;;### (autoloads (kannada-post-read-conversion kannada-compose-string
;;;;;; kannada-compose-region) "knd-util" "language/knd-util.el"
-;;;;;; (17851 10861))
+;;;;;; (17817 14145))
;;; Generated autoloads from language/knd-util.el
(defconst kannada-consonant "[\x51f75-\x51fb9]")
;;;***
\f
;;;### (autoloads (setup-korean-environment-internal) "korea-util"
-;;;;;; "language/korea-util.el" (17851 10861))
+;;;;;; "language/korea-util.el" (17817 15478))
;;; Generated autoloads from language/korea-util.el
(defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\
;;;***
\f
;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el"
-;;;;;; (17851 10866))
+;;;;;; (17817 14125))
;;; Generated autoloads from play/landmark.el
(defalias (quote landmark-repeat) (quote lm-test-run))
\f
;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion
;;;;;; lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao
-;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17851
-;;;;;; 10861))
+;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17817
+;;;;;; 15478))
;;; Generated autoloads from language/lao-util.el
(autoload (quote lao-compose-string) "lao-util" "\
\f
;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc
;;;;;; latexenc-inputenc-to-coding-system latex-inputenc-coding-alist)
-;;;;;; "latexenc" "international/latexenc.el" (17851 10860))
+;;;;;; "latexenc" "international/latexenc.el" (17713 5990))
;;; Generated autoloads from international/latexenc.el
(defvar latex-inputenc-coding-alist (quote (("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\
;;;***
\f
;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display)
-;;;;;; "latin1-disp" "international/latin1-disp.el" (17875 14313))
+;;;;;; "latin1-disp" "international/latin1-disp.el" (17817 14141))
;;; Generated autoloads from international/latin1-disp.el
(defvar latin1-display nil "\
(custom-autoload (quote latin1-display-ucs-per-lynx) "latin1-disp" nil)
+;;;***
+\f
+;;;### (autoloads (turn-on-lazy-lock lazy-lock-mode) "lazy-lock"
+;;;;;; "obsolete/lazy-lock.el" (17383 38807))
+;;; Generated autoloads from obsolete/lazy-lock.el
+
+(autoload (quote lazy-lock-mode) "lazy-lock" "\
+Toggle Lazy Lock mode.
+With arg, turn Lazy Lock mode on if and only if arg is positive. Enable it
+automatically in your `~/.emacs' by:
+
+ (setq font-lock-support-mode 'lazy-lock-mode)
+
+For a newer font-lock support mode with similar functionality, see
+`jit-lock-mode'. Eventually, Lazy Lock mode will be deprecated in
+JIT Lock's favor.
+
+When Lazy Lock mode is enabled, fontification can be lazy in a number of ways:
+
+- Demand-driven buffer fontification if `lazy-lock-minimum-size' is non-nil.
+ This means initial fontification does not occur if the buffer is greater than
+ `lazy-lock-minimum-size' characters in length. Instead, fontification occurs
+ when necessary, such as when scrolling through the buffer would otherwise
+ reveal unfontified areas. This is useful if buffer fontification is too slow
+ for large buffers.
+
+- Deferred scroll fontification if `lazy-lock-defer-on-scrolling' is non-nil.
+ This means demand-driven fontification does not occur as you scroll.
+ Instead, fontification is deferred until after `lazy-lock-defer-time' seconds
+ of Emacs idle time, while Emacs remains idle. This is useful if
+ fontification is too slow to keep up with scrolling.
+
+- Deferred on-the-fly fontification if `lazy-lock-defer-on-the-fly' is non-nil.
+ This means on-the-fly fontification does not occur as you type. Instead,
+ fontification is deferred until after `lazy-lock-defer-time' seconds of Emacs
+ idle time, while Emacs remains idle. This is useful if fontification is too
+ slow to keep up with your typing.
+
+- Deferred context fontification if `lazy-lock-defer-contextually' is non-nil.
+ This means fontification updates the buffer corresponding to true syntactic
+ context, after `lazy-lock-defer-time' seconds of Emacs idle time, while Emacs
+ remains idle. Otherwise, fontification occurs on modified lines only, and
+ subsequent lines can remain fontified corresponding to previous syntactic
+ contexts. This is useful where strings or comments span lines.
+
+- Stealthy buffer fontification if `lazy-lock-stealth-time' is non-nil.
+ This means remaining unfontified areas of buffers are fontified if Emacs has
+ been idle for `lazy-lock-stealth-time' seconds, while Emacs remains idle.
+ This is useful if any buffer has any deferred fontification.
+
+Basic Font Lock mode on-the-fly fontification behavior fontifies modified
+lines only. Thus, if `lazy-lock-defer-contextually' is non-nil, Lazy Lock mode
+on-the-fly fontification may fontify differently, albeit correctly. In any
+event, to refontify some lines you can use \\[font-lock-fontify-block].
+
+Stealth fontification only occurs while the system remains unloaded.
+If the system load rises above `lazy-lock-stealth-load' percent, stealth
+fontification is suspended. Stealth fontification intensity is controlled via
+the variable `lazy-lock-stealth-nice' and `lazy-lock-stealth-lines', and
+verbosity is controlled via the variable `lazy-lock-stealth-verbose'.
+
+\(fn &optional ARG)" t nil)
+
+(autoload (quote turn-on-lazy-lock) "lazy-lock" "\
+Unconditionally turn on Lazy Lock mode.
+
+\(fn)" nil nil)
+
;;;***
\f
;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el"
-;;;;;; (17851 10868))
+;;;;;; (17817 14147))
;;; Generated autoloads from progmodes/ld-script.el
(add-to-list (quote auto-mode-alist) (quote ("\\.ld[si]?\\>" . ld-script-mode)))
;;;***
\f
;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el"
-;;;;;; (17851 10837))
+;;;;;; (17817 13976))
;;; Generated autoloads from ledit.el
(defconst ledit-save-files t "\
;;;***
\f
-;;;### (autoloads (life) "life" "play/life.el" (17851 10866))
+;;;### (autoloads (life) "life" "play/life.el" (17713 5990))
;;; Generated autoloads from play/life.el
(autoload (quote life) "life" "\
;;;***
\f
-;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17871
-;;;;;; 15753))
+;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17817
+;;;;;; 13976))
;;; Generated autoloads from loadhist.el
(autoload (quote unload-feature) "loadhist" "\
;;;***
\f
;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
-;;;;;; "locate" "locate.el" (17851 10838))
+;;;;;; "locate" "locate.el" (17778 50475))
;;; Generated autoloads from locate.el
(defvar locate-ls-subdir-switches "-al" "\
;;;***
\f
-;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17851 10838))
+;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17817 13976))
;;; Generated autoloads from log-edit.el
(autoload (quote log-edit) "log-edit" "\
;;;***
\f
-;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17851
-;;;;;; 10838))
+;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17496
+;;;;;; 38723))
;;; Generated autoloads from log-view.el
(autoload (quote log-view-mode) "log-view" "\
;;;***
\f
-;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17851
-;;;;;; 10838))
+;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17778
+;;;;;; 50475))
;;; Generated autoloads from longlines.el
(autoload (quote longlines-mode) "longlines" "\
;;;***
\f
;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer
-;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17851
-;;;;;; 10838))
+;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17713
+;;;;;; 5990))
;;; Generated autoloads from lpr.el
(defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt))))
;;;***
\f
;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
-;;;;;; (17851 39451))
+;;;;;; (17817 13976))
;;; Generated autoloads from ls-lisp.el
(defvar ls-lisp-support-shell-wildcards t "\
;;;***
\f
-;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17851
-;;;;;; 10852))
+;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17390
+;;;;;; 27324))
;;; Generated autoloads from calendar/lunar.el
(autoload (quote phases-of-moon) "lunar" "\
;;;***
\f
-;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17851
-;;;;;; 10868))
+;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17390
+;;;;;; 27408))
;;; Generated autoloads from progmodes/m4-mode.el
(autoload (quote m4-mode) "m4-mode" "\
;;;***
\f
;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el"
-;;;;;; (17851 10853))
+;;;;;; (17390 26938))
;;; Generated autoloads from emacs-lisp/macroexp.el
(autoload (quote macroexpand-all) "macroexp" "\
;;;***
\f
;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro
-;;;;;; name-last-kbd-macro) "macros" "macros.el" (17851 10838))
+;;;;;; name-last-kbd-macro) "macros" "macros.el" (17817 13976))
;;; Generated autoloads from macros.el
(autoload (quote name-last-kbd-macro) "macros" "\
;;;***
\f
;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr"
-;;;;;; "mail/mail-extr.el" (17851 10861))
+;;;;;; "mail/mail-extr.el" (17390 26942))
;;; Generated autoloads from mail/mail-extr.el
(autoload (quote mail-extract-address-components) "mail-extr" "\
\f
;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history
;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el"
-;;;;;; (17851 10862))
+;;;;;; (17817 14119))
;;; Generated autoloads from mail/mail-hist.el
(autoload (quote mail-hist-define-keys) "mail-hist" "\
\f
;;;### (autoloads (mail-fetch-field mail-unquote-printable-region
;;;;;; mail-unquote-printable mail-quote-printable mail-file-babyl-p
-;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17851
-;;;;;; 10862))
+;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17390
+;;;;;; 26942))
;;; Generated autoloads from mail/mail-utils.el
(defvar mail-use-rfc822 nil "\
;;;***
\f
;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup)
-;;;;;; "mailabbrev" "mail/mailabbrev.el" (17851 10862))
+;;;;;; "mailabbrev" "mail/mailabbrev.el" (17817 14119))
;;; Generated autoloads from mail/mailabbrev.el
(autoload (quote mail-abbrevs-setup) "mailabbrev" "\
;;;***
\f
;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases
-;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17851
-;;;;;; 10862))
+;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17817
+;;;;;; 14119))
;;; Generated autoloads from mail/mailalias.el
(defvar mail-complete-style (quote angles) "\
;;;***
\f
;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el"
-;;;;;; (17851 10862))
+;;;;;; (17390 26942))
;;; Generated autoloads from mail/mailclient.el
(autoload (quote mailclient-send-it) "mailclient" "\
\f
;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode
;;;;;; makefile-gmake-mode makefile-automake-mode makefile-mode)
-;;;;;; "make-mode" "progmodes/make-mode.el" (17851 10868))
+;;;;;; "make-mode" "progmodes/make-mode.el" (17713 5991))
;;; Generated autoloads from progmodes/make-mode.el
(autoload (quote makefile-mode) "make-mode" "\
;;;***
\f
-;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17851
-;;;;;; 10838))
+;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17817
+;;;;;; 13976))
;;; Generated autoloads from makesum.el
(autoload (quote make-command-summary) "makesum" "\
;;;***
\f
-;;;### (autoloads (man-follow man) "man" "man.el" (17851 10838))
+;;;### (autoloads (man-follow man) "man" "man.el" (17817 14146))
;;; Generated autoloads from man.el
(defalias (quote manual-entry) (quote man))
;;;***
\f
-;;;### (autoloads (master-mode) "master" "master.el" (17851 10838))
+;;;### (autoloads (master-mode) "master" "master.el" (17817 13976))
;;; Generated autoloads from master.el
(autoload (quote master-mode) "master" "\
;;;***
\f
-;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17851
-;;;;;; 10838))
+;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17817
+;;;;;; 15287))
;;; Generated autoloads from menu-bar.el
(put (quote menu-bar-mode) (quote standard-value) (quote (t)))
;;;;;; message-cite-function message-yank-prefix message-citation-line-function
;;;;;; message-send-mail-function message-user-organization-file
;;;;;; message-signature-separator message-from-style) "message"
-;;;;;; "gnus/message.el" (17851 10858))
+;;;;;; "gnus/message.el" (17817 16940))
;;; Generated autoloads from gnus/message.el
(defvar message-from-style (quote default) "\
;;;***
\f
;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el"
-;;;;;; (17851 10869))
+;;;;;; (17390 27409))
;;; Generated autoloads from progmodes/meta-mode.el
(autoload (quote metafont-mode) "meta-mode" "\
\f
;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body
;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el"
-;;;;;; (17851 10862))
+;;;;;; (17817 14119))
;;; Generated autoloads from mail/metamail.el
(autoload (quote metamail-interpret-header) "metamail" "\
\f
;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose
;;;;;; mh-smail-batch mh-smail-other-window mh-smail) "mh-comp"
-;;;;;; "mh-e/mh-comp.el" (17851 10863))
+;;;;;; "mh-e/mh-comp.el" (17713 5990))
;;; Generated autoloads from mh-e/mh-comp.el
(autoload (quote mh-smail) "mh-comp" "\
;;;***
\f
-;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17851 10863))
+;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17778 50475))
;;; Generated autoloads from mh-e/mh-e.el
(put (quote mh-progs) (quote risky-local-variable) t)
;;;***
\f
;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder"
-;;;;;; "mh-e/mh-folder.el" (17851 10863))
+;;;;;; "mh-e/mh-folder.el" (17490 7902))
;;; Generated autoloads from mh-e/mh-folder.el
(autoload (quote mh-rmail) "mh-folder" "\
;;;***
\f
;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight"
-;;;;;; "midnight.el" (17851 10838))
+;;;;;; "midnight.el" (17817 13976))
;;; Generated autoloads from midnight.el
(autoload (quote clean-buffer-list) "midnight" "\
;;;***
\f
;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef"
-;;;;;; "minibuf-eldef.el" (17851 10838))
+;;;;;; "minibuf-eldef.el" (17390 26943))
;;; Generated autoloads from minibuf-eldef.el
(defvar minibuffer-electric-default-mode nil "\
Non-nil if Minibuffer-Electric-Default mode is enabled.
See the command `minibuffer-electric-default-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `minibuffer-electric-default-mode'.")
+use either \\[customize] or the function `minibuffer-electric-default-mode'.")
+
+(custom-autoload (quote minibuffer-electric-default-mode) "minibuf-eldef")
-(custom-autoload (quote minibuffer-electric-default-mode) "minibuf-eldef" nil)
+(put (quote minibuffer-electric-default-mode) (quote custom-set) (quote custom-set-minor-mode))
(autoload (quote minibuffer-electric-default-mode) "minibuf-eldef" "\
Toggle Minibuffer Electric Default mode.
;;;***
\f
;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el"
-;;;;;; (17851 10869))
+;;;;;; (17390 27409))
;;; Generated autoloads from progmodes/mixal-mode.el
(autoload (quote mixal-mode) "mixal-mode" "\
\f
;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion
;;;;;; malayalam-compose-region) "mlm-util" "language/mlm-util.el"
-;;;;;; (17851 10861))
+;;;;;; (17817 14145))
;;; Generated autoloads from language/mlm-util.el
(autoload (quote malayalam-compose-region) "mlm-util" "\
;;;***
\f
;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents)
-;;;;;; "mm-extern" "gnus/mm-extern.el" (17851 10858))
+;;;;;; "mm-extern" "gnus/mm-extern.el" (17713 5203))
;;; Generated autoloads from gnus/mm-extern.el
(autoload (quote mm-extern-cache-contents) "mm-extern" "\
;;;***
\f
;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el"
-;;;;;; (17851 10858))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/mm-partial.el
(autoload (quote mm-inline-partial) "mm-partial" "\
;;;***
\f
;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents)
-;;;;;; "mm-url" "gnus/mm-url.el" (17851 10858))
+;;;;;; "mm-url" "gnus/mm-url.el" (17817 13970))
;;; Generated autoloads from gnus/mm-url.el
(autoload (quote mm-url-insert-file-contents) "mm-url" "\
;;;***
\f
;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu"
-;;;;;; "gnus/mm-uu.el" (17851 10858))
+;;;;;; "gnus/mm-uu.el" (17778 50473))
;;; Generated autoloads from gnus/mm-uu.el
(autoload (quote mm-uu-dissect) "mm-uu" "\
;;;***
\f
;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el"
-;;;;;; (17851 10858))
+;;;;;; (17496 38719))
;;; Generated autoloads from gnus/mml1991.el
(autoload (quote mml1991-encrypt) "mml1991" "\
\f
;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt
;;;;;; mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt)
-;;;;;; "mml2015" "gnus/mml2015.el" (17851 10858))
+;;;;;; "mml2015" "gnus/mml2015.el" (17778 50473))
;;; Generated autoloads from gnus/mml2015.el
(autoload (quote mml2015-decrypt) "mml2015" "\
;;;***
\f
;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el"
-;;;;;; (17504 41540))
+;;;;;; (17322 60488))
;;; Generated autoloads from progmodes/modula2.el
(autoload (quote modula-2-mode) "modula2" "\
;;;***
\f
;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el"
-;;;;;; (17851 10866))
+;;;;;; (17817 14125))
;;; Generated autoloads from play/morse.el
(autoload (quote morse-region) "morse" "\
;;;***
\f
-;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17851
-;;;;;; 10838))
+;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17817
+;;;;;; 14147))
;;; Generated autoloads from mouse-sel.el
(defvar mouse-sel-mode nil "\
;;;***
\f
-;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17863 20633))
+;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17817 14125))
;;; Generated autoloads from play/mpuz.el
(autoload (quote mpuz) "mpuz" "\
;;;***
\f
-;;;### (autoloads (msb-mode) "msb" "msb.el" (17851 10838))
+;;;### (autoloads (msb-mode) "msb" "msb.el" (17569 17797))
;;; Generated autoloads from msb.el
(defvar msb-mode nil "\
Non-nil if Msb mode is enabled.
See the command `msb-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `msb-mode'.")
+use either \\[customize] or the function `msb-mode'.")
-(custom-autoload (quote msb-mode) "msb" nil)
+(custom-autoload (quote msb-mode) "msb")
(autoload (quote msb-mode) "msb" "\
Toggle Msb mode.
;;;;;; describe-current-coding-system describe-current-coding-system-briefly
;;;;;; describe-coding-system describe-character-set list-charset-chars
;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el"
-;;;;;; (17851 10860))
+;;;;;; (17817 15478))
;;; Generated autoloads from international/mule-diag.el
(defvar non-iso-charset-alist (\` ((mac-roman (ascii latin-iso8859-1 mule-unicode-2500-33ff mule-unicode-0100-24ff mule-unicode-e000-ffff) mac-roman-decoder ((0 255))) (viscii (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-viscii-nonascii-translation-table ((0 255))) (vietnamese-tcvn (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-tcvn-nonascii-translation-table ((0 255))) (koi8-r (ascii cyrillic-iso8859-5) cyrillic-koi8-r-nonascii-translation-table ((32 255))) (alternativnyj (ascii cyrillic-iso8859-5) cyrillic-alternativnyj-nonascii-translation-table ((32 255))) (koi8-u (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) cyrillic-koi8-u-nonascii-translation-table ((32 255))) (big5 (ascii chinese-big5-1 chinese-big5-2) decode-big5-char ((32 127) ((161 254) 64 126 161 254))) (sjis (ascii katakana-jisx0201 japanese-jisx0208) decode-sjis-char ((32 127 161 223) ((129 159 224 239) 64 126 128 252))))) "\
;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion
;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist
;;;;;; truncate-string-to-width store-substring string-to-sequence)
-;;;;;; "mule-util" "international/mule-util.el" (17851 10860))
+;;;;;; "mule-util" "international/mule-util.el" (17817 15478))
;;; Generated autoloads from international/mule-util.el
(autoload (quote string-to-sequence) "mule-util" "\
;;;***
\f
;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el"
-;;;;;; (17851 10838))
+;;;;;; (17505 62425))
;;; Generated autoloads from mwheel.el
(defvar mouse-wheel-mode nil "\
Non-nil if Mouse-Wheel mode is enabled.
See the command `mouse-wheel-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `mouse-wheel-mode'.")
+use either \\[customize] or the function `mouse-wheel-mode'.")
-(custom-autoload (quote mouse-wheel-mode) "mwheel" nil)
+(custom-autoload (quote mouse-wheel-mode) "mwheel")
(autoload (quote mouse-wheel-mode) "mwheel" "\
Toggle mouse wheel support.
;;;### (autoloads (network-connection network-connection-to-service
;;;;;; whois-reverse-lookup whois finger ftp run-dig dns-lookup-host
;;;;;; nslookup nslookup-host route arp netstat ipconfig ping traceroute)
-;;;;;; "net-utils" "net/net-utils.el" (17851 10863))
+;;;;;; "net-utils" "net/net-utils.el" (17390 26944))
;;; Generated autoloads from net/net-utils.el
(autoload (quote traceroute) "net-utils" "\
;;;;;; uncomment-region comment-kill comment-set-column comment-indent
;;;;;; comment-indent-default comment-normalize-vars comment-multi-line
;;;;;; comment-padding comment-style comment-column) "newcomment"
-;;;;;; "newcomment.el" (17851 10839))
+;;;;;; "newcomment.el" (17817 13976))
;;; Generated autoloads from newcomment.el
(defalias (quote indent-for-comment) (quote comment-indent))
\f
;;;### (autoloads (newsticker-show-news newsticker-start-ticker newsticker-start
;;;;;; newsticker-ticker-running-p newsticker-running-p) "newsticker"
-;;;;;; "net/newsticker.el" (17873 60335))
+;;;;;; "net/newsticker.el" (17390 26944))
;;; Generated autoloads from net/newsticker.el
(autoload (quote newsticker-running-p) "newsticker" "\
;;;***
\f
;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
-;;;;;; (17851 10858))
+;;;;;; (17778 50473))
;;; Generated autoloads from gnus/nndiary.el
(autoload (quote nndiary-generate-nov-databases) "nndiary" "\
;;;***
\f
-;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17851
-;;;;;; 10859))
+;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17383
+;;;;;; 38805))
;;; Generated autoloads from gnus/nndoc.el
(autoload (quote nndoc-add-type) "nndoc" "\
;;;***
\f
;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el"
-;;;;;; (17851 10859))
+;;;;;; (17390 27386))
;;; Generated autoloads from gnus/nnfolder.el
(autoload (quote nnfolder-generate-active-file) "nnfolder" "\
;;;***
\f
;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el"
-;;;;;; (17851 10859))
+;;;;;; (17817 14138))
;;; Generated autoloads from gnus/nnkiboze.el
(autoload (quote nnkiboze-generate-groups) "nnkiboze" "\
;;;***
\f
;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el"
-;;;;;; (17851 10859))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/nnml.el
(autoload (quote nnml-generate-nov-databases) "nnml" "\
;;;***
\f
;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies)
-;;;;;; "nnsoup" "gnus/nnsoup.el" (17851 10859))
+;;;;;; "nnsoup" "gnus/nnsoup.el" (17778 50473))
;;; Generated autoloads from gnus/nnsoup.el
(autoload (quote nnsoup-pack-replies) "nnsoup" "\
;;;***
\f
;;;### (autoloads (disable-command enable-command disabled-command-function)
-;;;;;; "novice" "novice.el" (17851 10839))
+;;;;;; "novice" "novice.el" (17817 13976))
;;; Generated autoloads from novice.el
(defvar disabled-command-function (quote disabled-command-function) "\
;;;***
\f
;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el"
-;;;;;; (17851 10872))
+;;;;;; (17390 27169))
;;; Generated autoloads from textmodes/nroff-mode.el
(autoload (quote nroff-mode) "nroff-mode" "\
;;;***
\f
;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el"
-;;;;;; (17851 10869))
+;;;;;; (17390 27409))
;;; Generated autoloads from progmodes/octave-hlp.el
(autoload (quote octave-help) "octave-hlp" "\
;;;***
\f
;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el"
-;;;;;; (17851 10869))
+;;;;;; (17778 49132))
;;; Generated autoloads from progmodes/octave-inf.el
(autoload (quote inferior-octave) "octave-inf" "\
;;;***
\f
;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el"
-;;;;;; (17851 10869))
+;;;;;; (17817 13977))
;;; Generated autoloads from progmodes/octave-mod.el
(autoload (quote octave-mode) "octave-mod" "\
\(fn)" t nil)
+;;;***
+\f
+;;;### (autoloads (edit-options list-options) "options" "obsolete/options.el"
+;;;;;; (17817 14123))
+;;; Generated autoloads from obsolete/options.el
+
+(autoload (quote list-options) "options" "\
+Display a list of Emacs user options, with values and documentation.
+It is now better to use Customize instead.
+
+\(fn)" t nil)
+
+(autoload (quote edit-options) "options" "\
+Edit a list of Emacs user option values.
+Selects a buffer containing such a list,
+in which there are commands to set the option values.
+Type \\[describe-mode] in that buffer for a list of commands.
+
+The Custom feature is intended to make this obsolete.
+
+\(fn)" t nil)
+
;;;***
\f
;;;### (autoloads (org-export-icalendar-combine-agenda-files org-export-icalendar-all-agenda-files
;;;;;; org-store-link org-tags-view org-diary org-cycle-agenda-files
;;;;;; org-todo-list org-agenda-list org-batch-agenda org-agenda
;;;;;; org-global-cycle org-cycle org-mode) "org" "textmodes/org.el"
-;;;;;; (17871 15754))
+;;;;;; (17817 15940))
;;; Generated autoloads from textmodes/org.el
(autoload (quote org-mode) "org" "\
;;;***
\f
;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el"
-;;;;;; (17882 17519))
+;;;;;; (17817 16152))
;;; Generated autoloads from outline.el
(put 'outline-regexp 'safe-local-variable 'string-or-null-p)
;;;***
\f
-;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17851
-;;;;;; 10872))
+;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17496
+;;;;;; 38721))
;;; Generated autoloads from textmodes/paragraphs.el
(put 'paragraph-start 'safe-local-variable 'stringp)
(put 'paragraph-separate 'safe-local-variable 'stringp)
;;;***
\f
-;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17851 10839))
+;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17778 50475))
;;; Generated autoloads from paren.el
(defvar show-paren-mode nil "\
;;;***
\f
;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el"
-;;;;;; (17851 10852))
+;;;;;; (17390 27324))
;;; Generated autoloads from calendar/parse-time.el
(autoload (quote parse-time-string) "parse-time" "\
;;;***
\f
-;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17851
-;;;;;; 10869))
+;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17390
+;;;;;; 27409))
;;; Generated autoloads from progmodes/pascal.el
(autoload (quote pascal-mode) "pascal" "\
;;;***
\f
;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el"
-;;;;;; (17851 10853))
+;;;;;; (17817 13982))
;;; Generated autoloads from emulation/pc-mode.el
(autoload (quote pc-bindings-mode) "pc-mode" "\
;;;***
\f
;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select"
-;;;;;; "emulation/pc-select.el" (17851 10853))
+;;;;;; "emulation/pc-select.el" (17390 26938))
;;; Generated autoloads from emulation/pc-select.el
(defvar pc-selection-mode nil "\
Non-nil if Pc-Selection mode is enabled.
See the command `pc-selection-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `pc-selection-mode'.")
+use either \\[customize] or the function `pc-selection-mode'.")
+
+(custom-autoload (quote pc-selection-mode) "pc-select")
-(custom-autoload (quote pc-selection-mode) "pc-select" nil)
+(put (quote pc-selection-mode) (quote custom-set) (quote custom-set-minor-mode))
(autoload (quote pc-selection-mode) "pc-select" "\
Change mark behavior to emulate Motif, MAC or MS-Windows cut and paste style.
Setting this variable directly does not take effect;
you must modify it using \\[customize] or \\[pc-selection-mode].")
-(custom-autoload (quote pc-selection-mode) "pc-select" nil)
+(custom-autoload (quote pc-selection-mode) "pc-select")
;;;***
\f
-;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17851
-;;;;;; 10839))
+;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17817
+;;;;;; 13976))
;;; Generated autoloads from pcmpl-cvs.el
(autoload (quote pcomplete/cvs) "pcmpl-cvs" "\
;;;***
\f
;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip)
-;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17851 10839))
+;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17817 13976))
;;; Generated autoloads from pcmpl-gnu.el
(autoload (quote pcomplete/gzip) "pcmpl-gnu" "\
;;;***
\f
;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill)
-;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17851 10839))
+;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17817 13976))
;;; Generated autoloads from pcmpl-linux.el
(autoload (quote pcomplete/kill) "pcmpl-linux" "\
;;;***
\f
-;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17851
-;;;;;; 10839))
+;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17817
+;;;;;; 13976))
;;; Generated autoloads from pcmpl-rpm.el
(autoload (quote pcomplete/rpm) "pcmpl-rpm" "\
\f
;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which
;;;;;; pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd)
-;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17851 10839))
+;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17817 13976))
;;; Generated autoloads from pcmpl-unix.el
(autoload (quote pcomplete/cd) "pcmpl-unix" "\
\f
;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list
;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete
-;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17851
-;;;;;; 10839))
+;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17466
+;;;;;; 27845))
;;; Generated autoloads from pcomplete.el
(autoload (quote pcomplete) "pcomplete" "\
\f
;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
-;;;;;; "pcvs.el" (17851 10840))
+;;;;;; "pcvs.el" (17817 13976))
;;; Generated autoloads from pcvs.el
(autoload (quote cvs-checkout) "pcvs" "\
;;;***
\f
-;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17851 10839))
+;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17817 13976))
;;; Generated autoloads from pcvs-defs.el
(defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m)))
;;;***
\f
;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el"
-;;;;;; (17851 10869))
+;;;;;; (17499 10453))
;;; Generated autoloads from progmodes/perl-mode.el
(autoload (quote perl-mode) "perl-mode" "\
;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key
;;;;;; pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt
;;;;;; pgg-decrypt-region pgg-encrypt pgg-encrypt-symmetric pgg-encrypt-symmetric-region
-;;;;;; pgg-encrypt-region) "pgg" "pgg.el" (17851 10840))
+;;;;;; pgg-encrypt-region) "pgg" "pgg.el" (17713 5990))
;;; Generated autoloads from pgg.el
(autoload (quote pgg-encrypt-region) "pgg" "\
;;;***
\f
;;;### (autoloads (pgg-gpg-symmetric-key-p) "pgg-gpg" "pgg-gpg.el"
-;;;;;; (17887 6558))
+;;;;;; (17817 16940))
;;; Generated autoloads from pgg-gpg.el
(autoload (quote pgg-gpg-symmetric-key-p) "pgg-gpg" "\
;;;***
\f
;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el"
-;;;;;; (17851 10872))
+;;;;;; (17817 14128))
;;; Generated autoloads from textmodes/picture.el
(autoload (quote picture-mode) "picture" "\
;;;***
\f
;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el"
-;;;;;; (17851 10872))
+;;;;;; (17611 9183))
;;; Generated autoloads from textmodes/po.el
(autoload (quote po-find-file-coding-system) "po" "\
;;;***
\f
-;;;### (autoloads (pong) "pong" "play/pong.el" (17851 10866))
+;;;### (autoloads (pong) "pong" "play/pong.el" (17549 5052))
;;; Generated autoloads from play/pong.el
(autoload (quote pong) "pong" "\
;;;***
\f
;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer
-;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17852 50694))
+;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17778 50473))
;;; Generated autoloads from emacs-lisp/pp.el
(autoload (quote pp-to-string) "pp" "\
;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el"
-;;;;;; (17866 27909))
+;;;;;; (17817 13971))
;;; Generated autoloads from printing.el
(autoload (quote pr-interface) "printing" "\
;;;***
\f
;;;### (autoloads (switch-to-prolog prolog-mode) "prolog" "progmodes/prolog.el"
-;;;;;; (17851 10869))
+;;;;;; (17713 5991))
;;; Generated autoloads from progmodes/prolog.el
(autoload (quote prolog-mode) "prolog" "\
;;;***
\f
-;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17851 10840))
+;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17817 15478))
;;; Generated autoloads from ps-bdf.el
(defvar bdf-directory-list (if (memq system-type (quote (ms-dos windows-nt))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\
;;;***
\f
-;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17851
-;;;;;; 10869))
+;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17390
+;;;;;; 27409))
;;; Generated autoloads from progmodes/ps-mode.el
(autoload (quote ps-mode) "ps-mode" "\
;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string
;;;;;; ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string
;;;;;; ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer)
-;;;;;; "ps-mule" "ps-mule.el" (17851 10840))
+;;;;;; "ps-mule" "ps-mule.el" (17817 13971))
;;; Generated autoloads from ps-mule.el
(defvar ps-multibyte-buffer nil "\
;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
-;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (17880
-;;;;;; 31192))
+;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (17817
+;;;;;; 13971))
;;; Generated autoloads from ps-print.el
(defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\
;;;***
\f
;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
-;;;;;; (17851 10869))
+;;;;;; (17817 13957))
;;; Generated autoloads from progmodes/python.el
(add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode)))
;;;***
\f
;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
-;;;;;; (17851 10859))
+;;;;;; (17407 3112))
;;; Generated autoloads from gnus/qp.el
(autoload (quote quoted-printable-decode-region) "qp" "\
;;;;;; quail-defrule quail-install-decode-map quail-install-map
;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout
;;;;;; quail-define-package quail-use-package quail-title) "quail"
-;;;;;; "international/quail.el" (17859 27906))
+;;;;;; "international/quail.el" (17817 15478))
;;; Generated autoloads from international/quail.el
(autoload (quote quail-title) "quail" "\
\f
;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls
;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url
-;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17851
-;;;;;; 10864))
+;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17390
+;;;;;; 26944))
;;; Generated autoloads from net/quickurl.el
(defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\
;;;***
\f
;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
-;;;;;; "net/rcirc.el" (17851 10864))
+;;;;;; "net/rcirc.el" (17778 50475))
;;; Generated autoloads from net/rcirc.el
(autoload (quote rcirc) "rcirc" "\
;;;***
\f
-;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17851
-;;;;;; 10864))
+;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17817
+;;;;;; 14122))
;;; Generated autoloads from net/rcompile.el
(autoload (quote remote-compile) "rcompile" "\
;;;***
\f
;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el"
-;;;;;; (17851 10853))
+;;;;;; (17778 50473))
;;; Generated autoloads from emacs-lisp/re-builder.el
(defalias (quote regexp-builder) (quote re-builder))
;;;***
\f
-;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17851 10841))
+;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17778 48817))
;;; Generated autoloads from recentf.el
(defvar recentf-mode nil "\
;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle
;;;;;; delete-whitespace-rectangle open-rectangle insert-rectangle
;;;;;; yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle
-;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17851
-;;;;;; 10841))
+;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17713
+;;;;;; 5306))
;;; Generated autoloads from rect.el
(autoload (quote move-to-column-force) "rect" "\
;;;***
\f
-;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17851
-;;;;;; 10872))
+;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17817
+;;;;;; 14128))
;;; Generated autoloads from textmodes/refill.el
(autoload (quote refill-mode) "refill" "\
;;;***
\f
;;;### (autoloads (reftex-reset-scanning-information reftex-mode
-;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17851 10872))
+;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17405 10316))
;;; Generated autoloads from textmodes/reftex.el
(autoload (quote turn-on-reftex) "reftex" "\
;;;***
\f
;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
-;;;;;; (17851 10872))
+;;;;;; (17817 14128))
;;; Generated autoloads from textmodes/reftex-cite.el
(autoload (quote reftex-citation) "reftex-cite" "\
;;;***
\f
;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el"
-;;;;;; (17851 10872))
+;;;;;; (17817 14128))
;;; Generated autoloads from textmodes/reftex-global.el
(autoload (quote reftex-isearch-minor-mode) "reftex-global" "\
;;;***
\f
;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el"
-;;;;;; (17851 10872))
+;;;;;; (17817 14128))
;;; Generated autoloads from textmodes/reftex-index.el
(autoload (quote reftex-index-phrases-mode) "reftex-index" "\
;;;***
\f
;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
-;;;;;; (17851 10872))
+;;;;;; (17817 14128))
;;; Generated autoloads from textmodes/reftex-parse.el
(autoload (quote reftex-all-document-files) "reftex-parse" "\
;;;***
\f
-;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17851
-;;;;;; 10872))
+;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17817
+;;;;;; 14129))
;;; Generated autoloads from textmodes/reftex-vars.el
(put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
(put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
;;;***
\f
;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el"
-;;;;;; (17851 10853))
+;;;;;; (17817 13982))
;;; Generated autoloads from emacs-lisp/regexp-opt.el
(autoload (quote regexp-opt) "regexp-opt" "\
;;;***
\f
-;;;### (autoloads (repeat) "repeat" "repeat.el" (17851 10841))
+;;;### (autoloads (repeat) "repeat" "repeat.el" (17817 13977))
;;; Generated autoloads from repeat.el
(autoload (quote repeat) "repeat" "\
;;;***
\f
;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el"
-;;;;;; (17851 10862))
+;;;;;; (17817 14120))
;;; Generated autoloads from mail/reporter.el
(autoload (quote reporter-submit-bug-report) "reporter" "\
;;;***
\f
;;;### (autoloads (reposition-window) "reposition" "reposition.el"
-;;;;;; (17851 10841))
+;;;;;; (17817 13977))
;;; Generated autoloads from reposition.el
(autoload (quote reposition-window) "reposition" "\
;;;***
\f
-;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17851
-;;;;;; 10841))
+;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17817
+;;;;;; 13977))
;;; Generated autoloads from resume.el
(autoload (quote resume-suspend-hook) "resume" "\
;;;***
\f
;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el"
-;;;;;; (17851 10841))
+;;;;;; (17496 38723))
;;; Generated autoloads from reveal.el
(autoload (quote reveal-mode) "reveal" "\
Non-nil if Global-Reveal mode is enabled.
See the command `global-reveal-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-reveal-mode'.")
+use either \\[customize] or the function `global-reveal-mode'.")
-(custom-autoload (quote global-reveal-mode) "reveal" nil)
+(custom-autoload (quote global-reveal-mode) "reveal")
(autoload (quote global-reveal-mode) "reveal" "\
Toggle Reveal mode in all buffers on or off.
;;;***
\f
;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el"
-;;;;;; (17851 10853))
+;;;;;; (17817 13982))
;;; Generated autoloads from emacs-lisp/ring.el
(autoload (quote ring-p) "ring" "\
;;;***
\f
-;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17851 10864))
+;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17817 14122))
;;; Generated autoloads from net/rlogin.el
(add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)")
;;;;;; rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output
;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers
;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names
-;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17851
-;;;;;; 10862))
+;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17778
+;;;;;; 50475))
;;; Generated autoloads from mail/rmail.el
(autoload (quote rmail-movemail-variant-p) "rmail" "\
;;;***
\f
;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el"
-;;;;;; (17851 10862))
+;;;;;; (17390 26943))
;;; Generated autoloads from mail/rmailedit.el
(autoload (quote rmail-edit-current-message) "rmailedit" "\
\f
;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message
;;;;;; rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd"
-;;;;;; "mail/rmailkwd.el" (17851 10862))
+;;;;;; "mail/rmailkwd.el" (17390 26943))
;;; Generated autoloads from mail/rmailkwd.el
(autoload (quote rmail-add-label) "rmailkwd" "\
;;;***
\f
;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el"
-;;;;;; (17851 10862))
+;;;;;; (17817 14120))
;;; Generated autoloads from mail/rmailmsc.el
(autoload (quote set-rmail-inbox-list) "rmailmsc" "\
\f
;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output
;;;;;; rmail-output-to-rmail-file rmail-output-file-alist) "rmailout"
-;;;;;; "mail/rmailout.el" (17851 10862))
+;;;;;; "mail/rmailout.el" (17778 50475))
;;; Generated autoloads from mail/rmailout.el
(defvar rmail-output-file-alist nil "\
\f
;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent
;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject
-;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17851
-;;;;;; 10862))
+;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17390
+;;;;;; 26943))
;;; Generated autoloads from mail/rmailsort.el
(autoload (quote rmail-sort-by-date) "rmailsort" "\
;;;;;; rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp
;;;;;; rmail-summary-by-recipients rmail-summary-by-labels rmail-summary
;;;;;; rmail-summary-line-count-flag rmail-summary-scroll-between-messages)
-;;;;;; "rmailsum" "mail/rmailsum.el" (17851 10862))
+;;;;;; "rmailsum" "mail/rmailsum.el" (17427 42815))
;;; Generated autoloads from mail/rmailsum.el
(defvar rmail-summary-scroll-between-messages t "\
*Non-nil means Rmail summary scroll commands move between messages.")
-(custom-autoload (quote rmail-summary-scroll-between-messages) "rmailsum" t)
+(custom-autoload (quote rmail-summary-scroll-between-messages) "rmailsum")
(defvar rmail-summary-line-count-flag t "\
*Non-nil means Rmail summary should show the number of lines in each message.")
-(custom-autoload (quote rmail-summary-line-count-flag) "rmailsum" t)
+(custom-autoload (quote rmail-summary-line-count-flag) "rmailsum")
(autoload (quote rmail-summary) "rmailsum" "\
Display a summary of all messages, one line per message.
Setting this variable has an effect only before reading a mail.")
-(custom-autoload (quote rmail-user-mail-address-regexp) "rmailsum" t)
+(custom-autoload (quote rmail-user-mail-address-regexp) "rmailsum")
+
+;;;***
+\f
+;;;### (autoloads (news-post-news) "rnewspost" "obsolete/rnewspost.el"
+;;;;;; (17817 14123))
+;;; Generated autoloads from obsolete/rnewspost.el
+
+(autoload (quote news-post-news) "rnewspost" "\
+Begin editing a new USENET news article to be posted.
+Type \\[describe-mode] once editing the article to get a list of commands.
+If NOQUERY is non-nil, we do not query before doing the work.
+
+\(fn &optional NOQUERY)" t nil)
;;;***
\f
;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region
-;;;;;; rot13-string rot13) "rot13" "rot13.el" (17851 10841))
+;;;;;; rot13-string rot13) "rot13" "rot13.el" (17817 13977))
;;; Generated autoloads from rot13.el
(autoload (quote rot13) "rot13" "\
;;;***
\f
-;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17851
-;;;;;; 10841))
+;;;### (autoloads (resize-minibuffer-mode resize-minibuffer-frame-exactly
+;;;;;; resize-minibuffer-frame-max-height resize-minibuffer-frame
+;;;;;; resize-minibuffer-window-exactly resize-minibuffer-window-max-height
+;;;;;; resize-minibuffer-mode) "rsz-mini" "obsolete/rsz-mini.el"
+;;;;;; (17817 14123))
+;;; Generated autoloads from obsolete/rsz-mini.el
+
+(defvar resize-minibuffer-mode nil "\
+*This variable is obsolete.")
+
+(custom-autoload (quote resize-minibuffer-mode) "rsz-mini" t)
+
+(defvar resize-minibuffer-window-max-height nil "\
+*This variable is obsolete.")
+
+(custom-autoload (quote resize-minibuffer-window-max-height) "rsz-mini" t)
+
+(defvar resize-minibuffer-window-exactly t "\
+*This variable is obsolete.")
+
+(custom-autoload (quote resize-minibuffer-window-exactly) "rsz-mini" t)
+
+(defvar resize-minibuffer-frame nil "\
+*This variable is obsolete.")
+
+(custom-autoload (quote resize-minibuffer-frame) "rsz-mini" t)
+
+(defvar resize-minibuffer-frame-max-height nil "\
+*This variable is obsolete.")
+
+(custom-autoload (quote resize-minibuffer-frame-max-height) "rsz-mini" t)
+
+(defvar resize-minibuffer-frame-exactly t "\
+*This variable is obsolete.")
+
+(custom-autoload (quote resize-minibuffer-frame-exactly) "rsz-mini" t)
+
+(autoload (quote resize-minibuffer-mode) "rsz-mini" "\
+This function is obsolete.
+
+\(fn &optional PREFIX)" t nil)
+
+;;;***
+\f
+;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17778
+;;;;;; 50476))
;;; Generated autoloads from ruler-mode.el
(autoload (quote ruler-mode) "ruler-mode" "\
;;;***
\f
-;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17851
-;;;;;; 10853))
+;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17418
+;;;;;; 6751))
;;; Generated autoloads from emacs-lisp/rx.el
(autoload (quote rx-to-string) "rx" "\
;;;***
\f
;;;### (autoloads (savehist-mode savehist-mode) "savehist" "savehist.el"
-;;;;;; (17851 10841))
+;;;;;; (17466 28165))
;;; Generated autoloads from savehist.el
(defvar savehist-mode nil "\
;;;***
\f
;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el"
-;;;;;; (17851 10869))
+;;;;;; (17390 27409))
;;; Generated autoloads from progmodes/scheme.el
(autoload (quote scheme-mode) "scheme" "\
;;;***
\f
;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el"
-;;;;;; (17851 10859))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/score-mode.el
(autoload (quote gnus-score-mode) "score-mode" "\
\(fn)" t nil)
+;;;***
+\f
+;;;### (autoloads (scribe-mode) "scribe" "obsolete/scribe.el" (17817
+;;;;;; 14123))
+;;; Generated autoloads from obsolete/scribe.el
+
+(autoload (quote scribe-mode) "scribe" "\
+Major mode for editing files of Scribe (a text formatter) source.
+Scribe-mode is similar to text-mode, with a few extra commands added.
+\\{scribe-mode-map}
+
+Interesting variables:
+
+`scribe-fancy-paragraphs'
+ Non-nil makes Scribe mode use a different style of paragraph separation.
+
+`scribe-electric-quote'
+ Non-nil makes insert of double quote use `` or '' depending on context.
+
+`scribe-electric-parenthesis'
+ Non-nil makes an open-parenthesis char (one of `([<{')
+ automatically insert its close if typed after an @Command form.
+
+\(fn)" t nil)
+
;;;***
\f
;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el"
-;;;;;; (17851 10841))
+;;;;;; (17817 13977))
;;; Generated autoloads from scroll-all.el
(defvar scroll-all-mode nil "\
;;;***
\f
;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el"
-;;;;;; (17851 10842))
+;;;;;; (17390 26945))
;;; Generated autoloads from scroll-lock.el
(autoload (quote scroll-lock-mode) "scroll-lock" "\
;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name
;;;;;; mail-header-separator send-mail-function mail-interactive
;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style)
-;;;;;; "sendmail" "mail/sendmail.el" (17851 10862))
+;;;;;; "sendmail" "mail/sendmail.el" (17713 5990))
;;; Generated autoloads from mail/sendmail.el
(defvar mail-from-style (quote angles) "\
;;;***
\f
-;;;### (autoloads (server-mode server-start) "server" "server.el"
-;;;;;; (17851 42899))
+;;;### (autoloads (server-save-buffers-kill-terminal server-mode
+;;;;;; server-start) "server" "server.el" (17778 59051))
;;; Generated autoloads from server.el
(autoload (quote server-start) "server" "\
Allow this Emacs process to be a server for client processes.
This starts a server communications subprocess through which
-client \"editors\" can send your editing commands to this Emacs job.
-To use the server, set up the program `emacsclient' in the
+client \"editors\" can send your editing commands to this Emacs
+job. To use the server, set up the program `emacsclient' in the
Emacs distribution as your standard \"editor\".
-Optional argument LEAVE-DEAD (interactively, a prefix arg) means just
-kill any existing server communications subprocess.
+Prefix arg LEAVE-DEAD means just kill any existing server
+communications subprocess.
\(fn &optional LEAVE-DEAD)" t nil)
\(fn &optional ARG)" t nil)
+(autoload (quote server-save-buffers-kill-terminal) "server" "\
+Offer to save each buffer, then kill PROC.
+
+With prefix arg, silently save all file-visiting buffers, then kill.
+
+If emacsclient was started with a list of filenames to edit, then
+only these files will be asked to be saved.
+
+\(fn PROC &optional ARG)" nil nil)
+
;;;***
\f
-;;;### (autoloads (ses-mode) "ses" "ses.el" (17851 10843))
+;;;### (autoloads (ses-mode) "ses" "ses.el" (17778 50477))
;;; Generated autoloads from ses.el
(autoload (quote ses-mode) "ses" "\
;;;***
\f
;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
-;;;;;; (17851 10873))
+;;;;;; (17817 13959))
;;; Generated autoloads from textmodes/sgml-mode.el
(autoload (quote sgml-mode) "sgml-mode" "\
;;;***
\f
;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
-;;;;;; (17851 10870))
+;;;;;; (17817 16152))
;;; Generated autoloads from progmodes/sh-script.el
(put 'sh-shell 'safe-local-variable 'symbolp)
;;;***
\f
-;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17851 10859))
+;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17383 38805))
;;; Generated autoloads from gnus/sha1.el
(autoload (quote sha1) "sha1" "\
;;;***
\f
;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el"
-;;;;;; (17854 10614))
+;;;;;; (17817 13982))
;;; Generated autoloads from emacs-lisp/shadow.el
(autoload (quote list-load-path-shadows) "shadow" "\
Display a list of Emacs Lisp files that shadow other files.
-This function lists potential load path problems. Directories in
-the `load-path' variable are searched, in order, for Emacs Lisp
+This function lists potential load-path problems. Directories in the
+`load-path' variable are searched, in order, for Emacs Lisp
files. When a previously encountered file name is found again, a
message is displayed indicating that the later file is \"hidden\" by
the earlier.
;;;***
\f
;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group
-;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17851
-;;;;;; 10843))
+;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17778
+;;;;;; 50477))
;;; Generated autoloads from shadowfile.el
(autoload (quote shadow-define-cluster) "shadowfile" "\
;;;***
\f
;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el"
-;;;;;; (17851 10843))
+;;;;;; (17817 15738))
;;; Generated autoloads from shell.el
(defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\
;;;***
\f
;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage)
-;;;;;; "sieve" "gnus/sieve.el" (17851 10860))
+;;;;;; "sieve" "gnus/sieve.el" (17383 38805))
;;; Generated autoloads from gnus/sieve.el
(autoload (quote sieve-manage) "sieve" "\
;;;***
\f
;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el"
-;;;;;; (17851 10860))
+;;;;;; (17383 38805))
;;; Generated autoloads from gnus/sieve-mode.el
(autoload (quote sieve-mode) "sieve-mode" "\
;;;***
\f
-;;;### (autoloads nil "simple" "simple.el" (17880 31192))
+;;;### (autoloads nil "simple" "simple.el" (17817 16152))
;;; Generated autoloads from simple.el
(put 'fill-prefix 'safe-local-variable 'string-or-null-p)
;;;***
\f
-;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17851
-;;;;;; 10870))
+;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17817
+;;;;;; 14147))
;;; Generated autoloads from progmodes/simula.el
(autoload (quote simula-mode) "simula" "\
;;;***
\f
;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new
-;;;;;; define-skeleton) "skeleton" "skeleton.el" (17851 10843))
+;;;;;; define-skeleton) "skeleton" "skeleton.el" (17817 13977))
;;; Generated autoloads from skeleton.el
(defvar skeleton-filter-function (quote identity) "\
;;;***
\f
;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el"
-;;;;;; (17851 10844))
+;;;;;; (17496 38723))
;;; Generated autoloads from smerge-mode.el
(autoload (quote smerge-ediff) "smerge-mode" "\
;;;***
\f
;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el"
-;;;;;; (17875 18095))
+;;;;;; (17441 26811))
;;; Generated autoloads from gnus/smiley.el
(autoload (quote smiley-region) "smiley" "\
;;;***
\f
;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
-;;;;;; "mail/smtpmail.el" (17868 41435))
+;;;;;; "mail/smtpmail.el" (17778 50475))
;;; Generated autoloads from mail/smtpmail.el
(autoload (quote smtpmail-send-it) "smtpmail" "\
;;;***
\f
-;;;### (autoloads (snake) "snake" "play/snake.el" (17851 10866))
+;;;### (autoloads (snake) "snake" "play/snake.el" (17817 14125))
;;; Generated autoloads from play/snake.el
(autoload (quote snake) "snake" "\
;;;***
\f
;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el"
-;;;;;; (17851 10864))
+;;;;;; (17817 14122))
;;; Generated autoloads from net/snmp-mode.el
(autoload (quote snmp-mode) "snmp-mode" "\
\f
;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name
;;;;;; calendar-longitude calendar-latitude calendar-time-display-form)
-;;;;;; "solar" "calendar/solar.el" (17851 10852))
+;;;;;; "solar" "calendar/solar.el" (17390 27324))
;;; Generated autoloads from calendar/solar.el
(defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\
;;;***
\f
-;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17851
-;;;;;; 10866))
+;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17817
+;;;;;; 14125))
;;; Generated autoloads from play/solitaire.el
(autoload (quote solitaire) "solitaire" "\
\f
;;;### (autoloads (reverse-region sort-columns sort-regexp-fields
;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs
-;;;;;; sort-lines sort-subr) "sort" "sort.el" (17851 10844))
+;;;;;; sort-lines sort-subr) "sort" "sort.el" (17817 13977))
;;; Generated autoloads from sort.el
(autoload (quote sort-subr) "sort" "\
;;;***
\f
-;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17851
-;;;;;; 10860))
+;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17817
+;;;;;; 16940))
;;; Generated autoloads from gnus/spam.el
(autoload (quote spam-initialize) "spam" "\
\f
;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file
;;;;;; spam-report-url-ping-mm-url spam-report-process-queue) "spam-report"
-;;;;;; "gnus/spam-report.el" (17851 10860))
+;;;;;; "gnus/spam-report.el" (17390 27306))
;;; Generated autoloads from gnus/spam-report.el
(autoload (quote spam-report-process-queue) "spam-report" "\
;;;***
\f
;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar"
-;;;;;; "speedbar.el" (17882 17519))
+;;;;;; "speedbar.el" (17778 50477))
;;; Generated autoloads from speedbar.el
(defalias (quote speedbar) (quote speedbar-frame-mode))
(autoload (quote speedbar-frame-mode) "speedbar" "\
Enable or disable speedbar. Positive ARG means turn on, negative turn off.
-A nil ARG means toggle. Once the speedbar frame is activated, a buffer in
+nil means toggle. Once the speedbar frame is activated, a buffer in
`speedbar-mode' will be displayed. Currently, only one speedbar is
supported at a time.
`speedbar-before-popup-hook' is called before popping up the speedbar frame.
;;;***
\f
;;;### (autoloads (spell-string spell-region spell-word spell-buffer)
-;;;;;; "spell" "textmodes/spell.el" (17851 10873))
+;;;;;; "spell" "textmodes/spell.el" (17817 14129))
;;; Generated autoloads from textmodes/spell.el
(put (quote spell-filter) (quote risky-local-variable) t)
;;;***
\f
-;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17851
-;;;;;; 10866))
+;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17817
+;;;;;; 14125))
;;; Generated autoloads from play/spook.el
(autoload (quote spook) "spook" "\
;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres
;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
;;;;;; sql-sybase sql-oracle sql-product-interactive sql-mode sql-help
-;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17851
-;;;;;; 10870))
+;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17817
+;;;;;; 16161))
;;; Generated autoloads from progmodes/sql.el
(autoload (quote sql-add-product-keywords) "sql" "\
;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes
;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke
;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke
-;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17851
-;;;;;; 10844))
+;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17817
+;;;;;; 13977))
;;; Generated autoloads from strokes.el
(autoload (quote strokes-global-set-stroke) "strokes" "\
;;;***
\f
;;;### (autoloads (studlify-buffer studlify-word studlify-region)
-;;;;;; "studly" "play/studly.el" (17504 41540))
+;;;;;; "studly" "play/studly.el" (17279 27079))
;;; Generated autoloads from play/studly.el
(autoload (quote studlify-region) "studly" "\
;;;***
\f
-;;;### (autoloads (locate-library) "subr" "subr.el" (17868 65234))
+;;;### (autoloads (locate-library) "subr" "subr.el" (17817 15467))
;;; Generated autoloads from subr.el
(autoload (quote locate-library) "subr" "\
;;;***
\f
;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el"
-;;;;;; (17854 10614))
+;;;;;; (17817 14120))
;;; Generated autoloads from mail/supercite.el
(autoload (quote sc-cite-original) "supercite" "\
;;;***
\f
-;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17851 10844))
+;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17778 50477))
;;; Generated autoloads from t-mouse.el
(defvar t-mouse-mode nil "\
;;;***
\f
-;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17851 10844))
+;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17817 13977))
;;; Generated autoloads from tabify.el
(autoload (quote untabify) "tabify" "\
;;;;;; table-recognize table-insert-row-column table-insert-column
;;;;;; table-insert-row table-insert table-point-left-cell-hook
;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook)
-;;;;;; "table" "textmodes/table.el" (17851 10873))
+;;;;;; "table" "textmodes/table.el" (17778 50479))
;;; Generated autoloads from textmodes/table.el
(defvar table-cell-map-hook nil "\
;;;***
\f
-;;;### (autoloads (talk-connect) "talk" "talk.el" (17851 10845))
+;;;### (autoloads (talk talk-connect) "talk" "talk.el" (17817 13977))
;;; Generated autoloads from talk.el
(autoload (quote talk-connect) "talk" "\
\(fn DISPLAY)" t nil)
+(autoload (quote talk) "talk" "\
+Connect to the Emacs talk group from the current X display or tty frame.
+
+\(fn)" t nil)
+
;;;***
\f
-;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17851 10845))
+;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17778 50477))
;;; Generated autoloads from tar-mode.el
(autoload (quote tar-mode) "tar-mode" "\
;;;***
\f
;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl"
-;;;;;; "progmodes/tcl.el" (17851 10870))
+;;;;;; "progmodes/tcl.el" (17478 25206))
;;; Generated autoloads from progmodes/tcl.el
(autoload (quote tcl-mode) "tcl" "\
;;;***
\f
-;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17851 10864))
+;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17817 14122))
;;; Generated autoloads from net/telnet.el
(add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)")
;;;***
\f
-;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17884
-;;;;;; 57195))
+;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17817
+;;;;;; 13977))
;;; Generated autoloads from term.el
(autoload (quote make-term) "term" "\
;;;***
\f
-;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17851
-;;;;;; 10845))
+;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17817
+;;;;;; 13977))
;;; Generated autoloads from terminal.el
(autoload (quote terminal-emulator) "terminal" "\
;;;***
\f
;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
-;;;;;; (17851 10853))
+;;;;;; (17390 26938))
;;; Generated autoloads from emacs-lisp/testcover.el
(autoload (quote testcover-this-defun) "testcover" "\
;;;***
\f
-;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17852 64479))
+;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17817 14126))
;;; Generated autoloads from play/tetris.el
(autoload (quote tetris) "tetris" "\
;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command
;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
-;;;;;; (17851 10873))
+;;;;;; (17817 14129))
;;; Generated autoloads from textmodes/tex-mode.el
(defvar tex-shell-file-name nil "\
;;;***
\f
;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer)
-;;;;;; "texinfmt" "textmodes/texinfmt.el" (17851 10873))
+;;;;;; "texinfmt" "textmodes/texinfmt.el" (17778 50479))
;;; Generated autoloads from textmodes/texinfmt.el
(autoload (quote texinfo-format-buffer) "texinfmt" "\
;;;***
\f
;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote)
-;;;;;; "texinfo" "textmodes/texinfo.el" (17851 10873))
+;;;;;; "texinfo" "textmodes/texinfo.el" (17390 26946))
;;; Generated autoloads from textmodes/texinfo.el
(defvar texinfo-open-quote "``" "\
*String inserted by typing \\[texinfo-insert-quote] to open a quotation.")
-(custom-autoload (quote texinfo-open-quote) "texinfo" t)
+(custom-autoload (quote texinfo-open-quote) "texinfo")
(defvar texinfo-close-quote "''" "\
*String inserted by typing \\[texinfo-insert-quote] to close a quotation.")
-(custom-autoload (quote texinfo-close-quote) "texinfo" t)
+(custom-autoload (quote texinfo-close-quote) "texinfo")
(autoload (quote texinfo-mode) "texinfo" "\
Major mode for editing Texinfo files.
;;;### (autoloads (thai-auto-composition-mode thai-composition-function
;;;;;; thai-post-read-conversion thai-compose-buffer thai-compose-string
;;;;;; thai-compose-region) "thai-util" "language/thai-util.el"
-;;;;;; (17851 10861))
+;;;;;; (17817 15478))
;;; Generated autoloads from language/thai-util.el
(autoload (quote thai-compose-region) "thai-util" "\
\f
;;;### (autoloads (list-at-point number-at-point symbol-at-point
;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
-;;;;;; "thingatpt" "thingatpt.el" (17851 10845))
+;;;;;; "thingatpt" "thingatpt.el" (17817 13977))
;;; Generated autoloads from thingatpt.el
(autoload (quote forward-thing) "thingatpt" "\
\f
;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked
;;;;;; thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el"
-;;;;;; (17851 10845))
+;;;;;; (17591 9719))
;;; Generated autoloads from thumbs.el
(autoload (quote thumbs-find-thumb) "thumbs" "\
;;;;;; tibetan-composition-function tibetan-decompose-string tibetan-decompose-region
;;;;;; tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan
;;;;;; tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util"
-;;;;;; "language/tibet-util.el" (17851 10861))
+;;;;;; "language/tibet-util.el" (17817 15478))
;;; Generated autoloads from language/tibet-util.el
(autoload (quote tibetan-char-p) "tibet-util" "\
;;;***
\f
;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el"
-;;;;;; (17851 10873))
+;;;;;; (17817 14129))
;;; Generated autoloads from textmodes/tildify.el
(autoload (quote tildify-region) "tildify" "\
;;;***
\f
;;;### (autoloads (display-time-mode display-time display-time-day-and-date)
-;;;;;; "time" "time.el" (17851 10845))
+;;;;;; "time" "time.el" (17713 5993))
;;; Generated autoloads from time.el
(defvar display-time-day-and-date nil "\
;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year
;;;;;; date-leap-year-p days-between date-to-day time-add time-subtract
;;;;;; time-since days-to-time time-less-p seconds-to-time time-to-seconds
-;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17851
-;;;;;; 10852))
+;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17390
+;;;;;; 27324))
;;; Generated autoloads from calendar/time-date.el
(autoload (quote date-to-time) "time-date" "\
;;;***
\f
;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp"
-;;;;;; "time-stamp.el" (17851 10845))
+;;;;;; "time-stamp.el" (17778 50479))
;;; Generated autoloads from time-stamp.el
(put 'time-stamp-format 'safe-local-variable 'stringp)
(put 'time-stamp-line-limit 'safe-local-variable 'integerp)
;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in
;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
-;;;;;; (17851 10852))
+;;;;;; (17713 4915))
;;; Generated autoloads from calendar/timeclock.el
(autoload (quote timeclock-modeline-display) "timeclock" "\
\f
;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer
;;;;;; run-at-time cancel-function-timers cancel-timer) "timer"
-;;;;;; "emacs-lisp/timer.el" (17851 10853))
+;;;;;; "emacs-lisp/timer.el" (17817 13982))
;;; Generated autoloads from emacs-lisp/timer.el
(defalias (quote disable-timeout) (quote cancel-timer))
;;;***
\f
;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv"
-;;;;;; "international/titdic-cnv.el" (17871 15753))
+;;;;;; "international/titdic-cnv.el" (17817 15478))
;;; Generated autoloads from international/titdic-cnv.el
(autoload (quote titdic-convert) "titdic-cnv" "\
;;;***
\f
;;;### (autoloads (tamil-composition-function tamil-post-read-conversion
-;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17851
-;;;;;; 10861))
+;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17817
+;;;;;; 14146))
;;; Generated autoloads from language/tml-util.el
(autoload (quote tamil-compose-region) "tml-util" "\
;;;***
\f
;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm"
-;;;;;; "tmm.el" (17851 10845))
+;;;;;; "tmm.el" (17778 50479))
;;; Generated autoloads from tmm.el
(define-key global-map "\M-`" 'tmm-menubar)
- (define-key global-map [f10] 'tmm-menubar)
(define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse)
(autoload (quote tmm-menubar) "tmm" "\
\f
;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities
;;;;;; todo-insert-item todo-add-item-non-interactively todo-add-category)
-;;;;;; "todo-mode" "calendar/todo-mode.el" (17851 10852))
+;;;;;; "todo-mode" "calendar/todo-mode.el" (17390 27324))
;;; Generated autoloads from calendar/todo-mode.el
(autoload (quote todo-add-category) "todo-mode" "\
;;;***
\f
;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu
-;;;;;; tool-bar-local-item tool-bar-add-item) "tool-bar" "tool-bar.el"
-;;;;;; (17851 10845))
+;;;;;; tool-bar-local-item tool-bar-add-item toggle-tool-bar-mode-from-frame)
+;;;;;; "tool-bar" "tool-bar.el" (17496 38966))
;;; Generated autoloads from tool-bar.el
+(autoload (quote toggle-tool-bar-mode-from-frame) "tool-bar" "\
+Toggle tool bar on or off, based on the status of the current frame.
+See `tool-bar-mode' for more information.
+
+\(fn &optional ARG)" t nil)
+
(put (quote tool-bar-mode) (quote standard-value) (quote (t)))
(autoload (quote tool-bar-add-item) "tool-bar" "\
;;;***
\f
;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
-;;;;;; (17851 10853))
+;;;;;; (17817 13982))
;;; Generated autoloads from emulation/tpu-edt.el
(defvar tpu-edt-mode nil "\
;;;***
\f
;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins)
-;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17851 10853))
+;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17817 13982))
;;; Generated autoloads from emulation/tpu-extras.el
(autoload (quote tpu-set-scroll-margins) "tpu-extras" "\
;;;***
\f
-;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17851 10853))
+;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17817 13982))
;;; Generated autoloads from emacs-lisp/tq.el
(autoload (quote tq-create) "tq" "\
;;;***
\f
;;;### (autoloads (trace-function-background trace-function trace-buffer)
-;;;;;; "trace" "emacs-lisp/trace.el" (17851 10853))
+;;;;;; "trace" "emacs-lisp/trace.el" (17817 13982))
;;; Generated autoloads from emacs-lisp/trace.el
(defvar trace-buffer "*trace-output*" "\
;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
;;;;;; tramp-file-name-handler tramp-completion-file-name-regexp
-;;;;;; tramp-file-name-regexp) "tramp" "net/tramp.el" (17872 44165))
+;;;;;; tramp-file-name-regexp) "tramp" "net/tramp.el" (17817 16949))
;;; Generated autoloads from net/tramp.el
(defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\
(autoload (quote tramp-completion-handle-file-name-all-completions) "tramp" "\
Like `file-name-all-completions' for partial tramp files.
-\(fn FILENAME DIRECTORY)" nil nil)
+\(fn FILENAME DIRECTORY &optional PREDICATE)" nil nil)
(autoload (quote tramp-completion-handle-file-name-completion) "tramp" "\
Like `file-name-completion' for tramp files.
;;;***
\f
;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el"
-;;;;;; (17851 10864))
+;;;;;; (17374 21429))
;;; Generated autoloads from net/tramp-ftp.el
(autoload (quote tramp-ftp-enable-ange-ftp) "tramp-ftp" "\
;;;;;; tumme-display-thumb tumme-display-thumbs-append tumme-setup-dired-keybindings
;;;;;; tumme-jump-thumbnail-buffer tumme-delete-tag tumme-tag-files
;;;;;; tumme-show-all-from-dir tumme-display-thumbs tumme-dired-with-window-configuration
-;;;;;; tumme-dired-insert-marked-thumbs) "tumme" "tumme.el" (17851
-;;;;;; 10847))
+;;;;;; tumme-dired-insert-marked-thumbs) "tumme" "tumme.el" (17713
+;;;;;; 5410))
;;; Generated autoloads from tumme.el
(autoload (quote tumme-dired-insert-marked-thumbs) "tumme" "\
;;;***
\f
-;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (17856
-;;;;;; 1486))
+;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (17817
+;;;;;; 16152))
;;; Generated autoloads from tutorial.el
(autoload (quote help-with-tutorial) "tutorial" "\
;;;***
\f
;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column"
-;;;;;; "textmodes/two-column.el" (17851 10873))
+;;;;;; "textmodes/two-column.el" (17817 14129))
;;; Generated autoloads from textmodes/two-column.el
(autoload '2C-command "two-column" () t 'keymap)
(global-set-key "\C-x6" '2C-command)
;;;;;; type-break type-break-mode type-break-keystroke-threshold
;;;;;; type-break-good-break-interval type-break-good-rest-interval
;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el"
-;;;;;; (17855 40306))
+;;;;;; (17817 13977))
;;; Generated autoloads from type-break.el
(defvar type-break-mode nil "\
;;;***
\f
;;;### (autoloads (ununderline-region underline-region) "underline"
-;;;;;; "textmodes/underline.el" (17851 10873))
+;;;;;; "textmodes/underline.el" (17817 14129))
;;; Generated autoloads from textmodes/underline.el
(autoload (quote underline-region) "underline" "\
;;;***
\f
;;;### (autoloads (unforward-rmail-message undigestify-rmail-message)
-;;;;;; "undigest" "mail/undigest.el" (17851 10862))
+;;;;;; "undigest" "mail/undigest.el" (17817 14120))
;;; Generated autoloads from mail/undigest.el
(autoload (quote undigestify-rmail-message) "undigest" "\
;;;***
\f
;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el"
-;;;;;; (17851 10862))
+;;;;;; (17817 14120))
;;; Generated autoloads from mail/unrmail.el
(autoload (quote batch-unrmail) "unrmail" "\
;;;***
\f
-;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17851
-;;;;;; 10853))
+;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17405
+;;;;;; 10313))
;;; Generated autoloads from emacs-lisp/unsafep.el
(autoload (quote unsafep) "unsafep" "\
;;;***
\f
;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url"
-;;;;;; "url/url.el" (17851 10875))
+;;;;;; "url/url.el" (17817 13984))
;;; Generated autoloads from url/url.el
(autoload (quote url-retrieve) "url" "\
;;;***
\f
;;;### (autoloads (url-register-auth-scheme url-get-authentication)
-;;;;;; "url-auth" "url/url-auth.el" (17854 10614))
+;;;;;; "url-auth" "url/url-auth.el" (17383 38807))
;;; Generated autoloads from url/url-auth.el
(autoload (quote url-get-authentication) "url-auth" "\
representing the type (basic, digest, etc), or nil or the symbol 'any'
to specify that any authentication is acceptable. If requesting 'any'
the strongest matching authentication will be returned. If this is
- wrong, its no big deal, the error from the server will specify exactly
+ wrong, it's no big deal, the error from the server will specify exactly
what type of auth to use
PROMPT is boolean - specifies whether to ask the user for a username/password
if one cannot be found in the cache
;;;***
\f
;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached
-;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17851
-;;;;;; 10873))
+;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17337
+;;;;;; 56256))
;;; Generated autoloads from url/url-cache.el
(autoload (quote url-store-in-cache) "url-cache" "\
;;;***
\f
-;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17851 10873))
+;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17383 38807))
;;; Generated autoloads from url/url-cid.el
(autoload (quote url-cid) "url-cid" "\
;;;***
\f
;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav"
-;;;;;; "url/url-dav.el" (17851 10873))
+;;;;;; "url/url-dav.el" (17713 5993))
;;; Generated autoloads from url/url-dav.el
(autoload (quote url-dav-supported-p) "url-dav" "\
;;;***
\f
-;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17851
-;;;;;; 10873))
+;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17383
+;;;;;; 38807))
;;; Generated autoloads from url/url-file.el
(autoload (quote url-file) "url-file" "\
;;;***
\f
;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw"
-;;;;;; "url/url-gw.el" (17851 10873))
+;;;;;; "url/url-gw.el" (17817 14148))
;;; Generated autoloads from url/url-gw.el
(autoload (quote url-gateway-nslookup-host) "url-gw" "\
;;;***
\f
;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file
-;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17851
-;;;;;; 10873))
+;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17713
+;;;;;; 5734))
;;; Generated autoloads from url/url-handlers.el
(defvar url-handler-mode nil "\
;;;***
\f
;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
-;;;;;; url-http) "url-http" "url/url-http.el" (17861 9844))
+;;;;;; url-http) "url-http" "url/url-http.el" (17817 13984))
;;; Generated autoloads from url/url-http.el
(autoload (quote url-http) "url-http" "\
;;;***
\f
-;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17851 10873))
+;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17591 9873))
;;; Generated autoloads from url/url-irc.el
(autoload (quote url-irc) "url-irc" "\
;;;***
\f
-;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17851
-;;;;;; 10873))
+;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17383
+;;;;;; 38807))
;;; Generated autoloads from url/url-ldap.el
(autoload (quote url-ldap) "url-ldap" "\
;;;***
\f
;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
-;;;;;; (17851 10874))
+;;;;;; (17383 38807))
;;; Generated autoloads from url/url-mailto.el
(autoload (quote url-mail) "url-mailto" "\
;;;***
\f
;;;### (autoloads (url-data url-generic-emulator-loader url-info
-;;;;;; url-man) "url-misc" "url/url-misc.el" (17851 10874))
+;;;;;; url-man) "url-misc" "url/url-misc.el" (17383 38807))
;;; Generated autoloads from url/url-misc.el
(autoload (quote url-man) "url-misc" "\
;;;***
\f
;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el"
-;;;;;; (17851 10874))
+;;;;;; (17374 21266))
;;; Generated autoloads from url/url-news.el
(autoload (quote url-news) "url-news" "\
\f
;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable
;;;;;; dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el"
-;;;;;; (17851 10874))
+;;;;;; (17383 38807))
;;; Generated autoloads from url/url-ns.el
(autoload (quote isPlainHostName) "url-ns" "\
;;;***
\f
;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse"
-;;;;;; "url/url-parse.el" (17851 10874))
+;;;;;; "url/url-parse.el" (17778 50479))
;;; Generated autoloads from url/url-parse.el
(autoload (quote url-recreate-url) "url-parse" "\
;;;***
\f
;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el"
-;;;;;; (17851 10874))
+;;;;;; (17350 14840))
;;; Generated autoloads from url/url-privacy.el
(autoload (quote url-setup-privacy-info) "url-privacy" "\
;;;;;; url-strip-leading-spaces url-eat-trailing-space url-get-normalized-date
;;;;;; url-lazy-message url-normalize-url url-insert-entities-in-string
;;;;;; url-parse-args url-debug url-debug) "url-util" "url/url-util.el"
-;;;;;; (17851 10874))
+;;;;;; (17778 50479))
;;; Generated autoloads from url/url-util.el
(defvar url-debug nil "\
;;;***
\f
;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock)
-;;;;;; "userlock" "userlock.el" (17851 10848))
+;;;;;; "userlock" "userlock.el" (17817 13977))
;;; Generated autoloads from userlock.el
(autoload (quote ask-user-about-lock) "userlock" "\
;;;***
\f
-;;;### (autoloads nil "utf-7" "international/utf-7.el" (17851 10861))
+;;;### (autoloads nil "utf-7" "international/utf-7.el" (17817 14143))
;;; Generated autoloads from international/utf-7.el
(autoload-coding-system 'utf-7 '(require 'utf-7))
\f
;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal
;;;;;; uudecode-decode-region-external) "uudecode" "gnus/uudecode.el"
-;;;;;; (17856 1487))
+;;;;;; (17549 5046))
;;; Generated autoloads from gnus/uudecode.el
(autoload (quote uudecode-decode-region-external) "uudecode" "\
;;;;;; vc-directory vc-merge vc-insert-headers vc-version-other-window
;;;;;; vc-diff vc-register vc-next-action vc-do-command edit-vc-file
;;;;;; with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook
-;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17851 10849))
+;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17778 49122))
;;; Generated autoloads from vc.el
(defvar vc-checkout-hook nil "\
;;;***
\f
-;;;### (autoloads nil "vc-arch" "vc-arch.el" (17852 50694))
+;;;### (autoloads nil "vc-arch" "vc-arch.el" (17817 16875))
;;; Generated autoloads from vc-arch.el
(defun vc-arch-registered (file)
(if (vc-find-root file "{arch}/=tagging-method")
;;;***
\f
-;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17851 10848))
+;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17390 26948))
;;; Generated autoloads from vc-cvs.el
(defun vc-cvs-registered (f)
(when (file-readable-p (expand-file-name
;;;***
\f
-;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17851 10848))
+;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17390 26948))
;;; Generated autoloads from vc-mcvs.el
(defun vc-mcvs-registered (file)
(if (vc-find-root file "MCVS/CVS")
;;;***
\f
;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el"
-;;;;;; (17851 10848))
+;;;;;; (17390 26948))
;;; Generated autoloads from vc-rcs.el
(defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
*Where to look for RCS master files.
For a description of possible values, see `vc-check-master-templates'.")
-(custom-autoload (quote vc-rcs-master-templates) "vc-rcs" t)
+(custom-autoload (quote vc-rcs-master-templates) "vc-rcs")
(defun vc-rcs-registered (f) (vc-default-registered 'RCS f))
;;;***
\f
;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el"
-;;;;;; (17851 10848))
+;;;;;; (17390 26948))
;;; Generated autoloads from vc-sccs.el
(defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\
*Where to look for SCCS master files.
For a description of possible values, see `vc-check-master-templates'.")
-(custom-autoload (quote vc-sccs-master-templates) "vc-sccs" t)
+(custom-autoload (quote vc-sccs-master-templates) "vc-sccs")
(defun vc-sccs-registered(f) (vc-default-registered 'SCCS f))
(defun vc-sccs-search-project-dir (dirname basename) "\
;;;***
\f
-;;;### (autoloads nil "vc-svn" "vc-svn.el" (17882 17519))
+;;;### (autoloads nil "vc-svn" "vc-svn.el" (17778 50479))
;;; Generated autoloads from vc-svn.el
(defun vc-svn-registered (f)
(let ((admin-dir (cond ((and (eq system-type 'windows-nt)
- (getenv "SVN_ASP_DOT_NET_HACK"))
- "_svn")
- (t ".svn"))))
+ (getenv "SVN_ASP_DOT_NET_HACK"))
+ "_svn")
+ (t ".svn"))))
(when (file-readable-p (expand-file-name
- (concat admin-dir "/entries")
- (file-name-directory f)))
+ (concat admin-dir "/entries")
+ (file-name-directory f)))
(load "vc-svn")
(vc-svn-registered f))))
;;;***
\f
;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el"
-;;;;;; (17854 10614))
+;;;;;; (17817 13977))
;;; Generated autoloads from progmodes/vhdl-mode.el
(autoload (quote vhdl-mode) "vhdl-mode" "\
;;;***
\f
-;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17806 44346))
+;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17817 14136))
;;; Generated autoloads from emulation/vi.el
(autoload (quote vi-mode) "vi" "\
;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion
;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer
;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util"
-;;;;;; "language/viet-util.el" (17851 10861))
+;;;;;; "language/viet-util.el" (17817 15478))
;;; Generated autoloads from language/viet-util.el
(autoload (quote viet-encode-viscii-char) "viet-util" "\
\f
;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame
;;;;;; view-buffer-other-window view-buffer view-file-other-frame
-;;;;;; view-file-other-window view-file) "view" "view.el" (17851
-;;;;;; 10849))
+;;;;;; view-file-other-window view-file) "view" "view.el" (17390
+;;;;;; 26949))
;;; Generated autoloads from view.el
(defvar view-mode nil "\
;;;***
\f
-;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17851
-;;;;;; 10854))
+;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17817
+;;;;;; 13982))
;;; Generated autoloads from emulation/vip.el
(autoload (quote vip-setup) "vip" "\
;;;***
\f
;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
-;;;;;; (17852 50694))
+;;;;;; (17778 50473))
;;; Generated autoloads from emulation/viper.el
(autoload (quote toggle-viper-mode) "viper" "\
\(fn)" t nil)
(autoload (quote viper-mode) "viper" "\
- Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Viper'.
+ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'.
\(fn)" t nil)
;;;***
\f
;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el"
-;;;;;; (17851 10853))
+;;;;;; (17496 38727))
;;; Generated autoloads from emacs-lisp/warnings.el
(defvar warning-prefix-function nil "\
;;;***
\f
;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
-;;;;;; (17873 19573))
+;;;;;; (17817 14148))
;;; Generated autoloads from wdired.el
(autoload (quote wdired-change-to-wdired-mode) "wdired" "\
;;;***
\f
-;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17851 10865))
+;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17817 14122))
;;; Generated autoloads from net/webjump.el
(autoload (quote webjump) "webjump" "\
;;;***
\f
;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el"
-;;;;;; (17851 10871))
+;;;;;; (17611 10401))
;;; Generated autoloads from progmodes/which-func.el
(put 'which-func-format 'risky-local-variable t)
(put 'which-func-current 'risky-local-variable t)
;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check
;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check
;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el"
-;;;;;; (17851 10849))
+;;;;;; (17817 13977))
;;; Generated autoloads from whitespace.el
(autoload (quote whitespace-toggle-leading-check) "whitespace" "\
;;;***
\f
;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse
-;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17851 10849))
+;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17817 13977))
;;; Generated autoloads from wid-browse.el
(autoload (quote widget-browse-at) "wid-browse" "\
;;;***
\f
;;;### (autoloads (widget-setup widget-insert widget-delete widget-create
-;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17887
-;;;;;; 5449))
+;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17778
+;;;;;; 50479))
;;; Generated autoloads from wid-edit.el
(autoload (quote widgetp) "wid-edit" "\
;;;***
\f
;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right
-;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17851
-;;;;;; 10849))
+;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17817
+;;;;;; 13977))
;;; Generated autoloads from windmove.el
(autoload (quote windmove-left) "windmove" "\
;;;***
\f
;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el"
-;;;;;; (17851 10849))
+;;;;;; (17390 26950))
;;; Generated autoloads from winner.el
(defvar winner-mode nil "\
;;;***
\f
;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman"
-;;;;;; "woman.el" (17851 10849))
+;;;;;; "woman.el" (17817 16161))
;;; Generated autoloads from woman.el
(autoload (quote woman) "woman" "\
;;;***
\f
;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el"
-;;;;;; (17851 10854))
+;;;;;; (17817 13982))
;;; Generated autoloads from emulation/ws-mode.el
(autoload (quote wordstar-mode) "ws-mode" "\
;;;***
\f
;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el"
-;;;;;; (17851 10850))
+;;;;;; (17611 9421))
;;; Generated autoloads from xml.el
(autoload (quote xml-parse-file) "xml" "\
;;;***
\f
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17851
-;;;;;; 10850))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17390
+;;;;;; 26950))
;;; Generated autoloads from xt-mouse.el
(defvar xterm-mouse-mode nil "\
Non-nil if Xterm-Mouse mode is enabled.
See the command `xterm-mouse-mode' for a description of this minor-mode.
Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `xterm-mouse-mode'.")
+use either \\[customize] or the function `xterm-mouse-mode'.")
+
+(custom-autoload (quote xterm-mouse-mode) "xt-mouse")
-(custom-autoload (quote xterm-mouse-mode) "xt-mouse" nil)
+(put (quote xterm-mouse-mode) (quote custom-set) (quote custom-set-minor-mode))
(autoload (quote xterm-mouse-mode) "xt-mouse" "\
Toggle XTerm mouse mode.
;;;***
\f
;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc"
-;;;;;; "gnus/yenc.el" (17851 10860))
+;;;;;; "gnus/yenc.el" (17383 38805))
;;; Generated autoloads from gnus/yenc.el
(autoload (quote yenc-decode-region) "yenc" "\
;;;***
\f
;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism
-;;;;;; yow) "yow" "play/yow.el" (17851 10866))
+;;;;;; yow) "yow" "play/yow.el" (17817 14126))
;;; Generated autoloads from play/yow.el
(autoload (quote yow) "yow" "\
;;;***
\f
-;;;### (autoloads (zone) "zone" "play/zone.el" (17851 10866))
+;;;### (autoloads (zone) "zone" "play/zone.el" (17383 38807))
;;; Generated autoloads from play/zone.el
(autoload (quote zone) "zone" "\
;;;;;; "progmodes/idlw-toolbar.el" "progmodes/mantemp.el" "progmodes/xscheme.el"
;;;;;; "register.el" "replace.el" "rfn-eshadow.el" "s-region.el"
;;;;;; "saveplace.el" "sb-image.el" "scroll-bar.el" "select.el"
-;;;;;; "soundex.el" "startup.el" "subdirs.el" "tempo.el" "textmodes/bib-mode.el"
-;;;;;; "textmodes/makeinfo.el" "textmodes/page-ext.el" "textmodes/page.el"
-;;;;;; "textmodes/refbib.el" "textmodes/refer.el" "textmodes/reftex-auc.el"
-;;;;;; "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el" "textmodes/reftex-sel.el"
-;;;;;; "textmodes/reftex-toc.el" "textmodes/texnfo-upd.el" "textmodes/text-mode.el"
-;;;;;; "timezone.el" "tooltip.el" "tree-widget.el" "uniquify.el"
-;;;;;; "url/url-about.el" "url/url-cookie.el" "url/url-dired.el"
+;;;;;; "soundex.el" "startup.el" "subdirs.el" "tempo.el" "term/apollo.el"
+;;;;;; "term/bobcat.el" "term/cygwin.el" "term/internal.el" "term/linux.el"
+;;;;;; "term/lk201.el" "term/pc-win.el" "term/rxvt.el" "term/sun.el"
+;;;;;; "term/tty-colors.el" "term/vt102.el" "term/vt125.el" "term/vt200.el"
+;;;;;; "term/vt201.el" "term/vt220.el" "term/vt240.el" "term/vt300.el"
+;;;;;; "term/vt320.el" "term/vt400.el" "term/vt420.el" "termdev.el"
+;;;;;; "textmodes/bib-mode.el" "textmodes/makeinfo.el" "textmodes/page-ext.el"
+;;;;;; "textmodes/page.el" "textmodes/refbib.el" "textmodes/refer.el"
+;;;;;; "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el"
+;;;;;; "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" "textmodes/texnfo-upd.el"
+;;;;;; "textmodes/text-mode.el" "timezone.el" "tooltip.el" "tree-widget.el"
+;;;;;; "uniquify.el" "url/url-about.el" "url/url-cookie.el" "url/url-dired.el"
;;;;;; "url/url-expand.el" "url/url-ftp.el" "url/url-history.el"
;;;;;; "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el"
;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el"
;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el"
;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el"
-;;;;;; "x-dnd.el") (17887 8772 360075))
+;;;;;; "x-dnd.el") (17817 17746 543314))
;;;***
\f
-;; Local Variables:
-;; version-control: never
-;; no-byte-compile: t
-;; no-update-autoloads: t
-;; End:
+;;; Local Variables:
+;;; version-control: never
+;;; no-byte-compile: t
+;;; no-update-autoloads: t
+;;; End:
;;; loaddefs.el ends here
buffer list instead of the selected frame's buffer list.
If no other buffer exists, the buffer `*scratch*' is returned."
(setq frame (or frame (selected-frame)))
- (or (get-next-valid-buffer (frame-parameter frame 'buried-buffer-list)
- buffer visible-ok frame)
- (get-next-valid-buffer (nreverse (buffer-list frame))
- buffer visible-ok frame)
+ (or (get-next-valid-buffer (nreverse (buffer-list frame))
+ buffer visible-ok frame)
(progn
(set-buffer-major-mode (get-buffer-create "*scratch*"))
(get-buffer "*scratch*"))))
-
(defun next-buffer ()
"Switch to the next buffer in cyclic order."
(interactive)
- (let ((buffer (current-buffer))
- (bbl (frame-parameter nil 'buried-buffer-list)))
+ (let ((buffer (current-buffer)))
(switch-to-buffer (other-buffer buffer t))
- (bury-buffer buffer)
- (set-frame-parameter nil 'buried-buffer-list
- (cons buffer (delq buffer bbl)))))
+ (bury-buffer buffer)))
(defun previous-buffer ()
"Switch to the previous buffer in cyclic order."
(interactive)
- (let ((buffer (last-buffer (current-buffer) t))
- (bbl (frame-parameter nil 'buried-buffer-list)))
- (switch-to-buffer buffer)
- ;; Clean up buried-buffer-list up to and including the chosen buffer.
- (while (and bbl (not (eq (car bbl) buffer)))
- (setq bbl (cdr bbl)))
- (set-frame-parameter nil 'buried-buffer-list bbl)))
+ (switch-to-buffer (last-buffer (current-buffer) t)))
\f
;;; next-error support framework
The second, optional, argument PUSH, has the same meaning as the
similar argument to `x-set-cut-buffer', which see.")
+(make-variable-frame-local 'interprogram-cut-function)
+
(defvar interprogram-paste-function nil
"Function to call to get text cut from other programs.
difficult to tell whether Emacs or some other program provided the
current string, it is probably good enough to return nil if the string
is equal (according to `string=') to the last text Emacs provided.")
+
+(make-variable-frame-local 'interprogram-paste-function)
\f
a number counts as a prefix arg.
To kill a whole line, when point is not at the beginning, type \
- \\[beginning-of-line] \\[kill-line] \\[kill-line].
+ \\[move-beginning-of-line] \\[kill-line] \\[kill-line].
If `kill-whole-line' is non-nil, then this command kills the whole line
including its terminating newline, when used at the beginning of a line
with no argument. As a consequence, you can always kill a whole line
- by typing \\[beginning-of-line] \\[kill-line].
+ by typing \\[move-beginning-of-line] \\[kill-line].
If you want to append the killed line to the last killed text,
use \\[append-next-kill] before \\[kill-line].
(defcustom blink-matching-paren-on-screen t
"*Non-nil means show matching open-paren when it is on screen.
- If nil, means don't show it (but the open-paren can still be shown
+ If nil, don't show it (but the open-paren can still be shown
when it is off screen).
This variable has no effect if `blink-matching-paren' is nil.
:group 'paren-blinking)
(defcustom blink-matching-paren-dont-ignore-comments nil
- "*nil means `blink-matching-paren' ignores comments.
+ "*If nil, `blink-matching-paren' ignores comments.
More precisely, when looking for the matching parenthesis,
it skips the contents of comments that end before point."
:type 'boolean
\f
;;; Handling of Backspace and Delete keys.
-(defcustom normal-erase-is-backspace
- (and (not noninteractive)
- (or (memq system-type '(ms-dos windows-nt))
- (eq window-system 'mac)
- (and (memq window-system '(x))
- (fboundp 'x-backspace-delete-keys-p)
- (x-backspace-delete-keys-p))
- ;; If the terminal Emacs is running on has erase char
- ;; set to ^H, use the Backspace key for deleting
- ;; backward and, and the Delete key for deleting forward.
- (and (null window-system)
- (eq tty-erase-char ?\^H))))
- "If non-nil, Delete key deletes forward and Backspace key deletes backward.
-
-On window systems, the default value of this option is chosen
-according to the keyboard used. If the keyboard has both a Backspace
-key and a Delete key, and both are mapped to their usual meanings, the
-option's default value is set to t, so that Backspace can be used to
-delete backward, and Delete can be used to delete forward.
-
-If not running under a window system, customizing this option accomplishes
-a similar effect by mapping C-h, which is usually generated by the
-Backspace key, to DEL, and by mapping DEL to C-d via
-`keyboard-translate'. The former functionality of C-h is available on
-the F1 key. You should probably not use this setting if you don't
-have both Backspace, Delete and F1 keys.
+(defcustom normal-erase-is-backspace 'maybe
+ "Set the default behaviour of the Delete and Backspace keys.
+
+If set to t, Delete key deletes forward and Backspace key deletes
+backward.
+
+If set to nil, both Delete and Backspace keys delete backward.
+
+If set to 'maybe (which is the default), Emacs automatically
+selects a behaviour. On window systems, the behaviour depends on
+the keyboard used. If the keyboard has both a Backspace key and
+a Delete key, and both are mapped to their usual meanings, the
+option's default value is set to t, so that Backspace can be used
+to delete backward, and Delete can be used to delete forward.
+
+If not running under a window system, customizing this option
+accomplishes a similar effect by mapping C-h, which is usually
+generated by the Backspace key, to DEL, and by mapping DEL to C-d
+via `keyboard-translate'. The former functionality of C-h is
+available on the F1 key. You should probably not use this
+setting if you don't have both Backspace, Delete and F1 keys.
Setting this variable with setq doesn't take effect. Programmatically,
call `normal-erase-is-backspace-mode' (which see) instead."
- :type 'boolean
+ :type '(choice (const :tag "Off" nil)
+ (const :tag "Maybe" maybe)
+ (other :tag "On" t))
:group 'editing-basics
:version "21.1"
:set (lambda (symbol value)
(normal-erase-is-backspace-mode (or value 0))
(set-default symbol value))))
+(defun normal-erase-is-backspace-setup-frame (&optional frame)
+ "Set up `normal-erase-is-backspace-mode' on FRAME, if necessary."
+ (unless frame (setq frame (selected-frame)))
+ (with-selected-frame frame
+ (unless (terminal-parameter nil 'normal-erase-is-backspace)
+ (if (cond ((eq normal-erase-is-backspace 'maybe)
+ (and (not noninteractive)
+ (or (memq system-type '(ms-dos windows-nt))
+ (eq window-system 'mac)
+ (and (memq window-system '(x))
+ (fboundp 'x-backspace-delete-keys-p)
+ (x-backspace-delete-keys-p))
+ ;; If the terminal Emacs is running on has erase char
+ ;; set to ^H, use the Backspace key for deleting
+ ;; backward and, and the Delete key for deleting forward.
+ (and (null window-system)
+ (eq tty-erase-char ?\^H)))))
+ (t
+ normal-erase-is-backspace))
+ (normal-erase-is-backspace-mode 1)
+ (normal-erase-is-backspace-mode 0)))))
(defun normal-erase-is-backspace-mode (&optional arg)
"Toggle the Erase and Delete mode of the Backspace and Delete keys.
With numeric arg, turn the mode on if and only if ARG is positive.
-On window systems, when this mode is on, Delete is mapped to C-d and
-Backspace is mapped to DEL; when this mode is off, both Delete and
-Backspace are mapped to DEL. (The remapping goes via
-`function-key-map', so binding Delete or Backspace in the global or
-local keymap will override that.)
+On window systems, when this mode is on, Delete is mapped to C-d
+and Backspace is mapped to DEL; when this mode is off, both
+Delete and Backspace are mapped to DEL. (The remapping goes via
+`local-function-key-map', so binding Delete or Backspace in the
+global or local keymap will override that.)
In addition, on window systems, the bindings of C-Delete, M-Delete,
C-M-Delete, C-Backspace, M-Backspace, and C-M-Backspace are changed in
See also `normal-erase-is-backspace'."
(interactive "P")
- (setq normal-erase-is-backspace
- (if arg
- (> (prefix-numeric-value arg) 0)
- (not normal-erase-is-backspace)))
-
- (cond ((or (memq window-system '(x w32 mac pc))
- (memq system-type '(ms-dos windows-nt)))
- (let ((bindings
- `(([C-delete] [C-backspace])
- ([M-delete] [M-backspace])
- ([C-M-delete] [C-M-backspace])
- (,esc-map
- [C-delete] [C-backspace])))
- (old-state (lookup-key function-key-map [delete])))
-
- (if normal-erase-is-backspace
+ (let ((enabled (or (and arg (> (prefix-numeric-value arg) 0))
+ (and (not arg)
+ (not (eq 1 (terminal-parameter
+ nil 'normal-erase-is-backspace)))))))
+ (set-terminal-parameter nil 'normal-erase-is-backspace
+ (if enabled 1 0))
+
+ (cond ((or (memq window-system '(x w32 mac pc))
+ (memq system-type '(ms-dos windows-nt)))
+ (let* ((bindings
+ `(([C-delete] [C-backspace])
+ ([M-delete] [M-backspace])
+ ([C-M-delete] [C-M-backspace])
+ (,esc-map
+ [C-delete] [C-backspace])))
+ (old-state (lookup-key local-function-key-map [delete])))
+
+ (if enabled
+ (progn
+ (define-key local-function-key-map [delete] [?\C-d])
+ (define-key local-function-key-map [kp-delete] [?\C-d])
+ (define-key local-function-key-map [backspace] [?\C-?]))
+ (define-key local-function-key-map [delete] [?\C-?])
+ (define-key local-function-key-map [kp-delete] [?\C-?])
+ (define-key local-function-key-map [backspace] [?\C-?]))
+
+ ;; Maybe swap bindings of C-delete and C-backspace, etc.
+ (unless (equal old-state (lookup-key local-function-key-map [delete]))
+ (dolist (binding bindings)
+ (let ((map global-map))
+ (when (keymapp (car binding))
+ (setq map (car binding) binding (cdr binding)))
+ (let* ((key1 (nth 0 binding))
+ (key2 (nth 1 binding))
+ (binding1 (lookup-key map key1))
+ (binding2 (lookup-key map key2)))
+ (define-key map key1 binding2)
+ (define-key map key2 binding1)))))))
+ (t
+ (if enabled
(progn
- (define-key function-key-map [delete] [?\C-d])
- (define-key function-key-map [kp-delete] [?\C-d])
- (define-key function-key-map [backspace] [?\C-?]))
- (define-key function-key-map [delete] [?\C-?])
- (define-key function-key-map [kp-delete] [?\C-?])
- (define-key function-key-map [backspace] [?\C-?]))
-
- ;; Maybe swap bindings of C-delete and C-backspace, etc.
- (unless (equal old-state (lookup-key function-key-map [delete]))
- (dolist (binding bindings)
- (let ((map global-map))
- (when (keymapp (car binding))
- (setq map (car binding) binding (cdr binding)))
- (let* ((key1 (nth 0 binding))
- (key2 (nth 1 binding))
- (binding1 (lookup-key map key1))
- (binding2 (lookup-key map key2)))
- (define-key map key1 binding2)
- (define-key map key2 binding1)))))))
- (t
- (if normal-erase-is-backspace
- (progn
- (keyboard-translate ?\C-h ?\C-?)
- (keyboard-translate ?\C-? ?\C-d))
- (keyboard-translate ?\C-h ?\C-h)
- (keyboard-translate ?\C-? ?\C-?))))
-
- (run-hooks 'normal-erase-is-backspace-hook)
- (if (interactive-p)
- (message "Delete key deletes %s"
- (if normal-erase-is-backspace "forward" "backward"))))
+ (keyboard-translate ?\C-h ?\C-?)
+ (keyboard-translate ?\C-? ?\C-d))
+ (keyboard-translate ?\C-h ?\C-h)
+ (keyboard-translate ?\C-? ?\C-?))))
+
+ (run-hooks 'normal-erase-is-backspace-hook)
+ (if (interactive-p)
+ (message "Delete key deletes %s"
+ (if (terminal-parameter nil 'normal-erase-is-backspace)
+ "forward" "backward")))))
\f
(defvar vis-mode-saved-buffer-invisibility-spec nil
"Saved value of `buffer-invisibility-spec' when Visible mode is on.")
(defvar command-line-processed nil
"Non-nil once command line has been processed.")
+(defvar window-system initial-window-system
+ "Name of window system the selected frame is displaying through.
+The value is a symbol--for instance, `x' for X windows.
+The value is nil if the selected frame is on a text-only-terminal.")
+
+(make-variable-frame-local 'window-system)
+
(defgroup initialization nil
"Emacs start-up procedure."
:group 'internal)
;; for instance due to a dense colormap.
(when (or frame-initial-frame
;; If frame-initial-frame has no meaning, do this anyway.
- (not (and window-system
+ (not (and initial-window-system
(not noninteractive)
- (not (eq window-system 'pc)))))
+ (not (eq initial-window-system 'pc)))))
;; Modify the initial frame based on what .emacs puts into
;; ...-frame-alist.
(if (fboundp 'frame-notice-user-settings)
(frame-notice-user-settings))
+ ;; Set the faces for the initial background mode even if
+ ;; frame-notice-user-settings didn't (such as on a tty).
+ ;; frame-set-background-mode is idempotent, so it won't
+ ;; cause any harm if it's already been done.
(if (fboundp 'frame-set-background-mode)
- ;; Set the faces for the initial background mode even if
- ;; frame-notice-user-settings didn't (such as on a tty).
- ;; frame-set-background-mode is idempotent, so it won't
- ;; cause any harm if it's already been done.
- (let ((frame (selected-frame))
- term)
- (when (and (null window-system)
- ;; Don't override default set by files in lisp/term.
- (null default-frame-background-mode)
- (let ((bg (frame-parameter frame 'background-color)))
- (or (null bg)
- (member bg '(unspecified "unspecified-bg"
- "unspecified-fg")))))
-
- (setq term (getenv "TERM"))
- ;; Some files in lisp/term do a better job with the
- ;; background mode, but we leave this here anyway, in
- ;; case they remove those files.
- (if (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
- term)
- (setq default-frame-background-mode 'light)))
- (frame-set-background-mode (selected-frame)))))
+ (frame-set-background-mode (selected-frame))))
;; Now we know the user's default font, so add it to the menu.
(if (fboundp 'font-menu-add-default)
(defvar tool-bar-originally-present nil
"Non-nil if tool-bars are present before user and site init files are read.")
+(defvar handle-args-function-alist '((nil . tty-handle-args))
+ "Functions for processing window-system dependent command-line arguments.
+Window system startup files should add their own function to this
+alist, which should parse the command line arguments. Those
+pertaining to the window system should be processed and removed
+from the returned command line.")
+
+(defvar window-system-initialization-alist '((nil . ignore))
+ "Alist of window-system initialization functions.
+Window-system startup files should add their own initialization
+function to this list. The function should take no arguments,
+and initialize the window system environment to prepare for
+opening the first frame (e.g. open a connection to an X server).")
+
;; Handle the X-like command-line arguments "-fg", "-bg", "-name", etc.
(defun tty-handle-args (args)
(let (rest)
(setq eol-mnemonic-dos "(DOS)"
eol-mnemonic-mac "(Mac)")))
- ;; Read window system's init file if using a window system.
+ ;; Make sure window system's init file was loaded in loadup.el if using a window system.
(condition-case error
- (if (and window-system (not noninteractive))
- (load (concat term-file-prefix
- (symbol-name window-system)
- "-win")
- ;; Every window system should have a startup file;
- ;; barf if we can't find it.
- nil t))
- ;; If we can't read it, print the error message and exit.
+ (unless noninteractive
+ (if (and initial-window-system
+ (not (featurep
+ (intern (concat (symbol-name initial-window-system) "-win")))))
+ (error "Unsupported window system `%s'" initial-window-system))
+ ;; Process window-system specific command line parameters.
+ (setq command-line-args
+ (funcall (or (cdr (assq initial-window-system handle-args-function-alist))
+ (error "Unsupported window system `%s'" initial-window-system))
+ command-line-args))
+ ;; Initialize the window system. (Open connection, etc.)
+ (funcall (or (cdr (assq initial-window-system window-system-initialization-alist))
+ (error "Unsupported window system `%s'" initial-window-system))))
+ ;; If there was an error, print the error message and exit.
(error
(princ
(if (eq (car error) 'error)
(cdr error) ", "))))
'external-debugging-output)
(terpri 'external-debugging-output)
- (setq window-system nil)
+ (setq initial-window-system nil)
(kill-emacs)))
- ;; Windowed displays do this inside their *-win.el.
- (unless (or (display-graphic-p) noninteractive)
- (setq command-line-args (tty-handle-args command-line-args)))
-
(set-locale-environment nil)
- ;; Convert preloaded file names to absolute.
- (let ((lisp-dir
- (file-truename
- (file-name-directory
- (locate-file "simple" load-path
- (get-load-suffixes))))))
-
- (setq load-history
- (mapcar (lambda (elt)
- (if (and (stringp (car elt))
- (not (file-name-absolute-p (car elt))))
- (cons (concat lisp-dir
- (car elt))
- (cdr elt))
- elt))
- load-history)))
+ ;; Convert preloaded file names in load-history to absolute.
+ (let ((simple-file-name
+ (locate-file "simple" load-path (get-load-suffixes)))
+ lisp-dir)
+ ;; Don't abort if simple.el cannot be found, but print a warning.
+ (if (null simple-file-name)
+ (progn
+ (princ "Warning: Could not find simple.el nor simple.elc"
+ 'external-debugging-output)
+ (terpri 'external-debugging-output))
+ (setq lisp-dir (file-truename (file-name-directory simple-file-name)))
+ (setq load-history
+ (mapcar (lambda (elt)
+ (if (and (stringp (car elt))
+ (not (file-name-absolute-p (car elt))))
+ (cons (concat lisp-dir
+ (car elt))
+ (cdr elt))
+ elt))
+ load-history))))
;; Convert the arguments to Emacs internal representation.
(let ((args (cdr command-line-args)))
;; If frame was created with a menu bar, set menu-bar-mode on.
(unless (or noninteractive
emacs-basic-display
- (and (memq window-system '(x w32))
+ (and (memq initial-window-system '(x w32))
(<= (frame-parameter nil 'menu-bar-lines) 0)))
(menu-bar-mode 1))
;; Can't do this init in defcustom because the relevant variables
;; are not set.
(custom-reevaluate-setting 'blink-cursor-mode)
- (custom-reevaluate-setting 'normal-erase-is-backspace)
(custom-reevaluate-setting 'tooltip-mode)
(custom-reevaluate-setting 'global-font-lock-mode)
(custom-reevaluate-setting 'mouse-wheel-down-event)
(custom-reevaluate-setting 'send-mail-function)
(custom-reevaluate-setting 'focus-follows-mouse)
+ (normal-erase-is-backspace-setup-frame)
+
;; Register default TTY colors for the case the terminal hasn't a
- ;; terminal init file.
- (unless (memq window-system '(x w32 mac))
- ;; We do this regardles of whether the terminal supports colors
- ;; or not, since they can switch that support on or off in
- ;; mid-session by setting the tty-color-mode frame parameter.
- (tty-register-default-colors))
+ ;; terminal init file. We do this regardles of whether the terminal
+ ;; supports colors or not and regardless the current display type,
+ ;; since users can connect to color-capable terminals and also
+ ;; switch color support on or off in mid-session by setting the
+ ;; tty-color-mode frame parameter.
+ (tty-register-default-colors)
;; Record whether the tool-bar is present before the user and site
;; init files are processed. frame-notice-user-settings uses this
;; Load library for our terminal type.
;; User init file can set term-file-prefix to nil to prevent this.
(unless (or noninteractive
- window-system
- (null term-file-prefix))
- (let* ((TERM (getenv "TERM"))
- (term TERM)
- hyphend)
- (while (and term
- (not (load (concat term-file-prefix term) t t)))
- ;; Strip off last hyphen and what follows, then try again
- (setq term
- (if (setq hyphend (string-match "[-_][^-_]+\\'" term))
- (substring term 0 hyphend)
- nil)))
- (setq term TERM)
- ;; The terminal file has been loaded, now call the terminal specific
- ;; initialization function.
- (while term
- (let ((term-init-func (intern-soft (concat "terminal-init-" term))))
- (if (not (fboundp term-init-func))
- ;; Strip off last hyphen and what follows, then try again
- (setq term
- (if (setq hyphend (string-match "[-_][^-_]+\\'" term))
- (substring term 0 hyphend)
- nil))
- (setq term nil)
- (funcall term-init-func))))))
+ initial-window-system)
+ (tty-run-terminal-initialization (selected-frame)))
;; Update the out-of-memory error message based on user's key bindings
;; for save-some-buffers.
(force-mode-line-update)
(setq fancy-current-text (cdr fancy-current-text))))
-
(defun fancy-splash-default-action ()
"Stop displaying the splash screen buffer.
This is an internal function used to turn off the splash screen after
(if (and (memq 'down (event-modifiers last-command-event))
(eq (posn-window (event-start last-command-event))
(selected-window)))
- ;; This is a mouse-down event in the spash screen window.
+ ;; This is a mouse-down event in the splash screen window.
;; Ignore it and consume the corresponding mouse-up event.
(read-event)
(push last-command-event unread-command-events))
(throw 'exit nil))
-(defun fancy-splash-special-event-action ()
- "Save the last event and stop displaying the splash screen buffer.
-This is an internal function used to turn off the splash screen after
-the user caused an input event that is bound in `special-event-map'"
- (interactive)
- (setq fancy-splash-last-input-event last-input-event)
- (throw 'exit nil))
+(defun fancy-splash-exit ()
+ "Exit the splash screen."
+ (if (get-buffer "GNU Emacs")
+ (throw 'stop-splashing nil)))
+(defun fancy-splash-delete-frame (frame)
+ "Exit the splash screen after the frame is deleted."
+ ;; We can not throw from `delete-frame-events', so we set up a timer
+ ;; to exit the recursive edit as soon as Emacs is idle again.
+ (if (frame-live-p frame)
+ (run-at-time 0 nil 'fancy-splash-exit)))
(defun fancy-splash-screens (&optional hide-on-input)
"Display fancy splash screens when Emacs starts."
(save-selected-window
(select-frame frame)
(switch-to-buffer " GNU Emacs")
+ (make-local-variable 'cursor-type)
(setq splash-buffer (current-buffer))
(catch 'stop-splashing
(unwind-protect
- (let ((map (make-sparse-keymap))
- (cursor-type nil))
- (use-local-map map)
- (define-key map [switch-frame] 'ignore)
+ (let* ((map (make-sparse-keymap))
+ (cursor-type nil)
+ (overriding-local-map map)
+ ;; Catch if our frame is deleted; the delete-frame
+ ;; event is unreliable and is handled by
+ ;; `special-event-map' anyway.
+ (delete-frame-functions (cons 'fancy-splash-delete-frame
+ delete-frame-functions)))
(define-key map [t] 'fancy-splash-default-action)
(define-key map [mouse-movement] 'ignore)
(define-key map [mode-line t] 'ignore)
- ;; Temporarily bind special events to
- ;; fancy-splash-special-event-action so as to stop
- ;; displaying splash screens with such events.
- ;; Otherwise, drag-n-drop into splash screens may
- ;; leave us in recursive editing with invisible
- ;; cursors for a while.
- (setq special-event-map (make-sparse-keymap))
- (map-keymap
- (lambda (key def)
- (define-key special-event-map (vector key)
- (if (eq def 'ignore)
- 'ignore
- 'fancy-splash-special-event-action)))
- old-special-event-map)
+ (define-key map [select-window] 'ignore)
+ ;; Temporarily bind special events to
+ ;; fancy-splash-special-event-action so as to stop
+ ;; displaying splash screens with such events.
+ ;; Otherwise, drag-n-drop into splash screens may
+ ;; leave us in recursive editing with invisible
+ ;; cursors for a while.
+ (setq special-event-map (make-sparse-keymap))
+ (map-keymap
+ (lambda (key def)
+ (define-key special-event-map (vector key)
+ (if (eq def 'ignore)
+ 'ignore
+ 'fancy-splash-special-event-action)))
+ old-special-event-map)
(setq display-hourglass nil
minor-mode-map-alist nil
emulation-mode-map-alists nil
emulation-mode-map-alists old-emulation-mode-map-alists
special-event-map old-special-event-map)
(kill-buffer splash-buffer)
+ (when (frame-live-p frame)
+ (select-frame frame)
+ (switch-to-buffer fancy-splash-outer-buffer))
(when fancy-splash-last-input-event
(setq last-input-event fancy-splash-last-input-event
fancy-splash-last-input-event nil)
- (command-execute (lookup-key special-event-map
- (vector last-input-event))
- nil (vector last-input-event) t))))))
+ (command-execute (lookup-key special-event-map
+ (vector last-input-event))
+ nil (vector last-input-event) t))))))
;; If hide-on-input is nil, don't hide the buffer on input.
(if (or (window-minibuffer-p)
(window-dedicated-p (selected-window)))
(view-mode-enter nil 'kill-buffer))
(goto-char (point-min)))))
+(defun fancy-splash-special-event-action ()
+ "Save the last event and stop displaying the splash screen buffer.
+This is an internal function used to turn off the splash screen after
+the user caused an input event that is bound in `special-event-map'"
+ (interactive)
+ (setq fancy-splash-last-input-event last-input-event)
+ (throw 'exit nil))
+
+
(defun fancy-splash-frame ()
"Return the frame to use for the fancy splash screen.
Returning non-nil does not mean we should necessarily
"
Copyright (C) 2007 Free Software Foundation, Inc."))
- ;; No mouse menus, so give help using kbd commands.
-
- ;; If keys have their default meanings,
- ;; use precomputed string to save lots of time.
- (if (and (eq (key-binding "\C-h") 'help-command)
- (eq (key-binding "\C-xu") 'advertised-undo)
- (eq (key-binding "\C-x\C-c") 'save-buffers-kill-emacs)
- (eq (key-binding "\C-ht") 'help-with-tutorial)
- (eq (key-binding "\C-hi") 'info)
- (eq (key-binding "\C-hr") 'info-emacs-manual)
- (eq (key-binding "\C-h\C-n") 'view-emacs-news))
- (insert "
+ ;; No mouse menus, so give help using kbd commands.
+
+ ;; If keys have their default meanings,
+ ;; use precomputed string to save lots of time.
+ (if (and (eq (key-binding "\C-h") 'help-command)
+ (eq (key-binding "\C-xu") 'advertised-undo)
+ (eq (key-binding "\C-x\C-c") 'save-buffers-kill-terminal)
+ (eq (key-binding "\C-ht") 'help-with-tutorial)
+ (eq (key-binding "\C-hi") 'info)
+ (eq (key-binding "\C-hr") 'info-emacs-manual)
+ (eq (key-binding "\C-h\C-n") 'view-emacs-news))
+ (insert "
Get help C-h (Hold down CTRL and press h)
Emacs manual C-h r
Emacs tutorial C-h t Undo changes C-x u
Buy manuals C-h C-m Exit Emacs C-x C-c
Browse manuals C-h i")
- (insert (substitute-command-keys
- (format "\n
+ (insert (substitute-command-keys
+ (format "\n
Get help %s
Emacs manual \\[info-emacs-manual]
Emacs tutorial \\[help-with-tutorial]\tUndo changes\t\\[advertised-undo]
-Buy manuals \\[view-order-manuals]\tExit Emacs\t\\[save-buffers-kill-emacs]
+Buy manuals \\[view-order-manuals]\tExit Emacs\t\\[save-buffers-kill-terminal]
Browse manuals \\[info]"
- (let ((where (where-is-internal
- 'help-command nil t)))
- (if where
- (key-description where)
- "M-x help"))))))
-
- ;; Say how to use the menu bar with the keyboard.
- (if (and (eq (key-binding "\M-`") 'tmm-menubar)
- (eq (key-binding [f10]) 'tmm-menubar))
- (insert "
+ (let ((where (where-is-internal
+ 'help-command nil t)))
+ (if where
+ (key-description where)
+ "M-x help"))))))
+
+ ;; Say how to use the menu bar with the keyboard.
+ (if (and (eq (key-binding "\M-`") 'tmm-menubar)
+ (eq (key-binding [f10]) 'tmm-menubar))
+ (insert "
Activate menubar F10 or ESC ` or M-`")
- (insert (substitute-command-keys "
+ (insert (substitute-command-keys "
Activate menubar \\[tmm-menubar]")))
- ;; Many users seem to have problems with these.
- (insert "
+ ;; Many users seem to have problems with these.
+ (insert "
\(`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key.
If you have no Meta key, you may instead type ESC followed by the character.)")
- (insert "\n\n" (emacs-version)
- "
+ (insert "\n\n" (emacs-version)
+ "
Copyright (C) 2007 Free Software Foundation, Inc.")
- (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
- (eq (key-binding "\C-h\C-d") 'describe-distribution)
- (eq (key-binding "\C-h\C-w") 'describe-no-warranty))
- (insert
- "\n
+ (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
+ (eq (key-binding "\C-h\C-d") 'describe-distribution)
+ (eq (key-binding "\C-h\C-w") 'describe-no-warranty))
+ (insert
+ "\n
GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for full details.
Emacs is Free Software--Free as in Freedom--so you can redistribute copies
of Emacs and modify it; type C-h C-c to see the conditions.
Type C-h C-d for information on getting the latest version.")
- (insert (substitute-command-keys
- "\n
+ (insert (substitute-command-keys
+ "\n
GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for full details.
Emacs is Free Software--Free as in Freedom--so you can redistribute copies
of Emacs and modify it; type \\[describe-copying] to see the conditions.
Type \\[describe-distribution] for information on getting the latest version."))))
- ;; The rest of the startup screen is the same on all
- ;; kinds of terminals.
-
- ;; Give information on recovering, if there was a crash.
- (and auto-save-list-file-prefix
- ;; Don't signal an error if the
- ;; directory for auto-save-list files
- ;; does not yet exist.
- (file-directory-p (file-name-directory
- auto-save-list-file-prefix))
- (directory-files
- (file-name-directory auto-save-list-file-prefix)
- nil
- (concat "\\`"
- (regexp-quote (file-name-nondirectory
- auto-save-list-file-prefix)))
- t)
- (insert "\n\nIf an Emacs session crashed recently, "
- "type Meta-x recover-session RET\nto recover"
- " the files you were editing."))
+ ;; The rest of the startup screen is the same on all
+ ;; kinds of terminals.
+
+ ;; Give information on recovering, if there was a crash.
+ (and auto-save-list-file-prefix
+ ;; Don't signal an error if the
+ ;; directory for auto-save-list files
+ ;; does not yet exist.
+ (file-directory-p (file-name-directory
+ auto-save-list-file-prefix))
+ (directory-files
+ (file-name-directory auto-save-list-file-prefix)
+ nil
+ (concat "\\`"
+ (regexp-quote (file-name-nondirectory
+ auto-save-list-file-prefix)))
+ t)
+ (insert "\n\nIf an Emacs session crashed recently, "
+ "type Meta-x recover-session RET\nto recover"
+ " the files you were editing."))
;; Display the input that we set up in the buffer.
(set-buffer-modified-p nil)
(if (and view-read-only (not view-mode))
(view-mode-enter nil 'kill-buffer))
(goto-char (point-min))
- (if hide-on-input
- (if (or (window-minibuffer-p)
- (window-dedicated-p (selected-window)))
- ;; If hide-on-input is nil, creating a new frame will
- ;; generate enough events that the subsequent `sit-for'
- ;; will immediately return anyway.
- nil ;; (pop-to-buffer (current-buffer))
+ (if hide-on-input
+ (if (or (window-minibuffer-p)
+ (window-dedicated-p (selected-window)))
+ ;; If hide-on-input is nil, creating a new frame will
+ ;; generate enough events that the subsequent `sit-for'
+ ;; will immediately return anyway.
+ nil ;; (pop-to-buffer (current-buffer))
(save-window-excursion
- (switch-to-buffer (current-buffer))
- (sit-for 120)))
- (condition-case nil
- (switch-to-buffer (current-buffer))
- ;; In case the window is dedicated or something.
- (error (pop-to-buffer (current-buffer))))))
+ (switch-to-buffer (current-buffer))
+ (sit-for 120))
+ (condition-case nil
+ (switch-to-buffer (current-buffer))))))
;; Unwind ... ensure splash buffer is killed
(if hide-on-input
(kill-buffer "GNU Emacs")
(defun display-startup-echo-area-message ()
(let ((resize-mini-windows t))
- (message "%s" (startup-echo-area-message))))
+ (or noninteractive ;(input-pending-p) init-file-had-error
+ ;; t if the init file says to inhibit the echo area startup message.
+ (and inhibit-startup-echo-area-message
+ user-init-file
+ (or (and (get 'inhibit-startup-echo-area-message 'saved-value)
+ (equal inhibit-startup-echo-area-message
+ (if (equal init-file-user "")
+ (user-login-name)
+ init-file-user)))
+ ;; Wasn't set with custom; see if .emacs has a setq.
+ (let ((buffer (get-buffer-create " *temp*")))
+ (prog1
+ (condition-case nil
+ (save-excursion
+ (set-buffer buffer)
+ (insert-file-contents user-init-file)
+ (re-search-forward
+ (concat
+ "([ \t\n]*setq[ \t\n]+"
+ "inhibit-startup-echo-area-message[ \t\n]+"
+ (regexp-quote
+ (prin1-to-string
+ (if (equal init-file-user "")
+ (user-login-name)
+ init-file-user)))
+ "[ \t\n]*)")
+ nil t))
+ (error nil))
+ (kill-buffer buffer)))))
+ ;; display-splash-screen at the end of command-line-1 calls
+ ;; use-fancy-splash-screens-p. This can cause image.el to be
+ ;; loaded, putting "Loading image... done" in the echo area.
+ ;; This hides startup-echo-area-message. So
+ ;; use-fancy-splash-screens-p is called here simply to get the
+ ;; loading of image.el (if needed) out of the way before
+ ;; display-startup-echo-area-message runs.
+ (progn
+ (use-fancy-splash-screens-p)
+ (message "%s" (startup-echo-area-message))))))
(defun display-splash-screen (&optional hide-on-input)
normal otherwise.
With a prefix argument, any user input hides the splash screen."
(interactive "P")
- (if (use-fancy-splash-screens-p)
- (fancy-splash-screens hide-on-input)
- (normal-splash-screen hide-on-input)))
-
+ ;; Prevent recursive calls from server-process-filter.
+ (if (not (get-buffer "GNU Emacs"))
+ (if (use-fancy-splash-screens-p)
+ (fancy-splash-screens hide-on-input)
+ (normal-splash-screen hide-on-input))))
(defun command-line-1 (command-line-args-left)
- (or noninteractive (input-pending-p) init-file-had-error
- ;; t if the init file says to inhibit the echo area startup message.
- (and inhibit-startup-echo-area-message
- user-init-file
- (or (and (get 'inhibit-startup-echo-area-message 'saved-value)
- (equal inhibit-startup-echo-area-message
- (if (equal init-file-user "")
- (user-login-name)
- init-file-user)))
- ;; Wasn't set with custom; see if .emacs has a setq.
- (let ((buffer (get-buffer-create " *temp*")))
- (prog1
- (condition-case nil
- (save-excursion
- (set-buffer buffer)
- (insert-file-contents user-init-file)
- (re-search-forward
- (concat
- "([ \t\n]*setq[ \t\n]+"
- "inhibit-startup-echo-area-message[ \t\n]+"
- (regexp-quote
- (prin1-to-string
- (if (equal init-file-user "")
- (user-login-name)
- init-file-user)))
- "[ \t\n]*)")
- nil t))
- (error nil))
- (kill-buffer buffer)))))
- ;; display-splash-screen at the end of command-line-1 calls
- ;; use-fancy-splash-screens-p. This can cause image.el to be
- ;; loaded, putting "Loading image... done" in the echo area.
- ;; This hides startup-echo-area-message. So
- ;; use-fancy-splash-screens-p is called here simply to get the
- ;; loading of image.el (if needed) out of the way before
- ;; display-startup-echo-area-message runs.
- (progn
- (use-fancy-splash-screens-p)
- (display-startup-echo-area-message)))
+ (display-startup-echo-area-message)
;; Delay 2 seconds after an init file error message
;; was displayed, so user can read it.
;; or C-q C-x might not return immediately since ESC or C-x might be
;; bound to some prefix in function-key-map or key-translation-map.
(setq translated char)
- (let ((translation (lookup-key function-key-map (vector char))))
+ (let ((translation (lookup-key local-function-key-map (vector char))))
(if (arrayp translation)
(setq translated (aref translation 0))))
(cond ((null translated))
(get-text-property 0 'yank-handler string)))
(param (or (nth 1 handler) string))
(opoint (point))
+ (inhibit-read-only inhibit-read-only)
end)
(setq yank-undo-function t)
(insert param))
(setq end (point))
+ ;; Prevent read-only properties from interfering with the
+ ;; following text property changes.
+ (setq inhibit-read-only t)
+
;; What should we do with `font-lock-face' properties?
(if font-lock-defaults
;; No, just wipe them.
(if (window-live-p save-selected-window-window)
(select-window save-selected-window-window 'norecord))))))
+(defmacro with-selected-frame (frame &rest body)
+ "Execute the forms in BODY with FRAME as the selected frame.
+The value returned is the value of the last form in BODY.
+See also `with-temp-buffer'."
+ (declare (indent 1) (debug t))
+ (let ((old-frame (make-symbol "old-frame"))
+ (old-buffer (make-symbol "old-buffer")))
+ `(let ((,old-frame (selected-frame))
+ (,old-buffer (current-buffer)))
+ (unwind-protect
+ (progn (select-frame ,frame)
+ ,@body)
+ (if (frame-live-p ,old-frame)
+ (select-frame ,old-frame))
+ (if (buffer-live-p ,old-buffer)
+ (set-buffer ,old-buffer))))))
+
(defmacro with-temp-file (file &rest body)
"Create a new buffer, evaluate BODY there, and write the buffer to FILE.
The value returned is the value of the last form in BODY.
+ Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
+ See the end of the file for license conditions.
+
+
This directory contains files of elisp that customize Emacs for certain
terminal types.
- When Emacs starts, it checks the TERM environment variable to see what type
-of terminal the user is running on, checks for an elisp file named
-"term/${TERM}.el", and if one exists, loads it. If that doesn't yield a file
-that exists, the last hyphen and what follows it is stripped. If that doesn't
-yield a file that exists, the previous hyphen is stripped, and so on until all
-hyphens are gone. For example, if the terminal type is `aaa-48-foo', Emacs
-will try first `term/aaa-48-foo.el', then `term/aaa-48.el' and finally
-`term/aaa.el'. Each terminal specific file should contain a function
-named terminal-init-TERMINALNAME (eg terminal-init-aaa-48 for
-term/aaa-48.el) that Emacs will call in order to initialize the
-terminal. The terminal files should not contain any top level forms
-that are executed when the file is loaded, all the initialization
-actions are performed by the terminal-init-TERMINALNAME functions.
+ When Emacs opens a new terminal, it checks the TERM environment variable to
+see what type of terminal the user is running on, searches for an elisp file
+named "term/${TERM}.el", and if one exists, loads it. If Emacs finds no
+suitable file, then it strips the last hyphen and what follows it from TERM,
+and tries again. If that still doesn't yield a file, then the previous hyphen
+is stripped, and so on until all hyphens are gone. For example, if the
+terminal type is `aaa-48-foo', Emacs will try first `term/aaa-48-foo.el', then
+`term/aaa-48.el' and finally `term/aaa.el'. Emacs stops searching at the
+first file found, and will not load more than one file for any terminal. Note
+that it is not an error if Emacs is unable to find a terminal initialization
+file; in that case, it will simply proceed with the next step without loading
+any files.
+
+ Once the file has been loaded (or the search failed), Emacs tries to call a
+function named `terminal-init-TERMINALNAME' (eg `terminal-init-aaa-48' for the
+`aaa-48' terminal) in order to initialize the terminal. Once again, if the
+function is not found, Emacs strips the last component of the name and tries
+again using the shorter name. This search is independent of the previous file
+search, so that you can have terminal initialization functions for a family of
+terminals collected in a single file named after the family name, and users
+may put terminal initialization functions directly in their .emacs files.
+
+ Note that an individual terminal file is loaded only once in an Emacs
+session; if the same terminal type is opened again, Emacs will simply call the
+initialization function without reloading the file. Therefore, all the actual
+initialization actions should be collected in terminal-init-* functions; the
+file should not contain any top-level form that is not a function or variable
+declaration. Simply loading the file should not have any side effect.
+
+ Similarly, the terminal initialization function is called only once on any
+given terminal, when the first frame is created on it. The function is not
+called for subsequent frames on the same terminal. Therefore, terminal-init-*
+functions should only modify terminal-local variables (such as
+`local-function-key-map') and terminal parameters. For example, it is not
+correct to modify frame parameters, since the modifications will only be
+applied for the first frame opened on the terminal.
+
When writing terminal packages, there are some things it is good to keep in
mind.
Before writing a terminal-support package, it's a good idea to read the
existing ones and learn the common conventions.
+
+ \f
+ 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 2, 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; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
;; Map certain keypad keys into ASCII characters
;; that people usually expect.
-(define-key function-key-map [backspace] [?\d])
-(define-key function-key-map [delete] [?\d])
-(define-key function-key-map [tab] [?\t])
-(define-key function-key-map [linefeed] [?\n])
-(define-key function-key-map [clear] [?\C-l])
-(define-key function-key-map [return] [?\C-m])
-(define-key function-key-map [escape] [?\e])
-(define-key function-key-map [M-backspace] [?\M-\d])
-(define-key function-key-map [M-delete] [?\M-\d])
-(define-key function-key-map [M-tab] [?\M-\t])
-(define-key function-key-map [M-linefeed] [?\M-\n])
-(define-key function-key-map [M-clear] [?\M-\C-l])
-(define-key function-key-map [M-return] [?\M-\C-m])
-(define-key function-key-map [M-escape] [?\M-\e])
+(define-key local-function-key-map [backspace] [?\d])
+(define-key local-function-key-map [delete] [?\d])
+(define-key local-function-key-map [tab] [?\t])
+(define-key local-function-key-map [linefeed] [?\n])
+(define-key local-function-key-map [clear] [?\C-l])
+(define-key local-function-key-map [return] [?\C-m])
+(define-key local-function-key-map [escape] [?\e])
+(define-key local-function-key-map [M-backspace] [?\M-\d])
+(define-key local-function-key-map [M-delete] [?\M-\d])
+(define-key local-function-key-map [M-tab] [?\M-\t])
+(define-key local-function-key-map [M-linefeed] [?\M-\n])
+(define-key local-function-key-map [M-clear] [?\M-\C-l])
+(define-key local-function-key-map [M-return] [?\M-\C-m])
+(define-key local-function-key-map [M-escape] [?\M-\e])
;; These tell read-char how to convert
;; these special chars to ASCII.
(if (and type-data
(setq str (mac-coerce-ae-data (car type-data)
(cdr type-data) "TEXT")))
- (string-to-number str)
+ (let ((num (string-to-number str)))
+ ;; Mac OS Classic may return "0e+0" as the coerced value for
+ ;; the type "magn" and the data "\000\000\000\000".
+ (if (= num 0.0) 0 num))
nil)))
(defun mac-bytes-to-integer (bytes &optional from to)
(let* ((ae (mac-event-ae event))
(parsed-url (url-generic-parse-url (mac-ae-text ae))))
(if (string= (url-type parsed-url) "mailto")
- (url-mailto parsed-url)
+ (progn
+ (url-mailto parsed-url)
+ (select-frame-set-input-focus (selected-frame)))
(mac-resume-apple-event ae t))))
(setq mac-apple-event-map (make-sparse-keymap))
'mac-handle-toolbar-switch-mode)
;;; Font panel
- (when (fboundp 'mac-set-font-panel-visibility)
+ (when (fboundp 'mac-set-font-panel-visible-p)
(define-minor-mode mac-font-panel-mode
"Toggle use of the font panel.
:init-value nil
:global t
:group 'mac
- (mac-set-font-panel-visibility mac-font-panel-mode))
+ (mac-set-font-panel-visible-p mac-font-panel-mode))
(defun mac-handle-font-panel-closed (event)
"Update internal status in response to font panel closed EVENT."
"Show the font panel as a floating dialog")
'showhide-speedbar)
- ) ;; (fboundp 'mac-set-font-panel-visibility)
+ ) ;; (fboundp 'mac-set-font-panel-visible-p)
;;; Text Services
(defvar mac-ts-active-input-buf ""
(dolist (item (mac-ae-list ae))
(if (not (equal (car item) "null"))
(mac-dnd-drop-data event (selected-frame) window
- (cdr item) (car item) action))))
- (select-frame-set-input-focus (selected-frame)))
+ (cdr item) (car item) action)))))
\f
;;; Do the actual Windows setup here; the above code just defines
;;; functions and variables that we use now.
#endif /* not USE_X_TOOLKIT */
#if HAVE_XFT
- #undef LIB_X11_LIB
- #define LIB_X11_LIB @XFT_LIBS@
+ #undef LIB_X11_LIB /* XFT_LIBS includes -lX11 */
+ #define LIB_X11_LIB
+ XFT_LIBS=@XFT_LIBS@
#endif /* HAVE_XFT */
#if HAVE_XPM
/* LD_SWITCH_X_DEFAULT comes after everything else that specifies
options for where to find X libraries, but before those libraries. */
X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
- LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
+ LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM $(XFT_LIBS)
#else /* not HAVE_X11 */
LIBX= $(LIBXMENU) LD_SWITCH_X_SITE -lX10 LIBX10_MACHINE LIBX10_SYSTEM
#endif /* not HAVE_X11 */
whose initialized data areas should be dumped as pure by dump-emacs. */
obj= dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
charset.o coding.o category.o ccl.o \
- cm.o term.o xfaces.o $(XOBJ) $(GTK_OBJ)\
+ cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ)\
emacs.o keyboard.o macros.o keymap.o sysdep.o \
buffer.o filelock.o insdel.o marker.o \
minibuf.o fileio.o dired.o filemode.o \
lisp= \
${lispsource}abbrev.elc \
${lispsource}buff-menu.elc \
+ ${lispsource}server.elc \
${lispsource}button.elc \
${lispsource}emacs-lisp/byte-run.elc \
${lispsource}cus-face.elc \
MOUSE_SUPPORT \
${lispsource}emacs-lisp/float-sup.elc \
${lispsource}frame.elc \
+ ${lispsource}termdev.elc \
${lispsource}help.elc \
${lispsource}indent.elc \
${lispsource}isearch.elc \
shortlisp= \
../lisp/abbrev.elc \
../lisp/buff-menu.elc \
+ ../lisp/server.elc \
../lisp/button.elc \
../lisp/emacs-lisp/byte-run.elc \
../lisp/cus-face.elc \
../lisp/emacs-lisp/float-sup.elc \
../lisp/format.elc \
../lisp/frame.elc \
+ ../lisp/termdev.elc \
../lisp/help.elc \
../lisp/indent.elc \
../lisp/isearch.elc \
${dotdot}/lisp/x-dnd.elc \
${dotdot}/lisp/international/ccl.elc \
${dotdot}/lisp/international/codepage.elc \
- ${dotdot}/lisp/international/fontset.elc
+ ${dotdot}/lisp/international/fontset.elc \
+ ${dotdot}/lisp/mouse.elc \
+ ${dotdot}/lisp/term/x-win.elc
/* Construct full set of libraries to be linked.
Note that SunOS needs -lm to come before -lc; otherwise, you get
for the first time, this prevents any variation between configurations
in the contents of the DOC file.
Likewise for ${SOME_MACHINE_LISP}. */
-${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
+${etc}DOC: ${libsrc}make-docfile ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
-rm -f ${etc}DOC
${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
keyboard.h dispextern.h $(config_h)
callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
process.h systty.h syssignal.h charset.h coding.h ccl.h msdos.h \
- composite.h w32.h blockinput.h atimer.h systime.h
+ composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
casefiddle.o: casefiddle.c syntax.h commands.h buffer.h composite.h \
charset.h keymap.h $(config_h)
casetab.o: casetab.c buffer.h $(config_h)
charset.o: charset.c charset.h buffer.h coding.h composite.h disptab.h \
$(config_h)
coding.o: coding.c coding.h ccl.h buffer.h charset.h intervals.h composite.h \
- window.h dispextern.h $(config_h)
-cm.o: cm.c cm.h termhooks.h $(config_h)
+ window.h dispextern.h frame.h termhooks.h $(config_h)
+cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
cmds.o: cmds.c syntax.h buffer.h charset.h commands.h window.h $(config_h) \
msdos.h dispextern.h keyboard.h keymap.h
pre-crt0.o: pre-crt0.c
CRT0_COMPILE ${srcdir}/ecrt0.c
dired.o: dired.c commands.h buffer.h $(config_h) charset.h coding.h regex.h \
systime.h blockinput.h
-dispnew.o: dispnew.c systty.h systime.h commands.h process.h frame.h \
+dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
disptab.h indent.h intervals.h \
xterm.h blockinput.h atimer.h charset.h msdos.h composite.h keyboard.h \
filemode.o: filemode.c $(config_h)
frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
blockinput.h atimer.h systime.h buffer.h charset.h fontset.h \
- msdos.h dosfns.h dispextern.h w32term.h macterm.h $(config_h)
-fringe.o: fringe.c dispextern.h frame.h window.h buffer.h $(config_h)
+ msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
+fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \
- keyboard.h $(config_h)
+ keyboard.h termhooks.h $(config_h)
getloadavg.o: getloadavg.c $(config_h)
image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(config_h)
dispextern.h atimer.h systime.h region-cache.h $(config_h)
keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h charset.h \
commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
- systty.h systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
+ systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
atimer.h systime.h puresize.h charset.h intervals.h keymap.h window.h \
marker.o: marker.c buffer.h charset.h $(config_h)
md5.o: md5.c md5.h $(config_h)
minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
- buffer.h commands.h charset.h msdos.h $(INTERVAL_SRC) keymap.h $(config_h)
+ buffer.h commands.h charset.h msdos.h $(INTERVAL_SRC) keymap.h \
+ termhooks.h $(config_h)
mktime.o: mktime.c $(config_h)
msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \
regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h charset.h
region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
- $(config_h)
+ termhooks.h $(config_h)
search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
blockinput.h atimer.h systime.h category.h charset.h composite.h \
$(INTERVAL_SRC) $(config_h)
composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
process.h dispextern.h termhooks.h termchar.h termopts.h \
- frame.h atimer.h window.h msdos.h dosfns.h keyboard.h $(config_h)
+ frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
disptab.h dispextern.h keyboard.h charset.h coding.h ccl.h msdos.h \
window.h keymap.h
termcap.o: termcap.c $(config_h)
+terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
+ keyboard.h $(config_h)
terminfo.o: terminfo.c $(config_h)
tparam.o: tparam.c $(config_h)
undo.o: undo.c buffer.h commands.h window.h $(config_h)
widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
$(srcdir)/../lwlib/lwlib.h $(config_h)
window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
- termhooks.h disptab.h keyboard.h dispextern.h msdos.h composite.h \
+ disptab.h keyboard.h dispextern.h msdos.h composite.h \
keymap.h blockinput.h $(INTERVAL_SRC) xterm.h w32term.h macterm.h $(config_h)
xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h coding.h \
termchar.h frame.h window.h disptab.h termhooks.h charset.h $(config_h) \
msdos.h composite.h fontset.h blockinput.h atimer.h systime.h keymap.h
xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
window.h charset.h msdos.h dosfns.h composite.h atimer.h systime.h \
- keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) $(config_h)
+ keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) termchar.h \
+ termhooks.h $(config_h)
xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
$(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
- charset.h gtkutil.h $(config_h)
+ charset.h gtkutil.h termchar.h termhooks.h $(config_h)
xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h \
gtkutil.h msdos.h coding.h $(config_h)
keyboard.h gnu.h charset.h ccl.h fontset.h composite.h \
coding.h process.h gtkutil.h $(config_h)
xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
- buffer.h atimer.h systime.h $(config_h)
+ buffer.h atimer.h systime.h termhooks.h $(config_h)
xrdb.o: xrdb.c $(config_h) epaths.h
xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
lisp.h termopts.h
blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
bytecode.o: bytecode.c buffer.h syntax.h charset.h window.h dispextern.h \
frame.h xterm.h $(config_h)
-data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h $(config_h)
+data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h termhooks.h $(config_h)
eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
dispextern.h $(config_h)
floatfns.o: floatfns.c $(config_h)
fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h \
keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
- blockinput.h xterm.h
+ blockinput.h xterm.h termhooks.h
print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h \
- $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h
+ $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
+ termchar.h
lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h \
$(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
OTHER_FILES and OBJECTS_MACHINE
select which of these should be compiled. */
-sunfns.o: sunfns.c buffer.h window.h dispextern.h $(config_h)
+sunfns.o: sunfns.c buffer.h window.h dispextern.h termhooks.h $(config_h)
#ifdef HAVE_CARBON
abbrev.o buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
- scroll.o sysdep.o term.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
+ scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
xterm.o xselect.o sound.o: macgui.h
mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
coding.h ccl.h $(config_h)
${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
${emacsapp}Contents/Resources/Emacs.icns \
${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
- macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs \
- ${emacsapp}Contents/Resources/Emacs.rsrc
+ macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
mkdir -p ${emacsapp}Contents/MacOS/;
cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
- ${emacsapp}Contents/Resources/Emacs.rsrc: ../mac/src/Emacs.r
- /Developer/Tools/Rez -useDF \
- -o ${emacsapp}Contents/Resources/Emacs.rsrc \
- /System/Library/Frameworks/Carbon.framework/Headers/Carbon.r $<
#endif
${libsrc}emacstool${EXEEXT}: ${libsrc}emacstool.c
(frame)
Lisp_Object frame;
{
- Lisp_Object framelist, general;
+ Lisp_Object general;
general = Fmapcar (Qcdr, Vbuffer_alist);
if (FRAMEP (frame))
{
- Lisp_Object tail;
+ Lisp_Object framelist, prevlist, tail;
+ Lisp_Object args[3];
CHECK_FRAME (frame);
framelist = Fcopy_sequence (XFRAME (frame)->buffer_list);
+ prevlist = Fnreverse (Fcopy_sequence (XFRAME (frame)->buried_buffer_list));
- /* Remove from GENERAL any buffer that duplicates one in FRAMELIST. */
+ /* Remove from GENERAL any buffer that duplicates one in
+ FRAMELIST or PREVLIST. */
tail = framelist;
- while (! NILP (tail))
+ while (CONSP (tail))
{
general = Fdelq (XCAR (tail), general);
tail = XCDR (tail);
}
- return nconc2 (framelist, general);
+ tail = prevlist;
+ while (CONSP (tail))
+ {
+ general = Fdelq (XCAR (tail), general);
+ tail = XCDR (tail);
+ }
+
+ args[0] = framelist;
+ args[1] = general;
+ args[2] = prevlist;
+ return Fnconc (3, args);
}
return general;
XSETBUFFER (buf, b);
Vbuffer_alist = nconc2 (Vbuffer_alist, Fcons (Fcons (name, buf), Qnil));
- /* An error in calling the function here (should someone redfine it)
+ /* An error in calling the function here (should someone redefine it)
can lead to infinite regress until you run out of stack. rms
says that's not worth protecting against. */
if (!NILP (Ffboundp (Qucs_set_table_for_input)))
If there is no live buffer named NAME, then return NAME.
Otherwise modify name by appending `<NUMBER>', incrementing NUMBER
\(starting at 2) until an unused name is found, and then return that name.
- Optional second argument IGNORE specifies a name that is okay to use
- \(if it is in the sequence to be tried)
- even if a buffer with that name exists. */)
+ Optional second argument IGNORE specifies a name that is okay to use (if
+ it is in the sequence to be tried) even if a buffer with that name exists. */)
(name, ignore)
register Lisp_Object name, ignore;
{
DEFUN ("buffer-modified-tick", Fbuffer_modified_tick, Sbuffer_modified_tick,
0, 1, 0,
doc: /* Return BUFFER's tick counter, incremented for each change in text.
- Each buffer has a tick counter which is incremented each time the text in
- that buffer is changed. It wraps around occasionally.
+ Each buffer has a tick counter which is incremented each time the
+ text in that buffer is changed. It wraps around occasionally.
No argument or nil as argument means use current buffer as BUFFER. */)
(buffer)
register Lisp_Object buffer;
XSETCDR (link, Vbuffer_alist);
Vbuffer_alist = link;
+ /* Effectively do a delq on buried_buffer_list. */
+
+ prev = Qnil;
+ for (link = XFRAME (frame)->buried_buffer_list; CONSP (link);
+ link = XCDR (link))
+ {
+ if (EQ (XCAR (link), buf))
+ {
+ if (NILP (prev))
+ XFRAME (frame)->buried_buffer_list = XCDR (link);
+ else
+ XSETCDR (prev, XCDR (XCDR (prev)));
+ break;
+ }
+ prev = link;
+ }
+
/* Now move this buffer to the front of frame_buffer_list also. */
prev = Qnil;
XSETCDR (link, Qnil);
Vbuffer_alist = nconc2 (Vbuffer_alist, link);
- /* Removing BUFFER from frame-specific lists
- has the effect of putting BUFFER at the end
- of the combined list in each frame. */
- frames_discard_buffer (buffer);
+ XFRAME (selected_frame)->buffer_list
+ = Fdelq (buffer, XFRAME (selected_frame)->buffer_list);
+ XFRAME (selected_frame)->buried_buffer_list
+ = Fcons (buffer, Fdelq (buffer, XFRAME (selected_frame)->buried_buffer_list));
}
return Qnil;
#include "syssignal.h"
#include "systty.h"
#include "blockinput.h"
+#include "frame.h"
+#include "termhooks.h"
#ifdef MSDOS
#include "msdos.h"
/* If synch_process_death is zero,
this is exit code of synchronous subprocess. */
int synch_process_retcode;
+
\f
/* Clean up when exiting Fcall_process.
On MSDOS, delete the temporary file on any kind of termination.
static int relocate_fd ();
+static char **
+add_env (char **env, char **new_env, char *string)
+{
+ char **ep;
+ int ok = 1;
+ if (string == NULL)
+ return new_env;
+
+ /* See if this string duplicates any string already in the env.
+ If so, don't put it in.
+ When an env var has multiple definitions,
+ we keep the definition that comes first in process-environment. */
+ for (ep = env; ok && ep != new_env; ep++)
+ {
+ char *p = *ep, *q = string;
+ while (ok)
+ {
+ if (*q != *p)
+ break;
+ if (*q == 0)
+ /* The string is a lone variable name; keep it for now, we
+ will remove it later. It is a placeholder for a
+ variable that is not to be included in the environment. */
+ break;
+ if (*q == '=')
+ ok = 0;
+ p++, q++;
+ }
+ }
+ if (ok)
+ *new_env++ = string;
+ return new_env;
+}
+
/* This is the last thing run in a newly forked inferior
either synchronous or asynchronous.
Copy descriptors IN, OUT and ERR as descriptors 0, 1 and 2.
temp[--i] = 0;
}
- /* Set `env' to a vector of the strings in Vprocess_environment. */
+ /* Set `env' to a vector of the strings in the environment. */
{
register Lisp_Object tem;
register char **new_env;
+ char **p, **q;
register int new_length;
+ Lisp_Object local = get_frame_param (XFRAME (Fframe_with_environment (selected_frame)),
+ Qenvironment);
new_length = 0;
+
for (tem = Vprocess_environment;
+ CONSP (tem) && STRINGP (XCAR (tem));
+ tem = XCDR (tem))
+ new_length++;
+
+ for (tem = local;
CONSP (tem) && STRINGP (XCAR (tem));
tem = XCDR (tem))
new_length++;
/* If we have a PWD envvar, pass one down,
but with corrected value. */
- if (getenv ("PWD"))
+ if (egetenv ("PWD"))
*new_env++ = pwd_var;
-
- /* Copy the Vprocess_environment strings into new_env. */
+
+ /* Overrides. */
for (tem = Vprocess_environment;
CONSP (tem) && STRINGP (XCAR (tem));
tem = XCDR (tem))
+ new_env = add_env (env, new_env, SDATA (XCAR (tem)));
+
+ /* Local part of environment. */
+ for (tem = local;
+ CONSP (tem) && STRINGP (XCAR (tem));
+ tem = XCDR (tem))
+ new_env = add_env (env, new_env, SDATA (XCAR (tem)));
+
+ *new_env = 0;
+
+ /* Remove variable names without values. */
+ p = q = env;
+ while (*p != 0)
{
- char **ep = env;
- char *string = (char *) SDATA (XCAR (tem));
- /* See if this string duplicates any string already in the env.
- If so, don't put it in.
- When an env var has multiple definitions,
- we keep the definition that comes first in process-environment. */
- for (; ep != new_env; ep++)
- {
- char *p = *ep, *q = string;
- while (1)
- {
- if (*q == 0)
- /* The string is malformed; might as well drop it. */
- goto duplicate;
- if (*q != *p)
- break;
- if (*q == '=')
- goto duplicate;
- p++, q++;
- }
- }
- *new_env++ = string;
- duplicate: ;
+ while (*q != 0 && strchr (*q, '=') == NULL)
+ *q++;
+ *p = *q++;
+ if (*p != 0)
+ p++;
}
- *new_env = 0;
}
#ifdef WINDOWSNT
prepare_standard_handles (in, out, err, handles);
}
static int
-getenv_internal (var, varlen, value, valuelen)
+getenv_internal (var, varlen, value, valuelen, frame)
char *var;
int varlen;
char **value;
int *valuelen;
+ Lisp_Object frame;
{
Lisp_Object scan;
- for (scan = Vprocess_environment; CONSP (scan); scan = XCDR (scan))
+ if (NILP (frame))
+ {
+ /* Try to find VAR in Vprocess_environment first. */
+ for (scan = Vprocess_environment; CONSP (scan); scan = XCDR (scan))
+ {
+ Lisp_Object entry = XCAR (scan);
+ if (STRINGP (entry)
+ && SBYTES (entry) >= varlen
+#ifdef WINDOWSNT
+ /* NT environment variables are case insensitive. */
+ && ! strnicmp (SDATA (entry), var, varlen)
+#else /* not WINDOWSNT */
+ && ! bcmp (SDATA (entry), var, varlen)
+#endif /* not WINDOWSNT */
+ )
+ {
+ if (SBYTES (entry) > varlen && SREF (entry, varlen) == '=')
+ {
+ *value = (char *) SDATA (entry) + (varlen + 1);
+ *valuelen = SBYTES (entry) - (varlen + 1);
+ return 1;
+ }
+ else if (SBYTES (entry) == varlen)
+ {
+ /* Lone variable names in Vprocess_environment mean that
+ variable should be removed from the environment. */
+ return 0;
+ }
+ }
+ }
+ frame = selected_frame;
+ }
+
+ /* Find the environment in which to search the variable. */
+ CHECK_FRAME (frame);
+ frame = Fframe_with_environment (frame);
+
+ for (scan = get_frame_param (XFRAME (frame), Qenvironment);
+ CONSP (scan);
+ scan = XCDR (scan))
{
Lisp_Object entry;
entry = XCAR (scan);
if (STRINGP (entry)
- && SBYTES (entry) > varlen
- && SREF (entry, varlen) == '='
+ && SBYTES (entry) > varlen
+ && SREF (entry, varlen) == '='
#ifdef WINDOWSNT
- /* NT environment variables are case insensitive. */
- && ! strnicmp (SDATA (entry), var, varlen)
+ /* NT environment variables are case insensitive. */
+ && ! strnicmp (SDATA (entry), var, varlen)
#else /* not WINDOWSNT */
- && ! bcmp (SDATA (entry), var, varlen)
+ && ! bcmp (SDATA (entry), var, varlen)
#endif /* not WINDOWSNT */
- )
+ )
{
*value = (char *) SDATA (entry) + (varlen + 1);
*valuelen = SBYTES (entry) - (varlen + 1);
return 0;
}
-DEFUN ("getenv-internal", Fgetenv_internal, Sgetenv_internal, 1, 1, 0,
- doc: /* Return the value of environment variable VAR, as a string.
-VAR should be a string. Value is nil if VAR is undefined in the environment.
-This function consults the variable `process-environment' for its value. */)
- (var)
- Lisp_Object var;
+DEFUN ("getenv-internal", Fgetenv_internal, Sgetenv_internal, 1, 2, 0,
+ doc: /* Get the value of environment variable VARIABLE.
+VARIABLE should be a string. Value is nil if VARIABLE is undefined in
+the environment. Otherwise, value is a string.
+
+This function searches `process-environment' for VARIABLE. If it is
+not found there, then it continues the search in the environment list
+of the selected frame.
+
+If optional parameter FRAME is non-nil, then this function will ignore
+`process-environment' and will simply look up the variable in that
+frame's environment. */)
+ (variable, frame)
+ Lisp_Object variable, frame;
{
char *value;
int valuelen;
- CHECK_STRING (var);
- if (getenv_internal (SDATA (var), SBYTES (var),
- &value, &valuelen))
+ CHECK_STRING (variable);
+ if (getenv_internal (SDATA (variable), SBYTES (variable),
+ &value, &valuelen, frame))
return make_string (value, valuelen);
else
return Qnil;
}
-/* A version of getenv that consults process_environment, easily
- callable from C. */
+/* A version of getenv that consults the Lisp environment lists,
+ easily callable from C. */
char *
egetenv (var)
char *var;
char *value;
int valuelen;
- if (getenv_internal (var, strlen (var), &value, &valuelen))
+ if (getenv_internal (var, strlen (var), &value, &valuelen, Qnil))
return value;
else
return 0;
{
char *dir = getenv ("TMPDIR");
Vtemp_file_name_pattern
- = Fexpand_file_name (build_string ("emacsXXXXXX"),
- build_string (dir));
+ = Fexpand_file_name (build_string ("emacsXXXXXX"),
+ build_string (dir));
}
else
Vtemp_file_name_pattern = build_string ("/tmp/emacsXXXXXX");
}
void
-set_process_environment ()
+set_initial_environment ()
{
register char **envp;
-
- Vprocess_environment = Qnil;
+ Lisp_Object env = Qnil;
#ifndef CANNOT_DUMP
if (initialized)
#endif
- for (envp = environ; *envp; envp++)
- Vprocess_environment = Fcons (build_string (*envp),
- Vprocess_environment);
+ {
+ for (envp = environ; *envp; envp++)
+ env = Fcons (build_string (*envp), env);
+ store_frame_param (SELECTED_FRAME(), Qenvironment, env);
+ }
}
void
DEFVAR_LISP ("doc-directory", &Vdoc_directory,
doc: /* Directory containing the DOC file that comes with GNU Emacs.
- This is usually the same as data-directory. */);
+ This is usually the same as `data-directory'. */);
DEFVAR_LISP ("configure-info-directory", &Vconfigure_info_directory,
doc: /* For internal use by the build procedure only.
This is the name of the directory in which the build procedure installed
- Emacs's info files; the default value for Info-default-directory-list
+ Emacs's info files; the default value for `Info-default-directory-list'
includes this. */);
Vconfigure_info_directory = build_string (PATH_INFO);
/* This variable is initialized in init_callproc. */
DEFVAR_LISP ("process-environment", &Vprocess_environment,
- doc: /* List of environment variables for subprocesses to inherit.
+ doc: /* List of overridden environment variables for subprocesses to inherit.
Each element should be a string of the form ENVVARNAME=VALUE.
+
+Entries in this list take precedence to those in the frame-local
+environments. Therefore, let-binding `process-environment' is an easy
+way to temporarily change the value of an environment variable,
+irrespective of where it comes from. To use `process-environment' to
+remove an environment variable, include only its name in the list,
+without "=VALUE".
+
+This variable is set to nil when Emacs starts.
+
If multiple entries define the same variable, the first one always
takes precedence.
-The environment which Emacs inherits is placed in this variable
-when Emacs starts.
+
Non-ASCII characters are encoded according to the initial value of
-`locale-coding-system', i.e. the elements must normally be decoded for use.
+`locale-coding-system', i.e. the elements must normally be decoded for
+use.
+
See `setenv' and `getenv'. */);
+ Vprocess_environment = Qnil;
#ifndef VMS
defsubr (&Scall_process);
#include "lisp.h"
#include "termchar.h"
#include "termopts.h"
-#include "termhooks.h"
/* cm.h must come after dispextern.h on Windows. */
#include "dispextern.h"
#include "cm.h"
#include "charset.h"
#include "keyboard.h"
#include "frame.h"
+#include "termhooks.h"
#include "window.h"
#include "commands.h"
#include "disptab.h"
EMACS_INT baud_rate;
/* Either nil or a symbol naming the window system under which Emacs
- is running. */
+ creates the first frame. */
-Lisp_Object Vwindow_system;
+Lisp_Object Vinitial_window_system;
/* Version number of X windows: 10, 11 or nil. */
struct frame *last_nonminibuf_frame;
-/* Stdio stream being used for copy of all output. */
-
-FILE *termscript;
-
-/* Structure for info on cursor positioning. */
-
-struct cm Wcm;
-
/* 1 means SIGWINCH happened when not safe. */
int delayed_size_change;
static struct frame *frame_matrix_frame;
-/* Current interface for window-based redisplay. Set from init_xterm.
- A null value means we are not using window-based redisplay. */
-
-struct redisplay_interface *rif;
-
/* Non-zero means that fonts have been loaded since the last glyph
matrix adjustments. Redisplay must stop, and glyph matrices must
be adjusted when this flag becomes non-zero during display. The
{
int c = glyph->u.ch;
int face_id = glyph->face_id;
- if (must_write_spaces)
+ if (FRAME_MUST_WRITE_SPACES (SELECTED_FRAME ())) /* XXX Is SELECTED_FRAME OK here? */
c -= SPACEGLYPH;
hash = (((hash << 4) + (hash >> 24)) & 0x0fffffff) + c;
hash = (((hash << 4) + (hash >> 24)) & 0x0fffffff) + face_id;
int glyph_table_len = GLYPH_TABLE_LENGTH;
/* Ignore trailing and leading spaces if we can. */
- if (!must_write_spaces)
+ if (!FRAME_MUST_WRITE_SPACES (SELECTED_FRAME ())) /* XXX Is SELECTED_FRAME OK here? */
{
/* Skip from the end over trailing spaces. */
while (end > beg && CHAR_GLYPH_SPACE_P (*(end - 1)))
#if GLYPH_DEBUG
-/* Flush standard output. This is sometimes useful to call from
- the debugger. */
+/* Flush standard output. This is sometimes useful to call from the debugger.
+ XXX Maybe this should be changed to flush the current terminal instead of
+ stdout.
+*/
void
flush_stdout ()
return Qnil;
update_begin (f);
+#ifdef MSDOS
if (FRAME_MSDOS_P (f))
- set_terminal_modes ();
- clear_frame ();
+ set_terminal_modes (FRAME_TERMINAL (f));
+#endif
+ clear_frame (f);
clear_current_matrices (f);
update_end (f);
- fflush (stdout);
+ if (FRAME_TERMCAP_P (f))
+ fflush (FRAME_TTY (f)->output);
windows_or_buffers_changed++;
/* Mark all windows as inaccurate, so that every window will have
its redisplay done. */
/* If we can't insert glyphs, we can use this method only
at the end of a line. */
- if (!char_ins_del_ok)
+ if (!FRAME_CHAR_INS_DEL_OK (f))
if (PT != ZV && FETCH_BYTE (PT_BYTE) != '\n')
return 0;
updated_row = glyph_row;
updated_area = TEXT_AREA;
update_begin (f);
- if (rif)
+ if (FRAME_RIF (f))
{
- rif->update_window_begin_hook (w);
+ FRAME_RIF (f)->update_window_begin_hook (w);
if (glyphs == end - n
/* In front of a space added by append_space. */
|| (glyphs == end - n - 1
&& (end - n)->charpos <= 0))
- rif->write_glyphs (glyphs, n);
+ FRAME_RIF (f)->write_glyphs (glyphs, n);
else
- rif->insert_glyphs (glyphs, n);
+ FRAME_RIF (f)->insert_glyphs (glyphs, n);
}
else
{
if (glyphs == end - n)
- write_glyphs (glyphs, n);
+ write_glyphs (f, glyphs, n);
else
- insert_glyphs (glyphs, n);
+ insert_glyphs (f, glyphs, n);
}
w->cursor.hpos += n;
a frame matrix is used, cursor_to expects frame coordinates,
and the X and Y parameters are not used. */
if (window_redisplay_p)
- rif->cursor_to (w->cursor.vpos, w->cursor.hpos,
- w->cursor.y, w->cursor.x);
+ FRAME_RIF (f)->cursor_to (w->cursor.vpos, w->cursor.hpos,
+ w->cursor.y, w->cursor.x);
else
{
int x, y;
? XFASTINT (w->left_margin_cols)
: 0));
y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos);
- cursor_to (y, x);
+ cursor_to (f, y, x);
}
#ifdef HAVE_WINDOW_SYSTEM
update_window_fringes (w, 0);
#endif
- if (rif)
- rif->update_window_end_hook (w, 1, 0);
+ if (FRAME_RIF (f))
+ FRAME_RIF (f)->update_window_end_hook (w, 1, 0);
update_end (f);
updated_row = NULL;
- fflush (stdout);
+ if (FRAME_TERMCAP_P (f))
+ fflush (FRAME_TTY (f)->output);
TRACE ((stderr, "direct output for insert\n"));
mark_window_display_accurate (it.window, 1);
&& w->cursor.hpos < w->desired_matrix->matrix_w);
if (FRAME_WINDOW_P (f))
- rif->cursor_to (w->cursor.vpos, w->cursor.hpos,
- w->cursor.y, w->cursor.x);
+ FRAME_RIF (f)->cursor_to (w->cursor.vpos, w->cursor.hpos,
+ w->cursor.y, w->cursor.x);
else
{
int x, y;
? XFASTINT (w->left_margin_cols)
: 0));
y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos);
- cursor_to (y, x);
+ cursor_to (f, y, x);
}
- fflush (stdout);
+ if (FRAME_TERMCAP_P (f))
+ fflush (FRAME_TTY (f)->output);
redisplay_performed_directly_p = 1;
return 1;
}
int paused_p;
struct window *root_window = XWINDOW (f->root_window);
+ if (redisplay_dont_pause)
+ force_p = 1;
#if PERIODIC_PREEMPTION_CHECKING
- if (!force_p && NUMBERP (Vredisplay_preemption_period))
+ else if (NILP (Vredisplay_preemption_period))
+ force_p = 1;
+ else if (!force_p && NUMBERP (Vredisplay_preemption_period))
{
EMACS_TIME tm;
double p = XFLOATINT (Vredisplay_preemption_period);
update_end (f);
/* This flush is a performance bottleneck under X,
- and it doesn't seem to be necessary anyway (in general).
+ and it doesn't seem to be necessary anyway (in general).
It is necessary when resizing the window with the mouse, or
- at least the fringes are not redrawn in a timely manner. ++kfs */
+ at least the fringes are not redrawn in a timely manner. ++kfs */
if (f->force_flush_display_p)
- {
- rif->flush_display (f);
- f->force_flush_display_p = 0;
- }
+ {
+ FRAME_RIF (f)->flush_display (f);
+ f->force_flush_display_p = 0;
+ }
}
else
{
paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p);
update_end (f);
- if (termscript)
- fflush (termscript);
- fflush (stdout);
+ if (FRAME_TERMCAP_P (f))
+ {
+ if (FRAME_TTY (f)->termscript)
+ fflush (FRAME_TTY (f)->termscript);
+ fflush (FRAME_TTY (f)->output);
+ }
/* Check window matrices for lost pointers. */
#if GLYPH_DEBUG
/* Record that this is not a frame-based redisplay. */
set_frame_matrix_frame (NULL);
+ if (redisplay_dont_pause)
+ force_p = 1;
#if PERIODIC_PREEMPTION_CHECKING
- if (!force_p && NUMBERP (Vredisplay_preemption_period))
+ else if (NILP (Vredisplay_preemption_period))
+ force_p = 1;
+ else if (!force_p && NUMBERP (Vredisplay_preemption_period))
{
EMACS_TIME tm;
double p = XFLOATINT (Vredisplay_preemption_period);
int yb;
{
int i;
-
+ struct frame *f = XFRAME (WINDOW_FRAME (w));
+
/* If rows overlapping others have been changed, the rows being
overlapped have to be redrawn. This won't draw lines that have
already been drawn in update_window_line because overlapped_p in
{
updated_row = row;
updated_area = area;
- rif->cursor_to (i, 0, row->y, area == TEXT_AREA ? row->x : 0);
+ FRAME_RIF (f)->cursor_to (i, 0, row->y,
+ area == TEXT_AREA ? row->x : 0);
if (row->used[area])
- rif->write_glyphs (row->glyphs[area], row->used[area]);
- rif->clear_end_of_line (-1);
+ FRAME_RIF (f)->write_glyphs (row->glyphs[area],
+ row->used[area]);
+ FRAME_RIF (f)->clear_end_of_line (-1);
}
row->overlapped_p = 0;
{
int i, bottom_y;
struct glyph_row *row;
-
+ struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
+
for (i = 0; i < w->current_matrix->nrows; ++i)
{
row = w->current_matrix->rows + i;
#endif
extern int input_pending;
extern Lisp_Object do_mouse_tracking;
+ struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
#if GLYPH_DEBUG
/* Check that W's frame doesn't have glyph matrices. */
xassert (FRAME_WINDOW_P (XFRAME (WINDOW_FRAME (w))));
- xassert (updating_frame != NULL);
#endif
/* Check pending input the first time so that we can quickly return. */
- if (redisplay_dont_pause)
- force_p = 1;
- #if PERIODIC_PREEMPTION_CHECKING
- else if (NILP (Vredisplay_preemption_period))
- force_p = 1;
- #else
- else if (!force_p)
+ #if !PERIODIC_PREEMPTION_CHECKING
+ if (!force_p)
detect_input_pending_ignore_squeezables ();
#endif
int area, vpos;
{
struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
+ struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
/* Let functions in xterm.c know what area subsequent X positions
will be relative to. */
{
struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos);
struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
+ struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
int changed_p = 0;
/* Let functions in xterm.c know what area subsequent X positions
mouse-face areas after scrolling and other operations.
However, it causes excessive flickering when mouse is moved
across the mode line. Luckily, turning it off for the mode
- line doesn't seem to hurt anything. -- cyd. */
- || (current_row->mouse_face_p && !current_row->mode_line_p)
+ line doesn't seem to hurt anything. -- cyd.
+ But it is still needed for the header line. -- kfs. */
+ || (current_row->mouse_face_p
+ && !(current_row->mode_line_p && vpos > 0))
|| current_row->x != desired_row->x)
{
rif->cursor_to (vpos, 0, desired_row->y, desired_row->x);
{
struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos);
struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
+ struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
int changed_p = 0;
/* Set the row being updated. This is important to let xterm.c
struct window *w;
{
struct frame *f = XFRAME (w->frame);
+ struct redisplay_interface *rif = FRAME_RIF (f);
int cx, cy, vpos, hpos;
/* Not intended for frame matrix updates. */
int i, j, first_old, first_new, last_old, last_new;
int nruns, nbytes, n, run_idx;
struct row_entry *entry;
+ struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
/* Skip over rows equal at the start. */
for (i = header_line_p ? 1 : 0; i < current_matrix->nrows - 1; ++i)
if (preempt_count <= 0)
preempt_count = 1;
- if (redisplay_dont_pause)
- force_p = 1;
- #if PERIODIC_PREEMPTION_CHECKING
- else if (NILP (Vredisplay_preemption_period))
- force_p = 1;
- #else
- else if (!force_p && detect_input_pending_ignore_squeezables ())
+ #if !PERIODIC_PREEMPTION_CHECKING
+ if (!force_p && detect_input_pending_ignore_squeezables ())
{
pause = 1;
goto do_pause;
#endif
/* If we cannot insert/delete lines, it's no use trying it. */
- if (!line_ins_del_ok)
+ if (!FRAME_LINE_INS_DEL_OK (f))
inhibit_id_p = 1;
/* See if any of the desired lines are enabled; don't compute for
Also flush out if likely to have more than 1k buffered
otherwise. I'm told that some telnet connections get
really screwed by more than 1k output at once. */
- int outq = PENDING_OUTPUT_COUNT (stdout);
+ int outq = PENDING_OUTPUT_COUNT (FRAME_TTY (f)->output);
if (outq > 900
|| (outq > 20 && ((i - 1) % preempt_count == 0)))
{
- fflush (stdout);
+ fflush (FRAME_TTY (f)->output);
if (preempt_count == 1)
{
#ifdef EMACS_OUTQSIZE
if (EMACS_OUTQSIZE (0, &outq) < 0)
/* Probably not a tty. Ignore the error and reset
the outq count. */
- outq = PENDING_OUTPUT_COUNT (stdout);
+ outq = PENDING_OUTPUT_COUNT (FRAME_TTY (f->output));
#endif
outq *= 10;
if (baud_rate <= outq && baud_rate > 0)
}
}
- cursor_to (row, col);
+ cursor_to (f, row, col);
}
else
{
x += XFASTINT (w->left_margin_cols);
/* x = max (min (x, FRAME_TOTAL_COLS (f) - 1), 0); */
- cursor_to (y, x);
+ cursor_to (f, y, x);
}
}
}
}
/* If changed lines are few, don't allow preemption, don't scroll. */
- if ((!scroll_region_ok && changed_lines < baud_rate / 2400)
+ if ((!FRAME_SCROLL_REGION_OK (frame)
+ && changed_lines < baud_rate / 2400)
|| unchanged_at_bottom == FRAME_LINES (frame))
return 1;
window_size = (FRAME_LINES (frame) - unchanged_at_top
- unchanged_at_bottom);
- if (scroll_region_ok)
+ if (FRAME_SCROLL_REGION_OK (frame))
free_at_end_vpos -= unchanged_at_bottom;
- else if (memory_below_frame)
+ else if (FRAME_MEMORY_BELOW_FRAME (frame))
free_at_end_vpos = -1;
/* If large window, fast terminal and few lines in common between
current frame and desired frame, don't bother with i/d calc. */
- if (!scroll_region_ok && window_size >= 18 && baud_rate > 2400
+ if (!FRAME_SCROLL_REGION_OK (frame)
+ && window_size >= 18 && baud_rate > 2400
&& (window_size >=
10 * scrolling_max_lines_saved (unchanged_at_top,
FRAME_LINES (frame) - unchanged_at_bottom,
struct glyph_row *current_row = MATRIX_ROW (current_matrix, vpos);
struct glyph_row *desired_row = MATRIX_ROW (desired_matrix, vpos);
int must_write_whole_line_p;
- int write_spaces_p = must_write_spaces;
+ int write_spaces_p = FRAME_MUST_WRITE_SPACES (f);
int colored_spaces_p = (FACE_FROM_ID (f, DEFAULT_FACE_ID)->background
!= FACE_TTY_DEFAULT_BG_COLOR);
/* Write the contents of the desired line. */
if (nlen)
{
- cursor_to (vpos, 0);
- write_glyphs (nbody, nlen);
+ cursor_to (f, vpos, 0);
+ write_glyphs (f, nbody, nlen);
}
/* Don't call clear_end_of_line if we already wrote the whole
case but in the line below. */
if (nlen < FRAME_TOTAL_COLS (f))
{
- cursor_to (vpos, nlen);
- clear_end_of_line (FRAME_TOTAL_COLS (f));
+ cursor_to (f, vpos, nlen);
+ clear_end_of_line (f, FRAME_TOTAL_COLS (f));
}
else
/* Make sure we are in the right row, otherwise cursor movement
with cmgoto might use `ch' in the wrong row. */
- cursor_to (vpos, 0);
+ cursor_to (f, vpos, 0);
make_current (desired_matrix, current_matrix, vpos);
return;
nlen--;
/* If there's no i/d char, quickly do the best we can without it. */
- if (!char_ins_del_ok)
+ if (!FRAME_CHAR_INS_DEL_OK (f))
{
int i, j;
++j;
/* Output this run of non-matching chars. */
- cursor_to (vpos, i);
- write_glyphs (nbody + i, j - i);
+ cursor_to (f, vpos, i);
+ write_glyphs (f, nbody + i, j - i);
i = j - 1;
/* Now find the next non-match. */
/* Clear the rest of the line, or the non-clear part of it. */
if (olen > nlen)
{
- cursor_to (vpos, nlen);
- clear_end_of_line (olen);
+ cursor_to (f, vpos, nlen);
+ clear_end_of_line (f, olen);
}
/* Make current row = desired row. */
if (nlen > nsp)
{
- cursor_to (vpos, nsp);
- write_glyphs (nbody + nsp, nlen - nsp);
+ cursor_to (f, vpos, nsp);
+ write_glyphs (f, nbody + nsp, nlen - nsp);
}
/* Exchange contents between current_frame and new_frame. */
tem = (nlen - nsp) - (olen - osp);
if (endmatch && tem
- && (!char_ins_del_ok || endmatch <= char_ins_del_cost (f)[tem]))
+ && (!FRAME_CHAR_INS_DEL_OK (f)
+ || endmatch <= char_ins_del_cost (f)[tem]))
endmatch = 0;
/* nsp - osp is the distance to insert or delete.
Is it worth it? */
if (nsp != osp
- && (!char_ins_del_ok
+ && (!FRAME_CHAR_INS_DEL_OK (f)
|| begmatch + endmatch <= char_ins_del_cost (f)[nsp - osp]))
{
begmatch = 0;
if (osp > nsp)
{
- cursor_to (vpos, nsp);
- delete_glyphs (osp - nsp);
+ cursor_to (f, vpos, nsp);
+ delete_glyphs (f, osp - nsp);
}
else if (nsp > osp)
{
must delete first to avoid losing data in the insert */
if (endmatch && nlen < olen + nsp - osp)
{
- cursor_to (vpos, nlen - endmatch + osp - nsp);
- delete_glyphs (olen + nsp - osp - nlen);
+ cursor_to (f, vpos, nlen - endmatch + osp - nsp);
+ delete_glyphs (f, olen + nsp - osp - nlen);
olen = nlen - (nsp - osp);
}
- cursor_to (vpos, osp);
- insert_glyphs (0, nsp - osp);
+ cursor_to (f, vpos, osp);
+ insert_glyphs (f, 0, nsp - osp);
}
olen += nsp - osp;
unnecessary cursor movement. */
if (nlen - tem > 0)
{
- cursor_to (vpos, nsp + begmatch);
- write_glyphs (nbody + nsp + begmatch, nlen - tem);
+ cursor_to (f, vpos, nsp + begmatch);
+ write_glyphs (f, nbody + nsp + begmatch, nlen - tem);
}
}
else if (nlen > olen)
int out = olen - tem; /* Columns to be overwritten originally. */
int del;
- cursor_to (vpos, nsp + begmatch);
+ cursor_to (f, vpos, nsp + begmatch);
/* Calculate columns we can actually overwrite. */
while (CHAR_GLYPH_PADDING_P (nbody[nsp + begmatch + out]))
out--;
- write_glyphs (nbody + nsp + begmatch, out);
+ write_glyphs (f, nbody + nsp + begmatch, out);
/* If we left columns to be overwritten, we must delete them. */
del = olen - tem - out;
if (del > 0)
- delete_glyphs (del);
+ delete_glyphs (f, del);
/* At last, we insert columns not yet written out. */
- insert_glyphs (nbody + nsp + begmatch + out, nlen - olen + del);
+ insert_glyphs (f, nbody + nsp + begmatch + out, nlen - olen + del);
olen = nlen;
}
else if (olen > nlen)
{
- cursor_to (vpos, nsp + begmatch);
- write_glyphs (nbody + nsp + begmatch, nlen - tem);
- delete_glyphs (olen - nlen);
+ cursor_to (f, vpos, nsp + begmatch);
+ write_glyphs (f, nbody + nsp + begmatch, nlen - tem);
+ delete_glyphs (f, olen - nlen);
olen = nlen;
}
}
/* If any unerased characters remain after the new line, erase them. */
if (olen > nlen)
{
- cursor_to (vpos, nlen);
- clear_end_of_line (olen);
+ cursor_to (f, vpos, nlen);
+ clear_end_of_line (f, olen);
}
/* Exchange contents between current_frame and new_frame. */
#endif
int old_errno = errno;
+ struct tty_display_info *tty;
+
signal (SIGWINCH, window_change_signal);
SIGNAL_THREAD_CHECK (signalnum);
- get_frame_size (&width, &height);
-
- /* The frame size change obviously applies to a termcap-controlled
- frame. Find such a frame in the list, and assume it's the only
- one (since the redisplay code always writes to stdout, not a
- FILE * specified in the frame structure). Record the new size,
- but don't reallocate the data structures now. Let that be done
- later outside of the signal handler. */
+ /* The frame size change obviously applies to a single
+ termcap-controlled terminal, but we can't decide which.
+ Therefore, we resize the frames corresponding to each tty.
+ */
+ for (tty = tty_list; tty; tty = tty->next) {
- {
- Lisp_Object tail, frame;
+ if (! tty->term_initted)
+ continue;
- FOR_EACH_FRAME (tail, frame)
- {
- if (FRAME_TERMCAP_P (XFRAME (frame)))
- {
- change_frame_size (XFRAME (frame), height, width, 0, 1, 0);
- break;
- }
- }
+ get_tty_size (fileno (tty->input), &width, &height);
+
+ if (width > 5 && height > 2) {
+ Lisp_Object tail, frame;
+
+ FOR_EACH_FRAME (tail, frame)
+ if (FRAME_TERMCAP_P (XFRAME (frame)) && FRAME_TTY (XFRAME (frame)) == tty)
+ /* Record the new sizes, but don't reallocate the data
+ structures now. Let that be done later outside of the
+ signal handler. */
+ change_frame_size (XFRAME (frame), height, width, 0, 1, 0);
+ }
}
-
+
errno = old_errno;
}
#endif /* SIGWINCH */
{
Lisp_Object tail, frame;
- if (! FRAME_WINDOW_P (f))
+ if (FRAME_MSDOS_P (f))
{
- /* When using termcap, or on MS-DOS, all frames use
- the same screen, so a change in size affects all frames. */
+ /* On MS-DOS, all frames use the same screen, so a change in
+ size affects all frames. Termcap now supports multiple
+ ttys. */
FOR_EACH_FRAME (tail, frame)
if (! FRAME_WINDOW_P (XFRAME (frame)))
change_frame_size_1 (XFRAME (frame), newheight, newwidth,
newheight - FRAME_TOP_MARGIN (f), 0);
if (FRAME_TERMCAP_P (f) && !pretend)
- FrameRows = newheight;
+ FrameRows (FRAME_TTY (f)) = newheight;
}
if (new_frame_total_cols != FRAME_TOTAL_COLS (f))
set_window_width (FRAME_MINIBUF_WINDOW (f), new_frame_total_cols, 0);
if (FRAME_TERMCAP_P (f) && !pretend)
- FrameCols = newwidth;
+ FrameCols (FRAME_TTY (f)) = newwidth;
if (WINDOWP (f->tool_bar_window))
XSETFASTINT (XWINDOW (f->tool_bar_window)->total_cols, newwidth);
(file)
Lisp_Object file;
{
- if (termscript != 0) fclose (termscript);
- termscript = 0;
+ struct tty_display_info *tty;
+
+ if (! FRAME_TERMCAP_P (SELECTED_FRAME ()))
+ error ("Current frame is not on a tty device");
+
+ tty = CURTTY ();
+
+ if (tty->termscript != 0)
+ fclose (tty->termscript);
+ tty->termscript = 0;
if (! NILP (file))
{
file = Fexpand_file_name (file, Qnil);
- termscript = fopen (SDATA (file), "w");
- if (termscript == 0)
+ tty->termscript = fopen (SDATA (file), "w");
+ if (tty->termscript == 0)
report_file_error ("Opening termscript", Fcons (file, Qnil));
}
return Qnil;
DEFUN ("send-string-to-terminal", Fsend_string_to_terminal,
- Ssend_string_to_terminal, 1, 1, 0,
+ Ssend_string_to_terminal, 1, 2, 0,
doc: /* Send STRING to the terminal without alteration.
-Control characters in STRING will have terminal-dependent effects. */)
- (string)
+Control characters in STRING will have terminal-dependent effects.
+
+Optional parameter TERMINAL specifies the tty terminal device to use.
+It may be a terminal id, a frame, or nil for the terminal used by the
+currently selected frame. */)
+ (string, terminal)
Lisp_Object string;
+ Lisp_Object terminal;
{
+ struct terminal *t = get_tty_terminal (terminal, 1);
+ struct tty_display_info *tty;
+
/* ??? Perhaps we should do something special for multibyte strings here. */
CHECK_STRING (string);
- fwrite (SDATA (string), 1, SBYTES (string), stdout);
- fflush (stdout);
- if (termscript)
+
+ if (!t)
+ error ("Unknown terminal device");
+
+ tty = t->display_info.tty;
+
+ if (tty->termscript)
{
- fwrite (SDATA (string), 1, SBYTES (string),
- termscript);
- fflush (termscript);
+ fwrite (SDATA (string), 1, SBYTES (string), tty->termscript);
+ fflush (tty->termscript);
}
+ fwrite (SDATA (string), 1, SBYTES (string), tty->output);
+ fflush (tty->output);
return Qnil;
}
if (noninteractive)
putchar (07);
else
- ring_bell ();
- fflush (stdout);
+ ring_bell (XFRAME (selected_frame));
}
else
bitch_at_user ();
else if (!INTERACTIVE) /* Stop executing a keyboard macro. */
error ("Keyboard macro terminated by a command ringing the bell");
else
- ring_bell ();
- fflush (stdout);
+ ring_bell (XFRAME (selected_frame));
}
Initialization
***********************************************************************/
-char *terminal_type;
-
/* Initialization done when Emacs fork is started, before doing stty.
Determine terminal type and set terminal_driver. Then invoke its
decoding routine to set up variables in the terminal package. */
void
init_display ()
{
+ char *terminal_type;
+
#ifdef HAVE_X_WINDOWS
extern int display_arg;
#endif
SET_CHAR_GLYPH_FROM_GLYPH (space_glyph, ' ');
space_glyph.charpos = -1;
- meta_key = 0;
inverse_video = 0;
cursor_in_echo_area = 0;
terminal_type = (char *) 0;
/* Now is the time to initialize this; it's used by init_sys_modes
during startup. */
- Vwindow_system = Qnil;
+ Vinitial_window_system = Qnil;
+
+ /* SIGWINCH needs to be handled no matter what display we start
+ with. Otherwise newly opened tty frames will not resize
+ automatically. */
+#ifdef SIGWINCH
+#ifndef CANNOT_DUMP
+ if (initialized)
+#endif /* CANNOT_DUMP */
+ signal (SIGWINCH, window_change_signal);
+#endif /* SIGWINCH */
/* If the user wants to use a window system, we shouldn't bother
initializing the terminal. This is especially important when the
#endif
)
{
- Vwindow_system = intern ("x");
+ Vinitial_window_system = intern ("x");
#ifdef HAVE_X11
Vwindow_system_version = make_number (11);
#else
#ifdef HAVE_NTGUI
if (!inhibit_window_system)
{
- Vwindow_system = intern ("w32");
+ Vinitial_window_system = intern ("w32");
Vwindow_system_version = make_number (1);
adjust_frame_glyphs_initially ();
return;
#ifdef MAC_OS
if (!inhibit_window_system)
{
- Vwindow_system = intern ("mac");
+ Vinitial_window_system = intern ("mac");
Vwindow_system_version = make_number (1);
adjust_frame_glyphs_initially ();
return;
}
#endif /* VMS */
- term_init (terminal_type);
-
+ {
+ struct terminal *t;
+ struct frame *f = XFRAME (selected_frame);
+
+ /* Open a display on the controlling tty. */
+ t = init_tty (0, terminal_type, 1); /* Errors are fatal. */
+
+ /* Convert the initial frame to use the new display. */
+ if (f->output_method != output_initial)
+ abort ();
+ f->output_method = t->type;
+ f->terminal = t;
+
+ t->reference_count++;
+ t->display_info.tty->top_frame = selected_frame;
+ change_frame_size (XFRAME (selected_frame),
+ FrameRows (t->display_info.tty),
+ FrameCols (t->display_info.tty), 0, 0, 1);
+
+ /* Delete the initial terminal. */
+ if (--initial_terminal->reference_count == 0
+ && initial_terminal->delete_terminal_hook)
+ (*initial_terminal->delete_terminal_hook) (initial_terminal);
+
+ /* Update frame parameters to reflect the new type. */
+ Fmodify_frame_parameters (selected_frame, Fcons (Fcons (Qwindow_system, Qnil), Qnil));
+ Fmodify_frame_parameters
+ (selected_frame, Fcons (Fcons (Qtty_type,
+ Ftty_type (selected_frame)), Qnil));
+ Fmodify_frame_parameters (selected_frame, Fcons (Fcons (Qtty, Qnil), Qnil));
+ }
+
{
struct frame *sf = SELECTED_FRAME ();
int width = FRAME_TOTAL_COLS (sf);
adjust_frame_glyphs_initially ();
calculate_costs (XFRAME (selected_frame));
-#ifdef SIGWINCH
-#ifndef CANNOT_DUMP
- if (initialized)
-#endif /* CANNOT_DUMP */
- signal (SIGWINCH, window_change_signal);
-#endif /* SIGWINCH */
-
/* Set up faces of the initial terminal frame of a dumped Emacs. */
if (initialized
&& !noninteractive
and internal_terminal_init. */
&& (strcmp (terminal_type, "internal") != 0 || inhibit_window_system)
#endif
- && NILP (Vwindow_system))
+ && NILP (Vinitial_window_system))
{
/* For the initial frame, we don't have any way of knowing what
are the foreground and background colors of the terminal. */
Emacs's frame display when you reenter Emacs.
It is up to you to set this variable if your terminal can do that. */);
- DEFVAR_LISP ("window-system", &Vwindow_system,
- doc: /* Name of window system that Emacs is displaying through.
+ DEFVAR_LISP ("initial-window-system", &Vinitial_window_system,
+ doc: /* Name of the window system that Emacs uses for the first frame.
The value is a symbol--for instance, `x' for X windows.
The value is nil if Emacs is using a text-only terminal. */);
if (noninteractive)
#endif
{
- Vwindow_system = Qnil;
+ Vinitial_window_system = Qnil;
Vwindow_system_version = Qnil;
}
}
#include "fontset.h"
#endif
#include "blockinput.h"
+#include "termchar.h"
#include "termhooks.h"
#include "dispextern.h"
#include "window.h"
Lisp_Object Qvisible;
Lisp_Object Qdisplay_type;
Lisp_Object Qbackground_mode;
- Lisp_Object Qinhibit_default_face_x_resources;
Lisp_Object Qx_frame_parameter;
Lisp_Object Qx_resource_name;
+Lisp_Object Qterminal;
+Lisp_Object Qterminal_live_p;
/* Frame parameters (set or reported). */
Lisp_Object Qunsplittable;
Lisp_Object Qmenu_bar_lines, Qtool_bar_lines;
Lisp_Object Qleft_fringe, Qright_fringe;
-Lisp_Object Qbuffer_predicate, Qbuffer_list;
+Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list;
Lisp_Object Qtty_color_mode;
+Lisp_Object Qtty, Qtty_type;
+Lisp_Object Qwindow_system;
+Lisp_Object Qenvironment;
Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth;
Lisp_Object Qinhibit_face_set_after_frame_default;
Lisp_Object Qface_set_after_frame_default;
-
Lisp_Object Vterminal_frame;
Lisp_Object Vdefault_frame_alist;
Lisp_Object Vdefault_frame_scroll_bars;
\f
static void
set_menu_bar_lines_1 (window, n)
- Lisp_Object window;
- int n;
+ Lisp_Object window;
+ int n;
{
struct window *w = XWINDOW (window);
Lisp_Object Vemacs_iconified;
Lisp_Object Vframe_list;
-struct x_output tty_display;
-
extern Lisp_Object Vminibuffer_list;
extern Lisp_Object get_minibuffer ();
extern Lisp_Object Fhandle_switch_frame ();
return Qnil;
switch (XFRAME (object)->output_method)
{
+ case output_initial: /* The initial frame is like a termcap frame. */
case output_termcap:
return Qt;
case output_x_window:
DEFUN ("frame-live-p", Fframe_live_p, Sframe_live_p, 1, 1, 0,
doc: /* Return non-nil if OBJECT is a frame which has not been deleted.
Value is nil if OBJECT is not a live frame. If object is a live
-frame, the return value indicates what sort of output device it is
+frame, the return value indicates what sort of terminal device it is
displayed on. See the documentation of `framep' for possible
return values. */)
(object)
: Qnil);
}
+DEFUN ("window-system", Fwindow_system, Swindow_system, 0, 1, 0,
+ doc: /* The name of the window system that FRAME is displaying through.
+The value is a symbol---for instance, 'x' for X windows.
+The value is nil if Emacs is using a text-only terminal.
+
+FRAME defaults to the currently selected frame. */)
+ (frame)
+ Lisp_Object frame;
+{
+ Lisp_Object type;
+ if (NILP (frame))
+ frame = selected_frame;
+
+ type = Fframep (frame);
+
+ if (NILP (type))
+ wrong_type_argument (Qframep, frame);
+
+ if (EQ (type, Qt))
+ return Qnil;
+ else
+ return type;
+}
+
struct frame *
make_frame (mini_p)
int mini_p;
f->menu_bar_items_used = 0;
f->buffer_predicate = Qnil;
f->buffer_list = Qnil;
-#ifdef MULTI_KBOARD
- f->kboard = initial_kboard;
-#endif
+ f->buried_buffer_list = Qnil;
f->namebuf = 0;
f->title = Qnil;
f->menu_bar_window = Qnil;
#ifdef MULTI_KBOARD
if (!NILP (mini_window)
- && XFRAME (XWINDOW (mini_window)->frame)->kboard != kb)
- error ("Frame and minibuffer must be on the same display");
+ && FRAME_KBOARD (XFRAME (XWINDOW (mini_window)->frame)) != kb)
+ error ("Frame and minibuffer must be on the same terminal");
#endif
/* Make a frame containing just a root window. */
}
#endif /* HAVE_WINDOW_SYSTEM */
\f
-/* Construct a frame that refers to the terminal (stdin and stdout). */
+/* Construct a frame that refers to a terminal. */
-static int terminal_frame_count;
+static int tty_frame_count;
struct frame *
-make_terminal_frame ()
+make_initial_frame (void)
{
- register struct frame *f;
+ struct frame *f;
+ struct terminal *terminal;
Lisp_Object frame;
- char name[20];
#ifdef MULTI_KBOARD
+ /* Create the initial keyboard. */
if (!initial_kboard)
{
initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
if (! (NILP (Vframe_list) || CONSP (Vframe_list)))
Vframe_list = Qnil;
+ terminal = init_initial_terminal ();
+
+ f = make_frame (1);
+ XSETFRAME (frame, f);
+
+ Vframe_list = Fcons (frame, Vframe_list);
+
+ tty_frame_count = 1;
+ f->name = build_string ("F1");
+
+ f->visible = 1;
+ f->async_visible = 1;
+
+ f->output_method = terminal->type;
+ f->terminal = terminal;
+ f->terminal->reference_count++;
+ f->output_data.nothing = 0;
+
+ FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
+ FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
+
+ FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
+ FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
+
+ return f;
+}
+
+
+struct frame *
+make_terminal_frame (struct terminal *terminal)
+{
+ register struct frame *f;
+ Lisp_Object frame;
+ char name[20];
+
+ if (terminal->deleted)
+ error ("Terminal is being deleted, can't create new frames on it");
+
f = make_frame (1);
XSETFRAME (frame, f);
Vframe_list = Fcons (frame, Vframe_list);
- terminal_frame_count++;
- sprintf (name, "F%d", terminal_frame_count);
+ tty_frame_count++;
+ sprintf (name, "F%d", tty_frame_count);
f->name = build_string (name);
f->visible = 1; /* FRAME_SET_VISIBLE wd set frame_garbaged. */
for the black color. Other frames all inherit their pixels
from what's already in the_only_x_display. */
if ((!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame)))
- && f->output_data.x->background_pixel == 0
- && f->output_data.x->foreground_pixel == 0)
+ && FRAME_BACKGROUND_PIXEL (f) == 0
+ && FRAME_FOREGROUND_PIXEL (f) == 0)
{
- f->output_data.x->background_pixel = FACE_TTY_DEFAULT_BG_COLOR;
- f->output_data.x->foreground_pixel = FACE_TTY_DEFAULT_FG_COLOR;
+ FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
+ FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
}
}
else
#else
#ifdef WINDOWSNT
f->output_method = output_termcap;
- f->output_data.x = &tty_display;
+ f->output_data.x = &tty_display; /* XXX ??? */
#else
#ifdef MAC_OS8
make_mac_terminal_frame (f);
#else
- f->output_data.x = &tty_display;
+ {
+ f->output_method = output_termcap;
+ f->terminal = terminal;
+ f->terminal->reference_count++;
+ create_tty_output (f);
+
+ FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
+ FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
+
+ FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
+ FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
+
+ /* Set the top frame to the newly created frame. */
+ if (FRAME_TTY (f)->top_frame
+ && FRAME_LIVE_P (XFRAME (FRAME_TTY (f)->top_frame)))
+ XFRAME (FRAME_TTY (f)->top_frame)->async_visible = 2; /* obscured */
+
+ FRAME_TTY (f)->top_frame = frame;
+ }
+
#ifdef CANNOT_DUMP
FRAME_FOREGROUND_PIXEL(f) = FACE_TTY_DEFAULT_FG_COLOR;
FRAME_BACKGROUND_PIXEL(f) = FACE_TTY_DEFAULT_BG_COLOR;
return f;
}
+/* Get a suitable value for frame parameter PARAMETER for a newly
+ created frame, based on (1) the user-supplied frame parameter
+ alist SUPPLIED_PARMS, (2) CURRENT_VALUE, and finally, if all else
+ fails, (3) Vdefault_frame_alist. */
+
+static Lisp_Object
+get_future_frame_param (Lisp_Object parameter,
+ Lisp_Object supplied_parms,
+ char *current_value)
+{
+ Lisp_Object result;
+
+ result = Fassq (parameter, supplied_parms);
+ if (NILP (result))
+ result = Fassq (parameter, XFRAME (selected_frame)->param_alist);
+ if (NILP (result) && current_value != NULL)
+ result = build_string (current_value);
+ if (NILP (result))
+ result = Fassq (parameter, Vdefault_frame_alist);
+ if (!NILP (result) && !STRINGP (result))
+ result = XCDR (result);
+ if (NILP (result) || !STRINGP (result))
+ result = Qnil;
+
+ return result;
+}
+
DEFUN ("make-terminal-frame", Fmake_terminal_frame, Smake_terminal_frame,
1, 1, 0,
- doc: /* Create an additional terminal frame.
-You can create multiple frames on a text-only terminal in this way.
-Only the selected terminal frame is actually displayed.
+ doc: /* Create an additional terminal frame, possibly on another terminal.
This function takes one argument, an alist specifying frame parameters.
-In practice, generally you don't need to specify any parameters.
-Note that changing the size of one terminal frame automatically affects all. */)
+
+You can create multiple frames on a single text-only terminal, but
+only one of them (the selected terminal frame) is actually displayed.
+
+In practice, generally you don't need to specify any parameters,
+except when you want to create a new frame on another terminal.
+In that case, the `tty' parameter specifies the device file to open,
+and the `tty-type' parameter specifies the terminal type. Example:
+
+ (make-terminal-frame '((tty . "/dev/pts/5") (tty-type . "xterm")))
+
+Note that changing the size of one terminal frame automatically
+affects all frames on the same terminal device. */)
(parms)
Lisp_Object parms;
{
struct frame *f;
+ struct terminal *t = NULL;
Lisp_Object frame, tem;
struct frame *sf = SELECTED_FRAME ();
if (sf->output_method != output_mac)
error ("Not running on a Macintosh screen; cannot make a new Macintosh frame");
#else
+#if 0 /* This should work now! */
if (sf->output_method != output_termcap)
error ("Not using an ASCII terminal now; cannot make a new ASCII frame");
#endif
+#endif
#endif /* not MSDOS */
+
+ {
+ Lisp_Object terminal;
+
+ terminal = Fassq (Qterminal, parms);
+ if (!NILP (terminal))
+ {
+ terminal = XCDR (terminal);
+ t = get_terminal (terminal, 1);
+ }
+ }
+
+ if (!t)
+ {
+ char *name = 0, *type = 0;
+ Lisp_Object tty, tty_type;
+
+ tty = get_future_frame_param
+ (Qtty, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame))
+ ? FRAME_TTY (XFRAME (selected_frame))->name
+ : NULL));
+ if (!NILP (tty))
+ {
+ name = (char *) alloca (SBYTES (tty) + 1);
+ strncpy (name, SDATA (tty), SBYTES (tty));
+ name[SBYTES (tty)] = 0;
+ }
+
+ tty_type = get_future_frame_param
+ (Qtty_type, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame))
+ ? FRAME_TTY (XFRAME (selected_frame))->type
+ : NULL));
+ if (!NILP (tty_type))
+ {
+ type = (char *) alloca (SBYTES (tty_type) + 1);
+ strncpy (type, SDATA (tty_type), SBYTES (tty_type));
+ type[SBYTES (tty_type)] = 0;
+ }
+
+ t = init_tty (name, type, 0); /* Errors are not fatal. */
+ }
- f = make_terminal_frame ();
+ f = make_terminal_frame (t);
- change_frame_size (f, FRAME_LINES (sf),
- FRAME_COLS (sf), 0, 0, 0);
+ {
+ int width, height;
+ get_tty_size (fileno (FRAME_TTY (f)->input), &width, &height);
+ change_frame_size (f, height, width, 0, 0, 0);
+ }
+
adjust_glyphs (f);
calculate_costs (f);
XSETFRAME (frame, f);
Fmodify_frame_parameters (frame, Vdefault_frame_alist);
Fmodify_frame_parameters (frame, parms);
-
+ Fmodify_frame_parameters (frame, Fcons (Fcons (Qwindow_system, Qnil), Qnil));
+ Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty_type,
+ build_string (t->display_info.tty->type)),
+ Qnil));
+ if (t->display_info.tty->name != NULL)
+ Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty,
+ build_string (t->display_info.tty->name)),
+ Qnil));
+ else
+ Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty, Qnil), Qnil));
+
/* Make the frame face alist be frame-specific, so that each
frame could change its face definitions independently. */
f->face_alist = Fcopy_alist (sf->face_alist);
frame's focus to FRAME instead.
FOR_DELETION non-zero means that the selected frame is being
- deleted, which includes the possibility that the frame's display
+ deleted, which includes the possibility that the frame's terminal
is dead. */
Lisp_Object
if (!for_deletion && FRAME_HAS_MINIBUF_P (sf))
resize_mini_window (XWINDOW (FRAME_MINIBUF_WINDOW (sf)), 1);
+ if (FRAME_TERMCAP_P (XFRAME (selected_frame))
+ && FRAME_TERMCAP_P (XFRAME (frame))
+ && FRAME_TTY (XFRAME (selected_frame)) == FRAME_TTY (XFRAME (frame)))
+ {
+ XFRAME (selected_frame)->async_visible = 2; /* obscured */
+ XFRAME (frame)->async_visible = 1;
+ FRAME_TTY (XFRAME (frame))->top_frame = frame;
+ }
+
selected_frame = frame;
if (! FRAME_MINIBUF_ONLY_P (XFRAME (selected_frame)))
last_nonminibuf_frame = XFRAME (selected_frame);
return XFRAME (frame)->selected_window = window;
}
+
\f
DEFUN ("frame-list", Fframe_list, Sframe_list,
0, 0, 0,
f = XCAR (tail);
if (passed
- && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
+ && ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame))
+ && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
+ || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame))
+ && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame)))))
{
/* Decide whether this frame is eligible to be returned. */
if (EQ (frame, f) && !NILP (prev))
return prev;
- if (FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
+ if ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame))
+ && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
+ || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame))
+ && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame))))
{
/* Decide whether this frame is eligible to be returned,
according to minibuf. */
return 1;
}
+/* Error handler for `delete-frame-functions'. */
+static Lisp_Object
+delete_frame_handler (Lisp_Object arg)
+{
+ add_to_log ("Error during `delete-frame': %s", arg, Qnil);
+ return Qnil;
+}
+
DEFUN ("delete-frame", Fdelete_frame, Sdelete_frame, 0, 2, "",
doc: /* Delete FRAME, permanently eliminating it from use.
If omitted, FRAME defaults to the selected frame.
{
struct frame *f;
struct frame *sf = SELECTED_FRAME ();
+ struct kboard *kb;
+
int minibuffer_selected;
if (EQ (frame, Qnil))
&& NILP (Fframe_parameter (frame, intern ("tooltip"))))
{
Lisp_Object args[2];
+ struct gcpro gcpro1, gcpro2;
+
+ /* Don't let a rogue function in `delete-frame-functions'
+ prevent the frame deletion. */
+ GCPRO2 (args[0], args[1]);
args[0] = intern ("delete-frame-functions");
args[1] = frame;
- Frun_hook_with_args (2, args);
+ internal_condition_case_2 (Frun_hook_with_args, 2, args,
+ Qt, delete_frame_handler);
+ UNGCPRO;
}
+ /* The hook may sometimes (indirectly) cause the frame to be deleted. */
+ if (! FRAME_LIVE_P (f))
+ return Qnil;
+
minibuffer_selected = EQ (minibuf_window, selected_window);
/* Don't let the frame remain selected. */
{
FOR_EACH_FRAME (tail, frame1)
{
- if (! EQ (frame, frame1))
+ if (! EQ (frame, frame1) && FRAME_LIVE_P (XFRAME (frame1)))
break;
}
}
if (EQ (f->minibuffer_window, echo_area_window))
echo_area_window = sf->minibuffer_window;
+ /* Don't allow other frames to refer to a deleted frame in their
+ 'environment parameter. */
+ {
+ Lisp_Object tail, frame1;
+ Lisp_Object env = get_frame_param (XFRAME (frame), Qenvironment);
+ FOR_EACH_FRAME (tail, frame1)
+ {
+ if (EQ (frame, frame1) || !FRAME_LIVE_P (XFRAME (frame1)))
+ continue;
+ if (EQ (frame, get_frame_param (XFRAME (frame1), Qenvironment)))
+ {
+ store_frame_param (XFRAME (frame1), Qenvironment, env);
+ if (!FRAMEP (env))
+ env = frame1;
+ }
+ }
+ }
+
/* Clear any X selections for this frame. */
#ifdef HAVE_X_WINDOWS
if (FRAME_X_P (f))
xfree (FRAME_MESSAGE_BUF (f));
/* Since some events are handled at the interrupt level, we may get
- an event for f at any time; if we zero out the frame's display
+ an event for f at any time; if we zero out the frame's terminal
now, then we may trip up the event-handling code. Instead, we'll
- promise that the display of the frame must be valid until we have
- called the window-system-dependent frame destruction routine. */
+ promise that the terminal of the frame must be valid until we
+ have called the window-system-dependent frame destruction
+ routine. */
- /* I think this should be done with a hook. */
-#ifdef HAVE_WINDOW_SYSTEM
- if (FRAME_WINDOW_P (f))
- x_destroy_window (f);
-#endif
+ if (FRAME_TERMINAL (f)->delete_frame_hook)
+ (*FRAME_TERMINAL (f)->delete_frame_hook) (f);
- f->output_data.nothing = 0;
+ {
+ struct terminal *terminal = FRAME_TERMINAL (f);
+ f->output_data.nothing = 0;
+ f->terminal = 0; /* Now the frame is dead. */
+
+ /* If needed, delete the terminal that this frame was on.
+ (This must be done after the frame is killed.) */
+ terminal->reference_count--;
+ if (terminal->reference_count == 0)
+ {
+ kb = NULL;
+ if (terminal->delete_terminal_hook)
+ (*terminal->delete_terminal_hook) (terminal);
+ else
+ delete_terminal (terminal);
+ }
+ else
+ kb = terminal->kboard;
+ }
/* If we've deleted the last_nonminibuf_frame, then try to find
another one. */
/* If there's no other frame on the same kboard, get out of
single-kboard state if we're in it for this kboard. */
- {
- Lisp_Object frames;
- /* Some frame we found on the same kboard, or nil if there are none. */
- Lisp_Object frame_on_same_kboard;
+ if (kb != NULL)
+ {
+ Lisp_Object frames;
+ /* Some frame we found on the same kboard, or nil if there are none. */
+ Lisp_Object frame_on_same_kboard;
- frame_on_same_kboard = Qnil;
+ frame_on_same_kboard = Qnil;
- for (frames = Vframe_list;
- CONSP (frames);
- frames = XCDR (frames))
- {
- Lisp_Object this;
- struct frame *f1;
+ for (frames = Vframe_list;
+ CONSP (frames);
+ frames = XCDR (frames))
+ {
+ Lisp_Object this;
+ struct frame *f1;
- this = XCAR (frames);
- if (!FRAMEP (this))
- abort ();
- f1 = XFRAME (this);
+ this = XCAR (frames);
+ if (!FRAMEP (this))
+ abort ();
+ f1 = XFRAME (this);
- if (FRAME_KBOARD (f) == FRAME_KBOARD (f1))
- frame_on_same_kboard = this;
- }
+ if (kb == FRAME_KBOARD (f1))
+ frame_on_same_kboard = this;
+ }
- if (NILP (frame_on_same_kboard))
- not_single_kboard_state (FRAME_KBOARD (f));
- }
+ if (NILP (frame_on_same_kboard))
+ not_single_kboard_state (kb);
+ }
/* If we've deleted this keyboard's default_minibuffer_frame, try to
find another one. Prefer minibuffer-only frames, but also notice
frames with other windows. */
- if (EQ (frame, FRAME_KBOARD (f)->Vdefault_minibuffer_frame))
+ if (kb != NULL && EQ (frame, kb->Vdefault_minibuffer_frame))
{
Lisp_Object frames;
/* Consider only frames on the same kboard
and only those with minibuffers. */
- if (FRAME_KBOARD (f) == FRAME_KBOARD (f1)
+ if (kb == FRAME_KBOARD (f1)
&& FRAME_HAS_MINIBUF_P (f1))
{
frame_with_minibuf = this;
break;
}
- if (FRAME_KBOARD (f) == FRAME_KBOARD (f1))
+ if (kb == FRAME_KBOARD (f1))
frame_on_same_kboard = this;
}
if (NILP (frame_with_minibuf))
abort ();
- FRAME_KBOARD (f)->Vdefault_minibuffer_frame = frame_with_minibuf;
+ kb->Vdefault_minibuffer_frame = frame_with_minibuf;
}
else
/* No frames left on this kboard--say no minibuffer either. */
- FRAME_KBOARD (f)->Vdefault_minibuffer_frame = Qnil;
+ kb->Vdefault_minibuffer_frame = Qnil;
}
/* Cause frame titles to update--necessary if we now have just one frame. */
#ifdef HAVE_MOUSE
/* It's okay for the hook to refrain from storing anything. */
- if (mouse_position_hook)
- (*mouse_position_hook) (&f, -1,
- &lispy_dummy, &party_dummy,
- &x, &y,
- &long_dummy);
+ if (FRAME_TERMINAL (f)->mouse_position_hook)
+ (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1,
+ &lispy_dummy, &party_dummy,
+ &x, &y,
+ &long_dummy);
if (! NILP (x))
{
col = XINT (x);
#ifdef HAVE_MOUSE
/* It's okay for the hook to refrain from storing anything. */
- if (mouse_position_hook)
- (*mouse_position_hook) (&f, -1,
- &lispy_dummy, &party_dummy,
- &x, &y,
- &long_dummy);
+ if (FRAME_TERMINAL (f)->mouse_position_hook)
+ (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1,
+ &lispy_dummy, &party_dummy,
+ &x, &y,
+ &long_dummy);
#endif
XSETFRAME (lispy_dummy, f);
return Fcons (lispy_dummy, Fcons (x, y));
(frame)
Lisp_Object frame;
{
+ struct frame *f;
if (NILP (frame))
frame = selected_frame;
CHECK_LIVE_FRAME (frame);
+ f = XFRAME (frame);
+
/* Do like the documentation says. */
Fmake_frame_visible (frame);
- if (frame_raise_lower_hook)
- (*frame_raise_lower_hook) (XFRAME (frame), 1);
+ if (FRAME_TERMINAL (f)->frame_raise_lower_hook)
+ (*FRAME_TERMINAL (f)->frame_raise_lower_hook) (f, 1);
return Qnil;
}
(frame)
Lisp_Object frame;
{
+ struct frame *f;
+
if (NILP (frame))
frame = selected_frame;
CHECK_LIVE_FRAME (frame);
- if (frame_raise_lower_hook)
- (*frame_raise_lower_hook) (XFRAME (frame), 0);
+ f = XFRAME (frame);
+
+ if (FRAME_TERMINAL (f)->frame_raise_lower_hook)
+ (*FRAME_TERMINAL (f)->frame_raise_lower_hook) (f, 0);
return Qnil;
}
(frame, focus_frame)
Lisp_Object frame, focus_frame;
{
+ struct frame *f;
+
/* Note that we don't check for a live frame here. It's reasonable
to redirect the focus of a frame you're about to delete, if you
know what other frame should receive those keystrokes. */
if (! NILP (focus_frame))
CHECK_LIVE_FRAME (focus_frame);
- XFRAME (frame)->focus_frame = focus_frame;
+ f = XFRAME (frame);
+
+ f->focus_frame = focus_frame;
- if (frame_rehighlight_hook)
- (*frame_rehighlight_hook) (XFRAME (frame));
+ if (FRAME_TERMINAL (f)->frame_rehighlight_hook)
+ (*FRAME_TERMINAL (f)->frame_rehighlight_hook) (f);
return Qnil;
}
XFRAME (frame)->buffer_list = list;
}
-/* Discard BUFFER from the buffer-list of each frame. */
+/* Discard BUFFER from the buffer-list and buried-buffer-list of each frame. */
void
frames_discard_buffer (buffer)
{
XFRAME (frame)->buffer_list
= Fdelq (buffer, XFRAME (frame)->buffer_list);
+ XFRAME (frame)->buried_buffer_list
+ = Fdelq (buffer, XFRAME (frame)->buried_buffer_list);
}
}
SBYTES (f->name)))
return;
- terminal_frame_count++;
- sprintf (namebuf, "F%d", terminal_frame_count);
+ tty_frame_count++;
+ sprintf (namebuf, "F%d", tty_frame_count);
name = build_string (namebuf);
}
else
{
register Lisp_Object old_alist_elt;
- /* The buffer-alist parameter is stored in a special place and is
- not in the alist. */
+ /* The buffer-list parameters are stored in a special place and not
+ in the alist. */
if (EQ (prop, Qbuffer_list))
{
f->buffer_list = val;
return;
}
+ if (EQ (prop, Qburied_buffer_list))
+ {
+ f->buried_buffer_list = val;
+ return;
+ }
/* If PROP is a symbol which is supposed to have frame-local values,
and it is set up based on this frame, switch to the global
if ((BUFFER_LOCAL_VALUEP (valcontents)
|| SOME_BUFFER_LOCAL_VALUEP (valcontents))
&& XBUFFER_LOCAL_VALUE (valcontents)->check_frame
+ && XBUFFER_LOCAL_VALUE (valcontents)->found_for_frame
&& XFRAME (XBUFFER_LOCAL_VALUE (valcontents)->frame) == f)
swap_in_global_binding (prop);
}
/* Install the chosen minibuffer window, with proper buffer. */
f->minibuffer_window = val;
}
++
++ return Qnil;
}
DEFUN ("frame-parameters", Fframe_parameters, Sframe_parameters, 0, 1, 0,
: FRAME_MINIBUF_WINDOW (f)));
store_in_alist (&alist, Qunsplittable, (FRAME_NO_SPLIT_P (f) ? Qt : Qnil));
store_in_alist (&alist, Qbuffer_list, frame_buffer_list (frame));
+ store_in_alist (&alist, Qburied_buffer_list, XFRAME (frame)->buried_buffer_list);
/* I think this should be done with a hook. */
#ifdef HAVE_WINDOW_SYSTEM
{
FRAME_PTR f;
register Lisp_Object tail, prop, val;
- int count = SPECPDL_INDEX ();
-
- /* Bind this to t to inhibit initialization of the default face from
- X resources in face-set-after-frame-default. If we don't inhibit
- this, modifying the `font' frame parameter, for example, while
- there is a `default.attributeFont' X resource, won't work,
- because `default's font is reset to the value of the X resource
- and that resets the `font' frame parameter. */
- specbind (Qinhibit_default_face_x_resources, Qt);
if (EQ (frame, Qnil))
frame = selected_frame;
call1 (Qframe_set_background_mode, frame);
}
}
-
- return unbind_to (count, Qnil);
+}
- return Qnil;
+DEFUN ("frame-with-environment", Fframe_with_environment, Sframe_with_environment, 0, 1, 0,
+ doc: /* Return the frame that has the environment variable list for FRAME.
+
+The frame-local environment variable list is normally shared between
+frames that were created in the same Emacsclient session. The
+environment list is stored in a single frame's 'environment parameter;
+the other frames' 'environment parameter is set to this frame. This
+function follows the chain of 'environment references to reach the
+frame that stores the actual local environment list, and returns that
+frame. */)
+ (frame)
+ Lisp_Object frame;
+{
+ Lisp_Object hare, tortoise;
+
+ if (NILP (frame))
+ frame = selected_frame;
+ CHECK_FRAME (frame);
+
+ hare = tortoise = get_frame_param (XFRAME (frame), Qenvironment);
+ while (!NILP (hare) && FRAMEP (hare))
+ {
+ frame = hare;
+ hare = get_frame_param (XFRAME (hare), Qenvironment);
+ if (NILP (hare) || !FRAMEP (hare))
+ break;
+ frame = hare;
+ hare = get_frame_param (XFRAME (hare), Qenvironment);
+ tortoise = get_frame_param (XFRAME (tortoise), Qenvironment);
+ if (EQ (hare, tortoise))
+ error ("Cyclic frame-local environment indirection");
+ }
+
+ return frame;
}
+
\f
DEFUN ("frame-char-height", Fframe_char_height, Sframe_char_height,
0, 1, 0,
if (NATNUMP (param_index)
&& (XFASTINT (param_index)
< sizeof (frame_parms)/sizeof (frame_parms[0]))
- && rif->frame_parm_handlers[XINT (param_index)])
- (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
-
+ && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])
+ (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
unbind_to (count, Qnil);
}
}
if (NATNUMP (param_index)
&& (XFASTINT (param_index)
< sizeof (frame_parms)/sizeof (frame_parms[0]))
- && rif->frame_parm_handlers[XINT (param_index)])
- (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
+ && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])
+ (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
}
}
else if (EQ (new_value, Qfullheight))
f->want_fullscreen = FULLSCREEN_HEIGHT;
- if (fullscreen_hook != NULL)
- fullscreen_hook (f);
+ if (FRAME_TERMINAL (f)->fullscreen_hook != NULL)
+ FRAME_TERMINAL (f)->fullscreen_hook (f);
}
struct frame *f;
Lisp_Object new_value, old_value;
{
+ Lisp_Object bgcolor;
+
if (NILP (new_value))
f->gamma = 0;
else if (NUMBERP (new_value) && XFLOATINT (new_value) > 0)
else
signal_error ("Invalid screen-gamma", new_value);
- clear_face_cache (0);
+ /* Apply the new gamma value to the frame background. */
+ bgcolor = Fassq (Qbackground_color, f->param_alist);
+ if (CONSP (bgcolor) && (bgcolor = XCDR (bgcolor), STRINGP (bgcolor)))
+ {
+ Lisp_Object index = Fget (Qbackground_color, Qx_frame_parameter);
+ if (NATNUMP (index)
+ && (XFASTINT (index)
+ < sizeof (frame_parms)/sizeof (frame_parms[0]))
+ && rif->frame_parm_handlers[XFASTINT (index)])
+ (*(rif->frame_parm_handlers[XFASTINT (index)]))
+ (f, bgcolor, Qnil);
+ }
+
+ Fclear_face_cache (Qnil);
}
staticpro (&Qbuffer_predicate);
Qbuffer_list = intern ("buffer-list");
staticpro (&Qbuffer_list);
+ Qburied_buffer_list = intern ("buried-buffer-list");
+ staticpro (&Qburied_buffer_list);
Qdisplay_type = intern ("display-type");
staticpro (&Qdisplay_type);
Qbackground_mode = intern ("background-mode");
staticpro (&Qbackground_mode);
Qtty_color_mode = intern ("tty-color-mode");
staticpro (&Qtty_color_mode);
-
+ Qtty = intern ("tty");
+ staticpro (&Qtty);
+ Qtty_type = intern ("tty-type");
+ staticpro (&Qtty_type);
+ Qwindow_system = intern ("window-system");
+ staticpro (&Qwindow_system);
+ Qenvironment = intern ("environment");
+ staticpro (&Qenvironment);
+
Qface_set_after_frame_default = intern ("face-set-after-frame-default");
staticpro (&Qface_set_after_frame_default);
Qx_frame_parameter = intern ("x-frame-parameter");
staticpro (&Qx_frame_parameter);
+ Qterminal = intern ("terminal");
+ staticpro (&Qterminal);
+ Qterminal_live_p = intern ("terminal-live-p");
+ staticpro (&Qterminal_live_p);
+
{
int i;
These override values given in window system configuration data,
including X Windows' defaults database.
For values specific to the first Emacs frame, see `initial-frame-alist'.
+For window-system specific values, see `window-system-default-frame-alist'.
For values specific to the separate minibuffer frame, see
`minibuffer-frame-alist'.
The `menu-bar-lines' element of the list controls whether new frames
Vdefault_frame_scroll_bars = Qnil;
#endif
- Qinhibit_default_face_x_resources
- = intern ("inhibit-default-face-x-resources");
- staticpro (&Qinhibit_default_face_x_resources);
-
DEFVAR_LISP ("terminal-frame", &Vterminal_frame,
- doc: /* The initial frame-object, which represents Emacs's stdout. */);
+ doc: /* The initial frame-object, which represents Emacs's stdout. */);
DEFVAR_LISP ("emacs-iconified", &Vemacs_iconified,
doc: /* Non-nil if all of Emacs is iconified and frame updates are not needed. */);
DEFVAR_LISP ("delete-frame-functions", &Vdelete_frame_functions,
doc: /* Functions to be run before deleting a frame.
The functions are run with one arg, the frame to be deleted.
-See `delete-frame'. */);
+See `delete-frame'.
+
+Note that functions in this list may be called twice on the same
+frame. In the second invocation, the frame is already deleted, and
+the function should do nothing. (You can use `frame-live-p' to check
+for this.) This wrinkle happens when an earlier function in
+`delete-frame-functions' (indirectly) calls delete-frame
+recursively. */);
Vdelete_frame_functions = Qnil;
DEFVAR_KBOARD ("default-minibuffer-frame", Vdefault_minibuffer_frame,
defsubr (&Sactive_minibuffer_window);
defsubr (&Sframep);
defsubr (&Sframe_live_p);
+ defsubr (&Swindow_system);
defsubr (&Smake_terminal_frame);
defsubr (&Shandle_switch_frame);
defsubr (&Sselect_frame);
defsubr (&Sframe_parameters);
defsubr (&Sframe_parameter);
defsubr (&Smodify_frame_parameters);
+ defsubr (&Sframe_with_environment);
defsubr (&Sframe_char_height);
defsubr (&Sframe_char_width);
defsubr (&Sframe_pixel_height);
/* Since GTK clears its window by filling with the background color,
we must keep X and GTK background in sync. */
- xg_pix_to_gcolor (wfixed, f->output_data.x->background_pixel, &bg);
+ xg_pix_to_gcolor (wfixed, FRAME_BACKGROUND_PIXEL (f), &bg);
gtk_widget_modify_bg (wfixed, GTK_STATE_NORMAL, &bg);
/* Also, do not let any background pixmap to be set, this looks very
return w;
}
-/* Callback called when keyboard traversal (started by menu-bar-open) ends.
+/* Callback called when keyboard traversal (started by x-menu-bar-open) ends.
WMENU is the menu for which traversal has been done. DATA points to the
frame for WMENU. We must release grabs, some bad interaction between GTK
and Emacs makes the menus keep the grabs. */
int i;
GtkRequisition old_req, new_req;
struct x_output *x = f->output_data.x;
- int hmargin, vmargin;
+ int hmargin = 0, vmargin = 0;
GtkToolItem *ti;
if (! FRAME_GTK_WIDGET (f))
Boston, MA 02110-1301, USA. */
#include <config.h>
+#include <stdio.h>
+
#include "lisp.h"
#include "buffer.h"
#include "charset.h"
\f
DEFUN ("move-to-column", Fmove_to_column, Smove_to_column, 1, 2, "p",
doc: /* Move point to column COLUMN in the current line.
+ Interactively, COLUMN is the value of prefix numeric argument.
The column of a character is calculated by adding together the widths
as displayed of the previous characters in the line.
This function ignores line-continuation;
If specified column is within a character, point goes after that character.
If it's past end of line, point goes to end of line.
- A non-nil second (optional) argument FORCE means,
- if COLUMN is in the middle of a tab character, change it to spaces.
- In addition, if FORCE is t, and the line is too short
- to reach column COLUMN, add spaces/tabs to get there.
+ Optional second argument FORCE non-nil means if COLUMN is in the
+ middle of a tab character, change it to spaces.
+ In addition, if FORCE is t, and the line is too short to reach
+ COLUMN, add spaces/tabs to get there.
The return value is the current column. */)
(column, force)
#include <sys/stat.h>
#include <sys/file.h>
#include <errno.h>
+#include <setjmp.h>
#include "lisp.h"
#include "intervals.h"
#include "buffer.h"
#include <epaths.h>
#include "commands.h"
#include "keyboard.h"
+#include "frame.h"
#include "termhooks.h"
#include "coding.h"
\f
/* Get a character from the tty. */
-extern Lisp_Object read_char ();
-
/* Read input events until we get one that's acceptable for our purposes.
If NO_SWITCH_FRAME is non-zero, switch-frame events are stashed
EMACS_ADD_TIME (end_time, end_time, wait_time);
}
- /* Read until we get an acceptable event. */
+/* Read until we get an acceptable event. */
retry:
- val = read_char (0, 0, 0, (input_method ? Qnil : Qt), 0,
- NUMBERP (seconds) ? &end_time : NULL);
+ do
+ val = read_char (0, 0, 0, (input_method ? Qnil : Qt), 0,
+ NUMBERP (seconds) ? &end_time : NULL);
+ while (INTEGERP (val) && XINT (val) == -2); /* wrong_kboard_jmpbuf */
if (BUFFERP (val))
goto retry;
The remaining elements of each list are symbols defined as variables
and cons cells of the form `(provide . FEATURE)', `(require . FEATURE)',
- `(defun . FUNCTION)', `(autoload . SYMBOL)', and `(t . SYMBOL)'.
- An element `(t . SYMBOL)' precedes an entry `(defun . FUNCTION)',
- and means that SYMBOL was an autoload before this file redefined it
- as a function.
+ `(defun . FUNCTION)', `(autoload . SYMBOL)', `(defface . SYMBOL)'
+ and `(t . SYMBOL)'. An element `(t . SYMBOL)' precedes an entry
+ `(defun . FUNCTION)', and means that SYMBOL was an autoload before
+ this file redefined it as a function.
During preloading, the file name recorded is relative to the main Lisp
directory. These file names are converted to absolute at startup. */);
doc: /* File name, including directory, of user's initialization file.
If the file loaded had extension `.elc', and the corresponding source file
exists, this variable contains the name of source file, suitable for use
- by functions like `custom-save-all' which edit the init file. */);
+ by functions like `custom-save-all' which edit the init file.
+ While Emacs loads and evaluates the init file, value is the real name
+ of the file, regardless of whether or not it has the `.elc' extension. */);
Vuser_init_file = Qnil;
DEFVAR_LISP ("current-load-list", &Vcurrent_load_list,
Cursor cursor, nontext_cursor, mode_cursor, hand_cursor;
Cursor hourglass_cursor, horizontal_drag_cursor;
unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
- unsigned long mask_color = x->background_pixel;
+ unsigned long mask_color = FRAME_BACKGROUND_PIXEL (f);
/* Don't let pointers be invisible. */
if (mask_color == pixel)
- pixel = x->foreground_pixel;
+ pixel = FRAME_FOREGROUND_PIXEL (f);
f->output_data.mac->mouse_pixel = pixel;
= (XCreatePixmapFromBitmapData
(FRAME_X_DISPLAY (f), FRAME_X_DISPLAY_INFO (f)->root_window,
gray_bits, gray_width, gray_height,
- f->output_data.x->foreground_pixel,
- f->output_data.x->background_pixel,
+ FRAME_FOREGROUND_PIXEL (f),
+ FRAME_BACKGROUND_PIXEL (f),
DefaultDepth (FRAME_X_DISPLAY (f), FRAME_X_SCREEN_NUMBER (f))));
#endif
(frame)
Lisp_Object frame;
{
+ OSErr err;
+ ProcessSerialNumber front_psn;
+ static const ProcessSerialNumber current_psn = {0, kCurrentProcess};
+ Boolean front_p;
struct frame *f = check_x_frame (frame);
BLOCK_INPUT;
+ /* Move the current process to the foreground if it is not. Don't
+ call SetFrontProcess if the current process is already running in
+ the foreground so as not to change the z-order of windows. */
+ err = GetFrontProcess (&front_psn);
+ if (err == noErr)
+ err = SameProcess (&front_psn, ¤t_psn, &front_p);
+ if (err == noErr)
+ if (!front_p)
+ {
+ #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
+ if (FrontNonFloatingWindow () == FRAME_MAC_WINDOW (f))
+ SetFrontProcessWithOptions (¤t_psn,
+ kSetFrontProcessFrontWindowOnly);
+ else
+ #endif
+ SetFrontProcess (¤t_psn);
+ }
+
#ifdef MAC_OSX
ActivateWindow (ActiveNonFloatingWindow (), false);
ActivateWindow (FRAME_MAC_WINDOW (f), true);
filename[len++] = '/';
CFStringGetCString(reply.saveFileName, filename+len,
sizeof (filename) - len,
- #if MAC_OSX
+ #ifdef MAC_OSX
kCFStringEncodingUTF8
#else
CFStringGetSystemEncoding ()
}
#if USE_MAC_FONT_PANEL
- DEFUN ("mac-set-font-panel-visibility", Fmac_set_font_panel_visibility,
- Smac_set_font_panel_visibility, 1, 1, 0,
- doc: /* Make the font panel visible if and only if VISIBLE is non-nil.
+ DEFUN ("mac-set-font-panel-visible-p", Fmac_set_font_panel_visible_p,
+ Smac_set_font_panel_visible_p, 1, 1, 0,
+ doc: /* Make the font panel visible if and only if FLAG is non-nil.
This is for internal use only. Use `mac-font-panel-mode' instead. */)
- (visible)
- Lisp_Object visible;
+ (flag)
+ Lisp_Object flag;
{
OSStatus err = noErr;
check_mac ();
BLOCK_INPUT;
- if (NILP (visible) != !mac_font_panel_visible_p ())
+ if (NILP (flag) != !mac_font_panel_visible_p ())
{
err = mac_show_hide_font_panel ();
- if (err == noErr && !NILP (visible))
+ if (err == noErr && !NILP (flag))
{
Lisp_Object focus_frame = x_get_focus_frame (SELECTED_FRAME ());
struct frame *f = (NILP (focus_frame) ? SELECTED_FRAME ()
#endif
defsubr (&Smac_clear_font_name_table);
#if USE_MAC_FONT_PANEL
- defsubr (&Smac_set_font_panel_visibility);
+ defsubr (&Smac_set_font_panel_visible_p);
#endif
#if USE_ATSUI
defsubr (&Smac_atsu_font_face_attributes);
#define XFlush(DISPLAY) (void) 0
- \f
- /* Return the struct mac_display_info corresponding to DPY. There's
- only one. */
-
- struct mac_display_info *
- mac_display_info_for_display (dpy)
- Display *dpy;
+ #if USE_CG_DRAWING
+ static void
+ mac_flush_display_optional (f)
+ struct frame *f;
{
- return &one_mac_display_info;
+ BLOCK_INPUT;
+ mac_prepare_for_quickdraw (f);
+ UNBLOCK_INPUT;
}
-
-
+ #endif
\f
/***********************************************************************
Starting and ending an update
static OSStatus get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
Rect *));
static void x_scroll_bar_handle_press P_ ((struct scroll_bar *,
- ControlPartCode,
+ ControlPartCode, Point,
struct input_event *));
static void x_scroll_bar_handle_release P_ ((struct scroll_bar *,
struct input_event *));
}
static void
- x_scroll_bar_handle_press (bar, part_code, bufp)
+ x_scroll_bar_handle_press (bar, part_code, mouse_pos, bufp)
struct scroll_bar *bar;
ControlPartCode part_code;
+ Point mouse_pos;
struct input_event *bufp;
{
int part = control_part_code_to_scroll_bar_part (part_code);
construct_scroll_bar_click (bar, part, bufp);
HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code);
set_scroll_bar_timer (SCROLL_BAR_FIRST_DELAY);
+ bar->dragging = Qnil;
+ }
+ else
+ {
+ Rect r;
+
+ get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar),
+ kControlIndicatorPart, &r);
+ XSETINT (bar->dragging, - (mouse_pos.v - r.top) - 1);
}
last_scroll_bar_part = part;
- bar->dragging = Qnil;
tracked_scroll_bar = bar;
}
struct input_event *bufp;
{
if (last_scroll_bar_part != scroll_bar_handle
- || !GC_NILP (bar->dragging))
+ || (INTEGERP (bar->dragging) && XINT (bar->dragging) >= 0))
construct_scroll_bar_click (bar, scroll_bar_end_scroll, bufp);
HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0);
get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar),
kControlIndicatorPart, &r);
- if (GC_NILP (bar->dragging))
- XSETINT (bar->dragging, mouse_pos.v - r.top);
+ if (INTEGERP (bar->dragging) && XINT (bar->dragging) < 0)
+ XSETINT (bar->dragging, - (XINT (bar->dragging) + 1));
top = mouse_pos.v - XINT (bar->dragging) - XINT (bar->track_top);
- top_range = (XINT (bar->track_height) - (r.bottom - r.top)) *
- (1.0 + (float) GetControlViewSize (ch) / GetControl32BitMaximum (ch))
- + .5;
+ top_range = XINT (bar->track_height) - XINT (bar->min_handle);
if (top < 0)
top = 0;
if (XINT (bar->track_height) == 0)
return;
- if (whole == 0)
+ if (whole <= portion)
value = 0, viewsize = 1, maximum = 0;
else
{
- value = position;
- viewsize = portion;
- maximum = max (0, whole - portion);
+ float scale;
+
+ maximum = XINT (bar->track_height) - XINT (bar->min_handle);
+ scale = (float) maximum / (whole - portion);
+ value = position * scale + 0.5f;
+ viewsize = (int) (portion * scale + 0.5f) + XINT (bar->min_handle);
}
BLOCK_INPUT;
#ifdef USE_TOOLKIT_SCROLL_BARS
bar->track_top = Qnil;
bar->track_height = Qnil;
+ bar->min_handle = Qnil;
#endif
/* Add bar to its frame's list of scroll bars. */
#ifdef USE_TOOLKIT_SCROLL_BARS
bar->track_top = Qnil;
bar->track_height = Qnil;
+ bar->min_handle = Qnil;
#endif
}
{
XSETINT (bar->track_top, 0);
XSETINT (bar->track_height, 0);
+ XSETINT (bar->min_handle, 0);
}
else
{
BLOCK_INPUT;
SetControl32BitMinimum (ch, 0);
- SetControl32BitMaximum (ch, 1);
+ SetControl32BitMaximum (ch, 1 << 30);
SetControlViewSize (ch, 1);
/* Move the scroll bar thumb to the top. */
get_control_part_bounds (ch, kControlIndicatorPart, &r0);
/* Move the scroll bar thumb to the bottom. */
- SetControl32BitValue (ch, 1);
+ SetControl32BitValue (ch, 1 << 30);
get_control_part_bounds (ch, kControlIndicatorPart, &r1);
UnionRect (&r0, &r1, &r0);
XSETINT (bar->track_top, r0.top);
XSETINT (bar->track_height, r0.bottom - r0.top);
+ XSETINT (bar->min_handle, r1.bottom - r1.top);
/* Don't show the scroll bar if its height is not enough to
display the scroll bar thumb. */
#define M_APPLE 234
#define I_ABOUT 1
- #define WINDOW_RESOURCE 128
- #define TERM_WINDOW_RESOURCE 129
-
#define DEFAULT_NUM_COLS 80
#define MIN_DOC_SIZE 64
case kEventTextInputUnicodeForKeyEvent:
{
EventRef kbd_event;
- UInt32 actual_size, modifiers, mapped_modifiers;
+ UInt32 actual_size, modifiers;
err = GetEventParameter (event, kEventParamTextInputSendKeyboardEvent,
typeEventRef, NULL, sizeof (EventRef), NULL,
#ifdef USE_TOOLKIT_SCROLL_BARS
/* Make the "Ctrl-Mouse-2 splits window" work
for toolkit scroll bars. */
- if (er.modifiers & controlKey)
+ if (inev.modifiers & ctrl_modifier)
x_scroll_bar_handle_click (bar, control_part_code,
&er, &inev);
else if (er.what == mouseDown)
x_scroll_bar_handle_press (bar, control_part_code,
- &inev);
+ mouse_loc, &inev);
else
x_scroll_bar_handle_release (bar, &inev);
#else /* not USE_TOOLKIT_SCROLL_BARS */
f->mouse_moved = 0;
#ifdef USE_TOOLKIT_SCROLL_BARS
- if (inev.kind == MOUSE_CLICK_EVENT)
+ if (inev.kind == MOUSE_CLICK_EVENT
+ || (inev.kind == SCROLL_BAR_CLICK_EVENT
+ && (inev.modifiers & ctrl_modifier)))
#endif
switch (er.what)
{
/* translate the keycode back to determine the
original key */
#ifdef MAC_OSX
+ UCKeyboardLayout *uchr_ptr = NULL;
+ #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
+ OSStatus err;
+ KeyboardLayoutRef layout;
+
+ err = KLGetCurrentKeyboardLayout (&layout);
+ if (err == noErr)
+ KLGetKeyboardLayoutProperty (layout, kKLuchrData,
+ (const void **) &uchr_ptr);
+ #else
static SInt16 last_key_layout_id = 0;
static Handle uchr_handle = (Handle)-1;
SInt16 current_key_layout_id =
uchr_handle = GetResource ('uchr', current_key_layout_id);
last_key_layout_id = current_key_layout_id;
}
-
if (uchr_handle)
+ uchr_ptr = (UCKeyboardLayout *)*uchr_handle;
+ #endif
+
+ if (uchr_ptr)
{
OSStatus status;
UInt16 key_action = er.what - keyDown;
UniChar code;
UniCharCount actual_length;
- status = UCKeyTranslate ((UCKeyboardLayout *)*uchr_handle,
+ status = UCKeyTranslate (uchr_ptr,
keycode, key_action,
modifier_key_state,
keyboard_type,
}
\f
- #ifdef MAC_OSX
- void
- MakeMeTheFrontProcess ()
- {
- ProcessSerialNumber psn;
- OSErr err;
-
- err = GetCurrentProcess (&psn);
- if (err == noErr)
- (void) SetFrontProcess (&psn);
- }
- #endif /* MAC_OSX */
-
static void
init_menu_bar ()
{
x_update_window_end,
x_cursor_to,
x_flush,
+ #if USE_CG_DRAWING
+ mac_flush_display_optional,
+ #else
0, /* flush_display_optional */
+ #endif
x_clear_window_mouse_face,
x_get_glyph_overhangs,
x_fix_overlapping_area,
redeem_scroll_bar_hook = XTredeem_scroll_bar;
judge_scroll_bars_hook = XTjudge_scroll_bars;
- scroll_region_ok = 1; /* we'll scroll partial frames */
- char_ins_del_ok = 1;
- line_ins_del_ok = 1; /* we'll just blt 'em */
- fast_clear_end_of_line = 1; /* X does this well */
- memory_below_frame = 0; /* we don't remember what scrolls
- off the bottom */
+ TTY_SCROLL_REGION_OK (CURTTY ()) = 1; /* we'll scroll partial frames */
+ TTY_CHAR_INS_DEL_OK (CURTTY ()) = 1;
+ TTY_LINE_INS_DEL_OK (CURTTY ()) = 1; /* we'll just blt 'em */
+ TTY_FAST_CLEAR_END_OF_LINE (CURTTY ()) = 1; /* X does this well */
+ TTY_MEMORY_BELOW_FRAME (CURTTY ()) = 0; /* we don't remember what
+ scrolls off the
+ bottom */
baud_rate = 19200;
last_tool_bar_item = -1;
any_help_event_p = 0;
/* Try to use interrupt input; if we can't, then start polling. */
- Fset_input_mode (Qt, Qnil, Qt, Qnil);
+ Fset_input_interrupt_mode (Qt);
BLOCK_INPUT;
init_apple_event_handler ();
if (!inhibit_window_system)
- MakeMeTheFrontProcess ();
+ {
+ static const ProcessSerialNumber psn = {0, kCurrentProcess};
+
+ SetFrontProcess (&psn);
+ }
#endif
#endif
FONT-LIST-CACHE records previous values returned by x-list-fonts. */
extern Lisp_Object x_display_name_list;
- extern struct x_display_info *x_display_info_for_display P_ ((Display *));
extern struct x_display_info *x_display_info_for_name P_ ((Lisp_Object));
extern struct mac_display_info *mac_term_init P_ ((Lisp_Object, char *, char *));
#define FRAME_MAC_WINDOW(f) ((f)->output_data.mac->window_desc)
#define FRAME_X_WINDOW(f) ((f)->output_data.mac->window_desc)
-#define FRAME_FOREGROUND_PIXEL(f) ((f)->output_data.x->foreground_pixel)
-#define FRAME_BACKGROUND_PIXEL(f) ((f)->output_data.x->background_pixel)
-
#define FRAME_FONT(f) ((f)->output_data.mac->font)
#define FRAME_FONTSET(f) ((f)->output_data.mac->fontset)
/* The next and previous in the chain of scroll bars in this frame. */
Lisp_Object next, prev;
- /* The Mac control handle of this scroll bar. Since this is a full
- 32-bit quantity, we store it split into two 32-bit values. */
+ /* The Mac control handle of this scroll bar. Since this is a
+ pointer value, we store it split into two Lisp integers. */
Lisp_Object control_handle_low, control_handle_high;
/* The position and size of the scroll bar in pixels, relative to the
/* If the scroll bar handle is currently being dragged by the user,
this is the number of pixels from the top of the handle to the
- place where the user grabbed it. If the handle isn't currently
+ place where the user grabbed it. If the handle is pressed but
+ not dragged yet, this is a negative integer whose absolute value
+ is the number of pixels plus 1. If the handle isn't currently
being dragged, this is Qnil. */
Lisp_Object dragging;
/* The position and size of the scroll bar handle track area in
pixels, relative to the frame. */
Lisp_Object track_top, track_height;
+
+ /* Minimum length of the scroll bar handle, in pixels. */
+ Lisp_Object min_handle;
#endif
};
#define XSCROLL_BAR(vec) ((struct scroll_bar *) XVECTOR (vec))
- /* Building a 32-bit C integer from two 16-bit lisp integers. */
+ /* Building a C long integer from two lisp integers. */
#define SCROLL_BAR_PACK(low, high) (XINT (high) << 16 | XINT (low))
- /* Setting two lisp integers to the low and high words of a 32-bit C int. */
- #define SCROLL_BAR_UNPACK(low, high, int32) \
- (XSETINT ((low), (int32) & 0xffff), \
- XSETINT ((high), ((int32) >> 16) & 0xffff))
+ /* Setting two lisp integers to two parts of a C unsigned long. */
+ #define SCROLL_BAR_UNPACK(low, high, ulong) \
+ (XSETINT ((low), (ulong) & 0xffff), \
+ XSETINT ((high), (ulong) >> 16))
/* Extract the Mac control handle of the scroll bar from a struct
(ptr)->control_handle_high))
/* Store a Mac control handle in a struct scroll_bar. */
- #define SET_SCROLL_BAR_CONTROL_HANDLE(ptr, id) \
+ #define SET_SCROLL_BAR_CONTROL_HANDLE(ptr, handle) \
(SCROLL_BAR_UNPACK ((ptr)->control_handle_low, \
- (ptr)->control_handle_high, (int) id))
+ (ptr)->control_handle_high, (unsigned long) (handle)))
/* Return the inside width of a vertical scroll bar, given the outside
width. */
#include "syntax.h"
#include "intervals.h"
#include "keymap.h"
+#include "termhooks.h"
extern int quit_char;
/* Keymap for reading expressions. */
Lisp_Object Vread_expression_map;
+ Lisp_Object Vminibuffer_completion_table, Qminibuffer_completion_table;
+ Lisp_Object Vminibuffer_completion_predicate, Qminibuffer_completion_predicate;
+ Lisp_Object Vminibuffer_completion_confirm, Qminibuffer_completion_confirm;
+ Lisp_Object Vminibuffer_completing_file_name;
+
Lisp_Object Quser_variable_p;
Lisp_Object Qminibuffer_default;
struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
Lisp_Object enable_multibyte;
int pos = INTEGERP (backup_n) ? XINT (backup_n) : 0;
-
/* String to add to the history. */
Lisp_Object histstring;
specbind (Qminibuffer_default, defalt);
- single_kboard_state ();
+ /* If Vminibuffer_completing_file_name is `lambda' on entry, it was t
+ in previous recursive minibuffer, but was not set explicitly
+ to t for this invocation, so set it to nil in this minibuffer.
+ Save the old value now, before we change it. */
+ specbind (intern ("minibuffer-completing-file-name"), Vminibuffer_completing_file_name);
+ if (EQ (Vminibuffer_completing_file_name, Qlambda))
+ Vminibuffer_completing_file_name = Qnil;
+
#ifdef HAVE_X_WINDOWS
if (display_hourglass_p)
cancel_hourglass ();
if (minibuffer_auto_raise)
Fraise_frame (mini_frame);
+ temporarily_switch_to_single_kboard (XFRAME (mini_frame));
+
/* We have to do this after saving the window configuration
since that is what restores the current buffer. */
specpdl slots. */
minibuf_save_list
= Fcons (Voverriding_local_map,
- Fcons (minibuf_window, minibuf_save_list));
+ Fcons (minibuf_window,
+ minibuf_save_list));
minibuf_save_list
= Fcons (minibuf_prompt,
Fcons (make_number (minibuf_prompt_width),
Vminibuffer_history_position = histpos;
Vminibuffer_history_variable = histvar;
Vhelp_form = Vminibuffer_help_form;
+ /* If this minibuffer is reading a file name, that doesn't mean
+ recursive ones are. But we cannot set it to nil, because
+ completion code still need to know the minibuffer is completing a
+ file name. So use `lambda' as intermediate value meaning
+ "t" in this minibuffer, but "nil" in next minibuffer. */
+ if (!NILP (Vminibuffer_completing_file_name))
+ Vminibuffer_completing_file_name = Qlambda;
if (inherit_input_method)
{
XWINDOW (minibuf_window)->cursor.x = 0;
XWINDOW (minibuf_window)->must_be_updated_p = 1;
update_frame (XFRAME (selected_frame), 1, 1);
- if (rif && rif->flush_display)
- rif->flush_display (XFRAME (XWINDOW (minibuf_window)->frame));
+ {
+ struct frame *f = XFRAME (XWINDOW (minibuf_window)->frame);
+ struct redisplay_interface *rif = FRAME_RIF (f);
+ if (rif && rif->flush_display)
+ rif->flush_display (f);
+ }
}
/* Make minibuffer contents into a string. */
return Fnreverse (allmatches);
}
\f
- Lisp_Object Vminibuffer_completion_table, Qminibuffer_completion_table;
- Lisp_Object Vminibuffer_completion_predicate, Qminibuffer_completion_predicate;
- Lisp_Object Vminibuffer_completion_confirm, Qminibuffer_completion_confirm;
- Lisp_Object Vminibuffer_completing_file_name;
-
DEFUN ("completing-read", Fcompleting_read, Scompleting_read, 2, 8, 0,
doc: /* Read a string in the minibuffer, with completion.
PROMPT is a string to prompt with; normally it ends in a colon and a space.
val = read_minibuf (NILP (require_match)
? (NILP (Vminibuffer_completing_file_name)
+ || EQ (Vminibuffer_completing_file_name, Qlambda)
? Vminibuffer_local_completion_map
: Vminibuffer_local_filename_completion_map)
: (NILP (Vminibuffer_completing_file_name)
+ || EQ (Vminibuffer_completing_file_name, Qlambda)
? Vminibuffer_local_must_match_map
: Vminibuffer_local_must_match_filename_map),
init, prompt, make_number (pos), 0,
/* Like assoc but assumes KEY is a string, and ignores case if appropriate. */
DEFUN ("assoc-string", Fassoc_string, Sassoc_string, 2, 3, 0,
- doc: /* Like `assoc' but specifically for strings.
- Unibyte strings are converted to multibyte for comparison.
- And case is ignored if CASE-FOLD is non-nil.
+ doc: /* Like `assoc' but specifically for strings (and symbols).
+ Symbols are converted to strings, and unibyte strings are converted to
+ multibyte for comparison.
+ Case is ignored if optional arg CASE-FOLD is non-nil.
As opposed to `assoc', it will also match an entry consisting of a single
string rather than a cons cell whose car is a string. */)
(key, list, case_fold)
{
register Lisp_Object tail;
+ if (SYMBOLP (key))
+ key = Fsymbol_name (key);
+
for (tail = list; !NILP (tail); tail = Fcdr (tail))
{
register Lisp_Object elt, tem, thiscar;
elt = Fcar (tail);
thiscar = CONSP (elt) ? XCAR (elt) : elt;
- if (!STRINGP (thiscar))
+ if (SYMBOLP (thiscar))
+ thiscar = Fsymbol_name (thiscar);
+ else if (!STRINGP (thiscar))
continue;
tem = Fcompare_strings (thiscar, make_number (0), Qnil,
key, make_number (0), Qnil,
DEFVAR_LISP ("minibuffer-completing-file-name",
&Vminibuffer_completing_file_name,
- doc: /* Non-nil means completing file names. */);
+ doc: /* Non-nil and non-`lambda' means completing file names. */);
Vminibuffer_completing_file_name = Qnil;
DEFVAR_LISP ("minibuffer-help-form", &Vminibuffer_help_form,
the variable Vprint_continuous_numbering is nil. Otherwise,
the values of these variables will be kept between several
print functions. */
- if (NILP (Vprint_continuous_numbering))
+ if (NILP (Vprint_continuous_numbering)
+ || NILP (Vprint_number_table))
{
print_number_index = 0;
Vprint_number_table = Qnil;
for (i = 0; i < print_number_index; i++)
if (EQ (PRINT_NUMBER_OBJECT (Vprint_number_table, i), obj))
{
- /* OBJ appears more than once. Let's remember that. */
+ /* OBJ appears more than once. Let's remember that. */
PRINT_NUMBER_STATUS (Vprint_number_table, i) = Qt;
print_depth--;
- return;
+ return;
}
/* OBJ is not yet recorded. Let's add to the table. */
#include "charset.h"
#include "coding.h"
#include "process.h"
+#include "frame.h"
#include "termhooks.h"
#include "termopts.h"
#include "commands.h"
#include "keyboard.h"
-#include "frame.h"
#include "blockinput.h"
#include "dispextern.h"
#include "composite.h"
static SELECT_TYPE input_wait_mask;
-/* Mask that excludes keyboard input descriptor (s). */
+/* Mask that excludes keyboard input descriptor(s). */
static SELECT_TYPE non_keyboard_wait_mask;
-/* Mask that excludes process input descriptor (s). */
+/* Mask that excludes process input descriptor(s). */
static SELECT_TYPE non_process_wait_mask;
open_socket:
+#ifdef __ultrix__
+ /* Previously this was compiled unconditionally, but that seems
+ unnecessary on modern systems, and `unrequest_sigio' was a noop
+ under X anyway. --lorentey */
/* Kernel bugs (on Ultrix at least) cause lossage (not just EINTR)
when connect is interrupted. So let's not let it get interrupted.
Note we do not turn off polling, because polling is only used
record_unwind_protect (unwind_request_sigio, Qnil);
unrequest_sigio ();
}
+#endif
/* Do this in case we never enter the for-loop below. */
count1 = SPECPDL_INDEX ();
UNGCPRO;
}
+ static Lisp_Object
+ send_process_object_unwind (buf)
+ Lisp_Object buf;
+ {
+ Lisp_Object tembuf;
+
+ if (XBUFFER (buf) == current_buffer)
+ return Qnil;
+ tembuf = Fcurrent_buffer ();
+ Fset_buffer (buf);
+ Fkill_buffer (tembuf);
+ return Qnil;
+ }
+
+ /* Send current contents of region between START and END to PROC.
+ If START is a string, send it instead.
+ This function can evaluate Lisp code and can garbage collect. */
+
+ static void
+ send_process_object (proc, start, end)
+ Lisp_Object proc, start, end;
+ {
+ int count = SPECPDL_INDEX ();
+ Lisp_Object object = STRINGP (start) ? start : Fcurrent_buffer ();
+ struct buffer *given_buffer = current_buffer;
+ unsigned char *buf;
+ int len;
+
+ record_unwind_protect (send_process_object_unwind, Fcurrent_buffer ());
+
+ if (STRINGP (object) ? STRING_MULTIBYTE (object)
+ : ! NILP (XBUFFER (object)->enable_multibyte_characters))
+ {
+ struct Lisp_Process *p = XPROCESS (proc);
+ struct coding_system *coding = proc_encode_coding_system[XINT (p->outfd)];
+
+ if (! EQ (coding->symbol, p->encode_coding_system))
+ /* The coding system for encoding was changed to raw-text
+ because we sent a unibyte text previously. Now we are
+ sending a multibyte text, thus we must encode it by the
+ original coding system specified for the current process. */
+ setup_coding_system (p->encode_coding_system, coding);
+ if (! NILP (coding->pre_write_conversion))
+ {
+ struct gcpro gcpro1, gcpro2;
+
+ GCPRO2 (proc, object);
+ call2 (coding->pre_write_conversion, start, end);
+ UNGCPRO;
+ if (given_buffer != current_buffer)
+ {
+ start = make_number (BEGV), end = make_number (ZV);
+ object = Fcurrent_buffer ();
+ }
+ }
+ }
+
+ if (BUFFERP (object))
+ {
+ EMACS_INT start_byte;
+
+ if (XINT (start) < GPT && XINT (end) > GPT)
+ move_gap (XINT (end));
+ start_byte = CHAR_TO_BYTE (XINT (start));
+ buf = BYTE_POS_ADDR (start_byte);
+ len = CHAR_TO_BYTE (XINT (end)) - start_byte;
+ }
+ else
+ {
+ buf = SDATA (object);
+ len = SBYTES (object);
+ }
+ send_process (proc, buf, len, object);
+
+ unbind_to (count, Qnil);
+ }
+
DEFUN ("process-send-region", Fprocess_send_region, Sprocess_send_region,
3, 3, 0,
doc: /* Send current contents of region as input to PROCESS.
Lisp_Object process, start, end;
{
Lisp_Object proc;
- int start1, end1;
proc = get_process (process);
validate_region (&start, &end);
-
- if (XINT (start) < GPT && XINT (end) > GPT)
- move_gap (XINT (start));
-
- start1 = CHAR_TO_BYTE (XINT (start));
- end1 = CHAR_TO_BYTE (XINT (end));
- send_process (proc, BYTE_POS_ADDR (start1), end1 - start1,
- Fcurrent_buffer ());
-
+ send_process_object (proc, start, end);
return Qnil;
}
Lisp_Object proc;
CHECK_STRING (string);
proc = get_process (process);
- send_process (proc, SDATA (string),
- SBYTES (string), string);
+ send_process_object (proc, string, Qnil);
return Qnil;
}
\f
\f
-/* The first time this is called, assume keyboard input comes from DESC
- instead of from where we used to expect it.
- Subsequent calls mean assume input keyboard can come from DESC
- in addition to other places. */
-
-static int add_keyboard_wait_descriptor_called_flag;
+/* Add DESC to the set of keyboard input descriptors. */
void
add_keyboard_wait_descriptor (desc)
int desc;
{
- if (! add_keyboard_wait_descriptor_called_flag)
- FD_CLR (0, &input_wait_mask);
- add_keyboard_wait_descriptor_called_flag = 1;
FD_SET (desc, &input_wait_mask);
FD_SET (desc, &non_process_wait_mask);
if (desc > max_keyboard_desc)
process_output_skip = 0;
#endif
+ /* Don't do this, it caused infinite select loops. The display
+ method should call add_keyboard_wait_descriptor on stdin if it
+ needs that. */
+#if 0
FD_SET (0, &input_wait_mask);
+#endif
Vprocess_alist = Qnil;
#ifdef SIGCHLD
/* Implementation of GUI terminal on the Microsoft W32 API.
- Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Emacs.
int portion, position, whole;
{
Window w = SCROLL_BAR_W32_WINDOW (bar);
- double range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height));
+ /* We use the whole scroll-bar height in the calculations below, to
+ avoid strange effects like scrolling backwards when just clicking
+ on the handle (without moving it). */
+ double range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height))
+ + VERTICAL_SCROLL_BAR_MIN_HANDLE;
int sb_page, sb_pos;
BOOL draggingp = !NILP (bar->dragging) ? TRUE : FALSE;
SCROLLINFO si;
+ /* We used to change the nPage setting while dragging the handle,
+ but that had very strange effects (such as scrolling backwards
+ while dragging downwards).
+
+ Now, we don't change the nPage setting while dragging unless we
+ get near to the end of the buffer, in which case we often have to
+ resize the handle to "go all the way". */
+
+ if (draggingp)
+ {
+ int near_bottom_p;
+ BLOCK_INPUT;
+ si.cbSize = sizeof (si);
+ si.fMask = SIF_POS | SIF_PAGE;
+ GetScrollInfo(w, SB_CTL, &si);
+ near_bottom_p = si.nPos + si.nPage >= range;
+ UNBLOCK_INPUT;
+ if (!near_bottom_p)
+ return;
+ }
+
if (whole)
{
/* Position scroll bar at rock bottom if the bottom of the
buffer is visible. This avoids shinking the thumb away
to nothing if it is held at the bottom of the buffer. */
- if (position + portion >= whole)
- {
- sb_page = range * (whole - position) / whole
- + VERTICAL_SCROLL_BAR_MIN_HANDLE;
- sb_pos = range;
- }
-
- sb_page = portion * range / whole + VERTICAL_SCROLL_BAR_MIN_HANDLE;
- sb_pos = position * range / whole;
+ if (position + portion >= whole && !draggingp)
+ {
+ sb_page = range * (whole - position) / whole;
+ sb_pos = range;
+ }
+ else
+ {
+ sb_pos = position * range / whole;
+ sb_page = (min (portion, (whole - position)) * range) / whole;
+ }
}
else
{
sb_pos = 0;
}
+ sb_page = max (sb_page, VERTICAL_SCROLL_BAR_MIN_HANDLE);
+
BLOCK_INPUT;
si.cbSize = sizeof (si);
- /* Only update page size if currently dragging, to reduce
- flicker effects. */
- if (draggingp)
- si.fMask = SIF_PAGE;
- else
- si.fMask = SIF_PAGE | SIF_POS;
+ si.fMask = SIF_PAGE | SIF_POS;
si.nPage = sb_page;
si.nPos = sb_pos;
- SetScrollInfo (w, SB_CTL, &si, !draggingp);
+ SetScrollInfo (w, SB_CTL, &si, TRUE);
UNBLOCK_INPUT;
}
free_frame_menubar (f);
- unload_color (f, f->output_data.x->foreground_pixel);
- unload_color (f, f->output_data.x->background_pixel);
+ unload_color (f, FRAME_FOREGROUND_PIXEL (f));
+ unload_color (f, FRAME_BACKGROUND_PIXEL (f));
unload_color (f, f->output_data.w32->cursor_pixel);
unload_color (f, f->output_data.w32->cursor_foreground_pixel);
unload_color (f, f->output_data.w32->border_pixel);
redeem_scroll_bar_hook = w32_redeem_scroll_bar;
judge_scroll_bars_hook = w32_judge_scroll_bars;
- scroll_region_ok = 1; /* we'll scroll partial frames */
- char_ins_del_ok = 1;
- line_ins_del_ok = 1; /* we'll just blt 'em */
- fast_clear_end_of_line = 1; /* X does this well */
- memory_below_frame = 0; /* we don't remember what scrolls
- off the bottom */
+ TTY_SCROLL_REGION_OK (CURTTY ()) = 1; /* we'll scroll partial frames */
+ TTY_CHAR_INS_DEL_OK (CURTTY ()) = 1;
+ TTY_LINE_INS_DEL_OK (CURTTY ()) = 1; /* we'll just blt 'em */
+ TTY_FAST_CLEAR_END_OF_LINE (CURTTY ()) = 1; /* X does this well */
+ TTY_MEMORY_BELOW_FRAME (CURTTY ()) = 0; /* we don't remember what
+ scrolls off the
+ bottom */
baud_rate = 19200;
w32_system_caret_hwnd = NULL;
/* Nonzero means menubar is currently active. */
char menubar_active;
- /* Nonzero means a menu command is being processed. */
- char menu_command_in_progress;
-
/* Nonzero means menubar is about to become active, but should be
brought up to date first. */
volatile char pending_menu_activation;
#define FRAME_W32_WINDOW(f) ((f)->output_data.w32->window_desc)
#define FRAME_X_WINDOW(f) ((f)->output_data.w32->window_desc)
-#define FRAME_FOREGROUND_PIXEL(f) ((f)->output_data.x->foreground_pixel)
-#define FRAME_BACKGROUND_PIXEL(f) ((f)->output_data.x->background_pixel)
#define FRAME_FONT(f) ((f)->output_data.w32->font)
#define FRAME_FONTSET(f) ((f)->output_data.w32->fontset)
#define FRAME_BASELINE_OFFSET(f) ((f)->output_data.w32->baseline_offset)
Boston, MA 02110-1301, USA. */
#include <config.h>
+#include <stdio.h>
+
#include "lisp.h"
#include "buffer.h"
#include "keyboard.h"
}
DEFUN ("window-height", Fwindow_height, Swindow_height, 0, 1, 0,
- doc: /* Return the number of lines in WINDOW (including its mode line). */)
+ doc: /* Return the number of lines in WINDOW (including its mode line).
+ WINDOW defaults to the selected window. */)
(window)
Lisp_Object window;
{
}
DEFUN ("window-hscroll", Fwindow_hscroll, Swindow_hscroll, 0, 1, 0,
- doc: /* Return the number of columns by which WINDOW is scrolled from left margin. */)
+ doc: /* Return the number of columns by which WINDOW is scrolled from left margin.
+ WINDOW defaults to the selected window. */)
(window)
Lisp_Object window;
{
DEFUN ("window-redisplay-end-trigger", Fwindow_redisplay_end_trigger,
Swindow_redisplay_end_trigger, 0, 1, 0,
doc: /* Return WINDOW's redisplay end trigger value.
+ WINDOW defaults to the selected window.
See `set-window-redisplay-end-trigger' for more information. */)
(window)
Lisp_Object window;
DEFUN ("window-point", Fwindow_point, Swindow_point, 0, 1, 0,
doc: /* Return current value of point in WINDOW.
+ WINDOW defaults to the selected window.
+
For a nonselected window, this is the value point would have
if that window were selected.
DEFUN ("window-start", Fwindow_start, Swindow_start, 0, 1, 0,
doc: /* Return position at which display currently starts in WINDOW.
+ WINDOW defaults to the selected window.
This is updated by redisplay or by calling `set-window-start'. */)
(window)
Lisp_Object window;
DEFUN ("window-end", Fwindow_end, Swindow_end, 0, 2, 0,
doc: /* Return position at which display currently ends in WINDOW.
+ WINDOW defaults to the selected window.
This is updated by redisplay, when it runs to completion.
Simply changing the buffer text or setting `window-start'
does not update this value.
DEFUN ("window-display-table", Fwindow_display_table, Swindow_display_table,
0, 1, 0,
- doc: /* Return the display-table that WINDOW is using. */)
+ doc: /* Return the display-table that WINDOW is using.
+ WINDOW defaults to the selected window. */)
(window)
Lisp_Object window;
{
DEFUN ("window-text-height", Fwindow_text_height, Swindow_text_height,
0, 1, 0,
doc: /* Return the height in lines of the text display area of WINDOW.
+ WINDOW defaults to the selected window.
This doesn't include the mode-line (or header-line if any) or any
partial-height lines in the text display area. */)
(window)
void
init_window_once ()
{
- struct frame *f = make_terminal_frame ();
+ struct frame *f = make_initial_frame ();
XSETFRAME (selected_frame, f);
Vterminal_frame = selected_frame;
minibuf_window = f->minibuffer_window;
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <stdio.h> /* This needs to be before termchar.h */
#include "lisp.h"
#include "charset.h"
#include "keyboard.h"
#include "frame.h"
+#include "termhooks.h"
#ifdef HAVE_WINDOW_SYSTEM
#include "fontset.h"
#include "blockinput.h"
#include "window.h"
#include "intervals.h"
+#include "termchar.h"
#ifdef HAVE_X_WINDOWS
\f
+static Lisp_Object
+internal_resolve_face_name (nargs, args)
+ int nargs;
+ Lisp_Object *args;
+{
+ Fget (args[0], args[1]);
+}
+
+static Lisp_Object
+resolve_face_name_error (ignore)
+ Lisp_Object ignore;
+{
+ return Qnil;
+}
/* Resolve face name FACE_NAME. If FACE_NAME is a string, intern it
to make it a symbol. If FACE_NAME is an alias for another face,
CHECK_LIVE_FRAME (frame);
f = XFRAME (frame);
- if ((CONSP (color1) && !parse_rgb_list (color1, &cdef1))
- || !STRINGP (color1)
- || !defined_color (f, SDATA (color1), &cdef1, 0))
+ if (!(CONSP (color1) && parse_rgb_list (color1, &cdef1))
+ && !(STRINGP (color1) && defined_color (f, SDATA (color1), &cdef1, 0)))
signal_error ("Invalid color", color1);
- if ((CONSP (color2) && !parse_rgb_list (color2, &cdef2))
- || !STRINGP (color2)
- || !defined_color (f, SDATA (color2), &cdef2, 0))
+ if (!(CONSP (color2) && parse_rgb_list (color2, &cdef2))
+ && !(STRINGP (color2) && defined_color (f, SDATA (color2), &cdef2, 0)))
signal_error ("Invalid color", color2);
return make_number (color_distance (&cdef1, &cdef2));
/* See if the capabilities we selected above are supported, with the
given colors. */
if (test_caps != 0 &&
- ! tty_capable_p (f, test_caps, fg_tty_color.pixel, bg_tty_color.pixel))
+ ! tty_capable_p (FRAME_TTY (f), test_caps, fg_tty_color.pixel, bg_tty_color.pixel))
return 0;
{
FRAME_FACE_CACHE (f)->menu_face_changed_p = 0;
#ifdef USE_X_TOOLKIT
- x_update_menu_appearance (f);
+ if (FRAME_WINDOW_P (f))
+ x_update_menu_appearance (f);
#endif
}
LFACE_FOREGROUND (lface) = XCDR (color);
else if (FRAME_WINDOW_P (f))
return 0;
- else if (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
+ else if (FRAME_INITIAL_P (f) || FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
LFACE_FOREGROUND (lface) = build_string (unspecified_fg);
else
abort ();
LFACE_BACKGROUND (lface) = XCDR (color);
else if (FRAME_WINDOW_P (f))
return 0;
- else if (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
+ else if (FRAME_INITIAL_P (f) || FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
LFACE_BACKGROUND (lface) = build_string (unspecified_bg);
else
abort ();
#ifdef HAVE_WINDOW_SYSTEM
#ifdef HAVE_X_WINDOWS
- if (face->font != FRAME_FONT (f))
+ if (FRAME_X_P (f) && face->font != FRAME_FONT (f))
{
/* This can happen when making a frame on a display that does
- not support the default font. */
+ not support the default font. */
if (!face->font)
- return 0;
-
+ return 0;
+
/* Otherwise, the font specified for the frame was not
- acceptable as a font for the default face (perhaps because
- auto-scaled fonts are rejected), so we must adjust the frame
- font. */
+ acceptable as a font for the default face (perhaps because
+ auto-scaled fonts are rejected), so we must adjust the frame
+ font. */
x_set_font (f, build_string (face->font_name), Qnil);
}
#endif /* HAVE_X_WINDOWS */
face = realize_x_face (cache, attrs, c, base_face);
else if (FRAME_TERMCAP_P (cache->f) || FRAME_MSDOS_P (cache->f))
face = realize_tty_face (cache, attrs, c);
+ else if (FRAME_INITIAL_P (cache->f))
+ {
+ /* Create a dummy face. */
+ face = make_realized_face (attrs);
+ }
else
abort ();
#include <sys/ioctl.h>
#endif /* ! defined (BSD_SYSTEM) */
-#include "systty.h"
#include "systime.h"
#ifndef INCLUDED_FCNTL
static Lisp_Object Qvendor_specific_keysyms;
static Lisp_Object Qlatin_1;
+/* Used in x_flush. */
+
+extern Lisp_Object Vinhibit_redisplay;
+
extern XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *));
extern int x_bitmap_mask P_ ((FRAME_PTR, int));
static void x_update_window_end P_ ((struct window *, int, int));
static int x_io_error_quitter P_ ((Display *));
+static struct terminal *x_create_terminal P_ ((struct x_display_info *));
+void x_delete_terminal P_ ((struct terminal *));
static void x_font_min_bounds P_ ((XFontStruct *, int *, int *));
static int x_compute_min_glyph_bounds P_ ((struct frame *));
static void x_update_end P_ ((struct frame *));
static void XTframe_up_to_date P_ ((struct frame *));
-static void XTset_terminal_modes P_ ((void));
-static void XTreset_terminal_modes P_ ((void));
-static void x_clear_frame P_ ((void));
+static void XTset_terminal_modes P_ ((struct terminal *));
+static void XTreset_terminal_modes P_ ((struct terminal *));
+static void x_clear_frame P_ ((struct frame *));
static void frame_highlight P_ ((struct frame *));
static void frame_unhighlight P_ ((struct frame *));
static void x_new_focus_frame P_ ((struct x_display_info *, struct frame *));
x_flush (f)
struct frame *f;
{
+ /* Don't call XFlush when it is not safe to redisplay; the X
+ connection may be broken. */
+ if (!NILP (Vinhibit_redisplay))
+ return;
+
BLOCK_INPUT;
if (f == NULL)
{
Lisp_Object rest, frame;
FOR_EACH_FRAME (rest, frame)
- x_flush (XFRAME (frame));
+ if (FRAME_X_P (XFRAME (frame)))
+ x_flush (XFRAME (frame));
}
else if (FRAME_X_P (f))
XFlush (FRAME_X_DISPLAY (f));
rarely happens). */
static void
-XTset_terminal_modes ()
+XTset_terminal_modes (struct terminal *terminal)
{
}
the X-windows go away, and suspending requires no action. */
static void
-XTreset_terminal_modes ()
+XTreset_terminal_modes (struct terminal *terminal)
{
}
for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
if (GC_FRAMEP (XCAR (tail))
&& (f = XFRAME (XCAR (tail)),
- (f->output_data.nothing != 1
+ (FRAME_X_P (f)
+ && f->output_data.nothing != 1
&& FRAME_X_DISPLAY_INFO (f) == dpyinfo))
&& f->output_data.x->widget == widget)
return f;
for X frames. */
static void
-x_delete_glyphs (n)
+x_delete_glyphs (f, n)
+ struct frame *f;
register int n;
{
abort ();
}
-/* Clear entire frame. If updating_frame is non-null, clear that
- frame. Otherwise clear the selected frame. */
+/* Clear an entire frame. */
static void
-x_clear_frame ()
+x_clear_frame (struct frame *f)
{
- struct frame *f;
-
- if (updating_frame)
- f = updating_frame;
- else
- f = SELECTED_FRAME ();
-
/* Clearing the frame will erase any cursor, so mark them all as no
longer visible. */
mark_window_cursors_off (XWINDOW (FRAME_ROOT_WINDOW (f)));
XGCValues values;
values.function = GXxor;
- values.foreground = (f->output_data.x->foreground_pixel
- ^ f->output_data.x->background_pixel);
+ values.foreground = (FRAME_FOREGROUND_PIXEL (f)
+ ^ FRAME_BACKGROUND_PIXEL (f));
gc = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
GCFunction | GCForeground, &values);
lines or deleting -N lines at vertical position VPOS. */
static void
-x_ins_del_lines (vpos, n)
+x_ins_del_lines (f, vpos, n)
+ struct frame *f;
int vpos, n;
{
abort ();
/* Clear the mouse-moved flag for every frame on this display. */
FOR_EACH_FRAME (tail, frame)
- if (FRAME_X_DISPLAY (XFRAME (frame)) == FRAME_X_DISPLAY (*fp))
+ if (FRAME_X_P (XFRAME (frame))
+ && FRAME_X_DISPLAY (XFRAME (frame)) == FRAME_X_DISPLAY (*fp))
XFRAME (frame)->mouse_moved = 0;
last_mouse_scroll_bar = Qnil;
if (! GC_FRAMEP (frame))
abort ();
+ if (! FRAME_X_P (XFRAME (frame)))
+ continue;
+
/* Scan this frame's scroll bar list for a scroll bar with the
right window ID. */
condemned = FRAME_CONDEMNED_SCROLL_BARS (XFRAME (frame));
XGCTYPE (tail) == Lisp_Cons;
tail = XCDR (tail))
{
- Lisp_Object frame = XCAR (tail);
- Widget menu_bar = XFRAME (frame)->output_data.x->menubar_widget;
+ if (FRAME_X_P (XFRAME (XCAR (tail))))
+ {
+ Lisp_Object frame = XCAR (tail);
+ Widget menu_bar = XFRAME (frame)->output_data.x->menubar_widget;
- if (menu_bar && xlwmenu_window_p (menu_bar, window))
- return menu_bar;
+ if (menu_bar && xlwmenu_window_p (menu_bar, window))
+ return menu_bar;
+ }
}
return NULL;
a.background_pixel = f->output_data.x->scroll_bar_background_pixel;
if (a.background_pixel == -1)
- a.background_pixel = f->output_data.x->background_pixel;
+ a.background_pixel = FRAME_BACKGROUND_PIXEL (f);
a.event_mask = (ButtonPressMask | ButtonReleaseMask
| ButtonMotionMask | PointerMotionHintMask
/* Restore the foreground color of the GC if we changed it above. */
if (f->output_data.x->scroll_bar_foreground_pixel != -1)
XSetForeground (FRAME_X_DISPLAY (f), gc,
- f->output_data.x->foreground_pixel);
+ FRAME_FOREGROUND_PIXEL (f));
/* Draw the empty space below the handle. Note that we can't
clear zero-height areas; that means "clear to end of window." */
x_scroll_bar_set_handle (bar, XINT (bar->start), XINT (bar->end), 1);
+ /* Switch to scroll bar foreground color. */
+ if (f->output_data.x->scroll_bar_foreground_pixel != -1)
+ XSetForeground (FRAME_X_DISPLAY (f), gc,
+ f->output_data.x->scroll_bar_foreground_pixel);
+
/* Draw a one-pixel border just inside the edges of the scroll bar. */
XDrawRectangle (FRAME_X_DISPLAY (f), w, gc,
XINT (bar->width) - 1 - width_trim - width_trim,
XINT (bar->height) - 1);
- UNBLOCK_INPUT;
+ /* Restore the foreground color of the GC if we changed it above. */
+ if (f->output_data.x->scroll_bar_foreground_pixel != -1)
+ XSetForeground (FRAME_X_DISPLAY (f), gc,
+ f->output_data.x->foreground_pixel);
+
+ UNBLOCK_INPUT;
}
#endif /* not USE_TOOLKIT_SCROLL_BARS */
int count = 0;
int do_help = 0;
int nbytes = 0;
- struct frame *f;
+ struct frame *f = NULL;
struct coding_system coding;
XEvent event = *eventp;
bzero (&compose_status, sizeof (compose_status));
orig_keysym = keysym;
- /* Common for all keysym input events. */
- XSETFRAME (inev.ie.frame_or_window, f);
- inev.ie.modifiers
- = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), modifiers);
- inev.ie.timestamp = event.xkey.time;
-
- /* First deal with keysyms which have defined
- translations to characters. */
- if (keysym >= 32 && keysym < 128)
- /* Avoid explicitly decoding each ASCII character. */
- {
- inev.ie.kind = ASCII_KEYSTROKE_EVENT;
- inev.ie.code = keysym;
+ /* Common for all keysym input events. */
+ XSETFRAME (inev.ie.frame_or_window, f);
+ inev.ie.modifiers
+ = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), modifiers);
+ inev.ie.timestamp = event.xkey.time;
+
+ /* First deal with keysyms which have defined
+ translations to characters. */
+ if (keysym >= 32 && keysym < 128)
+ /* Avoid explicitly decoding each ASCII character. */
+ {
+ inev.ie.kind = ASCII_KEYSTROKE_EVENT;
+ inev.ie.code = keysym;
goto done_keysym;
}
/* Now non-ASCII. */
if (HASH_TABLE_P (Vx_keysym_table)
&& (NATNUMP (c = Fgethash (make_number (keysym),
- Vx_keysym_table,
- Qnil))))
- {
- inev.ie.kind = (SINGLE_BYTE_CHAR_P (XFASTINT (c))
- ? ASCII_KEYSTROKE_EVENT
- : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
- inev.ie.code = XFASTINT (c);
- goto done_keysym;
- }
-
- /* Random non-modifier sorts of keysyms. */
- if (((keysym >= XK_BackSpace && keysym <= XK_Escape)
+ Vx_keysym_table,
+ Qnil))))
+ {
+ inev.ie.kind = (SINGLE_BYTE_CHAR_P (XFASTINT (c))
+ ? ASCII_KEYSTROKE_EVENT
+ : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
+ inev.ie.code = XFASTINT (c);
+ goto done_keysym;
+ }
+
+ /* Random non-modifier sorts of keysyms. */
+ if (((keysym >= XK_BackSpace && keysym <= XK_Escape)
|| keysym == XK_Delete
#ifdef XK_ISO_Left_Tab
|| (keysym >= XK_ISO_Left_Tab
EXPECTED is nonzero if the caller knows input is available. */
static int
-XTread_socket (sd, expected, hold_quit)
- register int sd;
+XTread_socket (terminal, expected, hold_quit)
+ struct terminal *terminal;
int expected;
struct input_event *hold_quit;
{
++handling_signal;
+#ifdef HAVE_X_SM
+ /* Only check session manager input for the primary display. */
+ if (terminal->id == 1 && x_session_have_connection ())
+ {
+ struct input_event inev;
+ BLOCK_INPUT;
+ /* We don't need to EVENT_INIT (inev) here, as
+ x_session_check_input copies an entire input_event. */
+ if (x_session_check_input (&inev))
+ {
+ kbd_buffer_store_event_hold (&inev, hold_quit);
+ count++;
+ }
+ UNBLOCK_INPUT;
+ }
+#endif
+
+ /* For debugging, this gives a way to fake an I/O error. */
+ if (terminal->display_info.x == XTread_socket_fake_io_error)
+ {
+ XTread_socket_fake_io_error = 0;
+ x_io_error_quitter (dpyinfo->display);
+ }
+
+#if 0 /* This loop is a noop now. */
/* Find the display we are supposed to read input for.
It's the one communicating on descriptor SD. */
for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next)
#endif /* HAVE_SELECT */
#endif /* SIGIO */
#endif
-
- /* For debugging, this gives a way to fake an I/O error. */
- if (dpyinfo == XTread_socket_fake_io_error)
- {
- XTread_socket_fake_io_error = 0;
- x_io_error_quitter (dpyinfo->display);
- }
-
-#ifdef HAVE_X_SM
- {
- struct input_event inev;
- BLOCK_INPUT;
- /* We don't need to EVENT_INIT (inev) here, as
- x_session_check_input copies an entire input_event. */
- if (x_session_check_input (&inev))
- {
- kbd_buffer_store_event_hold (&inev, hold_quit);
- count++;
- }
- UNBLOCK_INPUT;
- }
+ }
#endif
#ifndef USE_GTK
- while (XPending (dpyinfo->display))
- {
- int finish;
+ while (XPending (terminal->display_info.x->display))
+ {
+ int finish;
- XNextEvent (dpyinfo->display, &event);
+ XNextEvent (terminal->display_info.x->display, &event);
#ifdef HAVE_X_I18N
- /* Filter events for the current X input method. */
- if (x_filter_event (dpyinfo, &event))
- break;
+ /* Filter events for the current X input method. */
+ if (x_filter_event (terminal->display_info.x, &event))
+ break;
#endif
- event_found = 1;
+ event_found = 1;
- count += handle_one_xevent (dpyinfo, &event, &finish, hold_quit);
+ count += handle_one_xevent (terminal->display_info.x,
+ &event, &finish, hold_quit);
- if (finish == X_EVENT_GOTO_OUT)
- goto out;
- }
-#endif /* not USE_GTK */
+ if (finish == X_EVENT_GOTO_OUT)
+ goto out;
}
-#ifdef USE_GTK
+#else /* USE_GTK */
/* For GTK we must use the GTK event loop. But XEvents gets passed
to our filter function above, and then to the big event switch.
}
#ifndef XFlush
- if (updating_frame != f)
- XFlush (FRAME_X_DISPLAY (f));
+ XFlush (FRAME_X_DISPLAY (f));
#endif
}
x_error_message->string[0] = 0;
}
+#if 0 /* See comment in unwind_to_catch why calling this is a bad
+ * idea. --lorentey */
/* Close off all unclosed x_catch_errors calls. */
void
while (x_error_message)
x_uncatch_errors ();
}
+#endif
/* Nonzero if x_catch_errors has been done and not yet canceled. */
{
struct x_display_info *dpyinfo = x_display_info_for_display (dpy);
Lisp_Object frame, tail;
+ int index = SPECPDL_INDEX ();
error_msg = (char *) alloca (strlen (error_message) + 1);
strcpy (error_msg, error_message);
the original message here. */
x_catch_errors (dpy);
+ /* Inhibit redisplay while frames are being deleted. */
+ specbind (Qinhibit_redisplay, Qt);
+
+ if (dpyinfo)
+ {
+ /* Protect display from being closed when we delete the last
+ frame on it. */
+ dpyinfo->reference_count++;
+ dpyinfo->terminal->reference_count++;
+ }
+
+ /* First delete frames whose mini-buffers are on frames
+ that are on the dead display. */
+ FOR_EACH_FRAME (tail, frame)
+ {
+ Lisp_Object minibuf_frame;
+ minibuf_frame
+ = WINDOW_FRAME (XWINDOW (FRAME_MINIBUF_WINDOW (XFRAME (frame))));
+ if (FRAME_X_P (XFRAME (frame))
+ && FRAME_X_P (XFRAME (minibuf_frame))
+ && ! EQ (frame, minibuf_frame)
+ && FRAME_X_DISPLAY_INFO (XFRAME (minibuf_frame)) == dpyinfo)
+ Fdelete_frame (frame, Qt);
+ }
+
+ /* Now delete all remaining frames on the dead display.
+ We are now sure none of these is used as the mini-buffer
+ for another frame that we need to delete. */
+ FOR_EACH_FRAME (tail, frame)
+ if (FRAME_X_P (XFRAME (frame))
+ && FRAME_X_DISPLAY_INFO (XFRAME (frame)) == dpyinfo)
+ {
+ /* Set this to t so that Fdelete_frame won't get confused
+ trying to find a replacement. */
+ FRAME_KBOARD (XFRAME (frame))->Vdefault_minibuffer_frame = Qt;
+ Fdelete_frame (frame, Qt);
+ }
+
/* We have to close the display to inform Xt that it doesn't
exist anymore. If we don't, Xt will continue to wait for
events from the display. As a consequence, a sequence of
xg_display_close (dpyinfo->display);
#endif
- /* Indicate that this display is dead. */
if (dpyinfo)
- dpyinfo->display = 0;
-
- /* First delete frames whose mini-buffers are on frames
- that are on the dead display. */
- FOR_EACH_FRAME (tail, frame)
{
- Lisp_Object minibuf_frame;
- minibuf_frame
- = WINDOW_FRAME (XWINDOW (FRAME_MINIBUF_WINDOW (XFRAME (frame))));
- if (FRAME_X_P (XFRAME (frame))
- && FRAME_X_P (XFRAME (minibuf_frame))
- && ! EQ (frame, minibuf_frame)
- && FRAME_X_DISPLAY_INFO (XFRAME (minibuf_frame)) == dpyinfo)
- Fdelete_frame (frame, Qt);
- }
+ /* Indicate that this display is dead. */
+ dpyinfo->display = 0;
- /* Now delete all remaining frames on the dead display.
- We are now sure none of these is used as the mini-buffer
- for another frame that we need to delete. */
- FOR_EACH_FRAME (tail, frame)
- if (FRAME_X_P (XFRAME (frame))
- && FRAME_X_DISPLAY_INFO (XFRAME (frame)) == dpyinfo)
- {
- /* Set this to t so that Fdelete_frame won't get confused
- trying to find a replacement. */
- FRAME_KBOARD (XFRAME (frame))->Vdefault_minibuffer_frame = Qt;
- Fdelete_frame (frame, Qt);
- }
+ dpyinfo->reference_count--;
+ dpyinfo->terminal->reference_count--;
+ if (dpyinfo->reference_count != 0)
+ /* We have just closed all frames on this display. */
+ abort ();
- if (dpyinfo)
- x_delete_display (dpyinfo);
+ x_delete_display (dpyinfo);
+ }
x_uncatch_errors ();
- if (x_display_list == 0)
+ if (terminal_list == 0)
{
fprintf (stderr, "%s\n", error_msg);
shut_down_emacs (0, 0, Qnil);
sigunblock (sigmask (SIGALRM));
TOTALLY_UNBLOCK_INPUT;
+ unbind_to (index, Qnil);
clear_waiting_for_input ();
error ("%s", error_msg);
}
FOR_EACH_FRAME (tail, frame)
{
struct frame *f = XFRAME (frame);
- if (FRAME_X_DISPLAY_INFO (f) == dpyinfo)
+ if (FRAME_X_P (f) && FRAME_X_DISPLAY_INFO (f) == dpyinfo)
{
FRAME_XIC (f) = NULL;
xic_free_xfontset (f);
{
struct frame *f = XFRAME (frame);
- if (FRAME_X_DISPLAY_INFO (f) == xim_inst->dpyinfo)
+ if (FRAME_X_P (f)
+ && FRAME_X_DISPLAY_INFO (f) == xim_inst->dpyinfo)
if (FRAME_XIC (f) == NULL)
{
create_frame_xic (f);
{
int have_net_atom = wm_supports (f, "_NET_WM_STATE");
+ /* Some window managers don't say they support _NET_WM_STATE, but they do say
+ they support _NET_WM_STATE_FULLSCREEN. Try that also. */
+ if (!have_net_atom)
+ have_net_atom = wm_supports (f, "_NET_WM_STATE_FULLSCREEN");
+
if (have_net_atom)
{
Lisp_Object frame;
break;
}
- if (!wm_supports (f, what)) return 0;
+ if (what != NULL && !wm_supports (f, what)) return 0;
Fx_send_client_event (frame, make_number (0), frame,
XDestroyWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f));
#endif /* !USE_X_TOOLKIT */
- unload_color (f, f->output_data.x->foreground_pixel);
- unload_color (f, f->output_data.x->background_pixel);
+ unload_color (f, FRAME_FOREGROUND_PIXEL (f));
+ unload_color (f, FRAME_BACKGROUND_PIXEL (f));
unload_color (f, f->output_data.x->cursor_pixel);
unload_color (f, f->output_data.x->cursor_foreground_pixel);
unload_color (f, f->output_data.x->border_pixel);
{
int connection;
Display *dpy;
+ struct terminal *terminal;
struct x_display_info *dpyinfo;
XrmDatabase xrdb;
char **argv2 = argv;
GdkAtom atom;
+#ifndef HAVE_GTK_MULTIDISPLAY
+ if (!EQ (Vinitial_window_system, intern ("x")))
+ error ("Sorry, you cannot connect to X servers with the GTK toolkit");
+#endif
+
if (x_initialized++ > 1)
{
+#ifdef HAVE_GTK_MULTIDISPLAY
/* Opening another display. If xg_display_open returns less
than zero, we are probably on GTK 2.0, which can only handle
one display. GTK 2.2 or later can handle more than one. */
if (xg_display_open (SDATA (display_name), &dpy) < 0)
error ("Sorry, this version of GTK can only handle one display");
- }
+#else
+ /* XXX Unfortunately, multiple display support is severely broken
+ in recent GTK versions, so HAVE_GTK_MULTIDISPLAY is
+ unconditionally disabled in configure.in. */
+ error ("Sorry, multiple display support is broken in current GTK versions");
+#endif
+ }
else
{
for (argc = 0; argc < NUM_ARGV; ++argc)
dpyinfo = (struct x_display_info *) xmalloc (sizeof (struct x_display_info));
bzero (dpyinfo, sizeof *dpyinfo);
+ terminal = x_create_terminal (dpyinfo);
+
#ifdef MULTI_KBOARD
{
struct x_display_info *share;
SDATA (display_name)))
break;
if (share)
- dpyinfo->kboard = share->kboard;
+ terminal->kboard = share->terminal->kboard;
else
{
- dpyinfo->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
- init_kboard (dpyinfo->kboard);
+ terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
+ init_kboard (terminal->kboard);
if (!EQ (XSYMBOL (Qvendor_specific_keysyms)->function, Qunbound))
{
char *vendor = ServerVendor (dpy);
UNBLOCK_INPUT;
- dpyinfo->kboard->Vsystem_key_alist
+ terminal->kboard->Vsystem_key_alist
= call1 (Qvendor_specific_keysyms,
build_string (vendor ? vendor : ""));
BLOCK_INPUT;
}
- dpyinfo->kboard->next_kboard = all_kboards;
- all_kboards = dpyinfo->kboard;
+ terminal->kboard->next_kboard = all_kboards;
+ all_kboards = terminal->kboard;
/* Don't let the initial kboard remain current longer than necessary.
That would cause problems if a file loaded on startup tries to
prompt in the mini-buffer. */
if (current_kboard == initial_kboard)
- current_kboard = dpyinfo->kboard;
+ current_kboard = terminal->kboard;
}
- dpyinfo->kboard->reference_count++;
+ terminal->kboard->reference_count++;
}
#endif
dpyinfo->display = dpy;
+ /* Set the name of the terminal. */
+ terminal->name = (char *) xmalloc (SBYTES (display_name) + 1);
+ strncpy (terminal->name, SDATA (display_name), SBYTES (display_name));
+ terminal->name[SBYTES (display_name)] = 0;
+
#if 0
XSetAfterFunction (x_current_display, x_trace_wire);
#endif /* ! 0 */
}
#ifdef HAVE_X_SM
- /* Only do this for the first display. */
- if (!x_session_initialized++)
+ /* Only do this for the very first display in the Emacs session.
+ Ignore X session management when Emacs was first started on a
+ tty. */
+ if (terminal->id == 1)
x_session_initialize (dpyinfo);
#endif
return dpyinfo;
}
\f
-/* Get rid of display DPYINFO, assuming all frames are already gone,
+/* Get rid of display DPYINFO, deleting all frames on it,
and without sending any more commands to the X server. */
void
struct x_display_info *dpyinfo;
{
int i;
+ struct terminal *t;
+
+ /* Close all frames and delete the generic struct terminal for this
+ X display. */
+ for (t = terminal_list; t; t = t->next_terminal)
+ if (t->type == output_x_window && t->display_info.x == dpyinfo)
+ {
+ /* Close X session management when we close its display. */
+ if (t->id == 1 && x_session_have_connection ())
+ x_session_close();
+
+ delete_terminal (t);
+ break;
+ }
delete_keyboard_wait_descriptor (dpyinfo->connection);
XrmDestroyDatabase (dpyinfo->xrdb);
#endif
#endif
-#ifdef MULTI_KBOARD
- if (--dpyinfo->kboard->reference_count == 0)
- delete_kboard (dpyinfo->kboard);
-#endif
#ifdef HAVE_X_I18N
if (dpyinfo->xim)
xim_close_dpy (dpyinfo);
extern frame_parm_handler x_frame_parm_handlers[];
static struct redisplay_interface x_redisplay_interface =
-{
- x_frame_parm_handlers,
- x_produce_glyphs,
- x_write_glyphs,
- x_insert_glyphs,
- x_clear_end_of_line,
- x_scroll_run,
- x_after_update_window_line,
- x_update_window_begin,
- x_update_window_end,
- x_cursor_to,
- x_flush,
+ {
+ x_frame_parm_handlers,
+ x_produce_glyphs,
+ x_write_glyphs,
+ x_insert_glyphs,
+ x_clear_end_of_line,
+ x_scroll_run,
+ x_after_update_window_line,
+ x_update_window_begin,
+ x_update_window_end,
+ x_cursor_to,
+ x_flush,
#ifdef XFlush
- x_flush,
+ x_flush,
#else
- 0, /* flush_display_optional */
-#endif
- x_clear_window_mouse_face,
- x_get_glyph_overhangs,
- x_fix_overlapping_area,
- x_draw_fringe_bitmap,
- 0, /* define_fringe_bitmap */
- 0, /* destroy_fringe_bitmap */
- x_per_char_metric,
- x_encode_char,
- x_compute_glyph_string_overhangs,
- x_draw_glyph_string,
- x_define_frame_cursor,
- x_clear_frame_area,
- x_draw_window_cursor,
- x_draw_vertical_window_border,
- x_shift_glyphs_for_insert
-};
+ 0, /* flush_display_optional */
+#endif
+ x_clear_window_mouse_face,
+ x_get_glyph_overhangs,
+ x_fix_overlapping_area,
+ x_draw_fringe_bitmap,
+ 0, /* define_fringe_bitmap */
+ 0, /* destroy_fringe_bitmap */
+ x_per_char_metric,
+ x_encode_char,
+ x_compute_glyph_string_overhangs,
+ x_draw_glyph_string,
+ x_define_frame_cursor,
+ x_clear_frame_area,
+ x_draw_window_cursor,
+ x_draw_vertical_window_border,
+ x_shift_glyphs_for_insert
+ };
+
+
+/* This function is called when the last frame on a display is deleted. */
+void
+x_delete_terminal (struct terminal *terminal)
+{
+ struct x_display_info *dpyinfo = terminal->display_info.x;
+ int i;
+
+ /* Protect against recursive calls. Fdelete_frame in
+ delete_terminal calls us back when it deletes our last frame. */
+ if (terminal->deleted)
+ return;
+
+ BLOCK_INPUT;
+ /* Free the fonts in the font table. */
+ for (i = 0; i < dpyinfo->n_fonts; i++)
+ if (dpyinfo->font_table[i].name)
+ {
+ XFreeFont (dpyinfo->display, dpyinfo->font_table[i].font);
+ }
+
+ x_destroy_all_bitmaps (dpyinfo);
+ XSetCloseDownMode (dpyinfo->display, DestroyAll);
+
+#ifdef USE_GTK
+ xg_display_close (dpyinfo->display);
+#else
+#ifdef USE_X_TOOLKIT
+ XtCloseDisplay (dpyinfo->display);
+#else
+ XCloseDisplay (dpyinfo->display);
+#endif
+#endif /* ! USE_GTK */
+
+ x_delete_display (dpyinfo);
+ UNBLOCK_INPUT;
+}
+
+
+static struct terminal *
+x_create_terminal (struct x_display_info *dpyinfo)
+{
+ struct terminal *terminal;
+
+ terminal = create_terminal ();
+
+ terminal->type = output_x_window;
+ terminal->display_info.x = dpyinfo;
+ dpyinfo->terminal = terminal;
+
+ /* kboard is initialized in x_term_init. */
+
+ terminal->clear_frame_hook = x_clear_frame;
+ terminal->ins_del_lines_hook = x_ins_del_lines;
+ terminal->delete_glyphs_hook = x_delete_glyphs;
+ terminal->ring_bell_hook = XTring_bell;
+ terminal->reset_terminal_modes_hook = XTreset_terminal_modes;
+ terminal->set_terminal_modes_hook = XTset_terminal_modes;
+ terminal->update_begin_hook = x_update_begin;
+ terminal->update_end_hook = x_update_end;
+ terminal->set_terminal_window_hook = XTset_terminal_window;
+ terminal->read_socket_hook = XTread_socket;
+ terminal->frame_up_to_date_hook = XTframe_up_to_date;
+ terminal->mouse_position_hook = XTmouse_position;
+ terminal->frame_rehighlight_hook = XTframe_rehighlight;
+ terminal->frame_raise_lower_hook = XTframe_raise_lower;
+ terminal->fullscreen_hook = XTfullscreen_hook;
+ terminal->set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar;
+ terminal->condemn_scroll_bars_hook = XTcondemn_scroll_bars;
+ terminal->redeem_scroll_bar_hook = XTredeem_scroll_bar;
+ terminal->judge_scroll_bars_hook = XTjudge_scroll_bars;
+
+ terminal->delete_frame_hook = x_destroy_window;
+ terminal->delete_terminal_hook = x_delete_terminal;
+
+ terminal->rif = &x_redisplay_interface;
+ terminal->scroll_region_ok = 1; /* We'll scroll partial frames. */
+ terminal->char_ins_del_ok = 1;
+ terminal->line_ins_del_ok = 1; /* We'll just blt 'em. */
+ terminal->fast_clear_end_of_line = 1; /* X does this well. */
+ terminal->memory_below_frame = 0; /* We don't remember what scrolls
+ off the bottom. */
+
+ return terminal;
+}
void
x_initialize ()
{
- rif = &x_redisplay_interface;
-
- clear_frame_hook = x_clear_frame;
- ins_del_lines_hook = x_ins_del_lines;
- delete_glyphs_hook = x_delete_glyphs;
- ring_bell_hook = XTring_bell;
- reset_terminal_modes_hook = XTreset_terminal_modes;
- set_terminal_modes_hook = XTset_terminal_modes;
- update_begin_hook = x_update_begin;
- update_end_hook = x_update_end;
- set_terminal_window_hook = XTset_terminal_window;
- read_socket_hook = XTread_socket;
- frame_up_to_date_hook = XTframe_up_to_date;
- mouse_position_hook = XTmouse_position;
- frame_rehighlight_hook = XTframe_rehighlight;
- frame_raise_lower_hook = XTframe_raise_lower;
- set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar;
- condemn_scroll_bars_hook = XTcondemn_scroll_bars;
- redeem_scroll_bar_hook = XTredeem_scroll_bar;
- judge_scroll_bars_hook = XTjudge_scroll_bars;
- fullscreen_hook = XTfullscreen_hook;
-
- scroll_region_ok = 1; /* we'll scroll partial frames */
- char_ins_del_ok = 1;
- line_ins_del_ok = 1; /* we'll just blt 'em */
- fast_clear_end_of_line = 1; /* X does this well */
- memory_below_frame = 0; /* we don't remember what scrolls
- off the bottom */
baud_rate = 19200;
x_noop_count = 0;
#endif
/* Try to use interrupt input; if we can't, then start polling. */
- Fset_input_mode (Qt, Qnil, Qt, Qnil);
+ Fset_input_interrupt_mode (Qt);
#ifdef USE_X_TOOLKIT
XtToolkitInitialize ();
XSetIOErrorHandler (x_io_error_quitter);
/* Disable Window Change signals; they are handled by X events. */
+#if 0 /* Don't. We may want to open tty frames later. */
#ifdef SIGWINCH
signal (SIGWINCH, SIG_DFL);
#endif /* SIGWINCH */
+#endif
signal (SIGPIPE, x_connection_signal);
}