diff options
author | Juanma Barranquero <lekktu@gmail.com> | 2003-02-04 14:56:31 +0000 |
---|---|---|
committer | Juanma Barranquero <lekktu@gmail.com> | 2003-02-04 14:56:31 +0000 |
commit | 177c0ea74342272645959b82cf219faa0b3dba16 (patch) | |
tree | 44e22b210a9904eab25a66d12e708804b671df75 | |
parent | db95369be096960245dd38678f68464627698678 (diff) | |
download | emacs-177c0ea74342272645959b82cf219faa0b3dba16.tar.gz |
Trailing whitespace deleted.
499 files changed, 7208 insertions, 7208 deletions
diff --git a/ChangeLog b/ChangeLog index a6a987163e7..d0e6b3b1754 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1932,7 +1932,7 @@ * make-dist: Make links for files under lisp/language. -1997-02-20 Kenichi Handa <handa@etl.go.jp> +1997-02-20 Kenichi Handa <handa@etl.go.jp> * update-subdirs: Exclude the directory "language" from subdirs. @@ -2114,7 +2114,7 @@ * config.sub: Use `pc', not `unknown', when canonicalizing the vendor for ...86. -1996-07-15 David Mosberger-Tang <davidm@AZStarNet.com> +1996-07-15 David Mosberger-Tang <davidm@AZStarNet.com> * configure.in: Check for termios.h header. @@ -3029,7 +3029,7 @@ * configure.in (arm-acorn-riscix1.1*, arm-acorn-riscix1.2*): riscix.h renamed to acorn.h. -1994-09-21 Michael Ben-Gershon (mybg@cs.huji.ac.il) +1994-09-21 Michael Ben-Gershon (mybg@cs.huji.ac.il) * configure.in (arm-acorn-riscix1.1*, arm-acorn-riscix1.2*): New configurations. @@ -42,7 +42,7 @@ http://www.gzip.org. Descriptions of GNU software are available at http://www.gnu.org/software/software.html - and in the Free Software Directory at + and in the Free Software Directory at http://www.gnu.org/directory/index.html * Alternative Internet FTP Sources @@ -57,7 +57,7 @@ United States: California - mirrors.kernel.org/gnu, http://mirrors.kernel.org/gnu -California - gatekeeper.dec.com/pub/GNU/ +California - gatekeeper.dec.com/pub/GNU/ California - ftp.keystealth.org/pub/gnu/ Illinois - uiarchive.cso.uiuc.edu/pub/ftp/ftp.gnu.org/gnu/ Indiana - ftp.in-span.net/pub/mirrors/ftp.gnu.org/ @@ -116,7 +116,7 @@ Japan - ftp.ring.gr.jp/pub/GNU/ Japan - mirrors.hbi.co.jp/gnu/ Japan - ftp.ayamura.org/pub/gnu/ Korea - cair-archive.kaist.ac.kr/pub/gnu/ (Internet address 143.248.186.3) -Korea - ftpmirror.hanyang.ac.kr/GNU/ +Korea - ftpmirror.hanyang.ac.kr/GNU/ Korea - ftp.linux.sarang.net/mirror/gnu/gnu/ (also mirrors alpha.gnu.org/gnu/ at ../alpha/) Korea - ftp.xgate.co.kr/pub/mirror/gnu/ Saudi Arabia - ftp.isu.net.sa/pub/gnu/ @@ -173,7 +173,7 @@ Sweden - ftp.sunet.se/pub/gnu/; also mirrors /non-gnu Sweden - ftp.chl.chalmers.se/pub/gnu/ Switzerland - sunsite.cnlab-switch.ch/mirror/gnu/ Ukraine - mirddin.farlep.net/pub/GNU/ -United Kingdom - ftp.mcc.ac.uk/pub/gnu/ +United Kingdom - ftp.mcc.ac.uk/pub/gnu/ United Kingdom - ftp.mirror.ac.uk/sites/ftp.gnu.org/pub/gnu/ United Kingdom - ftp.warwick.ac.uk/pub/gnu/ (Internet address 137.205.192.13) United Kingdom - ftp.hands.com/ftp.gnu.org/ @@ -59,7 +59,7 @@ that, so please refer to them if the simple procedure does not work. with some non-default options), always clean the source directories before running `configure' again: - make distclean + make distclean ./configure 5. Invoke the `make' program: @@ -127,10 +127,10 @@ colored icons in the toolbar if XPM support is not compiled in. Here's the list of these optional libraries, and the URLs where they can be found: - . libXaw3d for fancy 3D-style + . libXaw3d for fancy 3D-style scroll bars: ftp://ftp.x.org/contrib/widgets/Xaw3d/ . libxpm for XPM: ftp://ftp.x.org/contrib/libraries/ - Get version 3.4k or later, which lets Emacs + Get version 3.4k or later, which lets Emacs use its own color allocation functions. . libpng for PNG: ftp://www.libpng.org/pub/png/ . libz (for PNG): http://www.info-zip.org/pub/infozip/zlib/ @@ -138,7 +138,7 @@ can be found: Get version 6b -- 6a is reported to fail in Emacs. . libtiff for TIFF: http://www.libtiff.org/ - . libungif for GIF: + . libungif for GIF: http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml Ensure you get version 4.1.0b1 or higher of libungif -- a bug in 4.1.0 can crash Emacs. @@ -226,7 +226,7 @@ least 2.8 MB and can reach 100 MB or more. If the swapping space is insufficient, you will get an error in the command `temacs -batch -l loadup dump', found in `./src/Makefile.in', or possibly when running the final dumped Emacs. - + Building Emacs requires about 140 MB of disk space (including the Emacs sources) Once installed, Emacs occupies about 77 MB in the file system where it is installed; this includes the executable files, Lisp @@ -582,7 +582,7 @@ Here is a complete list of the variables you may want to set. We create the following subdirectories under `libexecdir': - `emacs/VERSION/CONFIGURATION-NAME', containing executable programs used by Emacs that users are not expected to run - themselves. + themselves. `VERSION' is the number of the Emacs version you are installing, and `CONFIGURATION-NAME' is the argument you gave to the `configure' program to identify the architecture and operating diff --git a/Makefile.in b/Makefile.in index 32168dff55e..4ad187a8487 100644 --- a/Makefile.in +++ b/Makefile.in @@ -34,14 +34,14 @@ # with them. # # Delete `.dvi' files here if they are not part of the distribution. -# +# # make distclean # Delete all files from the current directory that are created by # configuring or building the program. If you have unpacked the # source and built the program without creating any other files, # `make distclean' should leave only the files that were in the # distribution. -# +# # make maintainer-clean # Delete everything from the current directory that can be # reconstructed with this Makefile. This typically includes @@ -171,7 +171,7 @@ lisppath=@lisppath@ # building. This is only used during the process of # compiling Emacs, to help Emacs find its lisp files # before they've been installed in their final location. -# It's usually identical to lisppath, except that +# It's usually identical to lisppath, except that # it does not include locallisppath, and the # entry for the directory containing the installed lisp # files has been replaced with ../lisp. This should be a @@ -236,7 +236,7 @@ COPYDIR = ${srcdir}/etc ${srcdir}/lisp COPYDESTS = ${etcdir} ${lispdir} # Set to FRC to force running autoconf and autoheader -MAINT = +MAINT = all: ${SUBDIR} leim @@ -579,7 +579,7 @@ mostlyclean: FRC ### record the configuration. Also preserve files that could be made ### by building, but normally aren't because the distribution comes ### with them. -### +### ### Delete `.dvi' files here if they are not part of the distribution. clean: FRC (cd src; $(MAKE) $(MFLAGS) clean) @@ -618,7 +618,7 @@ distclean: FRC ### reconstructed with this Makefile. This typically includes ### everything deleted by distclean, plus more: C source files ### produced by Bison, tags tables, info files, and so on. -### +### ### One exception, however: `make maintainer-clean' should not delete ### `configure' even if `configure' can be remade using a rule in the ### Makefile. More generally, `make maintainer-clean' should not delete @@ -53,10 +53,10 @@ this script will help you distribute your version to others. There are several subdirectories: `src' holds the C code for Emacs (the Emacs Lisp interpreter and - its primitives, the redisplay code, and some basic editing + its primitives, the redisplay code, and some basic editing functions). `lisp' holds the Emacs Lisp code for Emacs (most everything else). -`leim' holds the library of Emacs input methods, Lisp code and +`leim' holds the library of Emacs input methods, Lisp code and auxiliary data files required to type international characters which can't be directly produced by your keyboard. `lib-src' holds the source code for some utility programs for use by or diff --git a/admin/alloc-colors.c b/admin/alloc-colors.c index d293007bb7b..4be2038ef1c 100644 --- a/admin/alloc-colors.c +++ b/admin/alloc-colors.c @@ -60,7 +60,7 @@ main (int argc, char **argv) case 'n': ncolors = atoi (optarg); break; - + case '?': usage (argv[0]); } @@ -98,7 +98,7 @@ main (int argc, char **argv) ++nallocated; } } - + ++color.red; ++color.green; ++color.blue; diff --git a/admin/build-configs b/admin/build-configs index 5827276bf5e..06ea9cb2875 100755 --- a/admin/build-configs +++ b/admin/build-configs @@ -80,14 +80,14 @@ foreach $config (@configs) unlink "config.cache"; $rc = system ("$root/configure $configure_options >>$log 2>&1"); - if ($rc != 0) + if ($rc != 0) { print "configure failed\n"; exit 1; } $rc = system ("make-emacs --all $make_options >>$log 2>&1"); - if ($rc != 0) + if ($rc != 0) { print "Make failed\n"; exit 1; diff --git a/admin/emacs-pretesters b/admin/emacs-pretesters index 05ce8f40bde..10ab3fd0da6 100644 --- a/admin/emacs-pretesters +++ b/admin/emacs-pretesters @@ -173,7 +173,7 @@ of function calling. By printing the remaining elements of args, you can see the argument values. Here's how to print the first argument: - + p args[1] pr @@ -194,7 +194,7 @@ First, use these commands: cd src gdb emacs b xmenu.c:1209 - r -q + r -q Then type C-x 5 2 to create a new frame, and it hits the breakpoint: @@ -207,9 +207,9 @@ Then type C-x 5 2 to create a new frame, and it hits the breakpoint: $2 = (struct frame *) 0x3f0800 (gdb) p *$ $3 = { - size = 536871989, - next = 0x366240, - name = 809661752, + size = 536871989, + next = 0x366240, + name = 809661752, [...] } (gdb) p $3->name @@ -258,7 +258,7 @@ this vector. `recent_keys' is updated in keyboard.c by the command XVECTOR (recent_keys)->contents[recent_keys_index] = c; So we define a GDB command `xvector-elts', so the last 10 keystrokes -are printed by +are printed by xvector-elts recent_keys recent_keys_index 10 @@ -270,7 +270,7 @@ where you can define xvector-elts as follows: xvector set $foo = $ while $i < $arg2 - p $foo->contents[$arg1-($i++)] + p $foo->contents[$arg1-($i++)] pr end document xvector-elts @@ -339,7 +339,7 @@ configure makes a mistake. But note that config.cache reads: # Giving --cache-file=/dev/null disables caching, for debugging configure. -or more simply, +or more simply, rm config.cache ./configure diff --git a/admin/make-emacs b/admin/make-emacs index ac9d9d763d2..fa7310ce94d 100755 --- a/admin/make-emacs +++ b/admin/make-emacs @@ -111,7 +111,7 @@ if (@ARGV && $ARGV[0] eq "all") system ("$make clean versionclean") if $all; -if ($wall) +if ($wall) { $warn = "-Wall"; } @@ -125,14 +125,14 @@ $defs = "-DGLYPH_DEBUG=1" unless $optim; $defs = "$defs -DGC_CHECK_MARKED_OBJECTS=1" if $check_marked; $defs = "$defs -DENABLE_CHECKING=1" if $enable_checking; -if ($profile) +if ($profile) { $opts = "-pg"; $defs = "$defs -DPROFILING=1"; } else { - if ($use_stabs) + if ($use_stabs) { $opts = "-gstabs"; } diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server index 29f8e36d340..20b8e9f87cf 100644 --- a/admin/nt/README-ftp-server +++ b/admin/nt/README-ftp-server @@ -4,7 +4,7 @@ Version 20.7 June 13, 2000 - + This directory contains source and precompiled distributions for GNU Emacs on Windows NT and Windows 95/98/2000. This port is a part of the standard GNU Emacs distribution from the Free Software Foundation; @@ -116,7 +116,7 @@ * Unpacking distributions Programs for handling the distribution file formats can be found in - the utilities directory: + the utilities directory: ftp://ftp.gnu.org/gnu/windows/emacs/utilities diff --git a/admin/revdiff b/admin/revdiff index f145da19c4a..416c572d196 100755 --- a/admin/revdiff +++ b/admin/revdiff @@ -21,11 +21,11 @@ use File::Basename; -if (@ARGV < 3) +if (@ARGV < 3) { print <<USAGE; revdiff FILE OLD NEW - + Get a diff of FILE between revisions OLD and NEW. Store the diff in a file named FILE-OLD-NEW.diff. @@ -48,7 +48,7 @@ USAGE $file = shift @ARGV; $old = shift @ARGV; -sub diffit +sub diffit { my ($old, $new) = @_; print "cvs diff -r$old -r$new $file >$file-$old-$new.diff\n"; @@ -64,9 +64,9 @@ sub current_revision ($) die "Can't find $entries" unless -f $entries; open (IN, "<$entries") or die "Cannot open $entries"; my $rev; - while ($line = <IN>) + while ($line = <IN>) { - if ($line =~ m,/$base/([^/]+),) + if ($line =~ m,/$base/([^/]+),) { $rev = $1; break; @@ -81,7 +81,7 @@ if ($old eq "-") { $old = current_revision ($file); } -elsif ($old =~ /^-(\d+)$/) +elsif ($old =~ /^-(\d+)$/) { my $offset = $1; $old = current_revision ($file); @@ -90,15 +90,15 @@ elsif ($old =~ /^-(\d+)$/) $old = sprintf ("%d.%d", $1, $minor); } -while (@ARGV) +while (@ARGV) { my $new = shift @ARGV; if ($new =~ /^[+]\d+$/) { my $n = $new; - for ($i = 0; $i < $n; ++$i) + for ($i = 0; $i < $n; ++$i) { - unless ($old =~ /(.*)\.(\d+)$/) + unless ($old =~ /(.*)\.(\d+)$/) { die "Internal error"; } @@ -107,13 +107,13 @@ while (@ARGV) diffit ($old, $new); $old = $new; } - } - elsif ($new =~ /^[-]\d+$/) + } + elsif ($new =~ /^[-]\d+$/) { my $n = - $new; - for ($i = 0; $i < $n; ++$i) + for ($i = 0; $i < $n; ++$i) { - unless ($old =~ /(.*)\.(\d+)$/) + unless ($old =~ /(.*)\.(\d+)$/) { die "Internal error"; } @@ -123,7 +123,7 @@ while (@ARGV) $old = $new; } } - else + else { diffit ($old, $new); $old = $new; diff --git a/configure.in b/configure.in index ed53769c4d3..9898061d56e 100644 --- a/configure.in +++ b/configure.in @@ -77,7 +77,7 @@ dnl This should be the last --with option, because --with-x is dnl added later on when we find the path of X, and it's best to dnl keep them together visually. AC_ARG_WITH(x-toolkit, -[ --with-x-toolkit=KIT use an X toolkit +[ --with-x-toolkit=KIT use an X toolkit (KIT = yes/lucid/athena/motif/gtk/no)], [ case "${withval}" in y | ye | yes ) val=athena ;; @@ -1068,7 +1068,7 @@ case "${canonical}" in *-xenix* ) opsys=xenix ;; *-linux-gnu* ) opsys=gnu-linux ;; *-sco3.2v4* ) opsys=sco4 ; NON_GNU_CPP=/lib/cpp ;; - *-sco3.2v5* ) opsys=sco5 + *-sco3.2v5* ) opsys=sco5 NON_GNU_CPP=/lib/cpp # Prevent -belf from being passed to $CPP. # /lib/cpp does not accept it. @@ -1112,7 +1112,7 @@ case "${canonical}" in ## AMD x86-64 Linux-based GNU system x86_64-*-linux-gnu* ) - machine=amdx86-64 opsys=gnu-linux + machine=amdx86-64 opsys=gnu-linux ;; * ) @@ -1333,7 +1333,7 @@ configure___ use_mmap_for_buffers=no #ifndef LD_SWITCH_X_SITE_AUX #define LD_SWITCH_X_SITE_AUX -#endif +#endif configure___ ld_switch_system=LD_SWITCH_SYSTEM configure___ ld_switch_machine=LD_SWITCH_MACHINE @@ -1447,7 +1447,7 @@ AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t, [AC_TRY_COMPILE([#include <termios.h>], [speed_t x = 1;], emacs_cv_speed_t=yes, emacs_cv_speed_t=no)]) if test $emacs_cv_speed_t = yes; then - AC_DEFINE(HAVE_SPEED_T, 1, + AC_DEFINE(HAVE_SPEED_T, 1, [Define to 1 if `speed_t' is declared by <termios.h>.]) fi @@ -1469,7 +1469,7 @@ if test $emacs_cv_struct_timeval = yes; then fi AC_CACHE_CHECK(for struct exception, emacs_cv_struct_exception, -AC_TRY_COMPILE([#include <math.h>], +AC_TRY_COMPILE([#include <math.h>], [static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;], emacs_cv_struct_exception=yes, emacs_cv_struct_exception=no)) HAVE_EXCEPTION=$emacs_cv_struct_exception @@ -1498,7 +1498,7 @@ dnl This isn't useful because we can't turn on use of `inline' unless dnl the compiler groks `extern inline'. dnl AC_C_INLINE AC_CACHE_CHECK([for void * support], emacs_cv_void_star, - [AC_TRY_COMPILE(, [void * foo;], + [AC_TRY_COMPILE(, [void * foo;], emacs_cv_void_star=yes, emacs_cv_void_star=no)]) if test $emacs_cv_void_star = yes; then AC_DEFINE(POINTER_TYPE, void) @@ -1599,7 +1599,7 @@ HAVE_MENUS=no case ${HAVE_X11} in yes ) HAVE_MENUS=yes ;; esac - + if test "${opsys}" = "hpux9"; then case "${x_libraries}" in *X11R4* ) @@ -1827,7 +1827,7 @@ AC_DEFUN(PKG_CHECK_MODULES, [ else $1_CFLAGS="" $1_LIBS="" - ## If we have a custom action on failure, don't print errors, but + ## If we have a custom action on failure, don't print errors, but ## do set a variable so people can do so. $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` ifelse([$4], ,echo $$1_PKG_ERRORS,) @@ -1978,7 +1978,7 @@ Motif version prior to 2.1. if test ${HAVE_LIBXP} = yes; then AC_DEFINE(HAVE_LIBXP, 1, [Define to 1 if you have the Xp library (-lXp).]) - fi + fi fi fi @@ -1996,7 +1996,7 @@ if test "${HAVE_X11}" = "yes"; then fi fi fi - + dnl Use toolkit scroll bars if configured for GTK or X toolkit and either dnl using Motif or Xaw3d is available, and unless dnl --with-toolkit-scroll-bars=no was specified. @@ -2055,7 +2055,7 @@ no_return_alloc_pixels AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).]) fi fi - + ### Use -ljpeg if available, unless `--with-jpeg=no'. HAVE_JPEG=no if test "${HAVE_X11}" = "yes"; then @@ -2072,13 +2072,13 @@ if test "${HAVE_X11}" = "yes"; then AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])], [#include <jpeglib.h> version=JPEG_LIB_VERSION -], +], AC_DEFINE(HAVE_JPEG), [AC_MSG_WARN([libjpeg found, but not version 6b or later]) HAVE_JPEG=no]) fi fi - + ### Use -lpng if available, unless `--with-png=no'. HAVE_PNG=no if test "${HAVE_X11}" = "yes"; then @@ -2091,7 +2091,7 @@ if test "${HAVE_X11}" = "yes"; then AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).]) fi fi - + ### Use -ltiff if available, unless `--with-tiff=no'. HAVE_TIFF=no if test "${HAVE_X11}" = "yes"; then @@ -2107,7 +2107,7 @@ if test "${HAVE_X11}" = "yes"; then AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).]) fi fi - + ### Use -lgif if available, unless `--with-gif=no'. HAVE_GIF=no if test "${HAVE_X11}" = "yes"; then @@ -2158,7 +2158,7 @@ if test "${HAVE_X11}" = "yes"; then esac fi fi - + # If netdb.h doesn't declare h_errno, we must declare it by hand. AC_CACHE_CHECK(whether netdb declares h_errno, emacs_cv_netdb_declares_h_errno, @@ -2588,7 +2588,7 @@ Boston, MA 02111-1307, USA. */ /* No code in Emacs #includes config.h twice, but some bits of code - intended to work with other packages as well (like gmalloc.c) + intended to work with other packages as well (like gmalloc.c) think they can include it as many times as they like. */ #ifndef EMACS_CONFIG_H #define EMACS_CONFIG_H @@ -2812,7 +2812,7 @@ typedef unsigned size_t; #ifdef __GNUC__ # ifndef GC_SETJMP_WORKS /* GC_SETJMP_WORKS is nearly always appropriate for GCC -- - see NON_SAVING_SETJMP in the target descriptions. */ + see NON_SAVING_SETJMP in the target descriptions. */ /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k, SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86. Fixme: Deal with ns32k, SVR3. */ @@ -2835,7 +2835,7 @@ typedef unsigned size_t; #endif /* EMACS_CONFIG_H */ -/* +/* Local Variables: mode: c End: diff --git a/etc/COOKIES b/etc/COOKIES index 41f8afee249..fa8894795f0 100644 --- a/etc/COOKIES +++ b/etc/COOKIES @@ -14,8 +14,8 @@ her for her charge card number, and she gave it to them thinking the cost would be $15 to $25. It turned out to be $200! -Therefore, this person is giving the recipe to anyone -and everyone she knows (and doesn't know) so that +Therefore, this person is giving the recipe to anyone +and everyone she knows (and doesn't know) so that someone can get use of her $200. Anyway, just keep passing it on. @@ -27,7 +27,7 @@ Add: 4 eggs 2 tsp. vanilla Mis together in -separate bowl: 4 cups flour +separate bowl: 4 cups flour 5 cups oatmeal (put small amounts of oatmeal in blender until it turns to powder. Measure out 5 cups of oatmeal and only @@ -45,7 +45,7 @@ Add: 24 oz. bag of chocolate chips and Add: 3 cups chopped nuts (any kind) Bake on greased cookie sheet (make golf ball sized balls) and -bake about two inches apart. Bake at 350 degrees for 8 - 10 +bake about two inches apart. Bake at 350 degrees for 8 - 10 minutes. DO NOT OVERBAKE. Makes 112. From: ucdavis!lll-lcc!hplabs!parcvax!bane@ucbvax.berkeley.edu (John R. Bane) @@ -56,14 +56,14 @@ want to send me your SnailMail address, I'll be glad to send you a dollar (I would like to suggest this to the net, but I think there is some netiquette rule against asking for money - or is that only money for oneself?) to help defray the cost (it's not much, but if EVERYone -who took the recipe sent you a dollar, it would help). +who took the recipe sent you a dollar, it would help). -Here also is another cookie recipe which I'm very fond of. +Here also is another cookie recipe which I'm very fond of. Makes 6-8 dozen Bake at 375 degrees for ~10 min. -Cream together: +Cream together: 1 cup shortening (I use Weight Watcher's Reduced Calorie Margarine!) 1/4 cup peanut butter (I recommend the non-sugared kind) @@ -104,7 +104,7 @@ I make them. Chocolate Chip Cookies - Glamorous, crunchy, rich with chocolate bits & nuts. -Also known as "Toll House" Cookies ... from Kenneth and Ruth Wakefield's +Also known as "Toll House" Cookies ... from Kenneth and Ruth Wakefield's charming New England Toll House on the outskirts of Whitman, Massachusetts. These cookies were first introduced to American homemakers in 1939 through our series of radio talks on "Famous Foods From Famous Eating Places." diff --git a/etc/ChangeLog b/etc/ChangeLog index cfe4b05b9aa..ebfe99e6f3a 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -386,7 +386,7 @@ * ps-prin0.ps: Changed comment version (6.0). -2000-08-24 Wlodzimierz Bzyl <matwb@univ.gda.pl> +2000-08-24 Wlodzimierz Bzyl <matwb@univ.gda.pl> * survival.tex: New file. diff --git a/etc/DEBUG b/etc/DEBUG index a0ac04d4ab0..eb2a3364446 100644 --- a/etc/DEBUG +++ b/etc/DEBUG @@ -115,7 +115,7 @@ First, use these commands: cd src gdb emacs b xmenu.c:1296 - r -q + r -q Then type C-x 5 2 to create a new frame, and it hits the breakpoint: @@ -128,9 +128,9 @@ Then type C-x 5 2 to create a new frame, and it hits the breakpoint: $2 = (struct frame *) 0x3f0800 (gdb) p *$ $3 = { - size = 536871989, - next = 0x366240, - name = 809661752, + size = 536871989, + next = 0x366240, + name = 809661752, [...] } (gdb) p $3->name @@ -177,7 +177,7 @@ this vector. `recent_keys' is updated in keyboard.c by the command XVECTOR (recent_keys)->contents[recent_keys_index] = c; So we define a GDB command `xvector-elts', so the last 10 keystrokes -are printed by +are printed by xvector-elts recent_keys recent_keys_index 10 @@ -189,7 +189,7 @@ where you can define xvector-elts as follows: xvector set $foo = $ while $i < $arg2 - p $foo->contents[$arg1-($i++)] + p $foo->contents[$arg1-($i++)] pr end document xvector-elts @@ -217,7 +217,7 @@ of function calling. By printing the remaining elements of args, you can see the argument values. Here's how to print the first argument: - + p args[1] pr @@ -230,7 +230,7 @@ conveniently. For example: and, assuming that "xtype" says that args[0] is a symbol: - xsymbol + xsymbol ** Debugging what happens while preloading and dumping Emacs @@ -450,7 +450,7 @@ and keyboard events, or LessTif menus behave weirdly, it might be helpful to set the `DEBUGSOURCES' and `DEBUG_FILE' environment variables, so that one can see what LessTif was doing at this point. For instance - + export DEBUGSOURCES="RowColumn.c:MenuShell.c:MenuUtil.c" export DEBUG_FILE=/usr/tmp/LESSTIF_TRACE emacs & diff --git a/etc/JOKES b/etc/JOKES index 78c808bb53e..ec0afca0168 100644 --- a/etc/JOKES +++ b/etc/JOKES @@ -20,7 +20,7 @@ A: Gnugat. (Though it contains little gnutrition.) Q: What do you call a computer filled with air? A: Gnumatic. -Q: What do you call a novice hacker who keeps pestering you +Q: What do you call a novice hacker who keeps pestering you with foolish questions? A: A gnuisance. @@ -100,7 +100,7 @@ exit ? bye ? -hello? +hello? ? eat flaming death ? @@ -173,12 +173,12 @@ Swapping Even a Master of Arts -Comes +Comes Simpler Emacs Manuals -Are +Are Cryptic and Surreal @@ -206,13 +206,13 @@ All Computer Storage -Even -My +Even +My Aunt Crashes the System -Eradication of +Eradication of Memory Accomplished with Complete @@ -312,7 +312,7 @@ Accused of Communist Subversion -Extensibility and +Extensibility and Modifiability Aggravate Confirmed @@ -384,9 +384,9 @@ Architecture Comes Simpler -Erasing +Erasing Minds -Allows +Allows Complete Submission @@ -402,7 +402,7 @@ Absolutely Considered Sine que non -Emacs +Emacs Makers Are Crazy @@ -463,14 +463,14 @@ Someone at a luncheon suggested it meant: Evenings, Mornings, -And a +And a Couple of Saturdays (In reference to the odd hours that went into the creation of my implementation). --- +-- Warren Montgomery ihnss!warren @@ -493,10 +493,10 @@ Home: 36 Porter Street, Somerville, MA 02143, USA +1 (617) 623-7739 Pleeeeeeeze!!! Nice try on the meaning of EMACS. I believe the correct acronym is: -Emacs +Emacs Makes -All -Computing +All +Computing Simple Thank you, and Good Night @@ -514,7 +514,7 @@ Apparently-To: emacs-netnews-distribution@mit-prep > More recursive acronyms, anyone? Many people have also seen FINE Is Not Emacs, but the one that has character is THief Isn't Even Fine. --- +-- ## Bill Stewart, AT&T Bell Labs, Holmdel NJ 1-201-949-0705 ihnp4!ho95c!wcs Path: mit-eddie!think!harvard!bbnccv!bbncca!linus!decvax!mcnc!ncsu!uvacs!edison!ta2 @@ -526,13 +526,13 @@ Organization: General Electric's Mountain Resort Apparently-To: emacs-netnews-distribution@mit-prep > GNU = Gnu's Not UNIX. There is also MINCE, for Mince Is Not a Complete Emacs. -> +> > More recursive acronyms, anyone? -> +> For the DEC-system-10/20: FINE - Fine Is Not Emacs..... --- +-- ............... tom allebrandi 2, general electric aco, charlottesville, va {decvax,duke}!mcnc!ncsu!uvacs!edison!ta2 @@ -613,10 +613,10 @@ Ever Made A Control-key Setup? Emacs: My Alternative Computer Story Emacs Made Almost Completely Screwed (by extensive use of M-x global-unset-key) -Emacs Macht Alle Computer Schoen +Emacs Macht Alle Computer Schoen (deutsch) (=Emacs makes all computers beautiful) Each Mail A Continued Surprise -Every Mode Acknowledges Customized Strokes +Every Mode Acknowledges Customized Strokes (keystrokes, of course :-) Eating Memory And Cycle-Sucking Everyday Material Almost Compiled Successfully diff --git a/etc/LEDIT b/etc/LEDIT index ff274ce46bf..009243f5ec0 100644 --- a/etc/LEDIT +++ b/etc/LEDIT @@ -17,7 +17,7 @@ To get it to work, one must: cc leditcfns.c - - Edit ledit.l, changing the line beginning "(cfasl" to + - Edit ledit.l, changing the line beginning "(cfasl" to have the right pathname for the cfns file you compiled in the last step. @@ -69,7 +69,7 @@ doesn't run under Unix, this is probably the next best thing. I have tried the 2 window method (shell in lower window, lisp code in upper), and have found it a little awkward. It does have certain advantages, but most of the time, I get be fine using M-C-D to save a -defun for lisp, and C-X Z to jump back to LISP. C-E RETURN from lisp +defun for lisp, and C-X Z to jump back to LISP. C-E RETURN from lisp is also mnemonic for getting back to gnumacs. I hope this helps somewhat. diff --git a/etc/LINUX-GNU b/etc/LINUX-GNU index f3c5eeadaa0..8d55f1a5c2d 100644 --- a/etc/LINUX-GNU +++ b/etc/LINUX-GNU @@ -124,7 +124,7 @@ others to write free software, instead of proprietary software. However, it is not enough just to talk about freedom; we must also make sure people know the reasons it is worth listening to what we -say. +say. Long explanations such as our philosophical articles are one way of informing the public, but you may not want to spend so much time on @@ -62,7 +62,7 @@ Chris Hofstader can be reached at (617) 492-0023; FAX (617) 497-1632. P.O.Box 9171 Cambridge, Massachusetts 02139 -(Outside the US, please send a check in US dollars on a bank +(Outside the US, please send a check in US dollars on a bank having a US correspondent bank, to save us check cashing fees.) Your name: diff --git a/etc/MAILINGLISTS b/etc/MAILINGLISTS index 09f4c8ac0c2..c9fe8e06708 100644 --- a/etc/MAILINGLISTS +++ b/etc/MAILINGLISTS @@ -331,7 +331,7 @@ See section '* General Information about bug-* lists and reporting program bugs'. * help-gnustep-request@gnu.org to subscribe to help-gnustep -** gnUSENET newsgroup: gnu.gnustep.help +** gnUSENET newsgroup: gnu.gnustep.help ** Send contributions to: help-gnustep@gnu.org ** FAQ-URL: none known ** FAQ-Archive-name: none known @@ -344,7 +344,7 @@ instead of posting them here. See section '* General Information about help-* lists'. * discuss-gnustep-request@gnu.org to subscribe to discuss-gnustep -** gnUSENET newsgroup: gnu.gnustep.discuss +** gnUSENET newsgroup: gnu.gnustep.discuss ** Send contributions to: discuss-gnustep@gnu.org ** FAQ-URL: none known ** FAQ-Archive-name: none known @@ -411,7 +411,7 @@ list info-gnu@gnu.org (see above). ** gnUSENET newsgroup: NONE ** Send contributions to: discuss-gnu-electric@gnu.org -This list is the place for user discussion of Gnu Electric, a +This list is the place for user discussion of Gnu Electric, a sophisticated electrical CAD system that can handle many forms of circuit design. Please send bug reports to bug-gnu-electric@gnu.org (see next entry). @@ -583,7 +583,7 @@ program bugs'. ** NCURSES bug reports to: bug-ncurses@gnu.org This list distributes, to the active maintainers of ncurses -(a free implementation of the Unix curses API) bug reports and fixes +(a free implementation of the Unix curses API) bug reports and fixes for, and suggestions for improvements in ncurses. Users can also subscribe to this list. @@ -977,7 +977,7 @@ program bugs'. This list distributes, to the active maintainers of zebra (a GPLed program to manage TCP/IP based routing protocols), bug reports, bug fixes, -and suggestions for improvements to zebra. User discussion of zebra +and suggestions for improvements to zebra. User discussion of zebra also occurs here. There are no other GNU mailing lists or gnUSENET newsgroups for zebra. @@ -1337,7 +1337,7 @@ discussion of bug fixes and patches. This list is unmoderated. -* gpc-request@gnu.de to subscribe to gpc +* gpc-request@gnu.de to subscribe to gpc ** gnUSENET newsgroup: None at present. ** Send contributions to: gpc@gnu.de diff --git a/etc/MH-E-NEWS b/etc/MH-E-NEWS index 8a8ea8c66cf..4e0cf683ab5 100644 --- a/etc/MH-E-NEWS +++ b/etc/MH-E-NEWS @@ -372,7 +372,7 @@ writing. *** Speedbar There is now support for the speedbar. Try "M-x speedbar" (closes SF -#503727). +#503727). Press the middle mouse button on the `+' icons to open a folder, middle mouse button on a folder name to open the folder. Folders with @@ -453,7 +453,7 @@ http://freshmeat.net/redir/compface/1439/url_tgz/compface-1.4.tar.gz. It has also been observed that if you don't see the faces, you might have to do this (for unknown reasons): - + mv /usr/local/include/compface.h /usr/include/ *** Graphical Smileys @@ -639,7 +639,7 @@ gave supercite fits (closes SF #629153). "M-q (fill-paragraph)" now fills quoted paragraphs (for example, starting with "> ") correctly (closes SF #489927). -*** mh-next-undeleted-msg, mh-previous-undeleted-msg +*** mh-next-undeleted-msg, mh-previous-undeleted-msg If there are no more undeleted messages the point remains at its original position and a message is produced (closes SF #494304). @@ -853,7 +853,7 @@ visible. If the bottom of a message is showing, SPC (mh-page-msg) moves to the next message (respecting the direction you are moving through the folder). -The threading commands "T u (mh-next-unseen-subject-thread)", +The threading commands "T u (mh-next-unseen-subject-thread)", "T t (mh-toggle-subject-thread)", "T s (mh-narrow-to-subject-thread)", and "T k (mh-delete-subject-thread)" have been added. These functions do not offer threading in the true sense of the word, but do allow diff --git a/etc/ONEWS b/etc/ONEWS index 3d40baa5858..283e7b9cbad 100644 --- a/etc/ONEWS +++ b/etc/ONEWS @@ -908,7 +908,7 @@ that buffer. highlighting based not only on what's visible in the buffer, but on other data structures. -**** Old packages like `expire-kill' will no longer work. +**** Old packages like `expire-kill' will no longer work. **** `C-c C-l' in the group buffer no longer switches to a different buffer, but instead lists killed groups in the group buffer. @@ -917,7 +917,7 @@ buffer, but instead lists killed groups in the group buffer. **** The look of all buffers can be changed by setting format-like variables. - + **** Local spool and several NNTP servers can be used at once. **** Groups can be combined into virtual groups. @@ -1006,7 +1006,7 @@ and execute the next logical version control command on them (C-x v v). *** Starting a new branch. -If you try to lock a version that is not the latest on its branch, +If you try to lock a version that is not the latest on its branch, VC asks for confirmation in the minibuffer. If you say no, it offers to lock the latest version instead. @@ -1029,7 +1029,7 @@ your working file with the latest version from the master. *** RCS customization. There is a new variable vc-consult-headers. If it is t (the default), -VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.6 2002/01/12 15:36:53 pj Exp $') and +VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.7 2002/08/21 00:18:46 rms Exp $') and determines the state of the file from them, not from the master file. This is fast and more reliable when you use branches. (The variable was already present in Emacs 19.29, but didn't get mentioned in the @@ -1058,7 +1058,7 @@ of them. *** New sexp diary entry type -Reminders that apply in the days leading up to an event. +Reminders that apply in the days leading up to an event. ** The CC-mode package now provides the default C and C++ modes. See the manual for documentation of its features. @@ -1225,16 +1225,16 @@ Loading tpu-edt no longer turns on tpu-edt mode. In fact, it is no longer necessary to explicitly load tpu-edt. All you need to do to turn on tpu-edt is run the tpu-edt function. Here's how to run tpu-edt instead of loading the file: - + Running Emacs: Type emacs -f tpu-edt not emacs -l tpu-edt Within Emacs: Type M-x tpu-edt <ret> not M-x load-library <ret> tpu-edt <ret> - + In .emacs: Use (tpu-edt) not (load "tpu-edt") - + The default name of the tpu-edt X key definition file has changed from ~/.tpu-gnu-keys to ~/.tpu-keys. If you don't rename the file yourself, tpu-edt will offer to rename it the first time you invoke it under @@ -1250,20 +1250,20 @@ your ~/_emacs, then the screen briefly flickers with the default colors before changing to the colors you have specified. To avoid this, the EMACSCOLORS environment variable exists. It shall be defined as a string with the following elements: - + set EMACSCOLORS=fb;fb - + The first set of "fb" defines the initial foreground and background colors using standard dos color numbers (0=black,.., 7=white). If specified, the second set of "fb" defines the colors which are restored when you leave emacs. - + *** The new SUSPEND environment variable can now be set as the shell to use when suspending emacs. This can be used to override the stupid limitation on the environment of sub-shells in MS-DOS (they are just large enough to hold the currently defined variables, not leaving room for more); to overcome this limitation, add this to autoexec.bat: - + set SUSPEND=%COMSPEC% /E:2000 ** The escape character can now be displayed on X frames. Try @@ -1616,7 +1616,7 @@ mode. *** You can use this menu to change the face of the region. You can also set the face of the region with the new M-g command. -*** The menu also includes commands for indenting the region, +*** The menu also includes commands for indenting the region, which locally changes the values of left-margin and fill-column that are used. @@ -1770,7 +1770,7 @@ another way. *** It now works to set bookmarks in Info nodes. -*** Bookmarks can have annotations; type "C-h m" after doing +*** Bookmarks can have annotations; type "C-h m" after doing "M-x list-bookmarks", for more information on annotations. *** The bookmark-jump popup menu function is now `bookmark-menu-jump', for @@ -1816,7 +1816,7 @@ containing an open brace just after a case/default label. message displays during long re-indention. This is a new feature which prints percentage complete messages at specified intervals. -** Makefile mode changes. +** Makefile mode changes. *** The electric keys are not enabled by default. @@ -2382,7 +2382,7 @@ expression which is used to recognize files in that format, a decoding function, an encoding function, a flag that indicates whether the encoding function modifies the buffer, and a mode function. -FROM-FN is called to decode files in that format; it gets two args, BEGIN +FROM-FN is called to decode files in that format; it gets two args, BEGIN and END, and can make any modifications it likes, returning the new end position. It must make sure that the beginning of the file no longer matches REGEXP, or else it will get called again. @@ -2763,7 +2763,7 @@ Most lisp programs should use the new functions (current-fill-column) and (current-left-margin), which return the proper values to use for the current line. -**** There are new functions for dealing with margins: +**** There are new functions for dealing with margins: ***** Set-left-margin and set-right-margin (set the value for a region and re-fill). These functions take three arguments: two to specify @@ -2803,7 +2803,7 @@ the text of the region according to the new value. **** Filling and auto-fill are disabled if justification is `none'. -**** The auto-fill-function is now called regardless of whether +**** The auto-fill-function is now called regardless of whether the fill-column has been exceeded; the function can determine on its own whether filling (or justification) is necessary. @@ -3291,7 +3291,7 @@ default value is nil. comint-completion-fignore. The default value is nil, but some people prefer ("~" "#" "%"). -*** The function `comint-watch-for-password-prompt' can be used to +*** The function `comint-watch-for-password-prompt' can be used to suppress echoing when a subprocess asks for a password. To use it, do this: @@ -3429,7 +3429,7 @@ the basic offset given to a level of indentation. If, for example, you wanted to change this style: -int foo (int i) +int foo (int i) { switch (i) { case 1: @@ -3443,7 +3443,7 @@ int foo (int i) into this: -int foo (int i) +int foo (int i) { switch (i) { case 1: @@ -3694,7 +3694,7 @@ The undo and yank commands do this. ** If you specify an explicit title for a new frame when you create it, the title is used as the resource name when looking up X resources to -control the shape of that frame. If you don't specify the frame title, +control the shape of that frame. If you don't specify the frame title, the value of x-resource-name is used, as before. ** The frame parameter user-position, if non-nil, says that the user @@ -3801,7 +3801,7 @@ active on that window are considered. ** Overlays can have the `invisible' property. -** The function insert-file-contents now takes an optional fifth +** The function insert-file-contents now takes an optional fifth argument called REPLACE. If this is t, it means to replace the contents of the buffer (actually, just the accessible portion) with the contents of the file. @@ -3912,7 +3912,7 @@ as well by removing them from command-line-args-left. and inhibit handling of the file name. Here is how to do it: (let ((inhibit-file-name-handlers - (cons 'ange-ftp-file-handler + (cons 'ange-ftp-file-handler (and (eq inhibit-file-name-operation operation) inhibit-file-name-handlers))) (inhibit-file-name-operation operation)) @@ -4114,7 +4114,7 @@ load the library iso-syntax. (This is not new.) ** M-TAB in Text mode now runs the command ispell-complete-word which performs completion using the spelling dictionary. -The spelling correction submenu now includes this command +The spelling correction submenu now includes this command and another command which completes a word fragment (that is, it doesn't assume that the text to be completed starts at the beginning of a word. @@ -4617,11 +4617,11 @@ minibuffer window, and returns t if the window is currently active. * Changes in version 19.17. -** When Emacs displays a list of completions in a buffer, +** When Emacs displays a list of completions in a buffer, you can select a completion by clicking mouse button 2 on that completion. -** Use the command `list-faces-display' to display a list of +** Use the command `list-faces-display' to display a list of all the currently defined faces, showing what they look like. ** Menu bar items from local maps now come after the usual items. @@ -4636,8 +4636,8 @@ constants, names of functions being defined, and so on. ** Dunnet, an adventure game, is now available. -** Several major modes now have their own menu bar items, -including Dired, Rmail, and Sendmail. We would like to add +** Several major modes now have their own menu bar items, +including Dired, Rmail, and Sendmail. We would like to add suitable menu bar items to other major modes. ** The key binding C-x a C-h has been eliminated. @@ -4821,7 +4821,7 @@ and c-backward-conditional). ** The Edit entry in the menu bar has a new alternative: "Choose Next Paste". It gives you a menu showing the various -strings in the kill ring; click on one to select it as the text +strings in the kill ring; click on one to select it as the text to be yanked ("pasted") the next time you yank. ** If you enable Transient Mark mode and set `mark-even-if-inactive' to @@ -5151,7 +5151,7 @@ buffer is very large. ** You can quit while Emacs is waiting to read or write files. ** The arrow keys now have default bindings to move in the appropriate -directions. +directions. ** You can suppress next-line's habit of inserting a newline when called at the end of a buffer by setting next-line-add-newlines to nil @@ -5378,7 +5378,7 @@ M-, to resume a suspended `tags-search' or `tags-query-replace'. whether to save a particular buffer. In addition to `y' or `n', you can answer `!' to save all the remaining buffers, `.' to save this buffer but not save any others, ESC to stop saving and exit the -command, and C-h to get help. These options are analogous to those +command, and C-h to get help. These options are analogous to those of `query-replace'. ** M-x make-symbolic-link does not expand its first argument. @@ -5594,7 +5594,7 @@ The C-x C-a bindings are also active in source files. *** The old TeX mode bindings of M-{ and M-} have been moved to C-c { and C-c }. (These commands are `up-list' and `tex-insert-braces'; -they are the TeX equivalents of M-( and M-).) This is because M-{ +they are the TeX equivalents of M-( and M-).) This is because M-{ and M-} are now globally defined commands. *** Changes in Mail mode. @@ -5872,11 +5872,11 @@ the UNIX `calendar' utility. *** There is a new major mode for editing binary files: Hexl mode. To use it, use M-x hexl-find-file instead of C-x C-f to visit the file. This command converts the file's contents to hexadecimal and lets you -edit the translation. When you save the file, it is converted +edit the translation. When you save the file, it is converted automatically back to binary. You can also use M-x hexl-mode to translate an existing buffer into hex. -Do this if you have already visited a binary file. +Do this if you have already visited a binary file. Hexl mode has a few other commands: @@ -6070,7 +6070,7 @@ etc subdirectory. *** Shell mode has been completely replaced. The basic idea is the same, but there are new commands available in this mode. - + TAB now completes the file name before point in the shell buffer. To get a list of all possible completions, type M-?. @@ -6082,8 +6082,8 @@ M-n is similar but goes in the opposite direction towards the present. When you find the command you wanted, you can edit it, or just resubmit it by typing RET. -You can also use M-r and M-s to search for (respectively) earlier or -later inputs starting with a given string. First type the string, +You can also use M-r and M-s to search for (respectively) earlier or +later inputs starting with a given string. First type the string, then type M-r to yank a previous input from the history which starts with that string. You can repeat M-r to find successively earlier inputs starting with the same string. You can start moving in the @@ -6110,9 +6110,9 @@ current directory, type M-x dirs to re-synchronize. M-x send-invisible reads a line of text without echoing it, and sends it to the shell. -If you accidentally suspend your process, use M-x comint-continue-subjob +If you accidentally suspend your process, use M-x comint-continue-subjob to continue it. - + *** There is now a convenient way to enable flow control on terminals where you can't win without it. Suppose you want to do this on VT-100 and H19 terminals; put the following in your `.emacs' file: diff --git a/etc/ONEWS.1 b/etc/ONEWS.1 index 06b5405be1e..3e16b02e7b0 100644 --- a/etc/ONEWS.1 +++ b/etc/ONEWS.1 @@ -330,7 +330,7 @@ Changes in Emacs 1.12 the string, it is used unchanged. One way this feature can be used is to fix bad keyboard - designes. For example, on some terminals, Delete is + designes. For example, on some terminals, Delete is Shift-Underscore. Since Delete is a more useful character than Underscore, it is an improvement to make the unshifted character Delete and the shifted one Underscore. This can @@ -553,7 +553,7 @@ This release mostly fixes bugs. There are a few new features: C-h a now runs the new function command-apropos rather than apropos, and shows only symbols with definitions as commands. -* M-x shell sends the command +* M-x shell sends the command if (-f ~/.emacs_NAME)source ~/.emacs_NAME invisibly to the shell when it starts. Here NAME is replaced by the name of shell used, @@ -955,7 +955,7 @@ Changes in Emacs 1.2 To exit the debugger and return to top level, type `q'. - In the debugger, you can evaluate Lisp expressions by + In the debugger, you can evaluate Lisp expressions by typing `e'. This is equivalent to `M-ESC'. When the debugger is entered due to an error, that is @@ -1053,7 +1053,7 @@ Changes in Emacs 1.1 or more asterisks) and text lines (all other lines). The number of asterisks in a heading line are its level; the subheadings of a heading line are all following heading - lines at higher levels, until but not including the next + lines at higher levels, until but not including the next heading line at the same or a lower level, regardless of intervening text lines. @@ -1066,7 +1066,7 @@ Changes in Emacs 1.1 All editing commands treat hidden outline-mode lines as part of the preceding visible line. - + * C-x C-z runs save-buffers-kill-emacs offers to save each file buffer, then exits. diff --git a/etc/ONEWS.2 b/etc/ONEWS.2 index f0b5dad0b01..a4500eeb319 100644 --- a/etc/ONEWS.2 +++ b/etc/ONEWS.2 @@ -482,7 +482,7 @@ be evaluated directly to repeat a command. The functions `forward-to-word', `backward-to-word', `upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer' -have been removed. Their definitions can be found in file +have been removed. Their definitions can be found in file lisp/unused.el if you need them. Upward Compatible Lisp Programming Changes in Emacs 17 @@ -882,7 +882,7 @@ When you insert a close-paren, the matching open-paren is checked for validity. The close paren must be the kind of close-paren that the open-paren says it should match. Otherwise, a warning message is printed. close-paren immediately -preceded by quoting backslash syntax character is not matched. +preceded by quoting backslash syntax character is not matched. This feature was originally written by shane@mit-ajax. @@ -1286,7 +1286,7 @@ whether the result should be interpreted as a string or a lisp object. Old functions `read-minibuffer', `eval-minibuffer', `read-string' all take second optional string argument which is initial contents of -minibuffer. +minibuffer. * minibuffer variable names changed (names of keymaps) diff --git a/etc/ONEWS.4 b/etc/ONEWS.4 index 115e07ccd6c..1fcb3d1859a 100644 --- a/etc/ONEWS.4 +++ b/etc/ONEWS.4 @@ -50,7 +50,7 @@ uses Lisp data structures. It can record much more information. You can use the variables undo-threshold and undo-high-threshold to control how much. -* There is no longer a maximum screen height or width. +* There is no longer a maximum screen height or width. Changes in version 18.52. diff --git a/etc/ORDERS.EUROPE b/etc/ORDERS.EUROPE index c1455dd7cd1..eefc64b1858 100644 --- a/etc/ORDERS.EUROPE +++ b/etc/ORDERS.EUROPE @@ -111,7 +111,7 @@ ____ @ 800 BEF = ______ BEF Size _____ Tax and Shipping Costs + ______ BEF For addresses in Belgium: add 21% sales tax - or give tax exempt number. + or give tax exempt number. + ______ BEF Shipping fee for other E.U. countries: 150 BEF extra for addresses outside Belgium. For shipments to Italy, please add an @@ -120,8 +120,8 @@ Tax and Shipping Costs 500 BEF. + ______ BEF Donation to Free Software Foundation - ====== - TOTAL ______ BEF + ====== + TOTAL ______ BEF Note: The shipping fee for foreign destinations covers registered @@ -197,7 +197,7 @@ contact the FSF. For orders from outside Belgium: -You are responsible for paying all taxes. If you refuse to pay the -applicable taxes of your country, the shipper will return the order. +You are responsible for paying all taxes. If you refuse to pay the +applicable taxes of your country, the shipper will return the order. Bank P.C. : 000-1699992-67 V.A.T. : B.E-586.981.246 HRG : 181.641 diff --git a/etc/ORDERS.JAPAN b/etc/ORDERS.JAPAN index 8dfb5a28466..1bd06614c6b 100644 --- a/etc/ORDERS.JAPAN +++ b/etc/ORDERS.JAPAN @@ -27,17 +27,17 @@ Prices and contents may change without notice after July 31, 1998. organization is ultimately paying (while supplies last). Source Code CD-ROM November '93 Edition, Y3,000 ________ __________ - Version 3 (last with X11R5), if an individual + Version 3 (last with X11R5), if an individual is ultimately paying (while supplies last). Subscription to next four editions of the Y125,000 ________ __________ Compiler Tools Binaries CD-ROMs. Subscription to next four editions of the Y125,000 ________ __________ - Source Code CD-ROMs. + Source Code CD-ROMs. * GNU Software for MS-DOS and MS-Windows Y20,000 ________ __________ - (CD-ROM and book) if a corporation or other + (CD-ROM and book) if a corporation or other organization is ultimately paying. * GNU Software for MS-DOS and MS-Windows Y5,000 ________ __________ @@ -197,7 +197,7 @@ If you need more information about the FSF and it offerings, please consult the Japanese edition of the March 1998 GNU's Bulletin. If you do not have a copy of the Japanese edition of the GNU's Bulletin, please contact the FSF. -Richard Stallman regrets that he cannot autograph items ordered by mail. +Richard Stallman regrets that he cannot autograph items ordered by mail. If time permits, he will autograph items at speaking engagements. All sales are final. diff --git a/etc/OTHER.EMACSES b/etc/OTHER.EMACSES index 13b27bf2793..a00b1190b1d 100644 --- a/etc/OTHER.EMACSES +++ b/etc/OTHER.EMACSES @@ -496,7 +496,7 @@ Other rectangle commands include extract-rectangle and delete-extract-rectangle these functions return the text of a rectangle as a list of strings. They are for use in writing - other functions that operate on rectangles. + other functions that operate on rectangles. *** Keyboard Macros @@ -903,7 +903,7 @@ GNU Emacs Lisp does not have a distinction between Lisp functions and Emacs functions, or between Lisp variables and Emacs variables. The Lisp and the editor are integrated. A Lisp function defined with defun is callable as an editor command if you put an -interactive calling spec in it; for example, +interactive calling spec in it; for example, (defun forward-character (n) (interactive "p") (goto-char (+ (point) n))) diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 3025e55a72d..c174904a183 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -57,7 +57,7 @@ distributions, such as Debian, may already have applied such a patch.) --- lisp/un-define.el 6 Mar 2001 22:41:38 -0000 1.30 +++ lisp/un-define.el 19 Apr 2002 18:34:26 -0000 @@ -610,13 +624,21 @@ by calling post-read-conversion and pre- - + (mapcar (lambda (x) - (mapcar @@ -221,17 +221,17 @@ patch to assert.h should solve this: * If not debugging, assert does nothing. */ ! #define assert(x) ((void)0); - + #else /* debugging enabled */ - + --- 41,47 ---- /* * If not debugging, assert does nothing. */ ! #define assert(x) ((void)0) - + #else /* debugging enabled */ - + * Improving performance with slow X connections @@ -882,7 +882,7 @@ load-path. An example of such an error is: - x-complement-fontset-spec: "Wrong type argument: stringp, nil" + x-complement-fontset-spec: "Wrong type argument: stringp, nil" This can be another symptom of stale *.elc files in your classpath. The following command will print any duplicate Lisp files that are @@ -975,7 +975,7 @@ keyboard(5). Changing Alt_L to Meta_L fixes it: % xmodmap -e 'keysym Alt_L = Meta_L Alt_L' -% xmodmap -e 'keysym Alt_R = Meta_R Alt_R' +% xmodmap -e 'keysym Alt_R = Meta_R Alt_R' * Error "conflicting types for `initstate'" compiling with GCC on Irix 6. @@ -1050,7 +1050,7 @@ Reportedly this patch in X fixes the problem. * Emacs crashes on Irix 6.5 on the SGI R10K, when compiled with GCC. - + This seems to be fixed in GCC 2.95. * Emacs crashes in utmpname on Irix 5.3. @@ -1075,7 +1075,7 @@ the fr.ISO-8859-15 locale (and maybe other related locales). You can fix this by editing the file: /usr/openwin/lib/locale/iso8859-15/Compose - + Near the bottom there is a line that reads: Ctrl<t> <quotedbl> <Y> : "\276" threequarters @@ -1111,8 +1111,8 @@ change this. When the display is set to an Exceed X-server and fonts are specified (either explicitly with the -fn option or implicitly with X resources) then the fonts may appear "too tall". The actual character sizes are -correct but there is too much vertical spacing between rows, which -gives the appearance of "double spacing". +correct but there is too much vertical spacing between rows, which +gives the appearance of "double spacing". To prevent this, turn off the Exceed's "automatic font substitution" feature (in the font part of the configuration window). @@ -1230,7 +1230,7 @@ This is not an Emacs bug; it is caused by something in SGI patch The VM mail package, which is not part of Emacs, sometimes does (standard-display-european t) -That should be changed to +That should be changed to (standard-display-european 1 t) * Installing Emacs gets an error running `install-info'. @@ -1808,8 +1808,8 @@ you install all the latest patches (as of June 1996), the bug is fixed. We suspect the crucial patch is one of these, but we don't know for certain. - 103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes) - 102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes) + 103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes) + 102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes) 103242-04: [README] SunOS 5.5: linker patch (595363 bytes) (One user reports that the bug was fixed by those patches together @@ -1901,7 +1901,7 @@ On AIX, many terminal type definitions are not installed by default. Definitions" to make them defined. * On SunOS, you get linker errors - ld: Undefined symbol + ld: Undefined symbol _get_wmShellWidgetClass _get_applicationShellWidgetClass @@ -2061,7 +2061,7 @@ exist. The first line in the `/etc/hosts' file should look like this Also make sure that the `/etc/host.conf' files contains the following lines: - order hosts, bind + order hosts, bind multi on Any changes, permanent and temporary, to the host name should be @@ -2290,12 +2290,12 @@ releasing Ctrl/Act while not pressing or holding any other keys. * display-time causes kernel problems on ISC systems. Under Interactive Unix versions 3.0.1 and 4.0 (and probably other -versions), display-time causes the loss of large numbers of STREVENT +versions), display-time causes the loss of large numbers of STREVENT cells. Eventually the kernel's supply of these cells is exhausted. -This makes emacs and the whole system run slow, and can make other +This makes emacs and the whole system run slow, and can make other processes die, in particular pcnfsd. - -Other emacs functions that communicate with remote processes may have + +Other emacs functions that communicate with remote processes may have the same problem. Display-time seems to be far the worst. The only known fix: Don't run display-time. @@ -2367,7 +2367,7 @@ problem by adding this to your .cshrc file: if ($?EMACS) then if ($EMACS == "t") then - unset edit + unset edit stty -icrnl -onlcr -echo susp ^Z endif endif @@ -2658,7 +2658,7 @@ again to say this: * On a Sun running SunOS 4.1.1, you get this error message from GNU ld: - /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment + /lib/libc.a(_Q_sub.o): Undefined symbol __Q_get_rp_rd referenced from text segment The problem is in the Sun shared C library, not in GNU ld. @@ -2680,18 +2680,18 @@ Use `smit pty' to reinstall them properly. christos@theory.tn.cornell.edu says: The problem is that in your .cshrc you have something that tries to -execute `tty`. If you are not running the shell on a real tty then -tty will print "not a tty". Csh expects one word in some places, +execute `tty`. If you are not running the shell on a real tty then +tty will print "not a tty". Csh expects one word in some places, but tty is giving it back 3. The solution is to add a pair of quotes around `tty` to make it a single -word: +word: -if (`tty` == "/dev/console") +if (`tty` == "/dev/console") should be changed to: -if ("`tty`" == "/dev/console") +if ("`tty`" == "/dev/console") Even better, move things that set up terminal sections out of .cshrc and into .login. @@ -2711,7 +2711,7 @@ the environment. If the error message says that a symbol such as `f68881_used' or `ffpa_used' or `start_float' is undefined, this probably indicates -that you have compiled some libraries, such as the X libraries, +that you have compiled some libraries, such as the X libraries, with a floating point option other than the default. It's not terribly hard to make this work with small changes in @@ -2737,7 +2737,7 @@ This problem seems to be a matter of configuring the DECserver to use * M-x shell persistently reports "Process shell exited abnormally with code 1". This happened on Suns as a result of what is said to be a bug in Sunos -version 4.0.x. The only fix was to reboot the machine. +version 4.0.x. The only fix was to reboot the machine. * Programs running under terminal emulator do not recognize `emacs' terminal type. @@ -2767,7 +2767,7 @@ You may be able to compensate for the bug by doing (set-input-mode nil nil). However, that has the disadvantage of turning off interrupts, so that you are unable to quit out of a Lisp program by typing C-g. -The easy way to do this is to put +The easy way to do this is to put (setq x-sigio-bug t) diff --git a/etc/SERVICE b/etc/SERVICE index 162afdc2ae1..38628433426 100644 --- a/etc/SERVICE +++ b/etc/SERVICE @@ -195,7 +195,7 @@ Services: Updated: 2001-05-11 ^_ Don Barry, Ph.D. <don@astro.cornell.edu> -Ithaca, NY +Ithaca, NY Astrophysicist with extensive and varied hacker background. Substantial expertise in mathematical modeling, instrument interface, low-level and @@ -845,16 +845,16 @@ Updated: 2000-12-19 +46 31 50 79 00 voice +46 31 50 79 39 fax http://www.netg.se - + NetGuide Scandinavia AB is a company that does consultant jobs and holds courses in the fields of Unix software, TCP/IP networking and Internet applications. The people behind NetGuide Scandinavia AB have many years of general Unix experience, both as system administrators and as programmers, and also extensive experience in maintaining the GNU programs; in administration as well as finding and fixing bugs. - + Services offered: - + - Installation and customizing GNU and other free software. We will make free software as easy to install and use as shrink wrapped programs. @@ -869,7 +869,7 @@ Services offered: - Support on Internet service software, especially the free - Support on GNU/Linux. - Freeware based courses in Unix usage, C, C++, or any GNU tools - + Rates: For courses, contact us for a quote, For consulting, $60-120/hour, depending on contract length. @@ -918,26 +918,26 @@ Sweden Sweden) Phone: +46-21-144831 E-mail: <jonas@gnu.org> - + I offer support for most GNU software including the GNU Hurd and also do system administration on GNU systems. I can do free software development and have a good understanding of automake, autoconf, flex, bison, guile, texinfo and much more. Rates around USD$100. - + Updated: 2001-05-09 ^_ Peter Olsen P.O. Box 410 Simpsonville, MD 21150 - + <p@sigmaxi.org> - + What I do: Mathematical modeling and model building using Gnu and other Free Software. Scientific and engineering analysis, modeling, and programming in FORTRAN, C, LISP, and Java. Statistical analysis. Emacs customization. - + Examples of my previous work: 1. I built the model used predict the amount of work required to clean up the Exxon Valdez oil @@ -947,24 +947,24 @@ Updated: 2001-05-09 2. I built a model applying commercial capital investment standards to a Federal Agency budget, helped support $250 Million budget increase. - + Credo: Engineering is the art of applying a professional knowledge of mathematics and the physical sciences to improve the quality of life. - + Rates: $135/hour (+ travel and expenses) on site, $95/hour remote access. - + Notes: 1. Visiting Lecturer for Society for Industrial and Applied Mathematics: Will speak without fee about Valdez model (or other work) to Educational and not-for-profit organizations (plus most-economical travel and living expenses or travel or living arrangements in kind). - + 2. I do not accept offers which pose the danger of conflict of interest with any present or former client or employer. - + Updated: 2000-12-13 ^_ @@ -1012,33 +1012,33 @@ Qualifications: Electronic Engineering degree, Pisa. Full time Updated: 2001-05-09 ^_ -Quoll Systems Pty Ltd, see http://quoll.com.au +Quoll Systems Pty Ltd, see http://quoll.com.au 8 Brown St, Fannie Bay, Darwin, NT, Australia. -Phone: +61 8 8941 7150 Fax: +61 8 8941 7151 Mobile: 0409 691 399 +Phone: +61 8 8941 7150 Fax: +61 8 8941 7151 Mobile: 0409 691 399 e-mail: <pjm@gnu.org> or <info@quoll.com.au> - + QS is a small (4 full-time staff + 15 part-timers) which does a variety of things in the *IX, technical computing area including: - + o Systems development/maintainence (in most programming languages) o Training (GNU/Linux, FreeBSD, OpenBSD, Apache, Perl, ...) o Consulting in areas such as security, reliability, - + Recent projects have included wind turbine generator control, water quality databases, remote area satelliate communications, Apache Web serving, ISP configurations, *nix training. Staff have provided some small contributions to the GNU and BSD projects over the years. We -also have a bit of expertise in the embedded(inside people) systems -area in addition to the standard building work. +also have a bit of expertise in the embedded(inside people) systems +area in addition to the standard building work. -We can provide local (i.e. southern hemisphere/south east asia) support +We can provide local (i.e. southern hemisphere/south east asia) support for most of the vast range of free software systems including: GNU/Linux, FreeBSD, OpenBSD , OpenSSH, Sendmail, various compilers and networking tools. Remote support can also be arranged. -Rates: vary depending on the work, period and staff provided but let +Rates: vary depending on the work, period and staff provided but let us pick 100$US/hr as a starting point for senior staff. - + Updated: 2000-12-13 ^_ Red Hat, Inc. @@ -1049,7 +1049,7 @@ Toll free: 866-2REDHAT ext. 3005 +1 408 542 9600 voice +1 408 542 9699 fax -GNUPro Tools +GNUPro Tools Red Hat provides supported and maintained versions of gcc, g++, gdb with GUI, GNU linker and GNU macro assembler. In addition, Red Hat provides these GNU software development tools for well over many @@ -1130,9 +1130,9 @@ http://www.sra.co.jp/wingnut/chirashi-e.html http://www.sra.co.jp/wingnut/service.html http://osb.sra.co.jp/WingnutSupport/ -We provide GNU software support at a reasonable charge, -aiming to promote the sound growth of free software and to -create a new culture in the software world. +We provide GNU software support at a reasonable charge, +aiming to promote the sound growth of free software and to +create a new culture in the software world. News: @@ -1142,21 +1142,21 @@ News: What we provide is: - 1. Research and development of GNU software. - 2. Development, porting, and customization of GNU software itself. - 3. Helping people who are willing to port and provide GNU software - to their customers, but are unable to do so due to a lack of resources. - 4. Providing a variety of educational and training services including - how to port or to customize. - 5. The result of the work will become free software covered under the + 1. Research and development of GNU software. + 2. Development, porting, and customization of GNU software itself. + 3. Helping people who are willing to port and provide GNU software + to their customers, but are unable to do so due to a lack of resources. + 4. Providing a variety of educational and training services including + how to port or to customize. + 5. The result of the work will become free software covered under the GNU licenses (GPL or LGPL), so it will be possible not only to share - the results with others but to eliminate unnecessary investment also. - 6. Passing the result to the program package maintainers (if needed). - 7. Also, making contributions to FSF (Free Software Foundation, Inc.) + the results with others but to eliminate unnecessary investment also. + 6. Passing the result to the program package maintainers (if needed). + 7. Also, making contributions to FSF (Free Software Foundation, Inc.) which is the organization that develops and distributes GNU software - worldwide. + worldwide. - Furthermore, we provide services *native to Japan*, that is, + Furthermore, we provide services *native to Japan*, that is, services for Japanese-speaking people --- receiving inquiries and answering in Japanese. @@ -1255,13 +1255,13 @@ Tel +44 (0) 1273 20 11 66 Fax +44 (0) 1273 20 11 68 http://www.swingdigital.com -Swing Digital actively supports the development of the GNU.FREE -Internet Voting system. Through this support we have gained the -unique expertise to support, install and run GUN.FREE-based Internet -votes. We are also available in a consultancy basis to offer advice +Swing Digital actively supports the development of the GNU.FREE +Internet Voting system. Through this support we have gained the +unique expertise to support, install and run GUN.FREE-based Internet +votes. We are also available in a consultancy basis to offer advice for organisations wishing to run GNU.FREE themselves. -Our consultancy fees start at 900 Euro (550 UK pounds) per day. We +Our consultancy fees start at 900 Euro (550 UK pounds) per day. We are also able to securely host Internet Votes, prices on application. Updated: 2001-07-23 diff --git a/etc/TERMS b/etc/TERMS index 0245fe2c2db..dd447259710 100644 --- a/etc/TERMS +++ b/etc/TERMS @@ -54,7 +54,7 @@ is `cS', which I invented. to use this even though the Unix termcap does not accept it because programs other than Emacs probably won't look for `rp' anyway. - + `cs' set scroll region. Takes two parameters, the vertical positions of the first line to include in the scroll region and the last line to include in the scroll region. @@ -196,12 +196,12 @@ AT386-M|at386-m|386AT-M|386at-m|at/386 console, sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m, # -# AT&T 386 color console +# AT&T 386 color console # AT386|at386|386AT|386at|at/386 console, colors#8, ncv#3, pairs#64, is2=\E[0;10;39m, - op=\E[0m, + op=\E[0m, setb=\E[%?%p1%{0}%=%t40m %e%p1%{1}%=%t44m %e%p1%{2}%=%t42m @@ -172,7 +172,7 @@ Other features we would like: * Add a feature to Info similar to "info --apropos SUBJECT". -* Add support for SVG (Scalable Vector Graphics) rendering to +* Add support for SVG (Scalable Vector Graphics) rendering to Emacs. * Allow unknown image types to be rendered via an external program diff --git a/etc/TUTORIAL b/etc/TUTORIAL index 2c112b08930..d2aaf79e9ce 100644 --- a/etc/TUTORIAL +++ b/etc/TUTORIAL @@ -65,7 +65,7 @@ There are several ways you can do this. You can use the arrow keys, but it's more efficient to keep your hands in the standard position and use the commands C-p, C-b, C-f, and C-n. These characters are equivalent to the four arrow keys, like this: - + Previous line, C-p : : @@ -198,7 +198,7 @@ any terminal. The numeric argument is also called a "prefix argument", because you type the argument before the command it applies to. For instance, C-u 8 C-f moves forward eight characters. - + >> Try using C-n or C-p with a numeric argument, to move the cursor to a line near this one with just one command. @@ -749,7 +749,7 @@ no stars, just dashes. The part of the mode line inside the parentheses is to tell you what editing modes you are in. The default mode is Fundamental which is -what you are using now. It is an example of a "major mode". +what you are using now. It is an example of a "major mode". Emacs has many different major modes. Some of them are meant for editing different languages and/or kinds of text, such as Lisp mode, diff --git a/etc/TUTORIAL.cs b/etc/TUTORIAL.cs index 3c82a3940d3..316098c0e77 100644 --- a/etc/TUTORIAL.cs +++ b/etc/TUTORIAL.cs @@ -64,7 +64,7 @@ pou¾ití pøíkazù C-p, C-b, C-f a C-n. Ka¾dý z tìchto pøíkazù pøesune kurzor na obrazovce o jeden øádek nebo sloupec v daném smìru. Zde je tabulka znázoròující smìr posuvu kurzoru vyvolaný tìmito ètyømi pøíkazy: - + Pøedchozí øádek, C-p : : @@ -769,7 +769,7 @@ numerický argument. C-x f. Jestli¾e provedete zmìny uprostøed odstavce, Auto Fill mód jej -nepøeformátuje. +nepøeformátuje. Pro pøeformátování odstavce stisknìte M-q (META-q) s kurzorem uvnitø odstavce. @@ -795,7 +795,7 @@ Kdy¾ stisknete C-s, uvidíte v echo oblasti prompt "I-search". To vám a èeká, a¾ mu zadáte, co chcete hledat. <RET> hledání ukonèí. >> Nyní zahajte hledání stiskem C-s. POMALU, písmeno po písmenu, pi¹te - slovo 'kurzor'. Po ka¾dém písmenu si v¹imnìte, co se dìje s kurzorem. + slovo 'kurzor'. Po ka¾dém písmenu si v¹imnìte, co se dìje s kurzorem. Teï jste vyhledali "kurzor" poprvé. >> Stisknìte C-s znovu, abyste nalezli dal¹í výskyt "kurzor". >> Nyní ètyøikrát stisknìte <Delete> a pozorujte, jak se kurzor diff --git a/etc/TUTORIAL.de b/etc/TUTORIAL.de index 4c6c0666708..81f01b60add 100644 --- a/etc/TUTORIAL.de +++ b/etc/TUTORIAL.de @@ -266,7 +266,7 @@ Beispiel: C-u 8 C-f bewegt den Cursor acht Zeichen vorwärts. >> Versuchen Sie, C-n oder C-p mit einem numerischen Argument zu verwenden und bewegen Sie den Cursor mit nur einem Befehl ungefähr hierher. - + Wie gesagt, die meisten Befehle verwenden das numerische Argument als Wiederholungszähler, jedoch nicht alle. Einige davon, die allerdings noch nicht besprochen wurden, benützen es als Flag (`Flagge'), d.h., diff --git a/etc/TUTORIAL.fr b/etc/TUTORIAL.fr index 9c2c5e5dcff..3733054ca6f 100644 --- a/etc/TUTORIAL.fr +++ b/etc/TUTORIAL.fr @@ -47,9 +47,9 @@ Les commandes suivantes servent à manipuler des écrans : C-v Avance d'un écran M-v Recule d'un écran C-l Efface l'écran et réaffiche tout le texte autour du - curseur, qui est placé au milieu de l'écran + curseur, qui est placé au milieu de l'écran (il s'agit de CTRL-L, pas de CTRL-1). - + >> Notez le texte situé à côté du curseur, puis faites C-l. Recherchez l'emplacement du curseur et vous remarquerez que @@ -66,7 +66,7 @@ Il existe plusieurs façons de faire. Vous pouvez utiliser les touches du curseur, mais il est plus efficace de garder vos mains dans la même position et d'utiliser les commandes C-p, C-b, C-f, et C-n. Ces combinaisons sont équivalentes aux quatre touches du curseur : - + Ligne précédente, C-p : : @@ -76,20 +76,20 @@ combinaisons sont équivalentes aux quatre touches du curseur : Ligne suivante, C-n >> Déplacez le curseur sur la ligne située au milieu de ce schéma en - utilisant C-n ou C-p. Puis, faites C-l pour placer le schéma au + utilisant C-n ou C-p. Puis, faites C-l pour placer le schéma au centre de l'écran. Si vous connaissez un peu l'anglais, vous aurez sûrement constaté qu'il était facile de se rappeler que P signifiait Previous (précédent), N Next (suivant), B Backward (en arrière) et F Forward -(vers l'avant). +(vers l'avant). >> Faites quelques C-n pour amener le curseur sur cette ligne. >> Déplacez-vous le long de la ligne avec des C-f, puis au-dessus avec des C-p. Notez ce que fait C-p lorsque le curseur est au milieu de la ligne. - + Chaque ligne de texte se termine par un caractère Newline, qui sert à la séparer de la ligne suivante. La dernière ligne de votre fichier @@ -102,7 +102,7 @@ ait un). C-f peut passer au-dessus d'un Newline, tout comme C-b. ->> Faites encore quelques C-b afin de bien sentir où est le curseur. +>> Faites encore quelques C-b afin de bien sentir où est le curseur. Puis, faites des C-f pour revenir à la fin de la ligne. Enfin, faites quelques C-f supplémentaires pour passer à la ligne suivante. @@ -153,7 +153,7 @@ L'emplacement du curseur dans le texte est également appelé « point ». Pour paraphraser, le curseur apparaît à l'écran à l'endroit où le point est situé dans le texte. -Voici un résumé des opérations de déplacements simples du curseur, +Voici un résumé des opérations de déplacements simples du curseur, ainsi que les commandes de déplacement par mots et par phrases. C-f Avance d'un caractère @@ -171,7 +171,7 @@ ainsi que les commandes de déplacement par mots et par phrases. M-a Va au début de la phrase M-e Va à la fin de la phrase ->> Essayez toutes ces commandes plusieurs fois afin de vous entraîner. +>> Essayez toutes ces commandes plusieurs fois afin de vous entraîner. Ce sont celles qui sont utilisées le plus souvent. M-< (Meta inférieur à) et M-> (Meta supérieur à) sont deux autres @@ -188,7 +188,7 @@ vous taperiez M-virgule. >> Faites M-> afin de vous déplacer à la fin du didacticiel. Puis, faites plusieurs fois M-v pour revenir ici. - + Vous pouvez également déplacer le curseur à l'aide des touches de curseur, si votre terminal en dispose. Nous vous conseillons d'apprendre à utiliser C-b, C-f, C-n et C-p pour trois raisons. Tout @@ -213,7 +213,7 @@ numérique est également appelé « paramètre préfixe » car on le précise avant la commande sur laquelle il s'applique. C-u 8 C-f, par exemple, avance le curseur de huit caractères. - + >> Utilisez C-n ou C-p avec un paramètre numérique afin de déplacer, en une seule commande, le curseur sur une ligne proche de celle-ci. @@ -244,7 +244,7 @@ défilement. >> Cliquez avec le bouton du milieu en haut de la zone mise en évidence dans la barre de défilement. Cela devrait déplacer le texte jusqu'à une position dépendant de la hauteur où vous avez - cliqué. + cliqué. >> Déplacez la souris de bas en haut tout en maintenant son bouton du milieu pressé. Vous constaterez que le texte défile vers le haut et @@ -262,7 +262,7 @@ C-g peut également servir à annuler un paramètre numérique, ou le début d'une commande que vous ne souhaitez pas terminer. >> Faites C-u 100 pour former un paramètre numérique de 100, puis - tapez C-g. + tapez C-g. Faites maintenant C-f. Le déplacement ne sera que d'un caractère car vous avez annulé le paramètre avec C-g. @@ -284,16 +284,16 @@ Si vous souhaitez vraiment essayer la commande, tapez <Espace> en réponse à la question. Si vous ne voulez pas exécuter la commande désactivée, il suffit normalement de répondre « n ». ->> Faites C-x C-l (qui est une commande désactivée), +>> Faites C-x C-l (qui est une commande désactivée), puis répondez n à la question. * FENÊTRES ---------- Emacs peut avoir plusieurs fenêtres, chacune affichant son propre -texte. Nous expliquerons plus tard comment utiliser plusieurs fenêtres ; +texte. Nous expliquerons plus tard comment utiliser plusieurs fenêtres ; pour l'instant, nous expliquerons comment se débarrasser des -fenêtres supplémentaires pour revenir à une édition mono-fenêtre. +fenêtres supplémentaires pour revenir à une édition mono-fenêtre. C'est très simple : C-x 1 Une seule fenêtre (i.e., supprime toutes les autres) @@ -339,7 +339,7 @@ touche, nommée « Delete », « Del » ou « Suppr », mais ce n'est pas Plus généralement, <Delback> efface le caractère situé immédiatement avant la position courante du curseur. ->> Tapez quelques caractères puis effacez-les en faisant plusieurs +>> Tapez quelques caractères puis effacez-les en faisant plusieurs fois <Delback>. Ne vous inquiétez pas de modifier ce fichier ; vous ne modifierez pas le didacticiel principal mais uniquement votre copie personnelle de celui-ci. @@ -363,7 +363,7 @@ en une seule ligne. Si la ligne résultante est trop longue pour tenir dans la largeur de l'écran, elle s'affichera avec une ligne de continuation. ->> Placez le curseur au début d'une ligne et faites <Delback>. +>> Placez le curseur au début d'une ligne et faites <Delback>. Cela fusionne cette ligne avec la ligne précédente. >> Faites <Entrée> pour remettre le Newline que vous avez supprimé. @@ -429,7 +429,7 @@ alors que taper deux fois C-k n'aurait pas le même effet. Vous pouvez ramener le texte supprimé à la place qu'il occupait ou à n'importe quel autre emplacement du texte. Vous pouvez récupérer -plusieurs fois ce texte afin d'en créer plusieurs copies. +plusieurs fois ce texte afin d'en créer plusieurs copies. La commande de récupération est C-y. Elle réinsère le dernier texte supprimé à la position courante du curseur. @@ -464,10 +464,10 @@ de départ (la suppression la plus récente). >> Supprimez une ligne, déplacez vous et supprimez une autre ligne. Puis, faites C-y pour récupérer cette dernière. - Faites alors M-y et elle sera remplacée par la première ligne détruite. + Faites alors M-y et elle sera remplacée par la première ligne détruite. Faites d'autres M-y et notez ce que vous obtenez, continuez jusqu'à ce que la seconde ligne supprimée réapparaisse, et faites-en encore - quelques-uns de plus. + quelques-uns de plus. Si vous le souhaitez, vous pouvez essayer de passer des paramètres positifs et négatifs à M-y. @@ -533,7 +533,7 @@ Emacs, son nom apparaît à cet endroit précis. Une particularité de la commande permettant de trouver un fichier est que vous devez donner le nom du fichier voulu. On dit que la commande « lit un paramètre à partir du terminal » (ici, le paramètre est le -nom du fichier). Après avoir fait la commande +nom du fichier). Après avoir fait la commande C-x C-f Trouve un fichier @@ -572,7 +572,7 @@ possible de travail au cas où votre système se planterait. Cela devrait écrire "Wrote ...TUTORIAL.fr" en bas de l'écran. REMARQUE : Sur certains systèmes, C-x C-s gèlera l'écran et vous ne -verrez plus rien se produire dans Emacs. Cela indique qu'une +verrez plus rien se produire dans Emacs. Cela indique qu'une « fonctionnalité » du système d'exploitation, appelée « contrôle de flux », a intercepté le C-s et ne lui permet pas de parvenir à Emacs. Pour décoincer l'écran, faites C-q puis consultez la section « Spontaneous @@ -603,7 +603,7 @@ Emacs. Emacs stocke le texte de chaque fichier dans un objet appelé « tampon ». Trouver un fichier crée un nouveau tampon dans Emacs. Pour voir la -liste des tampons existants dans votre session Emacs, faites +liste des tampons existants dans votre session Emacs, faites C-x C-b Liste des tampons @@ -623,7 +623,7 @@ pouvez le recharger avec C-x C-f mais il y a plus simple : utilisez la commande C-x b en lui passant le nom du tampon. >> Faites C-x b truc <Entrée> pour revenir au tampon "truc", qui - contient le texte du fichier "truc". + contient le texte du fichier "truc". Puis, faites C-x b TUTORIAL <Entrée> pour revenir à ce didacticiel. La plupart du temps, le nom d'un tampon est le même que celui du @@ -639,7 +639,7 @@ correspond pas non plus à un fichier ; il contient la liste des messages apparus dans la ligne d'état pendant votre session Emacs. >> Faites C-x C-b *Messages* <Entrée> pour visualiser le tampon des - messages. + messages. Puis, faites C-x b TUTORIAL <Entrée> pour revenir à ce didacticiel. Si vous modifiez le texte d'un fichier, puis que vous chargez un autre @@ -656,11 +656,11 @@ pour le sauvegarder avec C-x C-s. On a donc : C-x s vous demande confirmation pour savoir s'il doit sauvegarder chaque tampon contenant des modifications non encore sauvegardées. Il vous demande, pour chacun de ces tampons, s'il doit le sauvegarder ou -non. +non. >> Insérez une ligne de texte et faites C-x s. Cela devrait vous demander si vous souhaitez sauvegarder le tampon - nommé TUTORIAL.fr. Répondez par l'affirmative en tapant « y ». + nommé TUTORIAL.fr. Répondez par l'affirmative en tapant « y ». * EXTENSION DU JEU DE COMMANDES @@ -852,7 +852,7 @@ désactivé, cette commande l'active et, s'il est activé, elle le désactive : on dit que la commande « fait basculer le mode ». >> Faites M-x auto fill mode<Entrée> puis insérez une ligne de - plusieurs « azer » jusqu'à ce qu'elle se divise en deux lignes. + plusieurs « azer » jusqu'à ce qu'elle se divise en deux lignes. Vous devez mettre des espaces entre eux car le mode Auto Fill ne coupe les lignes que sur les espaces. @@ -865,9 +865,9 @@ nouvelle valeur de la marge sous la forme d'un paramètre numérique. caractères. Remettez la marge à 70 en refaisant C-x f. Si vous faites des modifications au milieu d'un paragraphe, le mode -Auto Fill ne reformatera pas ce paragraphe. +Auto Fill ne reformatera pas ce paragraphe. Pour cela, faites M-q (META-q) lorsque le curseur est placé dans ce -paragraphe. +paragraphe. >> Placez le curseur dans le paragraphe précédent et faites M-q. @@ -948,7 +948,7 @@ pouvez afficher plusieurs fenêtres en même temps à l'écran. >> Placez le curseur sur cette ligne et faites C-u 0 C-l (CTRL-L, pas CTRL-1). - + >> Faites maintenant C-x 2 pour diviser l'écran en deux fenêtres. Toutes les deux affichent ce didacticiel et le curseur reste dans celle du haut. @@ -1115,11 +1115,11 @@ leur correspondent, comme find-file. lire les manuels en ligne des paquetages installés sur votre système. Faites m emacs <Entrée> pour lire le manuel d'Emacs. Si vous n'avez jamais utilisé Info - auparavant, tapez ? et Emacs vous fera faire une visite + auparavant, tapez ? et Emacs vous fera faire une visite guidée des fonctionnalités du mode Info. Lorsque vous en aurez fini avec ce didacticiel, le manuel Info d'Emacs devrait être votre source de documentation - essentielle. + essentielle. * FONCTIONNALITÉS SUPPLÉMENTAIRES @@ -1170,7 +1170,7 @@ Emacs. Cette version du didacticiel, comme GNU Emacs, est placée sous copyright, et vous pouvez en distribuer des copies sous certaines conditions : - + Copyright (c) 1985, 1996, 2001, 2002 Free Software Foundation Chacun peut créer ou distribuer des copies de ce document tel qu'il diff --git a/etc/TUTORIAL.ja b/etc/TUTORIAL.ja index 417c2332f68..06a76a5908b 100644 --- a/etc/TUTORIAL.ja +++ b/etc/TUTORIAL.ja @@ -1,9 +1,9 @@ $B$"$J$?$,8=:_8+$F$$$k$N$O(B Emacs $BF~Lg%,%$%I$G$9!#%U%!%$%k:G8e$r;2>H$N$3$H!#(B Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation. -Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B -CONTROL $B$H$+(B CTRL $B$H$+(B CTL $B$H=q$$$F$"$k!K$d%a%?%-!<!J%-!<%H%C%W$K(B META -$B$H$+(B ALT $B$H$+(B EDIT $B$H=q$$$F$"$k!K$r;H$$$^$9!#$=$3$G!"(BCONTROL $B$H$+(B META +Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B +CONTROL $B$H$+(B CTRL $B$H$+(B CTL $B$H=q$$$F$"$k!K$d%a%?%-!<!J%-!<%H%C%W$K(B META +$B$H$+(B ALT $B$H$+(B EDIT $B$H=q$$$F$"$k!K$r;H$$$^$9!#$=$3$G!"(BCONTROL $B$H$+(B META $B$H$+$r=q$/Be$o$j$K!"<!$N$h$&$J5-K!$r;H$&$3$H$K$7$^$9!#(B C-<$BJ8;z(B> $B%3%s%H%m!<%k%-!<$r2!$7$?$^$^!"(B<$BJ8;z(B>$B%-!<$r2!$7$^$9!#Nc$($P!"(B @@ -68,7 +68,7 @@ CONTROL $B$H$+(B CTRL $B$H$+(B CTL $B$H=q$$$F$"$k!K$d%a%?%-!<!J%-!<%H%C%W$K : $B<!$N9T!$(BC-n ->> C-n $B$H(B C-p $B$G%+!<%=%k$r>e?^$N??Cf$N9T$KF0$+$7$F2<$5$$!#$=$l$+$i(B C-l +>> C-n $B$H(B C-p $B$G%+!<%=%k$r>e?^$N??Cf$N9T$KF0$+$7$F2<$5$$!#$=$l$+$i(B C-l $B$r%?%$%W$7$F?^$NA4BN$,2hLLCf1{$K$/$k$h$&$K$7$F$_$^$7$g$&!#(B @@ -218,7 +218,7 @@ M-v $B$K0z?t$rM?$($l$P$h$$$N$G$9!#(B $B!v(B Emacs $B$,%O%s%0$7$?;~!JF0$+$J$/$J$C$?;~!K(B ========================================== -$B$b$7(B Emacs $B$,%3%^%s%I$KH?1~$7$J$/$J$C$?$i!"(BC-g $B$r%?%$%W$9$k$3$H$G(BEmacs +$B$b$7(B Emacs $B$,%3%^%s%I$KH?1~$7$J$/$J$C$?$i!"(BC-g $B$r%?%$%W$9$k$3$H$G(BEmacs $B$r0BA4$K;_$a$k$3$H$,$G$-$^$9!#(BC-g $B$G$H$F$b;~4V$N$+$+$k%3%^%s%I$r;_$a$k(B $B$3$H$,$G$-$^$9!#(B @@ -281,9 +281,9 @@ Emacs $B$O4v$D$b$N%&%#%s%I%&$K!"$=$l$>$l8DJL$NJ8>O$rI=<($9$k$3$H$,$G$-$^(B $BJ8;z!J(BA, 7, * $BEy!K$rJ8>O$G$"$k$H$_$J$9$N$G!"$=$l$i$O$=$N$^$^A^F~$5$l$^(B $B$9!#(B<Return>$B!J2~9T%-!<!K$r%?%$%W$9$l$P2~9TJ8;z$,A^F~$5$l$^$9!#(B -$BD>A0$KF~NO$7$?J8;z$r:o=|$9$k$K$O!"(B<Delback> $B$r%?%$%W$7$^$9!#(B<Delback> +$BD>A0$KF~NO$7$?J8;z$r:o=|$9$k$K$O!"(B<Delback> $B$r%?%$%W$7$^$9!#(B<Delback> $B$O!"(BEmacs $B0J30$G!":G8e$K%?%$%W$7$?J8;z$r:o=|$9$k$?$a$K;H$&%-!<%\!<%I>e(B -$B$N%-!<$G$9!#DL>o$O!"(B <Return> $B%-!<$N>eJ}$K$"$kBg$-$a$N%-!<$G!"(B +$B$N%-!<$G$9!#DL>o$O!"(B <Return> $B%-!<$N>eJ}$K$"$kBg$-$a$N%-!<$G!"(B "Delete" $B$H$+(B "Del" $B$H$+(B "Backspace" $B$H=q$$$"$j$^$9!#(B $B$b$7!"$=$N$=$l$,(B "Backspace" $B$H=q$$$F$"$k$J$i!"$=$l$,(B <Delback> $B%-!<$G$9!#(B @@ -391,7 +391,7 @@ C-k $B$rB3$1$F<B9T$9$k$H!">C5n$7$?3F9T$OA4It$^$H$a$FJ]B8$5$l$k$N$G!"0l2s(B $B2a5n$K>C5n$7$?J8>O$r:FF~$7$?$$$N$K!"JL$NJ8>O$r$=$N8e>C5n$7$?;~$O$I$&$9(B $B$l$P$h$$$G$7$g$&!)(B C-y $B$O:G8e$K>C5n$7$?$b$N$r:FF~$7$^$9!#$G$b$=$l$G$h(B -$B$j0JA0$K>C5n$7$?J8>O$,$J$/$J$k$o$1$G$O$"$j$^$;$s!#$=$&$$$&J8>O$O(B M-y +$B$j0JA0$K>C5n$7$?J8>O$,$J$/$J$k$o$1$G$O$"$j$^$;$s!#$=$&$$$&J8>O$O(B M-y $B$G:FF~$G$-$^$9!#(BC-y $B$G:G8e$K>C5n$7$?J8>O$r:FF~$7$?D>8e$K(BM-y $B$r%?%$%W$9(B $B$k$H!"$=$N:FF~$5$l$?J8>O$O$=$l0JA0$K>C5n$7$?$b$N$KJQ99$5$l$^$9!#2?EY$b(B $BB3$1$F(B M-y $B$r%?%$%W$9$k$H!"$5$i$KA0$K>C5n$7$?J8>O$r8F$SLa$;$^$9!#K>$_(B @@ -427,7 +427,7 @@ u $B$r9T$($P$=$N$?$S$K0l$DA0$N%3%^%s%I$,<h$j>C$7$K$J$j$^$9!#(B C-_ $B$b<h$j>C$7!J(Bundo$B!K$r9T$J$&%3%^%s%I$G$9!#5!G=$O!"(BC-x u $B$HF1$8$G$9$,!"(B $BB3$1$F2?EY$b%?%$%W$9$k>l9g$O$h$jJXMx$G$9!#(BC-_ $B$NLdBj$O!"%-!<%\!<%I$K$h$C(B $B$F$O$I$&$d$C$F%?%$%W$9$k$N$+J,$j$E$i$$;v$G$9!#$@$+$i(B C-x u $B$,$"$k$N$G(B -$B$9!#C<Kv$K$h$C$F$O!"%3%s%H%m!<%k%-!<$r2!$7$?$^$^(B / $B$r%?%$%W$9$k$H(B C-_ +$B$9!#C<Kv$K$h$C$F$O!"%3%s%H%m!<%k%-!<$r2!$7$?$^$^(B / $B$r%?%$%W$9$k$H(B C-_ $B$r%?%$%W$7$?$3$H$K$J$j$^$9!#(B C-_ $B$d(B C-x u $B$O?tCM0z?t$r7+$jJV$72s?t$H2r<a$7$^$9!#(B @@ -496,10 +496,10 @@ C-_ $B$d(B C-x u $B$O?tCM0z?t$r7+$jJV$72s?t$H2r<a$7$^$9!#(B >> C-x C-s $B$H%?%$%W$7$F$3$NF~Lg%,%$%I$N%3%T!<$r%;!<%V$7$F2<$5$$!#(B $B2hLL:G2<CJ$K(B "Wrote ...TUTORIAL.ja" $B$HI=<($5$l$^$9!#(B -$BCm0U!'%7%9%F%`$K$h$C$F$O(B C-x C-s $B$H%?%$%W$9$k$H2hLL$,F0$+$J$/$J$j(B +$BCm0U!'%7%9%F%`$K$h$C$F$O(B C-x C-s $B$H%?%$%W$9$k$H2hLL$,F0$+$J$/$J$j(B Emacs $B$,I=<($7$h$&$H$9$k$b$N$,2?$b2hLL$K=P$J$/$J$j$^$9!#$3$l$O!"%U%m!<(B $B%3%s%H%m!<%k$H8F$P$l$k#O#S$N5!G=$,(B C-s $B$rB*$(!"(BEmacs $B$KEO$5$J$$$h$&$K(B -$B$7$F$$$k$N$G$9!#$3$l$r2r=|$9$k$K$O(B C-q $B$r%?%$%W$7$^$9!#$=$l$+$i(B Emacs +$B$7$F$$$k$N$G$9!#$3$l$r2r=|$9$k$K$O(B C-q $B$r%?%$%W$7$^$9!#$=$l$+$i(B Emacs $B%^%K%e%"%k$N(B "Spontaneous Entry to Incremental Search ($BCN$i$L4V$K%$%s(B $B%/%j%a%s%?%k%5!<%A$K$J$k(B)" $B$N@a$rFI$s$G$/$@$5$$!#$3$N$d$C$+$$$J#O#S$N(B $B5!G=$K$I$&BP=h$9$l$PNI$$$+$,:\$C$F$$$^$9!#(B @@ -524,7 +524,7 @@ Emacs $B$,I=<($7$h$&$H$9$k$b$N$,2?$b2hLL$K=P$J$/$J$j$^$9!#$3$l$O!"%U%m!<(B $B2?$+J8>O$rF~$l!"JT=8$7!"(BC-x C-s $B$G(B "foo" $B$r%;!<%V$7$F2<$5$$!#(B $B:G8e$K(B C-x C-f TUTORIAL.ja <Retrun> $B$H%?%$%W$7(B $BF~Lg%,%$%I$KLa$j$^$7$g$&!#(B - + Emacs $B$O%U%!%$%k$NFbMF$r%P%C%U%!!J(Bbuffer$B!K$H8F$P$l$k$b$N$NCf$K3JG<$7$F(B $B$$$^$9!#%U%!%$%k$r3+$/$H?7$7$$%P%C%U%!$,$G$-$^$9!#(BEmacs $B$,8=:_;}$C$F$$(B $B$k%P%C%U%!$N%j%9%H$r8+$k$K$O!"<!$N$h$&$K%?%$%W$7$^$9!#(B @@ -555,7 +555,7 @@ Emacs $B$O%U%!%$%k$NFbMF$r%P%C%U%!!J(Bbuffer$B!K$H8F$P$l$k$b$N$NCf$K3JG<$7$F $B%9%H$O>o$K3F%P%C%U%!$NL>A0$rI=<($7$^$9!#(B $B$"$J$?$,(B Emacs $B$N%&%#%s%I%&$G8+$kJ8>O$O$I$l$b!"$$$:$l$+$N%P%C%U%!$N0l(B -$BIt$G$9!#%P%C%U%!$K$h$C$F$OBP1~$9$k%U%!%$%k$,L5$$$b$N$b$"$j$^$9!#Nc$($P(B +$BIt$G$9!#%P%C%U%!$K$h$C$F$OBP1~$9$k%U%!%$%k$,L5$$$b$N$b$"$j$^$9!#Nc$($P(B "*Buffer List*" $B$H$$$&L>A0$N%P%C%U%!$K$O%U%!%$%k$,$"$j$^$;$s!#$3$N%P%C(B $B%U%!$O$"$J$?$,(B C-x C-b $B$G:n$C$?%P%C%U%!%j%9%H$rJ];}$7$F$$$k%P%C%U%!$G(B $B$9!#(B"*Messages*" $B$H$$$&%P%C%U%!$b%U%!%$%k$r;}$A$^$;$s!#$3$N%P%C%U%!$O!"(B @@ -604,7 +604,7 @@ C-c $B$K4X$7$F$O!"$=$l$^$G$K2C$($?JQ99$,L5$/$J$k$N$r?4G[$9$kI,MW$O$"$j$^(B C-z $B$O!V0l;~E*$K!W(B Emacs $B$rH4$1$k%3%^%s%I$G$9!#$^$?F1$8(B Emacs $B%;%C%7%g(B $B%s$KLa$k$3$H$,$G$-$^$9!#(B -$B$=$l$,$G$-$k%7%9%F%`>e$J$i!"(BC-z $B$O(B Emacs $B$r!VCfCG!W$5$;$^$9!#$D$^$j(B +$B$=$l$,$G$-$k%7%9%F%`>e$J$i!"(BC-z $B$O(B Emacs $B$r!VCfCG!W$5$;$^$9!#$D$^$j(B Emacs $B$r=*N;$9$k$3$H$J$/!"%3%^%s%I%7%'%k$KLa$k$3$H$,$G$-$^$9!#BgJ}$NI8(B $B=`E*$J%7%'%k$J$i!"(B`fg' $B%3%^%s%I$b$7$/$O(B `%emacs' $B$K$h$C$F(B Emacs $B$r:F3+(B $B$G$-$^$9!#(B @@ -615,9 +615,9 @@ Emacs $B$r=*N;$9$k$3$H$J$/!"%3%^%s%I%7%'%k$KLa$k$3$H$,$G$-$^$9!#BgJ}$NI8(B $B$G!"%7%'%k%3%^%s%I$N(B `exit' $B$,$=$N%5%V%7%'%k$+$i(B Emacs $B$KLa$kIaDL$N$d(B $B$jJ}$G$9!#(B -C-x C-c $B$O%m%0%"%&%H$7$h$&$H;W$&;~$K;H$&$b$N$G$9!#%a!<%k%D!<%k!J(Bmail -$B%3%^%s%IEy!K$d$=$NB>$NMM!9$J%"%W%j%1!<%7%g%s%W%m%0%i%`$,5/F0$7$?(B Emacs -$B$+$iH4$1=P$k>l9g$K;H$&$N$b@5$7$$$d$jJ}$G$9!#$3$l$i$N%W%m%0%i%`$O(B Emacs +C-x C-c $B$O%m%0%"%&%H$7$h$&$H;W$&;~$K;H$&$b$N$G$9!#%a!<%k%D!<%k!J(Bmail +$B%3%^%s%IEy!K$d$=$NB>$NMM!9$J%"%W%j%1!<%7%g%s%W%m%0%i%`$,5/F0$7$?(B Emacs +$B$+$iH4$1=P$k>l9g$K;H$&$N$b@5$7$$$d$jJ}$G$9!#$3$l$i$N%W%m%0%i%`$O(B Emacs $B$NCfCG$K$I$&BP=h$7$FNI$$$+CN$i$J$$$G$7$g$&$+$i!#$7$+$7$J$,$i!"IaDL$N>l(B $B9g$O!"%m%0%"%&%H$7$h$&$H$7$J$$8B$j$O(B Emacs $B$r=*N;$5$;$k$h$j$O(B C-z $B$GCf(B $BCG$5$;$kJ}$,NI$$$G$7$g$&!#(B @@ -629,7 +629,7 @@ C-x $B%3%^%s%I$O$?$/$5$s$"$j$^$9!#$3$l$^$G$K!"0J2<$r3X$S$^$7$?!#(B C-x C-b $B%P%C%U%!$N%j%9%H%"%C%W(B C-x C-c Emacs $B$r=*N;(B C-x 1 $B%&%#%s%I%&$r#1$D$K$9$k!J$D$^$jB>$N%&%#%s%I%&$rA4It>C$9!K(B - C-x u $B<h$j>C$7(B + C-x u $B<h$j>C$7(B $BL>A0$K$h$k3HD%%3%^%s%I$K$O!"$"$^$j;H$o$J$$$b$N$d!"FCDj$N%b!<%I$G$7$+;H(B $B$o$J$$$b$N$,$"$j$^$9!#$?$H$($P(B replace-string $B$G$9$,!"$3$l$OJ8;zNs$rCV(B @@ -646,7 +646,7 @@ C-x $B%3%^%s%I$O$?$/$5$s$"$j$^$9!#$3$l$^$G$K!"0J2<$r3X$S$^$7$?!#(B >> $B%+!<%=%k$r$3$3$+$i#29T2<$N6u9T$K0\F0$5$;$F2<$5$$!#(B M-x repl s<Return>changed<Return>Altered<Return> $B$H%?%$%W$7$^$7$g$&!#(B - $B$3$N9T$,$I$&JQ$o$k$+(B(changed)$B8+$^$7$g$&!#$"$J$?$O%+!<%=%k0J9_A4It$N(B + $B$3$N9T$,$I$&JQ$o$k$+(B(changed)$B8+$^$7$g$&!#$"$J$?$O%+!<%=%k0J9_A4It$N(B c-h-a-n-g-e-d $B$H$$$&8l$r(B "altered" $B$KJQ$($?$N$G$9!#(B @@ -687,22 +687,22 @@ C-x $B%3%^%s%I$O$?$/$5$s$"$j$^$9!#$3$l$^$G$K!"0J2<$r3X$S$^$7$?!#(B $B%U%!%$%kL>$K$D$$$F$O$b$&J,$C$F$$$^$9$M!#$=$l$O$"$J$?$,3+$$$?%U%!%$%k$G(B $B$9!#(B-NN%-- $B$OJ8>OCf$N8=:_0LCV$r<($7$F$$$^$9!#J8>O$N(B NN% $B$,2hLL:G>eCJ$h(B -$B$jA0$K$"$k$H$$$&$3$H$G$9!#$b$7J8>O$N:G=i$N9T$,2hLL$K$"$k;~$K$O(B --00%-- -$B$NBe$j$K(B --Top-- $B$HI=<($7$^$9!#$b$7J8>O$N:G8e$N9T$,2hLL$K$"$k;~$K$O(B +$B$jA0$K$"$k$H$$$&$3$H$G$9!#$b$7J8>O$N:G=i$N9T$,2hLL$K$"$k;~$K$O(B --00%-- +$B$NBe$j$K(B --Top-- $B$HI=<($7$^$9!#$b$7J8>O$N:G8e$N9T$,2hLL$K$"$k;~$K$O(B --Bot-- $B$HI=<($7$^$9!#$b$72hLL$KA4It<}$^$C$F$7$^$&$h$&$JC;$$J8>O$r8+$F(B $B$$$k$H$-$K$O(B --All-- $B$HI=<($7$^$9!#(B L $B$H$=$l$KB3$/?t;z$O8=:_$N9THV9f$r<($7$F$$$^$9!#(B $B@hF,6a$/$N@10u$O!"$"$J$?$,J8>O$rJQ99$7$?$3$H$r<($7$F$$$^$9!#%U%!%$%k$r(B -$B3+$$$?D>8e$d!"%;!<%V$7$?D>8e$O!"$=$NItJ,$K$O@10u$NBe$o$j$K%@%C%7%e(B `-' +$B3+$$$?D>8e$d!"%;!<%V$7$?D>8e$O!"$=$NItJ,$K$O@10u$NBe$o$j$K%@%C%7%e(B `-' $B$,I=<($5$l$^$9!#(B -$B3g8L$K0O$^$l$?ItJ,$O$I$s$JJT=8%b!<%I$K$$$k$+$r<($7$^$9!#%G%U%)%k%H$O(B +$B3g8L$K0O$^$l$?ItJ,$O$I$s$JJT=8%b!<%I$K$$$k$+$r<($7$^$9!#%G%U%)%k%H$O(B "Fundamental" $B$H$$$&%b!<%I!"$3$l$,8=:_$N%b!<%I$G$9!#$3$l$O!V%a%8%c!<%b!<(B $B%I!J(Bmajor mode$B!K!W$N0lNc$G$9!#(B -Emacs $B$K$OB?$/$N<oN`$N%a%8%c!<%b!<%I$,$"$j$^$9!#(BLisp mode $B$d(BText mode +Emacs $B$K$OB?$/$N<oN`$N%a%8%c!<%b!<%I$,$"$j$^$9!#(BLisp mode $B$d(BText mode $B$N$h$&$K!"$I$s$J%W%m%0%i%`8@8l$d$I$s$J<oN`$NJ8>O$rJT=8Cf$+$r0UL#$9$k$b(B $B$N$b$"$j$^$9!#$$$D$G$bI,$:$$$:$l$+$N%a%8%c!<%b!<%I$N>uBV$K$J$C$F$$$^$9!#(B $B$I$N%a%8%c!<%b!<%I$K$$$k$N$+$O!"%b!<%I%i%$%s$N8=:_$O(B "Fundamental" $B$H(B @@ -813,7 +813,7 @@ C-s $B$rBG$D$H(B "I-search" $B$H$$$&J8;zNs$,%(%3!<%(%j%"$KI=<($5$l$k$N$,8+$( $B%$%s%/%j%a%s%?%k8!:w$NESCf$G(B <Delback> $B$rBG$D$H8!:wJ8;zNsCf$N#1HV:G8e(B $B$NJ8;z$,>C$($^$9!#$=$7$F!"%+!<%=%k$O!"A02s$N0LCV$KLa$j$^$9!#$?$H$($P!"(B -"c" $B$H%?%$%W$7$F:G=i$N(B "c" $B$rC5$7$^$9!#$=$l$+$i(B "u" $B$rBG$D$H:G=i$N(B"cu" +"c" $B$H%?%$%W$7$F:G=i$N(B "c" $B$rC5$7$^$9!#$=$l$+$i(B "u" $B$rBG$D$H:G=i$N(B"cu" $B$N>l=j$K%+!<%=%k$,F0$-$^$9!#$=$3$G(B <Delback> $B$rBG$D$H(B "u" $B$r8!:wJ8;zNs(B $B$+$i>C$7$F!"%+!<%9%k$O:G=i$K(B "c" $B$,8=$l$?>l=j$KLa$j$^$9!#(B @@ -828,7 +828,7 @@ C-s $B$O!"8=:_$N%+!<%=%k0LCV0J9_$K=P$F$/$k8!:wJ8;zNs$rC5$7;O$a$^$9!#$b$7!"(B Emacs $B$NAGE($J5!G=$N0l$D$H$7$F!"0l$D$N2hLL$KF1;~$K$$$/$D$b$N%&%#%s%I%&(B $B$rI=<($9$k$3$H$,$G$-$^$9!#(B ->> $B%+!<%=%k$r$3$N9T$K;}$C$F$-$F(B C-u 0 C-l $B$H%?%$%W$7$F2<$5$$!J:G8e$N$O(B +>> $B%+!<%=%k$r$3$N9T$K;}$C$F$-$F(B C-u 0 C-l $B$H%?%$%W$7$F2<$5$$!J:G8e$N$O(B CONTROL-L $B$G$9$h!"(BCONTROL-1 $B$8$c$"$j$^$;$s!K!#(B >> $B$=$l$+$i(B C-x 2 $B$G2hLL$r#2$D$N%&%#%s%I%&$KJ,3d$7$^$7$g$&!#$I$A$i$N%&%#(B @@ -906,7 +906,7 @@ C-g $B$G$O:F5"JT=8%l%Y%k$+$i$OH4$1=P$;$^$;$s!#$3$l$O!"(BC-g $B$,:F5"JT=8%l%Y $B$3$NF~Lg%,%$%I$G$O(B Emacs $B$r;H$$;O$a$k$N$K==J,$J>pJs$rDs6!$7$?$D$b$j$G(B $B$9!#(BEmacs $B$K$O$"$^$j$K$bB?$/$N5!G=$,$"$k$N$G!"$3$3$G$9$Y$F$r@bL@$9$k$N(B -$B$OL5M}$G$9!#Lr$KN)$D5!G=$r$b$C$HB?$/3X$S$?$$$H;W$&?M$N$?$a$K$O!"(BEmacs +$B$OL5M}$G$9!#Lr$KN)$D5!G=$r$b$C$HB?$/3X$S$?$$$H;W$&?M$N$?$a$K$O!"(BEmacs $B$N%3%^%s%I$N@bL@$rFI$`$?$a$N%3%^%s%I$,$"$j$^$9!#$3$l$i$N!V%X%k%W!W%3%^(B $B%s%I$O3'(B Control-h $BJ8;z!J%X%k%WJ8;z$H8F$S$^$9!K$G;O$^$j$^$9!#(B @@ -917,7 +917,7 @@ C-g $B$G$O:F5"JT=8%l%Y%k$+$i$OH4$1=P$;$^$;$s!#$3$l$O!"(BC-g $B$,:F5"JT=8%l%Y $B!J%5%$%H$K$h$C$F$O(B C-h $BJ8;z$N0UL#$rJQ99$7$F$$$k$+$b$7$l$^$;$s!#%f!<%6(B $BA40w$KBP$9$kAm3gE*$J<jCJ$H$7$F$=$s$J$3$H$r$9$k$Y$-$G$O$"$j$^$;$s!#$=$&(B -$B$$$&>l9g$O%7%9%F%`4IM}<T$KJ86g$r8@$$$^$7$g$&!#$^!"$H$b$+$/!"$b$7(B C-h +$B$$$&>l9g$O%7%9%F%`4IM}<T$KJ86g$r8@$$$^$7$g$&!#$^!"$H$b$+$/!"$b$7(B C-h $B$,2hLL$N2<$NJ}$K%X%k%W$N%a%C%;!<%8$r=P$5$J$1$l$P!"(BF1 $B%-!<$+(B M-x help <Return> $B$r;n$7$F$_$F2<$5$$!#!K(B @@ -930,7 +930,7 @@ C-g $B$G$O:F5"JT=8%l%Y%k$+$i$OH4$1=P$;$^$;$s!#$3$l$O!"(BC-g $B$,:F5"JT=8%l%Y C-p runs the command previous-line -$B$3$l$O!V%U%!%s%/%7%g%s$NL>A0!W$rI=<($7$?$N$G$9!#%U%!%s%/%7%g%sL>$O<g$K(B +$B$3$l$O!V%U%!%s%/%7%g%s$NL>A0!W$rI=<($7$?$N$G$9!#%U%!%s%/%7%g%sL>$O<g$K(B Emacs $B$r%+%9%?%^%$%:$7$?$j3HD%$7$?$j$9$k$N$K;H$o$l$^$9!#$7$+$7!"%U%!%s(B $B%/%7%g%sL>$O$=$N%3%^%s%I$,2?$r$9$k$b$N$J$N$+$,J,$k$h$&$KIU$1$i$l$^$9$N(B $B$G!"4JC1$J@bL@$H$7$F$b$=$N$^$^Lr$KN)$A$^$9!#0lEY3X$s$@%3%^%s%I$K$D$$$F(B @@ -981,8 +981,8 @@ C-h $B$K$OB>$K$bLr$KN)$D%*%W%7%g%s$,$"$j$^$9!#(B C-h i $B%*%s%i%$%s%^%K%e%"%k!J(BInfo$B!K$rFI$`!#$3$N%3%^%s%I$r;H$&(B $B$H!"$"$J$?$O(B `*info*' $B$H$$$&L>$NFC<l$J%P%C%U%!$K0\$5$l(B $B$^$9!#$=$3$G!"%7%9%F%`$K%$%s%9%H!<%k$5$l$F$$$k%Q%C%1!<(B - $B%8$N%*%s%i%$%s%^%K%e%"%k$,FI$a$^$9!#(B m emacs <Return> - $B$H%?%$%W$9$l$P(B Emacs $B$N%^%K%e%"%k$,FI$a$^$9!#$b$7(B Info + $B%8$N%*%s%i%$%s%^%K%e%"%k$,FI$a$^$9!#(B m emacs <Return> + $B$H%?%$%W$9$l$P(B Emacs $B$N%^%K%e%"%k$,FI$a$^$9!#$b$7(B Info $B$r;H$&$N$,=i$a$F$J$i!"(B? $B$H%?%$%W$7$^$7$g$&!#(BInfo $B%b!<(B $B%I$N%,%$%I%D%"!<$,;O$^$j$^$9!#$3$NF~Lg%,%$%I$rFI$_=*$((B $B$?8e$O!"(BEmacs $B$N(B Info $B%^%K%e%"%k$r$"$J$?$N65K\$K$7$F2<(B @@ -992,7 +992,7 @@ C-h $B$K$OB>$K$bLr$KN)$D%*%W%7%g%s$,$"$j$^$9!#(B $B!v$b$C$HB?$/$N5!G=(B ================== -$BK\$N%^%K%e%"%k$G$"$m$&$H%*%s%i%$%s%^%K%e%"%k!J(BHelp $B%a%K%e!<$r;H$&$+(B +$BK\$N%^%K%e%"%k$G$"$m$&$H%*%s%i%$%s%^%K%e%"%k!J(BHelp $B%a%K%e!<$r;H$&$+(B F10 h r$B!K$G$"$m$&$H!"$=$l$rFI$a$P(B Emacs $B$K$D$$$F$b$C$HB?$/$r3X$Y$^$9!#(B $B$"$J$?$,FC$K$*5$$K>$$9$G$"$m$&5!G=$K!"%?%$%W?t$r8:$i$7$F$/$l$kJd40(B $B!J(Bcompletion$B!K$H!"%U%!%$%k$N07$$$rC1=c2=$7$F$/$l$k%G%#%l%/%H%jJT=8(B @@ -1030,7 +1030,7 @@ F10 h r$B!K$G$"$m$&$H!"$=$l$rFI$a$P(B Emacs $B$K$D$$$F$b$C$HB?$/$r3X$Y$^$9!# $B$3$NJ8=q$O(B Emacs Ver.21 $BIUB0$N1Q8lHG$NF~Lg%,%$%I$rF|K\8l$KK]Lu$7$?$b$N(B $B$G$9!#$=$N:]!"(BEmacs Ver. 20 $BImB0$NF|K\8lHGF~Lg%,%$%I$r%Y!<%9$K$7$^$7$?!#(B Emacs Ver. 20 $BImB0$NF|K\8lHGF~Lg%,%$%I$O!"(BMule $BIUB0$NF|K\8l%,%$%I$r;2(B -$B9M$K$7$?$b$N$G!"$=$N85$O(B SANETO Takanori $B;a$,F|K\8l(B MicroEmacs(kemacs) +$B9M$K$7$?$b$N$G!"$=$N85$O(B SANETO Takanori $B;a$,F|K\8l(B MicroEmacs(kemacs) $BF~LgJT$H$7$FK]Lu$5$l!"$=$l$rNkLZM5?.;a(B <hironobu@sra.co.jp> $B$,(B Nemacs/Mule $BMQ$KJQ99!"$5$i$K5HEDLP<y;a$,=$@5$5$l$?$b$N$G$9!#$3$l$i$NJ}!9(B $B$K?<$/46<U$7$^$9!#(B diff --git a/etc/TUTORIAL.nl b/etc/TUTORIAL.nl index 918d27d2eff..2a30e02d467 100644 --- a/etc/TUTORIAL.nl +++ b/etc/TUTORIAL.nl @@ -180,7 +180,7 @@ om M-< in te typen: zonder shift zou je M-, (Meta komma) typen. >> Type nu M-> om naar het eind van het bestand te springen. Gebruik daarna M-v om hier weer terug te komen. - + Als je toetsenbord pijltjestoetsen heeft kan je ook die gebruiken om de cursor te verplaatsen. We raden je aan om C-b, C-f, C-n en C-p op zijn minst te leren, om drie redenen. Ten eerste werken ze op alle @@ -877,7 +877,7 @@ scherm kan laten zien. om de cursor naar het andere venster te verplaatsen. >> Verschuif de tekst in het onderste venster, m.b.v. C-v en M-v. - Zorg ervoor dat je deze uitleg in het bovenste venster leest. + Zorg ervoor dat je deze uitleg in het bovenste venster leest. >> Type weer C-x o om de cursor weer in het bovenste venster te zetten. De cursor staat weer precies op de plaats waar diff --git a/etc/TUTORIAL.pl b/etc/TUTORIAL.pl index 6c93920b6ae..daedfe0f39c 100644 --- a/etc/TUTORIAL.pl +++ b/etc/TUTORIAL.pl @@ -1,5 +1,5 @@ -Czytasz w³a¶nie krótki samouczek Emacsa. Copyright (c) 1985, 2001 -Free Software Foundation, Inc. Szczegó³y na koñcu pliku. +Czytasz w³a¶nie krótki samouczek Emacsa. Copyright (c) 1985, 2001 +Free Software Foundation, Inc. Szczegó³y na koñcu pliku. Polecenia Emacsa wymagaj± na ogó³ wci¶niêcia klawisza CONTROL (oznaczanego czasami Ctrl lub CTL) lub klawisza META (oznaczanego czasami EDIT @@ -7,7 +7,7 @@ albo ALT). Dalej bêdziemy stosowaæ nastêpuj±ce skróty: C-<znak> oznacza przytrzymanie klawisza CONTROL przy naciskaniu klawisza <znak>. Na przyk³ad C-f bêdzie odpowiada³o - naci¶niêciu f przy wci¶niêtym klawiszu CONTROL. + naci¶niêciu f przy wci¶niêtym klawiszu CONTROL. M-<znak> oznacza przytrzymanie klawisza META lub ALT przy naciskaniu klawisza <znak>. Zamiast tego mo¿na nacisn±æ i pu¶ciæ klawisz ESC, a potem nacisn±æ klawisz <znak>. @@ -69,7 +69,7 @@ albo kolumnê w okre¶lonym kierunku. Oto schemat, który to obrazuje: Poprzednia linia, C-p (ang. previous line) - : + : : Do ty³u, C-b .... Kursor .... Do przodu, C-f (ang. back) : (ang. forward) @@ -155,7 +155,7 @@ w³±cznie z operacjami dotycz±cymi s³ów i zdañ: M-f Do przodu o s³owo M-b Do ty³u o s³owo - C-n Nastêpna linia + C-n Nastêpna linia C-p Poprzednia linia C-a Pocz±tek linii @@ -328,7 +328,7 @@ poprzedzaj±cy bie¿±c± pozycjê kursora. >> Sprawd¼ to teraz: wstaw kilka znaków, po czym usuñ je, kilka razy naciskaj±c <Delback>. Nie martw siê, ¿e zmieniasz w ten sposób - niniejszy plik, w istocie nie zmieniasz g³ównego pliku samouczka. + niniejszy plik, w istocie nie zmieniasz g³ównego pliku samouczka. Pracujesz teraz na jego kopii. Gdy linia tekstu staje siê zbyt d³uga, by zmie¶ciæ siê w jednym @@ -344,8 +344,8 @@ wskazuje, ¿e dana linia jest kontynuowana w nastêpnym wierszu ekranu. mie¶ci³a siê na ekranie; linia kontynuacji zniknie. Znak nowej linii mo¿na skasowaæ tak jak ka¿dy inny znak. Usuniêcie znaku -nowej linii miêdzy dwiema liniami spowoduje ich po³±czenie. Je¶li powsta³a -w wyniku tego linia tekstu jest zbyt d³uga, by zmie¶ciæ siê na szeroko¶æ +nowej linii miêdzy dwiema liniami spowoduje ich po³±czenie. Je¶li powsta³a +w wyniku tego linia tekstu jest zbyt d³uga, by zmie¶ciæ siê na szeroko¶æ ekranu, to zostanie wy¶wietlona z lini± kontynuacji. >> Przesuñ kursor na pocz±tek linii i naci¶nij <Delback>. Bie¿±ca @@ -354,8 +354,8 @@ ekranu, to zostanie wy¶wietlona z lini± kontynuacji. >> Naci¶nij <Return>, by z powrotem wstawiæ znak nowej linii, który skasowa³e¶. -Jak ju¿ wiesz, wiêkszo¶æ poleceñ Emacsa mo¿na wywo³aæ z parametrem -liczby powtórzeñ; dotyczy to tak¿e znaków tekstu. Argument liczbowy +Jak ju¿ wiesz, wiêkszo¶æ poleceñ Emacsa mo¿na wywo³aæ z parametrem +liczby powtórzeñ; dotyczy to tak¿e znaków tekstu. Argument liczbowy powoduje wstawienie znaku odpowiadaj±c± mu liczbê razy. >> Wypróbuj to teraz -- naci¶nij C-u 8 *, a uzyskasz ********. @@ -768,7 +768,7 @@ nastêpuj±cego: --:** TUTORIAL (Fundamental)--L670--58%---------------- Linia ta podaje u¿yteczne informacje o stanie Emacsa i tekstu, który -edytujesz. +edytujesz. Wiesz ju¿, jakie jest znaczenie nazwy: oznacza ona plik, który odwiedzi³e¶. --NN%-- informuje o bie¿±cej pozycji wewn±trz @@ -1097,7 +1097,7 @@ preferencji. Wpisz nazwê zmiennej, gdy Emacs o ni± poprosi. Dla niektórych poleceñ Apropos wypisze jedno- lub dwuznakowe sekwencje, które wywo³uj± te polecenia. ->> Napisz C-h a file<Return>. +>> Napisz C-h a file<Return>. Zobaczysz listê wszystkich poleceñ, dostêpnych za pomoc± M-x, które maja s³owo "file" w swojej nazwie. diff --git a/etc/TUTORIAL.ru b/etc/TUTORIAL.ru index b1fd0152002..0076728c246 100644 --- a/etc/TUTORIAL.ru +++ b/etc/TUTORIAL.ru @@ -61,7 +61,7 @@ CTRL ÉÌÉ CTL) ÉÌÉ ËÌÁ×ÉÛÕ META (ÉÎÏÇÄÁ ÐÏÍÅÞÅÎÎÕÀ ËÁË ALT ÉÌÉ EDIT). ÷ C-p, C-b, C-f É C-n. ëÁÖÄÁÑ ÉÚ ÜÔÉÈ ËÏÍÁÎÄ ÐÅÒÅÄ×ÉÇÁÅÔ ËÕÒÓÏÒ ÎÁ ÏÄÎÕ ÓÔÒÏËÕ ÉÌÉ ËÏÌÏÎËÕ ÎÁ ÜËÒÁÎÅ × ÏÐÒÅÄÅÌÅÎÎÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ. üÔÁ ÔÁÂÌÉÃÁ ÐÏËÁÚÙ×ÁÅÔ ÞÅÔÙÒÅ ËÏÍÁÎÄÙ É ÞÅÔÙÒÅ ÎÁÐÒÁ×ÌÅÎÉÑ ÉÈ Ä×ÉÖÅÎÉÑ: - + ðÒÅÄÙÄÕÝÁÑ ÓÔÒÏËÁ, C-p : : @@ -196,7 +196,7 @@ META. íÙ ÒÅËÏÍÅÎÄÕÅÍ ÏÓ×ÏÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ C-u, ÐÏÓËÏÌØËÕ ÜÔÁ ×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄÙ. îÁÐÒÉÍÅÒ, C-u 8 C-f ÐÅÒÅÍÅÓÔÉÔ ËÕÒÓÏÒ ÎÁ ×ÏÓÅÍØ ÓÉÍ×ÏÌÏ× ×ÐÅÒÅÄ. - + >> ðÏÐÒÏÂÕÊÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ C-n ÉÌÉ C-p Ó ÃÉÆÒÏ×ÙÍ ÁÒÇÕÍÅÎÔÏÍ, ÞÔÏÂÙ ÐÅÒÅÍÅÓÔÉÔØ ËÕÒÓÏÒ ÎÁ ÓÔÒÏËÕ ÒÑÄÏÍ Ó ÜÔÏÊ ËÏÍÁÎÄÏÊ. @@ -204,7 +204,7 @@ META. íÙ ÒÅËÏÍÅÎÄÕÅÍ ÏÓ×ÏÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ C-u, ÐÏÓËÏÌØËÕ ÜÔÁ ÎÅËÏÔÏÒÙÅ ËÏÍÁÎÄÙ ÉÓÐÏÌØÚÕÀÔ ÅÇÏ ÄÒÕÇÉÍ ÓÐÏÓÏÂÏÍ. îÅËÏÔÏÒÙÅ ËÏÍÁÎÄÙ (ÎÏ ÎÉ ÏÄÎÁ ÉÚ ÎÉÈ ÎÅ ÂÙÌÁ ÅÝÅ ÉÚÕÞÅÎÁ ÚÄÅÓØ) ÉÓÐÏÌØÚÕÀÔ ÅÇÏ ËÁË ÆÌÁÇ -- ÎÁÌÉÞÉÅ ÐÒÅÆÉËÓÎÏÇÏ ÁÒÇÕÍÅÎÔÁ ×ÎÅ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÅÇÏ ÚÎÁÞÅÎÉÑ, ÉÚÍÅÎÑÅÔ ÐÏ×ÅÄÅÎÉÅ -ËÏÍÁÎÄÙ. +ËÏÍÁÎÄÙ. äÒÕÇÉÍ ×ÉÄÏÍ ÉÓËÌÀÞÅÎÉÊ Ñ×ÌÑÀÔÓÑ ËÌÀÞÉ C-v É M-v. ðÒÉ ÐÏÌÕÞÅÎÉÉ ÞÉÓÌÏ×ÏÇÏ ÁÒÇÕÍÅÎÔÁ, ÏÎÉ ÐÒÏËÒÕÞÉ×ÁÀÔ ÜËÒÁÎ ××ÅÒÈ ÉÌÉ ×ÎÉÚ ÎÁ ÕËÁÚÁÎÎÏÅ ÞÉÓÌÏ ÓÔÒÏË, @@ -246,7 +246,7 @@ CONTROL ÉÌÉ META É ÎÁÂÅÒÉÔÅ ÞÉÓÌÏ. îÁÐÒÉÍÅÒ, ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ÎÁ 12 ÓÌÏ× ÐÏÔÏÍÕ ÞÔÏ ×Ù ÎÅ ÏÔÐÕÓËÁÅÔÅ ËÎÏÐËÕ CONTROL ÍÅÖÄÕ ÎÁÖÁÔÉÑÍÉ. -* åóìé EMACS úá÷éó +* åóìé EMACS úá÷éó ------------------ åÓÌÉ Emacs ÐÅÒÅÓÔÁÌ ÒÅÁÇÉÒÏ×ÁÔØ ÎÁ ×ÁÛÉ ËÏÍÁÎÄÙ, ×Ù ÍÏÖÅÔÅ ÏÓÔÁÎÏ×ÉÔØ ÜÔÏ @@ -572,7 +572,7 @@ Emacs ÐÅÒÅÉÍÅÎÕÅÔ ÏÒÉÇÉÎÁÌØÎÙÊ ÆÁÊÌ × ÆÁÊÌ Ó ÎÏ×ÙÍ ÉÍÅÎÅÍ, ÞÔÏÂÙ ÏÎ ÎÅ >> óÏÚÄÁÊÔÅ ÆÁÊÌ Ó ÉÍÅÎÅÍ "foo" ÎÁÂÉÒÁÑ C-x C-f foo <Return>. ÷ÓÔÁ×ØÔÅ ËÁËÏÊ-ÎÉÂÕÄØ ÔÅËÓÔ, ÏÔÒÅÄÁËÔÉÒÕÊÔÅ ÅÇÏ, É ÓÏÈÒÁÎÉÔÅ "foo" ÎÁÂÒÁ× C-x C-s. - îÁËÏÎÅÃ, ÎÁÂÅÒÉÔÅ C-x C-f TUTORIAL.ru <Return> + îÁËÏÎÅÃ, ÎÁÂÅÒÉÔÅ C-x C-f TUTORIAL.ru <Return> ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ ÎÁÚÁÄ Ë ÕÞÅÂÎÉËÕ. Emacs ÓÏÈÒÁÎÑÅÔ ÔÅËÓÔ ËÁÖÄÏÇÏ ÆÁÊÌÁ ×ÎÕÔÒÉ × ÏÂßÅËÔÅ ÎÁÚÙ×ÁÅÍÙÊ "ÂÕÆÅÒ" @@ -610,14 +610,14 @@ C-x s ÓÐÒÁÛÉ×ÁÅÔ ×ÁÓ Ï ËÁÖÄÏÍ ÂÕÆÅÒÅ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÎÅ ÓÏÈÒÁÎÅÎÎÙÅ ïÔ×ÅÔØÔÅ ÎÁ ×ÏÐÒÏÓ ÄÁ ÎÁÂÒÁ× "y". -* òáóûéòåîîùê îáâïò ëïíáîä +* òáóûéòåîîùê îáâïò ëïíáîä -------------------------- õ Emacs ÏÞÅÎØ ÍÎÏÇÏ ËÏÍÁÎÄ, ÏÎÉ ÍÏÇÕÔ ÂÙÔØ ÎÁÚÎÁÞÅÎÙ ÎÁ ×ÓÅ control- É meta- ÓÉÍ×ÏÌÙ. Emacs ÏÂÈÏÄÉÔ ÜÔÏ, ÉÓÐÏÌØÚÕÑ X-ËÏÍÁÎÄÕ (eXtend). åÓÔØ Ä×Å ×ÏÚÍÏÖÎÏÓÔÉ: - C-x óÉÍ×ÏÌ ÒÁÓÛÉÒÅÎÉÑ (Character eXtend). + C-x óÉÍ×ÏÌ ÒÁÓÛÉÒÅÎÉÑ (Character eXtend). úÁ ÎÉÍ ÓÌÅÄÕÅÍ ÏÄÉÎ ÓÉÍ×ÏÌ. M-x éÍÅÎÏ×ÁÎÎÙÅ ÒÁÓÛÉÒÅÎÎÙÅ ËÏÍÁÎÄÙ (Named command eXtend). úÁ ÎÉÍ ÓÌÅÄÕÅÔ ÉÍÑ ËÏÍÁÎÄÙ. @@ -752,7 +752,7 @@ Emacs ÉÍÅÅÔ ÍÎÏÇÏ ÒÁÚÌÉÞÎÙÈ ÏÓÎÏ×ÎÙÈ ÒÅÖÉÍÏ×. îÅËÏÔÏÒÙÅ ÉÚ ÒÅÖÉÍÏ× ÏÚÎÁÞÁÀÔ, îÅ ×ÏÌÎÕÊÔÅÓØ, ÎÉ ÏÄÎÁ ÉÚ ×ÙÕÞÅÎÎÙÈ ×ÁÍÉ ËÏÍÁÎÄ Emacs ÎÅ ÉÚÍÅÎÉÌÁÓØ. îÏ ×Ù ÍÏÖÉÔÅ ÚÁÍÅÔÉÔØ, ÞÔÏ M-f É M-b ÔÅÐÅÒØ ÒÁÚÌÉÞÁÔØ ÁÐÏÓÔÒÏÆÙ ËÁË ÞÁÓÔÉ ÓÌÏ×Á. òÁÎÅÅ, × ÂÁÚÏ×ÏÍ ÒÅÖÉÍÅ (Fundamental mode), M-f É M-b ÐÏÎÉÍÁÌÉ ÁÐÏÓÔÒÏÆÙ -ËÁË ÒÁÚÄÅÌÉÔÅÌÉ ÓÌÏ×. +ËÁË ÒÁÚÄÅÌÉÔÅÌÉ ÓÌÏ×. ïÓÎÏ×ÎÏÊ ÒÅÖÉÍ ÏÂÙÞÎÏ ÄÅÌÁÅÔ ÎÅÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ, ÔÁËÉÅ ËÁË: ÂÏÌØÛÉÎÓÔ×Ï ËÏÍÁÎÄ ÄÅÌÁÀÔ "ÔÕ ÖÅ ÒÁÂÏÔÕ" × ËÁÖÄÏÍ ÉÚ ÒÅÖÉÍÏ×, ÎÏ ÉÈ ÒÁÂÏÔÁ ÏÔÌÉÞÁÅÔÓÑ @@ -793,7 +793,7 @@ Emacs ÉÍÅÅÔ ÍÎÏÇÏ ÒÁÚÌÉÞÎÙÈ ÏÓÎÏ×ÎÙÈ ÒÅÖÉÍÏ×. îÅËÏÔÏÒÙÅ ÉÚ ÒÅÖÉÍÏ× ÏÚÎÁÞÁÀÔ, >> ÷×ÅÄÉÔÅ C-x f Ó ÁÒÇÕÍÅÎÔÏÍ 20. (C-u 2 0 C-x f). úÁÔÅÍ ××ÅÄÉÔÅ ËÁËÏÊ-ÎÉÂÕÄØ ÔÅËÓÔ, É ÐÏÓÍÏÔÒÉÔÅ ËÁË Emacs ÚÁÐÏÌÎÑÅÔ ÓÔÒÏËÉ ÐÏ 20 - ÓÉÍ×ÏÌÏ× × ËÁÖÄÏÊ. ÷ÅÒÎÉÔÅ ÚÎÁÞÅÎÉÅ ÇÒÁÎÉÃÙ 70 ÎÁÚÁÄ, + ÓÉÍ×ÏÌÏ× × ËÁÖÄÏÊ. ÷ÅÒÎÉÔÅ ÚÎÁÞÅÎÉÅ ÇÒÁÎÉÃÙ 70 ÎÁÚÁÄ, ÓÎÏ×Á ÉÓÐÏÌØÚÕÑ C-x f. åÓÌÉ ×Ù ÓÄÅÌÁÌÉ ÉÚÍÅÎÅÎÉÑ × ÓÅÒÅÄÉÎÅ ÐÁÒÁÇÒÁÆÁ, Á×ÔÏÚÁÐÏÌÎÅÎÉÅ ÎÅ ÐÅÒÅÓÔÒÏÉÔ @@ -818,12 +818,12 @@ Emacs ÕÍÅÅÔ ÉÓËÁÔØ ÓÔÒÏËÉ (ÜÔÏ ÎÅÐÒÅÒÙ×ÎÙÅ ÇÒÕÐÐÙ ÓÉÍ×ÏÌÏ× ÉÌÉ ÓÌÏ×Á) ×ÐÅÒÅÄ ÎÕÖÎÏ ÐÒÏÂÏ×ÁÔØ ÐÒÑÍÏ ÓÅÊÞÁÓ. ëÏÇÄÁ ×Ù ÎÁÖÍÅÔÅ C-s ×Ù Õ×ÉÄÉÔÅ ÓÔÒÏËÕ "I-search", ÐÏÑ×É×ÛÕÀÓÑ × ÏÂÌÁÓÔÉ ÜÈÏ. -÷ÁÍ ÓÏÏÂÝÁÅÔÓÑ ÞÔÏ Emacs ÖÄÅÔ ××ÏÄÁ ÓÌÏ×Á, ËÏÔÏÒÏÅ ×Ù ÈÏÔÉÔÅ ÎÁÊÔÉ. +÷ÁÍ ÓÏÏÂÝÁÅÔÓÑ ÞÔÏ Emacs ÖÄÅÔ ××ÏÄÁ ÓÌÏ×Á, ËÏÔÏÒÏÅ ×Ù ÈÏÔÉÔÅ ÎÁÊÔÉ. <Return> ÚÁ×ÅÒÛÁÅÔ ÐÏÉÓË. >> ôÅÐÅÒØ, ÎÁÖÍÉÔÅ C-s ÄÌÑ ÎÁÞÁÌÁ ÐÏÉÓËÁ. íÅÄÌÅÎÎÏ, ÏÄÎÕ ÂÕË×Õ ÚÁ ÏÄÉÎ ÒÁÚ, ÎÁÂÉÒÁÊÔÅ ÓÌÏ×Ï 'ËÕÒÓÏÒ', ÏÓÔÁÎÁ×ÌÉ×ÁÑÓØ ÐÏÓÌÅ ËÁÖÄÏÊ ××ÅÄÅÎÎÏÊ ÂÕË×Ù É - ÚÁÍÅÞÁÑ ÞÔÏ ÐÒÏÉÓÈÏÄÉÔ Ó ËÕÒÓÏÒÏÍ. + ÚÁÍÅÞÁÑ ÞÔÏ ÐÒÏÉÓÈÏÄÉÔ Ó ËÕÒÓÏÒÏÍ. óÅÊÞÁÓ ×Ù ÎÁÛÌÉ ÐÅÒ×ÏÅ ×ÈÏÖÄÅÎÉÅ ÓÌÏ×Á "ËÕÒÓÏÒ". >> îÁÖÍÉÔÅ C-s ÓÎÏ×Á, ÞÔÏÂÙ ÎÁÊÔÉ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ ÓÌÏ×Á "ËÕÒÓÏÒ". >> ôÅÐÅÒØ ÎÁÖÍÉÔÅ <Delete> ÞÅÔÙÒÅ ÒÁÚÁ É ÐÒÏÓÌÅÄÉÔÅ ÚÁ ÐÅÒÅÍÅÝÅÎÉÑÍÉ ËÕÒÓÏÒÁ. @@ -846,7 +846,7 @@ Emacs ÕÍÅÅÔ ÉÓËÁÔØ ÓÔÒÏËÉ (ÜÔÏ ÎÅÐÒÅÒÙ×ÎÙÅ ÇÒÕÐÐÙ ÓÉÍ×ÏÌÏ× ÉÌÉ ÓÌÏ×Á) ×ÐÅÒÅÄ ÞÔÏ ÐÏÓÌÅÄÎÉÊ ÓÉÍ×ÏÌ × ÉÓËÏÍÏÊ ÓÔÒÏËÅ ÕÄÁÌÉÌÓÑ, É ÐÏÉÓË ×ÅÒÎÕÌÓÑ Ë ÐÒÅÄÙÄÕÝÅÍÕ ÎÁÊÄÅÎÎÏÍÕ ÍÅÓÔÕ. îÁÐÒÉÍÅÒ, ÐÒÅÄÐÏÌÏÖÉÍ, ÞÔÏ ×Ù ÎÁÂÒÁÌÉ "c", ÐÏÉÓË ÐÅÒÅÊÄÅÔ Ë ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ ÓÉÍ×ÏÌÁ "c". ôÅÐÅÒØ ÅÓÌÉ ×Ù ÎÁÂÅÒÅÔÅ "u", ËÕÒÓÏÒ ÐÅÒÅÊÄÅÔ Ë -ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "cu". îÁÖÁÔÉÅ <Delete> ÕÄÁÌÉÔ ÓÉÍ×ÏÌ "u" ÉÈ ÓÔÒÏËÉ ÐÏÉÓËÁ, É +ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "cu". îÁÖÁÔÉÅ <Delete> ÕÄÁÌÉÔ ÓÉÍ×ÏÌ "u" ÉÈ ÓÔÒÏËÉ ÐÏÉÓËÁ, É ËÕÒÓÏÒ ×ÅÒÎÅÔÓÑ Ë ÐÅÒ×ÏÍÕ ×ÈÏÖÄÅÎÉÀ "c". åÓÌÉ ×Ù ×Ï ×ÒÅÍÑ ÐÏÉÓËÁ ××ÅÄÅÔÅ control- ÉÌÉ meta- ÓÉÍ×ÏÌ (ÚÁ ÎÅËÏÔÏÒÙÍÉ @@ -875,7 +875,7 @@ C-s ÎÁÞÉÎÁÅÔ ÐÏÉÓË É ÓÍÏÔÒÉÔ ÎÁ ÌÀÂÙÅ ×ÈÏÖÄÅÎÉÑ ÉÓËÏÍÏÊ ÓÔÒÏËÉ ðïóìå ÔÅËÕÝÅÊ (ÅÓÌÉ Õ ×ÁÓ ÎÅÔ ÎÁÓÔÏÑÝÅÊ ËÎÏÐËÉ META (Alt), ÎÁÖÍÉÔÅ ESC C-v.) >> îÁÖÍÉÔÅ C-x o ("o" ÏÔ ÓÌÏ×Á "other" - ÄÒÕÇÏÅ) ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ ËÕÒÓÏÒÁ × - ÎÉÖÎÅÅ ÏËÎÏ. + ÎÉÖÎÅÅ ÏËÎÏ. >> éÓÐÏÌØÚÕÊÔÅ C-v É M-v × ÎÉÖÎÅÍ ÏËÎÅ ÞÔÏ ÐÒÏËÒÕÞÉ×ÁÔØ ÅÇÏ. ðÒÏÄÏÌÖÉÔÅ ÞÔÅÎÉÅ ÜÔÉÈ ÉÎÓÔÒÕËÃÉÊ × ×ÅÒÈÎÅÍ ÏËÎÅ. @@ -907,7 +907,7 @@ CONTROL-ESC v ÎÅ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ. ðÏÔÏÍÕ, ÞÔÏ ESC ÉÍÅÅÔ Ó×ÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ (åÓÌÉ ×Ù ÎÁÖÁÌÉ C-x 1 × ÎÉÖÎÅÍ ÏËÎÅ, ÔÏ ×Ù ÉÚÂÁ×ÉÌÉÓØ ÏÔ ×ÅÒÈÎÅÇÏ. ðÏÎÉÍÁÊÔÅ ÜÔÕ ËÏÍÁÎÄÕ ËÁË "ïÓÔÁ×ÉÔØ ÔÏÌØËÏ ÏÄÎÏ ÏËÎÏ, ÔÏ × ËÏÔÏÒÏÍ Ñ ÓÅÊÞÁÓ ÎÁÈÏÖÕÓØ"). -÷ÁÍ ÎÅ ÎÕÖÎÏ ÏÔÏÂÒÁÖÁÔØ ÏÄÉÎ É ÔÏÔ ÖÅ ÂÕÆÅÒ × ÏÂÏÉÈ ÏËÎÁÈ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ +÷ÁÍ ÎÅ ÎÕÖÎÏ ÏÔÏÂÒÁÖÁÔØ ÏÄÉÎ É ÔÏÔ ÖÅ ÂÕÆÅÒ × ÏÂÏÉÈ ÏËÎÁÈ. åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ C-x C-f ÞÔÏÂÙ ÏÔËÒÙÔØ ÆÁÊÌ × ÏÄÎÏÍ ÏËÎÅ, ÄÒÕÇÏÅ ÏÓÔÁÎÅÔÓÑ ÂÅÚ ÉÚÍÅÎÅÎÉÑ. ÷Ù ÍÏÖÅÔÅ ÏÔËÒÙ×ÁÔØ ÆÁÊÌÙ × ËÁÖÄÏÍ ÏËÎÅ ÎÅÚÁ×ÉÓÉÍÏ. @@ -1004,7 +1004,7 @@ EDIT ÉÌÉ ALT) <ESC>v ÔÁË ÖÅ ÂÕÄÕÔ ÄÏÓÔÕÐÎÙ ÐÏÓÌÅ C-h c. C-h a Hyper Apropos. ÷×ÅÄÉÔÅ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï É Emacs ÐÏËÁÖÅÔ ×ÁÍ ÓÐÉÓÏË ×ÓÅÈ ÆÕÎËÃÉÊ É ÐÅÒÅÍÅÎÎÙÈ, ÉÍÅÎÁ ËÏÔÏÒÙÈ ÓÏÄÅÒÖÁÔ ÜÔÏ - ÓÌÏ×Ï. ëÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ ÞÅÒÅÚ Meta-x, + ÓÌÏ×Ï. ëÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ ÞÅÒÅÚ Meta-x, ÂÕÄÕÔ ÏÔÍÅÞÅÎÙ Ú×ÅÚÄÏÞËÏÊ ÓÌÅ×Á. >> îÁÂÅÒÉÔÅ C-h a file<Return>. @@ -1049,7 +1049,7 @@ C-c. á ÞÔÏÂÙ ×ÒÅÍÅÎÎÏ ×ÙÊÔÉ × ÏÂÏÌÏÞËÕ (shell) É ÐÏÔÏÍ ×ÅÒÎÕÔØÓÑ ÏÂÒÁÔÎÏ, ------- üÔÏÔ ÕÞÅÂÎÉË ÐÒÏÉÚÏÛÅÌ ÉÚ ÄÌÉÎÎÏÊ ÓÅÒÉÉ ÕÞÅÂÎÉËÏ× Emacs, ÎÁÞÁÔÏÊ Ó ÏÄÎÁÖÄÙ -ÎÁÐÉÓÁÎÎÏÇÏ by Stuart Cracraft ÄÌÑ ÏÒÉÇÉÎÁÌØÎÏÇÏ Emacs. +ÎÁÐÉÓÁÎÎÏÇÏ by Stuart Cracraft ÄÌÑ ÏÒÉÇÉÎÁÌØÎÏÇÏ Emacs. üÔÁ ×ÅÒÓÉÑ ÕÞÅÂÎÉËÁ, ËÁË É GNU Emacs, ÚÁÝÉÝÅÎÁ ÐÒÁ×ÁÍÉ ËÏÐÉÒÏ×ÁÎÉÑ (copyrighted), É ÐÒÉÈÏÄÉÔ Ó ÏÇÒÁÎÉÞÅÎÉÑÍÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ËÏÐÉÊ ÓÏ @@ -1075,6 +1075,6 @@ Copyright (c) 1985, 1996 Free Software Foundation ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ! // ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÎÅÔÅÒÐÅÎÉÅÍ ÖÄÕ ÐÏ ÁÄÒÅÓÕ ottalex@beep.ru -// Alex Ott. +// Alex Ott. // âÏÌØÛÏÅ ÓÐÁÓÉÂÏ ÷ÌÁÄÉÍÉÒÕ âÏÒÍÏÔÏ×Õ, ÎÁ ÂÁÚÅ ÐÅÒÅ×ÏÄÁ ËÏÔÏÒÏÇÏ ÂÙÌ ÓÄÅÌÁÎ // ÜÔÏÔ ÐÅÒÅ×ÏÄ diff --git a/etc/TUTORIAL.sk b/etc/TUTORIAL.sk index a0083fbb604..2adfb42f1f0 100644 --- a/etc/TUTORIAL.sk +++ b/etc/TUTORIAL.sk @@ -65,7 +65,7 @@ pou¾itie príkazov C-p, C-b, C-f a C-n. Ka¾dý z týchto príkazov presunie kurzor na obrazovke o jeden riadok alebo ståpec v danom smere. Tu je tabuµka znázoròujúca smer posunu kurzoru vyvolaný týmito ¹tyrmi príkazmi: - + Predchádzajúci riadok, C-p : : @@ -415,7 +415,7 @@ Teraz obnovte naposledy zru¹ený text: >> Stlaète C-y. Potom posuòte kurzor o niekoµko riadkov ni¾¹ie a stlaète C-y znovu. Teraz vidíte, ako je mo¾né kopírova» text. - + Èo keï máte nejaký text, ktorý by ste radi vhodili spä» a potom zru¹íte nieèo iného? C-y by vlo¾ilo posledný zru¹ený text. Ale predchádzajúci text ni je stratený. Mô¾ete ho získa» spä» pou¾itím príkazu M-y. Potom, @@ -833,7 +833,7 @@ vraví, ¾e Emacs sa nacháza v stave, ktorý sa nazýva inkrementálne hµadanie, a èaká, kým mu zadáte, èo chcete hµada». <RET> hµadanie ukonèí. >> Teraz zaènite hµadanie stlaèením C-s. POMALY, písmeno po písmene, pí¹te - slovo 'kurzor'. Po ka¾dom písmene si v¹imnite, èo sa deje s kurzorom. + slovo 'kurzor'. Po ka¾dom písmene si v¹imnite, èo sa deje s kurzorom. Teraz ste vyhµadali "kurzor" prvý krát. >> Stlaète C-s znova, aby ste na¹li ïal¹í výskyt slova "kurzor". >> Teraz ¹tyri krát stlaète <Delback> a pozerajte, ako sa kurzor diff --git a/etc/TUTORIAL.sl b/etc/TUTORIAL.sl index 6054a359437..856605557ab 100644 --- a/etc/TUTORIAL.sl +++ b/etc/TUTORIAL.sl @@ -14,7 +14,7 @@ vedno izpisali s celim imenom, bomo uporabili naslednji okraj¹avi: pritisnemo tipko <chr>. Tipko ESC bomo oznaèevali z <ESC>. Pomembno: Emacs zapustimo z ukazom C-x C-c (dva znaka). -V uèbeniku so vaje, s katerimi preskusite nove ukaze. Oznaèujeta jih +V uèbeniku so vaje, s katerimi preskusite nove ukaze. Oznaèujeta jih znaka ,>>` ob levem robu. Zgled: <<Blank lines inserted here by startup of help-with-tutorial>> [Sredina strani je iz didaktiènih razlogov prazna. Besedilo se nadaljuje spodaj] @@ -129,7 +129,7 @@ deluje podobno, a v nasprotni smeri. Ste opazili paralelo med C-f in C-b na eni strani ter M-f in M-b na drugi? V Emacsu se dostikrat ukazi Meta nana¹ajo na operacije nad -enotami jezika (besede, stavki, odstavki), medtem ko se ukazi Control +enotami jezika (besede, stavki, odstavki), medtem ko se ukazi Control nana¹ajo na operacije, neodvisne od zvrsti besedila (znaki, vrstice ipd.). @@ -372,8 +372,8 @@ ukazov za brisanje: Èrka ,d` je iz angle¹ke besede ,delete` (pobrisati), èrka ,k` pa iz besede ,kill` (pobiti). Ste opazili, da <Delback> in C-d na eni, ter M-<Delback> in M-d na drugi strani nadaljujeta paralelo, ki sta jo zaèela -C-f in M-f (<Delback> pravzaprav ni kontrolni znak, kar pa naj nas ne -moti). C-k in M-k sta v enakem sorodu s C-e in M-e: prvi deluje na +C-f in M-f (<Delback> pravzaprav ni kontrolni znak, kar pa naj nas ne +moti). C-k in M-k sta v enakem sorodu s C-e in M-e: prvi deluje na vrstice, drugi na stavke. Obstaja tudi splo¹en postopek za brisanje kateregakoli dela delovnega @@ -494,7 +494,7 @@ C-y. Preklic ukaza pa velja za eno in drugo. Da bi bile spremembe v besedilu trajne, morate besedilo shraniti v datoteko. V nasprotnem primeru jih boste za vedno izgubili tisti hip, ko boste zapustili Emacs. Besedilo postavimo v datoteko tako, da -na disku ,,poi¹èemo`` (angl. find) datoteko, preden zaènemo tipkati +na disku ,,poi¹èemo`` (angl. find) datoteko, preden zaènemo tipkati (pravimo tudi, da ,,obi¹èemo`` datoteko). Poiskati datoteko pomeni, da v Emacsu vidimo vsebino datoteke. To je @@ -646,7 +646,7 @@ podroèje C-x s vpra¹a, èe ga ¾elite shraniti. * RAZ©IRJEN NABOR UKAZOV ------------------------ -©e mnogo, mnogo je ukazov Emacsa, ki bi zaslu¾ili, da jih obesimo na +©e mnogo, mnogo je ukazov Emacsa, ki bi zaslu¾ili, da jih obesimo na razne kontrolne in meta znake. Emacs se temu izogne z ukazom X (iz angl. eXtend - raz¹iriti), ki uvede ukaz iz raz¹irjenega nabora. Dveh vrst je: @@ -705,7 +705,7 @@ Ukaz replace-string potrebuje dva argumenta -- niz, ki ga ¾elite zamenjati, in niz, s katerim bi radi zamenjali prvega. Vsakega posebej vnesete in zakljuèite s pritiskom na tipko Return. ->> Premaknite kazalèek na prazno vrstico dve vrstici pod to, zatem +>> Premaknite kazalèek na prazno vrstico dve vrstici pod to, zatem vtipkajte M-x repl s<Return>zamenjala<Return>spremenila<Return>. Opazite, kako se je ta vrstica zamenjala? Vse besede @@ -729,7 +729,7 @@ datoteka ni veè potrebna, in Emacs jo pobri¹e. shranjeno besedilo tako, da normalno poi¹èete datoteko (pravo ime datoteke, ne ime avtomatièno shranjene datoteke), zatem pa vtipkate M-x recover file<Return>. Ko vas vpra¹a za potrditev, vtipkajte yes<Return> -za nadaljevanje in povrnitev avtomatièno shranjenenih podatkov. +za nadaljevanje in povrnitev avtomatièno shranjenenih podatkov. * ODZIVNO PODROÈJE @@ -947,14 +947,14 @@ sicer tisto, v katerem sem zdaj.``) Seveda ni nujno, da obe okni ka¾eta isto delovno podroèje. Èe v enem oknu izvedete C-x C-f in poi¹èete novo datoteko, se vsebina drugega okna ne spremeni. V vsakem oknu lahko neodvisno obdelujete drugo -datoteko. +datoteko. Pa ¹e ena pot, kako v dveh oknih prika¾ete dve razlièni datoteki: >> Vtipkajte C-x 4 C-f, in na pozivnik vtipkajte ime ene va¹ih datotek. Konèajte z <Return>. Odpre se ¹e eno okno in izbrana datoteka se pojavi v drugem oknu. Tudi kazalèek se preseli v drugo - okno. + okno. >> Vtipkajte C-x o, da se vrnete nazaj v zgornje okno, in C-x 1, da zaprete spodnje okno. @@ -1025,12 +1025,12 @@ To odpre novo okno in v njem prika¾e dokumentacijo o funkciji, obenem z njenim imenom. Ko ste opravili, vtipkajte C-x 1, da se znebite okna z pomoèjo. Tega seveda ni potrebno napraviti takoj, ampak lahko urejate, medtem ko imate odprto okno s pomoèjo, in ga zaprete, ko ste -konèali. +konèali. Sledi ¹e nekaj uporabnih mo¾nosti, ki jih ponuja pomoè: C-h f Opi¹i funkcijo. Kot argument morate podati ime - funkcije. + funkcije. >> Poskusite C-h f previous-line<Return>. To izpi¹e vse podatke, ki jih ima Emacs o funkciji, ki izvede ukaz C-p. @@ -1050,14 +1050,14 @@ spremenljivke. To odpre novo okno, v katerem so vsa dolga imena ukazov, ki vsebujejo ,,file`` v imenu. Izvedete jih lahko z M-x. Pri nekaterih se izpi¹e tudi kratek ukaz, npr. C-x C-f ali C-x C-w pri ukazih find-file in -write-file. +write-file. >> Pritisnite C-M-v, da se sprehajate po oknu s pomoèjo. Poskusite - nekajkrat. + nekajkrat. >> Vtipkajte C-x 1, da zaprete okno s pomoèjo. - C-h i Priroèniki z navodili za uporabo (tkim. datoteke + C-h i Priroèniki z navodili za uporabo (tkim. datoteke "info"). Ta ukaz vas prestavi v posebno delovno podroèje, imenovano "info". V njem lahko prebirate priroènike za programe, ki so name¹èeni v sistemu. Z @@ -1097,8 +1097,8 @@ Priroènik opisuje tudi mnoge druge mo¾nosti Emacsa. ----------- Zapomnite si, da Emacs zapustite z ukazom C-x C-c. Èe bi radi samo -zaèasno skoèili v ukazno lupino in se kasneje vrnili v Emacs, pa -storite to z ukazom C-z. +zaèasno skoèili v ukazno lupino in se kasneje vrnili v Emacs, pa +storite to z ukazom C-z. Ta uèbenik je napisan z namenom, da bi bil razumljiv vsem novincem v Emacsu. Èe se vam kaj ne zdi jasno napisano, ne valite krivde nase - @@ -1122,7 +1122,7 @@ Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation avtorstvu in to dovoljenje, ter da distributer dovoljuje prejemniku nadaljnje raz¹irjanje pod pogoji, navedenimi v tem dovoljenju. - Pod pogoji iz prej¹njega odstavka je dovoljeno raz¹irjati + Pod pogoji iz prej¹njega odstavka je dovoljeno raz¹irjati spremenjene verzije tega spisa ali njegovih delov, èe je jasno oznaèeno, kdo je nazadnje vnesel spremembe. diff --git a/etc/TUTORIAL.sv b/etc/TUTORIAL.sv index a3fe897a1d3..6cda75bcef6 100644 --- a/etc/TUTORIAL.sv +++ b/etc/TUTORIAL.sv @@ -62,7 +62,7 @@ flyttar markören en rad eller en kolumn i en bestämd riktning på skärmen. Här visas dessa fyra kommandon och i vilken riktning de flyttar markören: - + Föregående rad, C-p : : @@ -361,7 +361,7 @@ Emacs och att rätta fel. Du kan radera ord och rader också. Här är en C-k raderar från markören till slutet av raden M-k raderar till slutet av stycket - + Lägg märke till att <Delete> och C-d kontra M-<Delete> och M-d följer mönstret som började med C-f och M-f. (<Delete> är inte precis ett kontrolltecken men låt oss inte bry oss om det.) C-k och M-k @@ -444,7 +444,7 @@ till startpunkten (texten som sist blev borttagen). M-y och se vad du får. Fortsätt med detta tills du får tillbaka den första raden igen och sedan några gånger till. Om du vill kan du prova med positiva och negativa argument till M-y. - + * ÅNGRA ------- @@ -797,7 +797,7 @@ genom ett numeriskt argument. att använda C-x f en gång till. Om du gör förändringar mitt i en rad så kommer inte sidoläget Auto -Fill att kunna omformattera raderna för dig. +Fill att kunna omformattera raderna för dig. För att göra detta kan du trycka M-q med markören inne i det avsnittet du önskar att omformatera. @@ -885,7 +885,7 @@ skärmen samtidig. >> Skriv C-x o (o för other) för att flytta markören till det nedre fönstret. ->> Använd C-v och M-v i det nedre fönstret för att flytta upp +>> Använd C-v och M-v i det nedre fönstret för att flytta upp och ned i texten. Fortsätt att läsa den här texten i det övre fönstret. diff --git a/etc/TUTORIAL.th b/etc/TUTORIAL.th index bda821de412..4f33ad8d032 100644 --- a/etc/TUTORIAL.th +++ b/etc/TUTORIAL.th @@ -1,967 +1,967 @@ -,TJ'G9(B0,TET(B1,T"(B0,TJT(B1,T7(B0,T8Tl(B1 ,T>(B.,TH(B. 2528 ,Tb4B:(B0,TCT(B10,TIQ(B1,T7?(B0,TCU(B1,T+M?(B0,T5l(B1,TaG(B0,TCl(B1,T?RG(B0,T9l(B1,T`4(B0,T*Q(B1,T9(B (Free Software -Foundation, Inc); ,T!(B0,TCX(B1,T3R(B0,THV(B1,T!IR`(B0,T'Wh(B1,TM9d"5M9(B0,T7i(B1,TRB:7(B. -0,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,THV(B1,T!IR(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1 (Emacs tutorial) ,TM(B0,TBYh(B1,Tc9"3P(B0,T9Ui(B1. - -,Tb4B(B0,T7Qh(B1,TGd;$S(B0,TJQh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B1 (Emacs) ,T(Pc(B0,T*i(B10,T$Yh(B10,T!Q(B1,T:(B0,T;Xh(B1,TA(B CONTROL (,T:R'$(B0,TCQi(B1,T'MR(`(B0,T;g(B1,T9(B0,T;Xh(B1,TA(B0,T7Uh(B10,TAU(B1 -0,TJQ(B1,T-(B0,TEQ(B1,T!I(B0,T3l(B1 CTRL ,TK(B0,TCW(B1,TM(B CTL) ,TK(B0,TCW(B1,TM(B 0,T;Xh(B1,TA(B META (,T:R'$(B0,TCQi(B1,T'MR(`(B0,T;g(B1,T9(B0,T;Xh(B1,TA(B0,T7Uh(B10,TAU(B10,TJQ(B1,T-(B0,TEQ(B1,T!I(B0,T3l(B1 EDIT ,TK(B0,TCW(B1,TM(B -ALT). ,Ta79(B0,T7Uh(B1,T(Pc(B0,T*i(B1,T$S`(B0,T5g(B1,TAc9!RCM(B0,T8T(B1,T:RB(B, ,T`CR(Pc(B0,T*i(B10,T5Q(B1,TG(B0,TBh(B1,TM(B0,T4Q(B1,T'(B0,T5h(B1,TMd;(B0,T9Ui(B1: - - C-<chr> ,TKARB(B0,T6V(B1,T'c(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B CONTROL ,TaEP(B0,T;Xh(B1,TA(B0,TMQ(B1,T!IC(B <chr> ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T9(B. - 0,T4Q(B1,T'(B0,T9Qi(B1,T9(B C-f ,T(PKARB(B0,T6V(B1,T'c(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B CONTROL ,TaEP(B0,T;Xh(B1,TA(B f ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T9(B. - M-<chr> ,TKARB(B0,T6V(B1,T'c(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B META ,TK(B0,TCW(B1,TM(B EDIT ,TK(B0,TCW(B1,TM(B ALT ,TaEP(B0,T;Xh(B1,TA(B0,TMQ(B1,T!IC(B <chr> - ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T9(B. ,Tc9!C(B0,T3U(B10,T7Uh(B1,Td(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META, EDIT ,TK(B0,TCW(B1,TM(B ALT ,Tc(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B - ESC ,Ta(B0,TEi(B1,TG;(B0,TEh(B1,TMB(B, ,Ta(B0,TEi(B1,TG!4(B0,T;Xh(B1,TA(B <chr>. ,T`CRc(B0,T*i(B10,TJQ(B1,T-(B0,TEQ(B1,T!I(B0,T3l(B1 <ESC> ,Ta79(B0,T;Xh(B1,TA(B ESC. - -,TKARB`K(B0,T5X(B1: ,Tc9!C(B0,T3U(B10,T7Uh(B10,T5i(B1,TM'!RC`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1, ,Tc(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B C-x C-c. (,TJM'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B.) -0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B ">>" 0,T7Uh(B1,T;CR!/M(B0,TBYh(B1,T7R'"M:(B0,T+i(B1,TRB(B0,TAW(B1,TM`(B0,T;g(B1,T9!RCa9P9Sc(B0,TKi(B10,T7h(B1,TR9EM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B: +,TJ'G90ET1"0JT1708Tl1(B ,T>(B.,TH(B. 2528 ,Tb4B:0CT10IQ17?0CU1+M?05l1aG0Cl1?RG09l1`40*Q19(B (Free Software +Foundation, Inc); ,T!0CX13R0HV1!IR`0'Wh1M9d"5M907i1RB:7(B. +0,T7h1R9!S0EQ1'0HV1!IR0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B (Emacs tutorial) ,TM0BYh1c9"3P09Ui1(B. + +,Tb4B07Qh1Gd;$S0JQh1'"M'0MU1aA!0Jl1(B (Emacs) ,T(Pc0*i10$Yh10!Q1:0;Xh1A(B CONTROL (,T:R'$0CQi1'MR(`0;g190;Xh1A07Uh10AU1(B +0,TJQ1-0EQ1!I03l1(B CTRL ,TK0CW1M(B CTL) ,TK0CW1M(B 0,T;Xh1A(B META (,T:R'$0CQi1'MR(`0;g190;Xh1A07Uh10AU10JQ1-0EQ1!I03l1(B EDIT ,TK0CW1M(B +ALT). ,Ta7907Uh1(Pc0*i1$S`05g1Ac9!RCM08T1:RB(B, ,T`CR(Pc0*i105Q1G0Bh1M04Q1'05h1Md;09Ui1(B: + + C-<chr> ,TKARB06V1'c0Ki1!40;Xh1A(B CONTROL ,TaEP0;Xh1A0MQ1!IC(B <chr> ,T>0Ci1MA0!Q19(B. + 0,T4Q1'09Qi19(B C-f ,T(PKARB06V1'c0Ki1!40;Xh1A(B CONTROL ,TaEP0;Xh1A(B f ,T>0Ci1MA0!Q19(B. + M-<chr> ,TKARB06V1'c0Ki1!40;Xh1A(B META ,TK0CW1M(B EDIT ,TK0CW1M(B ALT ,TaEP0;Xh1A0MQ1!IC(B <chr> + ,T>0Ci1MA0!Q19(B. ,Tc9!C03U107Uh1d0Ah10AU10;Xh1A(B META, EDIT ,TK0CW1M(B ALT ,Tc0Ki1!40;Xh1A(B + ESC ,Ta0Ei1G;0Eh1MB(B, ,Ta0Ei1G!40;Xh1A(B <chr>. ,T`CRc0*i10JQ1-0EQ1!I03l1(B <ESC> ,Ta790;Xh1A(B ESC. + +,TKARB`K05X1(B: ,Tc9!C03U107Uh105i1M'!RC`0ET1!c0*i10MU1aA!0Jl1(B, ,Tc0Ki1!40;Xh1A(B C-x C-c. (,TJM'05Q1G0MQ1!IC(B.) +0,T5Q1G0MQ1!IC(B ">>" 0,T7Uh1;CR!/M0BYh17R'"M:0+i1RB0AW1M`0;g19!RCa9P9Sc0Ki107h1R9EM'c0*i1$S0JQh1'(B. 0,T5Q1GM0Bh1R'`0*h19(B: <<Blank lines inserted here by startup of help-with-tutorial>> ->> ,T!4(B0,T;Xh(B1,TA(B C-v (0,T4Y(B1,TK(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;(B) ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'K(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;(B. - (,TEM'7S(B0,T4Y(B1,Tb4B!RC!4(B0,T;Xh(B1,TA(B CONTROL ,TaEP(B0,T;Xh(B1,TA(B0,TMQ(B1,T!IC(B v ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T9(B). - ,T(R!(B0,T9Ui(B1,Td;(B, 0,T7h(B1,TR9$GC(PEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T4Y(B1,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,TMh(B1,TR9K(B0,T9i(B1,TR(M(B0,T9Ui(B1,T(:a(B0,TEi(B1,TG(B. +>> ,T!40;Xh1A(B C-v (0,T4Y1K09i1R(M06Q14d;(B) ,T`0>Wh1M07Uh1(P`$0EWh1M9d;0BQ1'K09i1R(M06Q14d;(B. + (,TEM'7S04Y1b4B!RC!40;Xh1A(B CONTROL ,TaEP0;Xh1A0MQ1!IC(B v ,T>0Ci1MA0!Q19(B). + ,T(R!09Ui1d;(B, 0,T7h1R9$GC(PEM'c0*i1$S0JQh1'09Ui104Y1`0AWh1M07h1R90Mh1R9K09i1R(M09Ui1(:a0Ei1G(B. -0,T7h(B1,TR9(P(B0,TJQ(B1,T'`!5`(B0,TKg(B1,T9d(B0,T4i(B10,TGh(B1,TRJM':CC(B0,T7Q(B1,T4"M'K(B0,T9i(B1,TR(M(B0,T7Uh(B1,Ta(B0,TEi(B1,TG(P(B0,TBQ(B1,T'$';CR!/c(B0,TKi(B1,T`(B0,TKg(B1,T9:9K(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;(B; 0,T9Uh(B1 -,T`(B0,T;g(B1,T9!RC(B0,T*h(B1,TGBc(B0,TKi(B10,T7h(B1,TR9JRARC6(B0,TMh(B1,TR9K(B0,T9i(B1,TR(Md(B0,T4i(B1,TM(B0,TBh(B1,TR'(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'(B. +0,T7h1R9(P0JQ1'`!5`0Kg19d04i10Gh1RJM':CC07Q14"M'K09i1R(M07Uh1a0Ei1G(P0BQ1'$';CR!/c0Ki1`0Kg19:9K09i1R(M06Q14d;(B; 0,T9Uh1(B +,T`0;g19!RC0*h1GBc0Ki107h1R9JRARC60Mh1R9K09i1R(Md04i1M0Bh1R'05h1M`09Wh1M'(B. -0,TJTh(B1,T'aC!(B0,T7Uh(B10,T7h(B1,TR9(S`(B0,T;g(B1,T9(B0,T5i(B1,TM'(B0,TCYi(B10,T$W(B1,TM!RC`$(B0,TEWh(B1,TM95SaK(B0,T9h(B1,T'd;ARc9(B0,T"i(B1,TM$GRA(B. ,T"3P(B0,T9Ui(B10,T7h(B1,TR97CR:(B -0,TGT(B10,T8U(B1,T!RC`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'K(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;a(B0,TEi(B1,TG(B0,T4i(B1,TGB(B0,T;Xh(B1,TA(B C-v. ,Tc9!RC(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:d;K(B0,T9Vh(B1,T'K(B0,T9i(B1,TR(M(B, ,T!4(B0,T;Xh(B1,TA(B -M-v (,T!4(B0,T;Xh(B1,TA(B META ,TaEP(B0,T;Xh(B1,TA(B v, ,TK(B0,TCW(B1,TM!4(B0,T;Xh(B1,TA(B <ESC>v 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META, EDIT, ,TK(B0,TCW(B1,TM(B ALT). +0,TJTh1'aC!07Uh107h1R9(S`0;g1905i1M'0CYi10$W1M!RC`$0EWh1M95SaK09h1'd;ARc90"i1M$GRA(B. ,T"3P09Ui107h1R97CR:(B +0,TGT108U1!RC`$0EWh1M9d;0BQ1'K09i1R(M06Q14d;a0Ei1G04i1GB0;Xh1A(B C-v. ,Tc9!RC07Uh1(P`$0EWh1M9!0EQ1:d;K09Vh1'K09i1R(M(B, ,T!40;Xh1A(B +M-v (,T!40;Xh1A(B META ,TaEP0;Xh1A(B v, ,TK0CW1M!40;Xh1A(B <ESC>v 0,T6i1R07h1R9d0Ah10AU10;Xh1A(B META, EDIT, ,TK0CW1M(B ALT). ->> ,TEM'!4(B0,T;Xh(B1,TA(B M-v ,TaEP!4(B0,T;Xh(B1,TA(B C-v 0,T4Y(B1,T!RC7S'R9(B0,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B. +>> ,TEM'!40;Xh1A(B M-v ,TaEP!40;Xh1A(B C-v 0,T4Y1!RC7S'R90JQ1!JM'JRA$0CQi1'(B. -* ,TJ(B0,TCX(B1,T;(B +* ,TJ0CX1;(B ----- -,T$S(B0,TJQh(B1,T'(B0,T5h(B1,TMd;(B0,T9Ui(B1,Tc(B0,T*i(B1,T`(B0,TAWh(B1,TM(B0,T5i(B1,TM'!RC(B0,T4Y(B1,TK(B0,T9i(B1,TR(M(B0,T5h(B1,TR'f(B: +,T$S0JQh1'05h1Md;09Ui1c0*i1`0AWh1M05i1M'!RC04Y1K09i1R(M05h1R'f(B: - C-v ,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'K(B0,T9i(B1,TR(M(B0,T6Q(B1,T4d;K(B0,T9Vh(B1,T'K(B0,T9i(B1,TR(M(B - M-v ,T`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:d;K(B0,T9Vh(B1,T'K(B0,T9i(B1,TR(M(B - C-l ,TE:K(B0,T9i(B1,TR(M(B ,Ta(B0,TEi(B1,TGaJ4'<EK(B0,T9i(B1,TR(McK(B0,TAh(B1, ,T>(B0,TCi(B1,TMA(B0,T7Qi(B1,T'(B0,TBi(B1,TRB5SaK(B0,T9h(B1,T'"M'(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,TAU(B1 - ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1 (cursor) ,T;CR!/M(B0,TBYh(B1,Td;aJ4'd(B0,TGi(B1,T!ER'(M(B. - (,T$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T$W(B1,TM(B CONTROL-L, ,Td(B0,TAh(B1,Tc(B0,T*h(B1 CONTROL-1.) + C-v ,T`$0EWh1M9d;0BQ1'K09i1R(M06Q14d;K09Vh1'K09i1R(M(B + M-v ,T`$0EWh1M9!0EQ1:d;K09Vh1'K09i1R(M(B + C-l ,TE:K09i1R(M(B ,Ta0Ei1GaJ4'<EK09i1R(McK0Ah1(B, ,T>0Ci1MA07Qi1'0Bi1RB5SaK09h1'"M'0"i1M$GRA07Uh10AU1(B + ,T`$M0Cl1`+M0Cl1(B (cursor) ,T;CR!/M0BYh1d;aJ4'd0Gi1!ER'(M(B. + (,T$S0JQh1'09Ui10$W1M(B CONTROL-L, ,Td0Ah1c0*h1(B CONTROL-1.) ->> 0,TJQ(B1,T'`!55SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B1, ,TaEP(B0,TJQ(B1,T'`!5(B0,T4Y(B10,TGh(B1,TR(B0,TAU(B10,T"i(B1,TM$GRAMPdCM(B0,TBYh(B1,Tc!(B0,TEi(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1. - ,Ta(B0,TEi(B1,TG!4(B0,T;Xh(B1,TA(B C-l. - 0,TJQ(B1,T'`!5(B0,T4Y(B1,T5SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,TMU(B1,T!$(B0,TCQi(B1,T'(B ,T(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TAU(B10,T"i(B1,TM$GRA`(B0,T4T(B1,TA;CR!/M(B0,TBYh(B1,Tc!(B0,TEi(B1,Tf(B 0,T!Q(B1,T:`$M(B0,TCl(B1,T`+M(B0,TCl(B1. +>> 0,TJQ1'`!55SaK09h1'"M'`$M0Cl1`+M0Cl1(B, ,TaEP0JQ1'`!504Y10Gh1R0AU10"i1M$GRAMPdCM0BYh1c!0Ei1`$M0Cl1`+M0Cl1(B. + ,Ta0Ei1G!40;Xh1A(B C-l. + 0,TJQ1'`!504Y15SaK09h1'"M'`$M0Cl1`+M0Cl10MU1!$0CQi1'(B ,T(P`0Kg190Gh1R0AU10"i1M$GRA`04T1A;CR!/M0BYh1c!0Ei1f(B 0,T!Q1:`$M0Cl1`+M0Cl1(B. -* ,T!RC$G:(B0,T$X(B1,TA`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`(B0,T:Wi(B1,TM'(B0,T5i(B1,T9(B +* ,T!RC$G:0$X1A`$M0Cl1`+M0Cl1`0:Wi1M'05i19(B ------------------------ -,T!RC`$(B0,TEWh(B1,TM9K(B0,T9i(B1,TR(Md;AR(B0,T9Qi(B1,T9`(B0,T;g(B1,T9(B0,TJTh(B1,T'(S`(B0,T;g(B1,T9(B ,Ta(B0,T5h(B10,T7h(B1,TR9(P7SM(B0,TBh(B1,TR'dC(B0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'(B -,T5SaK(B0,T9h(B1,T'(B0,T7Uh(B10,T5i(B1,TM'!RC@RBc9(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,T;CR!/M(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B? +,T!RC`$0EWh1M9K09i1R(Md;AR09Qi19`0;g190JTh1'(S`0;g19(B ,Ta05h107h1R9(P7SM0Bh1R'dC06i1R07h1R905i1M'!RC(P`$0EWh1M9d;0BQ1'(B +,T5SaK09h1'07Uh105i1M'!RC@RBc90"i1M$GRA07Uh1;CR!/M0BYh1:9K09i1R(M(B? -0,TAU(B1,TKERB(B0,TGT(B10,T8U(B10,T7Uh(B1,TJRARC6(P7Sd(B0,T4i(B1. 0,TGT(B10,T8U(B10,T7Uh(B10,T>Wi(B1,T9(B0,T7Uh(B10,TJX(B1,T4(B0,T$W(B1,TM!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-p, C-b, C-f, ,TaEP(B C-n. -,Ta(B0,T5h(B1,TEP$S(B0,TJQh(B1,T'(P`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;K(B0,T9Vh(B1,T':CC(B0,T7Q(B1,T4K(B0,TCW(B1,TMK(B0,T9Vh(B1,T'$M(B0,TEQ(B1,TA(B0,T9l(B1,Tc9(B0,T7T(B1,TH7R'c4(B0,T7T(B1,TH7R'K(B0,T9Vh(B1,T':9K(B0,T9i(B1,TR(M(B. -0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T95RCR'aJ4'$S(B0,TJQh(B1,T'(B0,T7Qi(B1,T'(B0,TJUh(B1 ,TaEP(B0,T7T(B1,TH7R'(B0,T7Uh(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`$(B0,TEWh(B1,TM9d;(B: +0,TAU1KERB0GT108U107Uh1JRARC6(P7Sd04i1(B. 0,TGT108U107Uh10>Wi1907Uh10JX140$W1M!RCc0*i1$S0JQh1'(B C-p, C-b, C-f, ,TaEP(B C-n. +,Ta05h1EP$S0JQh1'(P`$0EWh1M9`$M0Cl1`+M0Cl1d;K09Vh1':CC07Q14K0CW1MK09Vh1'$M0EQ1A09l1c907T1H7R'c407T1H7R'K09Vh1':9K09i1R(M(B. +0,T5h1Md;09Ui1`0;g195RCR'aJ4'$S0JQh1'07Qi1'0JUh1(B ,TaEP07T1H7R'07Uh1`$M0Cl1`+M0Cl1`$0EWh1M9d;(B: - ,T:CC(B0,T7Q(B1,T4(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B, C-p + ,T:CC07Q140!h1M9K09i1R(B, C-p : : - 0,TBi(B1,TM9!(B0,TEQ(B1,T:(B, C-b .... ,T5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B .... 0,T"i(B1,TR'K(B0,T9i(B1,TR(B, C-f + 0,TBi1M9!0EQ1:(B, C-b .... ,T5SaK09h1'`$M0Cl1`+M0Cl10;Q1(0(X10:Q19(B .... 0,T"i1R'K09i1R(B, C-f : : - ,T:CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;(B, C-n + ,T:CC07Q1406Q14d;(B, C-n ->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,T7Uh(B10,T!Vh(B1,T'!ER'"M'(B0,T<Q(B1,T'(B0,T"i(B1,TR':9b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-n ,TK(B0,TCW(B1,TM(B C-p. ,Ta(B0,TEi(B1,TG!4(B0,T;Xh(B1,TA(B - C-l ,T`(B0,T>Wh(B1,TMc(B0,TKi(B10,T<Q(B1,T';CR!/M(B0,TBYh(B1,T!ER'K(B0,T9i(B1,TR(M(B. +>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;07Uh10!Vh1'!ER'"M'0<Q1'0"i1R':9b4Bc0*i1$S0JQh1'(B C-n ,TK0CW1M(B C-p. ,Ta0Ei1G!40;Xh1A(B + C-l ,T`0>Wh1Mc0Ki10<Q1';CR!/M0BYh1!ER'K09i1R(M(B. -0,T7h(B1,TR9MR((P(S$S(B0,TJQh(B1,T'd(B0,T4i(B10,T'h(B1,TRB(B0,T"Vi(B1,T9b4B(B0,TJQ(B1,T'`!5(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B1,Tc(B0,T*i(B1: p ,TJSK(B0,TCQ(B1,T:(B previous (0,T!h(B1,TM9K(B0,T9i(B1,TR(B), n -,TJSK(B0,TCQ(B1,T:(B next (0,T6Q(B1,T4d;(B), b ,TJSK(B0,TCQ(B1,T:(B backward (0,TBi(B1,TM9!(B0,TEQ(B1,T:(B), ,TaEP(B f ,TJSK(B0,TCQ(B1,T:(B forward -(0,T"i(B1,TR'K(B0,T9i(B1,TR(B). ,T`K(B0,TEh(B1,TR(B0,T9Ui(B10,T$W(B1,TM`(B0,T:Wi(B1,TM'(B0,T5i(B1,T9"M'$S(B0,TJQh(B1,T'c9!RC$G:(B0,T$X(B1,TA5SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B1, ,TaEP(B0,T7h(B1,TR9(B -,T(P(B0,T5i(B1,TM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B10,T:h(B1,TMB$(B0,TCQi(B1,T'(B, ,T)P(B0,T9Qi(B1,T9(B0,T(V(B1,T'`(B0,T;g(B1,T9!RC(B0,T4U(B10,T7Uh(B1,T(P(S$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,Td(B0,TGi(B1. +0,T7h1R9MR((P(S$S0JQh1'd04i10'h1RB0"Vi19b4B0JQ1'`!505Q1G0MQ1!IC07Uh1c0*i1(B: p ,TJSK0CQ1:(B previous (0,T!h1M9K09i1R(B), n +,TJSK0CQ1:(B next (0,T6Q14d;(B), b ,TJSK0CQ1:(B backward (0,TBi1M9!0EQ1:(B), ,TaEP(B f ,TJSK0CQ1:(B forward +(0,T"i1R'K09i1R(B). ,T`K0Eh1R09Ui10$W1M`0:Wi1M'05i19"M'$S0JQh1'c9!RC$G:0$X1A5SaK09h1'"M'`$M0Cl1`+M0Cl1(B, ,TaEP07h1R9(B +,T(P05i1M'c0*i1$S0JQh1'`K0Eh1R09Ui10:h1MB$0CQi1'(B, ,T)P09Qi190(V1'`0;g19!RC04U107Uh1(P(S$S0JQh1'`K0Eh1R09Ui1d0Gi1(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-n 0,T4Y(B1,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TE'AR(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T9Ui(B1. +>> ,TEM'c0*i1$S0JQh1'(B C-n 0,T4Y1`0>Wh1M07Uh1(P`$0EWh1M9`$M0Cl1`+M0Cl1E'AR0BQ1':CC07Q1409Ui1(B. ->> ,TEM'`$(B0,TEWh(B1,TM9`(B0,T"i(B1,TRd;c9:CC(B0,T7Q(B1,T4b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-f ,TaEP`$(B0,TEWh(B1,TM9(B0,T"Vi(B1,T9(B0,T"i(B1,TR':9b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-p. - 0,TJQ(B1,T'`!5(B0,T4Y(B10,TGh(B1,TR`(B0,T!T(B1,T4MPdC(B0,T"Vi(B1,T9(B0,T6i(B1,TRc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-p ,T`(B0,TAWh(B1,TM5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T;CR!/M(B0,TBYh(B10,T7Uh(B1,T5C'!ER'(B - ,T"M':CC(B0,T7Q(B1,T4(B. +>> ,TEM'`$0EWh1M9`0"i1Rd;c9:CC07Q14b4Bc0*i1$S0JQh1'(B C-f ,TaEP`$0EWh1M90"Vi190"i1R':9b4Bc0*i1$S0JQh1'(B C-p. + 0,TJQ1'`!504Y10Gh1R`0!T14MPdC0"Vi1906i1Rc0*i1$S0JQh1'(B C-p ,T`0AWh1M5SaK09h1'`$M0Cl1`+M0Cl1;CR!/M0BYh107Uh15C'!ER'(B + ,T"M':CC07Q14(B. -,Ta(B0,T5h(B1,TEP:CC(B0,T7Q(B1,T4(B0,TJTi(B1,T9(B0,TJX(B1,T4(B0,T4i(B1,TGB(B0,TMQ(B1,T!"CP(B Newline, 0,T+Vh(B1,T'c(B0,T*i(B1,TaJ4'"M:`"5CPK(B0,TGh(B1,TR':CC(B0,T7Q(B1,T4(B. 0,T7Uh(B10,T7i(B1,TRB(B0,TJX(B1,T4"M'(B -,Td?(B0,TEl(B10,T!g(B1,T(P(B0,TAU(B10,TMQ(B1,T!"CP(B Newline ,T`(B0,T*h(B1,T9(B0,T!Q(B1,T9(B (,Ta(B0,T5h(B1,TJSK(B0,TCQ(B1,T:(B0,TMU(B1,TaA!(B0,TJl(B1,Ta(B0,TEi(B1,TGd(B0,TAh(B1,T(S`(B0,T;g(B1,T9(B). +,Ta05h1EP:CC07Q140JTi190JX1404i1GB0MQ1!"CP(B Newline, 0,T+Vh1'c0*i1aJ4'"M:`"5CPK0Gh1R':CC07Q14(B. 0,T7Uh107i1RB0JX14"M'(B +,Td?0El10!g1(P0AU10MQ1!"CP(B Newline ,T`0*h190!Q19(B (,Ta05h1JSK0CQ1:0MU1aA!0Jl1a0Ei1Gd0Ah1(S`0;g19(B). ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-b 0,T7Uh(B1,T5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M':CC(B0,T7Q(B1,T4(B0,T4Y(B1. ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B - 0,T7i(B1,TRB(B0,TJX(B1,T4"M':CC(B0,T7Q(B1,T4(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9`>CRP(B0,TGh(B1,TR`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td(B0,T4i(B1,T`$(B0,TEWh(B1,TM9(B0,T"i(B1,TRA(B0,TMQ(B1,T!"CP(B Newline ,Td;(B. +>> ,TEM'c0*i1$S0JQh1'(B C-b 0,T7Uh15SaK09h1'`0CTh1A05i19"M':CC07Q1404Y1(B. ,T`$M0Cl1`+M0Cl1(P`$0EWh1M9d;0BQ1'5SaK09h1'(B + 0,T7i1RB0JX14"M':CC07Q140!h1M9K09i1R(B. 0,T9Uh1`0;g19`>CRP0Gh1R`$M0Cl1`+M0Cl1d04i1`$0EWh1M90"i1RA0MQ1!"CP(B Newline ,Td;(B. -,T$S(B0,TJQh(B1,T'(B C-f ,TJRARC6`$(B0,TEWh(B1,TM9(B0,T"i(B1,TRA(B0,TMQ(B1,T!"CP(B Newline ,Td(B0,T4i(B1,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B C-b. +,T$S0JQh1'(B C-f ,TJRARC6`$0EWh1M90"i1RA0MQ1!"CP(B Newline ,Td04i1`0*h19`04U1BG0!Q1:$S0JQh1'(B C-b. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-b 0,T4Y(B10,TMU(B1,T!(B0,TJQ(B1,T!K(B0,T9h(B1,TMB(B, 0,T7h(B1,TR9(PJRARC6`(B0,T"i(B1,TRc(!RC`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td(B0,T4i(B10,T4U(B10,T"Vi(B1,T9(B. - ,Ta(B0,TEi(B1,TGEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-f ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB(B0,TJX(B1,T4"M':CC(B0,T7Q(B1,T4(B. - ,Ta(B0,TEi(B1,TGEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-f 0,TMU(B1,T!(B0,TJQ(B1,T!$(B0,TCQi(B1,T'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;(B. +>> ,TEM'c0*i1$S0JQh1'(B C-b 0,T4Y10MU1!0JQ1!K09h1MB(B, 0,T7h1R9(PJRARC6`0"i1Rc(!RC`$0EWh1M9`$M0Cl1`+M0Cl1d04i104U10"Vi19(B. + ,Ta0Ei1GEM'c0*i1$S0JQh1'(B C-f ,T`0>Wh1M07Uh1(P`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB0JX14"M':CC07Q14(B. + ,Ta0Ei1GEM'c0*i1$S0JQh1'(B C-f 0,TMU1!0JQ1!$0CQi1'`0>Wh1M07Uh1(P`$0EWh1M9d;0BQ1':CC07Q1406Q14d;(B. -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9`$(B0,TEWh(B1,TM9(B0,T<h(B1,TR95SaK(B0,T9h(B1,T':9(B0,TJX(B1,T4K(B0,TCW(B1,TM(B0,T7i(B1,TRB(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B, 0,T"i(B1,TM$GRA(B0,T6Q(B1,T4(R!:CC(B0,T7Q(B1,T4(B0,T7Uh(B1,TM(B0,TBYh(B10,T7Uh(B1 -,T"M:(B0,T9Qi(B1,T9(P"(B0,TBQ(B1,T:`(B0,T"i(B1,TRAR;CR!/M(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B. 0,T9Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B ",T!RC`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B (scrolling)". 0,T9Uh(B1 -,T`(B0,T;g(B1,T9!RC7Sc(B0,TKi(B10,TMU(B1,TaA!(B0,TJl(B1,TJRARC6`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7Uh(B10,T5i(B1,TM'!RC:9(B0,T"i(B1,TM$GRAd(B0,T4i(B1,Tb4B(B -,Td(B0,TAh(B1,T`$(B0,TEWh(B1,TM9MM!9M!K(B0,T9i(B1,TR(M(B. +,T`0AWh1M07h1R9`$0EWh1M90<h1R95SaK09h1':90JX14K0CW1M07i1RB0JX14"M'K09i1R(M(B, 0,T"i1M$GRA06Q14(R!:CC07Q1407Uh1M0BYh107Uh1(B +,T"M:09Qi19(P"0BQ1:`0"i1RAR;CR!/M0BYh1:9K09i1R(M(B. 0,T9Uh1`0CU1B!0Gh1R(B ",T!RC`$0EWh1M90Ai1G9(B (scrolling)". 0,T9Uh1(B +,T`0;g19!RC7Sc0Ki10MU1aA!0Jl1JRARC6`$0EWh1M9`$M0Cl1`+M0Cl1d;0BQ1'5SaK09h1'07Uh105i1M'!RC:90"i1M$GRAd04i1b4B(B +,Td0Ah1`$0EWh1M9MM!9M!K09i1R(M(B. ->> ,TEM'`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TE'MM!d;9M!K(B0,T9i(B1,TR(Mb4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-n, ,Ta(B0,TEi(B1,TG(B0,T4Y(B10,TGh(B1,TR(B0,TAU(B1,TMPdC`(B0,T!T(B1,T4(B0,T"Vi(B1,T9(B. +>> ,TEM'`$0EWh1M9`$M0Cl1`+M0Cl1E'MM!d;9M!K09i1R(Mb4Bc0*i1$S0JQh1'(B C-n, ,Ta0Ei1G04Y10Gh1R0AU1MPdC`0!T140"Vi19(B. -0,T6i(B1,TR`$(B0,TEWh(B1,TM9(B0,T7U(B1,TEP(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T9Qi(B1,T9(B0,T*i(B1,TRd;(B, 0,T7h(B1,TR9(B0,T!g(B1,TJRARC6(P`$(B0,TEWh(B1,TM9d(B0,T4i(B10,T7U(B1,TEP$S(B. ,T$S(B0,TJQh(B1,T'(B M-f (META-f) -,Tc(B0,T*i(B1,Tc9!RC`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'$S(B0,T7Uh(B1,TM(B0,TBYh(B10,T6Q(B1,T4d;(B ,TaEP(B M-b ,Tc(B0,T*i(B1,Tc9!RC`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'$S(B0,T7Uh(B1,TM(B0,TBYh(B10,T!h(B1,TM9K(B0,T9i(B1,TR(B. +0,T6i1R`$0EWh1M907U1EP05Q1G0MQ1!IC09Qi190*i1Rd;(B, 0,T7h1R90!g1JRARC6(P`$0EWh1M9d04i107U1EP$S(B. ,T$S0JQh1'(B M-f (META-f) +,Tc0*i1c9!RC`$0EWh1M9d;0BQ1'$S07Uh1M0BYh106Q14d;(B ,TaEP(B M-b ,Tc0*i1c9!RC`$0EWh1M9d;0BQ1'$S07Uh1M0BYh10!h1M9K09i1R(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 0,T4Y(B10,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B. +>> ,TEM'c0*i1$S0JQh1'(B M-f ,TaEP(B M-b 0,T4Y10JQ1!JM'JRA$0CQi1'(B. -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'!ER'"M'$S(B, ,T$S(B0,TJQh(B1,T'(B M-f ,T(Pc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M'$S(B0,T9Qi(B1,T9(B. ,T`(B0,TAWh(B1,TM(B -0,T7h(B1,TR9M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'`(B0,TGi(B1,T9GCC$CPK(B0,TGh(B1,TR'$S(B, ,T$S(B0,TJQh(B1,T'(B M-f ,T(Pc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M'$S(B -0,T7Uh(B1,TM(B0,TBYh(B10,T6Q(B1,T4d;(B. ,T$S(B0,TJQh(B1,T'(B M-b ,T7SK(B0,T9i(B1,TR(B0,T7Uh(B1,T7S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B ,Ta(B0,T5h(B1,T`$(B0,TEWh(B1,TM9d;c9(B0,T7T(B1,TH7R'5C'(B0,T!Q(B1,T9(B0,T"i(B1,TRA(B. +,T`0AWh1M07h1R9M0BYh107Uh15SaK09h1'!ER'"M'$S(B, ,T$S0JQh1'(B M-f ,T(Pc0*i1`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB"M'$S09Qi19(B. ,T`0AWh1M(B +0,T7h1R9M0BYh107Uh15SaK09h1'`0Gi19GCC$CPK0Gh1R'$S(B, ,T$S0JQh1'(B M-f ,T(Pc0*i1`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB"M'$S(B +0,T7Uh1M0BYh106Q14d;(B. ,T$S0JQh1'(B M-b ,T7SK09i1R07Uh17S9M'`04U1BG0!Q19(B ,Ta05h1`$0EWh1M9d;c907T1H7R'5C'0!Q190"i1RA(B. -,TKARB`K(B0,T5X(B1: ,T`(B0,T9Wh(B1,TM'(R!@RIRd7Bd(B0,TAh(B10,TAU(B1,T!RCc(B0,T*i(B10,TMQ(B1,T!"CP`(B0,TGi(B1,T9GCC$(B (whitespace) ,Tc9!RCaJ4'(B - ,T"M:`"5"M'$S(B, ,T)P(B0,T9Qi(B1,T9`(B0,TAWh(B1,TMM(B0,TBYh(B1,Tc9bKA4@RIRd7B(B (ThaiText mode) 0,TMU(B1,TaA!(B0,TJl(B1 - ,T(P7S!RC!S(B0,T!Q(B1,T:"M:`"5"M'$Sb4BMR(B0,THQ(B1,TBb;Ca!CA(B0,T5Q(B1,T4$S(B. ,T$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b - 0,T(V(B1,T'(P7S'R9d(B0,T4i(B1, ,Ta(B0,T5h(B1,T(Pc(B0,TKi(B1,T<E(B0,T5h(B1,TR'd;`(B0,TEg(B1,T!(B0,T9i(B1,TMB(B. ,T!(B0,TEh(B1,TRG(B0,T$W(B1,TM(B: +,TKARB`K05X1(B: ,T`09Wh1M'(R!@RIRd7Bd0Ah10AU1!RCc0*i10MQ1!"CP`0Gi19GCC$(B (whitespace) ,Tc9!RCaJ4'(B + ,T"M:`"5"M'$S(B, ,T)P09Qi19`0AWh1MM0BYh1c9bKA4@RIRd7B(B (ThaiText mode) 0,TMU1aA!0Jl1(B + ,T(P7S!RC!S0!Q1:"M:`"5"M'$Sb4BMR0HQ1Bb;Ca!CA05Q14$S(B. ,T$S0JQh1'(B M-f ,TaEP(B M-b + 0,T(V1'(P7S'R9d04i1(B, ,Ta05h1(Pc0Ki1<E05h1R'd;`0Eg1!09i1MB(B. ,T!0Eh1RG0$W1M(B: - ,Td(B0,TAh(B10,TGh(B1,TR(B0,T7h(B1,TR9M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'!ER'K(B0,TCW(B1,TM5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'$S(B0,T!g(B1,T5RA(B, ,T$S(B0,TJQh(B1,T'(B M-f ,T(Pc(B0,T*i(B1 - ,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'$S(B0,T6Q(B1,T4d;c9!C(B0,T3U(B10,T7Uh(B1,T$S(B0,T9Qi(B1,T9d(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,T;g(B1,T9$S(B0,TJX(B1,T4(B0,T7i(B1,TRB"M'(B - ,T:CC(B0,T7Q(B1,T4(B. 0,T6i(B1,TR$S(B0,T9Qi(B1,T9`(B0,T;g(B1,T9$S(B0,TJX(B1,T4(B0,T7i(B1,TRB"M':CC(B0,T7Q(B1,T4(B, ,T$S(B0,TJQh(B1,T'(B M-f ,T(Pc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'(B - ,T5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M'$S(B0,T9Qi(B1,T9(B. + ,Td0Ah10Gh1R07h1R9M0BYh107Uh15SaK09h1'!ER'K0CW1M5SaK09h1'`0CTh1A05i19"M'$S0!g15RA(B, ,T$S0JQh1'(B M-f ,T(Pc0*i1(B + ,T`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M'$S06Q14d;c9!C03U107Uh1$S09Qi19d0Ah1d04i1`0;g19$S0JX1407i1RB"M'(B + ,T:CC07Q14(B. 0,T6i1R$S09Qi19`0;g19$S0JX1407i1RB"M':CC07Q14(B, ,T$S0JQh1'(B M-f ,T(Pc0*i1`$0EWh1M9d;0BQ1'(B + ,T5SaK09h1'07i1RB"M'$S09Qi19(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 0,T4Y(B1, ,Tb4B;P;9(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B C-f ,TaEP(B C-b, 0,T7h(B1,TR9(P(B0,TJQ(B1,T'`!5(B - ,T`(B0,TKg(B1,T9!RC7S'R9"M'$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b ,Tc95SaK(B0,T9h(B1,T'(B0,T5h(B1,TR'f(B 0,T7Qi(B1,T'c9$SaEPCPK(B0,TGh(B1,TR'$S(B. +>> ,TEM'c0*i1$S0JQh1'(B M-f ,TaEP(B M-b 0,T4Y1(B, ,Tb4B;P;90!Q1:$S0JQh1'(B C-f ,TaEP(B C-b, 0,T7h1R9(P0JQ1'`!5(B + ,T`0Kg19!RC7S'R9"M'$S0JQh1'(B M-f ,TaEP(B M-b ,Tc95SaK09h1'05h1R'f(B 0,T7Qi1'c9$SaEPCPK0Gh1R'$S(B. -0,T7h(B1,TR9JRARC6(B0,TJQ(B1,T'`!5d(B0,T4i(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B C-f ,TaEP(B C-b 0,T9Qi(B1,T97SK(B0,T9i(B1,TR(B0,T7Uh(B1,Tc9(B0,TEQ(B1,T!I3P`(B0,T4U(B1,TBG(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B M-f -,TaEP(B M-b, ,Ta(B0,T5h(B1,TM(B0,TBYh(B1,T:9`!3(B0,T1l(B10,T7Uh(B10,T5h(B1,TR'(B0,T!Q(B1,T9(B. 0,TJh(B1,TG9AR!(B 0,T;Xh(B1,TA(B META ,T(P(B0,T6Y(B1,T!!SK94c(B0,TKi(B1,Tc(B0,T*i(B10,T!Q(B1,T:!RC7S'R9c9(B -,TCP(B0,T4Q(B1,T:(B0,T7Uh(B1,T`(B0,T!Uh(B1,TBG(B0,T"i(B1,TM'(B0,T!Q(B1,T:K(B0,T9h(B1,TGB(B0,T7Uh(B1,T!SK94(B0,T"Vi(B1,T97R'@RIR(B (,T`(B0,T*h(B1,T9(B ,T$S(B, ,T;CPbB$(B, 0,TBh(B1,TMK(B0,T9i(B1,TR(B, ,T`(B0,T;g(B1,T9(B0,T5i(B1,T9(B), -,T"3P(B0,T7Uh(B10,T;Xh(B1,TA(B CONTROL 0,T9Qi(B1,T9(B0,TAQ(B1,T!(P(B0,T6Y(B1,T!!SK94c(B0,TKi(B1,Tc(B0,T*i(B10,T!Q(B1,T:!RC7S'R9c9CP(B0,T4Q(B1,T:(B0,T7Uh(B1,T`(B0,T!Uh(B1,TBG(B0,T"i(B1,TM'(B0,T!Q(B1,T:K(B0,T9h(B1,TGB(B0,TBh(B1,TMB(B -0,TMT(B1,TJCP(B0,T7Uh(B1,T7S!RCa(B0,T!i(B1,Td"d(B0,T4i(B1 (,T`(B0,T*h(B1,T9(B 0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,T:CC(B0,T7Q(B1,T4(B, ,T`(B0,T;g(B1,T9(B0,T5i(B1,T9(B). +0,T7h1R9JRARC60JQ1'`!5d04i10Gh1R$S0JQh1'(B C-f ,TaEP(B C-b 0,T9Qi197SK09i1R07Uh1c90EQ1!I3P`04U1BG0!Q1:$S0JQh1'(B M-f +,TaEP(B M-b, ,Ta05h1M0BYh1:9`!301l107Uh105h1R'0!Q19(B. 0,TJh1G9AR!(B 0,T;Xh1A(B META ,T(P06Y1!!SK94c0Ki1c0*i10!Q1:!RC7S'R9c9(B +,TCP04Q1:07Uh1`0!Uh1BG0"i1M'0!Q1:K09h1GB07Uh1!SK940"Vi197R'@RIR(B (,T`0*h19(B ,T$S(B, ,T;CPbB$(B, 0,TBh1MK09i1R(B, ,T`0;g1905i19(B), +,T"3P07Uh10;Xh1A(B CONTROL 0,T9Qi190AQ1!(P06Y1!!SK94c0Ki1c0*i10!Q1:!RC7S'R9c9CP04Q1:07Uh1`0!Uh1BG0"i1M'0!Q1:K09h1GB0Bh1MB(B +0,TMT1JCP07Uh17S!RCa0!i1d"d04i1(B (,T`0*h19(B 0,T5Q1G0MQ1!IC(B, ,T:CC07Q14(B, ,T`0;g1905i19(B). -,T!RC7S'R9c97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9JSK(B0,TCQ(B1,T::CC(B0,T7Q(B1,T4(B0,T!Q(B1,T:;CPbB$(B: ,T$S(B0,TJQh(B1,T'(B C-a ,TaEP(B C-e ,Tc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9(B -,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9aEP(B0,T7i(B1,TRB"M':CC(B0,T7Q(B1,T4(B, ,T"3P`(B0,T4U(B1,TBG(B0,T!Q(B1,T9$S(B0,TJQh(B1,T'(B M-a ,TaEP(B M-e ,Tc(B0,T*i(B1,T`$(B0,TEWh(B1,TM9(B -,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9aEP(B0,T7i(B1,TRB"M';CPbB$(B. +,T!RC7S'R9c97S9M'`04U1BG0!Q19JSK0CQ1::CC07Q140!Q1:;CPbB$(B: ,T$S0JQh1'(B C-a ,TaEP(B C-e ,Tc0*i1`$0EWh1M9(B +,Td;0BQ1'5SaK09h1'`0CTh1A05i19aEP07i1RB"M':CC07Q14(B, ,T"3P`04U1BG0!Q19$S0JQh1'(B M-a ,TaEP(B M-e ,Tc0*i1`$0EWh1M9(B +,Td;0BQ1'5SaK09h1'`0CTh1A05i19aEP07i1RB"M';CPbB$(B. -,TKARB`K(B0,T5X(B1: ,T`(B0,T9Wh(B1,TM'(R!@RIRd7Bd(B0,TAh(B10,T9T(B1,TBAc(B0,T*i(B10,TMQ(B1,T!"CPA(B0,TKQ(B1,T>@R$(B (period) ,Tc9!RCaJ4'(B0,T(X(B1,T4(B0,TJTi(B1,T9(B0,TJX(B1,T4"M'(B - ,T;CPbB$(B, ,T7Sc(B0,TKi(B1,Td(B0,TAh(B1,TJRARC6!SK94"M:`"5"M';CPbB$c(B0,TKi(B10,T6Y(B1,T!(B0,T5i(B1,TM'd(B0,T4i(B1. 0,T4Q(B1,T'(B0,T9Qi(B1,T9`(B0,TAWh(B1,TM(B - ,TM(B0,TBYh(B1,Tc9bKA4@RIRd7B(B (ThaiText mode), ,T$S(B0,TJQh(B1,T'(B M-a ,TaEP(B M-e ,T(P`$(B0,TEWh(B1,TM9(B - ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'(B0,TBh(B1,TMK(B0,T9i(B1,TR(B ,TaEP5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB(B0,TJX(B1,T4"M'(B0,TBh(B1,TMK(B0,T9i(B1,TR(B - ,T5RAES(B0,T4Q(B1,T:(B. ,TB!`(B0,TGi(B1,T9!C(B0,T3U(B10,T7Uh(B10,TAU(B1,T!RCc(B0,T*i(B10,TMQ(B1,T!"CPA(B0,TKQ(B1,T>@R$(B. +,TKARB`K05X1(B: ,T`09Wh1M'(R!@RIRd7Bd0Ah109T1BAc0*i10MQ1!"CPA0KQ1>@R$(B (period) ,Tc9!RCaJ4'0(X140JTi190JX14"M'(B + ,T;CPbB$(B, ,T7Sc0Ki1d0Ah1JRARC6!SK94"M:`"5"M';CPbB$c0Ki106Y1!05i1M'd04i1(B. 0,T4Q1'09Qi19`0AWh1M(B + ,TM0BYh1c9bKA4@RIRd7B(B (ThaiText mode), ,T$S0JQh1'(B M-a ,TaEP(B M-e ,T(P`$0EWh1M9(B + ,T`$M0Cl1`+M0Cl1d;0BQ1'5SaK09h1'`0CTh1A05i19"M'0Bh1MK09i1R(B ,TaEP5SaK09h1'07i1RB0JX14"M'0Bh1MK09i1R(B + ,T5RAES04Q1:(B. ,TB!`0Gi19!C03U107Uh10AU1!RCc0*i10MQ1!"CPA0KQ1>@R$(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-a ,TaEP(B C-e 0,T4Y(B10,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B. - ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-a ,TaEP(B M-e 0,T4Y(B10,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B. +>> ,TEM'c0*i1$S0JQh1'(B C-a ,TaEP(B C-e 0,T4Y10JQ1!JM'JRA$0CQi1'(B. + ,TEM'c0*i1$S0JQh1'(B M-a ,TaEP(B M-e 0,T4Y10JQ1!JM'JRA$0CQi1'(B. -0,TJQ(B1,T'`!5(B0,T4Y(B10,TGh(B1,TR!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-a 0,T+i(B1,TSf(B 0,T!Q(B1,T9(Pd(B0,TAh(B1,T`(B0,T!T(B1,T4<EMPdC(B, ,Ta(B0,T5h(B1,T!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-a ,T(P7Sc(B0,TKi(B1 -,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`$(B0,TEWh(B1,TM9d;(B0,T7U(B1,TEP;CPbB$(B. ,Ta(B0,TAi(B10,TGh(B1,TR!RC`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T"M'(B0,T7Qi(B1,T'JM'a::(B0,T9Ui(B1,T(Pd(B0,TAh(B1 -,T$(B0,TEi(B1,TRB(B0,T!Q(B1,T9`EB(B0,T7U(B1,T`(B0,T4U(B1,TBG(B, ,Ta(B0,T5h(B10,T!g(B10,T4Y(B1,T`(B0,T;g(B1,T98CCA*R(B0,T5T(B10,T4U(B1. +0,TJQ1'`!504Y10Gh1R!RCc0*i1$S0JQh1'(B C-a 0,T+i1Sf(B 0,T!Q19(Pd0Ah1`0!T14<EMPdC(B, ,Ta05h1!RCc0*i1$S0JQh1'(B M-a ,T(P7Sc0Ki1(B +,T`$M0Cl1`+M0Cl1`$0EWh1M9d;07U1EP;CPbB$(B. ,Ta0Ai10Gh1R!RC`$0EWh1M9`$M0Cl1`+M0Cl1"M'07Qi1'JM'a::09Ui1(Pd0Ah1(B +,T$0Ei1RB0!Q19`EB07U1`04U1BG(B, ,Ta05h10!g104Y1`0;g198CCA*R05T104U1(B. -,T:R'$(B0,TCQi(B1,T'`CR(B0,T!g(B1,T`(B0,TCU(B1,TB!5SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,TGh(B1,TR(B "0,T(X(B1,T4(B (point)". ,T!(B0,TEh(B1,TRG(B0,T$W(B1,TM(B, ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T7Uh(B1 -,T;CR!/M(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B0,T!g(B10,T$W(B1,TM5SaK(B0,T9h(B1,T'(B0,T7Uh(B10,T(X(B1,T4;CR!/M(B0,TBYh(B1,T:9(B0,T"i(B1,TM$GRA(B0,T9Qh(B1,T9`M'(B. +,T:R'$0CQi1'`CR0!g1`0CU1B!5SaK09h1'"M'`$M0Cl1`+M0Cl10Gh1R(B "0,T(X14(B (point)". ,T!0Eh1RG0$W1M(B, ,T`$M0Cl1`+M0Cl107Uh1(B +,T;CR!/M0BYh1:9K09i1R(M0!g10$W1M5SaK09h1'07Uh10(X14;CR!/M0BYh1:90"i1M$GRA09Qh19`M'(B. -0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9J(B0,TCX(B1,T;"M'(B0,T*X(B1,T4$S(B0,TJQh(B1,T'JSK(B0,TCQ(B1,T:!RC`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1, 0,T+Vh(B1,T'CGA(B0,T6V(B1,T'!RC`$(B0,TEWh(B1,TM9c9CP(B0,T4Q(B1,T:$S(B +0,T5h1Md;09Ui1`0;g19J0CX1;"M'0*X14$S0JQh1'JSK0CQ1:!RC`$0EWh1M9`$M0Cl1`+M0Cl1(B, 0,T+Vh1'CGA06V1'!RC`$0EWh1M9c9CP04Q1:$S(B ,TaEP;CPbB$(B: - C-f ,T`$(B0,TEWh(B1,TM9d;(B0,T"i(B1,TR'K(B0,T9i(B1,TRK(B0,T9Vh(B1,T'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B - C-b ,T`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:d;K(B0,T9Vh(B1,T'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B + C-f ,T`$0EWh1M9d;0"i1R'K09i1RK09Vh1'05Q1G0MQ1!IC(B + C-b ,T`$0EWh1M9!0EQ1:d;K09Vh1'05Q1G0MQ1!IC(B - M-f ,T`$(B0,TEWh(B1,TM9d;(B0,T"i(B1,TR'K(B0,T9i(B1,TRK(B0,T9Vh(B1,T'$S(B - M-b ,T`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:d;K(B0,T9Vh(B1,T'$S(B + M-f ,T`$0EWh1M9d;0"i1R'K09i1RK09Vh1'$S(B + M-b ,T`$0EWh1M9!0EQ1:d;K09Vh1'$S(B - C-n ,T`$(B0,TEWh(B1,TM9d;:CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;(B - C-p ,T`$(B0,TEWh(B1,TM9d;:CC(B0,T7Q(B1,T4(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B + C-n ,T`$0EWh1M9d;:CC07Q1406Q14d;(B + C-p ,T`$0EWh1M9d;:CC07Q140!h1M9K09i1R(B - C-a ,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M':CC(B0,T7Q(B1,T4(B - C-e ,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M':CC(B0,T7Q(B1,T4(B + C-a ,T`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M':CC07Q14(B + C-e ,T`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB"M':CC07Q14(B - M-a ,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M';CPbB$(B - M-e ,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB"M';CPbB$(B + M-a ,T`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M';CPbB$(B + M-e ,T`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB"M';CPbB$(B ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B10,TJQ(B1,T!CPBP`(B0,T>Wh(B1,TM`(B0,T;g(B1,T9!RC(B0,T=V(B1,T!(B0,TKQ(B1,T4(B. - ,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B10,T!Q(B1,T9(B0,T:h(B1,TMBAR!(B. +>> ,TEM'c0*i1$S0JQh1'`K0Eh1R09Ui10JQ1!CPBP`0>Wh1M`0;g19!RC0=V1!0KQ14(B. + ,T$S0JQh1'`K0Eh1R09Ui1`0;g19$S0JQh1'07Uh1c0*i10!Q190:h1MBAR!(B. -0,TAU(B10,TMU(B1,T!JM'$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TJS(B0,T$Q(B1,T-c9!RC`$(B0,TEWh(B1,TM95SaK(B0,T9h(B1,T'(B0,T$W(B1,TM(B ,T$S(B0,TJQh(B1,T'(B M-< (META 0,T9i(B1,TMB!(B0,TGh(B1,TR(B), ,Tc(B0,T*i(B1,Tc9!RC(B -,T`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'(B0,T"i(B1,TM$GRA(B, ,TaEP(B M-> (META ,TAR!!(B0,TGh(B1,TR(B), ,Tc(B0,T*i(B1,Tc9!RC`$(B0,TEWh(B1,TM9(B -,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB(B0,TJX(B1,T4"M'(B0,T"i(B1,TM$GRA(B. +0,TAU10MU1!JM'$S0JQh1'07Uh1JS0$Q1-c9!RC`$0EWh1M95SaK09h1'0$W1M(B ,T$S0JQh1'(B M-< (META 0,T9i1MB!0Gh1R(B), ,Tc0*i1c9!RC(B +,T`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M'0"i1M$GRA(B, ,TaEP(B M-> (META ,TAR!!0Gh1R(B), ,Tc0*i1c9!RC`$0EWh1M9(B +,Td;0BQ1'5SaK09h1'07i1RB0JX14"M'0"i1M$GRA(B. -,Tc9`$(B0,TCWh(B1,TM';ERB7R'(B (terminal) 0,TJh(B1,TG9cK(B0,T-h(B1, 0,TMQ(B1,T!"CP(B "<" ,T(PM(B0,TBYh(B1,T`K(B0,T9W(B1,TM(B0,TMQ(B1,T!"CP(B0,T(X(B1,TE@R$(B -(comma), ,T)P(B0,T9Qi(B1,T9(B0,T7h(B1,TR9(B0,T5i(B1,TM'c(B0,T*i(B10,T;Xh(B1,TA(B0,T*T(B1,T?(B0,T5l(B1 (shift) ,Tc9!RC(B0,T;i(B1,TM9(B0,TMQ(B1,T!"CP(B0,T9Qi(B1,T9(B. ,TJSK(B0,TCQ(B1,T:`$(B0,TCWh(B1,TM'(B -,T;ERB7R'a::(B0,T9Ui(B1, 0,T7h(B1,TR9(B0,T(V(B1,T'(B0,T5i(B1,TM'c(B0,T*i(B10,T;Xh(B1,TA(B0,T*T(B1,T?(B0,T5l(B1,Tc9!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-< ,Tc97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B, 0,T6i(B1,TRd(B0,TAh(B1 -,T$S(B0,T9V(B1,T'(B0,T6V(B1,T'(B0,T;Xh(B1,TA(B0,T*T(B1,T?(B0,T5l(B1, 0,T!g(B1,TKARB$GRA(B0,TGh(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-comma. +,Tc9`$0CWh1M';ERB7R'(B (terminal) 0,TJh1G9cK0-h1(B, 0,TMQ1!"CP(B "<" ,T(PM0BYh1`K09W1M0MQ1!"CP0(X1E@R$(B +(comma), ,T)P09Qi1907h1R905i1M'c0*i10;Xh1A0*T1?05l1(B (shift) ,Tc9!RC0;i1M90MQ1!"CP09Qi19(B. ,TJSK0CQ1:`$0CWh1M'(B +,T;ERB7R'a::09Ui1(B, 0,T7h1R90(V1'05i1M'c0*i10;Xh1A0*T1?05l1c9!RC0;i1M9$S0JQh1'(B M-< ,Tc97S9M'`04U1BG0!Q19(B, 0,T6i1Rd0Ah1(B +,T$S09V1'06V1'0;Xh1A0*T1?05l1(B, 0,T!g1KARB$GRA0Gh1R07h1R9!S0EQ1'0;i1M9$S0JQh1'(B M-comma. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-< 0,T4Y(B1, ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,T9Ui(B1. - ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-v 0,T+i(B1,TS(B0,T!Q(B1,T9KERBf(B ,T$(B0,TCQi(B1,T'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,T4T(B1,TA(B0,T9Ui(B1. +>> ,TEM'c0*i1$S0JQh1'(B M-< 0,T4Y1(B, ,T`0>Wh1M`$0EWh1M9d;0BQ1'5SaK09h1'`0CTh1A05i19"M'0$Yh10AW1M!RCc0*i109Ui1(B. + ,Ta0Ei1Gc0*i1$S0JQh1'(B C-v 0,T+i1S0!Q19KERBf(B ,T$0CQi1'`0>Wh1M07Uh1(P`$0EWh1M9!0EQ1:AR0BQ1'5SaK09h1'`04T1A09Ui1(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-> 0,T4Y(B1, ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7i(B1,TRB(B0,TJX(B1,T4"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,T9Ui(B1. - ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-v 0,T+i(B1,TS(B0,T!Q(B1,T9KERBf(B ,T$(B0,TCQi(B1,T'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,T4T(B1,TA(B0,T9Ui(B1. +>> ,TEM'c0*i1$S0JQh1'(B M-> 0,T4Y1(B, ,T`0>Wh1M`$0EWh1M9d;0BQ1'5SaK09h1'07i1RB0JX14"M'0$Yh10AW1M!RCc0*i109Ui1(B. + ,Ta0Ei1Gc0*i1$S0JQh1'(B M-v 0,T+i1S0!Q19KERBf(B ,T$0CQi1'`0>Wh1M07Uh1(P`$0EWh1M9!0EQ1:AR0BQ1'5SaK09h1'`04T1A09Ui1(B. -0,T7h(B1,TR9JRARC6`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td(B0,T4i(B10,T4i(B1,TGB(B0,T;Xh(B1,TA(B0,TEY(B1,T!HC(B (arrow key), 0,T6i(B1,TR`$(B0,TCWh(B1,TM';ERB7R'"M'(B0,T7h(B1,TR9(B -0,TAU(B10,T;Xh(B1,TA`K(B0,TEh(B1,TR(B0,T9Ui(B1,TM(B0,TBYh(B1. ,T`CRa9P9Sc(B0,TKi(B10,T=V(B1,T!(B0,TKQ(B1,T4c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-b, C-f, C-n ,TaEP(B C-p, 0,T4i(B1,TGB`K(B0,T5X(B1,T<EJRA(B -,T;CP!RC(B. ,TK(B0,T9Vh(B1,T'(B, ,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,T7S'R9d(B0,T4i(B1,T:9`$(B0,TCWh(B1,TM';ERB7R'(B0,T7X(B1,T!*(B0,T9T(B1,T4(B. ,TJM'(B, ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B10,T=V(B1,T!(B0,TKQ(B1,T4(B -,T!RCc(B0,T*i(B10,T!Q(B1,T:(B0,TMU(B1,TaA!(B0,TJl(B1,Ta(B0,TEi(B1,TG(B 0,T7h(B1,TR9(P(B0,TCYi(B10,TJV(B1,T!(B0,TGh(B1,TR!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B0,T4i(B1,TGB(B0,T;Xh(B1,TA(B CONTROL 0,T9Qi(B1,T9$(B0,TEh(B1,TM'(B0,T5Q(B1,TG!(B0,TGh(B1,TR!RCc(B0,T*i(B1 -0,T;Xh(B1,TA(B0,TEY(B1,T!HC(B (,T`>CRP(B0,TGh(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,T5i(B1,TM'`$(B0,TEWh(B1,TM9(B0,TBi(B1,TRB(B0,TAW(B1,TMMM!(R!5SaK(B0,T9h(B1,T'(B0,TAW(B1,TM(B0,TJQ(B1,TA(B0,T<Q(B1,TJ`EB(B). ,TJRA(B, ,T`(B0,TAWh(B1,TM(B -0,T7h(B1,TR9(B0,T$Xi(B1,T9`$B(B0,T!Q(B1,T:!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T';CP!M:(B0,T!Q(B1,T:(B0,T;Xh(B1,TA(B CONTROL ,Ta(B0,TEi(B1,TG(B, 0,T7h(B1,TR9JRARC6(P(B0,T=V(B1,T!!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B -0,T*Qi(B1,T9(B0,TJY(B1,T'(B0,T5h(B1,TMd;d(B0,T4i(B10,TMU(B1,T!(B0,T4i(B1,TGB(B. +0,T7h1R9JRARC6`$0EWh1M9`$M0Cl1`+M0Cl1d04i104i1GB0;Xh1A0EY1!HC(B (arrow key), 0,T6i1R`$0CWh1M';ERB7R'"M'07h1R9(B +0,TAU10;Xh1A`K0Eh1R09Ui1M0BYh1(B. ,T`CRa9P9Sc0Ki10=V1!0KQ14c0*i1$S0JQh1'(B C-b, C-f, C-n ,TaEP(B C-p, 0,T4i1GB`K05X1<EJRA(B +,T;CP!RC(B. ,TK09Vh1'(B, ,T$S0JQh1'`K0Eh1R09Ui17S'R9d04i1:9`$0CWh1M';ERB7R'07X1!*09T14(B. ,TJM'(B, ,T`0AWh1M07h1R9d04i10=V1!0KQ14(B +,T!RCc0*i10!Q1:0MU1aA!0Jl1a0Ei1G(B 0,T7h1R9(P0CYi10JV1!0Gh1R!RCc0*i1$S0JQh1'04i1GB0;Xh1A(B CONTROL 0,T9Qi19$0Eh1M'05Q1G!0Gh1R!RCc0*i1(B +0,T;Xh1A0EY1!HC(B (,T`>CRP0Gh1R07h1R9d0Ah105i1M'`$0EWh1M90Bi1RB0AW1MMM!(R!5SaK09h1'0AW1M0JQ1A0<Q1J`EB(B). ,TJRA(B, ,T`0AWh1M(B +0,T7h1R90$Xi19`$B0!Q1:!RCc0*i1$S0JQh1';CP!M:0!Q1:0;Xh1A(B CONTROL ,Ta0Ei1G(B, 0,T7h1R9JRARC6(P0=V1!!RCc0*i1$S0JQh1'(B +0,T*Qi190JY1'05h1Md;d04i10MU1!04i1GB(B. -,T$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B10,T9Qi(B1,T9(PJRARC6!S(B0,T!Q(B1,T:(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,Td(B0,T4i(B1; ,TJSK(B0,TCQ(B1,T:$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1, -0,T5Q(B1,TG`E"`K(B0,TEh(B1,TR(B0,T9Ui(B10,T!g(B1,T(PKARB(B0,T6V(B1,T'(S9G9$(B0,TCQi(B1,T'"M'!RC;CPAGE<E"M'$S(B0,TJQh(B1,T'(B0,T5h(B1,TMd;(B. ,T!RC(B0,T7Uh(B1,T(P7Sc(B0,TKi(B10,TAU(B1 -,T!RC;CPAGE<E"M'$S(B0,TJQh(B1,T'(B0,T+i(B1,TS`(B0,T7h(B1,TR(S9G9(B0,T7Uh(B10,T5i(B1,TM'!RC(B0,T9Qi(B1,T9JRARC67Sd(B0,T4i(B1,Tb4B!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u -,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB(B0,T5Q(B1,TG`E"(B0,T!h(B1,TM9(B0,T7Uh(B1,T(P(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T5i(B1,TM'!RC(B. 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,TAU(B10,T;Xh(B1,TA(B META (,TK(B0,TCW(B1,TM(B EDIT ,TK(B0,TCW(B1,TM(B -ALT), 0,T7h(B1,TR9JRARC6(P7Sd(B0,T4i(B10,T4i(B1,TGB(B0,TMU(B1,T!(B0,TGT(B10,T8U(B1,TK(B0,T9Vh(B1,T'(B: 0,T;i(B1,TM9(B0,T5Q(B1,TG`E""3P(B0,T7Uh(B1,T!4(B0,T;Xh(B1,TA(B META ,TM(B0,TBYh(B1. ,T`CRa9P9S(B -,Tc(B0,TKi(B10,T7h(B1,TR9(B0,T=V(B1,T!(B0,TKQ(B1,T4c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-u ,T`>CRP(B0,TGh(B1,TRJRARC6c(B0,T*i(B1,Td(B0,T4i(B10,T!Q(B1,T:`$(B0,TCWh(B1,TM';ERB7R'(B0,T7X(B1,T!*(B0,T9T(B1,T4(B. 0,T5Q(B1,TG`E"MR(B0,TCl(B1 -0,T!T(B1,TG`A9(B0,T5l(B10,T7Uh(B1,T!(B0,TEh(B1,TRG(B0,T6V(B1,T'(B0,T9Ui(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B ",TMR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T`(B0,T5T(B1,TAK(B0,T9i(B1,TR(B (prefix argument)", ,T`>CRP(B0,TGh(B1,TR(B0,T7h(B1,TR9(B -0,T5i(B1,TM'(B0,T;i(B1,TM9(B0,T5Q(B1,TG`E"(B0,T!h(B1,TM9(B0,T7Uh(B1,T(P(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B. +,T$S0JQh1'0Jh1G9cK0-h1c90MU1aA!0Jl109Qi19(PJRARC6!S0!Q1:05Q1G`E"MR0Cl10!T1G`A905l1d04i1(B; ,TJSK0CQ1:$S0JQh1'0Jh1G9cK0-h1(B, +0,T5Q1G`E"`K0Eh1R09Ui10!g1(PKARB06V1'(S9G9$0CQi1'"M'!RC;CPAGE<E"M'$S0JQh1'05h1Md;(B. ,T!RC07Uh1(P7Sc0Ki10AU1(B +,T!RC;CPAGE<E"M'$S0JQh1'0+i1S`07h1R(S9G907Uh105i1M'!RC09Qi19JRARC67Sd04i1b4B!RC0;i1M9$S0JQh1'(B C-u +,Ta0Ei1G5RA04i1GB05Q1G`E"0!h1M907Uh1(P0;i1M9$S0JQh1'07Uh105i1M'!RC(B. 0,T6i1R07h1R90AU10;Xh1A(B META (,TK0CW1M(B EDIT ,TK0CW1M(B +ALT), 0,T7h1R9JRARC6(P7Sd04i104i1GB0MU1!0GT108U1K09Vh1'(B: 0,T;i1M905Q1G`E""3P07Uh1!40;Xh1A(B META ,TM0BYh1(B. ,T`CRa9P9S(B +,Tc0Ki107h1R90=V1!0KQ14c0*i1$S0JQh1'(B C-u ,T`>CRP0Gh1RJRARC6c0*i1d04i10!Q1:`$0CWh1M';ERB7R'07X1!*09T14(B. 0,T5Q1G`E"MR0Cl1(B +0,T!T1G`A905l107Uh1!0Eh1RG06V1'09Ui1`0CU1B!0Gh1R(B ",TMR0Cl10!T1G`A905l1`05T1AK09i1R(B (prefix argument)", ,T`>CRP0Gh1R07h1R9(B +0,T5i1M'0;i1M905Q1G`E"0!h1M907Uh1(P0;i1M9$S0JQh1'(B. -0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, ,T$S(B0,TJQh(B1,T'(B C-u 8 C-f ,T(P`$(B0,TEWh(B1,TM9d;(B0,T"i(B1,TR'K(B0,T9i(B1,TRa;4(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B. +0,T5Q1GM0Bh1R'`0*h19(B, ,T$S0JQh1'(B C-u 8 C-f ,T(P`$0EWh1M9d;0"i1R'K09i1Ra;405Q1G0MQ1!IC(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-n ,TK(B0,TCW(B1,TM(B C-p ,T;CP!M:(B0,T!Q(B1,T:(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1, ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1 - ,T`(B0,T"i(B1,TRARc!(B0,TEi(B1,T:CC(B0,T7Q(B1,T4(B0,T9Ui(B1,Tb4Bc(B0,T*i(B1,T`(B0,T>U(B1,TB'$S(B0,TJQh(B1,T'`(B0,T4U(B1,TBG(B. +>> ,TEM'c0*i1$S0JQh1'(B C-n ,TK0CW1M(B C-p ,T;CP!M:0!Q1:05Q1G`E"MR0Cl10!T1G`A905l1(B, ,T`0>Wh1M07Uh1(P`$0EWh1M9`$M0Cl1`+M0Cl1(B + ,T`0"i1RARc!0Ei1:CC07Q1409Ui1b4Bc0*i1`0>U1B'$S0JQh1'`04U1BG(B. -,T$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1,Tc(B0,T*i(B10,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T`K(B0,TEh(B1,TR(B0,T9Ui(B1,TJSK(B0,TCQ(B1,T:!RC;CPAGE<E$S(B0,TJQh(B1,T'(B0,T+i(B1,TS(B, ,Ta(B0,T5h(B1,T:R'$S(B0,TJQh(B1,T'(B0,T!g(B1,Tc(B0,T*i(B1 -,Tc9(B0,TEQ(B1,T!I3P(B0,TMWh(B1,T9(B. 0,TAU(B1,TKERB$S(B0,TJQh(B1,T'(B (,Ta(B0,T5h(B1,Td(B0,TAh(B1,TCGA$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Td(B0,T4i(B1,T!(B0,TEh(B1,TRGAR(B0,T6V(B1,T'5C'(B0,T9Ui(B1) ,Tc(B0,T*i(B10,T5Q(B1,TG`E"(B0,T9Ui(B1,T`(B0,T;g(B1,T9(B0,T5Q(B1,TG(B -0,T:h(B1,T'(B0,T*Ui(B1--,T!RC(B0,T7Uh(B10,TAU(B1,TMR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T`(B0,T5T(B1,TAK(B0,T9i(B1,TR(B, ,Tb4Bd(B0,TAh(B1,T$S(B0,T9V(B1,T'(B0,T6V(B1,T'(B0,T$h(B1,TR"M'(B0,T5Q(B1,TG`E"(B, ,T(P7Sc(B0,TKi(B1,T$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T97S'R9(B -0,T5h(B1,TR'MM!d;(B. +,T$S0JQh1'0Jh1G9cK0-h1c0*i105Q1G`E"MR0Cl10!T1G`A905l1`K0Eh1R09Ui1JSK0CQ1:!RC;CPAGE<E$S0JQh1'0+i1S(B, ,Ta05h1:R'$S0JQh1'0!g1c0*i1(B +,Tc90EQ1!I3P0MWh19(B. 0,TAU1KERB$S0JQh1'(B (,Ta05h1d0Ah1CGA$S0JQh1'07Uh1d04i1!0Eh1RGAR06V1'5C'09Ui1(B) ,Tc0*i105Q1G`E"09Ui1`0;g1905Q1G(B +0,T:h1'0*Ui1(B--,T!RC07Uh10AU1MR0Cl10!T1G`A905l1`05T1AK09i1R(B, ,Tb4Bd0Ah1$S09V1'06V1'0$h1R"M'05Q1G`E"(B, ,T(P7Sc0Ki1$S0JQh1'09Qi197S'R9(B +0,T5h1R'MM!d;(B. -,T$S(B0,TJQh(B1,T'(B C-v ,TaEP(B M-v ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TB!`(B0,TGi(B1,T9(B0,TMU(B1,T!;CP`@7K(B0,T9Vh(B1,T'(B. 0,T6i(B1,TR(B0,T;i(B1,TM9(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B10,T4i(B1,TGBa(B0,TEi(B1,TG(B, -,TK(B0,T9i(B1,TR(M(P(B0,T6Y(B1,T!`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B0,T"Vi(B1,T9K(B0,TCW(B1,TME'`(B0,T;g(B1,T9(S9G9:CC(B0,T7Q(B1,T4`(B0,T7h(B1,TR(B0,T5Q(B1,TG`E"(B0,T7Uh(B1,T!SK94(B, ,Ta79(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B -0,T7U(B1,TEPK(B0,T9i(B1,TR(M(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, ,T$S(B0,TJQh(B1,T'(B C-u 8 C-v ,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9K(B0,T9i(B1,TR(M(B0,T7U(B1,TEPa;4:CC(B0,T7Q(B1,T4(B. +,T$S0JQh1'(B C-v ,TaEP(B M-v ,T`0;g19$S0JQh1'07Uh1B!`0Gi190MU1!;CP`@7K09Vh1'(B. 0,T6i1R0;i1M905Q1G`E"MR0Cl10!T1G`A905l104i1GBa0Ei1G(B, +,TK09i1R(M(P06Y1!`$0EWh1M90Ai1G90"Vi19K0CW1ME'`0;g19(S9G9:CC07Q14`07h1R05Q1G`E"07Uh1!SK94(B, ,Ta7907Uh1(P`$0EWh1M90Ai1G9(B +0,T7U1EPK09i1R(M(B. 0,T5Q1GM0Bh1R'`0*h19(B, ,T$S0JQh1'(B C-u 8 C-v ,T(P`$0EWh1M90Ai1G9K09i1R(M07U1EPa;4:CC07Q14(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-u 8 C-v 0,T4Y(B1. +>> ,TEM'c0*i1$S0JQh1'(B C-u 8 C-v 0,T4Y1(B. -,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9K(B0,T9i(B1,TR(M(B0,T"Vi(B1,T9d;a;4:CC(B0,T7Q(B1,T4(B. 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9!(B0,TEQ(B1,T:AR(B0,TMU(B1,T!(B, 0,T7h(B1,TR9(B -0,T!g(B1,T7Sd(B0,T4i(B1,Tb4B!RC!S(B0,T!Q(B1,T:(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,Tc(B0,TKi(B10,T!Q(B1,T:$S(B0,TJQh(B1,T'(B M-v. +,T$S0JQh1'09Ui1(P`$0EWh1M90Ai1G9K09i1R(M0"Vi19d;a;4:CC07Q14(B. 0,T6i1R07h1R905i1M'!RC(P`$0EWh1M90Ai1G9!0EQ1:AR0MU1!(B, 0,T7h1R9(B +0,T!g17Sd04i1b4B!RC!S0!Q1:05Q1G`E"MR0Cl10!T1G`A905l1c0Ki10!Q1:$S0JQh1'(B M-v. -0,T6i(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'c(B0,T*i(B1,T`M!(B0,T+l(B10,TGT(B1,T9b4(B0,TGl(B1 (X Window) ,TM(B0,TBYh(B1, ,T(P(B0,TAU(B1,Ta<'`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B (scroll bar) 0,T7Uh(B1 -,T`(B0,T;g(B1,T9(B0,T>Wi(B1,T9(B0,T7Uh(B10,TJUh(B1,T`K(B0,TEUh(B1,TBA(B0,T<W(B1,T9(B0,T<i(B1,TRM(B0,TBYh(B1,T7R'(B0,T4i(B1,TR9(B0,T+i(B1,TRB"M'(B0,TGT(B1,T9b4(B0,TGl(B1 (window) ,T"M'(B0,TMU(B1,TaA!(B0,TJl(B1. 0,T7h(B1,TR9JRARC6(B -,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B0,T"i(B1,TM$GRAb4B!RC$(B0,TET(B1,T!`AR(B0,TJl(B1 (click mouse) ,T:9a<'`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B. +0,T6i1R07h1R9!S0EQ1'c0*i1`M!0+l10GT19b40Gl1(B (X Window) ,TM0BYh1(B, ,T(P0AU1a<'`$0EWh1M90Ai1G9(B (scroll bar) 0,T7Uh1(B +,T`0;g190>Wi1907Uh10JUh1`K0EUh1BA0<W190<i1RM0BYh17R'04i1R90+i1RB"M'0GT19b40Gl1(B (window) ,T"M'0MU1aA!0Jl1(B. 0,T7h1R9JRARC6(B +,T(P`$0EWh1M90Ai1G90"i1M$GRAb4B!RC$0ET1!`AR0Jl1(B (click mouse) ,T:9a<'`$0EWh1M90Ai1G9(B. ->> ,TEM'!4(B0,T;Xh(B1,TA!ER'(B0,T7Uh(B10,TJh(B1,TG9:9(B0,TJX(B1,T4"M'(B0,T>Wi(B1,T9(B0,T7Uh(B10,T7Uh(B1,T`(B0,T9i(B1,T9(B (highlight) ,T@RBc9a<'`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B. - 0,T"i(B1,TM$GRA(P(B0,T6Y(B1,T!`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7Uh(B10,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T$(B0,TET(B1,T!(B. +>> ,TEM'!40;Xh1A!ER'07Uh10Jh1G9:90JX14"M'0>Wi1907Uh107Uh1`09i19(B (highlight) ,T@RBc9a<'`$0EWh1M90Ai1G9(B. + 0,T"i1M$GRA(P06Y1!`$0EWh1M90Ai1G9d;0BQ1'5SaK09h1'07Uh107Uh107h1R9d04i1$0ET1!(B. ->> ,TEM'`$(B0,TEWh(B1,TM9`AR(B0,TJl(B10,T"Vi(B1,T9E'(B0,T4Y(B1, ,T"3P(B0,T7Uh(B10,TBQ(B1,T'!4(B0,T;Xh(B1,TA!ER'M(B0,TBYh(B1. 0,T7h(B1,TR9(P>:(B0,TGh(B1,TR(B0,T"i(B1,TM$GRA(P`$(B0,TEWh(B1,TM9(B0,T7Uh(B10,T"Vi(B1,T9(B - ,TE'5RA(B0,T7Uh(B10,T7h(B1,TR9`$(B0,TEWh(B1,TM9`AR(B0,TJl(B1,Td;(B. +>> ,TEM'`$0EWh1M9`AR0Jl10"Vi19E'04Y1(B, ,T"3P07Uh10BQ1'!40;Xh1A!ER'M0BYh1(B. 0,T7h1R9(P>:0Gh1R0"i1M$GRA(P`$0EWh1M907Uh10"Vi19(B + ,TE'5RA07Uh107h1R9`$0EWh1M9`AR0Jl1d;(B. -* ,T!C(B0,T3U(B10,T7Uh(B10,TMU(B1,TaA!(B0,TJl(B1,TK(B0,TBX(B1,T4*P(B0,T'Q(B1,T!(B (hang up) +* ,T!C03U107Uh10MU1aA!0Jl1K0BX14*P0'Q1!(B (hang up) ---------------------------- -0,T6i(B1,TR(B0,TMU(B1,TaA!(B0,TJl(B1,TK(B0,TBX(B1,T4aEPd(B0,TAh(B1,T5M:J9M'$S(B0,TJQh(B1,T'c4f(B, 0,T7h(B1,TR9JRARC6B!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'd(B0,T4i(B1,TM(B0,TBh(B1,TR';EM4(B0,T@Q(B1,TBb4Bc(B0,T*i(B1 -,T$S(B0,TJQh(B1,T'(B C-g. 0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g ,Tc9!RCB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'(B0,T7Uh(B1,T!S(B0,TEQ(B1,T'7S'R9M(B0,TBYh(B1,Td(B0,T4i(B1. +0,T6i1R0MU1aA!0Jl1K0BX14aEPd0Ah15M:J9M'$S0JQh1'c4f(B, 0,T7h1R9JRARC6B!`0ET1!$S0JQh1'd04i1M0Bh1R';EM40@Q1Bb4Bc0*i1(B +,T$S0JQh1'(B C-g. 0,T7h1R9JRARC6c0*i1$S0JQh1'(B C-g ,Tc9!RCB!`0ET1!$S0JQh1'07Uh1!S0EQ1'7S'R9M0BYh1d04i1(B. -0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g ,T`(B0,T>Wh(B1,TMB!`(B0,TET(B1,T!(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,TK(B0,TCW(B1,TM$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,T;i(B1,TM9M(B0,TBYh(B1,Td(B0,T4i(B1. +0,T7h1R9JRARC6c0*i1$S0JQh1'(B C-g ,T`0>Wh1MB!`0ET1!05Q1G`E"MR0Cl10!T1G`A905l1K0CW1M$S0JQh1'07Uh107h1R9!S0EQ1'0;i1M9M0BYh1d04i1(B. ->> ,TEM'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 100 ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(Pc(B0,TKi(B10,TAU(B10,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T`(B0,T;g(B1,T9(B 100, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-g. - 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-f. ,T<E(B0,T7Uh(B1,Td(B0,T4i(B10,T!g(B10,T$W(B1,TM`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`$(B0,TEWh(B1,TM9d;`(B0,T>U(B1,TB'K(B0,T9Vh(B1,T'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,T`>CRP(B0,TGh(B1,TR(B0,T7h(B1,TR9d(B0,T4i(B1 - ,TB!`(B0,TET(B1,T!(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,Td;a(B0,TEi(B1,TG(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-g. +>> ,TEM'0;i1M9$S0JQh1'(B C-u 100 ,T`0>Wh1M07Uh1(Pc0Ki10AU105Q1G`E"MR0Cl10!T1G`A905l1`0;g19(B 100, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-g. + 0,T;i1M9$S0JQh1'(B C-f. ,T<E07Uh1d04i10!g10$W1M`$M0Cl1`+M0Cl1`$0EWh1M9d;`0>U1B'K09Vh1'05Q1G0MQ1!IC(B, ,T`>CRP0Gh1R07h1R9d04i1(B + ,TB!`0ET1!05Q1G`E"MR0Cl10!T1G`A905l1d;a0Ei1G04i1GB$S0JQh1'(B C-g. -0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B <ESC> ,Tb4Bd(B0,TAh(B1,Td(B0,T4i(B10,T5Qi(B1,T'c((B, 0,T7h(B1,TR9(B0,T!g(B1,TJRARC6(PB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9d(B0,T4i(B10,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-g. +0,T6i1R07h1R90;i1M9$S0JQh1'(B <ESC> ,Tb4Bd0Ah1d04i105Qi1'c((B, 0,T7h1R90!g1JRARC6(PB!`0ET1!$S0JQh1'09Qi19d04i104i1GB$S0JQh1'(B C-g. -* ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B0,T;T(B1,T47R'(B (disable) +* ,T$S0JQh1'07Uh106Y1!0;T147R'(B (disable) ------------------------ -,T$S(B0,TJQh(B1,T':R'$S(B0,TJQh(B1,T'(B0,T6Y(B1,T!(B0,T;T(B1,T47R'd(B0,TGi(B1 ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,T;i(B1,TM'(B0,T!Q(B1,T9d(B0,TAh(B1,Tc(B0,TKi(B10,T<Yi(B10,T7Uh(B1,T`(B0,TCTh(B1,TA(B0,T5i(B1,T9c(B0,T*i(B1 (beginning user) ,Tc(B0,T*i(B1,Td(B0,T4i(B1 -,Tb4Bd(B0,TAh(B1,Td(B0,T4i(B10,T5Qi(B1,T'c((B. +,T$S0JQh1':R'$S0JQh1'06Y1!0;T147R'd0Gi1(B ,T`0>Wh1M07Uh1(P0;i1M'0!Q19d0Ah1c0Ki10<Yi107Uh1`0CTh1A05i19c0*i1(B (beginning user) ,Tc0*i1d04i1(B +,Tb4Bd0Ah1d04i105Qi1'c((B. -0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T';CP`@7(B0,T9Ui(B1,Ta(B0,TEi(B1,TG(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(PaJ4'(B0,T"i(B1,TM$GRA(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9(B0,T$W(B1,TMMPdC(B, ,TaEP(P6RA(B -0,T7h(B1,TR9(B0,TGh(B1,TR(B0,T5i(B1,TM'!RC(P;CPAGE<E$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9K(B0,TCW(B1,TMd(B0,TAh(B1. +0,T6i1R07h1R90;i1M9$S0JQh1';CP`@709Ui1a0Ei1G(B, 0,TMU1aA!0Jl1(PaJ4'0"i1M$GRA0Gh1R$S0JQh1'09Qi190$W1MMPdC(B, ,TaEP(P6RA(B +0,T7h1R90Gh1R05i1M'!RC(P;CPAGE<E$S0JQh1'09Qi19K0CW1Md0Ah1(B. -0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B0,T7Uh(B1,T(P;CPAGE<E$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9((B0,TCT(B1,T'f(B, ,T!4(B0,T;Xh(B1,TA(B space ,T`(B0,T>Wh(B1,TM5M:(B0,TBW(B1,T9(B0,TBQ(B1,T9$GRA(B0,T5i(B1,TM'!RC(B. -,Tb4B;C!(B0,T5T(B1,Ta(B0,TEi(B1,TG(B, 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,T5i(B1,TM'!RC(P;CPAGE<E$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B0,T;T(B1,T47R'd(B0,TGi(B1, 0,T!g(B1,T5M:(B "n" ,T`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. +0,T6i1R07h1R905i1M'!RC07Uh1(P;CPAGE<E$S0JQh1'09Qi19(0CT1'f(B, ,T!40;Xh1A(B space ,T`0>Wh1M5M:0BW190BQ19$GRA05i1M'!RC(B. +,Tb4B;C!05T1a0Ei1G(B, 0,T6i1R07h1R9d0Ah105i1M'!RC(P;CPAGE<E$S0JQh1'07Uh106Y1!0;T147R'd0Gi1(B, 0,T!g15M:(B "n" ,T`07h1R09Qi19(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-l (0,T+Vh(B1,T'`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B0,T;T(B1,T47R'd(B0,TGi(B1), ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B "n" ,T`(B0,T>Wh(B1,TM`(B0,T;g(B1,T9!RC5M:(B +>> ,TEM'c0*i1$S0JQh1'(B C-x C-l (0,T+Vh1'`0;g19$S0JQh1'07Uh106Y1!0;T147R'd0Gi1(B), ,Ta0Ei1G0;i1M9(B "n" ,T`0>Wh1M`0;g19!RC5M:(B ,T$S6RA(B. -* 0,TGT(B1,T9b4(B0,TGl(B1 (window) +* 0,TGT19b40Gl1(B (window) ---------------- -0,TMU(B1,TaA!(B0,TJl(B1,TJRARC6(B0,TAU(B1,Td(B0,T4i(B1,TKERB(B0,TGT(B1,T9b4(B0,TGl(B1, ,Ta(B0,T5h(B1,TEP(B0,TGT(B1,T9b4(B0,TGl(B10,T!g(B1,T(PaJ4'<E"M'(B0,T"i(B1,TM$GRA"M'59`M'(B. ,T`CR(P(B -,TM(B0,T8T(B1,T:RB(B0,T6V(B1,T'(B0,TGT(B10,T8U(B1,T!RCc(B0,T*i(B1,Ta::KERB(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,TEQ(B1,T'(R!(B0,T9Ui(B1. ,T5M9(B0,T9Ui(B1,T(P!(B0,TEh(B1,TRG(B0,T6V(B1,T'(B0,TGT(B10,T8U(B1,T!RC(B0,T;T(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B1,Td(B0,TAh(B10,T5i(B1,TM'(B -,T!RC(B, ,Ta(B0,TEi(B1,TG!(B0,TEQ(B1,T:d;c(B0,T*i(B1,T`(B0,T>U(B1,TB'(B0,TGT(B1,T9b4(B0,TGl(B1,T`(B0,T4U(B1,TBG(B. 0,T+Vh(B1,T'JRARC67Sd(B0,T4i(B10,T4Q(B1,T'(B0,T9Ui(B1: +0,TMU1aA!0Jl1JRARC60AU1d04i1KERB0GT19b40Gl1(B, ,Ta05h1EP0GT19b40Gl10!g1(PaJ4'<E"M'0"i1M$GRA"M'59`M'(B. ,T`CR(P(B +,TM08T1:RB06V1'0GT108U1!RCc0*i1a::KERB0GT19b40Gl1K0EQ1'(R!09Ui1(B. ,T5M909Ui1(P!0Eh1RG06V1'0GT108U1!RC0;T140GT19b40Gl107Uh1d0Ah105i1M'(B +,T!RC(B, ,Ta0Ei1G!0EQ1:d;c0*i1`0>U1B'0GT19b40Gl1`04U1BG(B. 0,T+Vh1'JRARC67Sd04i104Q1'09Ui1(B: - C-x 1 ,TK(B0,T9Vh(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B1 (0,T$W(B1,TM!RC(B0,T;T(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,TMWh(B1,T9f(B 0,T7Qi(B1,T'KA4(B) + C-x 1 ,TK09Vh1'0GT19b40Gl1(B (0,T$W1M!RC0;T140GT19b40Gl10MWh19f(B 0,T7Qi1'KA4(B) -0,T9Qh(B1,T9(B0,T$W(B1,TM`(B0,T>U(B1,TB'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x ,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB`E"(B 1. ,T$S(B0,TJQh(B1,T'(B C-x 1 ,T(P"BRB(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B10,TAU(B1 -,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TM(B0,TBYh(B1 ,Tc(B0,TKi(B1,T`(B0,T5g(B1,TAK(B0,T9i(B1,TR(M(B. 0,T+Vh(B1,T'(P`(B0,T;g(B1,T9!RC(B0,T;T(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,TMWh(B1,T9f(B 0,T7Qi(B1,T'KA4(B. +0,T9Qh190$W1M`0>U1B'0;i1M9$S0JQh1'(B C-x ,Ta0Ei1G5RA04i1GB`E"(B 1. ,T$S0JQh1'(B C-x 1 ,T(P"BRB0GT19b40Gl107Uh10AU1(B +,T`$M0Cl1`+M0Cl1M0BYh1(B ,Tc0Ki1`05g1AK09i1R(M(B. 0,T+Vh1'(P`0;g19!RC0;T140GT19b40Gl10MWh19f(B 0,T7Qi1'KA4(B. ->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TAR(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T9Ui(B1 ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 0 C-l. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h k C-f. - ,T(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TGT(B1,T9b4(B0,TGl(B10,T9Ui(B10,TAU(B1,T"9R4(B0,TBh(B1,TME'(B ,T"3P(B0,T7Uh(B10,TAU(B10,TGT(B1,T9b4(B0,TGl(B1,TcK(B0,TAh(B1,T`(B0,T!T(B1,T4(B0,T"Vi(B1,T9aJ4'<E"M'`M!JRC(B0,T7Uh(B1,T`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B - ,T$S(B0,TJQh(B1,T'"M'(B C-f. +>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1AR0BQ1':CC07Q1409Ui1(B ,Ta0Ei1G0;i1M9$S0JQh1'(B C-u 0 C-l. +>> 0,T;i1M9$S0JQh1'(B C-h k C-f. + ,T(P`0Kg190Gh1R0GT19b40Gl109Ui10AU1"9R40Bh1ME'(B ,T"3P07Uh10AU10GT19b40Gl1cK0Ah1`0!T140"Vi19aJ4'<E"M'`M!JRC07Uh1`0!Uh1BG0!Q1:(B + ,T$S0JQh1'"M'(B C-f. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,Ta(B0,TEi(B1,TG(P>:(B0,TGh(B1,TR(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B1,TaJ4'CRB!RC"M'`M!JRCKRBd;(B. +>> 0,T;i1M9$S0JQh1'(B C-x 1 ,Ta0Ei1G(P>:0Gh1R0GT19b40Gl107Uh1aJ4'CRB!RC"M'`M!JRCKRBd;(B. -,T$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T5h(B1,TR'(R!$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Td(B0,T4i(B1,T!(B0,TEh(B1,TRGAR5C'(B0,T7Uh(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T;CP!M:(B0,T4i(B1,TGBJM'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B. ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T`(B0,TCTh(B1,TA(B0,T5i(B1,T9(B -0,T4i(B1,TGB(B0,TMQ(B1,T!"CP(B C-x. 0,TAU(B10,T*X(B1,T4"M'$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T"Vi(B1,T9(B0,T5i(B1,T9(B0,T4i(B1,TGB(B0,TMQ(B1,T!"CP(B C-x; 0,TJh(B1,TG9cK(B0,T-h(B1,T(P`(B0,T!Uh(B1,TBG(B0,T"i(B1,TM'(B0,T!Q(B1,T:!RC(B -0,T(Q(B1,T4!RC(B0,T!Q(B1,T:(B0,TGT(B1,T9b4(B0,TGl(B1, ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, 0,T:Q(B1,T?`?M(B0,TCl(B1, ,TaEP(B0,TMWh(B1,T9f(B ,Tc97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B. ,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,T(P(B -,T;CP!M:(B0,T4i(B1,TGBJM'(B, ,TJRA(B, ,TK(B0,TCW(B1,TM(B0,TJUh(B10,T5Q(B1,TG(B0,TMQ(B1,T!IC(B. +,T$S0JQh1'09Ui105h1R'(R!$S0JQh1'07Uh1d04i1!0Eh1RGAR5C'07Uh10Gh1R$S0JQh1'09Ui1;CP!M:04i1GBJM'05Q1G0MQ1!IC(B. ,T$S0JQh1'09Ui1`0CTh1A05i19(B +0,T4i1GB0MQ1!"CP(B C-x. 0,TAU10*X14"M'$S0JQh1'07Uh10"Vi1905i1904i1GB0MQ1!"CP(B C-x; 0,TJh1G9cK0-h1(P`0!Uh1BG0"i1M'0!Q1:!RC(B +0,T(Q14!RC0!Q1:0GT19b40Gl1(B, ,Ta0?i1A0"i1M0AY1E(B, 0,T:Q1?`?M0Cl1(B, ,TaEP0MWh19f(B ,Tc97S9M'`04U1BG0!Q19(B. ,T$S0JQh1'`K0Eh1R09Ui1(P(B +,T;CP!M:04i1GBJM'(B, ,TJRA(B, ,TK0CW1M0JUh105Q1G0MQ1!IC(B. * ,T!RCa7C!(B (inserting) ,TaEP!RCE:(B (deleting) ---------------------------------------------- -0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B0,T7Uh(B1,T(Pa7C!(B0,T"i(B1,TM$GRA(B, 0,T!g(B1,TJRARC67Sd(B0,T4i(B1,Tb4B!RC(B0,T;i(B1,TM9(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9`(B0,T"i(B1,TRd;`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. -0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B10,T7h(B1,TR9`(B0,TKg(B1,T9(B, ,T`(B0,T*h(B1,T9(B A, 7, *, ,T`(B0,T;g(B1,T9(B0,T5i(B1,T9(B, 0,T5h(B1,TR'(B0,T!g(B10,T6W(B1,TM(B0,TGh(B1,TR`(B0,T;g(B1,T9(B0,T"i(B1,TM$GRAaEP(B0,T6Y(B1,T!a7C!`(B0,T"i(B1,TRd;(B -0,T7Q(B1,T9(B0,T7U(B10,T7Uh(B10,T;i(B1,TM9(B. ,T!4(B0,T;Xh(B1,TA(B <Return> ,Tc9!RC(B0,T7Uh(B1,T(Pa7C!(B0,TMQ(B1,T!"CP(B Newline. +0,T6i1R07h1R905i1M'!RC07Uh1(Pa7C!0"i1M$GRA(B, 0,T!g1JRARC67Sd04i1b4B!RC0;i1M90"i1M$GRA09Qi19`0"i1Rd;`07h1R09Qi19(B. +0,T5Q1G0MQ1!IC07Uh107h1R9`0Kg19(B, ,T`0*h19(B A, 7, *, ,T`0;g1905i19(B, 0,T5h1R'0!g106W1M0Gh1R`0;g190"i1M$GRAaEP06Y1!a7C!`0"i1Rd;(B +0,T7Q1907U107Uh10;i1M9(B. ,T!40;Xh1A(B <Return> ,Tc9!RC07Uh1(Pa7C!0MQ1!"CP(B Newline. -0,T7h(B1,TR9JRARC6E:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T5Q(B1,TG(B0,TJX(B1,T4(B0,T7i(B1,TRB(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9`(B0,T"i(B1,TRd;d(B0,T4i(B1,Tb4B!RC!4(B0,T;Xh(B1,TA(B <Delete>. 0,T;Xh(B1,TA(B -<Delete> ,T`(B0,T;g(B1,T9(B0,T;Xh(B1,TAf(B ,TK(B0,T9Vh(B1,T':9a(B0,T;i(B1,T9(B0,T>T(B1,TA(B0,T>l(B1, 0,T+Vh(B1,T':R'$(B0,TCQi(B1,T'MR(`(B0,T;g(B1,T9(B0,T;Xh(B1,TA(B0,T7Uh(B1,T!S(B0,T!Q(B1,T:(B0,T4i(B1,TGB(B "Del". ,Tc9:R'(B -,T!C(B0,T3U(B1, 0,T;Xh(B1,TA(B "Backspace" 0,T!g(B1,T7SK(B0,T9i(B1,TR(B0,T7Uh(B1,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:(B0,T;Xh(B1,TA(B <Delete>, ,Ta(B0,T5h(B10,T!g(B1,Td(B0,TAh(B1,T`JAMd;(B. +0,T7h1R9JRARC6E:05Q1G0MQ1!IC05Q1G0JX1407i1RB07Uh107h1R9d04i10;i1M9`0"i1Rd;d04i1b4B!RC!40;Xh1A(B <Delete>. 0,T;Xh1A(B +<Delete> ,T`0;g190;Xh1Af(B ,TK09Vh1':9a0;i190>T1A0>l1(B, 0,T+Vh1':R'$0CQi1'MR(`0;g190;Xh1A07Uh1!S0!Q1:04i1GB(B "Del". ,Tc9:R'(B +,T!C03U1(B, 0,T;Xh1A(B "Backspace" 0,T!g17SK09i1R07Uh1`0*h19`04U1BG0!Q1:0;Xh1A(B <Delete>, ,Ta05h10!g1d0Ah1`JAMd;(B. -,Tb4B(B0,T7Qh(B1,TGd;a(B0,TEi(B1,TG(B, 0,T;Xh(B1,TA(B <Delete> ,T(Pc(B0,T*i(B1,TJSK(B0,TCQ(B1,T:E:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B1,TM(B0,TBYh(B1,TK(B0,T9i(B1,TR5SaK(B0,T9h(B1,T'"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B. +,Tb4B07Qh1Gd;a0Ei1G(B, 0,T;Xh1A(B <Delete> ,T(Pc0*i1JSK0CQ1:E:05Q1G0MQ1!IC07Uh1M0BYh1K09i1R5SaK09h1'"M'`$M0Cl1`+M0Cl10;Q1(0(X10:Q19(B. ->> ,TEM'7S(B0,T4Y(B1--0,T;i(B1,TM9(B0,T5Q(B1,TG(B0,TMQ(B1,T!ICc4f(B 0,TJQ(B1,T!JM'JRA(B0,T5Q(B1,TG(B, ,Ta(B0,TEi(B1,TGE:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T9Qi(B1,T9MM!b4B!4(B0,T;Xh(B1,TA(B - <Delete> 0,TJQ(B1,T!JM'JRA$(B0,TCQi(B1,T'(B. ,Td(B0,TAh(B10,T5i(B1,TM'(B0,T!Q(B1,T'GE(B0,TGh(B1,TR(P7Sc(B0,TKi(B10,T"i(B1,TM$GRAc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Ui(B1,T`;(B0,TEUh(B1,TB9d;(B; - 0,T7h(B1,TR9(Pd(B0,TAh(B1,T7Sc(B0,TKi(B10,T"i(B1,TM$GRAc9(B0,T5i(B1,T9)(B0,T:Q(B1,T:"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B1,T`;(B0,TEUh(B1,TB9a;E'(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9`(B0,T>U(B1,TB')(B0,T:Q(B1,T:JS`9R`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. +>> ,TEM'7S04Y1(B--0,T;i1M905Q1G0MQ1!ICc4f(B 0,TJQ1!JM'JRA05Q1G(B, ,Ta0Ei1GE:05Q1G0MQ1!IC09Qi19MM!b4B!40;Xh1A(B + <Delete> 0,TJQ1!JM'JRA$0CQi1'(B. ,Td0Ah105i1M'0!Q1'GE0Gh1R(P7Sc0Ki10"i1M$GRAc9a0?i1A0"i1M0AY1E09Ui1`;0EUh1B9d;(B; + 0,T7h1R9(Pd0Ah17Sc0Ki10"i1M$GRAc905i19)0:Q1:"M'0$Yh10AW1M!RCc0*i1`;0EUh1B9a;E'(B. 0,T9Uh1`0;g19`0>U1B')0:Q1:JS`9R`07h1R09Qi19(B. -,T`(B0,TAWh(B1,TM(B0,T"i(B1,TM$GRAc9:CC(B0,T7Q(B1,T4BRG`(B0,T!T(B1,T9!(B0,TGh(B1,TRK(B0,T9Vh(B1,T':CC(B0,T7Q(B1,T4"M'K(B0,T9i(B1,TR(M(B, 0,T"i(B1,TM$GRAc9:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(P(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'(B -,Td;(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;"M'K(B0,T9i(B1,TR(M(B. 0,TMQ(B1,T!"CP(B backslash ("\") 0,T7Uh(B1,T;ERB"M'"M:"GR(B0,TAW(B1,TM(P(B0,T:h(B1,T'(B0,T*Ui(B1 -0,TGh(B1,TR(B0,T"i(B1,TM$GRA"M':CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'd;(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4(B0,T6Q(B1,T4d;(B. +,T`0AWh1M0"i1M$GRAc9:CC07Q14BRG`0!T19!0Gh1RK09Vh1':CC07Q14"M'K09i1R(M(B, 0,T"i1M$GRAc9:CC07Q1409Qi19(P05h1M`09Wh1M'(B +,Td;0BQ1':CC07Q1406Q14d;"M'K09i1R(M(B. 0,TMQ1!"CP(B backslash ("\") 0,T7Uh1;ERB"M'"M:"GR0AW1M(P0:h1'0*Ui1(B +0,TGh1R0"i1M$GRA"M':CC07Q1409Qi1905h1M`09Wh1M'd;0BQ1':CC07Q1406Q14d;(B. ->> 0,T;i(B1,TM9(B0,T"i(B1,TM$GRA(9!CP(B0,T7Qh(B1,T'(B0,T6V(B1,T'"M:"GR(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B0,T5h(B1,TMd;(B0,TMU(B1,T!(B. 0,T7h(B1,TR9(P`(B0,TKg(B1,T9!RCaJ4'<E"M'(B - ,T:CC(B0,T7Q(B1,T4(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'(B0,T!Q(B1,T9(B. +>> 0,T;i1M90"i1M$GRA(9!CP07Qh1'06V1'"M:"GR(B, ,Ta0Ei1G0;i1M905h1Md;0MU1!(B. 0,T7h1R9(P`0Kg19!RCaJ4'<E"M'(B + ,T:CC07Q1405h1M`09Wh1M'0!Q19(B. ->> ,Tc(B0,T*i(B10,T;Xh(B1,TA(B <Delete> ,T`(B0,T>Wh(B1,TME:(B0,T"i(B1,TM$GRAMM!(9!CP(B0,T7Qh(B1,T'(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9>M(B0,T4U(B10,T!Q(B1,T:$GRA!(B0,TGi(B1,TR'"M'K(B0,T9i(B1,TR(M(B. - ,T:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T5h(B1,TM`(B0,T9Wh(B1,TM'(B0,T!Q(B1,T9(B0,T!g(B1,T(PKRBd;(B. +>> ,Tc0*i10;Xh1A(B <Delete> ,T`0>Wh1ME:0"i1M$GRAMM!(9!CP07Qh1'0"i1M$GRA09Qi19>M04U10!Q1:$GRA!0Gi1R'"M'K09i1R(M(B. + ,T:CC07Q1407Uh105h1M`09Wh1M'0!Q190!g1(PKRBd;(B. -0,T7h(B1,TR9JRARC6E:(B0,TMQ(B1,T!"CP(B Newline ,TMM!d(B0,T4i(B1,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,TMWh(B1,T9f(B. ,T!RCE:(B0,TMQ(B1,T!"CP(B Newline -,TCPK(B0,TGh(B1,TR'JM':CC(B0,T7Q(B1,T4(P`(B0,T;g(B1,T9!RCCGAJM':CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9`(B0,T"i(B1,TR`(B0,T;g(B1,T9:CC(B0,T7Q(B1,T4`(B0,T4U(B1,TBG(B. 0,T6i(B1,TR<E"M'!RCCGAJM'(B -,T:CC(B0,T7Q(B1,T4`(B0,T"i(B1,TR(B0,T4i(B1,TGB(B0,T!Q(B1,T97Sc(B0,TKi(B1,T:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9BRG`(B0,T!T(B1,T9!(B0,TGh(B1,TR:CC(B0,T7Q(B1,T4"M'K(B0,T9i(B1,TR(Ma(B0,TEi(B1,TG(B, ,T:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B0,T!g(B1,T(P`(B0,T;g(B1,T9:CC(B0,T7Q(B1,T4(B -,Ta::(B0,T5h(B1,TM`(B0,T9Wh(B1,TM'(B. +0,T7h1R9JRARC6E:0MQ1!"CP(B Newline ,TMM!d04i1`0*h19`04U1BG0!Q1:05Q1G0MQ1!IC0MWh19f(B. ,T!RCE:0MQ1!"CP(B Newline +,TCPK0Gh1R'JM':CC07Q14(P`0;g19!RCCGAJM':CC07Q1409Qi19`0"i1R`0;g19:CC07Q14`04U1BG(B. 0,T6i1R<E"M'!RCCGAJM'(B +,T:CC07Q14`0"i1R04i1GB0!Q197Sc0Ki1:CC07Q1409Qi19BRG`0!T19!0Gh1R:CC07Q14"M'K09i1R(Ma0Ei1G(B, ,T:CC07Q1409Qi190!g1(P`0;g19:CC07Q14(B +,Ta::05h1M`09Wh1M'(B. ->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M':CC(B0,T7Q(B1,T4(B, ,Ta(B0,TEi(B1,TG!4(B0,T;Xh(B1,TA(B <Delete>. - ,T:CC(B0,T7Q(B1,T4(B0,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(P(B0,T6Y(B1,T!`(B0,T*Wh(B1,TMA`(B0,T"i(B1,TR(B0,T!Q(B1,T::CC(B0,T7Q(B1,T4(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B. +>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;0BQ1'5SaK09h1'`0CTh1A05i19"M':CC07Q14(B, ,Ta0Ei1G!40;Xh1A(B <Delete>. + ,T:CC07Q140;Q1(0(X10:Q19(P06Y1!`0*Wh1MA`0"i1R0!Q1::CC07Q140!h1M9K09i1R(B. ->> ,T!4(B0,T;Xh(B1,TA(B <Return> ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(Pa7C!(B0,TMQ(B1,T!"CP(B Newline ,T`(B0,T"i(B1,TRd;cK(B0,TAh(B1. +>> ,T!40;Xh1A(B <Return> ,T`0>Wh1M07Uh1(Pa7C!0MQ1!"CP(B Newline ,T`0"i1Rd;cK0Ah1(B. -,T$GC(Sd(B0,TGi(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1,T"M'(B0,TMU(B1,TaA!(B0,TJl(B1,T(PJRARC67Sc(B0,TKi(B1,T;CPAGE<E(B0,T+i(B1,TSd(B0,T4i(B1,TKERB$(B0,TCQi(B1,T'(B; 0,T+Vh(B1,T'CGA(B0,T6V(B1,T'(B -,T(S9G9(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T4i(B1,TGB(B. ,T!RC;CPAGE<E(B0,T+i(B1,TS"M'!RC(B0,T;i(B1,TM9(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T$W(B1,TM!RCa7C!(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC`K(B0,TEh(B1,TR(B0,T9Qi(B1,T9`(B0,T"i(B1,TRd;(B. +,T$GC(Sd0Gi10Gh1R$S0JQh1'0Jh1G9cK0-h1"M'0MU1aA!0Jl1(PJRARC67Sc0Ki1;CPAGE<E0+i1Sd04i1KERB$0CQi1'(B; 0,T+Vh1'CGA06V1'(B +,T(S9G905Q1G0MQ1!IC04i1GB(B. ,T!RC;CPAGE<E0+i1S"M'!RC0;i1M905Q1G0MQ1!IC0$W1M!RCa7C!05Q1G0MQ1!IC`K0Eh1R09Qi19`0"i1Rd;(B. ->> ,TEM'7S(B0,T4Y(B1,T`(B0,T4Uk(B1,TBG(B0,T9Ui(B1--0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 8 * ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,T;i(B1,TM9JRB(B0,TMQ(B1,T!"CP(B ********. +>> ,TEM'7S04Y1`04Uk1BG09Ui1(B--0,T;i1M9$S0JQh1'(B C-u 8 * ,T`0>Wh1M07Uh1(P0;i1M9JRB0MQ1!"CP(B ********. -0,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TCU(B1,TB9(B0,TCYi(B10,T6V(B1,T'(B0,TGT(B10,T8U(B1,T!RC`(B0,T:Wi(B1,TM'(B0,T5i(B1,T9c9!RC(B0,T;i(B1,TM9:R'(B0,TJTh(B1,T':R'M(B0,TBh(B1,TR'c9(B0,TMU(B1,TaA!(B0,TJl(B1,TaEP!RCa(B0,T!i(B1,Td"(B -0,T"i(B1,TM(B0,T<T(B1,T4>ER4(B0,T5h(B1,TR'f(B. 0,T7h(B1,TR9JRARC6(B0,T7Uh(B1,T(PE:(B0,T7U(B1,TEP$SK(B0,TCW(B1,TM(B0,T7U(B1,TEP:CC(B0,T7Q(B1,T4c97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B. 0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9(B -,T!RCJ(B0,TCX(B1,T;!RCE:(B0,T4i(B1,TGB(B0,TGT(B10,T8U(B10,T5h(B1,TR'f(B: +0,T7h1R9d04i1`0CU1B90CYi106V1'0GT108U1!RC`0:Wi1M'05i19c9!RC0;i1M9:R'0JTh1':R'M0Bh1R'c90MU1aA!0Jl1aEP!RCa0!i1d"(B +0,T"i1M0<T14>ER405h1R'f(B. 0,T7h1R9JRARC607Uh1(PE:07U1EP$SK0CW1M07U1EP:CC07Q14c97S9M'`04U1BG0!Q19(B. 0,T5h1Md;09Ui1`0;g19(B +,T!RCJ0CX1;!RCE:04i1GB0GT108U105h1R'f(B: - <Delete> ,TE:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B1,TM(B0,TBYh(B1,TK(B0,T9i(B1,TR5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1 - C-d ,TE:(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T7Uh(B1,TM(B0,TBYh(B10,T6Q(B1,T4d;K(B0,TEQ(B1,T'5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1 + <Delete> ,TE:05Q1G0MQ1!IC07Uh1M0BYh1K09i1R5SaK09h1'`$M0Cl1`+M0Cl1(B + C-d ,TE:05Q1G0MQ1!IC07Uh1M0BYh106Q14d;K0EQ1'5SaK09h1'`$M0Cl1`+M0Cl1(B - M-<Delete> 0,T&h(B1,TR$S(B0,T7Uh(B1,TM(B0,TBYh(B1,TK(B0,T9i(B1,TR5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1 - M-d 0,T&h(B1,TR$S(B0,T7Uh(B1,TM(B0,TBYh(B10,T6Q(B1,T4d;K(B0,TEQ(B1,T'5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1 + M-<Delete> 0,T&h1R$S07Uh1M0BYh1K09i1R5SaK09h1'`$M0Cl1`+M0Cl1(B + M-d 0,T&h1R$S07Uh1M0BYh106Q14d;K0EQ1'5SaK09h1'`$M0Cl1`+M0Cl1(B - C-k 0,T&h(B1,TR(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T5Qi(B1,T'a(B0,T5h(B1,T5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(9(B0,T6V(B1,T'(B0,T7i(B1,TRB:CC(B0,T7Q(B1,T4(B - M-k 0,T&h(B1,TR(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T5Qi(B1,T'a(B0,T5h(B1,T5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(9(B0,T6V(B1,T'(B0,T7i(B1,TRB"M';CPbB$(B + C-k 0,T&h1R05Q1G0MQ1!IC05Qi1'a05h15SaK09h1'`$M0Cl1`+M0Cl1d;(906V1'07i1RB:CC07Q14(B + M-k 0,T&h1R05Q1G0MQ1!IC05Qi1'a05h15SaK09h1'`$M0Cl1`+M0Cl1d;(906V1'07i1RB"M';CPbB$(B -,T$GC(P(B0,TJQ(B1,T'`!5d(B0,T4i(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B <Delete> ,TaEP(B C-d, 0,T!Q(B1,T:(B M-<Delete> ,TaEP(B M-d ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B -,Tc97S9M'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B0,T7Uh(B1,T`(B0,TCTh(B1,TA(R!$S(B0,TJQh(B1,T'(B C-f ,TaEP(B M-f (,Ta(B0,TAi(B10,TGh(B1,TR(B0,T;Xh(B1,TA(B <Delete> ,T(Pd(B0,TAh(B1,Tc(B0,T*h(B10,T5Q(B1,TG(B0,TMQ(B1,T!IC(B -0,T!g(B1,T5RA(B, ,Ta(B0,T5h(B1,Td(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,T;g(B1,T9`(B0,TCWh(B1,TM'JS(B0,T$Q(B1,T-(B). ,T$S(B0,TJQh(B1,T'(B C-k ,TaEP(B M-k 0,T!g(B1,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:(B C-e ,TaEP(B M-e 0,T7Uh(B1 -,T7S'R9c9(B0,TEQ(B1,T!I3P`(B0,T4U(B1,TBG(B0,T!Q(B1,T9a(B0,T5h(B1,T$9EPCP(B0,T4Q(B1,T:(B, 0,T$W(B1,TMCP(B0,T4Q(B1,T:(B0,T7Uh(B1,T`(B0,T;g(B1,T9:CC(B0,T7Q(B1,T4(B0,T!Q(B1,T:;CPbB$(B. +,T$GC(P0JQ1'`!5d04i10Gh1R$S0JQh1'(B <Delete> ,TaEP(B C-d, 0,T!Q1:(B M-<Delete> ,TaEP(B M-d ,T`0;g19$S0JQh1'(B +,Tc97S9M'`04U1BG0!Q1907Uh1`0CTh1A(R!$S0JQh1'(B C-f ,TaEP(B M-f (,Ta0Ai10Gh1R0;Xh1A(B <Delete> ,T(Pd0Ah1c0*h105Q1G0MQ1!IC(B +0,T!g15RA(B, ,Ta05h1d0Ah1d04i1`0;g19`0CWh1M'JS0$Q1-(B). ,T$S0JQh1'(B C-k ,TaEP(B M-k 0,T!g1`0*h19`04U1BG0!Q1:(B C-e ,TaEP(B M-e 0,T7Uh1(B +,T7S'R9c90EQ1!I3P`04U1BG0!Q19a05h1$9EPCP04Q1:(B, 0,T$W1MCP04Q1:07Uh1`0;g19:CC07Q140!Q1:;CPbB$(B. -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9E:(B0,T5Q(B1,TG(B0,TMQ(B1,T!ICd;AR!!(B0,TGh(B1,TRK(B0,T9Vh(B1,T'(B0,T5Q(B1,TGc9$(B0,TCQi(B1,T'K(B0,T9Vh(B1,T'f(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(P(B0,T:Q(B1,T9(B0,T7V(B1,T!(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!E:d;d(B0,TGi(B1 -,T`(B0,T>Wh(B1,TM(B0,TGh(B1,TR(B0,T7h(B1,TR9(PJRARC6`(B0,TCU(B1,TB!!(B0,TEQ(B1,T:ARd(B0,T4i(B10,TMU(B1,T!(B. ,T!RC`(B0,TCU(B1,TB!!(B0,TEQ(B1,T:AR"M'(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B0,T9Qi(B1,T9`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B -",T!RC`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B (yanking)". 0,T7h(B1,TR9JRARC6`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;!(B0,TEQ(B1,T:ARd(B0,T4i(B1,Tb4Bc(B0,TKi(B1 -,T;CR!/c9(B0,T7Uh(B10,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B, ,TK(B0,TCW(B1,TM;CR!/c9(B0,T7Uh(B1,Tc4f(B ,T"M'(B0,T"i(B1,TM$GRA(B0,T!g(B1,Td(B0,T4i(B1. 0,T7h(B1,TR9JRARC6`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B -0,T!Uh(B1,T$(B0,TCQi(B1,T'(B0,T!g(B1,Td(B0,T4i(B1,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P7SJS`9R(B0,T"i(B1,TM$GRA(B. ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RC`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T$W(B1,TM(B C-y. +,T`0AWh1M07h1R9E:05Q1G0MQ1!ICd;AR!!0Gh1RK09Vh1'05Q1Gc9$0CQi1'K09Vh1'f(B, 0,TMU1aA!0Jl1(P0:Q1907V1!0"i1M$GRA07Uh106Y1!E:d;d0Gi1(B +,T`0>Wh1M0Gh1R07h1R9(PJRARC6`0CU1B!!0EQ1:ARd04i10MU1!(B. ,T!RC`0CU1B!!0EQ1:AR"M'0"i1M$GRA07Uh106Y1!0&h1Rd;09Qi19`0CU1B!0Gh1R(B +",T!RC`0CU1B!0$W19(B (yanking)". 0,T7h1R9JRARC6`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1Rd;!0EQ1:ARd04i1b4Bc0Ki1(B +,T;CR!/c907Uh107Uh106Y1!0&h1Rd;(B, ,TK0CW1M;CR!/c907Uh1c4f(B ,T"M'0"i1M$GRA0!g1d04i1(B. 0,T7h1R9JRARC6`0CU1B!0$W190"i1M$GRA(B +0,T!Uh1$0CQi1'0!g1d04i1`0>Wh1M07Uh1(P7SJS`9R0"i1M$GRA(B. ,T$S0JQh1'07Uh1c0*i1c9!RC`0CU1B!0$W190$W1M(B C-y. -0,TJTh(B1,T'(B0,T7Uh(B1,T$GC(B0,TJQ(B1,T'`!5(B0,TMQ(B1,T9K(B0,T9Vh(B1,T'(B0,T$W(B1,TM(B0,T"i(B1,TMa5!(B0,T5h(B1,TR'CPK(B0,TGh(B1,TR'(B ",T!RC(B0,T&h(B1,TR(B (killing)" 0,T!Q(B1,T:(B ",T!RCE:(B -(deleting)". 0,TJTh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B "0,T&h(B1,TR(B (killed)" ,Td;(B0,T9Qi(B1,T9(B, ,TJRARC6(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B (yank) ,TARd(B0,T4i(B1, -,Ta(B0,T5h(B10,TJTh(B1,T'(B0,T7Uh(B10,T6Y(B1,T!(B ",TE:(B (deleted)" ,Td;(B0,T9Qi(B1,T9(B, ,Td(B0,TAh(B1,TJRARC6(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9ARd(B0,T4i(B1. ,Tb4B(B0,T7Qh(B1,TGd;(B, ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TJRARC6(B -,TE:(B0,T"i(B1,TM$GRAd(B0,T4i(B10,T7U(B1,TEPAR!f(B ,T(P`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9d(B0,TGi(B1, ,T"3P(B0,T7Uh(B1,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TE:d(B0,T4i(B10,T7U(B1,TEP(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,TK(B0,TCW(B1,TM:CC(B0,T7Q(B1,T4(B -,T`;(B0,TEh(B1,TRaEP`(B0,TGi(B1,T9GCC$(B, ,T(Pd(B0,TAh(B1,T`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!E:d;(B. +0,TJTh1'07Uh1$GC0JQ1'`!50MQ19K09Vh1'0$W1M0"i1Ma5!05h1R'CPK0Gh1R'(B ",T!RC0&h1R(B (killing)" 0,T!Q1:(B ",T!RCE:(B +(deleting)". 0,TJTh1'07Uh106Y1!(B "0,T&h1R(B (killed)" ,Td;09Qi19(B, ,TJRARC607Uh1(P`0CU1B!0$W19(B (yank) ,TARd04i1(B, +,Ta05h10JTh1'07Uh106Y1!(B ",TE:(B (deleted)" ,Td;09Qi19(B, ,Td0Ah1JRARC6(P`0CU1B!0$W19ARd04i1(B. ,Tb4B07Qh1Gd;(B, ,T$S0JQh1'07Uh1JRARC6(B +,TE:0"i1M$GRAd04i107U1EPAR!f(B ,T(P`0!g1:0"i1M$GRA09Qi19d0Gi1(B, ,T"3P07Uh1$S0JQh1'07Uh1E:d04i107U1EP05Q1G0MQ1!IC(B, ,TK0CW1M:CC07Q14(B +,T`;0Eh1RaEP`0Gi19GCC$(B, ,T(Pd0Ah1`0!g1:0"i1M$GRA07Uh106Y1!E:d;(B. ->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T'(B0,T(X(B1,T4`(B0,TCTh(B1,TA(B0,T5i(B1,T9"M':CC(B0,T7Q(B1,T4(B0,T7Uh(B1,Td(B0,TAh(B1,Tc(B0,T*h(B1,T:CC(B0,T7Q(B1,T4`;(B0,TEh(B1,TR(B. - ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-k ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,T&h(B1,TR(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,TM(B0,TBYh(B1,T:9:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-k 0,TMU(B1,T!$(B0,TCQi(B1,T'K(B0,T9Vh(B1,T'(B. 0,T7h(B1,TR9(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TMQ(B1,T!"CP(B Newline 0,T7Uh(B1,TM(B0,TBYh(B10,T7i(B1,TRB:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(P(B0,T6Y(B1,T!(B - 0,T&h(B1,TRd;(B. +>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;0BQ1'0(X14`0CTh1A05i19"M':CC07Q1407Uh1d0Ah1c0*h1:CC07Q14`;0Eh1R(B. + ,Ta0Ei1G0;i1M9$S0JQh1'(B C-k ,T`0>Wh1M07Uh1(P0&h1R0"i1M$GRA07Uh1M0BYh1:9:CC07Q1409Qi19(B. +>> 0,T;i1M9$S0JQh1'(B C-k 0,TMU1!$0CQi1'K09Vh1'(B. 0,T7h1R9(P`0Kg190Gh1R0MQ1!"CP(B Newline 0,T7Uh1M0BYh107i1RB:CC07Q1409Qi19(P06Y1!(B + 0,T&h1Rd;(B. -,T(P(B0,TJQ(B1,T'`!5d(B0,T4i(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B C-k ,T$S(B0,TJQh(B1,T'aC!(P(B0,T&h(B1,TR`(B0,T9Wi(B1,TM$GRA"M':CC(B0,T7Q(B1,T4(B, ,TaEP$S(B0,TJQh(B1,T'(B C-k ,T$S(B0,TJQh(B1,T'(B -0,T7Uh(B1,TJM'(P(B0,T&h(B1,TR:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B, ,TaEP(P"(B0,TBQ(B1,T::CC(B0,T7Q(B1,T4(B0,TMWh(B1,T9f(B 0,T7Uh(B1,T`K(B0,TEW(B1,TM(B0,T7Qi(B1,T'KA4(B0,T"Vi(B1,T9(B. ,T$S(B0,TJQh(B1,T'(B C-k 0,T(Q(B1,T4!RC(B0,T!Q(B1,T:(B -0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,Tc9(B0,TEQ(B1,T!I3P(B0,T7Uh(B1,Ta5!(B0,T5h(B1,TR'MM!d;(B: ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T(P(B0,T&h(B1,TRKERBf(B ,T:CC(B0,T7Q(B1,T4aEP`(B0,T9Wi(B1,TMKR"M'(B -0,T"i(B1,TM$GRA(B0,T4i(B1,TGB(B. 0,T9Uh(B1,Td(B0,TAh(B1,T`K(B0,TAW(B1,TM9!RC7S(B0,T+i(B1,TSa::;C!(B0,T5T(B1. ,T$S(B0,TJQh(B1,T'(B C-u 2 C-k ,T(P(B0,T&h(B1,TR(B0,T7Qi(B1,T'JM':CC(B0,T7Q(B1,T4(B -,T>(B0,TCi(B1,TMA(B0,T7Qi(B1,T'(B0,TMQ(B1,T!"CP(B Newline ,T"M':CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9f(B 0,T4i(B1,TGB(B; 0,T+Vh(B1,T'(B0,T5h(B1,TR'(R!!RC7S$S(B0,TJQh(B1,T'(B C-k ,TJM'$(B0,TCQi(B1,T'(B. +,T(P0JQ1'`!5d04i10Gh1R$S0JQh1'(B C-k ,T$S0JQh1'aC!(P0&h1R`09Wi1M$GRA"M':CC07Q14(B, ,TaEP$S0JQh1'(B C-k ,T$S0JQh1'(B +0,T7Uh1JM'(P0&h1R:CC07Q1409Qi19(B, ,TaEP(P"0BQ1::CC07Q140MWh19f(B 0,T7Uh1`K0EW1M07Qi1'KA40"Vi19(B. ,T$S0JQh1'(B C-k 0,T(Q14!RC0!Q1:(B +0,T5Q1G`E"MR0Cl10!T1G`A905l1c90EQ1!I3P07Uh1a5!05h1R'MM!d;(B: ,T$S0JQh1'09Ui1(P0&h1RKERBf(B ,T:CC07Q14aEP`09Wi1MKR"M'(B +0,T"i1M$GRA04i1GB(B. 0,T9Uh1d0Ah1`K0AW1M9!RC7S0+i1Sa::;C!05T1(B. ,T$S0JQh1'(B C-u 2 C-k ,T(P0&h1R07Qi1'JM':CC07Q14(B +,T>0Ci1MA07Qi1'0MQ1!"CP(B Newline ,T"M':CC07Q1409Qi19f(B 0,T4i1GB(B; 0,T+Vh1'05h1R'(R!!RC7S$S0JQh1'(B C-k ,TJM'$0CQi1'(B. -,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y ,Tc9!RC(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;K(B0,TEQ(B1,T'(B0,TJX(B1,T4(B. 0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T9Qi(B1,T9(P(B -,T;CR!/(B0,T7Uh(B1,T5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B. +,Tc0*i1$S0JQh1'(B C-y ,Tc9!RC07Uh1(P`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1Rd;K0EQ1'0JX14(B. 0,T"i1M$GRA07Uh106Y1!`0CU1B!0$W1909Qi19(P(B +,T;CR!/07Uh15SaK09h1'`$M0Cl1`+M0Cl10;Q1(0(X10:Q19(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA!(B0,TEQ(B1,T:AR(B. +>> ,TEM'c0*i1$S0JQh1'(B C-y ,T`0>Wh1M07Uh1(P`0CU1B!0$W190"i1M$GRA!0EQ1:AR(B. -,T$S(B0,TJQh(B1,T'(B C-y 0,T!g(B1,T`K(B0,TAW(B1,TM9!RC`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,TJTh(B1,T'"M'(B0,T7Uh(B1,Tc$C:R'$9d(B0,T4i(B1,T`MRd;(R!(B0,T7h(B1,TR9(B. 0,T7h(B1,TR9(P(B0,TJQ(B1,T'`!5d(B0,T4i(B10,TGh(B1,TR(B -0,T6i(B1,TR(B0,T7h(B1,TR9c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-k 0,T5T(B1,T4(B0,T5h(B1,TM(B0,T!Q(B1,T9KERBf(B ,T$(B0,TCQi(B1,T'(B, 0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B0,T7Qi(B1,T'KA4(P(B0,T6Y(B1,T!`(B0,T!g(B1,T:d(B0,TGi(B10,T4i(B1,TGB(B0,T!Q(B1,T9(B, -,T)P(B0,T9Qi(B1,T9!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y ,T`(B0,T>U(B1,TB'$(B0,TCQi(B1,T'`(B0,T4U(B1,TBG(B0,T!g(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA!(B0,TEQ(B1,T:ARd(B0,T4i(B10,T7Qi(B1,T'KA4(B. +,T$S0JQh1'(B C-y 0,T!g1`K0AW1M9!RC`0CU1B!0$W190JTh1'"M'07Uh1c$C:R'$9d04i1`MRd;(R!07h1R9(B. 0,T7h1R9(P0JQ1'`!5d04i10Gh1R(B +0,T6i1R07h1R9c0*i1$S0JQh1'(B C-k 0,T5T1405h1M0!Q19KERBf(B ,T$0CQi1'(B, 0,T"i1M$GRA07Uh106Y1!0&h1Rd;07Qi1'KA4(P06Y1!`0!g1:d0Gi104i1GB0!Q19(B, +,T)P09Qi19!RCc0*i1$S0JQh1'(B C-y ,T`0>U1B'$0CQi1'`04U1BG0!g1(P`0CU1B!0$W190"i1M$GRA!0EQ1:ARd04i107Qi1'KA4(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-k ,TKERBf(B ,T$(B0,TCQi(B1,T'(B0,T4Y(B1. +>> ,TEM'c0*i1$S0JQh1'(B C-k ,TKERBf(B ,T$0CQi1'04Y1(B. -,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B: +,T`0>Wh1M07Uh1(P`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1Rd;(B: ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y. ,Ta(B0,TEi(B1,TG`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TE'd;(B0,TJQ(B1,T!JM'JRA:CC(B0,T7Q(B1,T4(B, ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y - 0,TMU(B1,T!$(B0,TCQi(B1,T'(B. 0,T7h(B1,TR9(P`(B0,T"i(B1,TRc((B0,TGT(B10,T8U(B1,T!RC(B0,T7Uh(B1,T(PJS`9R(B0,T"i(B1,TM$GRA(B. +>> ,TEM'c0*i1$S0JQh1'(B C-y. ,Ta0Ei1G`$0EWh1M9`$M0Cl1`+M0Cl1E'd;0JQ1!JM'JRA:CC07Q14(B, ,Ta0Ei1Gc0*i1$S0JQh1'(B C-y + 0,TMU1!$0CQi1'(B. 0,T7h1R9(P`0"i1Rc(0GT108U1!RC07Uh1(PJS`9R0"i1M$GRA(B. -0,T7h(B1,TR9(P7SM(B0,TBh(B1,TR'dC(B0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA:R'M(B0,TBh(B1,TR'(B, ,Ta(B0,TEi(B1,TG(B0,T&h(B1,TR:R'M(B0,TBh(B1,TR'MM!d;(B? -,T$S(B0,TJQh(B1,T'(B C-y ,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TR(B0,TEh(B1,TR(B0,TJX(B1,T4(B. ,Ta(B0,T5h(B10,T"i(B1,TM$GRA(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B0,T9Qi(B1,T9(B0,TBQ(B1,T'$'`K(B0,TEW(B1,TMM(B0,TBYh(B1. 0,T7h(B1,TR9(B -,TJRARC6(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9ARd(B0,T4i(B10,TMU(B1,T!b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y. ,TK(B0,TEQ(B1,T'(R!(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,TEh(B1,TR(B0,TJX(B1,T4a(B0,TEi(B1,TG(B, -,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T!h(B1,TM9K(B0,T9i(B1,TR(B0,T9Qi(B1,T9ARa79(B0,T7Uh(B1. ,T!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y ,Ta(B0,T5h(B1,TEP$(B0,TCQi(B1,T'(B -,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;c9ES(B0,T4Q(B1,T:(B0,T7Uh(B10,TBi(B1,TM9!(B0,TEQ(B1,T:(B0,T"Vi(B1,T9d;(B. ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B10,T"i(B1,TM$GRA(B0,T7Uh(B10,T5i(B1,TM'!RC!(B0,TEQ(B1,T:(B0,T$W(B1,T9AR(B, -0,T7h(B1,TR9(B0,T!g(B1,Td(B0,TAh(B1,T(S`(B0,T;g(B1,T9(B0,T7Uh(B1,T(P(B0,T5i(B1,TM'7SMPdC(B0,T!Q(B1,T:(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9(B0,TMU(B1,T!(B. ,T`(B0,T>U(B1,TB';(B0,TEh(B1,TMBM(B0,TBYh(B1,TM(B0,TBh(B1,TR'(B0,T9Qi(B1,T9(B, ,Ta(B0,TEi(B1,TG7S!RCa(B0,T!i(B1,Td"(B -0,T"i(B1,TM$GRA(B0,TMWh(B1,T9(B0,T5h(B1,TMd;(B. +0,T7h1R9(P7SM0Bh1R'dC06i1R07h1R905i1M'!RC(P`0CU1B!0$W190"i1M$GRA:R'M0Bh1R'(B, ,Ta0Ei1G0&h1R:R'M0Bh1R'MM!d;(B? +,T$S0JQh1'(B C-y ,T(P`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1R0Eh1R0JX14(B. ,Ta05h10"i1M$GRA0!h1M9K09i1R09Qi190BQ1'$'`K0EW1MM0BYh1(B. 0,T7h1R9(B +,TJRARC6(P`0CU1B!0$W19ARd04i10MU1!b4Bc0*i1$S0JQh1'(B M-y. ,TK0EQ1'(R!07Uh107h1R9d04i1`0CU1B!0$W190"i1M$GRA0Eh1R0JX14a0Ei1G(B, +,Tc0*i1$S0JQh1'(B M-y ,T`0>Wh1M07Uh1(P`0CU1B!0$W190"i1M$GRA0!h1M9K09i1R09Qi19ARa7907Uh1(B. ,T!RCc0*i1$S0JQh1'(B M-y ,Ta05h1EP$0CQi1'(B +,T(P`0CU1B!0$W190"i1M$GRA07Uh106Y1!0&h1Rd;c9ES04Q1:07Uh10Bi1M9!0EQ1:0"Vi19d;(B. ,T`0AWh1M07h1R9d04i10"i1M$GRA07Uh105i1M'!RC!0EQ1:0$W19AR(B, +0,T7h1R90!g1d0Ah1(S`0;g1907Uh1(P05i1M'7SMPdC0!Q1:0"i1M$GRA09Qi190MU1!(B. ,T`0>U1B';0Eh1MBM0BYh1M0Bh1R'09Qi19(B, ,Ta0Ei1G7S!RCa0!i1d"(B +0,T"i1M$GRA0MWh1905h1Md;(B. -0,T6i(B1,TR(B0,T7h(B1,TR9c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y 0,T4i(B1,TGB(S9G9$(B0,TCQi(B1,T'(B0,T7Uh(B1,TAR!>M(B, 0,T7h(B1,TR9(P(B0,TBi(B1,TM9!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'(B0,T(X(B1,T4`(B0,TCTh(B1,TA(B0,T5i(B1,T9(B0,TMU(B1,T!$(B0,TCQi(B1,T'(B -(0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B0,TEh(B1,TR(B0,TJX(B1,T4(B). +0,T6i1R07h1R9c0*i1$S0JQh1'(B M-y 0,T4i1GB(S9G9$0CQi1'07Uh1AR!>M(B, 0,T7h1R9(P0Bi1M9!0EQ1:AR0BQ1'0(X14`0CTh1A05i190MU1!$0CQi1'(B +(0,T"i1M$GRA07Uh106Y1!0&h1Rd;0Eh1R0JX14(B). ->> 0,T&h(B1,TRK(B0,T9Vh(B1,T':CC(B0,T7Q(B1,T4(B, ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B, 0,T&h(B1,TR(B0,TMU(B1,T!:CC(B0,T7Q(B1,T4(B. - ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-y ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T$W(B1,T9:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;c9$(B0,TCQi(B1,T'(B0,T7Uh(B1,TJM'(B. - ,Ta(B0,TEi(B1,TGc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y 0,T+Vh(B1,T'(P`(B0,TCV(B1,TB!(B0,T$W(B1,T9:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;c9$(B0,TCQi(B1,T'aC!ARa79(B0,T7Uh(B1. - ,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-y 0,TMU(B1,T!(B, ,Ta(B0,TEi(B1,TG(B0,T4Y(B10,TGh(B1,TR(P`(B0,T!T(B1,T4MPdC(B0,T"Vi(B1,T9(B. ,TEM'7Sd;`(B0,TCWh(B1,TMBf(B ,T(9!(B0,TGh(B1,TR:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(B - ,Tc9$(B0,TCQi(B1,T'(B0,T7Uh(B1,TJM'(P!(B0,TEQ(B1,T:(B0,T$W(B1,T9AR(B, ,Ta(B0,TEi(B1,TG7Sd;(B0,TMU(B1,T!(B0,TJQ(B1,T!CPBP(B. - 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B, 0,T7h(B1,TR9MR((PEM'!S(B0,T!Q(B1,T:(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B10,T7Qi(B1,T'(B0,T7Uh(B1,T`(B0,T;g(B1,T9(S9G9:G!aEPE:c(B0,TKi(B10,T!Q(B1,T:(B - ,T$S(B0,TJQh(B1,T'(B M-y 0,T4Y(B1. +>> 0,T&h1RK09Vh1':CC07Q14(B, ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;(B, 0,T&h1R0MU1!:CC07Q14(B. + ,Ta0Ei1Gc0*i1$S0JQh1'(B C-y ,T`0>Wh1M07Uh1(P`0CU1B!0$W19:CC07Q1407Uh106Y1!0&h1Rd;c9$0CQi1'07Uh1JM'(B. + ,Ta0Ei1Gc0*i1$S0JQh1'(B M-y 0,T+Vh1'(P`0CV1B!0$W19:CC07Q1407Uh106Y1!0&h1Rd;c9$0CQi1'aC!ARa7907Uh1(B. + ,Tc0*i1$S0JQh1'(B M-y 0,TMU1!(B, ,Ta0Ei1G04Y10Gh1R(P`0!T14MPdC0"Vi19(B. ,TEM'7Sd;`0CWh1MBf(B ,T(9!0Gh1R:CC07Q1407Uh106Y1!0&h1Rd;(B + ,Tc9$0CQi1'07Uh1JM'(P!0EQ1:0$W19AR(B, ,Ta0Ei1G7Sd;0MU1!0JQ1!CPBP(B. + 0,T6i1R07h1R905i1M'!RC(B, 0,T7h1R9MR((PEM'!S0!Q1:05Q1G`E"MR0Cl10!T1G`A905l107Qi1'07Uh1`0;g19(S9G9:G!aEPE:c0Ki10!Q1:(B + ,T$S0JQh1'(B M-y 0,T4Y1(B. -* ,T!RC7S(B0,TBi(B1,TM9(B (undo) +* ,T!RC7S0Bi1M9(B (undo) ------------------- -0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,T4i(B1,Ta(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRAd;(B, ,TaEP(B0,T$T(B1,T4(B0,TGh(B1,TRd(B0,T4i(B1,T7S(B0,T<T(B1,T4>ER4d;(B, 0,T7h(B1,TR9JRARC67S(B0,TBi(B1,TM9(B0,TJTh(B1,T'(B0,T7Uh(B1,Td(B0,T4i(B1 -,T`;(B0,TEUh(B1,TB9a;E'd;a(B0,TEi(B1,TG(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'!RC7S(B0,TBi(B1,TM9(B, C-x u. +0,T6i1R07h1R9d04i1a0!i1d"0"i1M$GRAd;(B, ,TaEP0$T140Gh1Rd04i17S0<T14>ER4d;(B, 0,T7h1R9JRARC67S0Bi1M90JTh1'07Uh1d04i1(B +,T`;0EUh1B9a;E'd;a0Ei1G04i1GB$S0JQh1'!RC7S0Bi1M9(B, C-x u. -,Tb4B;C!(B0,T5T(B1, ,T$S(B0,TJQh(B1,T'(B C-x u ,T7S(B0,TBi(B1,TM9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Td(B0,T4i(B1,T7Sd;a(B0,TEi(B1,TGK(B0,T9Vh(B1,T'$S(B0,TJQh(B1,T'(B; 0,T6i(B1,TR(B0,T7h(B1,TR97S(B0,TBi(B1,TM9(B0,T+i(B1,TS(B0,T5T(B1,T4(B0,T5h(B1,TM(B0,T!Q(B1,T9(B, -,T!RC7S(B0,TBi(B1,TM9a(B0,T5h(B1,TEP$(B0,TCQi(B1,T'(P(B0,TBi(B1,TM9$S(B0,TJQh(B1,T'd;(B0,T7U(B1,TEP$S(B0,TJQh(B1,T'(B. +,Tb4B;C!05T1(B, ,T$S0JQh1'(B C-x u ,T7S0Bi1M9$S0JQh1'07Uh1d04i17Sd;a0Ei1GK09Vh1'$S0JQh1'(B; 0,T6i1R07h1R97S0Bi1M90+i1S05T1405h1M0!Q19(B, +,T!RC7S0Bi1M9a05h1EP$0CQi1'(P0Bi1M9$S0JQh1'd;07U1EP$S0JQh1'(B. -,Ta(B0,T5h(B10,TAU(B10,T"i(B1,TMB!`(B0,TGi(B1,T9M(B0,TBYh(B1,TJM';CP!RC(B: ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Td(B0,TAh(B1,T`;(B0,TEUh(B1,TB9a;E'(B0,T"i(B1,TM$GRA(Pd(B0,TAh(B10,T9Q(B1,T:CGAM(B0,TBYh(B10,T4i(B1,TGB(B (0,T9Uh(B1,TCGA(B0,T6V(B1,T'(B -,T$S(B0,TJQh(B1,T'!RC`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TaEP!RC`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B), ,TaEP!RCa7C!(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T!g(B1,T(P(B0,T6Y(B1,T!(B0,T(Q(B1,T4!RCb4BCGA(B -,T`(B0,T;g(B1,T9!(B0,TEXh(B1,TA(B0,T7Uh(B1,Td(B0,TAh(B1,T`(B0,T!T(B1,T9(B 20 0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,T5h(B1,TM!(B0,TEXh(B1,TA(B. (0,T7Qi(B1,T'(B0,T9Ui(B1,T`(B0,T>Wh(B1,TME4(S9G9$(B0,TCQi(B1,T'"M'$S(B0,TJQh(B1,T'(B C-x u ,Tc9!RC7S(B -0,TBi(B1,TM9!RCa7C!(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B.) +,Ta05h10AU10"i1MB!`0Gi19M0BYh1JM';CP!RC(B: ,T$S0JQh1'07Uh1d0Ah1`;0EUh1B9a;E'0"i1M$GRA(Pd0Ah109Q1:CGAM0BYh104i1GB(B (0,T9Uh1CGA06V1'(B +,T$S0JQh1'!RC`$0EWh1M9`$M0Cl1`+M0Cl1aEP!RC`$0EWh1M90Ai1G9(B), ,TaEP!RCa7C!05Q1G0MQ1!IC0!g1(P06Y1!0(Q14!RCb4BCGA(B +,T`0;g19!0EXh1A07Uh1d0Ah1`0!T19(B 20 0,T5Q1G0MQ1!IC05h1M!0EXh1A(B. (0,T7Qi1'09Ui1`0>Wh1ME4(S9G9$0CQi1'"M'$S0JQh1'(B C-x u ,Tc9!RC7S(B +0,TBi1M9!RCa7C!05Q1G0MQ1!IC(B.) ->> 0,T&h(B1,TR:CC(B0,T7Q(B1,T4(B0,T9Ui(B10,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-k, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x u. ,T:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,T6Y(B1,T!(B0,T&h(B1,TRd;(P;CR!/!(B0,TEQ(B1,T:(B0,T$W(B1,T9AR(B. +>> 0,T&h1R:CC07Q1409Ui104i1GB$S0JQh1'(B C-k, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-x u. ,T:CC07Q1407Uh106Y1!0&h1Rd;(P;CR!/!0EQ1:0$W19AR(B. -,T$S(B0,TJQh(B1,T'(B C-_ ,T`(B0,T;g(B1,T9(B0,TMU(B1,T!$S(B0,TJQh(B1,T'K(B0,T9Vh(B1,T'JSK(B0,TCQ(B1,T:!RC7S(B0,TBi(B1,TM9(B; ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T7S'R9`K(B0,TAW(B1,TM9(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B C-x u, -,Ta(B0,T5h(B10,TGh(B1,TRJP4G!!(B0,TGh(B1,TRc9!RC(B0,T;i(B1,TM9KERBf(B ,T$(B0,TCQi(B1,T'(B0,T5T(B1,T4(B0,T5h(B1,TM(B0,T!Q(B1,T9(B. 0,T"i(B1,TM`(B0,TJU(B1,TB"M'$S(B0,TJQh(B1,T'(B C-_ 0,T9Ui(B10,T$W(B1,TMc9:R'(B -,Ta(B0,T;i(B1,T9(B0,T>T(B1,TA(B0,T>l(B1, ,TMR((Pd(B0,TAh(B1,T7CR:(B0,TGh(B1,TR(P(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'd(B0,T4i(B1,TM(B0,TBh(B1,TR'dC(B. 0,T9Qh(B1,T9(B0,T$W(B1,TM`K(B0,T5X(B10,T7Uh(B1,T7Sc(B0,TKi(B1,T`CR(B0,T5i(B1,TM'`5(B0,TCU(B1,TBA$S(B0,TJQh(B1,T'(B -C-x u ,Tc(B0,TKi(B10,TMU(B1,T!(B0,T5h(B1,TR'KR!(B. ,Tc9`$(B0,TCWh(B1,TM';ERB7R':R'*(B0,T9T(B1,T4(B,0,T7h(B1,TR9MR((P(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-_ ,Td(B0,T4i(B1,Tb4B!RC!4(B -0,TMQ(B1,T!"CP(B / ,Tc9"3P(B0,T7Uh(B1,T!4(B0,T;Xh(B1,TA(B CONTROL. +,T$S0JQh1'(B C-_ ,T`0;g190MU1!$S0JQh1'K09Vh1'JSK0CQ1:!RC7S0Bi1M9(B; ,T$S0JQh1'09Ui17S'R9`K0AW1M90!Q1:$S0JQh1'(B C-x u, +,Ta05h10Gh1RJP4G!!0Gh1Rc9!RC0;i1M9KERBf(B ,T$0CQi1'05T1405h1M0!Q19(B. 0,T"i1M`0JU1B"M'$S0JQh1'(B C-_ 0,T9Ui10$W1Mc9:R'(B +,Ta0;i190>T1A0>l1(B, ,TMR((Pd0Ah17CR:0Gh1R(P0;i1M9$S0JQh1'd04i1M0Bh1R'dC(B. 0,T9Qh190$W1M`K05X107Uh17Sc0Ki1`CR05i1M'`50CU1BA$S0JQh1'(B +C-x u ,Tc0Ki10MU1!05h1R'KR!(B. ,Tc9`$0CWh1M';ERB7R':R'*09T14(B,0,T7h1R9MR((P0;i1M9$S0JQh1'(B C-_ ,Td04i1b4B!RC!4(B +0,TMQ1!"CP(B / ,Tc9"3P07Uh1!40;Xh1A(B CONTROL. -0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,TJSK(B0,TCQ(B1,T:$S(B0,TJQh(B1,T'(B C-_ ,TaEP(B C-x u ,T(P`(B0,T;g(B1,T9!RC(B0,T+i(B1,TS(S9G9$(B0,TCQi(B1,T'"M'$S(B0,TJQh(B1,T'(B. +0,T5Q1G`E"MR0Cl10!T1G`A905l1JSK0CQ1:$S0JQh1'(B C-_ ,TaEP(B C-x u ,T(P`0;g19!RC0+i1S(S9G9$0CQi1'"M'$S0JQh1'(B. -* ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B (file) +* ,Ta0?i1A0"i1M0AY1E(B (file) ---------------- -,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,Td(B0,T4i(B1,Ta(B0,T!i(B1,Td"d;(B0,T9Qi(B1,T9(B, 0,T7h(B1,TR9(P(B0,T5i(B1,TM'`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9d(B0,TGi(B1,Tc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. ,Td(B0,TAh(B1,T`(B0,T*h(B1,T9(B0,T9Qi(B1,T9(B -0,T"i(B1,TM$GRA(B0,T!g(B1,T(PKRBd;`(B0,TAWh(B1,TM(B0,T7h(B1,TR9`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1. ,T!RC(B0,T7Uh(B1,T(P`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9E'c9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, 0,T7h(B1,TR9(B -,T(P(B0,T5i(B1,TM'(B "0,T$i(B1,T9KR(B (find)" ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T!h(B1,TM9(B0,T7Uh(B1,T(P`(B0,T"i(B1,TRd;c9(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9d(B0,T4i(B1. (0,T9Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B ",T!RC(B -,T`(B0,TBW(B1,TM9(B (visiting)" ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B.) +,T`0>Wh1M07Uh1(P`0!g1:0"i1M$GRA07Uh1d04i1a0!i1d"d;09Qi19(B, 0,T7h1R9(P05i1M'`0!g1:0"i1M$GRA09Qi19d0Gi1c9a0?i1A0"i1M0AY1E(B. ,Td0Ah1`0*h1909Qi19(B +0,T"i1M$GRA0!g1(PKRBd;`0AWh1M07h1R9`0ET1!c0*i10MU1aA!0Jl1(B. ,T!RC07Uh1(P`0!g1:0"i1M$GRA09Qi19E'c9a0?i1A0"i1M0AY1E(B, 0,T7h1R9(B +,T(P05i1M'(B "0,T$i19KR(B (find)" ,Ta0?i1A0"i1M0AY1E0!h1M907Uh1(P`0"i1Rd;c90"i1M$GRA09Qi19d04i1(B. (0,T9Uh1`0CU1B!0Gh1R(B ",T!RC(B +,T`0BW1M9(B (visiting)" ,Ta0?i1A0"i1M0AY1E(B.) -,T!RC(B0,T$i(B1,T9KRa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEKARB(B0,T6V(B1,T'!RC(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TKg(B1,T9`(B0,T9Wi(B1,TMKR"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE@RBc9(B0,TMU(B1,TaA!(B0,TJl(B1. ,Tc9KERBf(B -,T7R'(B, 0,T4Y(B1,T`K(B0,TAW(B1,TM9(B0,TGh(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'a(B0,T!i(B1,Td"(B0,T"i(B1,TM(B0,TAY(B1,TEc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEM(B0,TBYh(B1. ,TM(B0,TBh(B1,TR'dC(B0,T!g(B1,T5RA(B, ,T!RCa(B0,T!i(B1,Td"@RBc9(B0,TMU(B1 -,TaA!(B0,TJl(B10,T9Qi(B1,T9(Pd(B0,TAh(B1,T$'M(B0,TBYh(B1,T(9!(B0,TGh(B1,TR(B0,T7h(B1,TR9(P(B "0,T(Q(B1,T4`(B0,T!g(B1,T:(B (save)" ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9!RC(B0,T*h(B1,TGBc(B0,TKi(B10,T7h(B1,TR9(B -,TJRARC6K(B0,TEU(B1,T!`(B0,TEUh(B1,TB'!RC7Sc(B0,TKi(B1,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T6Y(B1,T!a(B0,T!i(B1,Td"d(B0,TGi(B1,T$(B0,TCVh(B1,T'f(B ,T!ER'f(B 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B1,Td(B0,T4i(B10,T5i(B1,TM'!RC(B. ,Ta(B0,TAi(B10,TGh(B1,TR(B -0,T7h(B1,TR9(P7S!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:d;a(B0,TEi(B1,TG(B0,T!g(B1,T5RA(B, 0,TMU(B1,TaA!(B0,TJl(B10,T!g(B10,TBQ(B1,T'$'`K(B0,TEW(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5i(B1,T9)(B0,T:Q(B1,T:d(B0,TGi(B1,Tb4B`(B0,T!g(B1,T:d(B0,TGi(B1,Tc9(B0,T*Wh(B1,TM(B -,TcK(B0,TAh(B1, ,T`(B0,T<Wh(B1,TMd(B0,TGi(B1,Tc9!C(B0,T3U(B10,T7Uh(B10,T7h(B1,TR9a(B0,T!i(B1,Td"(B0,T<T(B1,T4>ER4(B. +,T!RC0$i19KRa0?i1A0"i1M0AY1EKARB06V1'!RC07Uh107h1R9d04i1`0Kg19`09Wi1MKR"M'a0?i1A0"i1M0AY1E@RBc90MU1aA!0Jl1(B. ,Tc9KERBf(B +,T7R'(B, 0,T4Y1`K0AW1M90Gh1R07h1R9!S0EQ1'a0!i1d"0"i1M0AY1Ec9a0?i1A0"i1M0AY1EM0BYh1(B. ,TM0Bh1R'dC0!g15RA(B, ,T!RCa0!i1d"@RBc90MU1(B +,TaA!0Jl109Qi19(Pd0Ah1$'M0BYh1(9!0Gh1R07h1R9(P(B "0,T(Q14`0!g1:(B (save)" ,Ta0?i1A0"i1M0AY1E09Qi19(B. 0,T9Uh1`0;g19!RC0*h1GBc0Ki107h1R9(B +,TJRARC6K0EU1!`0EUh1B'!RC7Sc0Ki1a0?i1A0"i1M0AY1E06Y1!a0!i1d"d0Gi1$0CVh1'f(B ,T!ER'f(B 0,T6i1R07h1R9d0Ah1d04i105i1M'!RC(B. ,Ta0Ai10Gh1R(B +0,T7h1R9(P7S!RC0(Q14`0!g1:d;a0Ei1G0!g15RA(B, 0,TMU1aA!0Jl10!g10BQ1'$'`K0EW1Ma0?i1A0"i1M0AY1E05i19)0:Q1:d0Gi1b4B`0!g1:d0Gi1c90*Wh1M(B +,TcK0Ah1(B, ,T`0<Wh1Md0Gi1c9!C03U107Uh107h1R9a0!i1d"0<T14>ER4(B. -0,T6i(B1,TR(B0,T7h(B1,TR9(B0,TJQ(B1,T'`!5(B0,T4Y(B10,TJh(B1,TG9(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M"M'(B0,TMU(B1,TaA!(B0,TJl(B1, 0,T7h(B1,TR9(P`(B0,TKg(B1,T9:CC(B0,T7Q(B1,T4(B0,T7Uh(B1,T`(B0,TCTh(B1,TA(B0,T5i(B1,T9aEP(B0,TJTi(B1,T9(B0,TJX(B1,T4(B0,T4i(B1,TGB(B -,T`(B0,TJi(B1,T9;CP(B. ,T:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9MR((P`(B0,TCTh(B1,TA(B0,T5i(B1,T9(B0,T4i(B1,TGB(B "--:-- TUTORIAL" ,TK(B0,TCW(B1,TMMPdC7S9M'(B0,T9Qi(B1,T9(B. 0,TJh(B1,TG9(B0,T9Ui(B1 -,T"M'K(B0,T9i(B1,TR(M(B, ,Tb4B;C!(B0,T5T(B1,Ta(B0,TEi(B1,TG(B, ,T(PaJ4'(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'`(B0,TBW(B1,TM9M(B0,TBYh(B1. ,T"3P(B0,T9Ui(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B -,T`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T*Wh(B1,TM(B0,TGh(B1,TR(B "TUTORIAL.th" 0,T+Vh(B1,T'`(B0,T;g(B1,T9JS`9R"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1. ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B1 -,T`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T4i(B1,TGB(B0,TMU(B1,TaA!(B0,TJl(B1, 0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9(P;CR!/c9(B0,T7Uh(B10,T7Uh(B1,Td(B0,T4i(B1,T!(B0,TEh(B1,TRGd(B0,TGi(B1,Ta(B0,TEi(B1,TG(B. +0,T6i1R07h1R90JQ1'`!504Y10Jh1G90Eh1R'"M'K09i1R(M"M'0MU1aA!0Jl1(B, 0,T7h1R9(P`0Kg19:CC07Q1407Uh1`0CTh1A05i19aEP0JTi190JX1404i1GB(B +,T`0Ji19;CP(B. ,T:CC07Q1409Qi19MR((P`0CTh1A05i1904i1GB(B "--:-- TUTORIAL" ,TK0CW1MMPdC7S9M'09Qi19(B. 0,TJh1G909Ui1(B +,T"M'K09i1R(M(B, ,Tb4B;C!05T1a0Ei1G(B, ,T(PaJ4'0*Wh1Ma0?i1A0"i1M0AY1E07Uh107h1R9!S0EQ1'`0BW1M9M0BYh1(B. ,T"3P09Ui107h1R9!S0EQ1'(B +,T`0BW1M9a0?i1A0"i1M0AY1E07Uh10*Wh1M0Gh1R(B "TUTORIAL.th" 0,T+Vh1'`0;g19JS`9R"M'0$Yh10AW1M!RCc0*i10MU1aA!0Jl1(B. ,T`0AWh1M07h1R9d04i1(B +,T`0BW1M9a0?i1A0"i1M0AY1E04i1GB0MU1aA!0Jl1(B, 0,T*Wh1M"M'a0?i1A0"i1M0AY1E09Qi19(P;CR!/c907Uh107Uh1d04i1!0Eh1RGd0Gi1a0Ei1G(B. -0,TEQ(B1,T!I3P(B0,T>T(B1,T`HI(B0,T"i(B1,TMK(B0,T9Vh(B1,T'"M'$S(B0,TJQh(B1,T'`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T$W(B1,TM(B 0,T7h(B1,TR9(P(B0,T5i(B1,TM':M!(B0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,T(P(B -,T`(B0,TBW(B1,TM9(B. ,T`CR`(B0,TCU(B1,TB!(B0,TEQ(B1,T!I3P`(B0,T*h(B1,T9(B0,T9Ui(B10,TGh(B1,TR(B "0,TMh(B1,TR9MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T(R!`$(B0,TCWh(B1,TM';ERB7R'(B" (,Tc9!C(B0,T3U(B10,T9Ui(B1, ,TMR(B0,TCl(B1 -0,T!T(B1,TG`A9(B0,T5l(B10,T!g(B10,T$W(B1,TM(B0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B). ,TK(B0,TEQ(B1,T'(R!(B0,T7Uh(B10,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B +0,TEQ1!I3P0>T1`HI0"i1MK09Vh1'"M'$S0JQh1'`0BW1M9a0?i1A0"i1M0AY1E0$W1M(B 0,T7h1R9(P05i1M':M!0*Wh1M"M'a0?i1A0"i1M0AY1E07Uh1(P(B +,T`0BW1M9(B. ,T`CR`0CU1B!0EQ1!I3P`0*h1909Ui10Gh1R(B "0,TMh1R9MR0Cl10!T1G`A905l1(R!`$0CWh1M';ERB7R'(B" (,Tc9!C03U109Ui1(B, ,TMR0Cl1(B +0,T!T1G`A905l10!g10$W1M0*Wh1M"M'a0?i1A0"i1M0AY1E(B). ,TK0EQ1'(R!07Uh107h1R90;i1M9$S0JQh1'(B C-x C-f Find a file -0,TMU(B1,TaA!(B0,TJl(B1,T(P6RA(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. 0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9(B0,T;i(B1,TM9`(B0,T"i(B1,TRd;(P;CR!/(B0,T7Uh(B1,T:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M(B. -,T:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1 (minibuffer) ,T`(B0,TAWh(B1,TM(B0,T6Y(B1,T!c(B0,T*i(B1,T'R9c9(B0,TEQ(B1,T!I3P(B0,T9Ui(B1. -0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RCa(B0,T!i(B1,Td";C!(B0,T5T(B1,T"M'(B0,TMU(B1,TaA!(B0,TJl(B1,Ta(B0,T!i(B1,Td"(B0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. +0,TMU1aA!0Jl1(P6RA0*Wh1Ma0?i1A0"i1M0AY1E(B. 0,T*Wh1Ma0?i1A0"i1M0AY1E07Uh107h1R90;i1M9`0"i1Rd;(P;CR!/07Uh1:CC07Q140Eh1R'"M'K09i1R(M(B. +,T:CC07Q140Eh1R'"M'K09i1R(M`0CU1B!0Gh1R0AT109T10:Q1?`?M0Cl1(B (minibuffer) ,T`0AWh1M06Y1!c0*i1'R9c90EQ1!I3P09Ui1(B. +0,T7h1R9JRARC6c0*i1$S0JQh1'07Uh1c0*i1c9!RCa0!i1d";C!05T1"M'0MU1aA!0Jl1a0!i1d"0*Wh1M"M'a0?i1A0"i1M0AY1E(B. -,T"3P(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,T;i(B1,TM9(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B (,TK(B0,TCW(B1,TM(B0,T"i(B1,TM(B0,TAY(B1,TEc4f(B ,Tc9(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B10,T9Ui(B1), 0,T7h(B1,TR9JRARC6(B -,TB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'(B0,T4i(B1,TGB!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g. +,T"3P07Uh107h1R9!S0EQ1'0;i1M90*Wh1Ma0?i1A0"i1M0AY1E(B (,TK0CW1M0"i1M0AY1Ec4f(B ,Tc90AT109T10:Q1?`?M0Cl109Ui1(B), 0,T7h1R9JRARC6(B +,TB!`0ET1!$S0JQh1'04i1GB!RCc0*i1$S0JQh1'(B C-g. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-f, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-g. 0,T9Uh(B1,T`(B0,T;g(B1,T9!RCB!`(B0,TET(B1,T!(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1, ,TaEP(B - ,TB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'(B C-x C-f 0,T7Uh(B1,T!S(B0,TEQ(B1,T'c(B0,T*i(B10,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1,TM(B0,TBYh(B1. ,T<E(B0,TEQ(B1,T>(B0,T8l(B10,T$W(B1,TM(B0,T7h(B1,TR9(Pd(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,TBW(B1,TM9(B - ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEc4f(B. +>> 0,T;i1M9$S0JQh1'(B C-x C-f, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-g. 0,T9Uh1`0;g19!RCB!`0ET1!0AT109T10:Q1?`?M0Cl1(B, ,TaEP(B + ,TB!`0ET1!$S0JQh1'(B C-x C-f 0,T7Uh1!S0EQ1'c0*i10AT109T10:Q1?`?M0Cl1M0BYh1(B. ,T<E0EQ1>08l10$W1M07h1R9(Pd0Ah1d04i1`0BW1M9(B + ,Ta0?i1A0"i1M0AY1Ec4f(B. -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE`J(B0,TCg(B1,T(a(B0,TEi(B1,TG(B, ,T!4(B0,T;Xh(B1,TA(B <Return> ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B. ,Ta(B0,TEi(B1,TG$S(B0,TJQh(B1,T'(B -C-x C-f 0,T!g(B1,T(P7S'R9(B, ,TaEP(P`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TEW(B1,TM!d(B0,TGi(B1. 0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1,T(P(B -,TKRBd;`(B0,TAWh(B1,TM`J(B0,TCg(B1,T((B0,TJTi(B1,T9$S(B0,TJQh(B1,T'(B C-x C-f. +,T`0AWh1M07h1R9d04i10;i1M90*Wh1Ma0?i1A0"i1M0AY1E`J0Cg1(a0Ei1G(B, ,T!40;Xh1A(B <Return> ,T`0>Wh1M07Uh1(P0JTi190JX14$S0JQh1'(B. ,Ta0Ei1G$S0JQh1'(B +C-x C-f 0,T!g1(P7S'R9(B, ,TaEP(P`0BW1M9a0?i1A0"i1M0AY1E07Uh107h1R9d04i1`0EW1M!d0Gi1(B. 0,TAT109T10:Q1?`?M0Cl1(P(B +,TKRBd;`0AWh1M`J0Cg1(0JTi19$S0JQh1'(B C-x C-f. -,TK(B0,TEQ(B1,T'(R!(B0,T9Qi(B1,T9d(B0,TAh(B1,T9R9`(B0,T9Wi(B1,TMKR"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T!g(B1,T(P;CR!/:9K(B0,T9i(B1,TR(M(B, ,TaEP(B0,T7h(B1,TR9(B0,T!g(B1,T(PJRARC6a(B0,T!i(B1,Td"(B -,T`(B0,T9Wi(B1,TMKRd(B0,T4i(B1. ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(Pa(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRAM(B0,TBh(B1,TR'6RGC(B, 0,T!g(B1,Tc(B0,TKi(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B +,TK0EQ1'(R!09Qi19d0Ah19R9`09Wi1MKR"M'a0?i1A0"i1M0AY1E0!g1(P;CR!/:9K09i1R(M(B, ,TaEP07h1R90!g1(PJRARC6a0!i1d"(B +,T`09Wi1MKRd04i1(B. ,T`0AWh1M07h1R905i1M'!RC(Pa0!i1d"0"i1M$GRAM0Bh1R'6RGC(B, 0,T!g1c0Ki1c0*i1$S0JQh1'(B C-x C-s Save the file -,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T(P7SJS`9R(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,TM(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T"i(B1,TRd;`(B0,T!g(B1,T:d(B0,TGi(B1,Tc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. ,Tc9!RC!CP7S`(B0,T*h(B1,T9(B0,T9Ui(B1,Tc9(B -,T$(B0,TCQi(B1,T'aC!(B0,TJX(B1,T4(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(P`;(B0,TEUh(B1,TB9(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5i(B1,T9)(B0,T:Q(B1,T:`(B0,T>Wh(B1,TM(B0,TGh(B1,TR(Pd(B0,T4i(B1,T$'d(B0,TGi(B1. 0,T*Wh(B1,TMcK(B0,TAh(B10,T9Qi(B1,T9(B0,T5Qi(B1,T'(B0,T"Vi(B1,T9b4B(B -,T!RC`(B0,T5T(B1,TA(B "~" ,T`(B0,T"i(B1,TRd;(B0,T7i(B1,TRB(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B. +,T$S0JQh1'09Ui1(P7SJS`9R0"i1M$GRA07Uh1M0BYh1c90MU1aA!0Jl1`0"i1Rd;`0!g1:d0Gi1c9a0?i1A0"i1M0AY1E(B. ,Tc9!RC!CP7S`0*h1909Ui1c9(B +,T$0CQi1'aC!0JX14(B, 0,TMU1aA!0Jl1(P`;0EUh1B90*Wh1Ma0?i1A0"i1M0AY1E05i19)0:Q1:`0>Wh1M0Gh1R(Pd04i1$'d0Gi1(B. 0,T*Wh1McK0Ah109Qi1905Qi1'0"Vi19b4B(B +,T!RC`05T1A(B "~" ,T`0"i1Rd;07i1RB0*Wh1Ma0?i1A0"i1M0AY1E05i19)0:Q1:(B. -,T`(B0,TAWh(B1,TM7S!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:`(B0,TCU(B1,TB:(B0,TCi(B1,TMBa(B0,TEi(B1,TG(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(P(B0,T>T(B1,TA(B0,T>l(B10,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9(B. 0,T7h(B1,TR9$GC(P(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,T"i(B1,TM(B0,TAY(B1,TE(B -0,T:h(B1,TMBf(B, ,T`(B0,T>Wh(B1,TM(B0,TGh(B1,TR(B0,T7h(B1,TR9(Pd(B0,T4i(B1,Td(B0,TAh(B10,T5i(B1,TM'`(B0,TJU(B1,TB'R9d;AR!(B0,T9Q(B1,T!KR!CP::`(B0,T!T(B1,T4(B0,T"Q(B1,T4(B0,T"i(B1,TM'(B. +,T`0AWh1M7S!RC0(Q14`0!g1:`0CU1B:0Ci1MBa0Ei1G(B, 0,TMU1aA!0Jl1(P0>T1A0>l10*Wh1Ma0?i1A0"i1M0AY1E09Qi19(B. 0,T7h1R9$GC(P0(Q14`0!g1:0"i1M0AY1E(B +0,T:h1MBf(B, ,T`0>Wh1M0Gh1R07h1R9(Pd04i1d0Ah105i1M'`0JU1B'R9d;AR!09Q1!KR!CP::`0!T140"Q140"i1M'(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-s, ,T`(B0,T>Wh(B1,TM(B0,T(Q(B1,T4`(B0,T!g(B1,T:JS`9R(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B1,T"M'(B0,T7h(B1,TR9(B. - ,T(P;CR!/(B "Write ...TUTORIAL.th" 0,T7Uh(B1,T:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B. +>> 0,T;i1M9$S0JQh1'(B C-x C-s, ,T`0>Wh1M0(Q14`0!g1:JS`9R0$Yh10AW1M!RCc0*i1"M'07h1R9(B. + ,T(P;CR!/(B "Write ...TUTORIAL.th" 0,T7Uh1:CC07Q140Eh1R'0JX14"M'K09i1R(M(B. -0,T"i(B1,TM(B0,TJQ(B1,T'`!5(B: ,Tc9:R'CP::(B, ,T!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-s ,T(P7Sc(B0,TKi(B1,TK(B0,T9i(B1,TR(M*P(B0,T'Q(B1,T!aEP(B0,T7h(B1,TR9(Pd(B0,TAh(B1,Td(B0,T4i(B10,TCQ(B1,T:(B -0,T"i(B1,TM$GRAc4f(B ,T(R!(B0,TMU(B1,TaA!(B0,TJl(B1. 0,T9Uh(B1,TaJ4'(B0,TGh(B1,TR(B "feature" ,T"M'CP::;(B0,T/T(B10,T:Q(B10,T5T(B1,T!RC(B0,T7Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B "flow -control" ,Td(B0,T4i(B10,T"Q(B1,T4"GR'!RC7S'R9"M'(B C-s ,TaEPd(B0,TAh(B1,T;(B0,TEh(B1,TMBc(B0,TKi(B1,T!(B0,TEQ(B1,T:(B0,TJYh(B10,TMU(B1,TaA!(B0,TJl(B10,TMU(B1,T!(B. ,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g -,T`(B0,T>Wh(B1,TMa(B0,T!i(B1,Td"d(B0,TAh(B1,Tc(B0,TKi(B1,TK(B0,T9i(B1,TR(M*P(B0,T'Q(B1,T!(B. ,Ta(B0,TEi(B1,TG(B0,T4Y(B1,T:7(B0,T7Uh(B10,TGh(B1,TR(B0,T4i(B1,TGB(B "Spontaneous Entry to -Incremental Search" ,Tc9(B0,T$Yh(B10,TAW(B1,TM"M'(B0,TMU(B1,TaA!(B0,TJl(B10,T+Vh(B1,T'(Pa9P9S!RC(B0,T(Q(B1,T4!RC`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B "feature" 0,T9Ui(B1. +0,T"i1M0JQ1'`!5(B: ,Tc9:R'CP::(B, ,T!RC0;i1M9$S0JQh1'(B C-x C-s ,T(P7Sc0Ki1K09i1R(M*P0'Q1!aEP07h1R9(Pd0Ah1d04i10CQ1:(B +0,T"i1M$GRAc4f(B ,T(R!0MU1aA!0Jl1(B. 0,T9Uh1aJ4'0Gh1R(B "feature" ,T"M'CP::;0/T10:Q105T1!RC07Uh1`0CU1B!0Gh1R(B "flow +control" ,Td04i10"Q14"GR'!RC7S'R9"M'(B C-s ,TaEPd0Ah1;0Eh1MBc0Ki1!0EQ1:0JYh10MU1aA!0Jl10MU1!(B. ,Tc0*i1$S0JQh1'(B C-g +,T`0>Wh1Ma0!i1d"d0Ah1c0Ki1K09i1R(M*P0'Q1!(B. ,Ta0Ei1G04Y1:707Uh10Gh1R04i1GB(B "Spontaneous Entry to +Incremental Search" ,Tc90$Yh10AW1M"M'0MU1aA!0Jl10+Vh1'(Pa9P9S!RC0(Q14!RC`0!Uh1BG0!Q1:(B "feature" 0,T9Ui1(B. -0,T7h(B1,TR9JRARC6(P`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,TAU(B1,TM(B0,TBYh(B1,Ta(B0,TEi(B1,TG(B, ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,T4Y(B1,TK(B0,TCW(B1,TMa(B0,T!i(B1,Td"(B. 0,T7h(B1,TR9JRARC6(P`(B0,TBW(B1,TM9(B -,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,TBQ(B1,T'd(B0,TAh(B1,T;CR!/(B0,T!g(B1,Td(B0,T4i(B1. 0,T9Uh(B1,T`(B0,T;g(B1,T9!RCJ(B0,TCi(B1,TR'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEcK(B0,TAh(B1,T"M'(B0,TMU(B1,TaA!(B0,TJl(B1: ,T`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, -0,T+Vh(B1,T'(P`(B0,TCTh(B1,TA(B0,T5i(B1,T9(B0,T4i(B1,TGBK(B0,T9i(B1,TR(M(B0,TGh(B1,TR'`;(B0,TEh(B1,TR(B, ,Ta(B0,TEi(B1,TG7S!RCa7C!(B0,T"i(B1,TM$GRA`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(PJ(B0,TCi(B1,TR'`(B0,T;g(B1,T9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5h(B1,TMd;(B. -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,TJQh(B1,T'c(B0,TKi(B1 "0,T(Q(B1,T4`(B0,T!g(B1,T:(B (save)" ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, 0,TMU(B1,TaA!(B0,TJl(B10,T(V(B1,T'(PJ(B0,TCi(B1,TR'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T4i(B1,TGB(B0,T"i(B1,TM$GRA(B0,T7Uh(B1 -0,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9`(B0,T"i(B1,TRd;(B. ,T(R!(B0,T9Ui(B1,Td;(B, 0,T7h(B1,TR9JRARC6(P(B0,T5Q(B1,T4(B0,TJT(B1,T9c(EM'a(B0,T!i(B1,Td"a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,TAU(B1,TM(B0,TBYh(B1,Ta(B0,TEi(B1,TGd(B0,T4i(B1. +0,T7h1R9JRARC6(P`0BW1M9a0?i1A0"i1M0AY1E07Uh10AU1M0BYh1a0Ei1G(B, ,T`0>Wh1M07Uh1(P04Y1K0CW1Ma0!i1d"(B. 0,T7h1R9JRARC6(P`0BW1M9(B +,Ta0?i1A0"i1M0AY1E07Uh10BQ1'd0Ah1;CR!/0!g1d04i1(B. 0,T9Uh1`0;g19!RCJ0Ci1R'a0?i1A0"i1M0AY1EcK0Ah1"M'0MU1aA!0Jl1(B: ,T`0BW1M9a0?i1A0"i1M0AY1E(B, +0,T+Vh1'(P`0CTh1A05i1904i1GBK09i1R(M0Gh1R'`;0Eh1R(B, ,Ta0Ei1G7S!RCa7C!0"i1M$GRA`0>Wh1M07Uh1(PJ0Ci1R'`0;g19a0?i1A0"i1M0AY1E05h1Md;(B. +,T`0AWh1M07h1R90JQh1'c0Ki1(B "0,T(Q14`0!g1:(B (save)" ,Ta0?i1A0"i1M0AY1E(B, 0,TMU1aA!0Jl10(V1'(PJ0Ci1R'a0?i1A0"i1M0AY1E04i1GB0"i1M$GRA07Uh1(B +0,T7h1R9d04i10;i1M9`0"i1Rd;(B. ,T(R!09Ui1d;(B, 0,T7h1R9JRARC6(P05Q140JT19c(EM'a0!i1d"a0?i1A0"i1M0AY1E07Uh10AU1M0BYh1a0Ei1Gd04i1(B. -* 0,T:Q(B1,T?`?M(B0,TCl(B1 (buffer) +* 0,T:Q1?`?M0Cl1(B (buffer) ----------------- -0,T6i(B1,TR(B0,T7h(B1,TR9`(B0,TBW(B1,TM9(B0,TMU(B1,T!a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEb4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-f, ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaC!(P(B0,TBQ(B1,T'$'M(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B1. 0,T7h(B1,TR9(B -,TJRARC6(PJ(B0,TEQ(B1,T:!(B0,TEQ(B1,T:d;d(B0,T4i(B10,TMU(B1,T!b4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-f. 0,TGT(B10,T8U(B10,T9Ui(B1,T(P7Sc(B0,TKi(B10,T7h(B1,TR9JRARC6`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B -,T@RBc9(B0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B1,T(S9G9K(B0,T9Vh(B1,T'(B. +0,T6i1R07h1R9`0BW1M90MU1!a0?i1A0"i1M0AY1Eb4Bc0*i1$S0JQh1'(B C-x C-f, ,Ta0?i1A0"i1M0AY1EaC!(P0BQ1'$'M0BYh1c90MU1aA!0Jl1(B. 0,T7h1R9(B +,TJRARC6(PJ0EQ1:!0EQ1:d;d04i10MU1!b4Bc0*i1$S0JQh1'(B C-x C-f. 0,TGT108U109Ui1(P7Sc0Ki107h1R9JRARC6`0BW1M9a0?i1A0"i1M0AY1E(B +,T@RBc90MU1aA!0Jl1d04i1(S9G9K09Vh1'(B. ->> ,TJ(B0,TCi(B1,TR'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaEPc(B0,TKi(B10,T*Wh(B1,TM(B0,TGh(B1,TR(B "foo" ,Tb4B!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-f foo <Return>. - ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B0,T"i(B1,TM$GRA(B, ,Ta(B0,T!i(B1,Td"(B, ,TaEP(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B "foo" ,Tb4B!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-s. - 0,TJX(B1,T4(B0,T7i(B1,TRB(B, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-f TUTORIAL <Return> ,T`(B0,T>Wh(B1,TM(Pd(B0,T4i(B10,TBi(B1,TM9!(B0,TEQ(B1,T:AR(B0,T7Uh(B10,T"i(B1,TM$GRA(B - ,T"M'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B1. +>> ,TJ0Ci1R'a0?i1A0"i1M0AY1EaEPc0Ki10*Wh1M0Gh1R(B "foo" ,Tb4B!RC0;i1M9$S0JQh1'(B C-x C-f foo <Return>. + ,Ta0Ei1G0;i1M90"i1M$GRA(B, ,Ta0!i1d"(B, ,TaEP0(Q14`0!g1:(B "foo" ,Tb4B!RC0;i1M9$S0JQh1'(B C-x C-s. + 0,TJX1407i1RB(B, 0,T;i1M9$S0JQh1'(B C-x C-f TUTORIAL <Return> ,T`0>Wh1M(Pd04i10Bi1M9!0EQ1:AR07Uh10"i1M$GRA(B + ,T"M'0$Yh10AW1M!RCc0*i1(B. -0,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T!g(B1,T:(B0,T"i(B1,TM$GRA"M'a(B0,T5h(B1,TEPa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE@RBc9(B0,TJTh(B1,T'f(B (object) ,TK(B0,T9Vh(B1,T'(B, 0,T+Vh(B1,T'`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B "0,T:Q(B1,T?`?M(B0,TCl(B1 -(buffer)". ,T!RC`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE`(B0,T;g(B1,T9!RCJ(B0,TCi(B1,TR'(B0,T:Q(B1,T?`?M(B0,TCl(B1,TcK(B0,TAh(B1,T@RBc9(B0,TMU(B1,TaA!(B0,TJl(B1. ,Tc9!RC(B0,T7Uh(B1,T(P(B0,T4Y(B1 -,TCRB!RC"M'(B0,T:Q(B1,T?`?M(B0,TCl(B10,T7Uh(B10,TAU(B1,TM(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B10,T9Qi(B1,T9(B, ,Tc(B0,TKi(B10,T;i(B1,TM9$S(B0,TJQh(B1,T'(B: +0,TMU1aA!0Jl1`0!g1:0"i1M$GRA"M'a05h1EPa0?i1A0"i1M0AY1E@RBc90JTh1'f(B (object) ,TK09Vh1'(B, 0,T+Vh1'`0CU1B!0Gh1R(B "0,T:Q1?`?M0Cl1(B +(buffer)". ,T!RC`0BW1M9a0?i1A0"i1M0AY1E`0;g19!RCJ0Ci1R'0:Q1?`?M0Cl1cK0Ah1@RBc90MU1aA!0Jl1(B. ,Tc9!RC07Uh1(P04Y1(B +,TCRB!RC"M'0:Q1?`?M0Cl107Uh10AU1M0BYh1c90MU1aA!0Jl109Qi19(B, ,Tc0Ki10;i1M9$S0JQh1'(B: C-x C-b List buffers ->> ,TEM'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x C-b 0,T4Y(B1. +>> ,TEM'0;i1M9$S0JQh1'(B C-x C-b 0,T4Y1(B. -0,T4Y(B10,TGh(B1,TRa(B0,T5h(B1,TEP(B0,T:Q(B1,T?`?M(B0,TCl(B10,TAU(B10,T*Wh(B1,TM(B0,TGh(B1,TRMPdC(B, ,TaEP:R'(B0,TMQ(B1,T9(B0,T!g(B1,T`(B0,T;g(B1,T9(B0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,TAU(B1,T`(B0,T9Wi(B1,TMKR(B0,T9Qi(B1,T9f(B ,TM(B0,TBYh(B1. ,T:R'(B -0,T:Q(B1,T?`?M(B0,TCl(B1,Td(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,T!Uh(B1,TBG(B0,T"i(B1,TM'(B0,T!Q(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, 0,T:Q(B1,T?`?M(B0,TCl(B10,T7Uh(B10,TAU(B10,T*Wh(B1,TM(B0,TGh(B1,TR(B "*Buffer List*" -,Td(B0,TAh(B10,TAU(B1,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEc4f(B 0,T7Qi(B1,T'(B0,TJTi(B1,T9(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9(B0,T:Q(B1,T?`?M(B0,TCl(B10,T+Vh(B1,T':CC(B0,T(X(B1,T`(B0,T9Wi(B1,TMKR"M'CRB!RC"M'(B0,T:Q(B1,T?`?M(B0,TCl(B10,T7Uh(B10,T6Y(B1,T!J(B0,TCi(B1,TR'(B -0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-x C-b. 0,T"i(B1,TM$GRAc4f(B 0,T7Uh(B10,T7h(B1,TR9`(B0,TKg(B1,T9:9K(B0,T9i(B1,TR(M"M'(B0,TMU(B1,TaA!(B0,TJl(B1,T(P;CR!/M(B0,TBYh(B1,T`(B0,T;g(B1,T9(B0,TJh(B1,TG9K(B0,T9Vh(B1,T'(B -,T"M'(B0,T:Q(B1,T?`?M(B0,TCl(B1,Tc4(B0,T:Q(B1,T?`?M(B0,TCl(B1,TK(B0,T9Vh(B1,T'`JAM(B. +0,T4Y10Gh1Ra05h1EP0:Q1?`?M0Cl10AU10*Wh1M0Gh1RMPdC(B, ,TaEP:R'0MQ190!g1`0;g190*Wh1M"M'a0?i1A0"i1M0AY1E07Uh10AU1`09Wi1MKR09Qi19f(B ,TM0BYh1(B. ,T:R'(B +0,T:Q1?`?M0Cl1d0Ah1d04i1`0!Uh1BG0"i1M'0!Q1:a0?i1A0"i1M0AY1E(B. 0,T5Q1GM0Bh1R'`0*h19(B, 0,T:Q1?`?M0Cl107Uh10AU10*Wh1M0Gh1R(B "*Buffer List*" +,Td0Ah10AU1a0?i1A0"i1M0AY1Ec4f(B 0,T7Qi1'0JTi19(B. 0,T9Uh1`0;g190:Q1?`?M0Cl10+Vh1':CC0(X1`09Wi1MKR"M'CRB!RC"M'0:Q1?`?M0Cl107Uh106Y1!J0Ci1R'(B +0,T4i1GB$S0JQh1'(B C-x C-b. 0,T"i1M$GRAc4f(B 0,T7Uh107h1R9`0Kg19:9K09i1R(M"M'0MU1aA!0Jl1(P;CR!/M0BYh1`0;g190Jh1G9K09Vh1'(B +,T"M'0:Q1?`?M0Cl1c40:Q1?`?M0Cl1K09Vh1'`JAM(B. ->> ,TEM'c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P!S(B0,T(Q(B1,T4CRB!RC"M'(B0,T:Q(B1,T?`?M(B0,TCl(B1. +>> ,TEM'c0*i1$S0JQh1'(B C-x 1 ,T`0>Wh1M07Uh1(P!S0(Q14CRB!RC"M'0:Q1?`?M0Cl1(B. -0,T6i(B1,TR(B0,T7h(B1,TR9a(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRAc9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEK(B0,T9Vh(B1,T'(B, ,Ta(B0,TEi(B1,TG`(B0,TBW(B1,TM9(B0,TMU(B1,T!a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEK(B0,T9Vh(B1,T'(B, 0,TMU(B1,TaA!(B0,TJl(B10,TBQ(B1,T'd(B0,TAh(B1,Td(B0,T4i(B10,T(Q(B1,T4`(B0,T!g(B1,T:(B -0,T"i(B1,TM$GRA"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaC!(B. 0,T"i(B1,TM$GRA(B0,T7Uh(B10,T6Y(B1,T!a(B0,T!i(B1,Td"d;(P(B0,TBQ(B1,T'$'M(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B1, ,Tc9(B0,T:Q(B1,T?`?M(B0,TCl(B1,TJSK(B0,TCQ(B1,T:(B -,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9(B. ,T!RCJ(B0,TCi(B1,TR'K(B0,TCW(B1,TM!RCa(B0,T!i(B1,Td""M'(B0,T:Q(B1,T?`?M(B0,TCl(B1,TJSK(B0,TCQ(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,TJM'd(B0,TAh(B1,Td(B0,T4i(B10,TAU(B1,T<E(B0,T5h(B1,TM(B -0,T:Q(B1,T?`?M(B0,TCl(B1,TJSK(B0,TCQ(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,TK(B0,T9Vh(B1,T'(B. 0,T9Uh(B1,T`(B0,T;g(B1,T9(B0,TJTh(B1,T'(B0,T7Uh(B10,TAU(B1,T;CPbB*(B0,T9l(B1,TAR!(B, ,Ta(B0,T5h(B10,T!g(B1,TKARB$GRA(B0,TGh(B1,TR(P(B0,T5i(B1,TM'(B0,TAU(B1 -0,TGT(B10,T8U(B1,T!RC(B0,T7Uh(B10,T4U(B1,Tc9!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,T:Q(B1,T?`?M(B0,TCl(B1,T"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaC!(B. 0,T9Uh(B1,Td(B0,TAh(B1,Td(B0,T4i(B1,TKARB$GRA(B0,TGh(B1,TR(P(B0,T5i(B1,TM'J(B0,TEQ(B1,T:!(B0,TEQ(B1,T:d;(B -0,TBQ(B1,T'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEaC!(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-x C-f 0,T!h(B1,TM9(B, ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(Pd(B0,T4i(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-s ,Tc9!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B. -0,T4Q(B1,T'(B0,T9Qi(B1,T9`CR(B0,T(V(B1,T'`5(B0,TCU(B1,TBA$S(B0,TJQh(B1,T'(B +0,T6i1R07h1R9a0!i1d"0"i1M$GRAc9a0?i1A0"i1M0AY1EK09Vh1'(B, ,Ta0Ei1G`0BW1M90MU1!a0?i1A0"i1M0AY1EK09Vh1'(B, 0,TMU1aA!0Jl10BQ1'd0Ah1d04i10(Q14`0!g1:(B +0,T"i1M$GRA"M'a0?i1A0"i1M0AY1EaC!(B. 0,T"i1M$GRA07Uh106Y1!a0!i1d"d;(P0BQ1'$'M0BYh1c90MU1aA!0Jl1(B, ,Tc90:Q1?`?M0Cl1JSK0CQ1:(B +,Ta0?i1A0"i1M0AY1E09Qi19(B. ,T!RCJ0Ci1R'K0CW1M!RCa0!i1d""M'0:Q1?`?M0Cl1JSK0CQ1:a0?i1A0"i1M0AY1E07Uh1JM'd0Ah1d04i10AU1<E05h1M(B +0,T:Q1?`?M0Cl1JSK0CQ1:a0?i1A0"i1M0AY1E07Uh1K09Vh1'(B. 0,T9Uh1`0;g190JTh1'07Uh10AU1;CPbB*09l1AR!(B, ,Ta05h10!g1KARB$GRA0Gh1R(P05i1M'0AU1(B +0,TGT108U1!RC07Uh104U1c9!RC0(Q14`0!g1:0:Q1?`?M0Cl1"M'a0?i1A0"i1M0AY1EaC!(B. 0,T9Uh1d0Ah1d04i1KARB$GRA0Gh1R(P05i1M'J0EQ1:!0EQ1:d;(B +0,TBQ1'a0?i1A0"i1M0AY1EaC!04i1GB$S0JQh1'(B C-x C-f 0,T!h1M9(B, ,T`0>Wh1M07Uh1(Pd04i1c0*i1$S0JQh1'(B C-x C-s ,Tc9!RC0(Q14`0!g1:(B. +0,T4Q1'09Qi19`CR0(V1'`50CU1BA$S0JQh1'(B C-x s Save some buffers -,T$S(B0,TJQh(B1,T'(B C-x s ,T(P6RA(B0,T7h(B1,TR9`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B0,T:Q(B1,T?`?M(B0,TCl(B10,T7Uh(B1,Td(B0,T4i(B10,TCQ(B1,T:!RCa(B0,T!i(B1,Td"a(B0,T5h(B10,TBQ(B1,T'd(B0,TAh(B1,Td(B0,T4i(B10,TCQ(B1,T:!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B. 0,TMU(B1 -,TaA!(B0,TJl(B1,T(P6RA(B0,T7h(B1,TR9(B, ,TJSK(B0,TCQ(B1,T:a(B0,T5h(B1,TEP(B0,T:Q(B1,T?`?M(B0,TCl(B10,T4Q(B1,T'!(B0,TEh(B1,TRG(B, 0,TGh(B1,TR(P(B0,T(Q(B1,T4`(B0,T!g(B1,T:K(B0,TCW(B1,TMd(B0,TAh(B1. +,T$S0JQh1'(B C-x s ,T(P6RA07h1R9`0!Uh1BG0!Q1:0:Q1?`?M0Cl107Uh1d04i10CQ1:!RCa0!i1d"a05h10BQ1'd0Ah1d04i10CQ1:!RC0(Q14`0!g1:(B. 0,TMU1(B +,TaA!0Jl1(P6RA07h1R9(B, ,TJSK0CQ1:a05h1EP0:Q1?`?M0Cl104Q1'!0Eh1RG(B, 0,TGh1R(P0(Q14`0!g1:K0CW1Md0Ah1(B. ->> ,Ta7C!(B0,T"i(B1,TM$GRA(B0,TJQ(B1,T!K(B0,T9Vh(B1,T':CC(B0,T7Q(B1,T4(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x s. - 0,TMU(B1,TaA!(B0,TJl(B1,T(P6RA(B0,T7h(B1,TR9(B0,TGh(B1,TR(P(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,T:Q(B1,T?`?M(B0,TCl(B10,T*Wh(B1,TM(B TUTORIAL ,TdKA(B. - ,T5M:(B0,TGh(B1,TRc(B0,T*h(B1,Tb4B!RC(B0,T;i(B1,TM9(B "y". +>> ,Ta7C!0"i1M$GRA0JQ1!K09Vh1':CC07Q14(B, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-x s. + 0,TMU1aA!0Jl1(P6RA07h1R90Gh1R(P0(Q14`0!g1:0:Q1?`?M0Cl10*Wh1M(B TUTORIAL ,TdKA(B. + ,T5M:0Gh1Rc0*h1b4B!RC0;i1M9(B "y". -* ,T!RC`(B0,T>Th(B1,TA(B0,T*X(B1,T4$S(B0,TJQh(B1,T'(B +* ,T!RC`0>Th1A0*X14$S0JQh1'(B -------------- -0,TAU(B1,T$S(B0,TJQh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B1,TM(B0,TBYh(B10,TMU(B1,T!AR!ARB(9`(B0,T!T(B1,T9!(B0,TGh(B1,TR(B0,T7Uh(B1,T(PJRARC6!S(B0,T!Q(B1,T:d(B0,T4i(B10,T4i(B1,TGB(B0,TMQ(B1,T!"CP;CPJA(B0,T!Q(B1,T:(B0,TMQ(B1,T!"CP(B -,T$M9b7CE(B (control character) ,TaEPM(B0,T@T(B10,TMQ(B1,T!"CP(B (meta character). 0,TMU(B1,TaA!(B0,TJl(B1,Tc(B0,T*i(B1,T!RC(B -,T;CPJA(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'`J(B0,TCT(B1,TA(B (eXtend command). ,T!RC`J(B0,TCT(B1,TA(B0,T9Ui(B1,T`(B0,T;g(B1,T9d;d(B0,T4i(B1,TJM'(B0,TEQ(B1,T!I3P(B: - - C-x ,T!RC`J(B0,TCT(B1,TA(B0,TMQ(B1,T!"CP(B (Character eXtend). ,T5RA(B0,T4i(B1,TGBK(B0,T9Vh(B1,T'(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B. - M-x ,T!RC`J(B0,TCT(B1,TA(B0,T4i(B1,TGB(B0,T*Wh(B1,TM$S(B0,TJQh(B1,T'(B (Named command eXtend). ,T5RA(B0,T4i(B1,TGB(B0,T*Wh(B1,TM`(B0,T5g(B1,TA(B. - -,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,Tb4B(B0,T7Qh(B1,TGd;a(B0,TEi(B1,TG(P(B0,TAU(B1,T;CPbB*(B0,T9l(B1, ,Ta(B0,T5h(B10,TAQ(B1,T!(P(B0,TAU(B1,TbM!RJc(B0,T*i(B10,T9i(B1,TMB!(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T5h(B1,TR'f(B 0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1 -,T`(B0,TCU(B1,TB9(B0,TCYi(B1,Td;a(B0,TEi(B1,TG(B. 0,T7h(B1,TR9d(B0,T4i(B1,T>:d;a(B0,TEi(B1,TGJM'$S(B0,TJQh(B1,T'(B: ,T$S(B0,TJQh(B1,T'JSK(B0,TCQ(B1,T:!RC(B0,T(Q(B1,T4!RC(B0,T!Q(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B C-x C-f -,TJSK(B0,TCQ(B1,T:!RC`(B0,TBW(B1,TM9(B (Find) ,TaEP(B C-x C-s ,TJSK(B0,TCQ(B1,T:!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B (Save). 0,TMU(B1,T!(B0,T5Q(B1,TGM(B0,TBh(B1,TR'K(B0,T9Vh(B1,T'(B0,T!g(B1 -0,T$W(B1,TM$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RC`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1--,T$S(B0,TJQh(B1,T'(B C-x C-c. (,Td(B0,TAh(B10,T5i(B1,TM'`(B0,T;g(B1,T9(B0,TKh(B1,TG'(B0,TGh(B1,TR(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1 -,Ta(B0,T!i(B1,Td"d;(P(B0,TJY(B1,T-KRB(B; ,T$S(B0,TJQh(B1,T'(B C-x C-c ,T(P`J9Mc(B0,TKi(B10,T(Q(B1,T4`(B0,T!g(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T6Y(B1,T!a(B0,T!i(B1,Td"d;(B0,T!h(B1,TM9(B0,T7Uh(B1,T(P(B0,TJTi(B1,T9(B0,TJX(B1,T4(B -0,TMU(B1,TaA!(B0,TJl(B1.) - -,T$S(B0,TJQh(B1,T'(B C-z ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RCMM!(R!(B0,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T;g(B1,T9!RC(B0,T*Qh(B1,TG$CRG(B *temporarily*--,T)P(B0,T9Qi(B1,T9(B -0,T7h(B1,TR9JRARC6!(B0,TEQ(B1,T:d;(B0,TJYh(B10,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B10,TMU(B1,T!K(B0,TEQ(B1,T'(R!(B0,T9Qi(B1,T9(B. - -,TJSK(B0,TCQ(B1,T:CP::(B0,T7Uh(B1,TM(B0,T9X(B1,T-R5c(B0,TKi(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B, C-z "suspends" 0,TMU(B1,TaA!(B0,TJl(B1; 0,T9Qh(B1,T9(B0,T$W(B1,TM!RC!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'`*E(B0,TEl(B1 -(shell) ,Tb4Bd(B0,TAh(B1,Td(B0,T4i(B1,T7SERB(B0,TMU(B1,TaA!(B0,TJl(B1. ,Tc9`*E(B0,TEl(B10,T7Qh(B1,TGd;(B, 0,T7h(B1,TR9JRARC6(B0,TCU(B10,T+Y(B1,TA(B (resume) 0,TMU(B1,TaA!(B0,TJl(B1 -,Td(B0,T4i(B10,T4i(B1,TGB$S(B0,TJQh(B1,T'(B `fg' ,TK(B0,TCW(B1,TM(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B `%emacs'. - -,TJSK(B0,TCQ(B1,T:CP::(B0,T7Uh(B1,Td(B0,TAh(B10,TAU(B10,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B "suspend", ,T$S(B0,TJQh(B1,T'(B C-z ,T(PJ(B0,TCi(B1,TR'(B0,T+Q(B1,T:`*E(B0,TEl(B1 (subshell) -,T@RBc(B0,T5i(B10,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T>Wh(B1,TMc(B0,TKi(B10,T7h(B1,TR9(B0,TAU(B1,TbM!RJ4S`(B0,T9T(B1,T9'R9b;Ca!CA(B0,TMWh(B1,T9(B0,T!h(B1,TM9a(B0,TEi(B1,TG(B0,T$h(B1,TMB!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'(B0,TMU(B1,TaA!(B0,TJl(B10,TMU(B1,T!$(B0,TCQi(B1,T'(B; -0,T+Vh(B1,T'd(B0,TAh(B1,Tc(B0,T*h(B1,T!RC(B ",TMM!(R!(B (exit)" 0,TMU(B1,TaA!(B0,TJl(B1,T((B0,TCT(B1,T'(B. ,Tc9!C(B0,T3U(B10,T9Ui(B1, ,T$S(B0,TJQh(B1,T'`*E(B0,TEl(B1 `exit' ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B -,T;C!(B0,T5T(B10,T7Uh(B1,Tc(B0,T*i(B1,Tc9!RC!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'(B0,TMU(B1,TaA!(B0,TJl(B1,T(R!(B0,T+Q(B1,T:`*E(B0,TEl(B1. - -,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-c 0,T!g(B10,T5h(B1,TM`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(P`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1,T((B0,TCT(B1,T'f(B. 0,TGT(B10,T8U(B10,T9Ui(B1,T`(B0,T;g(B1,T9(B0,TGT(B10,T8U(B10,T7Uh(B10,T6Y(B1,T!(B0,T5i(B1,TM'c9(B -,T!RC(B0,T7Uh(B1,T(P`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1, ,Td(B0,TAh(B10,TGh(B1,TR(B0,TMU(B1,TaA!(B0,TJl(B10,T9Qi(B1,T9(P(B0,T6Y(B1,T!`(B0,TCU(B1,TB!c(B0,T*i(B1,T(R!b;Ca!CA(B0,T(Q(B1,T4!RC`AE(B0,TEl(B1 (mail -handling programs) ,TK(B0,TCW(B1,TMb;Ca!CAMCC6;CPbB*(B0,T9l(B1 (utility programs) 0,T5h(B1,TR'f(B, -,T`(B0,T9Wh(B1,TM'(R!(B0,TGh(B1,TRb;Ca!CA`K(B0,TEh(B1,TR(B0,T9Ui(B1,Td(B0,TAh(B10,TAU(B10,TGT(B10,T8U(B1,T!RC(B0,T(Q(B1,T4!RC(B0,T!Q(B1,T:(B0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B1,Tb4B5C'(B. ,Tc9J@R>!RC7S'R9(B -,T;C!(B0,T5T(B1, 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B1,Td(B0,T4i(B10,T5i(B1,TM'!RC(P`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1,T((B0,TCT(B1,T'f(B, 0,T7h(B1,TR9(B0,T!g(B1,T$GC(P(B suspend ,Tb4B!RCc(B0,T*i(B1 -,T$S(B0,TJQh(B1,T'(B C-z ,Ta79!RC`(B0,TET(B1,T!c(B0,T*i(B1,Td;`EB(B. - -0,TBQ(B1,T'(B0,TAU(B1,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,TM(B0,TBYh(B1,Tc9(B0,T*X(B1,T4$S(B0,TJQh(B1,T'(B C-x 0,TMU(B1,T!AR!(B. 0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9CRB!RC$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TCU(B1,TB9(B0,TCYi(B1,Td;a(B0,TEi(B1,TG(B: - - C-x C-f ,T`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B (Find file). - C-x C-s 0,T(Q(B1,T4`(B0,T!g(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B (Save file). - C-x C-b ,T7SCRB!RC(B0,T:Q(B1,T?`?M(B0,TCl(B1 (List buffers). - C-x C-c ,T`(B0,TET(B1,T!c(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1 (Quit Emacs). - C-x 1 ,TE:K(B0,T9i(B1,TR(M(B0,T7Qi(B1,T'KA4b4B$'M(B0,TBYh(B1,Td(B0,TGi(B1,TK(B0,T9Vh(B1,T'K(B0,T9i(B1,TR(M(B +0,TAU1$S0JQh1'"M'0MU1aA!0Jl1M0BYh10MU1!AR!ARB(9`0!T19!0Gh1R07Uh1(PJRARC6!S0!Q1:d04i104i1GB0MQ1!"CP;CPJA0!Q1:0MQ1!"CP(B +,T$M9b7CE(B (control character) ,TaEPM0@T10MQ1!"CP(B (meta character). 0,TMU1aA!0Jl1c0*i1!RC(B +,T;CPJA0!Q1:$S0JQh1'`J0CT1A(B (eXtend command). ,T!RC`J0CT1A09Ui1`0;g19d;d04i1JM'0EQ1!I3P(B: + + C-x ,T!RC`J0CT1A0MQ1!"CP(B (Character eXtend). ,T5RA04i1GBK09Vh1'05Q1G0MQ1!IC(B. + M-x ,T!RC`J0CT1A04i1GB0*Wh1M$S0JQh1'(B (Named command eXtend). ,T5RA04i1GB0*Wh1M`05g1A(B. + +,T$S0JQh1'`K0Eh1R09Ui1b4B07Qh1Gd;a0Ei1G(P0AU1;CPbB*09l1(B, ,Ta05h10AQ1!(P0AU1bM!RJc0*i109i1MB!0Gh1R$S0JQh1'05h1R'f(B 0,T7Uh107h1R9d04i1(B +,T`0CU1B90CYi1d;a0Ei1G(B. 0,T7h1R9d04i1>:d;a0Ei1GJM'$S0JQh1'(B: ,T$S0JQh1'JSK0CQ1:!RC0(Q14!RC0!Q1:a0?i1A0"i1M0AY1E(B C-x C-f +,TJSK0CQ1:!RC`0BW1M9(B (Find) ,TaEP(B C-x C-s ,TJSK0CQ1:!RC0(Q14`0!g1:(B (Save). 0,TMU1!05Q1GM0Bh1R'K09Vh1'0!g1(B +0,T$W1M$S0JQh1'07Uh1c0*i1c9!RC`0ET1!c0*i10MU1aA!0Jl1(B--,T$S0JQh1'(B C-x C-c. (,Td0Ah105i1M'`0;g190Kh1G'0Gh1R0"i1M0AY1E07Uh107h1R9d04i1(B +,Ta0!i1d"d;(P0JY1-KRB(B; ,T$S0JQh1'(B C-x C-c ,T(P`J9Mc0Ki10(Q14`0!g1:a0?i1A0"i1M0AY1E07Uh106Y1!a0!i1d"d;0!h1M907Uh1(P0JTi190JX14(B +0,TMU1aA!0Jl1(B.) + +,T$S0JQh1'(B C-z ,T`0;g19$S0JQh1'07Uh1c0*i1c9!RCMM!(R!0MU1aA!0Jl1`0;g19!RC0*Qh1G$CRG(B *temporarily*--,T)P09Qi19(B +0,T7h1R9JRARC6!0EQ1:d;0JYh10MU1aA!0Jl1d04i10MU1!K0EQ1'(R!09Qi19(B. + +,TJSK0CQ1:CP::07Uh1M09X1-R5c0Ki1c0*i1$S0JQh1'(B, C-z "suspends" 0,TMU1aA!0Jl1(B; 0,T9Qh190$W1M!RC!0EQ1:d;0BQ1'`*E0El1(B +(shell) ,Tb4Bd0Ah1d04i17SERB0MU1aA!0Jl1(B. ,Tc9`*E0El107Qh1Gd;(B, 0,T7h1R9JRARC60CU10+Y1A(B (resume) 0,TMU1aA!0Jl1(B +,Td04i104i1GB$S0JQh1'(B `fg' ,TK0CW1M04i1GB$S0JQh1'(B `%emacs'. + +,TJSK0CQ1:CP::07Uh1d0Ah10AU10?Q1'0!l10*Q19(B "suspend", ,T$S0JQh1'(B C-z ,T(PJ0Ci1R'0+Q1:`*E0El1(B (subshell) +,T@RBc05i10MU1aA!0Jl1`0>Wh1Mc0Ki107h1R90AU1bM!RJ4S`09T19'R9b;Ca!CA0MWh190!h1M9a0Ei1G0$h1MB!0EQ1:AR0BQ1'0MU1aA!0Jl10MU1!$0CQi1'(B; +0,T+Vh1'd0Ah1c0*h1!RC(B ",TMM!(R!(B (exit)" 0,TMU1aA!0Jl1(0CT1'(B. ,Tc9!C03U109Ui1(B, ,T$S0JQh1'`*E0El1(B `exit' ,T`0;g19$S0JQh1'(B +,T;C!05T107Uh1c0*i1c9!RC!0EQ1:d;0BQ1'0MU1aA!0Jl1(R!0+Q1:`*E0El1(B. + +,Tc0*i1$S0JQh1'(B C-x C-c 0,T!g105h1M`0AWh1M07h1R905i1M'!RC(P`0ET1!c0*i10MU1aA!0Jl1(0CT1'f(B. 0,TGT108U109Ui1`0;g190GT108U107Uh106Y1!05i1M'c9(B +,T!RC07Uh1(P`0ET1!c0*i10MU1aA!0Jl1(B, ,Td0Ah10Gh1R0MU1aA!0Jl109Qi19(P06Y1!`0CU1B!c0*i1(R!b;Ca!CA0(Q14!RC`AE0El1(B (mail +handling programs) ,TK0CW1Mb;Ca!CAMCC6;CPbB*09l1(B (utility programs) 0,T5h1R'f(B, +,T`09Wh1M'(R!0Gh1Rb;Ca!CA`K0Eh1R09Ui1d0Ah10AU10GT108U1!RC0(Q14!RC0!Q1:0MU1aA!0Jl1d04i1b4B5C'(B. ,Tc9J@R>!RC7S'R9(B +,T;C!05T1(B, 0,T6i1R07h1R9d0Ah1d04i105i1M'!RC(P`0ET1!c0*i10MU1aA!0Jl1(0CT1'f(B, 0,T7h1R90!g1$GC(P(B suspend ,Tb4B!RCc0*i1(B +,T$S0JQh1'(B C-z ,Ta79!RC`0ET1!c0*i1d;`EB(B. + +0,TBQ1'0AU1$S0JQh1'07Uh1M0BYh1c90*X14$S0JQh1'(B C-x 0,TMU1!AR!(B. 0,T5h1Md;09Ui1`0;g19CRB!RC$S0JQh1'07Uh107h1R9d04i1`0CU1B90CYi1d;a0Ei1G(B: + + C-x C-f ,T`0BW1M9a0?i1A0"i1M0AY1E(B (Find file). + C-x C-s 0,T(Q14`0!g1:a0?i1A0"i1M0AY1E(B (Save file). + C-x C-b ,T7SCRB!RC0:Q1?`?M0Cl1(B (List buffers). + C-x C-c ,T`0ET1!c0*i10MU1aA!0Jl1(B (Quit Emacs). + C-x 1 ,TE:K09i1R(M07Qi1'KA4b4B$'M0BYh1d0Gi1K09Vh1'K09i1R(M(B (Delete all but one window). - C-x u ,T7S(B0,TBi(B1,TM9(B (Undo). + C-x u ,T7S0Bi1M9(B (Undo). -,T$S(B0,TJQh(B1,T'(B0,T7Uh(B10,TAU(B10,T*Wh(B1,TM$S(B0,TJQh(B1,T'`J(B0,TCT(B1,TA(B0,T9Ui(B1,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Td(B0,TAh(B10,T$h(B1,TMB(B0,T:h(B1,TMB(B0,T9Q(B1,T!(B, ,TK(B0,TCW(B1,TM`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,T`)>RPc9:R'bKA4(B -,T`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'K(B0,T9Vh(B1,T'"M'$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T$W(B1,TM$S(B0,TJQh(B1,T'`;(B0,TEUh(B1,TB9a79(B-,TJRB(B0,TMQ(B1,T!"CP(B (replace-string), -0,T+Vh(B1,T'`(B0,T;g(B1,T9!RC`;(B0,TEUh(B1,TB9a79JRB(B0,TMQ(B1,T!"CPK(B0,T9Vh(B1,T'(B0,T4i(B1,TGB(B0,TMU(B1,T!JRB(B0,TMQ(B1,T!"CPK(B0,T9Vh(B1,T'(B0,T7Qi(B1,T'KA4(B. ,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-x, -0,TMU(B1,TaA!(B0,TJl(B1,TaJ4'(B M-x 0,T7Uh(B1,T:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B, ,Tc9(B0,T7Uh(B10,T9Ui(B10,T7h(B1,TR9(P(B0,T5i(B1,TM'(B0,T>T(B1,TA(B0,T>l(B10,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'(B; ,Tc9!C(B0,T3U(B10,T9Ui(B1 -0,T$W(B1,TM(B "replace-string". 0,T7h(B1,TR9MR((P(B0,T>T(B1,TA(B0,T>l(B1 "repl s<TAB>" ,Ta(B0,TEi(B1,TG(B0,TMU(B1,TaA!(B0,TJl(B1,T(P`(B0,T5T(B1,TA(B0,T*Wh(B1,TM$S(B0,TJQh(B1,T'c(B0,TKi(B1 -,T`(B0,T5g(B1,TA`M'd(B0,T4i(B1. 0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B0,T4i(B1,TGB!RC!4(B0,T;Xh(B1,TA(B <Return>. +,T$S0JQh1'07Uh10AU10*Wh1M$S0JQh1'`J0CT1A09Ui1`0;g19$S0JQh1'07Uh1c0*i1d0Ah10$h1MB0:h1MB09Q1!(B, ,TK0CW1M`0;g19$S0JQh1'07Uh1c0*i1`)>RPc9:R'bKA4(B +,T`07h1R09Qi19(B. 0,T5Q1GM0Bh1R'K09Vh1'"M'$S0JQh1'09Ui10$W1M$S0JQh1'`;0EUh1B9a79(B-,TJRB0MQ1!"CP(B (replace-string), +0,T+Vh1'`0;g19!RC`;0EUh1B9a79JRB0MQ1!"CPK09Vh1'04i1GB0MU1!JRB0MQ1!"CPK09Vh1'07Qi1'KA4(B. ,T`0AWh1M07h1R90;i1M9$S0JQh1'(B M-x, +0,TMU1aA!0Jl1aJ4'(B M-x 0,T7Uh1:CC07Q140Eh1R'0JX14"M'K09i1R(M(B, ,Tc907Uh109Ui107h1R9(P05i1M'0>T1A0>l10*Wh1M"M'$S0JQh1'(B; ,Tc9!C03U109Ui1(B +0,T$W1M(B "replace-string". 0,T7h1R9MR((P0>T1A0>l1(B "repl s<TAB>" ,Ta0Ei1G0MU1aA!0Jl1(P`05T1A0*Wh1M$S0JQh1'c0Ki1(B +,T`05g1A`M'd04i1(B. 0,TJTi190JX14$S0JQh1'04i1GB!RC!40;Xh1A(B <Return>. -,T$S(B0,TJQh(B1,T'`;(B0,TEUh(B1,TB9a79(B-,TJRB(B0,TMQ(B1,T!"CP(B (replace-string) 0,T5i(B1,TM'!RCJM'MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1--,TJRB(B0,TMQ(B1,T!"CP(B -0,T7Uh(B1,T(P(B0,T6Y(B1,T!`;(B0,TEUh(B1,TB9a79(B, ,TaEPJRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B1,T(Pc(B0,T*i(B1,T`;(B0,TEUh(B1,TB9a79(B. 0,T7h(B1,TR9(P(B0,T5i(B1,TM'(B0,TJTi(B1,T9(B0,TJX(B1,T4!RC(B0,T;i(B1,TM9a(B0,T5h(B1,TEPMR(B0,TCl(B1 -0,T!T(B1,TG`A9(B0,T5l(B10,T4i(B1,TGB!RC!4(B0,T;Xh(B1,TA(B <Return>. +,T$S0JQh1'`;0EUh1B9a79(B-,TJRB0MQ1!"CP(B (replace-string) 0,T5i1M'!RCJM'MR0Cl10!T1G`A905l1(B--,TJRB0MQ1!"CP(B +0,T7Uh1(P06Y1!`;0EUh1B9a79(B, ,TaEPJRB0MQ1!"CP07Uh1(Pc0*i1`;0EUh1B9a79(B. 0,T7h1R9(P05i1M'0JTi190JX14!RC0;i1M9a05h1EPMR0Cl1(B +0,T!T1G`A905l104i1GB!RC!40;Xh1A(B <Return>. ->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td;(B0,TBQ(B1,T':CC(B0,T7Q(B1,T4`;(B0,TEh(B1,TR(B0,T7Uh(B1,TM(B0,TBYh(B1,Tc(B0,T5i(B1,T:CC(B0,T7Q(B1,T4(B0,T9Ui(B1,Td;JM':CC(B0,T7Q(B1,T4(B. - ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-x repl s<Return>changed<Return>altered<Return>. +>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1d;0BQ1':CC07Q14`;0Eh1R07Uh1M0BYh1c05i1:CC07Q1409Ui1d;JM':CC07Q14(B. + ,Ta0Ei1G0;i1M9$S0JQh1'(B M-x repl s<Return>changed<Return>altered<Return>. - 0,TJQ(B1,T'`!5(B0,T4Y(B1,T!RC`;(B0,TEUh(B1,TB9a;E'"M':CC(B0,T7Q(B1,T4(B0,T9Ui(B1: 0,T7h(B1,TR9d(B0,T4i(B1,T`;(B0,TEUh(B1,TB9a79$S(B0,TGh(B1,TR(B c-h-a-n-g-e-d - 0,T4i(B1,TGB$S(B0,TGh(B1,TR(B "altered" ,Tc9(B0,T7X(B1,T!(B0,T7Uh(B10,T7Uh(B1,T;CR!/(B0,T5Qi(B1,T'a(B0,T5h(B1,T5SaK(B0,T9h(B1,T'(B0,T7Uh(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TM(B0,TBYh(B10,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B. + 0,TJQ1'`!504Y1!RC`;0EUh1B9a;E'"M':CC07Q1409Ui1(B: 0,T7h1R9d04i1`;0EUh1B9a79$S0Gh1R(B c-h-a-n-g-e-d + 0,T4i1GB$S0Gh1R(B "altered" ,Tc907X1!07Uh107Uh1;CR!/05Qi1'a05h15SaK09h1'07Uh1`$M0Cl1`+M0Cl1M0BYh10;Q1(0(X10:Q19(B. -* 0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 (auto save) +* 0,T(Q14`0!g1:0MQ15b90AQ105T1(B (auto save) ------------------------- -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9d(B0,T4i(B1,Ta(B0,T!i(B1,Td"a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEa(B0,TEi(B1,TG(B, ,Ta(B0,T5h(B10,T7h(B1,TR9(B0,TBQ(B1,T'd(B0,TAh(B1,Td(B0,T4i(B10,T(Q(B1,T4`(B0,T!g(B1,T:(B, ,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE`K(B0,TEh(B1,TR(B0,T9Qi(B1,T9MR((B0,TJY(B1,T-KRBd(B0,T4i(B10,T6i(B1,TR(B -,T`$(B0,TCWh(B1,TM'$MA(B0,T>T(B1,TG`5M(B0,TCl(B1,T"M'(B0,T7h(B1,TR9`(B0,T!T(B1,T4(B0,T"Q(B1,T4(B0,T"i(B1,TM'(B. ,T`(B0,T>Wh(B1,TM(B0,T;i(B1,TM'(B0,T!Q(B1,T9`K(B0,T5X(B1,T!RC(B0,T3l(B1,T`(B0,T*h(B1,T9(B0,T9Ui(B1, 0,TMU(B1,TaA!(B0,TJl(B1,T7S!RC`(B0,T"U(B1,TB9(B -0,T"i(B1,TM$GRAJSK(B0,TCQ(B1,T:a(B0,T5h(B1,TEPa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'7S!RCa(B0,T!i(B1,Td"M(B0,TBYh(B1,TE'c9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B "0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 -(auto save)". 0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 (auto save file) ,T(P(B0,T6Y(B1,T!(B0,T5Qi(B1,T'cK(B0,TAh(B1,Tc(B0,TKi(B1 -0,TAU(B10,TMQ(B1,T!"CP(B "#" ,TM(B0,TBYh(B10,T7Qi(B1,T'(B0,T"i(B1,TR'K(B0,T9i(B1,TRaEP(B0,T"i(B1,TR'K(B0,TEQ(B1,T'(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B; 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, 0,T6i(B1,TR(B0,T*Wh(B1,TM"M'(B -,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Qi(B1,T9`(B0,T;g(B1,T9(B "hello.c", 0,T*Wh(B1,TM"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1,T(P`(B0,T;g(B1,T9(B "#hello.c#". -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR97S!RC(B0,T(Q(B1,T4`(B0,T!g(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T4i(B1,TGB(B0,TGT(B10,T8U(B1,T!RC;C!(B0,T5T(B1,Ta(B0,TEi(B1,TG(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(PE:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 -0,T9Qi(B1,T9`(B0,TJU(B1,TB(B. +,T`0AWh1M07h1R9d04i1a0!i1d"a0?i1A0"i1M0AY1Ea0Ei1G(B, ,Ta05h107h1R90BQ1'd0Ah1d04i10(Q14`0!g1:(B, ,Ta0?i1A0"i1M0AY1E`K0Eh1R09Qi19MR(0JY1-KRBd04i106i1R(B +,T`$0CWh1M'$MA0>T1G`5M0Cl1"M'07h1R9`0!T140"Q140"i1M'(B. ,T`0>Wh1M0;i1M'0!Q19`K05X1!RC03l1`0*h1909Ui1(B, 0,TMU1aA!0Jl17S!RC`0"U1B9(B +0,T"i1M$GRAJSK0CQ1:a05h1EPa0?i1A0"i1M0AY1E07Uh107h1R9!S0EQ1'7S!RCa0!i1d"M0BYh1E'c9a0?i1A0"i1M0AY1E(B "0,T(Q14`0!g1:0MQ15b90AQ105T1(B +(auto save)". 0,T*Wh1M"M'a0?i1A0"i1M0AY1E0(Q14`0!g1:0MQ15b90AQ105T1(B (auto save file) ,T(P06Y1!05Qi1'cK0Ah1c0Ki1(B +0,TAU10MQ1!"CP(B "#" ,TM0BYh107Qi1'0"i1R'K09i1RaEP0"i1R'K0EQ1'0*Wh1Ma0?i1A0"i1M0AY1E05i19)0:Q1:(B; 0,T5Q1GM0Bh1R'`0*h19(B, 0,T6i1R0*Wh1M"M'(B +,Ta0?i1A0"i1M0AY1E09Qi19`0;g19(B "hello.c", 0,T*Wh1M"M'a0?i1A0"i1M0AY1E0(Q14`0!g1:0MQ15b90AQ105T1(P`0;g19(B "#hello.c#". +,T`0AWh1M07h1R97S!RC0(Q14`0!g1:a0?i1A0"i1M0AY1E04i1GB0GT108U1!RC;C!05T1a0Ei1G(B, 0,TMU1aA!0Jl1(PE:a0?i1A0"i1M0AY1E0(Q14`0!g1:0MQ15b90AQ105T1(B +0,T9Qi19`0JU1B(B. -0,T6i(B1,TR`$(B0,TCWh(B1,TM'$MA(B0,T>T(B1,TG`5M(B0,TCl(B1,T`(B0,T!T(B1,T4(B0,T"Q(B1,T4(B0,T"i(B1,TM'(B, 0,T7h(B1,TR9JRARC6(B0,T!Yi(B1 (recover) ,T(R!a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B -0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B10,T9Qi(B1,T9d(B0,T4i(B10,T4i(B1,TGB!RC`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEa::;C!(B0,T5T(B1 (,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'a(B0,T!i(B1,Td"M(B0,TBYh(B1, ,Td(B0,TAh(B1,Tc(B0,T*h(B1 -,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1), ,Ta(B0,TEi(B1,TG(B0,T>T(B1,TA(B0,T>l(B1,T$S(B0,TJQh(B1,T'(B M-x recover file<Return>. ,T`(B0,TAWh(B1,TM(B0,TAU(B1,T!RC(B -,T6RA`(B0,T>Wh(B1,TM!RC(B0,TBW(B1,T9(B0,TBQ(B1,T9(B, 0,T>T(B1,TA(B0,T>l(B1,T$S(B0,TGh(B1,TR(B yes<Return> ,T`(B0,T>Wh(B1,TM4S`(B0,T9T(B1,T9!RC(B0,T5h(B1,TMaEP7S!RC(B0,T!Yi(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T6Y(B1,T!(B -0,T(Q(B1,T4`(B0,T!g(B1,T:(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B10,T9Qi(B1,T9(B. +0,T6i1R`$0CWh1M'$MA0>T1G`5M0Cl1`0!T140"Q140"i1M'(B, 0,T7h1R9JRARC60!Yi1(B (recover) ,T(R!a0?i1A0"i1M0AY1E0(Q14`0!g1:(B +0,TMQ15b90AQ105T109Qi19d04i104i1GB!RC`0BW1M9a0?i1A0"i1M0AY1Ea::;C!05T1(B (,Ta0?i1A0"i1M0AY1E07Uh107h1R9!S0EQ1'a0!i1d"M0BYh1(B, ,Td0Ah1c0*h1(B +,Ta0?i1A0"i1M0AY1E0(Q14`0!g1:0MQ15b90AQ105T1(B), ,Ta0Ei1G0>T1A0>l1$S0JQh1'(B M-x recover file<Return>. ,T`0AWh1M0AU1!RC(B +,T6RA`0>Wh1M!RC0BW190BQ19(B, 0,T>T1A0>l1$S0Gh1R(B yes<Return> ,T`0>Wh1M4S`09T19!RC05h1MaEP7S!RC0!Yi10"i1M0AY1E07Uh106Y1!(B +0,T(Q14`0!g1:0MQ15b90AQ105T109Qi19(B. -* ,T:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B (echo area) +* ,T:0CT1`G3JP07i1M9(B (echo area) ------------------------ -0,TMU(B1,TaA!(B0,TJl(B10,TMh(B1,TR9$S(B0,TJQh(B1,T';CPJA(B (multicharacter command) ,T"3P(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,T>T(B1,TA(B0,T>l(B1,T`(B0,T"i(B1,TRd;(B0,T*i(B1,TRf(B, -0,TMU(B1,TaA!(B0,TJl(B1,T(PaJ4'$S(B0,TJQh(B1,T'(B0,T5h(B1,TR'f(B 0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B10,T>T(B1,TA(B0,T>l(B1,T`(B0,T"i(B1,TRd;5C'(B0,TJh(B1,TG9(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M5C':(B0,TCT(B1,T`G3(B0,T7Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B -",T:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B (echo area)". ,T:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B0,T$W(B1,TM:CC(B0,T7Q(B1,T4(B0,TEh(B1,TR'(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B. +0,TMU1aA!0Jl10Mh1R9$S0JQh1';CPJA(B (multicharacter command) ,T"3P07Uh107h1R9!S0EQ1'0>T1A0>l1`0"i1Rd;0*i1Rf(B, +0,TMU1aA!0Jl1(PaJ4'$S0JQh1'05h1R'f(B 0,T7Uh107h1R9d04i10>T1A0>l1`0"i1Rd;5C'0Jh1G90Eh1R'"M'K09i1R(M5C':0CT1`G307Uh1`0CU1B!0Gh1R(B +",T:0CT1`G3JP07i1M9(B (echo area)". ,T:0CT1`G3JP07i1M90$W1M:CC07Q140Eh1R'0JX14"M'K09i1R(M(B. -* ,T:CC(B0,T7Q(B1,T4aJ4'bKA4(B (mode line) +* ,T:CC07Q14aJ4'bKA4(B (mode line) --------------------------- -,T:CC(B0,T7Q(B1,T4(B0,T7Uh(B1,TM(B0,TBYh(B1,T`K(B0,T9W(B1,TM:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B0,T9Qi(B1,T9`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B "mode line". ,T:CC(B0,T7Q(B1,T4aJ4'bKA4(PaJ4'(B -0,T"i(B1,TM$GRA:R'M(B0,TBh(B1,TR'c9(B0,TEQ(B1,T!I3P(B: +,T:CC07Q1407Uh1M0BYh1`K09W1M:0CT1`G3JP07i1M909Qi19`0CU1B!0Gh1R(B "mode line". ,T:CC07Q14aJ4'bKA4(PaJ4'(B +0,T"i1M$GRA:R'M0Bh1R'c90EQ1!I3P(B: --:** TUTORIAL (Fundamental)--L670--58%---------------- -,T:CC(B0,T7Q(B1,T4(B0,T9Ui(B1,Tc(B0,TKi(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,T`(B0,T;g(B1,T9;CPbB*(B0,T9l(B1,T`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:J6R9@R>"M'(B0,TMU(B1,TaA!(B0,TJl(B1,TaEP(B0,T"i(B1,TM$GRA(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'7S!RC(B -,Ta(B0,T!i(B1,Td"M(B0,TBYh(B1. - -0,T7h(B1,TR97CR:a(B0,TEi(B1,TG(B0,TGh(B1,TR(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,TAU(B1,T$GRAKARBM(B0,TBh(B1,TR'dC(B--0,T$W(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B1,T`(B0,TBW(B1,TM9M(B0,TBYh(B1. -NN%-- -0,T:h(B1,T':M!5SaK(B0,T9h(B1,T'(B0,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9c9(B0,T"i(B1,TM$GRA"M'(B0,T7h(B1,TR9(B; 0,T9Qh(B1,T9KARB$GRA(B0,TGh(B1,TR(B0,TAU(B10,T"i(B1,TM$GRA(B NN ,T`;M(B0,TCl(B1,T`+9(B0,T5l(B10,T7Uh(B1,TM(B0,TBYh(B1 -,T`K(B0,T9W(B1,TM5SaK(B0,T9h(B1,T'(B0,TJY(B1,T'(B0,TJX(B1,T4"M'K(B0,T9i(B1,TR(M(B. 0,T6i(B1,TR5SaK(B0,T9h(B1,T'(B0,TJY(B1,T'(B0,TJX(B1,T4"M'a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEM(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B, ,T(P;CR!/(B ---Top-- ,Ta79(B0,T7Uh(B1,T(P`(B0,T;g(B1,T9(B --00%--. 0,T6i(B1,TR5SaK(B0,T9h(B1,T'(B0,TEh(B1,TR'(B0,TJX(B1,T4"M'(B0,T"i(B1,TM$GRAM(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B, ,T(P;CR!/(B ---Bot--. 0,T6i(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'`(B0,TBW(B1,TM9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,T`(B0,TEg(B1,T!AR!(9(B0,T"i(B1,TM$GRA(B0,T7Qi(B1,T'KA4M(B0,TBYh(B1,T:9K(B0,T9i(B1,TR(M(B, ,T:CC(B0,T7Q(B1,T4(B -,TaJ4'bKA4(PaJ4'(B0,TGh(B1,TR(B --All--. - -,T`$(B0,TCWh(B1,TM'KARB4M!(B0,T(Q(B1,T9:(B0,TCT(B1,T`G3(B0,T5i(B1,T9f(B ,T"M':CC(B0,T7Q(B1,T4aJ4'bKA4KARB$GRA(B0,TGh(B1,TR(B0,T7h(B1,TR9d(B0,T4i(B1,T7S!RC(B -,T`;(B0,TEUh(B1,TB9a;E'`(B0,T9Wi(B1,TMKRc9(B0,T"i(B1,TM$GRAa(B0,TEi(B1,TG(B. ,TKR!(B0,T7h(B1,TR9`(B0,T>Th(B1,T'`(B0,TBW(B1,TM9K(B0,TCW(B1,TM(B0,T(Q(B1,T4`(B0,T!g(B1,T:a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B, 0,TJh(B1,TG9(B0,T7Uh(B1 -,Td(B0,T4i(B1,T!(B0,TEh(B1,TRG(B0,T6V(B1,T'(B0,T9Qi(B1,T9(Pd(B0,TAh(B10,TAU(B1,T`$(B0,TCWh(B1,TM'KARB4M!(B0,T(Q(B1,T9;CR!/(B, ,T(P(B0,TAU(B1,Ta(B0,T5h(B1,T`(B0,TJi(B1,T9;CP(B (dashes). - -0,TJh(B1,TG9(B0,T7Uh(B1,TM(B0,TBYh(B1,TCPK(B0,TGh(B1,TR'G'`(B0,TEg(B1,T:@RBc9:CC(B0,T7Q(B1,T4aJ4'bKA4(P:M!(B0,T7h(B1,TR9(B0,TGh(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'M(B0,TBYh(B1,Tc9bKA4!RCa(B0,T!i(B1,Td"(B -(editing mode) ,TMPdC(B. ,TbKA4b4B;(B0,TCT(B1,TBRB(B (default mode) 0,T$W(B1,TM(B Fundamental 0,T7Uh(B1 -0,T7h(B1,TR9!S(B0,TEQ(B1,T'c(B0,T*i(B1,TM(B0,TBYh(B1,Tc9"3P(B0,T9Ui(B1. 0,T9Uh(B10,T$W(B1,TM(B0,T5Q(B1,TGM(B0,TBh(B1,TR'"M'(B ",TbKA4K(B0,TEQ(B1,T!(B (major mode)". - -0,TMU(B1,TaA!(B0,TJl(B10,TAU(B1,TbKA4K(B0,TEQ(B1,T!M(B0,TBYh(B1,TKERBbKA4(B. 0,T:i(B1,TR'c(B0,T*i(B1,TJSK(B0,TCQ(B1,T:!RCa(B0,T!i(B1,Td"c9@RIRaEP(B/,TK(B0,TCW(B1,TM(B0,T"i(B1,TM$GRA*(B0,T9T(B1,T4(B0,T5h(B1,TR'f(B, -,T`(B0,T*h(B1,T9(B Lisp mode, Text mode, ,T`(B0,T;g(B1,T9(B0,T5i(B1,T9(B. 0,T7h(B1,TR9(PM(B0,TBYh(B1,Tc9bKA4K(B0,TEQ(B1,T!c4bKA4K(B0,TEQ(B1,T!K(B0,T9Vh(B1,T'c9`GER(B -,T`(B0,T4U(B1,TBG(B, ,TaEP(B0,T*Wh(B1,TM"M'bKA4K(B0,TEQ(B1,T!(B0,T9Qi(B1,T9(P;CR!/M(B0,TBYh(B10,T7Uh(B1,T:CC(B0,T7Q(B1,T4aJ4'bKA4(B, 0,T7Uh(B10,T7Uh(B10,TAU(B1 "Fundamental" -,T;CR!/M(B0,TBYh(B1,Tc9"3P(B0,T9Ui(B1. - -,Ta(B0,T5h(B1,TEPbKA4K(B0,TEQ(B1,T!(P7Sc(B0,TKi(B1,T$S(B0,TJQh(B1,T'c(B0,TKi(B1,T<Ec9(B0,TEQ(B1,T!I3P(B0,T7Uh(B1,Ta5!(B0,T5h(B1,TR'(B0,T!Q(B1,T9(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, 0,TAU(B1,TKERB$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1 -,Tc9!RC!S(B0,T!Q(B1,T:KARB`K(B0,T5X(B1 (comment) ,Tc9b;Ca!CA(B, ,TaEP`(B0,T9Wh(B1,TM'(R!a(B0,T5h(B1,TEPb;Ca!CA(B0,TAU(B1,T$GRA(B0,T$T(B1,T4(B -,Tc9!RCaJ4'<E"M'KARB`K(B0,T5X(B10,T7Uh(B1,Ta5!(B0,T5h(B1,TR'(B0,T!Q(B1,T9(B, ,Ta(B0,T5h(B1,TEPbKA4K(B0,TEQ(B1,T!(Pa7C!KARB`K(B0,T5X(B1,Tc9(B0,TEQ(B1,T!I3P(B0,T7Uh(B1 -,Ta5!(B0,T5h(B1,TR'(B0,T!Q(B1,T9(B. ,Ta(B0,T5h(B1,TEPbKA4K(B0,TEQ(B1,T!(P`(B0,T;g(B1,T9(B0,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'`J(B0,TCT(B1,TA(B, 0,T7Uh(B10,T7h(B1,TR9JRARC6:M!c(B0,TKi(B1,TJ(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'bKA4(B0,T7Uh(B1 -0,T5i(B1,TM'!RCd(B0,T4i(B1. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, M-x fundamental-mode ,T`(B0,T;g(B1,T9$S(B0,TJQh(B1,T'c9!RCJ(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'(B +,T:CC07Q1409Ui1c0Ki10"i1M0AY1E07Uh1`0;g19;CPbB*09l1`0!Uh1BG0!Q1:J6R9@R>"M'0MU1aA!0Jl1aEP0"i1M$GRA07Uh107h1R9!S0EQ1'7S!RC(B +,Ta0!i1d"M0BYh1(B. + +0,T7h1R97CR:a0Ei1G0Gh1R0*Wh1Ma0?i1A0"i1M0AY1E0AU1$GRAKARBM0Bh1R'dC(B--0,T$W1Ma0?i1A0"i1M0AY1E07Uh107h1R9d04i1`0BW1M9M0BYh1(B. -NN%-- +0,T:h1':M!5SaK09h1'0;Q1(0(X10:Q19c90"i1M$GRA"M'07h1R9(B; 0,T9Qh19KARB$GRA0Gh1R0AU10"i1M$GRA(B NN ,T`;M0Cl1`+905l107Uh1M0BYh1(B +,T`K09W1M5SaK09h1'0JY1'0JX14"M'K09i1R(M(B. 0,T6i1R5SaK09h1'0JY1'0JX14"M'a0?i1A0"i1M0AY1EM0BYh1:9K09i1R(M(B, ,T(P;CR!/(B +--Top-- ,Ta7907Uh1(P`0;g19(B --00%--. 0,T6i1R5SaK09h1'0Eh1R'0JX14"M'0"i1M$GRAM0BYh1:9K09i1R(M(B, ,T(P;CR!/(B +--Bot--. 0,T6i1R07h1R9!S0EQ1'`0BW1M9a0?i1A0"i1M0AY1E07Uh1`0Eg1!AR!(90"i1M$GRA07Qi1'KA4M0BYh1:9K09i1R(M(B, ,T:CC07Q14(B +,TaJ4'bKA4(PaJ4'0Gh1R(B --All--. + +,T`$0CWh1M'KARB4M!0(Q19:0CT1`G305i19f(B ,T"M':CC07Q14aJ4'bKA4KARB$GRA0Gh1R07h1R9d04i17S!RC(B +,T`;0EUh1B9a;E'`09Wi1MKRc90"i1M$GRAa0Ei1G(B. ,TKR!07h1R9`0>Th1'`0BW1M9K0CW1M0(Q14`0!g1:a0?i1A0"i1M0AY1E(B, 0,TJh1G907Uh1(B +,Td04i1!0Eh1RG06V1'09Qi19(Pd0Ah10AU1`$0CWh1M'KARB4M!0(Q19;CR!/(B, ,T(P0AU1a05h1`0Ji19;CP(B (dashes). + +0,TJh1G907Uh1M0BYh1CPK0Gh1R'G'`0Eg1:@RBc9:CC07Q14aJ4'bKA4(P:M!07h1R90Gh1R07h1R9!S0EQ1'M0BYh1c9bKA4!RCa0!i1d"(B +(editing mode) ,TMPdC(B. ,TbKA4b4B;0CT1BRB(B (default mode) 0,T$W1M(B Fundamental 0,T7Uh1(B +0,T7h1R9!S0EQ1'c0*i1M0BYh1c9"3P09Ui1(B. 0,T9Uh10$W1M05Q1GM0Bh1R'"M'(B ",TbKA4K0EQ1!(B (major mode)". + +0,TMU1aA!0Jl10AU1bKA4K0EQ1!M0BYh1KERBbKA4(B. 0,T:i1R'c0*i1JSK0CQ1:!RCa0!i1d"c9@RIRaEP(B/,TK0CW1M0"i1M$GRA*09T1405h1R'f(B, +,T`0*h19(B Lisp mode, Text mode, ,T`0;g1905i19(B. 0,T7h1R9(PM0BYh1c9bKA4K0EQ1!c4bKA4K0EQ1!K09Vh1'c9`GER(B +,T`04U1BG(B, ,TaEP0*Wh1M"M'bKA4K0EQ1!09Qi19(P;CR!/M0BYh107Uh1:CC07Q14aJ4'bKA4(B, 0,T7Uh107Uh10AU1(B "Fundamental" +,T;CR!/M0BYh1c9"3P09Ui1(B. + +,Ta05h1EPbKA4K0EQ1!(P7Sc0Ki1$S0JQh1'c0Ki1<Ec90EQ1!I3P07Uh1a5!05h1R'0!Q19(B. 0,T5Q1GM0Bh1R'`0*h19(B, 0,TAU1KERB$S0JQh1'07Uh1c0*i1(B +,Tc9!RC!S0!Q1:KARB`K05X1(B (comment) ,Tc9b;Ca!CA(B, ,TaEP`09Wh1M'(R!a05h1EPb;Ca!CA0AU1$GRA0$T14(B +,Tc9!RCaJ4'<E"M'KARB`K05X107Uh1a5!05h1R'0!Q19(B, ,Ta05h1EPbKA4K0EQ1!(Pa7C!KARB`K05X1c90EQ1!I3P07Uh1(B +,Ta5!05h1R'0!Q19(B. ,Ta05h1EPbKA4K0EQ1!(P`0;g190*Wh1M"M'$S0JQh1'`J0CT1A(B, 0,T7Uh107h1R9JRARC6:M!c0Ki1J0EQ1:d;0BQ1'bKA407Uh1(B +0,T5i1M'!RCd04i1(B. 0,T5Q1GM0Bh1R'`0*h19(B, M-x fundamental-mode ,T`0;g19$S0JQh1'c9!RCJ0EQ1:d;0BQ1'(B Fundamental mode. -0,T6i(B1,TR(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'(Pa(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,T`(B0,T;g(B1,T9@RIRd7B(B, ,T`(B0,T*h(B1,T9c9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T9Ui(B1, 0,T7h(B1,TR9$GC(Pc(B0,T*i(B1 +0,T6i1R07h1R9!S0EQ1'(Pa0!i1d"0"i1M$GRA07Uh1`0;g19@RIRd7B(B, ,T`0*h19c9a0?i1A0"i1M0AY1E09Ui1(B, 0,T7h1R9$GC(Pc0*i1(B Thai-text mode. >> M-x thai-text-mode<Return> -,Td(B0,TAh(B10,T5i(B1,TM'(B0,T!Q(B1,T'GE(B, ,T$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'(B0,THV(B1,T!IRM(B0,TBYh(B10,T9Ui(B1,Td(B0,TAh(B1,Td(B0,T4i(B1,Tc(B0,TKi(B1,T<E!CP7:AR!(B0,T9Q(B1,T!(B. ,Ta(B0,T5h(B10,T7h(B1,TR9JRARC6(B0,TJQ(B1,T'`!5d(B0,T4i(B1 -0,TGh(B1,TR$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 0,T6W(B1,TM(B0,TGh(B1,TR(B0,TMQ(B1,T!"CP(B apostrophe ,T`(B0,T;g(B1,T9(B0,TJh(B1,TG9K(B0,T9Vh(B1,T'"M'$S(B. 0,T!h(B1,TM9K(B0,T9i(B1,TR(B0,T9Ui(B1, ,Tc9(B -Fundamental mode, ,T$S(B0,TJQh(B1,T'(B M-f ,TaEP(B M-b 0,T6W(B1,TM(B0,TGh(B1,TR(B0,TMQ(B1,T!"CP(B apostrophe ,T`(B0,T;g(B1,T9(B0,T5Q(B1,TGa(B0,T:h(B1,T'$S(B +,Td0Ah105i1M'0!Q1'GE(B, ,T$S0JQh1'07Uh107h1R9!S0EQ1'0HV1!IRM0BYh109Ui1d0Ah1d04i1c0Ki1<E!CP7:AR!09Q1!(B. ,Ta05h107h1R9JRARC60JQ1'`!5d04i1(B +0,TGh1R$S0JQh1'(B M-f ,TaEP(B M-b 0,T6W1M0Gh1R0MQ1!"CP(B apostrophe ,T`0;g190Jh1G9K09Vh1'"M'$S(B. 0,T!h1M9K09i1R09Ui1(B, ,Tc9(B +Fundamental mode, ,T$S0JQh1'(B M-f ,TaEP(B M-b 0,T6W1M0Gh1R0MQ1!"CP(B apostrophe ,T`0;g1905Q1Ga0:h1'$S(B (word-separator). -,TbKA4K(B0,TEQ(B1,T!`K(B0,TEh(B1,TR(B0,T9Ui(B1,T(Pc(B0,TKi(B1,T<E(B0,T7Uh(B10,T5h(B1,TR'MM!d;`(B0,TEg(B1,T!(B0,T9i(B1,TMB(B0,T4Q(B1,T'(B0,T7Uh(B1,T!(B0,TEh(B1,TRGa(B0,TEi(B1,TG(B0,T"i(B1,TR'(B0,T5i(B1,T9(B: ,T$S(B0,TJQh(B1,T'(B0,TJh(B1,TG9cK(B0,T-h(B1 ",T7SK(B0,T9i(B1,TR(B0,T7Uh(B1 -,T`K(B0,TAW(B1,TM9(B0,T!Q(B1,T9(B" ,Ta(B0,TAi(B1,T(PM(B0,TBYh(B1,Tc9bKA4K(B0,TEQ(B1,T!(B0,T7Uh(B10,T5h(B1,TR'(B0,T!Q(B1,T9(B, ,Ta(B0,T5h(B1,Tc(B0,TKi(B1,T<E(B0,T7Uh(B10,T5h(B1,TR'MM!d;(B0,T:i(B1,TR'`(B0,TEg(B1,T!(B0,T9i(B1,TMB(B. +,TbKA4K0EQ1!`K0Eh1R09Ui1(Pc0Ki1<E07Uh105h1R'MM!d;`0Eg1!09i1MB04Q1'07Uh1!0Eh1RGa0Ei1G0"i1R'05i19(B: ,T$S0JQh1'0Jh1G9cK0-h1(B ",T7SK09i1R07Uh1(B +,T`K0AW1M90!Q19(B" ,Ta0Ai1(PM0BYh1c9bKA4K0EQ1!07Uh105h1R'0!Q19(B, ,Ta05h1c0Ki1<E07Uh105h1R'MM!d;0:i1R'`0Eg1!09i1MB(B. -,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-h m ,T`(B0,T>Wh(B1,TM(B0,TMh(B1,TR9CRBEP`(B0,TMU(B1,TB4"M'bKA4K(B0,TEQ(B1,T!(B0,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9(B0,T7Uh(B10,T7h(B1,TR9M(B0,TBYh(B1. +,Tc0*i1$S0JQh1'(B C-h m ,T`0>Wh1M0Mh1R9CRBEP`0MU1B4"M'bKA4K0EQ1!0;Q1(0(X10:Q1907Uh107h1R9M0BYh1(B. ->> ,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-u C-v ,TK(B0,T9Vh(B1,T'$(B0,TCQi(B1,T'K(B0,TCW(B1,TMAR!!(B0,TGh(B1,TR(B0,T9Qi(B1,T9`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P"(B0,TBQ(B1,T::CC(B0,T7Q(B1,T4(B0,T9Ui(B10,T"Vi(B1,T9d;(B0,TBQ(B1,T'(B0,TJh(B1,TG9:9"M'K(B0,T9i(B1,TR(M(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h m, ,T`(B0,T>Wh(B1,TM(B0,T4Y(B10,TGh(B1,TR(B Text mode 0,T5h(B1,TR'(R!(B Fundamental mode ,TM(B0,TBh(B1,TR'dC(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM"(B0,T(Q(B1,T4`M!JRC(B0,T*Ui(B1,Ta('MM!(R!K(B0,T9i(B1,TR(M(B. +>> ,Tc0*i1$S0JQh1'(B C-u C-v ,TK09Vh1'$0CQi1'K0CW1MAR!!0Gh1R09Qi19`0>Wh1M07Uh1(P"0BQ1::CC07Q1409Ui10"Vi19d;0BQ1'0Jh1G9:9"M'K09i1R(M(B. +>> 0,T;i1M9$S0JQh1'(B C-h m, ,T`0>Wh1M04Y10Gh1R(B Text mode 0,T5h1R'(R!(B Fundamental mode ,TM0Bh1R'dC(B. +>> 0,T;i1M9$S0JQh1'(B C-x 1 ,T`0>Wh1M"0(Q14`M!JRC0*Ui1a('MM!(R!K09i1R(M(B. -0,T7Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TRbKA4K(B0,TEQ(B1,T!(B0,T9Qi(B1,T9(B0,T!g(B1,T`>CRP(B0,TGh(B1,TR(B0,TAU(B1,TbKA4(B0,TBh(B1,TMB(B (minor mode) 0,TMU(B1,T!(B. ,TbKA4(B0,TBh(B1,TMBd(B0,TAh(B1,Td(B0,T4i(B1,T`(B0,T;g(B1,T9(B -0,T5Q(B1,TG`(B0,TEW(B1,TM!c9bKA4K(B0,TEQ(B1,T!(B, ,T`(B0,T9Wh(B1,TM'(R!(B0,TGh(B1,TR(B0,TAU(B1,T!RC`;(B0,TEUh(B1,TB9d;`(B0,T>U(B1,TB'`(B0,TEg(B1,T!(B0,T9i(B1,TMB`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. ,Ta(B0,T5h(B1,TEPbKA4(B0,TBh(B1,TMBJRARC6(B -,T(P`(B0,T;T(B1,T4K(B0,TCW(B1,TM(B0,T;T(B1,T4d(B0,T4i(B1,T@RBc9(B0,T5Q(B1,TG`M'(B, 0,T$W(B1,TMa(B0,T5h(B1,TEPbKA4(B0,TBh(B1,TMB(P7S'R9b4B(B0,TMT(B1,TJCP(R!(B0,T!Q(B1,T9(B, ,TaEP(B -,T`(B0,T;g(B1,T9(B0,TMT(B1,TJCP(R!bKA4K(B0,TEQ(B1,T!(B0,T4i(B1,TGB(B. ,T)P(B0,T9Qi(B1,T9(B0,T7h(B1,TR9JRARC6d(B0,TAh(B1,Tc(B0,T*i(B1,TbKA4(B0,TBh(B1,TMB`EB(B, ,TK(B0,TCW(B1,TMK(B0,T9Vh(B1,T'bKA4(B0,TBh(B1,TMB(B, ,TK(B0,TCW(B1,TM(B -,TbKA4(B0,TBh(B1,TMBKERBf(B ,TbKA4<JA(B0,T!Q(B1,T9(B0,T!g(B1,Td(B0,T4i(B1. +0,T7Uh1`0CU1B!0Gh1RbKA4K0EQ1!09Qi190!g1`>CRP0Gh1R0AU1bKA40Bh1MB(B (minor mode) 0,TMU1!(B. ,TbKA40Bh1MBd0Ah1d04i1`0;g19(B +0,T5Q1G`0EW1M!c9bKA4K0EQ1!(B, ,T`09Wh1M'(R!0Gh1R0AU1!RC`;0EUh1B9d;`0>U1B'`0Eg1!09i1MB`07h1R09Qi19(B. ,Ta05h1EPbKA40Bh1MBJRARC6(B +,T(P`0;T14K0CW1M0;T14d04i1@RBc905Q1G`M'(B, 0,T$W1Ma05h1EPbKA40Bh1MB(P7S'R9b4B0MT1JCP(R!0!Q19(B, ,TaEP(B +,T`0;g190MT1JCP(R!bKA4K0EQ1!04i1GB(B. ,T)P09Qi1907h1R9JRARC6d0Ah1c0*i1bKA40Bh1MB`EB(B, ,TK0CW1MK09Vh1'bKA40Bh1MB(B, ,TK0CW1M(B +,TbKA40Bh1MBKERBf(B ,TbKA4<JA0!Q190!g1d04i1(B. -,TbKA4(B0,TBh(B1,TMB(B0,T7Uh(B10,TAU(B1,T;CPbB*(B0,T9l(B1,TAR!(B, ,Tb4B`)>RPJSK(B0,TCQ(B1,T:c(B0,T*i(B1,Ta(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRA(B0,T7Uh(B1,T`(B0,T;g(B1,T9@RIR(B0,TMQ(B1,T'!DI(B, 0,T$W(B1,TM(B -,TbKA4(B0,T(Q(B1,T4:CC(B0,T7Q(B1,T4(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1 (Auto Fill). ,T`(B0,TAWh(B1,TMbKA4(B0,T9Ui(B1,T7S'R9(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(Pa(B0,T:h(B1,T':CC(B0,T7Q(B1,T4CPK(B0,TGh(B1,TR'(B -,T$S(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1, 0,T7Q(B1,T9(B0,T7U(B10,T7Uh(B10,T7h(B1,TR9a7C!(B0,T"i(B1,TM$GRAaEP7Sc(B0,TKi(B1,T:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9BRG`(B0,T!T(B1,T9d;(B. +,TbKA40Bh1MB07Uh10AU1;CPbB*09l1AR!(B, ,Tb4B`)>RPJSK0CQ1:c0*i1a0!i1d"0"i1M$GRA07Uh1`0;g19@RIR0MQ1'!DI(B, 0,T$W1M(B +,TbKA40(Q14:CC07Q140MQ15b90AQ105T1(B (Auto Fill). ,T`0AWh1MbKA409Ui17S'R9(B, 0,TMU1aA!0Jl1(Pa0:h1':CC07Q14CPK0Gh1R'(B +,T$S0MQ15b90AQ105T1(B, 0,T7Q1907U107Uh107h1R9a7C!0"i1M$GRAaEP7Sc0Ki1:CC07Q1409Qi19BRG`0!T19d;(B. -0,T7h(B1,TR9JRARC6`(B0,T;T(B1,T4bKA4(B0,T(Q(B1,T4:CC(B0,T7Q(B1,T4(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1,Td(B0,T4i(B1,Tb4B!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-x auto fill -mode<Return>. ,T`(B0,TAWh(B1,TMbKA4(B0,T9Ui(B1,T7S'R9M(B0,TBYh(B1, 0,T7h(B1,TR9JRARC6(B0,T;T(B1,T4bKA4(B0,T9Ui(B1,Td(B0,T4i(B1,Tb4B!RCc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B M-x -auto fill mode<Return>. 0,T6i(B1,TRbKA4(B0,T9Ui(B10,T;T(B1,T4M(B0,TBYh(B1, ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,T(P`(B0,T;T(B1,T4bKA4c(B0,TKi(B1,T7S'R9(B, ,TaEP(B0,T6i(B1,TR(B -,TbKA4(B0,T9Ui(B1,T`(B0,T;T(B1,T4M(B0,TBYh(B1, ,T$S(B0,TJQh(B1,T'(B0,T9Ui(B10,T!g(B1,T(P(B0,T;T(B1,T4bKA4(B. 0,T$W(B1,TM(B0,T>Y(B1,T4d(B0,T4i(B10,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T9Ui(B1 "toggles the mode". +0,T7h1R9JRARC6`0;T14bKA40(Q14:CC07Q140MQ15b90AQ105T1d04i1b4B!RCc0*i1$S0JQh1'(B M-x auto fill +mode<Return>. ,T`0AWh1MbKA409Ui17S'R9M0BYh1(B, 0,T7h1R9JRARC60;T14bKA409Ui1d04i1b4B!RCc0*i1$S0JQh1'(B M-x +auto fill mode<Return>. 0,T6i1RbKA409Ui10;T14M0BYh1(B, ,T$S0JQh1'09Ui1(P`0;T14bKA4c0Ki17S'R9(B, ,TaEP06i1R(B +,TbKA409Ui1`0;T14M0BYh1(B, ,T$S0JQh1'09Ui10!g1(P0;T14bKA4(B. 0,T$W1M0>Y14d04i10Gh1R$S0JQh1'09Ui1(B "toggles the mode". ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-x auto fill mode<Return> 0,T4Y(B1. ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B "asdf " 0,T+i(B1,TSf(B 0,T!Q(B1,T9d;(9(B - 0,T7h(B1,TR9`(B0,TKg(B1,T9(B0,TGh(B1,TR:CC(B0,T7Q(B1,T4(B0,T9Qi(B1,T9(B0,T6Y(B1,T!a(B0,T:h(B1,T'MM!`(B0,T;g(B1,T9JM':CC(B0,T7Q(B1,T4(B. 0,T7h(B1,TR9(B0,T5i(B1,TM'c(B0,TJh(B1,T`(B0,TGi(B1,T9GCC$`>CRP(B0,TGh(B1,TR!RC(B0,T(Q(B1,T4(B - ,T:CC(B0,T7Q(B1,T4(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1,T(Pa(B0,T:h(B1,T':CC(B0,T7Q(B1,T45C'`(B0,TGi(B1,T9GCC$`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. +>> 0,T;i1M9$S0JQh1'(B M-x auto fill mode<Return> 0,T4Y1(B. ,Ta0Ei1G0;i1M9(B "asdf " 0,T+i1Sf(B 0,T!Q19d;(9(B + 0,T7h1R9`0Kg190Gh1R:CC07Q1409Qi1906Y1!a0:h1'MM!`0;g19JM':CC07Q14(B. 0,T7h1R905i1M'c0Jh1`0Gi19GCC$`>CRP0Gh1R!RC0(Q14(B + ,T:CC07Q140MQ15b90AQ105T1(Pa0:h1':CC07Q145C'`0Gi19GCC$`07h1R09Qi19(B. -,T"M:`(B0,T<Wh(B1,TM(B (margin) ,Tb4BAR!(P(B0,T5Qi(B1,T'c(B0,TKi(B10,T7Uh(B1 70 0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,Ta(B0,T5h(B10,T7h(B1,TR9(B0,T!g(B1,TJRARC6`;(B0,TEUh(B1,TB9(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B -C-x f. 0,T7h(B1,TR9$GC(B0,T5Qi(B1,T'"M:`(B0,T<Wh(B1,TM(B0,T4i(B1,TGB(B0,T5Q(B1,TG`E"MR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T5RA(B0,T7Uh(B10,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B. +,T"M:`0<Wh1M(B (margin) ,Tb4BAR!(P05Qi1'c0Ki107Uh1(B 70 0,T5Q1G0MQ1!IC(B, ,Ta05h107h1R90!g1JRARC6`;0EUh1B904i1GB$S0JQh1'(B +C-x f. 0,T7h1R9$GC05Qi1'"M:`0<Wh1M04i1GB05Q1G`E"MR0Cl10!T1G`A905l15RA07Uh107h1R905i1M'!RC(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x f ,T>(B0,TCi(B1,TMA(B0,T4i(B1,TGBMR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1 20. (C-u 2 0 C-x f). - ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9(B0,T"i(B1,TM$GRAaEP(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TMU(B1,TaA!(B0,TJl(B10,T(Q(B1,T4:CC(B0,T7Q(B1,T4(B0,T7Uh(B10,TAU(B1,T"9R4(B 20 0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B. ,Ta(B0,TEi(B1,TG(B0,T5Qi(B1,T'"M:(B - ,T`(B0,T<Wh(B1,TM`(B0,T;g(B1,T9(B 70 ,Tb4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x f 0,TMU(B1,T!$(B0,TCQi(B1,T'(B. +>> 0,T;i1M9$S0JQh1'(B C-x f ,T>0Ci1MA04i1GBMR0Cl10!T1G`A905l1(B 20. (C-u 2 0 C-x f). + ,Ta0Ei1G0;i1M90"i1M$GRAaEP(P`0Kg190Gh1R0MU1aA!0Jl10(Q14:CC07Q1407Uh10AU1"9R4(B 20 0,T5Q1G0MQ1!IC(B. ,Ta0Ei1G05Qi1'"M:(B + ,T`0<Wh1M`0;g19(B 70 ,Tb4Bc0*i1$S0JQh1'(B C-x f 0,TMU1!$0CQi1'(B. -0,T6i(B1,TR(B0,T7h(B1,TR97S!RC`;(B0,TEUh(B1,TB9a;E'5C'!ER'(B0,TBh(B1,TMK(B0,T9i(B1,TR(B, ,TbKA4(B0,T(Q(B1,T4:CC(B0,T7Q(B1,T4(B0,TMQ(B1,T5b9(B0,TAQ(B10,T5T(B1,T(Pd(B0,TAh(B10,T(Q(B1,T4:CC(B0,T7Q(B1,T4cK(B0,TAh(B1 -(re-fill) ,Tc(B0,TKi(B10,T7h(B1,TR9(B. 0,T6i(B1,TR(P(B0,T(Q(B1,T4:CC(B0,T7Q(B1,T4cK(B0,TAh(B1,Tc(B0,TKi(B10,T!Q(B1,T:(B0,TBh(B1,TMK(B0,T9i(B1,TR(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B10,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-q (META-q) -,Tb4BGR'5SaK(B0,T9h(B1,T'`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Td(B0,TGi(B1,T@RBc9(B0,TBh(B1,TMK(B0,T9i(B1,TR(B0,T9Qi(B1,T9(B. +0,T6i1R07h1R97S!RC`;0EUh1B9a;E'5C'!ER'0Bh1MK09i1R(B, ,TbKA40(Q14:CC07Q140MQ15b90AQ105T1(Pd0Ah10(Q14:CC07Q14cK0Ah1(B +(re-fill) ,Tc0Ki107h1R9(B. 0,T6i1R(P0(Q14:CC07Q14cK0Ah1c0Ki10!Q1:0Bh1MK09i1R09Qi19(B, ,Tc0Ki10;i1M9$S0JQh1'(B M-q (META-q) +,Tb4BGR'5SaK09h1'`$M0Cl1`+M0Cl1d0Gi1@RBc90Bh1MK09i1R09Qi19(B. ->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`(B0,T"i(B1,TRd;(B0,TBQ(B1,T'(B0,TBh(B1,TMK(B0,T9i(B1,TR(B0,T"i(B1,TR':9(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-q. +>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1`0"i1Rd;0BQ1'0Bh1MK09i1R0"i1R':9(B, ,Ta0Ei1G0;i1M9$S0JQh1'(B M-q. -* ,T!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B (searching) +* ,T!RC0JW1:0$i19(B (searching) --------------------- -0,TMU(B1,TaA!(B0,TJl(B1,TJRARC6(B0,TJW(B1,T:(B0,T$i(B1,T9JRB(B0,TMQ(B1,T!"CP(B (,T!(B0,TEXh(B1,TA"M'(B0,T5Q(B1,TG(B0,TMQ(B1,T!ICK(B0,TCW(B1,TM$S(B0,T7Uh(B1,TM(B0,TBYh(B10,T5h(B1,TM`(B0,T9Wh(B1,TM'(B0,T!Q(B1,T9(B) ,Td(B0,TAh(B10,TGh(B1,TR(Pd;(B -0,T"i(B1,TR'K(B0,T9i(B1,TRK(B0,TCW(B1,TM(B0,TBi(B1,TM9!(B0,TEQ(B1,T:(B, 0,T7Qh(B1,TG(B0,T7Qi(B1,T'(B0,T"i(B1,TM$GRA(B. ,T!RC(B0,TJW(B1,T:(B0,T$i(B1,T9JRB(B0,TMQ(B1,T!"CP(B0,T$W(B1,TM$S(B0,TJQh(B1,T'c9!RC`$(B0,TEWh(B1,TM95SaK(B0,T9h(B1,T'(B -,T"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B1; ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T(P`$(B0,TEWh(B1,TM9d;M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'(B0,T6Q(B1,T4d;(B0,T7Uh(B10,TAU(B1,TJRB(B0,TMQ(B1,T!"CP(B0,T9Qi(B1,T9M(B0,TBYh(B1. - -,T$S(B0,TJQh(B1,T'(B0,TJW(B1,T:(B0,T$i(B1,T9c9(B0,TMU(B1,TaA!(B0,TJl(B10,T5h(B1,TR'(R!$S(B0,TJQh(B1,T'(B0,TJW(B1,T:(B0,T$i(B1,T9c9b;Ca!CA:CC3R(B0,T8T(B1,T!C(B0,T3l(B1 (editor) 0,TJh(B1,TG9cK(B0,T-h(B1, ,Tc9(B -0,TEQ(B1,T!I3P(B0,T7Uh(B1,T`(B0,T;g(B1,T9(B "incremental". 0,T9Uh(B1,TKARB$GRA(B0,TGh(B1,TR!RC(B0,TJW(B1,T:(B0,T$i(B1,T9`(B0,TCTh(B1,TA(B0,T5Qi(B1,T'a(B0,T5h(B10,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9(B0,TMQ(B1,T!"CP(B0,T7Uh(B1 -0,T5i(B1,TM'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B. - -,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,T`(B0,T>Wh(B1,TMc(B0,TKi(B1,T7S!RC(B0,TJW(B1,T:(B0,T$i(B1,T9d;(B0,T"i(B1,TR'K(B0,T9i(B1,TR(B0,T$W(B1,TM(B C-s, ,TaEP7S!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B0,TBi(B1,TM9d;(B0,T"i(B1,TR'K(B0,TEQ(B1,T'(B0,T$W(B1,TM(B -C-r. ,Ta(B0,T5h(B1,T$MB(B0,T!h(B1,TM9(B! ,TM(B0,TBh(B1,TR`(B0,T>Th(B1,T'EM'(B. - -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s 0,T7h(B1,TR9(P(B0,TJQ(B1,T'`!5`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TAU(B1,T$S(B0,TGh(B1,TR(B "I-search" ,T;CR!/(B0,T7Uh(B1,T:(B0,TCT(B1,T`G3JP(B0,T7i(B1,TM9(B -(echo area). 0,T9Uh(B1,TaJ4'(B0,TGh(B1,TR(B0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B1,TM(B0,TBYh(B1,Tc9!RC(B0,T$i(B1,T9a::(B incremental ,TaEP!S(B0,TEQ(B1,T'CM(B -0,TJTh(B1,T'(B0,T7Uh(B10,T7h(B1,TR9(P(B0,T>T(B1,TA(B0,T>l(B1,T`(B0,T>Wh(B1,TM(B0,TJW(B1,T:(B0,T$i(B1,T9(B. ,T!4(B0,T;Xh(B1,TA(B <Return> ,T`(B0,T>Wh(B1,TM(B0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B0,TJW(B1,T:(B0,T$i(B1,T9(B. - ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s ,T`(B0,T>Wh(B1,TM`(B0,TCTh(B1,TA!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B. 0,T>T(B1,TA(B0,T>l(B10,TMQ(B1,T!IC(B0,T7U(B1,TEP(B0,T5Q(B1,TG(B0,T*i(B1,TRf(B, 0,T>T(B1,TA(B0,T>l(B1,T$S(B0,TGh(B1,TR(B 'cursor', - ,TK(B0,TBX(B1,T4K(B0,TEQ(B1,T'(R!(B0,T7Uh(B10,T7h(B1,TR9(B0,T>T(B1,TA(B0,T>l(B10,T7U(B1,TEP(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B, ,Ta(B0,TEi(B1,TG(B0,T4Y(B10,TGh(B1,TR(B0,TAU(B1,TMPdC`(B0,T!T(B1,T4(B0,T"Vi(B1,T9(B0,T!Q(B1,T:`$M(B0,TCl(B1,T`+M(B0,TCl(B1. - ,T"3P(B0,T9Ui(B10,T7h(B1,TR9d(B0,T4i(B10,TJW(B1,T:(B0,T$i(B1,T9$S(B0,TGh(B1,TR(B "cursor" ,Td;K(B0,T9Vh(B1,T'K9a(B0,TEi(B1,TG(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s 0,TMU(B1,T!$(B0,TCQi(B1,T'(B, ,T`(B0,T>Wh(B1,TM(B0,TJW(B1,T:(B0,T$i(B1,T95SaK(B0,T9h(B1,T'(B0,T6Q(B1,T4d;"M'$S(B0,TGh(B1,TR(B "cursor". ->> ,T!4(B0,T;Xh(B1,TA(B <Delete> 0,TJQ(B1,T!(B0,TJUh(B1,T$(B0,TCQi(B1,T'(B, ,Ta(B0,TEi(B1,TG(B0,T4Y(B10,TGh(B1,TR`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T`$(B0,TEWh(B1,TM9(B0,T7Uh(B1,TM(B0,TBh(B1,TR'dC(B. ->> ,T!4(B0,T;Xh(B1,TA(B <Return> ,T`(B0,T>Wh(B1,TM(B0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B0,TJW(B1,T:(B0,T$i(B1,T9(B. - -0,T7h(B1,TR9`(B0,TKg(B1,T9K(B0,TCW(B1,TMd(B0,TAh(B10,TGh(B1,TR(B0,TAU(B1,TMPdC`(B0,T!T(B1,T4(B0,T"Vi(B1,T9(B? ,Tc9!RC(B0,TJW(B1,T:(B0,T$i(B1,T9a::(B incremental, 0,TMU(B1,TaA!(B0,TJl(B1,T>BRBRA(B -,T`$(B0,TEWh(B1,TM9d;5RAJRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B10,T7h(B1,TR9d(B0,T4i(B10,T>T(B1,TA(B0,T>l(B1,TE'd;c9a(B0,T5h(B1,TEP$(B0,TCQi(B1,T'(B. 0,T6i(B1,TR(P`$(B0,TEWh(B1,TM9d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B -0,T6Q(B1,T4d;"M'$S(B, 0,T!g(B1,T7Sd(B0,T4i(B1,Tb4B!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s 0,TMU(B1,T!$(B0,TCQi(B1,T'(B. 0,T6i(B1,TRd(B0,TAh(B10,TAU(B1,T$S(B0,T9Qi(B1,T9(B0,TMU(B1,T!a(B0,TEi(B1,TG(B, 0,TMU(B1,TaA!(B0,TJl(B1,T(P(B0,TCi(B1,TM'(B -,T:M!(B (beep) 0,T7h(B1,TR9(B0,TGh(B1,TR!RC(B0,TJW(B1,T:(B0,T$i(B1,T9$(B0,TCQi(B1,T'(B0,T9Qi(B1,T9(B ",T>ER4(B (failing)", ,T$S(B0,TJQh(B1,T'(B C-g 0,T!g(B1,TJRARC6c(B0,T*i(B1,Tc9(B -,T!RC(B0,TJTi(B1,T9(B0,TJX(B1,T4!RC(B0,TJW(B1,T:(B0,T$i(B1,T9d(B0,T4i(B1. - -0,T"i(B1,TM(B0,TJQ(B1,T'`!5(B: ,Tc9:R'CP::(B, ,T!RC(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-s ,T(P7Sc(B0,TKi(B1,TCP::"M'(B0,T7h(B1,TR9*P(B0,T'Q(B1,T!aEP(B0,T7h(B1,TR9(Pd(B0,TAh(B1,T`(B0,TKg(B1,T9(B -0,T"i(B1,TM$GRAMPdC:9(B0,TMU(B1,TaA!(B0,TJl(B1. 0,TEQ(B1,T!I3P(B0,T9Ui(B1,TaJ4'(B0,TGh(B1,TR(B "feature" ,T"M'CP::;(B0,T/T(B10,T:Q(B10,T5T(B1,T!RC(B, 0,T7Uh(B1,T`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B -"flow control" 0,T9Qi(B1,T9(B, ,Td(B0,T4i(B10,T"Q(B1,T4"GR'!RC7S'R9"M'$S(B0,TJQh(B1,T'(B C-s ,TaEPd(B0,TAh(B1,TBMAc(B0,TKi(B1,T!(B0,TEQ(B1,T:(B0,TJYh(B10,TMU(B1,TaA!(B0,TJl(B1 -0,TMU(B1,T!(B. ,T!RC(B0,T7Uh(B1,T(Pa(B0,T!i(B1,Td"!RCK(B0,TBX(B1,T4*P(B0,T'Q(B1,T!(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B10,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-q. 0,THV(B1,T!IR(B0,TGT(B10,T8U(B1,T!RC(B0,T(Q(B1,T4!RC(B0,T!Q(B1,T:(B "feature" -0,T9Ui(B1,Td(B0,T4i(B10,T7Uh(B1,T:7(B0,T7Uh(B10,TGh(B1,TR(B0,T4i(B1,TGB(B "Spontaneous Entry to Incremental Search" ,Tc9(B0,T$Yh(B10,TAW(B1,TM"M'(B0,TMU(B1,TaA!(B0,TJl(B1. - -0,T6i(B1,TR(B0,T7h(B1,TR9M(B0,TBYh(B1,TCPK(B0,TGh(B1,TR'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9a::(B incremental ,TM(B0,TBYh(B1, ,Ta(B0,TEi(B1,TG(B0,T7h(B1,TR9!4(B0,T;Xh(B1,TA(B <Delete>, 0,T7h(B1,TR9(P(B -0,TJQ(B1,T'`!5`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B0,TJX(B1,T4(B0,T7i(B1,TRB(B0,T7Uh(B10,T7h(B1,TR9(B0,T;i(B1,TM9`(B0,T"i(B1,TRd;(B0,T9Qi(B1,T9(B0,T6Y(B1,T!E:MM!(B, ,TaEP(P(B0,TBi(B1,TM9!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B -0,T!h(B1,TM9K(B0,T9i(B1,TR"M'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, ,TJA(B0,TAX(B10,T5T(B10,TGh(B1,TR(B0,T7h(B1,TR9d(B0,T4i(B10,T;i(B1,TM9(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "c", ,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P(B0,TJW(B1,T:(B0,T$i(B1,T9(B -,T5SaK(B0,T9h(B1,T'(B0,T7Uh(B1,T;CR!/(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "c" 0,T9Qi(B1,T9(B. ,T5M9(B0,T9Ui(B10,T6i(B1,TR(B0,T7h(B1,TR9(B0,T>T(B1,TA(B0,T>l(B10,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "u", ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T!g(B1,T(P(B -,T`$(B0,TEWh(B1,TM9d;M(B0,TBYh(B10,T7Uh(B1,T5SaK(B0,T9h(B1,T'(B0,T7Uh(B1,T;CR!/JRB(B0,TMQ(B1,T!"CP(B "cu" ,TaC!(B0,TJX(B1,T4(B. ,T5M9(B0,T9Ui(B1,Tc(B0,TKi(B1,T!4(B0,T;Xh(B1,TA(B <Delete>. -0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "u" ,T(P(B0,T6Y(B1,T!E:MM!(R!JRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B1,T7S!RC(B0,TJW(B1,T:(B0,T$i(B1,T9M(B0,TBYh(B1, ,TaEP`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T!g(B1,T(P`$(B0,TEWh(B1,TM9(B -,T!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'5SaK(B0,T9h(B1,T'(B0,T7Uh(B1,T;CR!/(B0,T5Q(B1,TG(B0,TMQ(B1,T!IC(B "c" ,TaC!(B0,TJX(B1,T4(B. - -0,T6i(B1,TR(B0,T7h(B1,TR9M(B0,TBYh(B1,TCPK(B0,TGh(B1,TR'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T';CPJA"M'(B CONTROL ,TK(B0,TCW(B1,TM(B META (,T9M!(R!(B -0,T"i(B1,TMB!`(B0,TGi(B1,T9:R';CP!RC(B--,T$S(B0,TJQh(B1,T'(B0,T>T(B1,T`HI(B0,T7Uh(B1,Tc(B0,T*i(B1,TJSK(B0,TCQ(B1,T:!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B, ,Td(B0,T4i(B1,Ta(B0,T!h(B1 C-s ,TaEP(B C-r), ,T!RC(B0,TJW(B1,T:(B -0,T$i(B1,T9(P(B0,TJTi(B1,T9(B0,TJX(B1,T4E'(B. - -,T$S(B0,TJQh(B1,T'(B C-s ,T`(B0,TCTh(B1,TA!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B0,T4i(B1,TGB!RCAM'KRJRB(B0,TMQ(B1,T!"CP(B0,T5Qi(B1,T'a(B0,T5h(B1,T5SaK(B0,T9h(B1,T'(B0,T;Q(B1,T((B0,T(X(B10,T:Q(B1,T9"M'`$M(B0,TCl(B1,T`+M(B0,TCl(B1. -0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T5i(B1,TM'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9JRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B1,TM(B0,TBYh(B10,T!h(B1,TM9K(B0,T9i(B1,TRc9(B0,T"i(B1,TM$GRA(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B10,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-r ,Ta79(B. -,T$S(B0,TJQh(B1,T'(B C-s ,T(P7S'R9`K(B0,TAW(B1,TM9(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B C-r 0,T7X(B1,T!M(B0,TBh(B1,TR'(B, ,TB!`(B0,TGi(B1,T9(B0,T7T(B1,TH7R'"M'!RC(B0,TJW(B1,T:(B0,T$i(B1,T9(B -,T`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B, 0,T7Uh(B1,T5C'(B0,T"i(B1,TRA(B0,T!Q(B1,T9(B. - - -* 0,TGT(B1,T9b4(B0,TGl(B1,Ta::KERB(B0,TGT(B1,T9b4(B0,TGl(B1 (multiple windows) +0,TMU1aA!0Jl1JRARC60JW1:0$i19JRB0MQ1!"CP(B (,T!0EXh1A"M'05Q1G0MQ1!ICK0CW1M$S07Uh1M0BYh105h1M`09Wh1M'0!Q19(B) ,Td0Ah10Gh1R(Pd;(B +0,T"i1R'K09i1RK0CW1M0Bi1M9!0EQ1:(B, 0,T7Qh1G07Qi1'0"i1M$GRA(B. ,T!RC0JW1:0$i19JRB0MQ1!"CP0$W1M$S0JQh1'c9!RC`$0EWh1M95SaK09h1'(B +,T"M'`$M0Cl1`+M0Cl1(B; ,T`$M0Cl1`+M0Cl1(P`$0EWh1M9d;M0BYh107Uh15SaK09h1'06Q14d;07Uh10AU1JRB0MQ1!"CP09Qi19M0BYh1(B. + +,T$S0JQh1'0JW1:0$i19c90MU1aA!0Jl105h1R'(R!$S0JQh1'0JW1:0$i19c9b;Ca!CA:CC3R08T1!C03l1(B (editor) 0,TJh1G9cK0-h1(B, ,Tc9(B +0,TEQ1!I3P07Uh1`0;g19(B "incremental". 0,T9Uh1KARB$GRA0Gh1R!RC0JW1:0$i19`0CTh1A05Qi1'a05h107Uh107h1R9d04i10;i1M90MQ1!"CP07Uh1(B +0,T5i1M'!RC0JW1:0$i19(B. + +,T$S0JQh1'07Uh1c0*i1`0>Wh1Mc0Ki17S!RC0JW1:0$i19d;0"i1R'K09i1R0$W1M(B C-s, ,TaEP7S!RC0JW1:0$i190Bi1M9d;0"i1R'K0EQ1'0$W1M(B +C-r. ,Ta05h1$MB0!h1M9(B! ,TM0Bh1R`0>Th1'EM'(B. + +,T`0AWh1M07h1R90;i1M9$S0JQh1'(B C-s 0,T7h1R9(P0JQ1'`!5`0Kg190Gh1R0AU1$S0Gh1R(B "I-search" ,T;CR!/07Uh1:0CT1`G3JP07i1M9(B +(echo area). 0,T9Uh1aJ4'0Gh1R0MU1aA!0Jl1d04i1M0BYh1c9!RC0$i19a::(B incremental ,TaEP!S0EQ1'CM(B +0,TJTh1'07Uh107h1R9(P0>T1A0>l1`0>Wh1M0JW1:0$i19(B. ,T!40;Xh1A(B <Return> ,T`0>Wh1M0JTi190JX14$S0JQh1'0JW1:0$i19(B. + +>> 0,T;i1M9$S0JQh1'(B C-s ,T`0>Wh1M`0CTh1A!RC0JW1:0$i19(B. 0,T>T1A0>l10MQ1!IC07U1EP05Q1G0*i1Rf(B, 0,T>T1A0>l1$S0Gh1R(B 'cursor', + ,TK0BX14K0EQ1'(R!07Uh107h1R90>T1A0>l107U1EP05Q1G0MQ1!IC(B, ,Ta0Ei1G04Y10Gh1R0AU1MPdC`0!T140"Vi190!Q1:`$M0Cl1`+M0Cl1(B. + ,T"3P09Ui107h1R9d04i10JW1:0$i19$S0Gh1R(B "cursor" ,Td;K09Vh1'K9a0Ei1G(B. +>> 0,T;i1M9$S0JQh1'(B C-s 0,TMU1!$0CQi1'(B, ,T`0>Wh1M0JW1:0$i195SaK09h1'06Q14d;"M'$S0Gh1R(B "cursor". +>> ,T!40;Xh1A(B <Delete> 0,TJQ1!0JUh1$0CQi1'(B, ,Ta0Ei1G04Y10Gh1R`$M0Cl1`+M0Cl1`$0EWh1M907Uh1M0Bh1R'dC(B. +>> ,T!40;Xh1A(B <Return> ,T`0>Wh1M0JTi190JX14$S0JQh1'0JW1:0$i19(B. + +0,T7h1R9`0Kg19K0CW1Md0Ah10Gh1R0AU1MPdC`0!T140"Vi19(B? ,Tc9!RC0JW1:0$i19a::(B incremental, 0,TMU1aA!0Jl1>BRBRA(B +,T`$0EWh1M9d;5RAJRB0MQ1!"CP07Uh107h1R9d04i10>T1A0>l1E'd;c9a05h1EP$0CQi1'(B. 0,T6i1R(P`$0EWh1M9d;0BQ1'5SaK09h1'(B +0,T6Q14d;"M'$S(B, 0,T!g17Sd04i1b4B!RC0;i1M9$S0JQh1'(B C-s 0,TMU1!$0CQi1'(B. 0,T6i1Rd0Ah10AU1$S09Qi190MU1!a0Ei1G(B, 0,TMU1aA!0Jl1(P0Ci1M'(B +,T:M!(B (beep) 0,T7h1R90Gh1R!RC0JW1:0$i19$0CQi1'09Qi19(B ",T>ER4(B (failing)", ,T$S0JQh1'(B C-g 0,T!g1JRARC6c0*i1c9(B +,T!RC0JTi190JX14!RC0JW1:0$i19d04i1(B. + +0,T"i1M0JQ1'`!5(B: ,Tc9:R'CP::(B, ,T!RC0;i1M9$S0JQh1'(B C-s ,T(P7Sc0Ki1CP::"M'07h1R9*P0'Q1!aEP07h1R9(Pd0Ah1`0Kg19(B +0,T"i1M$GRAMPdC:90MU1aA!0Jl1(B. 0,TEQ1!I3P09Ui1aJ4'0Gh1R(B "feature" ,T"M'CP::;0/T10:Q105T1!RC(B, 0,T7Uh1`0CU1B!0Gh1R(B +"flow control" 0,T9Qi19(B, ,Td04i10"Q14"GR'!RC7S'R9"M'$S0JQh1'(B C-s ,TaEPd0Ah1BMAc0Ki1!0EQ1:0JYh10MU1aA!0Jl1(B +0,TMU1!(B. ,T!RC07Uh1(Pa0!i1d"!RCK0BX14*P0'Q1!09Qi19(B, ,Tc0Ki10;i1M9$S0JQh1'(B C-q. 0,THV1!IR0GT108U1!RC0(Q14!RC0!Q1:(B "feature" +0,T9Ui1d04i107Uh1:707Uh10Gh1R04i1GB(B "Spontaneous Entry to Incremental Search" ,Tc90$Yh10AW1M"M'0MU1aA!0Jl1(B. + +0,T6i1R07h1R9M0BYh1CPK0Gh1R'!RC0JW1:0$i19a::(B incremental ,TM0BYh1(B, ,Ta0Ei1G07h1R9!40;Xh1A(B <Delete>, 0,T7h1R9(P(B +0,TJQ1'`!5`0Kg190Gh1R05Q1G0MQ1!IC0JX1407i1RB07Uh107h1R90;i1M9`0"i1Rd;09Qi1906Y1!E:MM!(B, ,TaEP(P0Bi1M9!0EQ1:d;0BQ1'5SaK09h1'(B +0,T!h1M9K09i1R"M'!RC0JW1:0$i19(B. 0,T5Q1GM0Bh1R'`0*h19(B, ,TJA0AX105T10Gh1R07h1R9d04i10;i1M905Q1G0MQ1!IC(B "c", ,T`0>Wh1M07Uh1(P0JW1:0$i19(B +,T5SaK09h1'07Uh1;CR!/05Q1G0MQ1!IC(B "c" 0,T9Qi19(B. ,T5M909Ui106i1R07h1R90>T1A0>l105Q1G0MQ1!IC(B "u", ,T`$M0Cl1`+M0Cl10!g1(P(B +,T`$0EWh1M9d;M0BYh107Uh15SaK09h1'07Uh1;CR!/JRB0MQ1!"CP(B "cu" ,TaC!0JX14(B. ,T5M909Ui1c0Ki1!40;Xh1A(B <Delete>. +0,T5Q1G0MQ1!IC(B "u" ,T(P06Y1!E:MM!(R!JRB0MQ1!"CP07Uh17S!RC0JW1:0$i19M0BYh1(B, ,TaEP`$M0Cl1`+M0Cl10!g1(P`$0EWh1M9(B +,T!0EQ1:d;0BQ1'5SaK09h1'07Uh1;CR!/05Q1G0MQ1!IC(B "c" ,TaC!0JX14(B. + +0,T6i1R07h1R9M0BYh1CPK0Gh1R'!RC0JW1:0$i19(B, ,Ta0Ei1G0;i1M9$S0JQh1';CPJA"M'(B CONTROL ,TK0CW1M(B META (,T9M!(R!(B +0,T"i1MB!`0Gi19:R';CP!RC(B--,T$S0JQh1'0>T1`HI07Uh1c0*i1JSK0CQ1:!RC0JW1:0$i19(B, ,Td04i1a0!h1(B C-s ,TaEP(B C-r), ,T!RC0JW1:(B +0,T$i19(P0JTi190JX14E'(B. + +,T$S0JQh1'(B C-s ,T`0CTh1A!RC0JW1:0$i1904i1GB!RCAM'KRJRB0MQ1!"CP05Qi1'a05h15SaK09h1'0;Q1(0(X10:Q19"M'`$M0Cl1`+M0Cl1(B. +0,T6i1R07h1R905i1M'!RC0JW1:0$i19JRB0MQ1!"CP07Uh1M0BYh10!h1M9K09i1Rc90"i1M$GRA09Qi19(B, ,Tc0Ki10;i1M9$S0JQh1'(B C-r ,Ta79(B. +,T$S0JQh1'(B C-s ,T(P7S'R9`K0AW1M90!Q1:$S0JQh1'(B C-r 0,T7X1!M0Bh1R'(B, ,TB!`0Gi1907T1H7R'"M'!RC0JW1:0$i19(B +,T`07h1R09Qi19(B, 0,T7Uh15C'0"i1RA0!Q19(B. + + +* 0,TGT19b40Gl1a::KERB0GT19b40Gl1(B (multiple windows) -------------------------------------- -0,TEQ(B1,T!I3P(B0,T7Uh(B10,T9h(B1,TRJ9c((B0,TMQ(B1,T9K(B0,T9Vh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B10,T!g(B10,T$W(B1,TM(B, 0,T7h(B1,TR9JRARC6aJ4'<Ed(B0,T4i(B1,TAR!!(B0,TGh(B1,TRK(B0,T9Vh(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B1,T:9K(B0,T9Vh(B1,T'(B -,TK(B0,T9i(B1,TR(Mc9`GER`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B. +0,TEQ1!I3P07Uh109h1RJ9c(0MQ19K09Vh1'"M'0MU1aA!0Jl10!g10$W1M(B, 0,T7h1R9JRARC6aJ4'<Ed04i1AR!!0Gh1RK09Vh1'0GT19b40Gl1:9K09Vh1'(B +,TK09i1R(Mc9`GER`04U1BG0!Q19(B. ->> ,T`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TAR(B0,T7Uh(B1,T:CC(B0,T7Q(B1,T4(B0,T9Ui(B1, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-u 0 C-l. +>> ,T`$0EWh1M9`$M0Cl1`+M0Cl1AR07Uh1:CC07Q1409Ui1(B, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-u 0 C-l. ->> 0,T5h(B1,TMd;(B, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 2 0,T+Vh(B1,T'(Pa(B0,T:h(B1,T'K(B0,T9i(B1,TR(MMM!`(B0,T;g(B1,T9JM'(B0,TGT(B1,T9b4(B0,TGl(B1. - 0,T7Qi(B1,T'JM'(B0,TGT(B1,T9b4(B0,TGl(B1,TaJ4'(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,T9Ui(B1. ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T;CR!/M(B0,TBYh(B1,Tc9(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B. +>> 0,T5h1Md;(B, 0,T;i1M9$S0JQh1'(B C-x 2 0,T+Vh1'(Pa0:h1'K09i1R(MMM!`0;g19JM'0GT19b40Gl1(B. + 0,T7Qi1'JM'0GT19b40Gl1aJ4'0$Yh10AW1M!RCc0*i109Ui1(B. ,T`$M0Cl1`+M0Cl1;CR!/M0BYh1c90GT19b40Gl1:9(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-M-v ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B0,TGT(B1,T9b4(B0,TGl(B10,T"i(B1,TR'(B0,TEh(B1,TR'(B. - (0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B ESC C-v ,Ta79(B.) +>> 0,T;i1M9$S0JQh1'(B C-M-v ,T`0>Wh1M`$0EWh1M90Ai1G90GT19b40Gl10"i1R'0Eh1R'(B. + (0,T6i1R07h1R9d0Ah10AU10;Xh1A(B META, 0,T;i1M9$S0JQh1'(B ESC C-v ,Ta79(B.) ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x o ("o" ,TKARB(B0,T6V(B1,T'(B "other") ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,TAR(B0,TBQ(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B. ->> ,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-v ,TaEP(B M-v ,Tc9(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B. - 0,TMh(B1,TR9$Sa9P9S(B0,T9Ui(B10,T4i(B1,TGB(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B. +>> 0,T;i1M9$S0JQh1'(B C-x o ("o" ,TKARB06V1'(B "other") ,T`0>Wh1M`$0EWh1M9`$M0Cl1`+M0Cl1AR0BQ1'0GT19b40Gl10Eh1R'(B. +>> ,Tc0*i1$S0JQh1'(B C-v ,TaEP(B M-v ,Tc90GT19b40Gl10Eh1R'`0>Wh1M07Uh1(P`$0EWh1M90Ai1G9(B. + 0,TMh1R9$Sa9P9S09Ui104i1GB0GT19b40Gl1:9(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x o 0,TMU(B1,T!$(B0,TCQi(B1,T'`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`$(B0,TEWh(B1,TM9`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T!(B0,TEQ(B1,T:d;(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B. - ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,Tc9(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(P;CR!/5C'(B0,T7Uh(B10,T7Uh(B1,T`$B;CR!/(B. +>> 0,T;i1M9$S0JQh1'(B C-x o 0,TMU1!$0CQi1'`0>Wh1M07Uh1(P`$0EWh1M9`$M0Cl1`+M0Cl1!0EQ1:d;0GT19b40Gl1:9(B. + ,T`$M0Cl1`+M0Cl1c90GT19b40Gl1:9(P;CR!/5C'07Uh107Uh1`$B;CR!/(B. -0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x o ,T`(B0,T>Wh(B1,TMJ(B0,TEQ(B1,T:d;ARCPK(B0,TGh(B1,TR'(B0,TGT(B1,T9b4(B0,TGl(B1. ,Ta(B0,T5h(B1,TEP(B0,TGT(B1,T9b4(B0,TGl(B10,TAU(B1,T5SaK(B0,T9h(B1,T'"M'(B -,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T"M'(B0,T5Q(B1,TG`M'(B, ,Ta(B0,T5h(B1,T(P(B0,TAU(B1,T`(B0,T>U(B1,TB'(B0,TGT(B1,T9b4(B0,TGl(B1,T`(B0,T4U(B1,TBG`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B0,T7Uh(B1,TaJ4'(B0,T5Q(B1,TG`$M(B0,TCl(B1,T`+M(B0,TCl(B1. 0,T7X(B1,T!$S(B0,TJQh(B1,T'(B0,T!g(B1,T(P(B -0,TAU(B1,T<E(B0,T5h(B1,TM(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B10,TAU(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T;CR!/M(B0,TBYh(B1,T`(B0,T7h(B1,TR(B0,T9Qi(B1,T9(B. ,T`CR`(B0,TCU(B1,TB!(B0,TGT(B1,T9b4(B0,TGl(B10,T9Ui(B10,TGh(B1,TR(B "0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B10,T6Y(B1,T!`(B0,TEW(B1,TM!(B +0,T7h1R9JRARC6c0*i1$S0JQh1'(B C-x o ,T`0>Wh1MJ0EQ1:d;ARCPK0Gh1R'0GT19b40Gl1(B. ,Ta05h1EP0GT19b40Gl10AU15SaK09h1'"M'(B +,T`$M0Cl1`+M0Cl1"M'05Q1G`M'(B, ,Ta05h1(P0AU1`0>U1B'0GT19b40Gl1`04U1BG`07h1R09Qi1907Uh1aJ4'05Q1G`$M0Cl1`+M0Cl1(B. 0,T7X1!$S0JQh1'0!g1(P(B +0,TAU1<E05h1M0GT19b40Gl107Uh10AU1`$M0Cl1`+M0Cl1;CR!/M0BYh1`07h1R09Qi19(B. ,T`CR`0CU1B!0GT19b40Gl109Ui10Gh1R(B "0,TGT19b40Gl107Uh106Y1!`0EW1M!(B (selected window)". -,T$S(B0,TJQh(B1,T'(B C-M-v 0,TAU(B1,T;CPbB*(B0,T9l(B1,TAR!`(B0,TAWh(B1,TM(B0,T7h(B1,TR9!S(B0,TEQ(B1,T'a(B0,T!i(B1,Td"(B0,T"i(B1,TM$GRA:9(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(B, ,TaEP(B0,T4Y(B10,TMU(B1,T!(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(B -,T`(B0,T>Wh(B1,TM!RC(B0,TMi(B1,TR'(B0,TMT(B1,T'(B. 0,T7h(B1,TR9JRARC6c(B0,TKi(B1,T`$M(B0,TCl(B1,T`+M(B0,TCl(B1,T;CR!/:9(B0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B10,T7h(B1,TR9!S(B0,TEQ(B1,T'a(B0,T!i(B1,Td"M(B0,TBYh(B1,T5EM4`GER(B, -,Ta(B0,TEi(B1,TG`$(B0,TEWh(B1,TM95SaK(B0,T9h(B1,T'"M'(B0,TMU(B1,T!(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B C-M-v. +,T$S0JQh1'(B C-M-v 0,TAU1;CPbB*09l1AR!`0AWh1M07h1R9!S0EQ1'a0!i1d"0"i1M$GRA:90GT19b40Gl1K09Vh1'(B, ,TaEP04Y10MU1!0GT19b40Gl1K09Vh1'(B +,T`0>Wh1M!RC0Mi1R'0MT1'(B. 0,T7h1R9JRARC6c0Ki1`$M0Cl1`+M0Cl1;CR!/:90GT19b40Gl107Uh107h1R9!S0EQ1'a0!i1d"M0BYh15EM4`GER(B, +,Ta0Ei1G`$0EWh1M95SaK09h1'"M'0MU1!0GT19b40Gl1K09Vh1'04i1GB$S0JQh1'(B C-M-v. -,T$S(B0,TJQh(B1,T'(B C-M-v ,T`(B0,T;g(B1,T9(B0,T5Q(B1,TGM(B0,TBh(B1,TR'K(B0,T9Vh(B1,T'"M'$S(B0,TJQh(B1,T';CPJA(B CONTROL-META. 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,TAU(B10,T;Xh(B1,TA(B META, -0,T7h(B1,TR9JRARC6(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-M-v ,Tb4B!RC!4(B0,T;Xh(B1,TA(B CONTROL ,TaEP(B META ,T"3P(B0,T7Uh(B1,T!4(B0,T;Xh(B1,TA(B0,TMQ(B1,T!"CP(B -v. ,Td(B0,TAh(B10,TGh(B1,TR(P!4(B0,T;Xh(B1,TA(B CONTROL ,TK(B0,TCW(B1,TM(B META 0,T!h(B1,TM9(B0,T!g(B1,Td(B0,TAh(B10,TAU(B10,T;Q(B1,T-KRMPdC(B, ,T`>CRP(B0,TGh(B1,TR(B0,T7Qi(B1,T'JM'(B0,T;Xh(B1,TA`(B0,T;g(B1,T9(B0,T;Xh(B1,TA(B -,T"BRB"M'(B0,T;Xh(B1,TA(B0,TMQ(B1,T!"CP(B0,T7Uh(B10,T7h(B1,TR9(P!4(B. +,T$S0JQh1'(B C-M-v ,T`0;g1905Q1GM0Bh1R'K09Vh1'"M'$S0JQh1';CPJA(B CONTROL-META. 0,T6i1R07h1R90AU10;Xh1A(B META, +0,T7h1R9JRARC60;i1M9$S0JQh1'(B C-M-v ,Tb4B!RC!40;Xh1A(B CONTROL ,TaEP(B META ,T"3P07Uh1!40;Xh1A0MQ1!"CP(B +v. ,Td0Ah10Gh1R(P!40;Xh1A(B CONTROL ,TK0CW1M(B META 0,T!h1M90!g1d0Ah10AU10;Q1-KRMPdC(B, ,T`>CRP0Gh1R07Qi1'JM'0;Xh1A`0;g190;Xh1A(B +,T"BRB"M'0;Xh1A0MQ1!"CP07Uh107h1R9(P!4(B. -0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META, ,TaEP(B0,T7h(B1,TR9c(B0,T*i(B10,T;Xh(B1,TA(B ESC ,Ta79(B, ,TES(B0,T4Q(B1,T:"M'!RC!4(B0,T;Xh(B1,TA(P(B0,TAU(B1,T<E(B0,T5h(B1,TM!RC7S'R9(B: -0,T7h(B1,TR9(B0,T5i(B1,TM'!4(B0,T;Xh(B1,TA(B ESC ,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB$S(B0,TJQh(B1,T'(B CONTROL-v, ,T`>CRP(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B CONTROL-ESC v ,T(Pd(B0,TAh(B1 -,T7S'R9(B. 0,T7Qi(B1,T'(B0,T9Ui(B1,T`>CRP(B0,TGh(B1,TR(B0,T;Xh(B1,TA(B ESC ,T`(B0,T;g(B1,T9(B0,TMQ(B1,T!"CP(B0,T5Q(B1,TGK(B0,T9Vh(B1,T'(B, ,Td(B0,TAh(B1,Tc(B0,T*h(B10,T;Xh(B1,TA"BRB(B. +0,T6i1R07h1R9d0Ah10AU10;Xh1A(B META, ,TaEP07h1R9c0*i10;Xh1A(B ESC ,Ta79(B, ,TES04Q1:"M'!RC!40;Xh1A(P0AU1<E05h1M!RC7S'R9(B: +0,T7h1R905i1M'!40;Xh1A(B ESC ,Ta0Ei1G5RA04i1GB$S0JQh1'(B CONTROL-v, ,T`>CRP0Gh1R$S0JQh1'(B CONTROL-ESC v ,T(Pd0Ah1(B +,T7S'R9(B. 0,T7Qi1'09Ui1`>CRP0Gh1R0;Xh1A(B ESC ,T`0;g190MQ1!"CP05Q1GK09Vh1'(B, ,Td0Ah1c0*h10;Xh1A"BRB(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 (,Tc9(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B) ,T`(B0,T>Wh(B1,TM!S(B0,T(Q(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B. +>> 0,T;i1M9$S0JQh1'(B C-x 1 (,Tc90GT19b40Gl1:9(B) ,T`0>Wh1M!S0(Q140GT19b40Gl10Eh1R'(B. -(0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,Tc9(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B, 0,TGT(B1,T9b4(B0,TGl(B1,T:9(B0,T!g(B1,T(PKRBd;(B. 0,T7h(B1,TR9JRARC6(S(B -,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,Td(B0,T4i(B1,Tb4B(B0,T$T(B1,T4(B0,TGh(B1,TR(B ",T`K(B0,TEW(B1,TMd(B0,TGi(B1,T`(B0,T>U(B1,TB'K(B0,T9Vh(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B1--0,TGT(B1,T9b4(B0,TGl(B10,T7Uh(B1,TM(B0,TBYh(B1,Tc9"3P(B0,T9Ui(B1.") +(0,T6i1R07h1R90;i1M9$S0JQh1'(B C-x 1 ,Tc90GT19b40Gl10Eh1R'(B, 0,TGT19b40Gl1:90!g1(PKRBd;(B. 0,T7h1R9JRARC6(S(B +,T$S0JQh1'09Ui1d04i1b4B0$T140Gh1R(B ",T`K0EW1Md0Gi1`0>U1B'K09Vh1'0GT19b40Gl1(B--0,TGT19b40Gl107Uh1M0BYh1c9"3P09Ui1(B.") -0,T7h(B1,TR9d(B0,TAh(B1,T(S`(B0,T;g(B1,T9(B0,T5i(B1,TM'aJ4'<E"M'(B0,T:Q(B1,T?`?M(B0,TCl(B1,T`(B0,T4U(B1,TBG(B0,T!Q(B1,T9:9(B0,T7Qi(B1,T'JM'(B0,TGT(B1,T9b4(B0,TGl(B1. 0,T6i(B1,TR(B0,T7h(B1,TR9c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-x C-f -,T`(B0,T>Wh(B1,TM(B0,T$i(B1,T9KRa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEc9(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(B, 0,TMU(B1,T!(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'(Pd(B0,TAh(B1,T`;(B0,TEUh(B1,TB9a;E'(B. 0,T7h(B1,TR9JRARC6(B0,T$i(B1,T9KR(B -,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TEc9a(B0,T5h(B1,TEP(B0,TGT(B1,T9b4(B0,TGl(B1,Td(B0,T4i(B10,TMT(B1,TJCP(B0,T5h(B1,TM(B0,T!Q(B1,T9(B. +0,T7h1R9d0Ah1(S`0;g1905i1M'aJ4'<E"M'0:Q1?`?M0Cl1`04U1BG0!Q19:907Qi1'JM'0GT19b40Gl1(B. 0,T6i1R07h1R9c0*i1$S0JQh1'(B C-x C-f +,T`0>Wh1M0$i19KRa0?i1A0"i1M0AY1Ec90GT19b40Gl1K09Vh1'(B, 0,TMU1!0GT19b40Gl1K09Vh1'(Pd0Ah1`;0EUh1B9a;E'(B. 0,T7h1R9JRARC60$i19KR(B +,Ta0?i1A0"i1M0AY1Ec9a05h1EP0GT19b40Gl1d04i10MT1JCP05h1M0!Q19(B. -0,T5h(B1,TMd;`(B0,T;g(B1,T9(B0,TMU(B1,T!(B0,TGT(B10,T8U(B1,TK(B0,T9Vh(B1,T'"M'!RCc(B0,T*i(B1,TJM'(B0,TGT(B1,T9b4(B0,TGl(B1,TJSK(B0,TCQ(B1,T:aJ4'<E"M'JM'(B0,TJTh(B1,T'(B0,T7Uh(B10,T5h(B1,TR'(B0,T!Q(B1,T9(B: +0,T5h1Md;`0;g190MU1!0GT108U1K09Vh1'"M'!RCc0*i1JM'0GT19b40Gl1JSK0CQ1:aJ4'<E"M'JM'0JTh1'07Uh105h1R'0!Q19(B: ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 4 C-f ,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB(B0,T*Wh(B1,TMa(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B. 0,TJTi(B1,T9(B0,TJX(B1,T4$S(B0,TJQh(B1,T'(B0,T4i(B1,TGB!RC!4(B0,T;Xh(B1,TA(B - <Return>. ,T(P`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,TAU(B1,Ta(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B10,T5i(B1,TM'!RC;CR!/M(B0,TBYh(B1,Tc9(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B. ,T`$M(B0,TCl(B1,T`+M(B0,TCl(B10,T!g(B1,T(Pd;(B - ,T;CR!/(B0,T7Uh(B10,TGT(B1,T9b4(B0,TGl(B10,T9Qi(B1,T9(B0,T4i(B1,TGB(B. +>> 0,T;i1M9$S0JQh1'(B C-x 4 C-f ,Ta0Ei1G5RA04i1GB0*Wh1Ma0?i1A0"i1M0AY1E(B. 0,TJTi190JX14$S0JQh1'04i1GB!RC!40;Xh1A(B + <Return>. ,T(P`0Kg190Gh1R0AU1a0?i1A0"i1M0AY1E07Uh105i1M'!RC;CR!/M0BYh1c90GT19b40Gl10Eh1R'(B. ,T`$M0Cl1`+M0Cl10!g1(Pd;(B + ,T;CR!/07Uh10GT19b40Gl109Qi1904i1GB(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x o ,T`(B0,T>Wh(B1,TM!(B0,TEQ(B1,T:d;(B0,TBQ(B1,T'(B0,TGT(B1,T9b4(B0,TGl(B1,T:9(B, ,Ta(B0,TEi(B1,TG(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM!S(B0,T(Q(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,TEh(B1,TR'(B. +>> 0,T;i1M9$S0JQh1'(B C-x o ,T`0>Wh1M!0EQ1:d;0BQ1'0GT19b40Gl1:9(B, ,Ta0Ei1G0;i1M9$S0JQh1'(B C-x 1 ,T`0>Wh1M!S0(Q140GT19b40Gl10Eh1R'(B. -* ,TCP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B (recursive editing levels) +* ,TCP04Q1:"M'!RCa0!i1d"a::`0CU1B!0+i1S(B (recursive editing levels) ------------------------------------------------------- -,T:R'$(B0,TCQi(B1,T'(B0,T7h(B1,TR9MR((P`(B0,T"i(B1,TRd;M(B0,TBYh(B1,Tc9(B ",TCP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::!RC`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B (recursive editing -level)". ,TJ@R>(B0,T4Q(B1,T'!(B0,TEh(B1,TRG`(B0,T*h(B1,T9(B0,T9Ui(B1,TaJ4'(B0,T4i(B1,TGBG'`(B0,TEg(B1,T:(B0,T!i(B1,TRA(B0,T;Y(B1,Tc9:CC(B0,T7Q(B1,T4aJ4'bKA4(B, 0,TEi(B1,TMACM:G'`(B0,TEg(B1,T:(B0,T7Uh(B1 -,TaJ4'(B0,T*Wh(B1,TM"M'bKA4K(B0,TEQ(B1,T!(B. 0,T5Q(B1,TGM(B0,TBh(B1,TR'`(B0,T*h(B1,T9(B, 0,T7h(B1,TR9MR((P`(B0,TKg(B1,T9(B [(Fundamental)] ,Ta79(B0,T7Uh(B1,T(P`(B0,T;g(B1,T9(B +,T:R'$0CQi1'07h1R9MR((P`0"i1Rd;M0BYh1c9(B ",TCP04Q1:"M'!RCa0!i1d"a::!RC`0CU1B!0+i1S(B (recursive editing +level)". ,TJ@R>04Q1'!0Eh1RG`0*h1909Ui1aJ4'04i1GBG'`0Eg1:0!i1RA0;Y1c9:CC07Q14aJ4'bKA4(B, 0,TEi1MACM:G'`0Eg1:07Uh1(B +,TaJ4'0*Wh1M"M'bKA4K0EQ1!(B. 0,T5Q1GM0Bh1R'`0*h19(B, 0,T7h1R9MR((P`0Kg19(B [(Fundamental)] ,Ta7907Uh1(P`0;g19(B (Fundamental). -,Tc9!RC(B0,T7Uh(B1,T(PMM!(R!CP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B, ,T!4(B0,T;Xh(B1,TA(B ESC ESC ESC. 0,T9Uh(B1,T`(B0,T;g(B1,T9(B -,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,Tc(B0,T*i(B1,Td(B0,T4i(B10,T7Qh(B1,TGd;c9!RCMM!(R!CP(B0,T4Q(B1,T:c4f(B ,T"M'!RC;CPAGE<E(B. 0,T7h(B1,TR9JRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B0,T9Ui(B1,Tc9(B -,T!RC!S(B0,T(Q(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B10,T>T(B1,T`HI(B0,TMWh(B1,T9f(B, ,TCGA(B0,T7Qi(B1,T'!RCMM!(R!(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1 (minibuffer). +,Tc9!RC07Uh1(PMM!(R!CP04Q1:"M'!RCa0!i1d"a::`0CU1B!0+i1S(B, ,T!40;Xh1A(B ESC ESC ESC. 0,T9Uh1`0;g19(B +,T$S0JQh1'07Uh1c0*i1d04i107Qh1Gd;c9!RCMM!(R!CP04Q1:c4f(B ,T"M'!RC;CPAGE<E(B. 0,T7h1R9JRARC6c0*i1$S0JQh1'09Ui1c9(B +,T!RC!S0(Q140GT19b40Gl10>T1`HI0MWh19f(B, ,TCGA07Qi1'!RCMM!(R!0AT109T10:Q1?`?M0Cl1(B (minibuffer). ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B M-x ,T`(B0,T>Wh(B1,TM`(B0,T"i(B1,TRd;c9(B0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B1; ,T!4(B0,T;Xh(B1,TA(B ESC ESC ESC ,T`(B0,T>Wh(B1,TMMM!(R!(B - 0,TAT(B10,T9T(B10,T:Q(B1,T?`?M(B0,TCl(B10,T9Qi(B1,T9(B. +>> 0,T;i1M9$S0JQh1'(B M-x ,T`0>Wh1M`0"i1Rd;c90AT109T10:Q1?`?M0Cl1(B; ,T!40;Xh1A(B ESC ESC ESC ,T`0>Wh1MMM!(R!(B + 0,TAT109T10:Q1?`?M0Cl109Qi19(B. -0,T7h(B1,TR9d(B0,TAh(B1,TJRARC6c(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g ,T`(B0,T>Wh(B1,TMMM!(R!CP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B. -,T`>CRP(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B C-g ,Tc(B0,T*i(B1,T`(B0,T>Wh(B1,TMB!`(B0,TET(B1,T!$S(B0,TJQh(B1,T'aEPMR(B0,TCl(B10,T!T(B1,TG`A9(B0,T5l(B1,T@RBc9CP(B0,T4Q(B1,T:"M'!RCa(B0,T!i(B1,Td"a::(B -,T`(B0,TCU(B1,TB!(B0,T+i(B1,TS(B. +0,T7h1R9d0Ah1JRARC6c0*i1$S0JQh1'(B C-g ,T`0>Wh1MMM!(R!CP04Q1:"M'!RCa0!i1d"a::`0CU1B!0+i1S(B. +,T`>CRP0Gh1R$S0JQh1'(B C-g ,Tc0*i1`0>Wh1MB!`0ET1!$S0JQh1'aEPMR0Cl10!T1G`A905l1@RBc9CP04Q1:"M'!RCa0!i1d"a::(B +,T`0CU1B!0+i1S(B. -* ,T!RC`(B0,TCU(B1,TB!(B0,T4Y(B10,T"i(B1,TM$GRA(B0,T*h(B1,TGB`K(B0,TEW(B1,TM`(B0,T>Th(B1,TA`(B0,T5T(B1,TA(B (getting more help) +* ,T!RC`0CU1B!04Y10"i1M$GRA0*h1GB`K0EW1M`0>Th1A`05T1A(B (getting more help) ------------------------------------------------- -,Tc9(B0,T$Yh(B10,TAW(B1,TM(B0,T9Ui(B1,T`CR>BRBRA(B0,T7Uh(B1,T(Pc(B0,TKi(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Uh(B1,T`(B0,T>U(B1,TB'>MJSK(B0,TCQ(B1,T:!RC`(B0,TCTh(B1,TAc(B0,T*i(B10,TMU(B1,TaA!(B0,TJl(B1. 0,TBQ(B1,T'$'(B0,TAU(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,TMU(B1,T!AR!c9(B -0,TMU(B1,TaA!(B0,TJl(B10,T+Vh(B1,T'`CRd(B0,TAh(B1,TJRARC6(B0,T7Uh(B1,T(P9SARM(B0,T8T(B1,T:RBd(B0,TGi(B1,Tc9(B0,T7Uh(B10,T9Ui(B1,Td(B0,T4i(B10,T7Qi(B1,T'KA4(B. ,TM(B0,TBh(B1,TR'dC(B0,T!g(B1,T5RA(B, 0,T7h(B1,TR9MR((B0,T5i(B1,TM'!RC(B -,T`(B0,TCU(B1,TB9(B0,TCYi(B1,T`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B0,TMU(B1,TaA!(B0,TJl(B1,T`(B0,T>Th(B1,TA`(B0,T5T(B1,TA`>CRP(B0,TMU(B1,TaA!(B0,TJl(B10,TBQ(B1,T'(B0,TAU(B10,T$X(B1,T3JA(B0,T:Q(B10,T5T(B10,TMU(B1,T!AR!ARB(B. 0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B1,T`5(B0,TCU(B1,TBA$S(B0,TJQh(B1,T'(B -,TJSK(B0,TCQ(B1,T:`(B0,TCU(B1,TB!(B0,T4Y(B1,T`(B0,T9Wi(B1,TMKR`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B1. ,T$S(B0,TJQh(B1,T'(B "0,T*h(B1,TGB`K(B0,TEW(B1,TM(B (help)" 0,T7Qi(B1,T'KA4`(B0,TCTh(B1,TA(B0,T4i(B1,TGB(B -0,TMQ(B1,T!"CP(B CONTROL-h, 0,T+Vh(B1,T'`(B0,TCU(B1,TB!(B0,TGh(B1,TR(B "0,TMQ(B1,T!"CP(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B (the Help character)". +,Tc90$Yh10AW1M09Ui1`CR>BRBRA07Uh1(Pc0Ki10"i1M0AY1E07Uh1`0>U1B'>MJSK0CQ1:!RC`0CTh1Ac0*i10MU1aA!0Jl1(B. 0,TBQ1'$'0AU10"i1M0AY1E0MU1!AR!c9(B +0,TMU1aA!0Jl10+Vh1'`CRd0Ah1JRARC607Uh1(P9SARM08T1:RBd0Gi1c907Uh109Ui1d04i107Qi1'KA4(B. ,TM0Bh1R'dC0!g15RA(B, 0,T7h1R9MR(05i1M'!RC(B +,T`0CU1B90CYi1`0!Uh1BG0!Q1:0MU1aA!0Jl1`0>Th1A`05T1A`>CRP0MU1aA!0Jl10BQ1'0AU10$X13JA0:Q105T10MU1!AR!ARB(B. 0,TMU1aA!0Jl1d04i1`50CU1BA$S0JQh1'(B +,TJSK0CQ1:`0CU1B!04Y1`09Wi1MKR`0!Uh1BG0!Q1:$S0JQh1'"M'0MU1aA!0Jl1(B. ,T$S0JQh1'(B "0,T*h1GB`K0EW1M(B (help)" 0,T7Qi1'KA4`0CTh1A04i1GB(B +0,TMQ1!"CP(B CONTROL-h, 0,T+Vh1'`0CU1B!0Gh1R(B "0,TMQ1!"CP0*h1GB`K0EW1M(B (the Help character)". -,Tc9!RC(B0,T7Uh(B1,T(Pc(B0,T*i(B10,T$X(B1,T3JA(B0,T:Q(B10,T5T(B10,T*h(B1,TGB`K(B0,TEW(B1,TM(B, 0,T;i(B1,TM9(B0,TMQ(B1,T!"CP(B C-h, ,Ta(B0,TEi(B1,TG5RA(B0,T4i(B1,TGB(B0,TMU(B1,T!K(B0,T9Vh(B1,T'(B0,TMQ(B1,T!"CP`(B0,T>Wh(B1,TM:M!(B0,TGh(B1,TR(B -0,T7h(B1,TR9(B0,T5i(B1,TM'!RC$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TMMPdC(B. 0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B1,T7CR:(B0,TGh(B1,TR(P7SMPdC(B0,T5h(B1,TMd;(B, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h ? ,Ta(B0,TEi(B1,TG(B -0,TMU(B1,TaA!(B0,TJl(B1,T(P:M!(B0,T7h(B1,TR9(B0,TGh(B1,TR(B0,TAU(B1,T$S(B0,T*h(B1,TGBMPdC(B0,T7Uh(B10,TMU(B1,TaA!(B0,TJl(B1,TJRARC6(Pc(B0,TKi(B1,Td(B0,T4i(B1. 0,T6i(B1,TR(B0,T7h(B1,TR9(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h ,Ta(B0,TEi(B1,TG(B -0,T5i(B1,TM'!RCB!`(B0,TET(B1,T!(B0,T7h(B1,TR9(B, 0,T!g(B1,TJRARC6B!`(B0,TET(B1,T!d(B0,T4i(B1,Tb4Bc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-g. +,Tc9!RC07Uh1(Pc0*i10$X13JA0:Q105T10*h1GB`K0EW1M(B, 0,T;i1M90MQ1!"CP(B C-h, ,Ta0Ei1G5RA04i1GB0MU1!K09Vh1'0MQ1!"CP`0>Wh1M:M!0Gh1R(B +0,T7h1R905i1M'!RC$S0*h1GB`K0EW1MMPdC(B. 0,T6i1R07h1R9d0Ah17CR:0Gh1R(P7SMPdC05h1Md;(B, 0,T;i1M9$S0JQh1'(B C-h ? ,Ta0Ei1G(B +0,TMU1aA!0Jl1(P:M!07h1R90Gh1R0AU1$S0*h1GBMPdC07Uh10MU1aA!0Jl1JRARC6(Pc0Ki1d04i1(B. 0,T6i1R07h1R90;i1M9$S0JQh1'(B C-h ,Ta0Ei1G(B +0,T5i1M'!RCB!`0ET1!07h1R9(B, 0,T!g1JRARC6B!`0ET1!d04i1b4Bc0*i1$S0JQh1'(B C-g. -(,Tc9:R'CP::(B0,T9Qi(B1,T9(B, ,T$GRAKARB"M'(B0,TMQ(B1,T!"CP(B C-h ,Td(B0,T4i(B10,T6Y(B1,T!`;(B0,TEUh(B1,TB9d;(B. 0,T+Vh(B1,T'b4B$GRA`(B0,T;g(B1,T9((B0,TCT(B1,T'a(B0,TEi(B1,TGd(B0,TAh(B1 -,T$GC(P7S`(B0,T*h(B1,T9(B0,T9Ui(B1, 0,T7Qi(B1,T'(B0,T9Ui(B10,T7h(B1,TR9MR((P(B0,T*Ui(B1,Ta('(B0,T5h(B1,TM(B0,T<Yi(B10,T4Y(B1,TaECP::d(B0,T4i(B1. ,TJSK(B0,TCQ(B1,T:!RCa(B0,T!i(B10,T;Q(B1,T-KR`)>RPK(B0,T9i(B1,TR(B, 0,T6i(B1,TR(B -,T$S(B0,TJQh(B1,T'(B C-h ,Td(B0,TAh(B1,Td(B0,T4i(B1,TaJ4'(B0,T"i(B1,TM$GRA`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B0,T7Uh(B10,TJh(B1,TG9(B0,TEh(B1,TR'"M'K(B0,T9i(B1,TR(M(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B1,TEM'!4(B0,T;Xh(B1,TA(B F1 -,TK(B0,TCW(B1,TM(B M-x help<Return> ,Ta79(B.) +(,Tc9:R'CP::09Qi19(B, ,T$GRAKARB"M'0MQ1!"CP(B C-h ,Td04i106Y1!`;0EUh1B9d;(B. 0,T+Vh1'b4B$GRA`0;g19(0CT1'a0Ei1Gd0Ah1(B +,T$GC(P7S`0*h1909Ui1(B, 0,T7Qi1'09Ui107h1R9MR((P0*Ui1a('05h1M0<Yi104Y1aECP::d04i1(B. ,TJSK0CQ1:!RCa0!i10;Q1-KR`)>RPK09i1R(B, 0,T6i1R(B +,T$S0JQh1'(B C-h ,Td0Ah1d04i1aJ4'0"i1M$GRA`0!Uh1BG0!Q1:$S0*h1GB`K0EW1M07Uh10Jh1G90Eh1R'"M'K09i1R(M09Qi19(B, ,Tc0Ki1EM'!40;Xh1A(B F1 +,TK0CW1M(B M-x help<Return> ,Ta79(B.) -0,T$X(B1,T3JA(B0,T:Q(B10,T5T(B1,T`(B0,T:Wi(B1,TM'(B0,T5i(B1,T9"M'$S(B0,TJQh(B1,T'(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B0,T$W(B1,TM$S(B0,TJQh(B1,T'(B C-h c. ,TEM'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h, 0,TMQ(B1,T!"CP(B c, ,Ta(B0,TEi(B1,TG(B -,T5RA(B0,T4i(B1,TGB(B0,TMQ(B1,T!"CPK(B0,TCW(B1,TMJRB(B0,TMQ(B1,T!"CP(B; ,Ta(B0,TEi(B1,TG(B0,TMU(B1,TaA!(B0,TJl(B1,T(PaJ4'$SM(B0,T8T(B1,T:RB"M'$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9b4B(B0,TJQ(B1,T'`";(B. +0,T$X13JA0:Q105T1`0:Wi1M'05i19"M'$S0JQh1'0*h1GB`K0EW1M0$W1M$S0JQh1'(B C-h c. ,TEM'0;i1M9$S0JQh1'(B C-h, 0,TMQ1!"CP(B c, ,Ta0Ei1G(B +,T5RA04i1GB0MQ1!"CPK0CW1MJRB0MQ1!"CP(B; ,Ta0Ei1G0MU1aA!0Jl1(PaJ4'$SM08T1:RB"M'$S0JQh1'09Qi19b4B0JQ1'`";(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h c CONTROL-p. - 0,T"i(B1,TM$GRA(B0,T7Uh(B1,T;CR!/(P`(B0,T;g(B1,T9(B0,T4Q(B1,T'(B0,T5h(B1,TMd;(B0,T9Ui(B1 +>> 0,T;i1M9$S0JQh1'(B C-h c CONTROL-p. + 0,T"i1M$GRA07Uh1;CR!/(P`0;g1904Q1'05h1Md;09Ui1(B C-p runs the command previous-line -0,T9Uh(B1,T`(B0,T;g(B1,T9!RC:M!(B "0,T*Wh(B1,TM(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9"M'$S(B0,TJQh(B1,T'(B" 0,T9Qi(B1,T9(B. 0,T*Wh(B1,TM"M'(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9c(B0,T*i(B1,T`(B0,T>Wh(B1,TM!RC;(B0,TCQ(B1,T:aEPa(B0,T5h(B1,T'`(B0,T5T(B1,TA(B0,TMU(B1,TaA!(B0,TJl(B1. -,Ta(B0,T5h(B1,T`(B0,T9Wh(B1,TM'(R!(B0,T*Wh(B1,TM"M'(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B0,T9Qi(B1,T9(B0,T5Qi(B1,T'`(B0,T>Wh(B1,TM(B0,T*Ui(B1,T:M!(B0,TGh(B1,TR$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T97S'R9M(B0,TBh(B1,TR'dC(B, 0,T+Vh(B1,T'MR(`(B0,T;g(B1,T9(B0,T5Q(B1,TG(B0,T*h(B1,TGB:M!(B -,T$SM(B0,T8T(B1,T:RBb4B(B0,TJQ(B1,T'`";d(B0,T4i(B1--,TMR(`(B0,T>U(B1,TB'>M(B0,T7Uh(B1,T(P`(B0,T5W(B1,TM9c(B0,TKi(B10,T7h(B1,TR9(B0,T9V(B1,T!(B0,T6V(B1,T'$S(B0,TJQh(B1,T'(B0,T7Uh(B10,T5i(B1,TM'!RCd(B0,T4i(B1. +0,T9Uh1`0;g19!RC:M!(B "0,T*Wh1M0?Q1'0!l10*Q19"M'$S0JQh1'(B" 0,T9Qi19(B. 0,T*Wh1M"M'0?Q1'0!l10*Q19c0*i1`0>Wh1M!RC;0CQ1:aEPa05h1'`05T1A0MU1aA!0Jl1(B. +,Ta05h1`09Wh1M'(R!0*Wh1M"M'0?Q1'0!l10*Q1909Qi1905Qi1'`0>Wh1M0*Ui1:M!0Gh1R$S0JQh1'09Qi197S'R9M0Bh1R'dC(B, 0,T+Vh1'MR(`0;g1905Q1G0*h1GB:M!(B +,T$SM08T1:RBb4B0JQ1'`";d04i1(B--,TMR(`0>U1B'>M07Uh1(P`05W1M9c0Ki107h1R909V1!06V1'$S0JQh1'07Uh105i1M'!RCd04i1(B. -,T$S(B0,TJQh(B1,T'(B0,T7Uh(B1,T;CP!M:(B0,T4i(B1,TGBKERB(B0,TMQ(B1,T!"CP(B ,T`(B0,T*h(B1,T9$S(B0,TJQh(B1,T'(B C-x C-s ,TaEP(B (0,T6i(B1,TR(B0,T7h(B1,TR9d(B0,TAh(B10,TAU(B10,T;Xh(B1,TA(B META ,TK(B0,TCW(B1,TM(B -EDIT ,TK(B0,TCW(B1,TM(B ALT) ,T$S(B0,TJQh(B1,T'(B <ESC>v ,TJRARC6c(B0,T*i(B1,T5RAK(B0,TEQ(B1,T'$S(B0,TJQh(B1,T'(B C-h c. +,T$S0JQh1'07Uh1;CP!M:04i1GBKERB0MQ1!"CP(B ,T`0*h19$S0JQh1'(B C-x C-s ,TaEP(B (0,T6i1R07h1R9d0Ah10AU10;Xh1A(B META ,TK0CW1M(B +EDIT ,TK0CW1M(B ALT) ,T$S0JQh1'(B <ESC>v ,TJRARC6c0*i15RAK0EQ1'$S0JQh1'(B C-h c. -,T!RC(B0,T7Uh(B1,T(P`(B0,TCU(B1,TB!(B0,T4Y(B10,T"i(B1,TM(B0,TAY(B1,TE`(B0,T>Th(B1,TA`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:$S(B0,TJQh(B1,T'(B, ,Tc(B0,TKi(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-h k ,Ta79$S(B0,TJQh(B1,T'(B C-h c. +,T!RC07Uh1(P`0CU1B!04Y10"i1M0AY1E`0>Th1A`0!Uh1BG0!Q1:$S0JQh1'(B, ,Tc0Ki1c0*i1$S0JQh1'(B C-h k ,Ta79$S0JQh1'(B C-h c. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h k CONTROL-p. +>> 0,T;i1M9$S0JQh1'(B C-h k CONTROL-p. -0,T9Uh(B1,T`(B0,T;g(B1,T9!RCaJ4'<E$SM(B0,T8T(B1,T:RB"M'(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B, ,T>(B0,TCi(B1,TMA(B0,T!Q(B1,T:(B0,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9(B, ,Tc9(B0,TGT(B1,T9b4(B0,TGl(B1,TK(B0,T9Vh(B1,T'"M'(B0,TMU(B1,TaA!(B0,TJl(B1. -,T`(B0,TAWh(B1,TM(B0,T7h(B1,TR9(B0,TMh(B1,TR9`J(B0,TCg(B1,T(a(B0,TEi(B1,TG(B, 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM!S(B0,T(Q(B1,T4(B0,T"i(B1,TM$GRA"M'$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B. 0,T7h(B1,TR9d(B0,TAh(B1 -,T(S`(B0,T;g(B1,T9(B0,T7Uh(B1,T(P(B0,T5i(B1,TM'7S(B0,T7Q(B1,T9(B0,T7U(B1. 0,T7h(B1,TR9MR(7S!RCa(B0,T!i(B1,Td""3P(B0,T7Uh(B10,T4Y(B10,T"i(B1,TM$GRA$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B0,T9Qi(B1,T9M(B0,TBYh(B1, ,Ta(B0,TEi(B1,TG(B -0,T$h(B1,TMB(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1. +0,T9Uh1`0;g19!RCaJ4'<E$SM08T1:RB"M'0?Q1'0!l10*Q19(B, ,T>0Ci1MA0!Q1:0*Wh1M"M'$S0JQh1'09Qi19(B, ,Tc90GT19b40Gl1K09Vh1'"M'0MU1aA!0Jl1(B. +,T`0AWh1M07h1R90Mh1R9`J0Cg1(a0Ei1G(B, 0,T;i1M9$S0JQh1'(B C-x 1 ,T`0>Wh1M!S0(Q140"i1M$GRA"M'$S0*h1GB`K0EW1M(B. 0,T7h1R9d0Ah1(B +,T(S`0;g1907Uh1(P05i1M'7S07Q1907U1(B. 0,T7h1R9MR(7S!RCa0!i1d""3P07Uh104Y10"i1M$GRA$S0*h1GB`K0EW1M09Qi19M0BYh1(B, ,Ta0Ei1G(B +0,T$h1MB0;i1M9$S0JQh1'(B C-x 1. -0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9(B0,T5Q(B1,TG`(B0,TEW(B1,TM!(B0,T7Uh(B1,T`(B0,T;g(B1,T9;CPbB*(B0,T9l(B1: +0,T5h1Md;09Ui1`0;g1905Q1G`0EW1M!07Uh1`0;g19;CPbB*09l1(B: - C-h f ,TM(B0,T8T(B1,T:RB(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B. 0,T>T(B1,TA(B0,T>l(B10,T*Wh(B1,TM(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9(B0,T7Uh(B10,T5i(B1,TM'!RC7CR:5RAE'd;(B. + C-h f ,TM08T1:RB0?Q1'0!l10*Q19(B. 0,T>T1A0>l10*Wh1M0?Q1'0!l10*Q1907Uh105i1M'!RC7CR:5RAE'd;(B. ->> ,TEM'(B0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h f previous-line<Return>. - 0,T9Uh(B1,T`(B0,T;g(B1,T9!RC(B0,T7Uh(B1,T(P7Sc(B0,TKi(B10,TMU(B1,TaA!(B0,TJl(B10,T>T(B1,TA(B0,T>l(B10,T"i(B1,TM(B0,TAY(B1,TE(B0,T7Qi(B1,T'KA4(B0,T7Uh(B10,TAU(B1,T`(B0,T!Uh(B1,TBG(B0,T!Q(B1,T:(B0,T?Q(B1,T'(B0,T!l(B10,T*Q(B1,T9"M'$S(B0,TJQh(B1,T'(B C-p. +>> ,TEM'0;i1M9$S0JQh1'(B C-h f previous-line<Return>. + 0,T9Uh1`0;g19!RC07Uh1(P7Sc0Ki10MU1aA!0Jl10>T1A0>l10"i1M0AY1E07Qi1'KA407Uh10AU1`0!Uh1BG0!Q1:0?Q1'0!l10*Q19"M'$S0JQh1'(B C-p. - C-h a ,T$S(B0,TJQh(B1,T'$GRA(B0,T7Uh(B1,T`KARPJA(B (Command Apropos). 0,T;i(B1,TM9$SK(B0,TEQ(B1,T!(B (keyword) - ,Ta(B0,TEi(B1,TG(B0,TMU(B1,TaA!(B0,TJl(B1,T(PaJ4'CRB!RC"M'$S(B0,TJQh(B1,T'(B0,T7Qi(B1,T'KA4(B0,T7Uh(B10,TAU(B1,T$SK(B0,TEQ(B1,T!;CP!M:M(B0,TBYh(B1. - ,T$S(B0,TJQh(B1,T'`K(B0,TEh(B1,TR(B0,T9Ui(B1,T(P`(B0,TCU(B1,TB!c(B0,T*i(B1,Td(B0,T4i(B10,T4i(B1,TGB$S(B0,TJQh(B1,T'(B META-x. - ,TJSK(B0,TCQ(B1,T::R'$S(B0,TJQh(B1,T'(B, ,T$S(B0,TJQh(B1,T'$GRA(B0,T7Uh(B1,T`KARPJA(B (Command Apropos) ,T(P(B - ,TaJ4'CRB!RC"M'$S(B0,TJQh(B1,T'(B0,T7Uh(B1,T;CP!M:(B0,T4i(B1,TGBK(B0,T9Vh(B1,T'K(B0,TCW(B1,TMJM'JRB(B0,TMQ(B1,T!"CP(B0,T7Uh(B1,Tc(B0,T*i(B1,T`(B0,TCU(B1,TB!(B - ,T$S(B0,TJQh(B1,T'`(B0,T4U(B1,TBG(B0,T!Q(B1,T9(B0,T4i(B1,TGB(B. + C-h a ,T$S0JQh1'$GRA07Uh1`KARPJA(B (Command Apropos). 0,T;i1M9$SK0EQ1!(B (keyword) + ,Ta0Ei1G0MU1aA!0Jl1(PaJ4'CRB!RC"M'$S0JQh1'07Qi1'KA407Uh10AU1$SK0EQ1!;CP!M:M0BYh1(B. + ,T$S0JQh1'`K0Eh1R09Ui1(P`0CU1B!c0*i1d04i104i1GB$S0JQh1'(B META-x. + ,TJSK0CQ1::R'$S0JQh1'(B, ,T$S0JQh1'$GRA07Uh1`KARPJA(B (Command Apropos) ,T(P(B + ,TaJ4'CRB!RC"M'$S0JQh1'07Uh1;CP!M:04i1GBK09Vh1'K0CW1MJM'JRB0MQ1!"CP07Uh1c0*i1`0CU1B!(B + ,T$S0JQh1'`04U1BG0!Q1904i1GB(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-h a file<Return>. +>> 0,T;i1M9$S0JQh1'(B C-h a file<Return>. -0,T9Uh(B1,T`(B0,T;g(B1,T9!RCaJ4'CRB!RC"M'$S(B0,TJQh(B1,T';CP!M:"M'(B M-x 0,T!Q(B1,T:(B "file" ,Tc9(B0,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'(B -0,T7Qi(B1,T'KA4c9(B0,TMU(B1,T!K(B0,T9i(B1,TR(M(B. 0,T7h(B1,TR9(P`(B0,TKg(B1,T9$S(B0,TJQh(B1,T';CP!M:(B0,TMQ(B1,T!"CP(B (character-command) ,T`(B0,T*h(B1,T9(B C-x -C-f ,TaJ4'M(B0,TBYh(B10,T!Q(B1,T:(B0,T*Wh(B1,TM"M'$S(B0,TJQh(B1,T'(B0,T9Qi(B1,T9f(B ,T`(B0,T*h(B1,T9(B find-file. +0,T9Uh1`0;g19!RCaJ4'CRB!RC"M'$S0JQh1';CP!M:"M'(B M-x 0,T!Q1:(B "file" ,Tc90*Wh1M"M'$S0JQh1'(B +0,T7Qi1'KA4c90MU1!K09i1R(M(B. 0,T7h1R9(P`0Kg19$S0JQh1';CP!M:0MQ1!"CP(B (character-command) ,T`0*h19(B C-x +C-f ,TaJ4'M0BYh10!Q1:0*Wh1M"M'$S0JQh1'09Qi19f(B ,T`0*h19(B find-file. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-M-v ,T`(B0,T>Wh(B1,TM`$(B0,TEWh(B1,TM9(B0,TAi(B1,TG9(B0,TGT(B1,T9b4(B0,TGl(B1,T$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B (help window). ,TEM'7S(B0,T4Y(B10,TJQ(B1,T!(B - ,TJM'JRA$(B0,TCQi(B1,T'(B. +>> 0,T;i1M9$S0JQh1'(B C-M-v ,T`0>Wh1M`$0EWh1M90Ai1G90GT19b40Gl1$S0*h1GB`K0EW1M(B (help window). ,TEM'7S04Y10JQ1!(B + ,TJM'JRA$0CQi1'(B. ->> 0,T;i(B1,TM9$S(B0,TJQh(B1,T'(B C-x 1 ,T`(B0,T>Wh(B1,TM!S(B0,T(Q(B1,T4(B0,TGT(B1,T9b4(B0,TGl(B1,T$S(B0,T*h(B1,TGB`K(B0,TEW(B1,TM(B. +>> 0,T;i1M9$S0JQh1'(B C-x 1 ,T`0>Wh1M!S0(Q140GT19b40Gl1$S0*h1GB`K0EW1M(B. -* ,TJ(B0,TCX(B1,T;(B +* ,TJ0CX1;(B ----- -0,TJTh(B1,T'$GC(Sd(B0,TGi(B10,T$W(B1,TM(B, ,T$S(B0,TJQh(B1,T'(B C-x C-c ,Tc(B0,T*i(B1,TJSK(B0,TCQ(B1,T:MM!(R!(B0,TMU(B1,TaA!(B0,TJl(B1,TM(B0,TBh(B1,TR'6RGC(B. 0,T6i(B1,TR(B0,T5i(B1,TM'!RCMM!d;(B0,TBQ(B1,T'(B -,T`*E(B0,TEl(B10,T*Qh(B1,TG$CRG(B, ,TaEPJRARC6!(B0,TEQ(B1,T:AR(B0,TBQ(B1,T'(B0,TMU(B1,TaA!(B0,TJl(B1,Td(B0,T4i(B10,TMU(B1,T!(B0,T9Qi(B1,T9(B, ,Tc(B0,TKi(B1,Tc(B0,T*i(B1,T$S(B0,TJQh(B1,T'(B C-z. +0,TJTh1'$GC(Sd0Gi10$W1M(B, ,T$S0JQh1'(B C-x C-c ,Tc0*i1JSK0CQ1:MM!(R!0MU1aA!0Jl1M0Bh1R'6RGC(B. 0,T6i1R05i1M'!RCMM!d;0BQ1'(B +,T`*E0El10*Qh1G$CRG(B, ,TaEPJRARC6!0EQ1:AR0BQ1'0MU1aA!0Jl1d04i10MU1!09Qi19(B, ,Tc0Ki1c0*i1$S0JQh1'(B C-z. -0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B10,T9Ui(B10,TAU(B1,T`(59Rc(B0,TKi(B10,T<Yi(B10,T7Uh(B1,T`(B0,T>Th(B1,T'`(B0,TCTh(B1,TAc(B0,T*i(B10,T7Qi(B1,T'KERBJRARC6`(B0,T"i(B1,TRc(d(B0,T4i(B1, 0,T4Q(B1,T'(B0,T9Qi(B1,T9(B0,T6i(B1,TR(B0,T7h(B1,TR9>::R'(B0,TJTh(B1,T'(B0,T7Uh(B1,Td(B0,TAh(B1 -0,T*Q(B1,T4`(9(B, ,Td(B0,TAh(B10,T5i(B1,TM'(B0,T9Qh(B1,T'5SK(B0,T9T(B10,T5Q(B1,TG`M'(B - ,TJM:6RAARd(B0,T4i(B1,T`EB(B! +0,T$Yh10AW1M!RCc0*i109Ui10AU1`(59Rc0Ki10<Yi107Uh1`0>Th1'`0CTh1Ac0*i107Qi1'KERBJRARC6`0"i1Rc(d04i1(B, 0,T4Q1'09Qi1906i1R07h1R9>::R'0JTh1'07Uh1d0Ah1(B +0,T*Q14`(9(B, ,Td0Ah105i1M'09Qh1'5SK09T105Q1G`M'(B - ,TJM:6RAARd04i1`EB(B! * ,T!RC7SJS`9R(B (copying) ---------------------- -0,T$Yh(B10,TAW(B1,TM(B0,T9Ui(B1,Td(B0,T4i(B10,TCQ(B1,T:!RC(B0,T>Q(B1,T29RAR`(B0,T;g(B1,T9CPBP`GER9R9(B, ,T`(B0,TCTh(B1,TA(B0,T5Qi(B1,T'a(B0,T5h(B10,T5i(B1,T9)(B0,T:Q(B1,T:(B0,T7Uh(B1,T`(B0,T"U(B1,TB9b4B(B Stuart Cracraft. +0,T$Yh10AW1M09Ui1d04i10CQ1:!RC0>Q129RAR`0;g19CPBP`GER9R9(B, ,T`0CTh1A05Qi1'a05h105i19)0:Q1:07Uh1`0"U1B9b4B(B Stuart Cracraft. -0,T$Yh(B10,TAW(B1,TM`GM(B0,TCl(B10,T*Q(B1,T9(B0,T9Ui(B1, ,T`(B0,T*h(B1,T9`(B0,T4U(B1,TBG(B0,T!Q(B1,T:(B GNU Emacs, ,Td(B0,T4i(B10,TCQ(B1,T:!RCJ'G9(B0,TJT(B1,T7(B0,T8Tl(B1, ,TaEP<9G!d(B0,TGi(B1,Tc9`(B0,T'Wh(B1,TM9d"c9(B -,T!RC`<Ba>(B0,TCh(B10,T4i(B1,TGB(B: +0,T$Yh10AW1M`GM0Cl10*Q1909Ui1(B, ,T`0*h19`04U1BG0!Q1:(B GNU Emacs, ,Td04i10CQ1:!RCJ'G90JT1708Tl1(B, ,TaEP<9G!d0Gi1c9`0'Wh1M9d"c9(B +,T!RC`<Ba>0Ch104i1GB(B: -,TJ'G9(B0,TET(B1,T"(B0,TJT(B1,T7(B0,T8Tl(B1 ,T>(B.,TH(B. 2528, 2529 ,Tb4B?(B0,TCU(B1,T+M?(B0,T5l(B1,TaG(B0,TCl(B1,T?RG(B0,T9l(B1,T`4(B0,T*Q(B1,T9(B (Free Software Foundation) +,TJ'G90ET1"0JT1708Tl1(B ,T>(B.,TH(B. 2528, 2529 ,Tb4B?0CU1+M?05l1aG0Cl1?RG09l1`40*Q19(B (Free Software Foundation) - 0,T7X(B1,T!(B0,T7h(B1,TR9(B0,TAU(B10,TJT(B1,T7(B0,T8Tl(B1,Tc9!RC7SJS`9RK(B0,TCW(B1,TM`<Ba>(B0,TCh(B1,T`M!JRC(B0,T9Ui(B1, ,Tc9(B0,T7X(B1,T!(B0,TJWh(B1,TM(B, ,Tb4B(B0,T5i(B1,TM'a9:(B0,T"i(B1,TM$GRAaJ4'(B - 0,TJT(B1,T7(B0,T8Tl(B1,TaEP!RCM(B0,T9X(B1,T-R5(B0,T9Ui(B1,Td;>(B0,TCi(B1,TMA(B0,T4i(B1,TGB(B. 0,T7Qi(B1,T'(B0,T9Ui(B1,T`(B0,T>Wh(B1,TM(B0,T*Ui(B1,Tc(B0,TKi(B1,T`(B0,TKg(B1,T9(B0,TGh(B1,TR(B0,T<Yi(B1,T`<Ba>(B0,TCh(B1,Td(B0,T4i(B1,TM(B0,T9X(B1,T-R5c(B0,TKi(B10,T<Yi(B10,T7Uh(B1,Td(B0,T4i(B10,TCQ(B1,T:(B - ,TJRARC67S!RC`<Ba>(B0,TCh(B10,T5h(B1,TMd;d(B0,T4i(B1,Tb4BMR(B0,THQ(B1,TB(B0,T"i(B1,TM$GRAc9`M!JRC(B0,T9Ui(B1. + 0,T7X1!07h1R90AU10JT1708Tl1c9!RC7SJS`9RK0CW1M`<Ba>0Ch1`M!JRC09Ui1(B, ,Tc907X1!0JWh1M(B, ,Tb4B05i1M'a9:0"i1M$GRAaJ4'(B + 0,TJT1708Tl1aEP!RCM09X1-R509Ui1d;>0Ci1MA04i1GB(B. 0,T7Qi1'09Ui1`0>Wh1M0*Ui1c0Ki1`0Kg190Gh1R0<Yi1`<Ba>0Ch1d04i1M09X1-R5c0Ki10<Yi107Uh1d04i10CQ1:(B + ,TJRARC67S!RC`<Ba>0Ch105h1Md;d04i1b4BMR0HQ1B0"i1M$GRAc9`M!JRC09Ui1(B. - ,T!RCM(B0,T9X(B1,T-R5(B0,T9Qi(B1,T9d(B0,T4i(B1,TCGA(B0,T6V(B1,T'(B0,TJT(B1,T7(B0,T8Tl(B1,Tc9!RC`<Ba>(B0,TCh(B1,T`GM(B0,TCl(B10,T*Q(B1,T9(B0,T7Uh(B1,T;(B0,TCQ(B1,T:;(B0,TCX(B1,T'a(B0,TEi(B1,TG(B, ,TK(B0,TCW(B1,TM(B0,TJh(B1,TG9K(B0,T9Vh(B1,T'"M'(B - ,T`M!JRC(B0,T9Ui(B1, ,T@RBc(B0,T5i(B1,T`(B0,T'Wh(B1,TM9d"(B0,T"i(B1,TR':9(B, ,T5EM4(9(B0,TJT(B1,T7(B0,T8Tl(B1,Tc9!RC:M!(B0,TGh(B1,TRc$C`(B0,T;g(B1,T9(B0,T<Yi(B1,T;(B0,TCQ(B1,T:;(B0,TCX(B1,T'(B0,TEh(B1,TR(B0,TJX(B1,T4(B. + ,T!RCM09X1-R509Qi19d04i1CGA06V1'0JT1708Tl1c9!RC`<Ba>0Ch1`GM0Cl10*Q1907Uh1;0CQ1:;0CX1'a0Ei1G(B, ,TK0CW1M0Jh1G9K09Vh1'"M'(B + ,T`M!JRC09Ui1(B, ,T@RBc05i1`0'Wh1M9d"0"i1R':9(B, ,T5EM4(90JT1708Tl1c9!RC:M!0Gh1Rc$C`0;g190<Yi1;0CQ1:;0CX1'0Eh1R0JX14(B. -,T`(B0,T'Wh(B1,TM9d""M'!RC7SJS`9R(B0,TMU(B1,TaA!(B0,TJl(B1,T(P(B0,T+Q(B1,T:(B0,T+i(B1,TM9AR!!(B0,TGh(B1,TR(B0,T9Ui(B1, ,Ta(B0,T5h(B10,TAU(B1,T`(59RCA(B0,T3l(B10,T7Uh(B1,T`K(B0,TAW(B1,TM9(B0,T!Q(B1,T9(B. ,T!(B0,TCX(B1,T3R(B -0,TMh(B1,TR9a(B0,T?i(B1,TA(B0,T"i(B1,TM(B0,TAY(B1,TE(B COPYING ,Ta(B0,TEi(B1,TG`<Ba>(B0,TCh(B1,TJS`9R"M'(B GNU Emacs ,Td;(B0,TBQ(B1,T'`(B0,T>Wh(B1,TM9f(B ,T"M'(B0,T7h(B1,TR9(B0,T4i(B1,TGB(B. -0,T*h(B1,TGB(B0,T!Q(B1,T97SERBCP::KG'+M?(B0,T5l(B1,TaG(B0,TCl(B1 (",TaJ4'$GRA`(B0,T;g(B1,T9`(B0,T(i(B1,TR(B0,T"i(B1,TRG`(B0,T(i(B1,TR"M'(B") 0,T4i(B1,TGB!RCc(B0,T*i(B1, -,T!RC`(B0,T"U(B1,TB9(B, ,TaEP!RC`(B0,T;g(B1,T9`(B0,T(i(B1,TR"M'(B0,TCh(B1,TGA(B0,T!Q(B1,T9"M'+M?(B0,T5l(B1,TaG(B0,TCl(B1,T`J(B0,TCU(B1 (free software). +,T`0'Wh1M9d""M'!RC7SJS`9R0MU1aA!0Jl1(P0+Q1:0+i1M9AR!!0Gh1R09Ui1(B, ,Ta05h10AU1`(59RCA03l107Uh1`K0AW1M90!Q19(B. ,T!0CX13R(B +0,TMh1R9a0?i1A0"i1M0AY1E(B COPYING ,Ta0Ei1G`<Ba>0Ch1JS`9R"M'(B GNU Emacs ,Td;0BQ1'`0>Wh1M9f(B ,T"M'07h1R904i1GB(B. +0,T*h1GB0!Q197SERBCP::KG'+M?05l1aG0Cl1(B (",TaJ4'$GRA`0;g19`0(i1R0"i1RG`0(i1R"M'(B") 0,T4i1GB!RCc0*i1(B, +,T!RC`0"U1B9(B, ,TaEP!RC`0;g19`0(i1R"M'0Ch1GA0!Q19"M'+M?05l1aG0Cl1`J0CU1(B (free software). -* 0,T5i(B1,T9)(B0,T:Q(B1,T:(B0,TGh(B1,TR(B0,T4i(B1,TGB`(B0,TCWh(B1,TM'!RC7SJS`9R(B +* 0,T5i19)0:Q1:0Gh1R04i1GB`0CWh1M'!RC7SJS`9R(B -------------------------- -0,T5h(B1,TMd;(B0,T9Ui(B1,T`(B0,T;g(B1,T9`M!JRC(B0,TGh(B1,TR(B0,T4i(B1,TGB`(B0,TCWh(B1,TM'!RC7SJS`9R(B0,T7Uh(B1,T`(B0,T;g(B1,T9(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B. ,T`M!JRC(B0,T9Ui(B1,T;CR!/M(B0,TBYh(B1,Tc9(B0,T$Yh(B10,TAW(B1,TM!RCc(B0,T*i(B1 -0,TMU(B1,TaA!(B0,TJl(B1,T)(B0,T:Q(B1,T:@RIR(B0,TMQ(B1,T'!DI(B, 0,T+Vh(B1,T'`(B0,T;g(B1,T9(B0,T5i(B1,T9)(B0,T:Q(B1,T:"M'`M!JRCa;E)(B0,T:Q(B1,T:(B0,T9Ui(B10,T4i(B1,TGB(B. +0,T5h1Md;09Ui1`0;g19`M!JRC0Gh1R04i1GB`0CWh1M'!RC7SJS`9R07Uh1`0;g1905i19)0:Q1:(B. ,T`M!JRC09Ui1;CR!/M0BYh1c90$Yh10AW1M!RCc0*i1(B +0,TMU1aA!0Jl1)0:Q1:@RIR0MQ1'!DI(B, 0,T+Vh1'`0;g1905i19)0:Q1:"M'`M!JRCa;E)0:Q1:09Ui104i1GB(B. This tutorial descends from a long line of Emacs tutorials starting with the one written by Stuart Cracraft for the original Emacs. @@ -988,19 +988,19 @@ GNU Emacs to your friends. Help stamp out software obstructionism ("ownership") by using, writing, and sharing free software! -* ,T$S(B0,TJh(B1,T'(B0,T7i(B1,TRB(B +* ,T$S0Jh1'07i1RB(B --------- -0,T$Yh(B10,TAW(B1,TM)(B0,T:Q(B1,T:(B0,T9Ui(B1,Td(B0,T4i(B1,Ta;E(R!(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B0,T7Uh(B1,T`(B0,T;g(B1,T9@RIR(B0,TMQ(B1,T'!DI(B, 0,T+Vh(B1,T'(P;CR!/M(B0,TBYh(B1,Tc9(B0,TMU(B1,TaA!(B0,TJl(B1,T`GM(B0,TCl(B10,T*Q(B1,T9(B 20.4. -0,T<Yi(B1,Ta;Ed(B0,T4i(B1,T7S!RCa;E(B0,T"Vi(B1,T9ARcK(B0,TAh(B1,T`(B0,T9Wh(B1,TM'(R!)(B0,T:Q(B1,T:`(B0,T!h(B1,TR(B0,T7Uh(B1,T`(B0,T;g(B1,T9@RIRd7B(B, 0,T+Vh(B1,T'a;Eb4B(B ,T4C(B.,TAR9>(B ,TG'(B0,THl(B1 -,TJRB(B0,TJX(B1,TGCC3(B, ,Td(B0,T4i(B10,TMT(B1,T'(B0,T$Yh(B10,TAW(B1,TM"M'(B0,TMU(B1,TaA!(B0,TJl(B1,T`GM(B0,TCl(B10,T*Q(B1,T9`(B0,T!h(B1,TR(B, ,TaEP"3P(B0,T9Ui(B10,TMU(B1,TaA!(B0,TJl(B1,T`GM(B0,TCl(B10,T*Q(B1,T9(B 20.4 0,T!g(B1,Td(B0,T4i(B1 -,T`;(B0,TEUh(B1,TB9a;E'd;AR!a(B0,TEi(B1,TG(B. ,T9M!(R!(B0,T9Ui(B1, 0,T<Yi(B1,Ta;E(B0,TBQ(B1,T'd(B0,T4i(B1,T9S`$(B0,TCWh(B1,TM'KARBGCC$5M9ARc(B0,T*i(B1,Tc9(B0,T7Uh(B10,T9Ui(B10,T4i(B1,TGB(B, -0,T7Qi(B1,T'(B0,T9Ui(B10,T!g(B1,T`(B0,T>Wh(B1,TM(B0,T7Uh(B1,T(P`(B0,T"U(B1,TB9c(B0,TKi(B1,Td(B0,T4i(B1,T$GRA(B0,T7Uh(B10,T*Q(B1,T4`(9(B. ,TK(B0,TGQ(B1,T'`(B0,T;g(B1,T9M(B0,TBh(B1,TR'(B0,TBTh(B1,T'(B0,TGh(B1,TR(B0,T$Yh(B10,TAW(B1,TM)(B0,T:Q(B1,T:(B0,T9Ui(B1,T(P`(B0,T;g(B1,T9;CPbB*(B0,T9l(B1 -,TaEP(Pd(B0,T4i(B10,TCQ(B1,T:!RCa(B0,T!i(B1,Td"c(B0,TKi(B10,T4U(B10,TBTh(B1,T'f(B 0,T"Vi(B1,T9(B0,TMU(B1,T!(B0,T5h(B1,TMf(B ,Td;(B. ,T"M"M:(B0,T$X(B1,T3(B 0,T$X(B1,T3(B0,T7Q(B1,TH(B0,T9U(B10,TBl(B1 ,T`((B0,TCT(B1,T->C(B 0,T7Uh(B1,Tc(B0,TKi(B1,T$GRA(B -0,T*h(B1,TGB`K(B0,TEW(B1,TM5CG(JM:(B0,T5i(B1,T9)(B0,T:Q(B1,T:(B. +0,T$Yh10AW1M)0:Q1:09Ui1d04i1a;E(R!05i19)0:Q1:07Uh1`0;g19@RIR0MQ1'!DI(B, 0,T+Vh1'(P;CR!/M0BYh1c90MU1aA!0Jl1`GM0Cl10*Q19(B 20.4. +0,T<Yi1a;Ed04i17S!RCa;E0"Vi19ARcK0Ah1`09Wh1M'(R!)0:Q1:`0!h1R07Uh1`0;g19@RIRd7B(B, 0,T+Vh1'a;Eb4B(B ,T4C(B.,TAR9>(B ,TG'0Hl1(B +,TJRB0JX1GCC3(B, ,Td04i10MT1'0$Yh10AW1M"M'0MU1aA!0Jl1`GM0Cl10*Q19`0!h1R(B, ,TaEP"3P09Ui10MU1aA!0Jl1`GM0Cl10*Q19(B 20.4 0,T!g1d04i1(B +,T`;0EUh1B9a;E'd;AR!a0Ei1G(B. ,T9M!(R!09Ui1(B, 0,T<Yi1a;E0BQ1'd04i19S`$0CWh1M'KARBGCC$5M9ARc0*i1c907Uh109Ui104i1GB(B, +0,T7Qi1'09Ui10!g1`0>Wh1M07Uh1(P`0"U1B9c0Ki1d04i1$GRA07Uh10*Q14`(9(B. ,TK0GQ1'`0;g19M0Bh1R'0BTh1'0Gh1R0$Yh10AW1M)0:Q1:09Ui1(P`0;g19;CPbB*09l1(B +,TaEP(Pd04i10CQ1:!RCa0!i1d"c0Ki104U10BTh1'f(B 0,T"Vi190MU1!05h1Mf(B ,Td;(B. ,T"M"M:0$X13(B 0,T$X1307Q1H09U10Bl1(B ,T`(0CT1->C(B 0,T7Uh1c0Ki1$GRA(B +0,T*h1GB`K0EW1M5CG(JM:05i19)0:Q1:(B. 22 ,TA!CR$A(B 2542 -0,TGT(B10,TCQ(B1,T*(B ,THC`(B0,TET(B1,TH(B0,TEi(B1,TSGR(B0,T3T(B1,T*(B +0,TGT10CQ1*(B ,THC`0ET1H0Ei1SGR03T1*(B virach@nectec.or.th Translate - January 1999 by Virach Sornlertlamvanich diff --git a/etc/WHY-FREE b/etc/WHY-FREE index c4faf7205b6..0678d99ddb7 100644 --- a/etc/WHY-FREE +++ b/etc/WHY-FREE @@ -1,4 +1,4 @@ - Why Software Should Not Have Owners + Why Software Should Not Have Owners by Richard Stallman diff --git a/etc/Xkeymap.txt b/etc/Xkeymap.txt index 07ecf6e8b10..31aef8bdacb 100644 --- a/etc/Xkeymap.txt +++ b/etc/Xkeymap.txt @@ -91,7 +91,7 @@ 0367 '\\', '\\', '|', '|', 0334, 0334, 0374, 0374, 0034, 0034, 0034, 0034, 0334, 0334, 0334, 0334, /* \ */ 0371 '-', '-', '_', '_', 0255, 0255, 0337, 0337, 0037, 0037, 0037, 0037, 0337, 0337, 0337, 0337, /* - */ 0372 '[', '[', '{', '{', 0333, 0333, 0373, 0373, 0033, 0033, 0033, 0033, 0333, 0333, 0333, 0333, /* [ */ -0373 '\'', '\'', '"', '"', 0247, 0247, 0242, 0242, U, U, U, U, U, U, U, U, /* ' */ +0373 '\'', '\'', '"', '"', 0247, 0247, 0242, 0242, U, U, U, U, U, U, U, U, /* ' */ # # local variables: # tab-width: 4 diff --git a/etc/calccard.tex b/etc/calccard.tex index 1fcff752735..ae999c8869f 100644 --- a/etc/calccard.tex +++ b/etc/calccard.tex @@ -91,7 +91,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -167,7 +167,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters @@ -466,7 +466,7 @@ Common units: \iline{distance: \kbd{m}, \kbd{cm}, \kbd{mm}, \kbd{km}; \kbd{in}, \kbd{ft}, \kbd{mi}, \kbd{mfi}; \kbd{point}, \kbd{lyr}} -\iline{volume: \kbd{l} or \kbd{L}, \kbd{ml}; +\iline{volume: \kbd{l} or \kbd{L}, \kbd{ml}; \kbd{gal}, \kbd{qt}, \kbd{pt}, \kbd{cup}, \kbd{floz}, \kbd{tbsp}, \kbd{tsp}} \iline{mass: \kbd{g}, \kbd{mg}, \kbd{kg}, \kbd{t}; diff --git a/etc/condom.1 b/etc/condom.1 index 88f4c6c044a..0ccdbdf5247 100644 --- a/etc/condom.1 +++ b/etc/condom.1 @@ -3,7 +3,7 @@ CONDOM(1) EUNUCH Programmer's Manual CONDOM(1) NAME - condom - Protection against viruses and prevention of child + condom - Protection against viruses and prevention of child processes SYNOPSIS @@ -62,8 +62,8 @@ OPTIONS latex (default) saranwrap membrane -- WARNING! The membrane option is _not_ - endorsed by the System Administrator General as an - effective barrier against certain viruses. It is + endorsed by the System Administrator General as an + effective barrier against certain viruses. It is supported only for the sake of tradition. -f FLAVOR The following FLAVORs are currently supported... @@ -90,7 +90,7 @@ OPTIONS A smaller value of STRENGTH increases interprocess communication, but also increases the likelihood of a security breach. An extremely vigorous process or - one passing an enormous amount of data to _condom_ + one passing an enormous amount of data to _condom_ will increase the chance of _condom_'s failure. The default STRENGTH is 80%. @@ -99,7 +99,7 @@ OPTIONS rough (default) ribbed bumps - lubricated (provides smoother interaction between + lubricated (provides smoother interaction between processes) WARNING: The use of an external application to _condom_ in @@ -116,9 +116,9 @@ DIAGNOSTICS the synchronous process). 1 _condom_ failed and data was allowed through. The - danger of transmission of an STV or the forking of a child - process is inversely proportional to the number of other - protections employed and is directly proportional to + danger of transmission of an STV or the forking of a child + process is inversely proportional to the number of other + protections employed and is directly proportional to the ages of the processes involved. BUGS diff --git a/etc/cs-refcard.tex b/etc/cs-refcard.tex index 3b02f2715bc..893557c4689 100644 --- a/etc/cs-refcard.tex +++ b/etc/cs-refcard.tex @@ -96,7 +96,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -174,7 +174,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters diff --git a/etc/cs-survival.tex b/etc/cs-survival.tex index 42e6130a266..6a170e06aa0 100644 --- a/etc/cs-survival.tex +++ b/etc/cs-survival.tex @@ -2,8 +2,8 @@ % Title: GNU Emacs Survival Card % Author: Wlodek Bzyl <matwb@univ.gda.pl> % -% $Revision: 1.8 $ -% $Date: 2000/05/05 22:00:48 $ +% $Revision: 1.1 $ +% $Date: 2001/04/18 13:59:16 $ % %**start of header @@ -14,7 +14,7 @@ % optional paragraphs separated with \askip amount of vertical space % \key{KEY-NAME} description of key or % \mkey{M-x LONG-LISP-NAME} description of Elisp function -% +% % \kbd{ARG} -- argument is typed literally \def\plainfmtname{plain} @@ -22,7 +22,7 @@ \else \errmessage{This file requires `plain' format to be typeset correctly} \endinput -\fi +\fi % Copyright (c) 2000 Free Software Foundation, Inc. @@ -93,7 +93,7 @@ % The TeXbook, p. 257 \let\lr=L \newbox\leftcolumn -\output={\if L\lr +\output={\if L\lr \global\setbox\leftcolumn\columnbox \global\let\lr=R \else \doubleformat \global\let\lr=L\fi} @@ -107,7 +107,7 @@ \def\bye{\par\vfil\supereject \if R\lr \null\vfil\eject\fi - \end} + \end} \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus 0.5ex \centerline{\ss#2} @@ -136,7 +136,7 @@ \def\nohyphens {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000} \def\raggedspaces - {\spaceskip=0.3333em\relax + {\spaceskip=0.3333em\relax \xspaceskip=0.5em\relax} \def\raggedright {\raggedstretch=6em diff --git a/etc/de-refcard.tex b/etc/de-refcard.tex index 06002ae0bd6..5931436933e 100644 --- a/etc/de-refcard.tex +++ b/etc/de-refcard.tex @@ -81,7 +81,7 @@ are preserved on all copies. \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -161,7 +161,7 @@ are preserved on all copies. \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters @@ -590,7 +590,7 @@ Sonstige: \section{Einfaches Konfigurieren} -% Das ist nur was fuer Leute die Lisp beherrschen +% Das ist nur was fuer Leute die Lisp beherrschen Ein Beispiel dafuer, wie man Tastenkombinationen definiert: diff --git a/etc/edt-user.doc b/etc/edt-user.doc index bce593ad6ca..07f18dfb8f9 100644 --- a/etc/edt-user.doc +++ b/etc/edt-user.doc @@ -39,10 +39,10 @@ Enhancements section below for the details. Quick Start: -To start the EDT Emulation, first start Emacs and then enter +To start the EDT Emulation, first start Emacs and then enter M-x edt-emulation-on - + to begin the emulation. After initialization is complete, the following message will appear below the status line informing you that the emulation has been enabled: "Default EDT keymap active". @@ -64,7 +64,7 @@ edt.el - EDT Emulation Functions and Default Configuration edt-lk201.el - Built-in support for DEC LK-201 Keyboards edt-vt100.el - Built-in support for DEC VT-100 (and above) terminals edt-pc.el - Built-in support for PC 101 Keyboards under MS-DOS -edt-mapper.el - Create an EDT LK-201 Map File for Keyboards Without +edt-mapper.el - Create an EDT LK-201 Map File for Keyboards Without Built-in Support Enhancements: @@ -80,7 +80,7 @@ Version 4.0 contains the following enhancements: following line (edt-set-scroll-margins "20%" "25%") - + sets the top margin to 20% of the window and the bottom margin to 25% of the window. To disable this feature, set each margin to 0%. You can also invoke edt-set-scroll-margins @@ -90,13 +90,13 @@ Version 4.0 contains the following enhancements: NOTE: Another way to set the scroll margins is to use the Emacs customization feature (not available in Emacs 19) to set the following two variables directly: - + edt-top-scroll-margin and edt-bottom-scroll-margin Enter the Emacs `customize' command. First select the Editing group and then select the Emulations group. Finally, select the Edt group and follow the directions. - + 2. The SUBS command is now supported and bound to GOLD-Enter by default. (This design was copied from tpu-edt.el.) Note, in earlier versions of EDT Emulation, GOLD-Enter was assigned to @@ -152,7 +152,7 @@ Goals: 1. Emulate EDT Keypad Mode commands closely so that current EDT users will find that it easy and comfortable to use GNU Emacs with a small learning curve; - + 2. Make it easy for a user to customize EDT emulation key bindings without knowing much about Emacs Lisp; @@ -164,7 +164,7 @@ Goals: 5. Provide an easy way to restore ALL original Emacs key bindings, just as they existed before the EDT emulation was first invoked. - + 6. Support GNU Emacs 19 and higher. (GNU Emacs 18 and below is no longer supported.) XEmacs 19, and above, is also supported. @@ -191,9 +191,9 @@ support for the following terminals/keyboards is provided: (1) DEC VT-100 series and higher. This includes well behaved VT clones and emulators. If you are using a VT series terminal, be sure that the term - environment variable is set properly before invoking emacs. + environment variable is set properly before invoking emacs. - (2) PC AT keyboard under MS-DOS. + (2) PC AT keyboard under MS-DOS. Be sure to read the SPECIAL NOTES FOR SOME PLATFORMS sections to see if those notes apply to you. @@ -251,14 +251,14 @@ IV. SPECIAL NOTES FOR SOME PLATFORMS: The Sun Type 5 and other more recent Sun keyboards, however, do have separate arrow keys. This makes them candidates for setting up a - reasonable EDT keypad emulation. + reasonable EDT keypad emulation. Depending upon the configuration of the version of X installed on your system, you may find the default X keynames for the keypad keys don't permit Emacs to interpret some or all the keypad keys as something other than arrow keys, numeric keys, Home, PgUP, etc. Both Sun and HP have been particularly guilty of making bizarre keysym assignments to the keypad - keys. + keys. In most cases, the X Windows command, xmodmap, can be used to correct the problem. Here's a sample .xmodmaprc file which corrects this problem on @@ -303,7 +303,7 @@ IV. SPECIAL NOTES FOR SOME PLATFORMS: changes the X Windows name of the keypad NumLock key to be known internally as the F24 key. Doing so permits it to be configured to behave - as the PF1 (Gold) key. + as the PF1 (Gold) key. The side effect of this change is that you will no longer have a NumLock key. If you are using other software under X which requires a NumLock @@ -332,11 +332,11 @@ IV. SPECIAL NOTES FOR SOME PLATFORMS: xmodmap. On one distribution on an Intel PC, the following .xmodmaprc set things up - nicely. + nicely. ! File: .xmodmaprc ! - ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation + ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation ! clear mod2 keycode 77 = F12 @@ -411,7 +411,7 @@ IV. SPECIAL NOTES FOR SOME PLATFORMS: ! File: .xmodmaprc ! - ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation + ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation ! clear mod2 keycode 77 = F12 @@ -424,7 +424,7 @@ IV. SPECIAL NOTES FOR SOME PLATFORMS: Now, edt-mapper.el will see "f12" when the physical NumLock key is pressed, allowing the NumLock key to be used as the EDT PF1 - (Gold) key. + (Gold) key. V. HOW DOES THIS EDT EMULATION DIFFER FROM REAL EDT?: @@ -432,7 +432,7 @@ In general, you will find that this emulation of EDT replicates most, but not all, of EDT's most used Keypad Mode editing functions and behavior. It is not perfect, but most EDT users who have tried the emulation agree that it is quite good enough to make it easy for die-hard EDT users to move over to using -GNU Emacs. +GNU Emacs. Here's a list of the most important differences between EDT and this GNU Emacs EDT Emulation. The list is short but you must be aware of these differences @@ -497,7 +497,7 @@ VI. SOME HIGHLIGHTS IN THIS EDT EMULATION, AND SOME COMPARISONS TO THE to GOLD C-k in the default EDT mode when EDT control sequence bindings are enabled or one of the sample edt-user.el customization files is used. -2. Direction support is fully supported. +2. Direction support is fully supported. 3. All original Emacs bindings are fully restored when EDT emulation is turned off. So, if a fellow worker comes over to your terminal to help you with a @@ -570,12 +570,12 @@ VI. SOME HIGHLIGHTS IN THIS EDT EMULATION, AND SOME COMPARISONS TO THE 15. The original EDT emulation package set up many default regular and GOLD bindings. We tried to preserve most (but not all!) of these, so users of - the original emulation package will feel more at home. + the original emulation package will feel more at home. Nevertheless, there are still many GOLD key sequences which are not bound - to any functions. These are prime candidates to use for your own - customizations. - + to any functions. These are prime candidates to use for your own + customizations. + Also, there are several commands in edt.el not bound to any key. So, you will find it worthwhile to look through edt.el for functions you may wish to add to your personal customized bindings. @@ -630,7 +630,7 @@ you should add it to the GNU Emacs load path. NOTE: A few sites have different load-path requirements, so the above directions may need some modification if your site has such special - needs. + needs. Creating your own edt-user.el file: @@ -640,11 +640,11 @@ You should use it as a guide to learn how you can customize EDT emulation bindings to your own liking. Names used to identify the set of LK-201 keypad and function keys are: -Keypad Keys: +Keypad Keys: PF1 PF2 PF3 PF4 KP7 KP8 KP9 KP- KP4 KP5 KP6 KP, - KP1 KP2 KP3 + KP1 KP2 KP3 KP0 KPP KPE Arrow Keys: @@ -654,7 +654,7 @@ Function Keys: F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 HELP DO F17 F18 F19 F20 - FIND INSERT REMOVE + FIND INSERT REMOVE SELECT PREVIOUS NEXT Note: @@ -737,7 +737,7 @@ of the window. To change these settings, you can invoke the function edt-set-scroll-margins in your .emacs file. For example, the following line (edt-set-scroll-margins "20%" "25%") - + sets the top margin to 20% of the window and the bottom margin to 25% of the window. To disable this feature, set each margin to 0%. You can also invoke edt-set-scroll-margins interactively while EDT Emulation is active to change @@ -746,7 +746,7 @@ the settings for that session. NOTE: Another way to set the scroll margins is to use the Emacs customization feature (not available in Emacs 19) to set the following two variables directly: - + edt-top-scroll-margin and edt-bottom-scroll-margin Enter the Emacs `customize' command. First select the Editing group and then @@ -762,7 +762,7 @@ directions. G-F9: Paste Rect Insert +----------+----------+----------+----------+ F10: Cut Rectangle G-F10: Paste Rectangle - F11: ESC + F11: ESC F12: Beginning of Line +----------+----------+----------+----------+ G-F12: Delete Other Windows | GOLD | HELP | FNDNXT | DEL L | F13: Delete to Begin of Word | (PF1) | (PF2) | (PF3) | (PF4) | @@ -784,7 +784,7 @@ G-C-k: Restore Key | WORD | EOL | CHAR | Next | C-t: Display the Time | (0) | (.) | Query | C-u: Delete to Begin of Line | Open Line | RESET | Replace | C-v: Redraw Display +---------------------+----------+----------+ - C-w: Set Screen Width 132 + C-w: Set Screen Width 132 C-z: Suspend Emacs +----------+----------+----------+ G-C-\: Split Window | FNDNXT | Yank | CUT | | (FIND) | (INSERT) | (REMOVE) | @@ -817,9 +817,9 @@ G-C-\: Split Window | FNDNXT | Yank | CUT | G-`: What line G-/: Query-Replace -;;; File: edt-user.el --- Sample User Customizations for the Enhanced -;;; EDT Keypad Mode Emulation -;;; +;;; File: edt-user.el --- Sample User Customizations for the Enhanced +;;; EDT Keypad Mode Emulation +;;; ;;; For GNU Emacs 19 and Above ;;; ;; Copyright (C) 1986, 1992, 1993, 2000 Free Software Foundation, Inc. @@ -875,7 +875,7 @@ G-C-\: Split Window | FNDNXT | Yank | CUT | (edt-bind-function-key "KP6" 'edt-cut-or-copy 'yank) (edt-bind-function-key "KP8" 'edt-scroll-window 'fill-paragraph) (edt-bind-function-key "KP9" 'open-line 'edt-eliminate-all-tabs) - (edt-bind-function-key "KPP" + (edt-bind-function-key "KPP" 'edt-toggle-select 'edt-line-to-middle-of-window) (edt-bind-function-key "KPE" 'edt-change-direction 'overwrite-mode) @@ -916,7 +916,7 @@ G-C-\: Split Window | FNDNXT | Yank | CUT | F8: Cut Rect Overstrike | (UP) | (DOWN) | (LEFT) | (RIGHT) | G-F8: Paste Rect Overstrike |Window Top|Window Bot|Bkwd Sent |Frwd Sent | F9: Cut Rect Insert +----------+----------+----------+----------+ - G-F9: Paste Rect Insert + G-F9: Paste Rect Insert F10: Cut Rectangle G-F10: Paste Rectangle F11: ESC +----------+----------+----------+----------+ @@ -940,7 +940,7 @@ G-C-h: Emacs Help | CHNGCASE | DEL EOL | COPY | | C-k: Define Key | (0) | (.) | Toggle | G-C-k: Restore Key | Open Line |Center Lin|Insrt/Over| C-l: Learn +---------------------+----------+----------+ - C-n: Set Screen Width 80 + C-n: Set Screen Width 80 C-o: Open Line +----------+----------+----------+ C-p: Fill Paragraph | FNDNXT | Yank | CUT | C-q: Quoted Insert | (FIND)) | (INSERT) | (REMOVE) | diff --git a/etc/emacs.1 b/etc/emacs.1 index 2a0c0e962e2..37d0c4b6480 100644 --- a/etc/emacs.1 +++ b/etc/emacs.1 @@ -32,9 +32,9 @@ emacs \- GNU project Emacs .br .SH DESCRIPTION .I GNU Emacs -is a version of +is a version of .I Emacs, -written by the author of the original (PDP-10) +written by the author of the original (PDP-10) .I Emacs, Richard Stallman. .br @@ -46,8 +46,8 @@ maintainers' priority goal is to minimize the amount of time this man page takes away from other more useful projects. .br The user functionality of GNU Emacs encompasses -everything other -.I Emacs +everything other +.I Emacs editors do, and it is easily extensible since its editing commands are written in Lisp. .PP @@ -58,8 +58,8 @@ but the facility assumes that you know how to manipulate windows and buffers. CTRL-h or F1 enters the Help facility. Help Tutorial (CTRL-h t) requests an interactive tutorial which can teach beginners the fundamentals -of -.I Emacs +of +.I Emacs in a few minutes. Help Apropos (CTRL-h a) helps you find a command given its functionality, Help Character (CTRL-h c) @@ -114,7 +114,7 @@ Do not load an init file. Do not load the site-wide startup file. .TP .BI \-debug-init -Enable +Enable .I Emacs Lisp debugger during the processing of the user init file .BI ~/.emacs. @@ -161,14 +161,14 @@ option must be the first in the argument list. You must use -l and -f options to specify files to execute and functions to call. .TP .B \-kill -Exit -.I Emacs +Exit +.I Emacs while in batch mode. .TP .BI \-L " directory" Add .I directory -to the list of directories +to the list of directories .I Emacs searches for Lisp files. .\" START DELETING HERE IF YOU'RE NOT USING X @@ -240,7 +240,7 @@ Defaults to one pixel on each side of the window. .TP .BI \-ib " pixels" Set the window's internal border width to the number of pixels specified -by +by .I pixels. Defaults to one pixel of padding on each side of the window. .PP @@ -384,7 +384,7 @@ the background color will be set to white, the border color will be set to grey, and the text and mouse cursors will be set to black. .PP -.SM Using the Mouse +.SM Using the Mouse .PP The following lists the mouse button bindings for the .I Emacs @@ -400,13 +400,13 @@ SHIFT-middle Cut text into X cut buffer. SHIFT-right Paste text. CTRL-middle Cut text into X cut buffer and kill it. CTRL-right T{ -Select this window, then split it into +Select this window, then split it into two windows. Same as typing CTRL-x 2. T} .\" START DELETING HERE IF YOU'RE NOT USING X MENUS CTRL-SHIFT-left T{ X buffer menu--hold the buttons and keys -down, wait for menu to appear, select +down, wait for menu to appear, select buffer, and release. Move mouse out of menu and release to cancel. T} @@ -440,7 +440,7 @@ manual is included in a convenient tree structured form. /usr/local/share/emacs/$VERSION/lisp - Lisp source files and compiled files that define most editing commands. Some are preloaded; others are autoloaded from this directory when used. - + /usr/local/share/emacs/$VERSION/etc - various programs that are used with GNU Emacs, and some files of information. @@ -495,15 +495,15 @@ Bugs that I know about are: shell will not work with programs running in Raw mode on some Unix versions. .SH UNRESTRICTIONS .PP -.I Emacs -is free; anyone may redistribute copies of -.I Emacs +.I Emacs +is free; anyone may redistribute copies of +.I Emacs to -anyone under the terms stated in the -.I Emacs +anyone under the terms stated in the +.I Emacs General Public License, -a copy of which accompanies each copy of -.I Emacs +a copy of which accompanies each copy of +.I Emacs and which also appears in the reference manual. .PP @@ -514,11 +514,11 @@ but it is never included in the scope of any license covering those systems. Such inclusion violates the terms on which distribution is permitted. In fact, the primary purpose of the General Public License is to prohibit anyone from attaching any other restrictions -to redistribution of +to redistribution of .I Emacs. .PP -Richard Stallman encourages you to improve and extend -.I Emacs, +Richard Stallman encourages you to improve and extend +.I Emacs, and urges that you contribute your extensions to the GNU library. Eventually GNU (Gnu's Not Unix) will be a complete replacement for Berkeley @@ -532,7 +532,7 @@ X(1), xlsfonts(1), xterm(1), xrdb(1) was written by Richard Stallman and the Free Software Foundation. Joachim Martillo and Robert Krawitz added the X features. .SH COPYING -Copyright +Copyright .if t \(co .if n (c) 1995, 1999, 2000, 2001 Free Software Foundation, Inc. diff --git a/etc/emacs.bash b/etc/emacs.bash index f47ba6e9ec4..5648a0b1952 100644 --- a/etc/emacs.bash +++ b/etc/emacs.bash @@ -7,7 +7,7 @@ # This function assumes the emacs program is named `emacs' and is somewhere # in your load path. If either of these is not true, the most portable # (and convenient) thing to do is to make an alias called emacs which -# refers to the real program, e.g. +# refers to the real program, e.g. # # alias emacs=/usr/local/bin/gemacs # @@ -33,7 +33,7 @@ function edit () x ) (emacs "$@" &) ;; sun ) (emacstool "$@" &) ;; esac - else + else if jobs %emacs 2> /dev/null ; then echo "$(pwd)" "$@" >| ${HOME}/.emacs_args && fg %emacs else diff --git a/etc/fr-drdref.tex b/etc/fr-drdref.tex index 985a7d440de..2a5e549eb84 100644 --- a/etc/fr-drdref.tex +++ b/etc/fr-drdref.tex @@ -34,8 +34,8 @@ % This is a bit of a dirty hack on the GNU Emacs reference card % to produce a Dired reference card instead. -% I (Evgeny Roubinchtein, eroubinc@u.washington.edu) put this together -% because I wanted a Dired reference card, +% I (Evgeny Roubinchtein, eroubinc@u.washington.edu) put this together +% because I wanted a Dired reference card, % but couldn't find anything on the 'net. % Based mostly off Dired's describe-mode. @@ -75,7 +75,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -153,7 +153,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters @@ -259,18 +259,18 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. % L'\'edition d'un r\'epertoire signifie que vous pouvez visiter, % renommer, copier, compresser, compiler des fichiers. Dans le tampon % d'\'edition, vous pouvez modifier les attributs des fichiers, leur -% appliquer des commandes +% appliquer des commandes % shell ou ins\'erer des sous-r\'epertoires. Vous pouvez « marquer » des % fichiers pour qu'ils soient supprim\'es plus tard ou pour leur % appliquer des commandes ; cela peut \^etre fait pour un seul fichier \`a % la fois ou pour un ensemble de fichiers correspondant \`a certains % crit\`eres (fichiers correspondant \`a une expression rationnelle % donn\'ee, par exemple). - + % On se d\'eplace dans le tampon \`a l'aide des commandes habituelles de % d\'eplacement du curseur. Les lettres ne s'ins\`erent plus mais servent % \`a ex\'ecuter des commandes, les chiffres (0-9) sont des param\`etres pr\'efixes. - + % La plupart des commandes agissent soit sur tous les fichiers marqu\'es, % soit sur le fichier courant s'il n'y a pas de fichier marqu\'e. On % utilise un param\`etre pr\'efixe pour agir sur les NUM fichiers suivants @@ -280,7 +280,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. % sous-processus sur un groupe de fichiers afficheront une liste des % fichiers pour lesquels le sous-processus a \'echou\'e. Taper y tentera % de vous expliquer ce qui a pos\'e probl\`eme. - + % Lorsque l'on \'edite plusieurs fichiers dans un unique tampon, chaque % r\'epertoire agit comme une page : C-x [ et C-x ] peuvent donc servir % \`a se d\'eplacer dans ces r\'epertoires. @@ -305,7 +305,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \section{Commandes avec la souris} \metax{visiter le fichier}{Mouse_Button_2} -\metax{ouvrir un menu}{Control-Mouse_Button_3} +\metax{ouvrir un menu}{Control-Mouse_Button_3} \section{Actions immediates sur les fichiers} @@ -371,10 +371,10 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \key{placer un flag sur tous les fichiers de sauvegarde automatique}{\#} \key{placer un flag sur les diff\'erents fichiers interm\'ediaires}{\&} \key{placer un flag sur les sauvegardes num\'erot\'ees (finissant par - .\~{}1\~{}, .\~{}2\~{}, etc.)}{.} + .\~{}1\~{}, .\~{}2\~{}, etc.)}{.} \key{ex\'ecuter les suppressions demand\'ees (fichiers ayant un flag)}{x} \key{placer un flag sur les fichiers correspondant \`a une expression - rationnelle }{\% d} + rationnelle }{\% d} \section{Modifier le tampon Dired} @@ -391,7 +391,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \section{Commandes sur les expressions rationnelles} \key{marquer les noms de fichiers correspondant \`a une expression - rationnelle}{\% m} + rationnelle}{\% m} \key{copier les fichiers marqu\'es par une expression rationnelle}{\% C} \key{renommer les fichiers marqu\'es par une expression rationnelle}{\% R} \key{lien physique}{\% H} @@ -401,7 +401,7 @@ Foundation, Inc., 675 Massachusetts Ave, Cambridge MA 02139. \section{Dired et Find} \metax{fichier(s) dired dont le nom correspond \`a un motif}{M-x - find-names-dired} + find-names-dired} \metax{fichier(s) dired contenant un motif}{M-x find-grep-dired} \metax{fichier(s) dired bas\'es sur ce que produit \kbd{find}}{M-x find-dired} diff --git a/etc/fr-refcard.tex b/etc/fr-refcard.tex index 7b47e53ff34..d4b4fdf372a 100644 --- a/etc/fr-refcard.tex +++ b/etc/fr-refcard.tex @@ -85,7 +85,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -163,7 +163,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters diff --git a/etc/fr-survival.tex b/etc/fr-survival.tex index 7a039b862a5..a53f06b6a85 100644 --- a/etc/fr-survival.tex +++ b/etc/fr-survival.tex @@ -3,8 +3,8 @@ % Title: GNU Emacs Survival Card % Author: Wlodek Bzyl <matwb@univ.gda.pl> % -% $Revision: 1.8 $ -% $Date: 2000/05/05 22:00:48 $ +% $Revision: 1.1 $ +% $Date: 2001/11/18 18:33:57 $ % %**start of header @@ -15,7 +15,7 @@ % optional paragraphs separated with \askip amount of vertical space % \key{KEY-NAME} description of key or % \mkey{M-x LONG-LISP-NAME} description of Elisp function -% +% % \kbd{ARG} -- argument is typed literally \def\plainfmtname{plain} @@ -23,7 +23,7 @@ \else \errmessage{This file requires `plain' format to be typeset correctly} \endinput -\fi +\fi % Copyright (c) 2000 Free Software Foundation, Inc. @@ -57,7 +57,7 @@ Traduction fran\c{c}aise \'Eric Jacoboni (jaco@teaser.fr) Vous pouvez faire et distribuer des copies de cette carte, pourvu - que la note de copyright, ainsi que cette notice soient + que la note de copyright, ainsi que cette notice soient pr\'eserv\'ees sur toutes les copies.\par}} \hsize 3.2in @@ -88,7 +88,7 @@ % The TeXbook, p. 257 \let\lr=L \newbox\leftcolumn -\output={\if L\lr +\output={\if L\lr \global\setbox\leftcolumn\columnbox \global\let\lr=R \else \doubleformat \global\let\lr=L\fi} @@ -102,7 +102,7 @@ \def\bye{\par\vfil\supereject \if R\lr \null\vfil\eject\fi - \end} + \end} \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus 0.5ex \centerline{\ss#2} @@ -131,7 +131,7 @@ \def\nohyphens {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000} \def\raggedspaces - {\spaceskip=0.3333em\relax + {\spaceskip=0.3333em\relax \xspaceskip=0.5em\relax} \def\raggedright {\raggedstretch=6em @@ -247,7 +247,7 @@ tel fichier, tapez `{\tt etags} {\it fichier\_entr\'ee}' \`a l'invite du shell. \mkey{M-x tags-query-replace} lance query-replace sur tous les fichiers enregistr\'es dans le tableau des marqueurs \key{M-,} continue la derni\`ere recherche de marqueurs ou le dernier -query-replace +query-replace \section{Compilation} @@ -314,9 +314,9 @@ Les r\'eponses correctes dans le mode query-replace sont : \key{[\^{}$\ldots$]} compl\'emente la classe \key{\\{\it c}} prot\`ege les caract\`eres qui, sinon, auraient une - signification sp\'eciale dans les expressions rationnelles. + signification sp\'eciale dans les expressions rationnelles. -\key{$\ldots$\\|$\ldots$\\|$\ldots$} correspond \`a une +\key{$\ldots$\\|$\ldots$\\|$\ldots$} correspond \`a une alternative (``ou'') . \key{\\( $\ldots$ \\)} groupe une suite d'\'el\'ements de motif pour former un \'el\'ement unique. @@ -372,7 +372,7 @@ former un \'el\'ement unique. \mkey{M-x set-language-environment} pr\'ecise la langue principale \key{C-x RET c} fixe le syst\`eme de codage pour la commande suivante -\mkey{M-x find-file-literally} visite un fichier sans aucune conversion +\mkey{M-x find-file-literally} visite un fichier sans aucune conversion \mkey{M-x list-coding-systems} affiche tous les syst\`emes de codage \mkey{M-x prefer-coding-system} choisit le syst\`eme de codage pr\'ef\'er\'e @@ -391,7 +391,7 @@ former un \'el\'ement unique. \section{Obtenir de l'aide} -Emacs effectue pour vous la compl\'etion des commandes. En faisant \kbd{M-x} +Emacs effectue pour vous la compl\'etion des commandes. En faisant \kbd{M-x} {\it tab\/} ou {\it espace\/}, vous obtiendrez une liste des commandes Emacs. \askip diff --git a/etc/future-bug b/etc/future-bug index 9b608c749cc..fb6262dfe55 100644 --- a/etc/future-bug +++ b/etc/future-bug @@ -8,7 +8,7 @@ In GNU Emacs 51.70.4 (i9986-unknown-linux-gnu, X toolkit) of Sat Feb 20 2199 on configured using `configure --with-x-toolkit=yes' The `search-backward-in-time' function appears to be broken in -Emacs 51.70. +Emacs 51.70. Unfortunately, I can never seem to start the debugger early enough to catch the error as it happens. However I have traced the diff --git a/etc/gnu.xpm b/etc/gnu.xpm index 4d130ca0fec..b8b16112820 100644 --- a/etc/gnu.xpm +++ b/etc/gnu.xpm @@ -8,10 +8,10 @@ static char * image_name [] = { /**/ " s mask c none", "B c blue", -"x c black", -": c sandy brown", +"x c black", +": c sandy brown", "+ c saddle brown", -"' c grey", +"' c grey", ". c white", " ", " ", diff --git a/etc/gnus-tut.txt b/etc/gnus-tut.txt index 94e9500f712..a76b591dbf1 100644 --- a/etc/gnus-tut.txt +++ b/etc/gnus-tut.txt @@ -57,7 +57,7 @@ to set `gnus-select-method'. A "method" is a way of specifying *how* the news is to be found, and from *where*. Say you want to read news from you local, friendly nntp server -"news.my.local.server". +"news.my.local.server". (setq gnus-select-method '(nntp "news.my.local.server")) @@ -132,14 +132,14 @@ So if you want to go with nnmbox, you can simply say: (The same for the other methods, kind of.) -You should also set `nnmail-split-methods' to something sensible: +You should also set `nnmail-split-methods' to something sensible: -(setq nnmail-split-methods +(setq nnmail-split-methods '(("mail.junk" "From:.*Lars") ("mail.misc ""))) This will put all mail from me in you junk mail group, and the rest in -"mail.misc". +"mail.misc". These groups will be subscribe the same way as the normal groups, so you will probably find them among the zombie groups after you set @@ -152,11 +152,11 @@ Date: Fri Feb 24 13:40:45 1995 Subject: Foreign newsgroups Message-ID: <lars-doc5@eyesore.no> -These are groups that do not come from `gnus-select-method'. +These are groups that do not come from `gnus-select-method'. Say you want to read "alt.furniture.couches" from "news.funet.fi". You can then either type `B news.funet.fi <RET>' to browse that server and -subscribe to that group, or you can type +subscribe to that group, or you can type `G m alt.furniture.couches<RET>nntp<RET>news.funet.fi<RET>', if you like to type a lot. @@ -178,7 +178,7 @@ Message-ID: <lars-doc6@eyesore.no> Gnus really isn't GNUS, even though it looks like it. If you scrape the surface, you'll find that most things have changed. -This means that old code that relies on GNUS internals will fail. +This means that old code that relies on GNUS internals will fail. In particular, `gnus-newsrc-hashtb', `gnus-newsrc-assoc', `gnus-killed-list', the `nntp-header-' macros and the display formats @@ -196,7 +196,7 @@ There is absolutely no chance, whatsoever, of getting Gnus to work with Emacs 18. It won't even work on Emacsen older than Emacs 19.30/XEmacs 19.13. Upgrade your Emacs or die. - + From lars Thu Feb 23 23:20:38 1995 From: larsi@ifi.uio.no (ding) Date: Fri Feb 24 13:40:45 1995 @@ -226,7 +226,7 @@ Create the group by saying This will create the group "nnvirtual:my.virtual.newsgroup", which will collect all articles from all the groups in the "rec.aquaria" -hierarchy. +hierarchy. If you want to edit the regular expression, just type `M-e' on the group line. @@ -258,7 +258,7 @@ the lines of: (setq gnus-select-group-hook (lambda () - (if (eq 'nnvirtual (car (gnus-find-method-for-group + (if (eq 'nnvirtual (car (gnus-find-method-for-group gnus-newsgroup-name))) (progn (make-local-variable 'gnus-thread-sort-functions) @@ -281,7 +281,7 @@ version. If the bug persists, please re-submit your bug report. When a bug occurs, I need a recipe for how to trigger the bug. You have to tell me exactly what you do to uncover the bug, and you should (setq debug-on-error t) and send me the backtrace along with the bug -report. +report. If I am not able to reproduce the bug, I won't be able to fix it. diff --git a/etc/ledit.l b/etc/ledit.l index 37f8fcbb15f..0c572fa07ae 100644 --- a/etc/ledit.l +++ b/etc/ledit.l @@ -89,7 +89,7 @@ (format ofile "(insert-file \"~A\")" *ledit-ppfile*) (format ofile "(lisp-mode)")) - + (t (format t "~&~A -- unknown option~%" (cdr args)))) (close ofile)))) diff --git a/etc/ms-7bkermit b/etc/ms-7bkermit index 7a55179876b..a5b47b30016 100644 --- a/etc/ms-7bkermit +++ b/etc/ms-7bkermit @@ -16,7 +16,7 @@ set key scan \270 \127 ;;; The following mappings affect certain special keys... all the keys ;;; are duplicated on the numeric keypad when NUM LOCK is off, but -;;; the keypad versions are NOT mapped (string definition space too small +;;; the keypad versions are NOT mapped (string definition space too small ;;; for that) ;;; INSERT toggles overwrite mode @@ -37,8 +37,8 @@ set key scan \4427 \2 set key scan \4432 \14 set key scan \4429 \6 -;;; META versions of all the printing characters except uppercase -;;; letters are generated by using the ALT key. The definition string +;;; META versions of all the printing characters except uppercase +;;; letters are generated by using the ALT key. The definition string ;;; consists of an ESC character followed by the META-ized character. ;;; The characters are listed roughly left-to-right and top-to-bottom ;;; as they appear on the keyboard diff --git a/etc/pl-refcard.tex b/etc/pl-refcard.tex index d3450529adb..b61f6e43d53 100644 --- a/etc/pl-refcard.tex +++ b/etc/pl-refcard.tex @@ -1,20 +1,20 @@ %&mex %===================================================================== -% $Revision: 1.1 $ -% $Date: 2000/08/21 11:42:52 $ +% $Revision: 1.2 $ +% $Date: 2001/09/23 17:45:20 $ %===================================================================== % Reference Card for GNU Emacs version 20 on Unix systems was % translated into Polish language by W{\l}odek Bzyl (matwb@univ.gda.pl) % who also added new section on `Dired' and added info about Polish % support in Emacs to section `International Character Sets'. -% This file uses macros and fonts defined in the mex format. +% This file uses macros and fonts defined in the mex format. % These macros and fonts are part of a current WEB2C % distribution of TeX, for example teTeX (unix) fpTeX (windows). % TeTeX comes with texconfig utility which could be used in % particular to generate formats. Just run it and follow instructions. % -% Note that the original Emacs refcard.tex uses macros and fonts +% Note that the original Emacs refcard.tex uses macros and fonts % defined in plain format. This file uses mex format which is % a Polish adaptation of plain. @@ -26,7 +26,7 @@ \endinput \else \prefixing -\fi +\fi \newcount\columnsperpage @@ -85,7 +85,7 @@ \def\copyrightnotice{ \vskip 1ex plus 2 fill\begingroup\small \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} -\centerline{Wersja \versionnumber{} dla GNU Emacsa 20.3, +\centerline{Wersja \versionnumber{} dla GNU Emacsa 20.3, stycze/n 1999} \centerline{projekt Stephen Gildea} \centerline{t/lumaczenie W/lodek Bzyl} @@ -109,7 +109,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -187,7 +187,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters @@ -294,7 +294,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\nohyphens {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000} \def\raggedspaces - {\spaceskip=0.3333em\relax + {\spaceskip=0.3333em\relax \xspaceskip=0.5em\relax} \def\raggedright {\raggedstretch=6em @@ -655,7 +655,7 @@ Drugie z polece/n dotyczy ,,innej ramki'' %Type \kbd{C-x ESC ESC} to edit and repeat the last command that used the %minibuffer. Type \kbd{F10} to activate the menu bar using the minibuffer. Napisz \kbd{C-x ESC ESC} aby poprawia/c i wykona/c polecenie, -kt/ore ostatnio u/zywa/lo minibufora. +kt/ore ostatnio u/zywa/lo minibufora. Napisz \kbd{F10} aby uaktywni/c menu w minibuforze. @@ -773,7 +773,7 @@ Napisz \kbd{F10} aby uaktywni/c menu w minibuforze. \key{zero lub wi/ecej powt/orze/n}{*} \key{jedno lub wi/ecej powt/orze/n}{+} \key{zero lub jedno powt/orzenie}{?} -\key{traktuj dos/lownie nast/epny znak +\key{traktuj dos/lownie nast/epny znak (nawet je/sli znak ma specjalne znaczenie) {\it c\/}}{\\{\it c}} \key{alternatywa (`lub')}{\\|} \key{grupowanie}{\\( {\rm$\ldots$} \\)} @@ -901,7 +901,7 @@ Pozosta/le polecenia: %\key{search nodes for regexp}{M-s} \key{wywo/laj {\bf samouczek} Info}{h} \key{{\bf zako/ncz} Info}{q} -\key{wyszukuj w~w/ez/lach tekst zgodny\newline +\key{wyszukuj w~w/ez/lach tekst zgodny\newline z~podanym wyra/zeniem regularnym}{M-s} \endindentedkeys @@ -963,7 +963,7 @@ z~wykorzystaniem notacji \kbd{"..."} i~notacji \kbd{[...]}: \beginexample% (defun \<nazwa-funkcji> (\<argumenty>) - "\<dokumentacja>" + "\<dokumentacja>" (interactive "\<wzorzec>") \<tre/s/c funkcji>) \endexample diff --git a/etc/refcard.tex b/etc/refcard.tex index c8637b410c0..7e6234d45dd 100644 --- a/etc/refcard.tex +++ b/etc/refcard.tex @@ -83,7 +83,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -161,7 +161,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters diff --git a/etc/rgb.txt b/etc/rgb.txt index 095ae41979c..64d885db01a 100644 --- a/etc/rgb.txt +++ b/etc/rgb.txt @@ -1,5 +1,5 @@ # -# This file is not a part of GNU Emacs. It is from xc/programs/rgb/rgb.txt +# This file is not a part of GNU Emacs. It is from xc/programs/rgb/rgb.txt # of the X11R6 X Consortium distribution, and is included here to support the # mapping of color names to RGB values on Windows NT and Windows 95. # @@ -8,31 +8,31 @@ # # # Copyright (C) 1994 X Consortium -# +# # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: -# +# # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. -# +# # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# +# # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. -# +# # X Window System is a trademark of X Consortium, Inc. -# +# 255 250 250 snow 248 248 255 ghost white diff --git a/etc/sk-refcard.tex b/etc/sk-refcard.tex index b4d7b1ef4a5..82ec7f6e935 100644 --- a/etc/sk-refcard.tex +++ b/etc/sk-refcard.tex @@ -98,7 +98,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -176,7 +176,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters diff --git a/etc/sk-survival.tex b/etc/sk-survival.tex index 5f9e06a1f50..2355923661d 100644 --- a/etc/sk-survival.tex +++ b/etc/sk-survival.tex @@ -2,8 +2,8 @@ % Title: GNU Emacs Survival Card % Author: Wlodek Bzyl <matwb@univ.gda.pl> % -% $Revision: 1.4 $ -% $Date: 2001/03/22 23:07:14 $ +% $Revision: 1.1 $ +% $Date: 2001/04/18 13:58:29 $ % %**start of header @@ -14,7 +14,7 @@ % optional paragraphs separated with \askip amount of vertical space % \key{KEY-NAME} description of key or % \mkey{M-x LONG-LISP-NAME} description of Elisp function -% +% % \kbd{ARG} -- argument is typed literally \def\plainfmtname{plain} @@ -22,7 +22,7 @@ \else \errmessage{This file requires `plain' format to be typeset correctly} \endinput -\fi +\fi % Copyright (c) 2000 Free Software Foundation, Inc. @@ -95,7 +95,7 @@ % The TeXbook, p. 257 \let\lr=L \newbox\leftcolumn -\output={\if L\lr +\output={\if L\lr \global\setbox\leftcolumn\columnbox \global\let\lr=R \else \doubleformat \global\let\lr=L\fi} @@ -109,7 +109,7 @@ \def\bye{\par\vfil\supereject \if R\lr \null\vfil\eject\fi - \end} + \end} \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus 0.5ex \centerline{\ss#2} @@ -138,7 +138,7 @@ \def\nohyphens {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000} \def\raggedspaces - {\spaceskip=0.3333em\relax + {\spaceskip=0.3333em\relax \xspaceskip=0.5em\relax} \def\raggedright {\raggedstretch=6em diff --git a/etc/survival.tex b/etc/survival.tex index d157eeb03ba..a5c558c170b 100644 --- a/etc/survival.tex +++ b/etc/survival.tex @@ -15,7 +15,7 @@ % optional paragraphs separated with \askip amount of vertical space % \key{KEY-NAME} description of key or % \mkey{M-x LONG-LISP-NAME} description of Elisp function -% +% % \kbd{ARG} -- argument is typed literally \def\plainfmtname{plain} @@ -23,7 +23,7 @@ \else \errmessage{This file requires `plain' format to be typeset correctly} \endinput -\fi +\fi % Copyright (c) 2000 Free Software Foundation, Inc. @@ -85,7 +85,7 @@ % The TeXbook, p. 257 \let\lr=L \newbox\leftcolumn -\output={\if L\lr +\output={\if L\lr \global\setbox\leftcolumn\columnbox \global\let\lr=R \else \doubleformat \global\let\lr=L\fi} @@ -99,7 +99,7 @@ \def\bye{\par\vfil\supereject \if R\lr \null\vfil\eject\fi - \end} + \end} \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus 0.5ex \centerline{\ss#2} @@ -128,7 +128,7 @@ \def\nohyphens {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000} \def\raggedspaces - {\spaceskip=0.3333em\relax + {\spaceskip=0.3333em\relax \xspaceskip=0.5em\relax} \def\raggedright {\raggedstretch=6em @@ -168,7 +168,7 @@ on some keyboards) or after hitting {\it Esc\/} key. \section{Running Emacs} To enter GNU Emacs, just type its name: \kbd{emacs}. -Emacs divides the frame into several areas: +Emacs divides the frame into several areas: menu line, buffer area with the edited text, mode line describing the buffer in the window above it, @@ -181,7 +181,7 @@ Emacs divides the frame into several areas: \key{C-x C-s} save the file \key{C-x k} kill a buffer \key{C-g} in most context: cancel, stop, abort partially typed or - executing command + executing command \key{C-x u} undo \section{Moving About} @@ -233,7 +233,7 @@ Use \kbd{C-s} or \kbd{C-r} again to repeat the search in either direction. Tags tables files record locations of function and procedure definitions, global variables, data types and anything -else convenient. To create a tags table file, type +else convenient. To create a tags table file, type `{\tt etags} {\it input\_files}' as a shell command. \askip \key{M-.} find a definition @@ -246,7 +246,7 @@ else convenient. To create a tags table file, type \section{Compiling} \key{M-x compile} compile code in active window -\key{C-c C-c} go to the next compiler error, when in +\key{C-c C-c} go to the next compiler error, when in the compile window or \key{C-x `} when in the window with source code @@ -272,7 +272,7 @@ else convenient. To create a tags table file, type \key{C-x m} begin composing a message \key{C-c C-c} send the message and switch to another buffer -\key{C-c C-f C-c} move to the `CC' header field, creating one +\key{C-c C-f C-c} move to the `CC' header field, creating one if there is none \section{Miscellaneous} @@ -309,9 +309,9 @@ Valid responses in query-replace mode are \key{[\^{}$\ldots$]} negates the class \key{\\{\it c}} quote characters otherwise having a special - meaning in regular expressions + meaning in regular expressions -\key{$\ldots$\\|$\ldots$\\|$\ldots$} matches one of +\key{$\ldots$\\|$\ldots$\\|$\ldots$} matches one of the alternatives (``or'') \key{\\( $\ldots$ \\)} groups a series of pattern elements to a single element @@ -360,14 +360,14 @@ Valid responses in query-replace mode are \section{International Character Sets} -\key{C-x RET C-\\} select and activate input method for +\key{C-x RET C-\\} select and activate input method for the current buffer \key{C-\\} enable or disable input method \mkey{M-x list-input-methods} show all input methods \mkey{M-x set-language-environment} specify principal language \key{C-x RET c} set coding system for next command -\mkey{M-x find-file-literally} visit file with no conversion +\mkey{M-x find-file-literally} visit file with no conversion of any kind \mkey{M-x list-coding-systems} show all coding systems @@ -387,7 +387,7 @@ Valid responses in query-replace mode are \section{Getting Help} -Emacs does command completion for you. Typing \kbd{M-x} +Emacs does command completion for you. Typing \kbd{M-x} {\it tab\/} or {\it space\/} gives a list of Emacs commands. \askip \key{C-h} Emacs help diff --git a/etc/tasks.texi b/etc/tasks.texi index 91b6953b1f1..7984cac663a 100644 --- a/etc/tasks.texi +++ b/etc/tasks.texi @@ -82,7 +82,7 @@ If you did not obtain this file directly from the GNU project and recently, please check for a newer version. You can ftp the task list from any GNU FTP host in directory @file{/pub/gnu/tasks/}. The task list is available there in several different formats: @file{tasks.text}, -@file{tasks.texi}, @file{tasks.info}, and @file{tasks.dvi}. +@file{tasks.texi}, @file{tasks.info}, and @file{tasks.dvi}. @c to fix an overfill, join the paragraphs -len The task list is also available on the GNU World Wide Web server: @uref{http://www.gnu.org/prep/tasks_toc.html}. diff --git a/etc/termcap.src b/etc/termcap.src index c4d132ad669..c982aececf3 100644 --- a/etc/termcap.src +++ b/etc/termcap.src @@ -10,7 +10,7 @@ # #------------------------------------------------------------------------------ # Version 10.2.1 -# $Date: 2002/01/12 17:31:53 $ +# $Date: 2002/04/20 07:38:53 $ # terminfo syntax # # Eric S. Raymond (current maintainer) @@ -44,7 +44,7 @@ # This file assumes a US-ASCII character set. If you need to fix this, start # by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers # for your character set. \E(A and \E)A enables the British character set -# with the pound sign at position 2/3. +# with the pound sign at position 2/3. # # In a Japanese-processing environment using EUC/Japanese or Shift-JIS, # C1 characters are considered the first-byte set of the Japanese encodings, @@ -70,7 +70,7 @@ # string-table limit of archaic termcap libraries except where explicitly # noted below. Note that the termcap translation assumes that your termcap # library can handle multiple tc capabilities in an entry. 4.4BSD has this -# capability. Older versions of GNU termcap, through 1.3, do not. +# capability. Older versions of GNU termcap, through 1.3, do not. # # For details on these formats, see terminfo(5) in the ncurses distribution, # and termcap(5) in the 4.4BSD Unix Programmer's Manual. Be aware that 4.4BSD @@ -102,7 +102,7 @@ # the master format). Individual capabilities are commented out by # placing a period between the colon and the capability name. # -# The file is divided up into major sections (headed by lines beginning with +# The file is divided up into major sections (headed by lines beginning with # the string "########") and minor sections (beginning with "####"); do # # grep "^####" <file> | more @@ -112,7 +112,7 @@ # that important and frequently-encountered terminal types are near the # front (so that you'll get reasonable search efficiency from a linear # search of the termcap form even if you don't use reorder). Minor sections -# usually correspond to manufacturers or standard terminal classes. +# usually correspond to manufacturers or standard terminal classes. # Parenthesized words following manufacturer names are type prefixes or # product line names used by that manufacturers. # @@ -145,18 +145,18 @@ # -s Enable status line. # -vb Use visible bell (:vb:) rather than :bl:. # -w Wide - in 132 column mode. -# If a name has multiple suffixes and one is a line height, that one should -# go first. Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'. -# +# If a name has multiple suffixes and one is a line height, that one should +# go first. Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'. +# # Entries with embedded plus signs are designed to be included through use/tc -# capabilities, not used as standalone entries. +# capabilities, not used as standalone entries. # # To avoid search clashes, some older all-numeric names for terminals have # been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621). # All primary names of terminals now have alphanumeric prefixes. # # Comments marked "esr" are mostly results of applying the termcap-compiler -# code packaged with ncurses and contemplating the resulting error messages. +# code packaged with ncurses and contemplating the resulting error messages. # In many cases, these indicated obvious fixes to syntax garbled by the # composers. In a few cases, I was able to deduce corrected forms for garbled # capabilities by looking at context. All the information in the original @@ -191,7 +191,7 @@ # %c Accept any character # %[...] Accept any number of characters in the given set # -# The cursor position report (<u6>) string must contain two scanf(3)-style +# The cursor position report (<u6>) string must contain two scanf(3)-style # %d format elements. The first of these must correspond to the Y coordinate # and the second to the %d. If the string contains the sequence %i, it is # taken as an instruction to decrement each value after reading it (this is @@ -206,12 +206,12 @@ # All the entries in this file have been edited to assume that the tabset # files directory is /usr/share/tabset, in conformance with the File Hierarchy # Standard for Linux and open-source BSD systems. Some vendors (notably Sun) -# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset. +# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset. # # No curses package we know of actually uses these files. If their location # is an issue, you will have to hand-patch the file locations before compiling # this file. -# +# # REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL # # As the ANSI/ECMA-48 standard and variants take firmer hold, and as @@ -233,8 +233,8 @@ # I'm especially interested in identifying the obscure entries listed under # `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal # wisdom about them gets lost. If you know a lot about obscure old terminals, -# please go to the terminfo resource page, grab the UFO file (ufo.ti), and -# eyeball it for things you can identify and describe. +# please go to the terminfo resource page, grab the UFO file (ufo.ti), and +# eyeball it for things you can identify and describe. # # If you have been around long enough to contribute, please read the file # with this in mind and send me your annotations. @@ -245,7 +245,7 @@ # California copyright with dates from 1980 to 1993. # # Some information has been merged in from a terminfo file SCO distributes. -# It has an obnoxious boilerplate copyright which I'm ignoring because they +# It has an obnoxious boilerplate copyright which I'm ignoring because they # took so much of the content from the ancestral BSD versions of this file # and didn't attribute it, thereby violating the BSD Regents' copyright. # @@ -255,7 +255,7 @@ # graffiti -- it's legally dubious, ethically bogus, and patently ridiculous. # # This file deliberately has no copyright. It belongs to no one and everyone. -# If you claim you own it, you will merely succeed in looking like a fool. +# If you claim you own it, you will merely succeed in looking like a fool. # Use it as you like. Use it at your own risk. Copy and redistribute freely. # There are no guarantees anywhere. Svaha! # @@ -353,7 +353,7 @@ klone+acs|alternate character set for ansi.sys displays:\ :ac=+\020,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\ :ae=\E[10m:as=\E[11m: -# Highlight controls corresponding to the ANSI.SYS standard. Most +# Highlight controls corresponding to the ANSI.SYS standard. Most # console drivers for Intel boxes obey these. Makes the same assumption # about \E[11m as klone+acs. True ANSI/ECMA-48 would have :se=\E[27m:, # :ue=\E[24m:, but this isn't a documented feature of ANSI.SYS. @@ -429,13 +429,13 @@ ansi-mr|mem rel cup ansi:\ :am:xo:\ :co#80:li#24:tc=vanilla:tc=ansi+erase:tc=ansi+local1: -# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but +# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but # beware of screen size problems and memory relative cursor addressing. ansi-mini|any ansi terminal with pessimistic assumptions:\ :am:xo:\ :co#80:li#24:tc=vanilla:tc=ansi+cup:tc=ansi+erase: -# ansi-mtabs adds relative addressing and minimal tab support +# ansi-mtabs adds relative addressing and minimal tab support ansi-mtabs|any ansi terminal with pessimistic assumptions:\ :it#8:\ :ta=^I:tc=ansi+local1:tc=ansi-mini: @@ -478,12 +478,12 @@ ansi77|ansi 3.64 standard 1977 version:\ :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: # Procomm and some other ANSI emulations don't recognize all of the ANSI- -# standard capabilities. This entry deletes :UP:, :RI:, :DO:, :LE:, and -# <vpa>/<hpa> capabilities, forcing curses to use repetitions of :up:, -# :nd:, :do: and :le:. Also deleted :IC: and :ic:, as QModem up to +# standard capabilities. This entry deletes :UP:, :RI:, :DO:, :LE:, and +# <vpa>/<hpa> capabilities, forcing curses to use repetitions of :up:, +# :nd:, :do: and :le:. Also deleted :IC: and :ic:, as QModem up to # 5.03 doesn't recognize these. Finally, we delete :rp: and :sr:, which seem # to confuse many emulators. On the other hand, we can count on these programs -# doing :ae:/:as:/:sa:. Older versions of this entry featured +# doing :ae:/:as:/:sa:. Older versions of this entry featured # <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under # ANSI.SYS influence. # From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995 @@ -531,12 +531,12 @@ ansi|ansi/pc-term compatible with color:\ :u6=\E[%i%d;%dR:u7=\E[6n:..u8=\E[?%[;0123456789]c:\ :u9=\E[c:tc=ecma+color:tc=klone+sgr:tc=ansi-m: -# ansi-generic is a vanilla ANSI terminal. This is assumed to implement -# all the normal ANSI stuff with no extensions. It assumes -# insert/delete line/char is there, so it won't work with -# vt100 clones. It assumes video attributes for bold, blink, -# underline, and reverse, which won't matter much if the terminal -# can't do some of those. Padding is assumed to be zero, which +# ansi-generic is a vanilla ANSI terminal. This is assumed to implement +# all the normal ANSI stuff with no extensions. It assumes +# insert/delete line/char is there, so it won't work with +# vt100 clones. It assumes video attributes for bold, blink, +# underline, and reverse, which won't matter much if the terminal +# can't do some of those. Padding is assumed to be zero, which # shouldn't hurt since xon/xoff is assumed. ansi-generic|generic ansi standard terminal:\ :am:xo:\ @@ -853,14 +853,14 @@ pc6300plus|AT&T 6300 plus:\ # Unfortunately, the UNIX PC terminfo entry that comes with ncurses # is broken. All the special key sequences are broken, making it unusable # with Emacs. The problem stems from the following: -# +# # The UNIX PC has a plethora of keys (103 of them, and there's no numeric # keypad!), loadable fonts, and strange highlighting modes ("dithered" # half-intensity, "smeared" bold, and real strike-out, for example.) It also # uses resizable terminal windows, but the bundled terminal program always # uses an 80x24 window (and doesn't support seem to support a 132-column -# mode.) -# +# mode.) +# # HISTORY: The UNIX PC was one of the first machines with a GUI, and used a # library which was a superset of SVr3.5 curses (called tam, for "terminal # access method".) tam includes support for real, overlapping windows, @@ -876,44 +876,44 @@ pc6300plus|AT&T 6300 plus:\ # (If you're interested in adding some of the tam calls to ncurses, btw, I # have the full documentation and several programs which use tam. It also # used an extended terminfo format to describe key sequences, special -# highlighting modes, etc.) -# +# highlighting modes, etc.) +# # KEYS: This means that ncurses would quite painful on the UNIX PC, since # there are two sequences for every key-modifier combination (local keyboard # sequence and remote "VT100" sequence.) But I doubt many people are trying # to use ncurses on the UNIX PC, since ncurses doesn't properly handle the -# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume) -# seem to have been built from the manual describing the VT100 sequences. -# This means it doesn't work for a real live UNIX PC. -# +# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume) +# seem to have been built from the manual describing the VT100 sequences. +# This means it doesn't work for a real live UNIX PC. +# # FONTS: The UNIX PC also has a strange interpretation of "alternate # character set". Rather than the VT100 graphics you might expect, it allows # up to 8 custom fonts to be loaded at any given time. This means that # programs expecting VT100 graphics will usually be disappointed. For this # reason I have disabled the smacs/rmacs sequences, but they could easily be -# re-enabled. Here are the relevant control sequences (from the ESCAPE(7) -# manpage), should you wish to do so: -# +# re-enabled. Here are the relevant control sequences (from the ESCAPE(7) +# manpage), should you wish to do so: +# # SGR10 - Select font 0 - ESC [ 10 m or SO # SGR11 - Select font 1 - ESC [ 11 m or SI # SGR12 - Select font 2 - ESC [ 12 m # ... (etc.) # SGR17 - Select font 7 - ESC [ 17 m -# +# # Graphics for line drawing are not reliably found at *any* character # location because the UNIX PC has dynamically reloadable fonts. I use font # 0 for regular text and font 1 for italics, but this is by no means # universal. So ASCII line drawing is in order if smacs/rmacs are enabled. -# +# # MISC: The cursor visible/cursor invisible sequences were swapped in the # distributed terminfo. -# +# # To ameliorate these problems (and fix a few highlighting bugs) I rewrote # the UNIX PC terminfo entry. The modified version works great with Lynx, # Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC # attached by serial cable. In Emacs, even the Undo key works, and many -# applications can now use the F1-F8 keys. -# +# applications can now use the F1-F8 keys. +# # esr's notes: # Terminfo entry for the AT&T Unix PC 7300 # from escape(7) in Unix PC 7300 Manual. @@ -928,8 +928,8 @@ pc6300plus|AT&T 6300 plus:\ # * into font memory slot #1. Once the font has been loaded, # * it can be used as an alternative character set. # * -# * The call to ioctl with the argument WIOCLFONT is the key -# * to this routine. For more information, see window(7) in +# * The call to ioctl with the argument WIOCLFONT is the key +# * to this routine. For more information, see window(7) in # * the PC 7300 documentation. # ***************************************************************/ # #include <string.h> /* needed for strcpy call */ @@ -944,7 +944,7 @@ pc6300plus|AT&T 6300 plus:\ # * cfont <filename>. For further information on fonts see # * cfont(1) in the PC 7300 documentation. # */ -# +# # struct altfdata /* structure for alt font data */ # { # short altf_slot; /* memory slot number */ @@ -1319,7 +1319,7 @@ wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta:\ :km:\ :co#80:li#25:tc=vt220: -# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and +# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and # DECstation/pmax. rcons|BSD rasterconsole:\ :tc=sun-il: @@ -1442,7 +1442,7 @@ cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono):\ #### 386BSD and BSD/OS Consoles # -# This was the original 386BSD console entry (I think). +# This was the original 386BSD console entry (I think). # Some places it's named oldpc3|oldibmpc3. # From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu> origpc3|origibmpc3|IBM PC 386BSD Console:\ @@ -1469,7 +1469,7 @@ oldpc3|oldibmpc3|old IBM PC BSD/386 Console:\ # are described here. This entry really ought to be upgraded. # Also note, the console will also work with fewer lines after doing # "stty rows NN", e.g. to use 24 lines. -# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996) +# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996) # Bug: The <op> capability resets attributes. bsdos-pc|IBM PC BSD/OS Console:\ :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:\ @@ -1489,17 +1489,17 @@ bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono:\ :..sa=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;:\ :sc=\E7:sf=^J:ta=^I:up=\E[A:tc=klone+sgr: -# Old names for BSD/OS PC console used in releases before 4.1. +# Old names for BSD/OS PC console used in releases before 4.1. pc3|BSD/OS on the PC Console:\ :tc=bsdos-pc-nobold: ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline:\ :tc=bsdos-pc: - -# BSD/OS on the SPARC + +# BSD/OS on the SPARC bsdos-sparc|Sun SPARC BSD/OS Console:\ :tc=sun: - -# BSD/OS on the PowerPC + +# BSD/OS on the PowerPC bsdos-ppc|PowerPC BSD/OS Console:\ :tc=bsdos-pc: @@ -1522,7 +1522,7 @@ vt52|dec vt52:\ # # Except where noted, these entries are DEC's official terminfos. # Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support -# Engineering for more information. Updated terminfos and termcaps +# Engineering for more information. Updated terminfos and termcaps # are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. # # In October 1995 DEC sold its terminals business, including the VT and Dorio @@ -1543,18 +1543,18 @@ vt52|dec vt52:\ # you output the char in column 80, immediately output CR LF # and then assume you are in column 1 of the next line. If :xn: # is on, am should be on too. -# +# # I assume you have smooth scroll off or are at a slow enough baud # rate that it doesn't matter (1200? or less). Also this assumes -# that you set auto-nl to "on", if you set it off use vt100-nam +# that you set auto-nl to "on", if you set it off use vt100-nam # below. -# +# # The padding requirements listed here are guesses. It is strongly # recommended that xon/xoff be enabled, as this is assumed here. -# -# The vt100 uses <rs2> and <rf> rather than :is:/:ct:/:st: because the -# tab settings are in non-volatile memory and don't need to be -# reset upon login. Also setting the number of columns glitches +# +# The vt100 uses <rs2> and <rf> rather than :is:/:ct:/:st: because the +# tab settings are in non-volatile memory and don't need to be +# reset upon login. Also setting the number of columns glitches # the screen annoyingly. You can type "reset" to get them set. # # The VT100 series terminals have cursor ("arrows") keys which can operate @@ -1578,7 +1578,7 @@ vt52|dec vt52:\ # The Numeric Keypad which can operate in two different modes: Numeric Mode and # Application Mode. Numeric Mode is the reset state, and is assumed to be # the normal state. Application Mode is the "set" state. In Numeric Mode, -# the numeric and punctuation keys transmit ASCII 7-bit characters, and the +# the numeric and punctuation keys transmit ASCII 7-bit characters, and the # Enter key transmits the same as the Return key (Note: the Return key # can be configured to send either LF (\015) or CR LF). In Application Mode, # all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys @@ -1622,7 +1622,7 @@ vt52|dec vt52:\ # # And here, for those of you with orphaned VT100s lacking documentation, is # a description of the soft switches invoked when you do `Set Up'. -# +# # Scroll 0-Jump Shifted 3 0-# # | 1-Smooth | 1-British pound sign # | Autorepeat 0-Off | Wrap Around 0-Off @@ -1699,7 +1699,7 @@ vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline:\ :ds=\E7\E[1;24r\E8:fs=\E8:ho=\E[2;1H:is=\E7\E[2;24r\E8:\ :ts=\E7\E[1;%dH\E[1K:tc=vt100-am: -# Status line at bottom. +# Status line at bottom. # Clearing the screen will clobber status line. vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline:\ :es:hs:\ @@ -1709,7 +1709,7 @@ vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline:\ # Most of the `vt100' emulators out there actually emulate a vt102 # This entry (or vt102-nsgr) is probably the right thing to use for -# these. +# these. vt102|dec vt102:\ :mi:\ :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:tc=vt100: @@ -1722,7 +1722,7 @@ vt102-w|dec vt102 in wide mode:\ # string in the canonical vt100 entry above leaves the screen littered # with little snowflake or star characters (IBM PC ROM character \017 = ^O) # after highlight turnoffs. This entry should fix that, and even leave -# ACS support working, at the cost of making multiple-highlight changes +# ACS support working, at the cost of making multiple-highlight changes # slightly more expensive. # From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995 vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes):\ @@ -1749,8 +1749,8 @@ vt131|dec vt131:\ # vt132 - like vt100 but slower and has ins/del line and such. # I'm told that :im:/:ei: are backwards in the terminal from the -# manual and from the ANSI standard, this describes the actual -# terminal. I've never actually used a vt132 myself, so this +# manual and from the ANSI standard, this describes the actual +# terminal. I've never actually used a vt132 myself, so this # is untested. # vt132|DEC vt132:\ @@ -1839,7 +1839,7 @@ vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode:\ # at the top of the keyboard. This mapping follows the description given # in the VT220 Programmer Reference Manual and agrees with the labeling # on some terminals that emulate the vt220. There is no support for an F5. -# See vt220 for an alternate mapping. +# See vt220 for an alternate mapping. # vt220d|DEC VT220 in vt100 mode with DEC function key labeling:\ :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ @@ -1878,8 +1878,8 @@ vt200-js|vt220-js|dec vt200 series with jump scroll:\ :nw=^M\ED:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ :rf=/usr/lib/tabset/vt100:sc=\E7:se=5\E[27m:sf=\ED:\ :so=5\E[7m:sr=\EM:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m: - -# This was DEC's vt320. Use the purpose-built one below instead + +# This was DEC's vt320. Use the purpose-built one below instead #vt320|DEC VT320 in vt100 emulation mode, # use=vt220, @@ -1890,9 +1890,9 @@ vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode:\ :am@:\ :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220: -# These entries are not DEC's official ones, they were purpose-built for the +# These entries are not DEC's official ones, they were purpose-built for the # VT320. Here are the designer's notes: -# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to +# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to # 'Erase to End of Field'... since nothing seems to use 'end' anyways... # khome is Home on a PC kbd. Actually 'FIND' on a VT. # Things that use <knxt> usually use tab anyways... and things that don't use @@ -1902,7 +1902,7 @@ vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode:\ # and the resulting fact that it causes the termcap translation of the entry # to SMASH the 1k-barrier... # From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 -# (vt320: uncommented :fs: --esr) +# (vt320: uncommented :fs: --esr) # (untranslatable capabilities removed to fit entry within 1023 bytes) # (sgr removed to fit entry within 1023 bytes) # (acsc removed to fit entry within 1023 bytes) @@ -1957,7 +1957,7 @@ vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am:\ # Emacs v18 terminal modes to deal with the cursor keys in that the arrow # keys were switched into application mode at the same time the numeric pad # is switched into application mode. This changes the definitions of the -# arrow keys. Emacs v19 is smarter and mines its keys directly out of +# arrow keys. Emacs v19 is smarter and mines its keys directly out of # your termcap or terminfo entry, # # From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 @@ -1985,8 +1985,8 @@ vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page:\ # DEC doesn't supply a vt400 description, so we add Daniel Glasser's # (originally written with vt420 as its primary name, and usable for it). -# -# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple +# +# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple # text pages and long text pages with selectable length of the vt340, along # with left and right margins, rectangular area text copy, fill, and erase # operations, selected region character attribute change operations, @@ -1998,7 +1998,7 @@ vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page:\ # Emacs v18 terminal modes to deal with the cursor keys in that the arrow # keys were switched into application mode at the same time the numeric pad # is switched into application mode. This changes the definitions of the -# arrow keys. Emacs v19 is smarter and mines its keys directly out of +# arrow keys. Emacs v19 is smarter and mines its keys directly out of # your termcap entry, # # From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 @@ -2055,13 +2055,13 @@ vt420|DEC VT420:\ # emulators define these): # # if (key < 16) then value = key; -# else if (key < 21) then value = key + 1; +# else if (key < 21) then value = key + 1; # else if (key < 25) then value = key + 2; # else if (key < 27) then value = key + 3; # else if (key < 30) then value = key + 4; # else value = key + 5; # -# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT". +# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT". # There's no provision in terminfo for emitting a string in this format, so the # application has to know it. # @@ -2352,7 +2352,7 @@ x10term|vs100-x10|xterm terminal emulator (X10 window system):\ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[m:\ :mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ :ue=\E[m:up=\E[A:us=\E[4m: -# Compatible with the R5 xterm +# Compatible with the R5 xterm # (from the XFree86 3.2 distribution, <blink=@> removed) # added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD # corrected typos in rs2 string - TD @@ -2581,7 +2581,7 @@ xterm-sco|XFree86 xterm with SCO function keys:\ # 12-fkey keyboard can support vt220's 20-fkeys. # + maps numeric keypad "+" to ",". # + uses DEC-style control sequences for the application keypad. -# +# xterm-vt220|XFree86 xterm emulating vt220:\ :@1=\EOu:@7=\E[4~:@8=\EOM:F1=\E[23~:F2=\E[24~:F3=\E[25~:\ :F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:\ @@ -2608,10 +2608,10 @@ xterm-24|vs100|xterms|xterm terminal emulator (X Window System):\ # This is xterm for ncurses. xterm|xterm terminal emulator (X Window System):\ :tc=xterm-r6: -# use=xterm-xfree86, +# use=xterm-xfree86, -# These entries allow access to the X titlebar and icon name as a status line. -# Note that twm (and possibly window managers descended from it such as tvtwm, +# These entries allow access to the X titlebar and icon name as a status line. +# Note that twm (and possibly window managers descended from it such as tvtwm, # ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess # with it. xterm+sl|access X title line and icon name:\ @@ -2646,7 +2646,7 @@ kterm-color|kterm-co|kterm with ANSI colors:\ # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file xterm-nic|xterm with ich/ich1 suppressed for non-curses programs:\ :IC@:ei=:ic@:im=:tc=xterm: -# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996 +# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996 xterm1|xterm terminal emulator ignoring the alternate screen buffer:\ :te@:ti@:tc=xterm: @@ -2809,7 +2809,7 @@ konsole|KDE console window:\ # # rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM. # Since rxvt is not really compatible with xterm, it should be configured as -# "rxvt" (monochrome) and "rxvt-color". +# "rxvt" (monochrome) and "rxvt-color". # (untranslatable capabilities removed to fit entry within 1023 bytes) # (sgr removed to fit entry within 1023 bytes) # (acsc removed to fit entry within 1023 bytes) @@ -2927,7 +2927,7 @@ hpterm|X-hpterm|hp X11 terminal emulator:\ # via the X resource setting "xterm*sunFunctionKeys:true" # To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same. # The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z> -# because we want it to be seen as <kcpy>. +# because we want it to be seen as <kcpy>. # The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance # with their Sun keyboard labels instead. # From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996 @@ -2967,8 +2967,8 @@ emu|emu native mode:\ #### MGR # # MGR is a Bell Labs window system lighter-weight than X. -# These entries describe MGR's xterm-equivalent. -# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997 +# These entries describe MGR's xterm-equivalent. +# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997 # mgr|Bellcore MGR (non X) window system terminal emulation:\ @@ -2997,8 +2997,8 @@ mgr-linux|Mgr window with Linux keyboard:\ ######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS # -# Columbus UNIX virtual terminal. This terminal also appears in -# UNIX 4.0 and successors as line discipline 1 (?), but is +# Columbus UNIX virtual terminal. This terminal also appears in +# UNIX 4.0 and successors as line discipline 1 (?), but is # undocumented and does not really work quite right. cbunix|cb unix virtual terminal:\ :am:bs:da:db:\ @@ -3015,7 +3015,7 @@ vremote|virtual remote terminal:\ pty|4bsd pseudo teletype:\ :cm=\EG%+ %+ :se=\Eb$:so=\Ea$:ue=\Eb!:us=\Ea!:tc=cbunix: -# The codes supported by the term.el terminal emulation in GNU Emacs 19.30 +# The codes supported by the term.el terminal emulation in GNU Emacs 19.30 eterm|gnu emacs term.el terminal emulation:\ :am:mi:xn:\ :co#80:li#24:\ @@ -3027,7 +3027,7 @@ eterm|gnu emacs term.el terminal emulation:\ :sf=^J:so=\E[7m:ta=^I:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:\ :ue=\E[m:up=\E[A:us=\E[4m: -# Entries for use by the `screen' program by Juergen Weigert, +# Entries for use by the `screen' program by Juergen Weigert, # Michael Schroeder, Oliver Laumann. The screen and # screen-w entries came with version 3.7.1. The screen2 and screen3 entries # come from University of Wisconsin and may be older. @@ -3338,8 +3338,8 @@ sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history:\ # (wsiris: this had extension capabilities # :HS=\E7F2:HE=\E7F7:\ # :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite: -# See the note on Iris extensions near the end of this file. -# Finally, removed suboptimal :cl:=\EH\EJ and added :do: & +# See the note on Iris extensions near the end of this file. +# Finally, removed suboptimal :cl:=\EH\EJ and added :do: & # :vb: from BRL -- esr) wsiris|iris40|iris emulating a 40 line visual 50 (approximately):\ :am:bs:nc:pt:\ @@ -3453,7 +3453,7 @@ news-42-euc:\ news-42-sjis:\ :tc=news-42: # -# NEWS-OS old termcap entry +# NEWS-OS old termcap entry # # (news-old-unk: this had :KB=news:TY=sjis: --esr) news-old-unk|SONY NEWS vt100 emulator common entry:\ @@ -3684,7 +3684,7 @@ cygwin|ansi emulation for Cygwin:\ # but the termcap entry is actually broken and unusable as given; the :do: # capability is misspelled "d". # -# To use this, you need to a bunch of environment variables: +# To use this, you need to a bunch of environment variables: # # SET _POSIX_TERM=on # SET TERM=ansi @@ -3696,7 +3696,7 @@ cygwin|ansi emulation for Cygwin:\ # Important note: setting the TMP environment variable in POSIX style renders # it incompatible with a lot of other applications, including Visual C++. So # you should have a separate command window just for vi. All the other -# variables may be permanently set in the Control Panel\System applet. +# variables may be permanently set in the Control Panel\System applet. # # You can find out more about the restrictions of this facility at # <http://www.nentug.org/unix-to-nt/ntposix.htm>. @@ -3813,14 +3813,14 @@ altos7pc|alt7pc|altos PC VII:\ #### Hewlett-Packard (hp) # # Hewlett-Packard -# 8000 Foothills Blvd +# 8000 Foothills Blvd # Roseville, CA 95747 # Vox: 1-(916)-785-4363 (Technical response line for VDTs) # 1-(800)-633-3600 (General customer support) # # # As of March 1998, HP no longer has any terminals in production. -# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being +# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being # supported (they still have parts). So are the 2392a and 2394a. # See the WORKSTATION CONSOLES section for the 700s. # @@ -3845,9 +3845,9 @@ hp+pfk+cr|hp function keys with CR:\ hp+pfk-cr|hp function keys w/o CR:\ :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew: -# The hp2621s use the same keys for the arrows and function keys, -# but not separate escape sequences. These definitions allow the -# user to use those keys as arrow keys rather than as function +# The hp2621s use the same keys for the arrows and function keys, +# but not separate escape sequences. These definitions allow the +# user to use those keys as arrow keys rather than as function # keys. hp+pfk+arrows|hp alternate arrow definitions:\ :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:kF=\Er\r:kH=\Eq\r:kR=\Es\r:\ @@ -3871,16 +3871,16 @@ hp262x|HP 262x terminals:\ # Due to severe 2621 braindamage, the only way to get the arrow keys to # transmit anything at all is to turn on the function key labels # with :ks:, and even then the user has to hold down shift! -# The default 2621 turns off the labels except when it has to to -# enable the function keys. If your installation prefers labels -# on all the time, or off all the time (at the "expense" of the +# The default 2621 turns off the labels except when it has to to +# enable the function keys. If your installation prefers labels +# on all the time, or off all the time (at the "expense" of the # function keys), use 2621-nl or 2621-wl. -# -# Note: there are newer ROMs for 2621's that allow you to set -# strap A so the regular arrow keys xmit \EA, etc, as with the -# 2645. However, even with this strap set, the terminal stops +# +# Note: there are newer ROMs for 2621's that allow you to set +# strap A so the regular arrow keys xmit \EA, etc, as with the +# 2645. However, even with this strap set, the terminal stops # xmitting if you reset it, until you unset and reset the strap! -# Since there is no way to set/unset the strap with an escape +# Since there is no way to set/unset the strap with an escape # sequence, we don't use it in the default. # If you like, you can use 2621-ba (brain-damaged arrow keys). hp2621-ba|2621 w/new rom and strap A set:\ @@ -3910,7 +3910,7 @@ hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard:\ :kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:\ :ku=\EA:tc=hp2621: -# 2621 using all 48 lines of memory, only 24 visible at any time. +# 2621 using all 48 lines of memory, only 24 visible at any time. hp2621-48|48 line 2621:\ :li#48:\ :cm=\E&a%r%dc%dR:cv=\E&a%dR:ho=\EH:tc=hp2621: @@ -3919,38 +3919,38 @@ hp2621-48|48 line 2621:\ hp2621-nl|hp 2621 with no labels:\ :kd@:ke@:kh@:kl@:kr@:ks@:ku@:tc=hp2621-fl: -# Needed for UCB ARPAVAX console, since lsi-11 expands tabs +# Needed for UCB ARPAVAX console, since lsi-11 expands tabs # (wrong). # hp2621-nt|hp 2621 w/no tabs:\ :ta@:tc=hp2621: # Hp 2624 B with 4 or 10 pages of memory. -# -# Some assumptions are made with this entry. These settings are +# +# Some assumptions are made with this entry. These settings are # NOT set up by the initialization strings. -# +# # Port Configuration # RecvPace=Xon/Xoff # XmitPace=Xon/Xoff # StripNulDel=Yes -# +# # Terminal Configuration # InhHndShk=Yes # InhDC2=Yes # XmitFnctn(A)=No # InhEolWrp=No -# +# # Note: the 2624 DOES have a true :ho:, believe it or not! -# -# The 2624 has an "error line" to which messages can be sent. +# +# The 2624 has an "error line" to which messages can be sent. # This is CLOSE to what is expected for a "status line". However, -# after a message is sent to the "error line", the next carriage -# return is EATEN and the "error line" is turned back off again! +# after a message is sent to the "error line", the next carriage +# return is EATEN and the "error line" is turned back off again! # So I guess we can't define :hs:, :es:, :ws:, :ds:, :fs:, :ts:. -# -# This entry supports emacs (and any other program that uses raw -# mode) at 4800 baud and less. I couldn't get the padding right +# +# This entry supports emacs (and any other program that uses raw +# mode) at 4800 baud and less. I couldn't get the padding right # for 9600. # # (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr) @@ -3959,21 +3959,21 @@ hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B:\ :lm#96:\ :vb=\E&w13F\E&w12F\E&w13F\E&w12F:tc=hp+labels:tc=scrhp: -# This hp2626 entry does not use any of the fancy windowing stuff +# This hp2626 entry does not use any of the fancy windowing stuff # of the 2626. -# -# Indeed, terminfo does not yet handle such stuff. Since changing -# any window clears memory, it is probably not possible to use +# +# Indeed, terminfo does not yet handle such stuff. Since changing +# any window clears memory, it is probably not possible to use # this for screen opt. -# -# ed is incredibly slow most of the time - I am guessing at the -# exact padding. Since the terminal uses xoff/xon this is intended -# only for cost computation, so that the terminal will prefer el +# +# ed is incredibly slow most of the time - I am guessing at the +# exact padding. Since the terminal uses xoff/xon this is intended +# only for cost computation, so that the terminal will prefer el # or even dl1 which is probably faster! -# -# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only -# extra slow on the last line of the window. -# +# +# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only +# extra slow on the last line of the window. +# # The padding probably should be changed. # hp2626|hp2626a|hp2626p|hp 2626:\ @@ -3982,10 +3982,10 @@ hp2626|hp2626a|hp2626p|hp 2626:\ :SF=\E&r%dD:SR=\E&r%dU:cd=\ED\EJ\EC:ip=:is=\E&j@\r:\ :tc=hp+pfk+cr:tc=hp+labels:tc=scrhp: -# This entry is for sysline. It allocates a 23 line window with -# a 115 line workspace for regular use, and a 1 line window for +# This entry is for sysline. It allocates a 23 line window with +# a 115 line workspace for regular use, and a 1 line window for # the status line. -# +# # This assumes port 2 is being used. # Turn off horizontal line, Create ws #1 with 115 lines, # Create ws #2 with 1 line, Create window #1 lines 1-23, @@ -4031,7 +4031,7 @@ hp2627c|hp 2627 color (cyan) terminal with no labels:\ :is=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r:\ :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=hp2627a: -# hp2640a doesn't have the Y cursor addressing feature, and C is +# hp2640a doesn't have the Y cursor addressing feature, and C is # memory relative instead of screen relative, as we need. # hp2640a|hp 2640a:\ @@ -4066,14 +4066,14 @@ hp2645|hp45|HP 2645 series:\ hp2648|hp2648a|HP 2648a graphics terminal:\ :cl=\EH\EJ:cm=\E&a%r%dc%dY:dc=\EP:ip=:tc=hp2645: -# The HP 150 terminal is a fairly vanilla HP terminal, with the -# clreol standout problem. It also has graphics capabilities and +# The HP 150 terminal is a fairly vanilla HP terminal, with the +# clreol standout problem. It also has graphics capabilities and # a touch screen, which we don't describe here. hp150|hewlett packard Model 150:\ :bs:tc=hp2622: -# HP 2382a terminals, "the little ones." They don't have any -# alternate character set support and sending out ^N/^O will +# HP 2382a terminals, "the little ones." They don't have any +# alternate character set support and sending out ^N/^O will # leave the screen blank. hp2382a|hp2382|hewlett packard 2382a:\ :da:db:\ @@ -4132,8 +4132,8 @@ hp+printer|"standard" printer info for HP ttys:\ # The new hp2621b is kind of a cross between the old 2621 and the -# new 262x series of machines. It has dip-switched options. -# The firmware has a bug in it such that if you give it a null +# new 262x series of machines. It has dip-switched options. +# The firmware has a bug in it such that if you give it a null # length label, the following character is eaten! hp2621b|hp 2621b with old style keyboard:\ :Nl#8:lh#1:lm#48:lw#8:\ @@ -4155,15 +4155,15 @@ hp2621b-kx-p|hp 2621b with new keyboard & printer:\ # Some assumptions are made in the following entries. # These settings are NOT set up by the initialization strings. -# +# # Port Configuration # RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes -# +# # Terminal Configuration # InhHndShk(G)=Yes InhDC2(H)=Yes # XmitFnctn(A)=No InhEolWrp=No # -# +# # Hp 2622a & hp2623a display and graphics terminals # hp2622|hp2622a|hp 2622:\ @@ -4197,7 +4197,7 @@ hp+color|hp with colors:\ hp2397a|hp2397|hewlett packard 2397A color terminal:\ :is=\E&w6f80X:tc=memhp:tc=hp+labels:tc=hp+color: -# HP 700/44 Setup parameters: +# HP 700/44 Setup parameters: # Terminal Mode HP-PCterm # Inhibit Auto Wrap NO # Status Line Host Writable @@ -4207,7 +4207,7 @@ hp2397a|hp2397|hewlett packard 2397A color terminal:\ # Keycode Mode NO or YES (sc) # Backspace Key BS or BS/DEL # -# :is: sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; +# :is: sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; # \E\\? does not turn off keycode mode # <smsc> sets alternate start/stop; keycode on hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode:\ @@ -4246,10 +4246,10 @@ hpsub|hp terminals -- capability subset:\ # hpex: # May be used for most 24 x 80 hp terminals, -# but has no padding added, so may allow runover in some terminals at high -# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and -# hp98x5 terminal emulators or hp98x6 consoles. -# Adds xy-cursor addressing, vertical cursor addressing, home, +# but has no padding added, so may allow runover in some terminals at high +# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and +# hp98x5 terminal emulators or hp98x6 consoles. +# Adds xy-cursor addressing, vertical cursor addressing, home, # last line, and underline capabilities. # # (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:", @@ -4410,7 +4410,7 @@ dku7003|Honeywell Bull DKU 7003 all features described:\ # emulations (usually their stupidest, and usually labeled adm3, though # these `adm3' emulations normally have adm3a+ capabilities). # -# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a +# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a # `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator') # was being held to ground would trigger a send of the top line on the screen. # A quick fix might be to drop back to a cheesy 4-wire cable with pin 22 @@ -4483,15 +4483,15 @@ adm11|LSI ADM-11:\ # Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996 # (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had # :is:=\Eq but that looked wrong; this :is: is from Dave Yost <esquire!yost> -# via BRL. That entry asserted :sg#1:, but I've left that out because +# via BRL. That entry asserted :sg#1:, but I've left that out because # neither earlier nor later ADMSs have it -- esr) # # You will need to get into the supervisor setup before you can set # baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should # see a lot more setup options. -# +# # While in supervisor setup you can also use following codes: -# +# # Ctrl-P Personality character selections (configure for example what # arrow keys send, if I recall correctly) # Ctrl-T tabs 1-80 use left&right to move and up to set and @@ -4504,15 +4504,15 @@ adm11|LSI ADM-11:\ # Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds. # Ctrl-R Reads both setup and functions keys from NVM. # Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status -# +# # ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to # RTS/CTS used nowadays with virtually every modem and computer. 19200 # bps works fine with hardware flow control. -# +# # The following null-modem cable should fix this and enable you to use # RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also # set ADM-12+ for DTR handshaking from supervisor setup. -# +# # PC Serial ADM-12+ # -------- ------- # 2 - 3 @@ -4578,7 +4578,7 @@ adm22|lsi adm22:\ # + + # +-+ +-+ # + + -# + S5 S6 S7 + +# + S5 S6 S7 + # + == == == + # +----------------------------------------------+ # front of case (keyboard) @@ -4726,8 +4726,8 @@ adm42|lsi adm42:\ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:im=\Eq:ip=:kd=^J:kh=^^:\ :kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:pc=\177:sf=^J:ta=^I:ue@:\ :up=^K:us@:vs=\EC\E3 \E3(:tc=adm+sgr: -# The following termcap for the Lear Siegler ADM-42 leaves the -# "system line" at the bottom of the screen blank (for those who +# The following termcap for the Lear Siegler ADM-42 leaves the +# "system line" at the bottom of the screen blank (for those who # find it distracting otherwise) adm42-ns|lsi adm-42 with no system line:\ :al=\EE\EF \011:bt=\EI\EF \011:cd=\EY\EF \011:\ @@ -4816,11 +4816,11 @@ qvt101|qvt108|qume qvt 101 and QVT 108:\ :sg#1:tc=qvt101+: # This used to have :vs=\E.2: but no :ve: or :vi:. The BSD termcap -# file had :vs=\EM4 \200\200\200:. I've done the safe thing and yanked +# file had :vs=\EM4 \200\200\200:. I've done the safe thing and yanked # both. The :mr: is from BSD, which also claimed bold=\E( and dim=\E). # What seems to be going on here is that this entry was designed so that # the normal highlight is bold and standout is dim plus something else -# (reverse-video maybe? But then, are there two :mr: sequences?) +# (reverse-video maybe? But then, are there two :mr: sequences?) qvt101+|qvt101p|qume qvt 101 PLUS product:\ :am:bw:hs:ul:\ :co#80:li#24:sg#0:\ @@ -4911,7 +4911,7 @@ tvi803|televideo 803:\ # Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86 # Switch settings are: -# +# # S1 1 2 3 4 # D D D D 9600 # D D D U 50 @@ -4929,7 +4929,7 @@ tvi803|televideo 803:\ # U U D U 7200 # U U U D 9600 # U U U U 19200 -# +# # S1 5 6 7 8 # U D X D 7N1 (data bits, parity, stop bits) (X means ignored) # U D X U 7N2 @@ -4941,51 +4941,51 @@ tvi803|televideo 803:\ # D D X U 8N2 # D U D D 8O1 # D U U U 8E2 -# +# # S1 9 Autowrap # U on # D off -# +# # S1 10 CR/LF # U do CR/LF when CR received # D do CR when CR received -# +# # S2 1 Mode # U block # D conversational -# +# # S2 2 Duplex # U half # D full -# +# # S2 3 Hertz # U 50 # D 60 -# +# # S2 4 Edit mode # U local # D duplex -# +# # S2 5 Cursor type # U underline # D block -# +# # S2 6 Cursor down key # U send ^J # D send ^V -# +# # S2 7 Screen colour # U green on black # D black on green -# +# # S2 8 DSR status (pin 6) # U disconnected # D connected -# +# # S2 9 DCD status (pin 8) # U disconnected # D duplex -# +# # S2 10 DTR status (pin 20) # U disconnected # D duplex @@ -5016,7 +5016,7 @@ tvi910|televideo model 910:\ # U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2 # U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2 # D U D D 8O1 D U U U 8E2 -# +# # S1 9 Autowrap (U = on, D = off) # S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received) # S2 1 Mode (U = block, D = conversational) @@ -5056,8 +5056,8 @@ tvi912c|tvi912b|new televideo 912:\ # reset to page 0 when exiting curses application (\E-07 ) tvi912-2p|tvi920-2p|tvi-2p|televideo w/2 pages:\ :te=\E-07\s:ti=\E-17\s:tc=tvi912: -# We got some new tvi912c terminals that act really weird on the regular -# termcap, so one of our gurus worked this up. Seems that cursor +# We got some new tvi912c terminals that act really weird on the regular +# termcap, so one of our gurus worked this up. Seems that cursor # addressing is broken. tvi912cc|tvi912 at cowell college:\ :cm@:tc=tvi912c: @@ -5082,7 +5082,7 @@ tvi912cc|tvi912 at cowell college:\ # 9: Even parity Odd parity # 10: Steady cursor Blinking cursor # (On Rev E or lower, use W25 instead of switch 10.) -# +# # S5 UART/Terminal options: # Open Closed # 1: P3-6 Not connected DSR received on P3-6 @@ -5108,10 +5108,10 @@ tvi912cc|tvi912 at cowell college:\ # # S4/W31: Enables automatic LF upon receipt of CR from # remote or keyboard. -# S4/W32: Enables transmission of EOT at the end of Send. If not +# S4/W32: Enables transmission of EOT at the end of Send. If not # installed, a carriage return is sent. # S4/W33: Disables automatic carriage return in column 80. -# S4/W34: Selects Page Print Mode as initial condition. If not +# S4/W34: Selects Page Print Mode as initial condition. If not # installed, Extension Mode is selected. # tvi920b|tvi920c|new televideo 920:\ @@ -5195,19 +5195,19 @@ tvi924|televideo tvi924:\ # U U D U 7200 # U U U D 9600 # U U U U 19200 -# -# +# +# # Settings for word length and stop-bits (S1) # # Position Description -# 5 6 +# 5 6 # --------------------------- # U - 7-bit word # D - 8-bit word # - U 2 stop bits # - D 1 stop bit -# -# +# +# # S2 (external) settings # # Position Up Dn Description @@ -5220,19 +5220,19 @@ tvi924|televideo tvi924:\ # -------------------------------------------- # 3 X # 4 X No parity -# 5 X +# 5 X # -------------------------------------------- # 3 X # 4 X Odd parity -# 5 X +# 5 X # -------------------------------------------- # 3 X # 4 X Even parity -# 5 X +# 5 X # -------------------------------------------- -# 3 X +# 3 X # 4 X Mark parity -# 5 X +# 5 X # -------------------------------------------- # 3 X # 4 X Space parity @@ -5245,47 +5245,47 @@ tvi924|televideo tvi924:\ # 8 X # -------------------------------------------- # 7 X Full Duplex -# 8 X +# 8 X # -------------------------------------------- # 7 X Block mode -# 8 X +# 8 X # -------------------------------------------- # 9 X 50 Hz # X 60 Hz # -------------------------------------------- # 10 X CR/LF (Auto LF) # X CR only -# +# # S3 (internal switch) settings: -# +# # Position Up Dn Description # -------------------------------------------- -# 1 X Keyclick off +# 1 X Keyclick off # X Keyclick on # -------------------------------------------- # 2 X English -# 3 X +# 3 X # -------------------------------------------- # 2 X German -# 3 X +# 3 X # -------------------------------------------- # 2 X French -# 3 X +# 3 X # -------------------------------------------- # 2 X Spanish -# 3 X +# 3 X # -------------------------------------------- # 4 X Blinking block cursor -# 5 X +# 5 X # -------------------------------------------- # 4 X Blinking underline cursor -# 5 X +# 5 X # -------------------------------------------- # 4 X Steady block cursor -# 5 X +# 5 X # -------------------------------------------- # 4 X Steady underline cursor -# 5 X +# 5 X # -------------------------------------------- # 6 X Screen blanking timer (ON) # X Screen blanking timer (OFF) @@ -5323,7 +5323,7 @@ tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ # From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993 # Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82 -# for additional capabilities, +# for additional capabilities, # The following tvi descriptions from B:pjphar and virus!mike # is for all 950s. It sets the following attributes: # full duplex (\EDF) write protect off (\E() @@ -5342,11 +5342,11 @@ tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ # start-protected field delimiter (\Ex2\200\200) # end-protected field delimiter (\Ex3\200\200) # set end of text delimiter to carriage return/null (\Ex4\r\200) -# +# # TVI 950 Switch Setting Reference Charts -# +# # TABLE 1: -# +# # S1 1 2 3 4 5 6 7 8 9 10 # +-----------------------+-----+-----+-----------------------+ # | Computer Baud Rate |Data |Stop | Printer Baud Rate | @@ -5356,8 +5356,8 @@ tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ # +------+-----------------------+-----+-----+-----------------------+ # | Down | TABLE 2 | 8 | 1 | TABLE 2 | # +------+-----------------------+-----+-----+-----------------------+ -# -# +# +# # S2 1 2 3 4 5 6 7 8 9 10 # +-----+-----+-----------------+-----+-----------+-----+-----+ # |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click| @@ -5366,9 +5366,9 @@ tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ # +------+-----+-----+-----------------+-----+-----------+-----+-----+ # | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On | # +------+-----+-----+-----------------+-----+-----------+-----+-----+ -# +# # TABLE 2: -# +# # +-----------+-----+-----+-----+-----+-----------+ # | Display | 1 | 2 | 3 | 4 | Baud | # +-----------+-----+-----+-----+-----+ | @@ -5391,7 +5391,7 @@ tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ # | D | U | U | U | 9600 | # | U | U | U | U | 19200 | # +-----+-----+-----+-----+-----------+ -# +# # TABLE 3: # +-----+-----+-----+-----------+ # | 3 | 4 | 5 | Parity | @@ -5403,7 +5403,7 @@ tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ # | U | U | U | Space | # +-----+-----+-----+-----------+ # X = don't care -# +# # CHART: # +-----+-----+-----------------+ # | 7 | 8 | Communication | @@ -5413,11 +5413,11 @@ tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ # | U | D | Block | # | U | U | Local | # +-----+-----+-----------------+ -# -# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:". -# I also inserted :ic: and :kI:; the :ko: string indicated that :IC: +# +# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:". +# I also inserted :ic: and :kI:; the :ko: string indicated that :IC: # should be present and all tvi native modes use the same string for this. -# Finally, note that BSD has cud1=^V. -- esr) +# Finally, note that BSD has cud1=^V. -- esr) tvi950|televideo 950:\ :am:bs:hs:mi:ms:xn:xo:\ :co#80:it#8:li#24:sg#1:\ @@ -5532,11 +5532,11 @@ tvi970-2p|televideo 970 with using 2 pages of memory:\ :te=\E[H\E[J\E[V:ti=\E[U\E[?20l\E[?7h\E[1Q:tc=tvi970: # Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars # per line (rather than 40), Esc K chooses the normal character set. Not sure -# padding is needed, but adapted from the tvi920c termcap. The :so: and +# padding is needed, but adapted from the tvi920c termcap. The :so: and # :us: strings are klutzy, but at least use no screen space. # (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>, # its absence means <smam>=\Ev isn't safe to use. -- esr) -# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84. +# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84. # The :cd:/:k0:/:k1:/:kh:/<mc4>, and <mc5> caps are from BRL, which says: # F1 and F2 should be programmed as ^A and ^B; required for UNIFY. tvipt|televideo personal terminal:\ @@ -5582,7 +5582,7 @@ tvi9065|televideo 9065:\ # Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs> # Recently I hacked together the following termcap for Visual # Technology's Visual 50 terminal. It's a slight modification of -# the vt52 termcap. +# the vt52 termcap. # It's intended to run when the Visual 50 is in vt52 emulation mode # (I know what you're thinking; if it's emulating a vt52, then why # another termcap? Well, it turns out that the Visual 50 can handle @@ -5840,7 +5840,7 @@ wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell:\ # To further complicate things one of the attributes must be # black (either the foreground or the background). In reverse video # the background changes color with black letters. In normal video -# the foreground changes colors on a black background. +# the foreground changes colors on a black background. # This terminfo uses some of the more advanced features of curses # to display both color and blink. In the final analysis I am not # sure that the wy350 runs better with this terminfo than it does @@ -6322,7 +6322,7 @@ wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns:\ # (instead of application), and change \E[ to \233 for all the keys in # terminfo. At one point, I found some reference indicating that this # terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just -# me), but I can't find that and the server under my bookmark to "Wyse +# me), but I can't find that and the server under my bookmark to "Wyse # Technical" isn't responding. So there's the question of wether the wy85 # terminfo should reflect the manufactuer's intended behaviour of the terminal # or the actual." @@ -6433,7 +6433,7 @@ wy325|wyse325|Wyse epc:\ :up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:tc=adm+sgr: # -# lines 24 columns 80 vb +# lines 24 columns 80 vb # wy325-vb|wyse325-vb|wyse-325 with visual bell:\ :bl@:tc=wy325: @@ -6457,7 +6457,7 @@ wy325-25w|wyse325-25w|wy325 132 columns:\ :Nl@:lh@:li#25:lw@:\ :pn@:r3=\EwG\Ee):tc=wy325-w: # -# lines 25 columns 132 vb +# lines 25 columns 132 vb # wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video:\ :bl@:tc=wy325-w: @@ -6475,7 +6475,7 @@ wy325-42w|wyse325-42w|wyse-325 42 lines wide mode:\ :Nl@:lh@:li#42:lw@:\ :pn@:r3=\EwG\Ee):tc=wy325-w: # -# lines 42 columns 132 vb +# lines 42 columns 132 vb # wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell:\ :bl@:tc=wy325-w: @@ -6492,7 +6492,7 @@ wy325-43w|wyse325-43w|wyse-325 43 lines wide mode:\ :Nl@:lh@:li#43:lw@:\ :pn@:r3=\EwG\Ee):tc=wy325-w: # -# lines 43 columns 132 vb +# lines 43 columns 132 vb # wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell:\ :bl@:tc=wy325-w: @@ -6621,7 +6621,7 @@ wy370-tek|Wyse 370 Tektronix 4010/4014 emulator:\ # #TITLE: TERMINFO ENTRY WY520 #DATE: 8/5/93 -# The WY520 terminfo is based on the WY285 entry published on the WYSE +# The WY520 terminfo is based on the WY285 entry published on the WYSE # BBS with the addition of more function keys and special keys. # # rs1 -> set personality @@ -6951,7 +6951,7 @@ vt320-k311|dec vt320 series as defined by kermit 3.11:\ # level 0: # ^L -- clear window/reset current attribute to default # ^V^A%p1%c -- set current color attribute, parameter decodes as follows: -# +# # bit: 6 5 4 3 2 1 0 # | | | | | # +---+---+ | +---+---+ @@ -6962,8 +6962,8 @@ vt320-k311|dec vt320 series as defined by kermit 3.11:\ # level 0+: # ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines # ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines -# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1 -# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1 +# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1 +# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1 # (^V^L and ^V^M set the current attribute as a side-effect.) # ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes # in the pattern, <c> the number of times the pattern @@ -6980,7 +6980,7 @@ vt320-k311|dec vt320 series as defined by kermit 3.11:\ # ^V^T -- change highlight at current cursor poition to %c # ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b> # ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c -# -- define window +# -- define window # # From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 # (The :mb:/:md:/:mr:/:as:/:us:/:so: capabilities exist only to @@ -7041,14 +7041,14 @@ rbcomm-w|IBM PC with RBcomm in 132 column mode:\ # Command Character is 0xFE (decimal 254, octal 376) # # On this device, cursor addressability isn't possible. The LCD expects: -# 0xfe G <col> <row> +# 0xfe G <col> <row> # for cup: %p1 == row and %p2 is column # # This line: # cup=\376G%p2%c%p1%c -# LOOKS like it will work, but sometimes only one of the two numbers is sent. +# LOOKS like it will work, but sometimes only one of the two numbers is sent. # See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'. -# +# # Alas, there is no cursor upline capability on this display. # # These entries add some 'sanity stuff' to the clear function. That is, it @@ -7109,7 +7109,7 @@ att2350|AT&T 2350 Video Information Terminal 80 column mode:\ # bold= reverse + underline = 2 | 3. # note that half-bright blinking doesn't look different from normal blinking. # NOTE:you must program the function keys first, label second! -# (att4410: a BSD entry has been seen with the following capabilities: +# (att4410: a BSD entry has been seen with the following capabilities: # :is=\E[?6l:, :k1=\EOc:, :k2=\EOd:, :k3=\EOe:, :k4=\EOg:, # :k6=\EOh:, :k7=\EOi:, :k8=\EOj:, -- esr) # (untranslatable capabilities removed to fit entry within 1023 bytes) @@ -7162,7 +7162,7 @@ v5410|att5410 in terms of a vt100:\ :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ :ue=\E[m:up=\E[A:us=\E[4m: -# +# # Teletype Model 5420 -- A souped up 5410, with multiple windows, # even! the 5420 has three modes: scroll, window or page mode # this terminfo should work in scroll or window mode, but doesn't @@ -7190,7 +7190,7 @@ v5410|att5410 in terms of a vt100:\ # :i3: set screen color to black, # No representation in terminfo for the delete word key: kdw1=\Ed # Key capabilities assume the power-up send sequence... -# This :te: is not strictly necessary, but it helps maximize +# This :te: is not strictly necessary, but it helps maximize # memory usefulness: :te=\Ez:, # Alternate sgr0: :me=\E[m\EW^O:, # Alternate sgr: :sa=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;:, @@ -7232,7 +7232,7 @@ att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv:\ # Note that this mode permits programming USER PF KEYS and labels # However, when you program user pf labels you have to reselect -# user pf keys to make them appear! +# user pf keys to make them appear! att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels:\ :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ :..pn=\E[%p1%d;0;0;1q%p2%\:-16.16s:\ @@ -7309,13 +7309,13 @@ att4420|tty4420|teletype 4420:\ # The following is a terminfo entry for the Teletype 4424 # asynchronous keyboard-display terminal. It supports # the vi editor. The terminal must be set up as follows, -# +# # HIGHLIGHT DEFINITION 3-TONE # DISPLAY FUNCTION GROUP III -# +# # The second entry below provides limited (a la adm3a) # operation under GROUP II. -# +# # This must be used with DISPLAY FUNCTION GROUP I or III # and HIGHLIGHT DEFINITION 3-TONE # The terminal has either bold or blink, depending on options @@ -7356,12 +7356,12 @@ att4424m|tty4424m|teletype 4424M:\ :nd=\E[C:nw=^M^J:se=\E[m:sf=^J:so=\E[7m:sr=\ET:ta=^I:\ :ue=\E[m:up=\E[A:us=\E[4m: -# The Teletype 5425 is really version 2 of the Teletype 5420. It -# is quite similar, except for some minor differences. No page -# mode, for example, so all of the :cm: sequences used above have -# to change back to what's being used for the 5410. Many of the +# The Teletype 5425 is really version 2 of the Teletype 5420. It +# is quite similar, except for some minor differences. No page +# mode, for example, so all of the :cm: sequences used above have +# to change back to what's being used for the 5410. Many of the # option settings have changed their numbering as well. -# +# # This has been tested on a preliminary model. # # (att5425: added <rmam>/<smam> based on the init string -- esr) @@ -7396,7 +7396,7 @@ att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode:\ :co#132:lm#54:ws#97:\ :i1=\E[?3h:tc=tty5425: -# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:. +# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:. # I also added <rmam>/<smam> -- esr) att4426|tty4426|teletype 4426S:\ :am:da:db:xo:\ @@ -7417,7 +7417,7 @@ att4426|tty4426|teletype 4426S:\ :us=\E[4m: # Terminfo entry for the AT&T 510 A Personal Terminal -# Function keys 9 - 16 are available only after the +# Function keys 9 - 16 are available only after the # screen labeled (soft keys/action blocks) are labeled. Function key # 9 corresponds to the leftmost touch target on the screen, # function key 16 corresponds to the rightmost. @@ -7450,9 +7450,9 @@ att510a|bct510a|AT&T 510A Personal Terminal:\ # Function key 9 corresponds to the leftmost touch target on the screen, # function key 16 corresponds to the rightmost. # -# There are problems with soft key labeling. These are due to +# There are problems with soft key labeling. These are due to # strangenesses in the native terminal that are impossible to -# describe in a terminfo. +# describe in a terminfo. # (untranslatable capabilities removed to fit entry within 1023 bytes) # (sgr removed to fit entry within 1023 bytes) # (acsc removed to fit entry within 1023 bytes) @@ -7742,9 +7742,9 @@ att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines:\ # ESC [ 50;4| set 700 native mode (really is 605) # x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line) # ESC [ 53;0| set GenFlow to Xon/Xoff -# ESC [ 8 ;0| set CR on NL +# ESC [ 8 ;0| set CR on NL # x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h) -# ESC [ ? 4 l jump scroll +# ESC [ ? 4 l jump scroll # ESC [ ? 5 l/h video: normal (l); reverse (h) # ESC [ ?13 l Labels on # ESC [ ?15 l parity check = no @@ -7766,7 +7766,7 @@ att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines:\ # and the rmso/smso settings from the 730. # # Note: For the same reason as above in rmso I changed exit under-score mode -# to specifically turn off underscore, rather than return to all normal +# to specifically turn off underscore, rather than return to all normal # attributes # # Note: The following pkey_xmit is taken from the 605V2 which contained the @@ -7838,7 +7838,7 @@ att700|AT&T 700 24x80 column display w/102key keyboard:\ # att730 has status line of 80 chars # These were commented out: :SF=\E[%p1%dS:, :SR=\E[%p1%dT:, # the <kf25> and up keys are used for shifted system Fkeys -# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is +# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is # currently the same as :kh: (unshifted HOME or \E[H). On the 102, 102+1 # and 122 key keyboards, the 730's translation is \E[2J. For consistency # <kHOM> has been commented out. The user can uncomment <kHOM> if using the @@ -7921,7 +7921,7 @@ att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version:\ # # MAIL # -# version 1 note: +# version 1 note: # The character string sent by key 'kf26' may be user programmable # to send either \E[16s, or \E[26s. # The character string sent by key 'krfr' may be user programmable @@ -8136,7 +8136,7 @@ ampex219w|ampex-219w|amp219w|Ampex 132 cols:\ :co#132:li#24:\ :bl=^G:cr=^M:do=^J:is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\ :sf=^J:tc=ampex219: -# (ampex232: removed :if=/usr/share/tabset/ampex:, no file and no :st: --esr) +# (ampex232: removed :if=/usr/share/tabset/ampex:, no file and no :st: --esr) ampex232|ampex-232|Ampex Model 232:\ :am:\ :co#80:li#24:sg#1:\ @@ -8145,7 +8145,7 @@ ampex232|ampex-232|Ampex Model 232:\ :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\ :k8=^AH\r:k9=^AI\r:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ :mk@:nd=^L:ta=^I:up=^K:vb=\Eb\Ed:ve=\E.4:vi=\E.0:tc=adm+sgr: -# (ampex: removed :if=/usr/share/tabset/amp-132:, no file and no :st: -- esr) +# (ampex: removed :if=/usr/share/tabset/amp-132:, no file and no :st: -- esr) ampex232w|Ampex Model 232 / 132 columns:\ :co#132:li#24:\ :is=\E\034Eg\El:tc=ampex232: @@ -8505,8 +8505,8 @@ aaa-rv-unk|ann arbor unknown type:\ # Fax: (516)-342-7378 # Web: http://boundless.com # -# Their voice mail used to describe the place as "SunRiver (formerly ADDS)". -# In 1995 Boundless acquired DEC's terminals business. +# Their voice mail used to describe the place as "SunRiver (formerly ADDS)". +# In 1995 Boundless acquired DEC's terminals business. # # Regent: lowest common denominator, works on all regents. @@ -8553,7 +8553,7 @@ screwpoint|adds viewpoint with ^O bug:\ :se@:so@:ue@:us@:vs@:tc=viewpoint: # From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92 -# The :vi:/:ve:/:sa:/:me: strings were added by ESR from specs. +# The :vi:/:ve:/:sa:/:me: strings were added by ESR from specs. # Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000, # underline=01100000, rev=01010000, blink=01000010,dim=01000001, # invis=01000100 and %c is the logical or of desired attributes. @@ -8657,7 +8657,7 @@ cit101e|C. Itoh CIT-101e:\ # terminal. Then change any options you want (provided that they are # compatible with the termcap). For my terminal I set: Screen # Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver: -# on. I also set up mine for parity (but you may not need it). Then +# on. I also set up mine for parity (but you may not need it). Then # save the setup with ^S. # (cit101e-rv: added empty :te: to suppress a tic warning. --esr) cit101e-rv|Citoh CIT-101e (sets reverse video):\ @@ -8791,7 +8791,7 @@ cdc756|CDC 756:\ # CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL. # # Part of the long initialization string defines the "DOWN" key to the left -# of the tab key to send an ESC. The real ESC key is positioned way out +# of the tab key to send an ESC. The real ESC key is positioned way out # in right field. # # The termcap won't work in 132 column mode due to the way it it moves the @@ -8814,7 +8814,7 @@ cdc721-esc|Control Data 721:\ #### Getronics # -# Getronics is a Dutch electronics company that at one time was called +# Getronics is a Dutch electronics company that at one time was called # `Geveke' and made async terminals; but (according to the company itself!) # they've lost all their documentation on the command set. The hardware # documentation suggests the terminals were actually manufactured by a @@ -8866,7 +8866,7 @@ visa50|geveke visa 50 terminal in ansi 80 character mode:\ # Vox: (610)-277-8300 # Fax: (610)-275-5739 # Net: support@hds.com -# +# # John Martin <john@hds.com> is their termcap expert. They're mostly out of # the character-terminal business now (1995) and making X terminals. In # particular, the whole `Concept' line described here was discontinued long @@ -8879,29 +8879,29 @@ visa50|geveke visa 50 terminal in ansi 80 character mode:\ # # There seem to be a number of different versions of the C108 PROMS # (with bug fixes in its Z-80 program). -# +# # The first one that we had would lock out the keyboard of you # sent lots of short lines (like /usr/dict/words) at 9600 baud. # Try that on your C108 and see if it sends a ^S when you type it. # If so, you have an old version of the PROMs. -# +# # You should configure the C108 to send ^S/^Q before running this. # It is much faster (at 9600 baud) than the c100 because the delays # are not fixed. # new status line display entries for c108-8p: -# :i3: - init str #3 - setup term for status display - -# set programmer mode, select window 2, define window at last +# :i3: - init str #3 - setup term for status display - +# set programmer mode, select window 2, define window at last # line of memory, set bkgnd stat mesg there, select window 0. -# -# :ts: - to status line - select window 2, home cursor, erase to +# +# :ts: - to status line - select window 2, home cursor, erase to # end-of-window, 1/2 bright on, goto(line#0, col#?) -# +# # :fs: - from status line - 1/2 bright off, select window 0 -# -# :ds: - disable status display - set bkgnd status mesg with +# +# :ds: - disable status display - set bkgnd status mesg with # illegal window # -# -# There are probably more function keys that should be added but +# +# There are probably more function keys that should be added but # I don't know what they are. # # No delays needed on c108 because of ^S/^Q handshaking @@ -8929,42 +8929,42 @@ c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mod :ti=\EU\Ev 8\001D\Ep\r:tc=c108-8p: # Concept 100: -# These have only window relative cursor addressing, not screen -# relative. To get it to work right here, smcup/rmcup (which -# were invented for the concept) lock you into a one page +# These have only window relative cursor addressing, not screen +# relative. To get it to work right here, smcup/rmcup (which +# were invented for the concept) lock you into a one page # window for screen style programs. -# +# # To get out of the one page window, we use a clever trick: -# we set the window size to zero ("\Ev " in rmcup) which the -# terminal recognizes as an error and resets the window to all +# we set the window size to zero ("\Ev " in rmcup) which the +# terminal recognizes as an error and resets the window to all # of memory. -# +# # This trick works on c100 but does not on c108, sigh. -# -# Some tty drivers use cr3 for concept, others use nl3, hence -# the delays on cr and ind below. This padding is only needed at -# 9600 baud and up. One or the other is commented out depending on +# +# Some tty drivers use cr3 for concept, others use nl3, hence +# the delays on cr and ind below. This padding is only needed at +# 9600 baud and up. One or the other is commented out depending on # local conventions. -# -# 2 ms padding on :te: isn't always enough. 6 works fine. Maybe +# +# 2 ms padding on :te: isn't always enough. 6 works fine. Maybe # less than 6 but more than 2 will work. -# -# Note: can't use function keys f7-f10 because they are -# indistinguishable from arrow keys (!), also, del char and +# +# Note: can't use function keys f7-f10 because they are +# indistinguishable from arrow keys (!), also, del char and # clear eol use xon/xoff so they probably won't work very well. -# -# Also note that we don't define insrt/del char/delline/eop/send -# because they don't transmit unless we reset them - I figured +# +# Also note that we don't define insrt/del char/delline/eop/send +# because they don't transmit unless we reset them - I figured # it was a bad idea to clobber their definitions. -# -# The <mc5> sequence changes the escape character to ^^ so that -# escapes will be passed through to the printer. Only trouble -# is that ^^ won't be - ^^ was chosen to be unlikely. -# Unfortunately, if you're sending raster bits through to be +# +# The <mc5> sequence changes the escape character to ^^ so that +# escapes will be passed through to the printer. Only trouble +# is that ^^ won't be - ^^ was chosen to be unlikely. +# Unfortunately, if you're sending raster bits through to be # plotted, any character you choose will be likely, so we lose. # -# \EQ"\EY(^W (send anything from printer to host, for xon/xoff) -# cannot be # in is2 because it will hang a c100 with no printer +# \EQ"\EY(^W (send anything from printer to host, for xon/xoff) +# cannot be # in is2 because it will hang a c100 with no printer # if sent twice. c100|concept100|concept|c104|c100-4p|hds concept 100:\ :am:bs:eo:mi:ul:xn:\ @@ -9140,7 +9140,7 @@ oc100|oconcept|c100-1p|old 1 page concept 100:\ # #------- flash=\E[8;3!}^G\E[3;3!} #------- flash=\E[?5h$<100>\E[?5l -# There are two ways to flash the screen, both of which have their drawbacks. +# There are two ways to flash the screen, both of which have their drawbacks. # The first is to set the bell mode to video, transmit a bell character, and # set the bell mode back - but to what? There is no way of knowing what the # user's old bell setting was before we messed with it. Worse, the command to @@ -9164,7 +9164,7 @@ oc100|oconcept|c100-1p|old 1 page concept 100:\ # #------- dim= Not available in power on mode. # You have a choice of defining low intensity characters as "half bright" and -# high intensity as "normal", or defining low as "normal" and high as "bold". +# high intensity as "normal", or defining low as "normal" and high as "bold". # No matter which you choose, only one of either "half bright" or "bold" is # available at any time, so taking the time to override the default is # pointless. @@ -9193,7 +9193,7 @@ oc100|oconcept|c100-1p|old 1 page concept 100:\ # [DEL chosen as delimiter, but could be any character] # [implied: ELSE do nothing] # %; ENDIF -# +# #------- rs2= # Not defined since anything it might do could be done faster and easier with # either Meta-Shift-Reset or the main power switch. @@ -9307,10 +9307,10 @@ avt-w-rv|avt-w-rv-s|avt wide+status+rv:\ :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\ :vb=\E[=205l\E[=205h:tc=avt+s:tc=avt-ns: -#### Contel Business Systems. +#### Contel Business Systems. # -# Contel c300 and c320 terminals. +# Contel c300 and c320 terminals. contel300|contel320|c300|Contel Business Systems C-300 or C-320:\ :am:in:xo:\ :co#80:li#24:sg#1:\ @@ -9332,7 +9332,7 @@ contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321:\ # # DG terminals have function keys that respond to the SHIFT and CTRL keys, # e.g., SHIFT-F1 generates a different code from F1. To number the keys -# sequentially, first the unmodified key codes are listed as F1 through F15. +# sequentially, first the unmodified key codes are listed as F1 through F15. # Then their SHIFT versions are listed as F16 through F30, their CTRL versions # are listed as F31 through F45, and their CTRL-SHIFT versions are listed as # F46 through F60. This is done in the private "includes" below whose names @@ -9425,7 +9425,7 @@ dg+fixed|Fixed color info for DG D430C terminals in DG mode:\ :tc=dgunix+fixed: # Video attributes are coordinated using static variables set by "sgr", then -# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings. +# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings. # (D=dim, U=underline, B=blink, R=reverse.) dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode:\ :ut:\ @@ -9540,12 +9540,12 @@ dg460-ansi|Data General Dasher 460 in ANSI-mode:\ :mh=\E[2m:mr=\E[7m:nd=\E[C:nl=\ED:se=\E[m:sf=\E[S:so=\E[7m:\ :sr=\E[T:ta=^I:ue=\E[05:up=\E[A:us=\E[4m: # From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official) -# Data General 605x +# Data General 605x # Ought to work for a Model 6242, Type D210 as well as a 605x. # Note that the cursor-down key transmits ^Z. Job control users, beware! # This also matches a posted description of something called a `Dasher 100' -# so there's a dg100 alias here. -# (dg6053: the 4.4BSD file had :le=^H:, :do=^J:, :nd=^S:. -- esr) +# so there's a dg100 alias here. +# (dg6053: the 4.4BSD file had :le=^H:, :do=^J:, :nd=^S:. -- esr) dg6053-old|dg100|data general 6053:\ :am:bs:bw:ul:\ :co#80:li#24:\ @@ -10020,7 +10020,7 @@ d578-7b|Data General DASHER D578 in 7-bit mode:\ #### Datamedia (dm) # -# Datamedia was headquartered in Nashua, New Hampshire until it went +# Datamedia was headquartered in Nashua, New Hampshire until it went # out of business in 1993, but the ID plates on the terminals referred # to the factory in Pennsauken, NJ. The factory was sold to a PCB board # manufacturer which threw out all information about the terminals. @@ -10043,7 +10043,7 @@ dm1520|dm1521|datamedia 1520:\ :co#80:it#8:li#24:\ :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\ :kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:nd=^\:sf=^J:ta=^I:up=^_: -# dm2500: this terminal has both :IC: and :im:. Applications using +# dm2500: this terminal has both :IC: and :im:. Applications using # termcap/terminfo directly (rather than through ncurses) might be confused. dm2500|datamedia2500|datamedia 2500:\ :bs:nc:\ @@ -10080,27 +10080,27 @@ dm3045|datamedia 3045a:\ # Autorepeat 0=off 1=on # Screen 0=Dark 1=light # Cursor 0=u/l 1=block -# +# # 2 Margin Bell 0=off 1=on # Keyclick 0=off 1=on # Ansi/VT52 0=VT52 1=Ansi # Xon/Xoff 0=Off 1=On -# +# # 3 Shift3 0=Hash 1=UK Pound # Wrap 0=Off 1=On # Newline 0=Off 1=On # Interlace 0=Off 1=On -# +# # 4 Parity 0=Odd 1=Even # Parity 0=Off 1=On # Bits/Char 0=7 1=8 # Power 0=60Hz 1=50Hz -# +# # 5 Line Interface 0=EIA 1=Loop # Aux Interface 0=EIA 1=Loop -# Local Copy 0=Off 1=On +# Local Copy 0=Off 1=On # Spare -# +# # 6 Aux Parity 0=Odd 1=Even # Aux Parity 0=Off 1=On # Aux Bits/Char 0=7 1=8 @@ -10227,7 +10227,7 @@ beacon|FCG Beacon System:\ #### Fluke # -# The f1720a differences from ANSI: no auto margin, destructive +# The f1720a differences from ANSI: no auto margin, destructive # tabs, # of lines, funny highlighting and underlining f1720|f1720a|fluke 1720A:\ :xt:\ @@ -10266,7 +10266,7 @@ f100-rv|freedom-rv|freedom 100 in reverse video:\ # as ^V, the Control Character Quoting capability (^V in insert mode) # is lost! It cannot be remapped in vi because it is necessary to enter # a ^V to to quote the ^V that is being remapped!!! -# +# # f110/f200 users will have to decide whether # to lose the down cursor key or the quoting capability. We will opt # initially for leaving the quoting capability out, since use of VI @@ -10369,58 +10369,58 @@ go225|go-225|Graphon 225:\ # so we must have early Superbee2 (Model 600, according to phone conversation # with mfr.). It has proved reliable except for some missing padding # (notably after \EK and <nl> at bottom of screen). -# -# The key idea is that AEP mode is poison for :cm: & that US's in -# the local memory should be avoided like the plague. That means -# that the 2048 character local buffer is used as 25 lines of 80 -# characters, period. No scrolling local memory, folks. It also +# +# The key idea is that AEP mode is poison for :cm: & that US's in +# the local memory should be avoided like the plague. That means +# that the 2048 character local buffer is used as 25 lines of 80 +# characters, period. No scrolling local memory, folks. It also # appears that we cannot use naked INS LINE feature since it uses -# US. The sbi fakes :al: with an 80-space insert that may be too -# slow at low speeds; also spaces get converted to \040 which is +# US. The sbi fakes :al: with an 80-space insert that may be too +# slow at low speeds; also spaces get converted to \040 which is # too long for some programs (not vi). DEL LINE is ok but slow. -# -# The <nl> string is designed for last line of screen ONLY; cup to +# +# The <nl> string is designed for last line of screen ONLY; cup to # 25th line corrects the motion inherent in scrolling to Page 1. -# +# # There is one understood bug. It is that the screen appears to -# pop to a new (blank) page after a :nw:, or leave a half-line -# ellipsis to a quad that is the extra 48 memory locations. The -# data received is dumped into memory but not displayed. Not to -# worry if :cm: is being used; the lines not displayed will be, -# whenever the cursor is moved up there. Since :cm: is addressed -# relative to MEMORY of window, nothing is lost; but beware of +# pop to a new (blank) page after a :nw:, or leave a half-line +# ellipsis to a quad that is the extra 48 memory locations. The +# data received is dumped into memory but not displayed. Not to +# worry if :cm: is being used; the lines not displayed will be, +# whenever the cursor is moved up there. Since :cm: is addressed +# relative to MEMORY of window, nothing is lost; but beware of # relative cursor motion (:up:,:do:,:nd:,:le:). Recommended, # therefore, is setenv MORE -c . -# +# # WARNING: Not all features tested. -# -# Timings are assembled from 3 sources. Some timings may reflect +# +# Timings are assembled from 3 sources. Some timings may reflect # SB2/Model 300 that were used if more conservative. # Tested on a Model 600 at 1200 and 9600 bd. -# -# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly -# placed on the keyboard and useless because of AEP, is made +# +# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly +# placed on the keyboard and useless because of AEP, is made # into a backspace key. In use ESC must be pressed twice (to send) -# and sending ^C must be prefixed by ESC to avoid that weird +# and sending ^C must be prefixed by ESC to avoid that weird # transmit mode associated with ENTER key. -# -# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across -# the screen, then it has dropped into ENTER mode; hit +# +# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across +# the screen, then it has dropped into ENTER mode; hit # RESET--ONLINE--!tset. -# -# As delivered this machine has a FATAL feature that will throw -# it into that strange transmit state (SPOW) if the space bar is -# hit after a CR is received, but before receiving a LF (or a +# +# As delivered this machine has a FATAL feature that will throw +# it into that strange transmit state (SPOW) if the space bar is +# hit after a CR is received, but before receiving a LF (or a # few others). -# -# The circuits MUST be modified to eliminate the SPOW latch. -# This is done by strapping on chip A46 of the I/O board; cut -# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that +# +# The circuits MUST be modified to eliminate the SPOW latch. +# This is done by strapping on chip A46 of the I/O board; cut +# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that # chip. This mod has been checked out on a Mod 600 of Superbee II. -# With this modification absurdly high timings on cr are +# With this modification absurdly high timings on cr are # unnecessary. -# -# NOTE WELL that the rear panel switch should be set to CR/LF, +# +# NOTE WELL that the rear panel switch should be set to CR/LF, # not AEP! # sb1|beehive superbee:\ @@ -10578,7 +10578,7 @@ hz1500|hazeltine 1500:\ :kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:\ :up=~^L: # h1510 assumed to be in sane escape mode. Else use h1500. -# (h1510: early versions of this entry apparently had ":se=\E^_:, +# (h1510: early versions of this entry apparently had ":se=\E^_:, # :so=\E^Y:, but these caps were commented out in 8.3; also, # removed incorrect and overridden ":do=^J:" -- esr) hz1510|hazeltine 1510:\ @@ -10628,7 +10628,7 @@ hz2000|hazeltine 2000:\ # characters very fast vi seems not able to keep up and hangs while trying # to insert. That's in insert mode while trying to insert in the middle of # a line. It might be because the Esprit doesn't have insert char and delete -# char as a built in function. Vi has to delete to end of line and then +# char as a built in function. Vi has to delete to end of line and then # redraw the rest of the line. esprit|Hazeltine Esprit I:\ :am:bs:bw:\ @@ -10685,7 +10685,7 @@ ibm3151|IBM 3151 display:\ :ae=\E>B:as=\E>A:is=\E S:me=\E4@\E>B:rs=\E S:s0=\E>B:\ :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;:\ :te=\E>B:ti=\E>B:tc=ibm3162: -# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992 +# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992 # removed kend, knp, kpp -TD ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display:\ :am:bs:mi:ms:\ @@ -10747,7 +10747,7 @@ ibmaed|IBM Experimental display:\ :vb=\EG: ibm-apl|apl|IBM apl terminal simulator:\ :li#25:tc=dm1520: -# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'. +# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'. # Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr) ibmmono|IBM workstation monochrome:\ :es:hs:\ @@ -10882,7 +10882,7 @@ ibm8514-c|IBM 8514 color display with standout and underline:\ :nw=^M^J:sf=^J:ta=^I:..ts=\Ej\EYI%+ \Eo:tc=ibmega-c: # -# AIX entries. IBM ships these with AIX 3.2.5. +# AIX entries. IBM ships these with AIX 3.2.5. # -- added rc, sc based on manpage -TD aixterm|IBM Aixterm Terminal Emulator:\ :es:hs:\ @@ -10937,7 +10937,7 @@ infoton:\ # The ICL6402 was actually the Kokusai Display System 6402. # The 6404 was the KDS7372 (color version of the 6402). -# +# # ICL6404 control codes follow: # #code function @@ -11246,13 +11246,13 @@ intext2|intextii|INTERACTIVE modified owl 1251:\ #### Kimtron (abm, kt) # -# Kimtron seems to be history, but as March 1998 these people are still +# Kimtron seems to be history, but as March 1998 these people are still # offering repair services for Kimtron equipment: # # Com/Pair Monitor Service # 1105 N. Cliff Ave. # Sioux Falls, South Dakota 57103 -# +# # WATS voice: 1-800/398-4946 # POTS fax: +1 605/338-8709 # POTS voice: +1 605/338-9650 @@ -11346,7 +11346,7 @@ kt7ix|kimtron model kt-7 or 70 in IX mode:\ # This was a line of terminals made by McDonnell-Douglas Information Systems. # These entries come direct from MDIS documentation. I have edited them only # to move primary names of the form p[0-9] * to aliases, and to comment out -# :ae:/:as: in a couple of entries without <acsc> strings. I have +# :ae:/:as: in a couple of entries without <acsc> strings. I have # also removed the change history; the last version indicates this is # version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989). # @@ -11706,7 +11706,7 @@ mime3ax|mime-3ax|mime1 emulating enhanced 3a:\ :al=\001:cd=^_:ce=^X:dl=\027:ta=\011:tc=mime3a: # Wed Mar 9 18:53:21 1983 # We run our terminals at 2400 baud, so there might be some timing problems at -# higher speeds. The major improvements in this model are the terminal now +# higher speeds. The major improvements in this model are the terminal now # scrolls down and insert mode works without redrawing the rest of the line # to the right of the cursor. This is done with a bit of a kludge using the # exit graphics mode to get out of insert, but it does not appear to hurt @@ -11748,9 +11748,9 @@ mt4520-rv|micro-term 4520 reverse video:\ # This entry works for the ergo 4000 with the following setups: # ansi,wraparound,newline disabled, xon/xoff disabled in both # setup a & c. -# +# # WARNING!!! There are multiple versions of ERGO 4000 microcode -# Be advised that very early versions DO NOT WORK RIGHT !! +# Be advised that very early versions DO NOT WORK RIGHT !! # Microterm does have a ROM exchange program- use it or lose big # (ergo400: added <rmam>/<smam> based on the init string -- esr) ergo4000|microterm ergo 4000:\ @@ -11764,7 +11764,7 @@ ergo4000|microterm ergo 4000:\ :ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:le=^H:me=\E[m:\ :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A: -#### NCR +#### NCR # # NCR's terminal group was merged with AT&T's when AT&T bought the company. # For what happened to that group, see the ADDS section. @@ -11800,10 +11800,10 @@ ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 # This definition for ViewPoint supports several attributes. This means # that it has magic cookies (extra spaces where the attributes begin). # Some applications do not function well with magic cookies. The System -# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. # If supporting various attributes is not vital, 'xmc#1' and the extra -# attributes can be removed. -# Mapping to ASCII character set ('acsc' capability) can also be +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be # restored if needed. # (untranslatable capabilities removed to fit entry within 1023 bytes) # (sgr removed to fit entry within 1023 bytes) @@ -11955,19 +11955,19 @@ NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd:\ :is=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\ :rs=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\ :tc=ncr260vt300pp: -# This terminfo file contains color capabilities for the Wyse325 emulation of +# This terminfo file contains color capabilities for the Wyse325 emulation of # the NCR 2900/260C color terminal. Because of the structure of the command # (escape sequence) used to set color attributes, one of the fore/background # colors must be preset to a given value. I have set the background color to # black. The user can change this setup by altering the last section of the -# 'setf' definition. The escape sequence to set color attributes is -# ESC d y <foreground_color> <background_color> 1 +# 'setf' definition. The escape sequence to set color attributes is +# ESC d y <foreground_color> <background_color> 1 # In addition, the background color can be changed through the desk accessories. -# The capablitiy 'op' sets colors to green on black (default combination). +# The capablitiy 'op' sets colors to green on black (default combination). # # NOTE: The NCR Unix System Administrator's Shell will not function properly # if the 'pairs' capability is defined. Un-Comment the 'pairs' -# capability and recompile if you wish to have it included. +# capability and recompile if you wish to have it included. # # (untranslatable capabilities removed to fit entry within 1023 bytes) # (sgr removed to fit entry within 1023 bytes) @@ -11997,18 +11997,18 @@ ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode:\ # This definition for Wyse 350 supports several attributes. This means # that it has magic cookies (extra spaces where the attributes begin). # Some applications do not function well with magic cookies. The System -# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. # If supporting various attributes is not vital, 'xmc#1' and the extra -# attributes can be removed. -# Mapping to ASCII character set ('acsc' capability) can also be +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be # restored if needed. # In addition, color capabilities have been added to this file. The drawback, # however, is that the background color has to be black. The foreground colors -# are numbered 0 through 15. +# are numbered 0 through 15. # # NOTE: The NCR Unix System Administrator's Shell does not function properly # with the 'pairs' capability defined as below. If you wish to -# have it included, Un-comment it and recompile (using 'tic'). +# have it included, Un-comment it and recompile (using 'tic'). # # (untranslatable capabilities removed to fit entry within 1023 bytes) # (sgr removed to fit entry within 1023 bytes) @@ -12038,12 +12038,12 @@ ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode:\ # This definition for Wyse 50+ supports several attributes. This means # that it has magic cookies (extra spaces where the attributes begin). # Some applications do not function well with magic cookies. The System -# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. # If supporting various attributes is not vital, 'xmc#1' and the extra -# attributes can be removed. -# Mapping to ASCII character set ('acsc' capability) can also be +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be # restored if needed. -# (ncr260wy50+pp: originally contained commented-out +# (ncr260wy50+pp: originally contained commented-out # <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr) # (untranslatable capabilities removed to fit entry within 1023 bytes) # (sgr removed to fit entry within 1023 bytes) @@ -12163,7 +12163,7 @@ ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal:\ # 6 - Don't Send or Do Send Spaces # 7 - Parity Enable # 8 - Stop Bits (One/Two) -# +# # Switch B: # 1 - Upper/Lower Shift # 2 - Typewriter Shift @@ -12172,7 +12172,7 @@ ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal:\ # 5-6 - Carriage Return Without / With Line Feed # 7 - Extended Mode # 8 - Suppress Keyboard Display -# +# # Switch C: # 1 - End of line entry disabled/enabled # 2 - Conversational mode / (Local?) Mode @@ -12182,7 +12182,7 @@ ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal:\ # 6 - (50Hz?) / 60 Hz # 7 - Exit after level zero diagnostics # 8 - RS-232 interface -# +# # Switch D: # 1 - Reverse Channel (yes / no) # 2 - Manual answer (no / yes) @@ -12272,7 +12272,7 @@ pe1251|pe6300|pe6312|perkin elmer 1251:\ :k5=\ERF:k6=\ERG:k7=\ERH:k8=\ERI:k9=\ERJ:k;=\ERK:le=\ED:\ :nd=\EC:sf=^J:st=\E1:up=\EA: # (pe7000m: this had -# rmul=\E!\0, smul=\E!\040, +# rmul=\E!\0, smul=\E!\040, # which is probably wrong, it collides with kf0 pe7000m|perkin elmer 7000 series monochrome monitor:\ :am:\ @@ -12292,8 +12292,8 @@ pe7000c|perkin elmer 7000 series colour monitor:\ # Sperry Univac has merged with Burroughs to form Unisys. # -# This entry is for the Sperry UTS30 terminal running the TTY -# utility under control of CP/M Plus 1R1. The functionality +# This entry is for the Sperry UTS30 terminal running the TTY +# utility under control of CP/M Plus 1R1. The functionality # provided is comparable to the DEC vt100. # (uts30: I added <rmam>/<smam> based on the init string -- esr) uts30|sperry uts30 with cp/m@1R1:\ @@ -12384,7 +12384,7 @@ pt210|TRS-80 PT-210 printing terminal:\ #### Tektronix (tek) # -# Tektronix tubes are graphics terminals. Most of them use modified +# Tektronix tubes are graphics terminals. Most of them use modified # oscilloscope technology incorporating a long-persistence green phosphor, # and support vector graphics on a main screen with an attached "dialogue # area" for interactive text. @@ -12428,14 +12428,14 @@ tek4023|tektronix 4023:\ # bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed # on keyboard don't work. You have to hit BREAK twice to get # one break at any speed - this is a documented feature. -# Can't use cursor motion because it's memory relative, and -# because it only works in the workspace, not the monitor. +# Can't use cursor motion because it's memory relative, and +# because it only works in the workspace, not the monitor. # Same for home. Likewise, standout only works in the workspace. -# -# :ce: was commented out since vi and rogue seem to work better +# +# :ce: was commented out since vi and rogue seem to work better # simulating it with lots of spaces! -# -# :al: and :AL: had 145ms of padding, but that slowed down vi's ^U +# +# :al: and :AL: had 145ms of padding, but that slowed down vi's ^U # and didn't seem necessary. # tek4024|tek4025|tek4027|tektronix 4024/4025/4027:\ @@ -12645,14 +12645,14 @@ tek4207-s|Tektronix 4207 with sysline but no memory:\ # look good for screen editing. In the dialog area, you can't move the cursor # off the bottom line. Out of the dialog area, ^K moves it up, but there # is no way to scroll. -# -# Note that there is a floppy for free from Tek that makes the +# +# Note that there is a floppy for free from Tek that makes the # 4112 emulate the vt52 (use the vt52 termcap). There is also # an expected enhancement that will use ANSI standard sequences. -# -# 4112 in non-dialog area pretending to scroll. It really wraps +# +# 4112 in non-dialog area pretending to scroll. It really wraps # but vi is said to work (more or less) in this mode. -# +# # 'vi' works reasonably well with this entry. # otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series:\ @@ -12687,7 +12687,7 @@ tek4113|tektronix 4113 color graphics with 5 line dialog area:\ tek4113-34|tektronix 4113 color graphics with 34 line dialog area:\ :li#34:\ :is=\EKA1\ELLB2\ELV0\ELV1:tc=tek4113: -# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not +# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not # supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up . # :vb: needs enough delay to let you see the background color being toggled. tek4113-nd|tektronix 4113 color graphics with no dialog area:\ @@ -12770,9 +12770,9 @@ tek4404|tektronix 4404:\ :te=\E[1;1H\E[0J\E[?6h\E[?1l:\ :ti=\E%\E!1\E[1;32r\E[?6l\E>:ue=\E[m:up=\E[A:us=\E[4m: # Some unknown person wrote: -# I added the is string - straight Unix has ESC ; in the login -# string which sets a ct8500 into monitor mode (aka 4025 snoopy -# mode). The is string here cleans up a few things (but not +# I added the is string - straight Unix has ESC ; in the login +# string which sets a ct8500 into monitor mode (aka 4025 snoopy +# mode). The is string here cleans up a few things (but not # everything). ct8500|tektronix ct8500:\ :am:bw:da:db:\ @@ -12792,7 +12792,7 @@ ct8500|tektronix ct8500:\ # Bold, dim, and standout are simulated by colors and thus not allowed # with colors. The tektronix color table is mapped into the RGB color # table by setf/setb. All colors are reset to factory specifications by oc. -# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the +# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the # interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub- # interval then maps into pre-defined value. # (untranslatable capabilities removed to fit entry within 1023 bytes) @@ -12963,7 +12963,7 @@ ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX:\ #### Apple II # -# Apple II firmware console first, then various 80-column cards and +# Apple II firmware console first, then various 80-column cards and # terminal emulators. For two cents I'd toss all these in the UFO file # along with the 40-column apple entries. # @@ -12971,7 +12971,7 @@ ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX:\ # From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL # 'it#8' tells UNIX that you have tabs every 8 columns. This is a # function of TIC, not the firmware. -# The clear key on a IIgs will do something like clear-screen, +# The clear key on a IIgs will do something like clear-screen, # depending on what you're in. appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface:\ :am:bs:bw:eo:ms:\ @@ -13173,20 +13173,20 @@ mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode:\ # line. Please note that non-ASCII characters don't work right in the # status line, since Terminal.app incorrectly interprets their Unicode # codepoints as MacRoman codepoints. -# +# # * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to # "nsterm" to comply with the name length and case conventions and # limitations of various software packages [notably Solaris terminfo # and UNIX.] A single Apple_Terminal alias is retained for # backwards-compatbility. -# +# # * Added function key support (F1-F4). These only work in Terminal.app # version 51, hopefully the capabilities won't cause problems for people # using version 41. -# +# # * Added "full color" (-c) entries which support the 16-color mode in # version 51. -# +# # * By default, version 51 uses UTF-8 encoding with broken altcharset # support, so "ASCII" (-7) entries without altcharset support were # added. @@ -13719,7 +13719,7 @@ st52|Atari ST with VT52 emulation:\ :l0=f10:le=\ED:me=\Eq:nd=\EC:nw=^M^J:r1=\Ez_\Eb@\EcA:\ :rc=\Ek:sc=\Ej:se=\Eq:sf=^J:so=\Ep:sr=\EI:ta=^I:te=:ti=\Ee:\ :up=\EA:ve=\Ee:vi=\Ef: - + #### Commodore Business Machines # # Formerly located in West Chester, PA; went spectacularly bust in 1994 @@ -13840,16 +13840,16 @@ northstar|North Star Advantage:\ #### Osborne # # Thu Jul 7 03:55:16 1983 -# -# As an aside, be careful; it may sound like an anomaly on the -# Osborne, but with the 80-column upgrade, it's too easy to +# +# As an aside, be careful; it may sound like an anomaly on the +# Osborne, but with the 80-column upgrade, it's too easy to # enter lines >80 columns! -# +# # I've already had several comments... -# The Osborne-1 with the 80-col option is capable of being -# 52, 80, or 104 characters wide; default to 80 for compatibility +# The Osborne-1 with the 80-col option is capable of being +# 52, 80, or 104 characters wide; default to 80 for compatibility # with most systems. -# +# # The tab is destructive on the Ozzie; make sure to 'stty -tabs'. osborne-w|osborne1-w|osborne I in 104-column mode:\ :ms:ul:xt:\ @@ -13886,7 +13886,7 @@ osexec|Osborne executive:\ # Memory-segmentation limits and a strong tendency to look like V7 long after # it was obsolete made all three pretty lame. Venix croaked early. Coherent # and Minix were ported to 32-bit Intel boxes, only to be run over by a -# steamroller named `Linux' (which, to be fair, traces some lineage to Minix). +# steamroller named `Linux' (which, to be fair, traces some lineage to Minix). # Coherent's vendor, the Mark Williams Company, went belly-up in 1994. There # are also, I'm told, Minix ports that ran on Amiga and Atari machines and # even as single processes under SunOS and the Macintosh OS. @@ -13938,7 +13938,7 @@ pc-coherent|pcz19|coherent|IBM PC console running Coherent:\ :sr=\EI:ta=^I:up=\EA: # According to the Venix 1.1 manual, the PC console is similar -# to a DEC vt52. Differences seem to be (1) arrow keys send +# to a DEC vt52. Differences seem to be (1) arrow keys send # different strings, (2) enhanced standout, (3) added insert/delete line. # Note in particular that it doesn't have automatic margins. # There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they @@ -13955,11 +13955,11 @@ pc-venix|venix|IBM PC console running Venix:\ # # The MAI Basic Four computer was obsolete at the end of the 1980s. -# It may be used as a terminal by putting it in "line" mode as seen on +# It may be used as a terminal by putting it in "line" mode as seen on # one of the status lines. -# Initialization is similar to CIT80. :is: will set ANSI mode for you. +# Initialization is similar to CIT80. :is: will set ANSI mode for you. # Hardware tabs set by :if: at 8-spacing. Auto line wrap causes glitches so -# wrap mode is reset by :vs:. Using :sf:=\E[S caused errors so I +# wrap mode is reset by :vs:. Using :sf:=\E[S caused errors so I # used \ED instead. # From: bf347@lafn.org (David Lawyer), 28 Jun 1997 mai|basic4|MAI Basic Four in ansi mode:\ @@ -13979,7 +13979,7 @@ mai|basic4|MAI Basic Four in ansi mode:\ # # On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote: # The Basis 108 was a Apple II clone, manufactured by the "Basis -# Mikrocomputer GmbH" in Munster, Germany (the company still exists today, +# Mikrocomputer GmbH" in Munster, Germany (the company still exists today, # about 1,5 km from where I live, but doesn't build own computers any # more). A Basis 108 featured a really heavy (cast aluminium?) case, was # equipped with one or two 5.25" disk drives, had a monochrome and colour @@ -13999,7 +13999,7 @@ luna|luna68k|LUNA68K Bitmap console:\ megatek|pegasus workstation terminal emulator:\ :am:os:\ :co#83:li#60: -# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived +# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived # interface (pre-Macintosh by several years) that went nowhere. xerox820|x820|Xerox 820:\ :am:\ @@ -14090,7 +14090,7 @@ abm80|amtek business machines 80:\ #### Bell Labs blit terminals # -# These were AT&T's official entries. The 5620 FAQ maintained by +# These were AT&T's official entries. The 5620 FAQ maintained by # David Breneman <daveb@dgtl.com> has this to say: # # Actually, in the beginning was the Jerq, and the Jerq was white with a @@ -14149,17 +14149,17 @@ oblit|ojerq|first version of blit rom:\ # small screen (it had a 17" crisp beauty) and a real OS. They (Bolt # Beranek and Neuman) sold at most a few hundred of them to the real # world. DOD may have bought more... -# +# -# Entries for the BitGraph terminals. The problem -# with scrolling in vi can only be fixed by getting BBN to put -# smarter scroll logic in the terminal or changing vi or padding +# Entries for the BitGraph terminals. The problem +# with scrolling in vi can only be fixed by getting BBN to put +# smarter scroll logic in the terminal or changing vi or padding # scrolls with about 500 ms delay. -# -# I always thought the problem was related to the terminal -# counting newlines in its input buffer before scrolling and -# then moving the screen that much. Then vi comes along and -# paints lines in on the bottom line of the screen, so you get +# +# I always thought the problem was related to the terminal +# counting newlines in its input buffer before scrolling and +# then moving the screen that much. Then vi comes along and +# paints lines in on the bottom line of the screen, so you get # this big white gap. bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video):\ @@ -14302,17 +14302,17 @@ dku7202|BULL Questar 200 DKU7202 (colour/character attributes):\ # Copyright (c) 1989 BULL SA #--------------------------------------------------------------------------- # This entry is used for terminals with vt320 emulation mode -# and following set-up : +# and following set-up : # 8 bit ISO Latin Character Set (ISO 8859-1), -# 7 bit Control Characters, -# 80 columns screen. +# 7 bit Control Characters, +# 80 columns screen. # Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300) # They are used in string capabilities with vt220-320 emulation mode. # In the following DEC definitions, two kinds of terminfo databases are # provided : -# 1. the first with Command Sequence Introducer starting with escape +# 1. the first with Command Sequence Introducer starting with escape # sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode. -# 2. the second with Command Sequence Introducer starting with escape +# 2. the second with Command Sequence Introducer starting with escape # sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B. # Soft Terminal Reset esc [ ! p # RIS (erases screen): esc c @@ -14347,11 +14347,11 @@ dku7202|BULL Questar 200 DKU7202 (colour/character attributes):\ # RM DECAWM auto right margin: esc [ ? 7 l # SM DECARM auto repeat: esc [ ? 8 h # RM DECARM auto repeat: esc [ ? 8 l -# DECSASD Select active main: esc [ 0 $ } -# DECSASD Select active status: esc [ 1 $ } -# DECSSDT Select status none: esc [ 0 $ ~ -# DECSSDT Select status indic.: esc [ 1 $ ~ -# DECSSDT Select status host-wr: esc [ 2 $ ~ +# DECSASD Select active main: esc [ 0 $ } +# DECSASD Select active status: esc [ 1 $ } +# DECSSDT Select status none: esc [ 0 $ ~ +# DECSSDT Select status indic.: esc [ 1 $ ~ +# DECSSDT Select status host-wr: esc [ 2 $ ~ # SM DECTCEM Visible cursor: esc [ ? 2 5 h # RM DECTCEM Invisible cursor: esc [ ? 2 5 l # SM DECNCRM 7 bits NCR set: esc [ ? 4 2 h @@ -14407,10 +14407,10 @@ bq300-w-rv|Bull vt320 reverse mode 132 columns:\ :rs=\E[?3h:vb=\E[?5l\E[?5h:tc=bq300: # This entry is used for terminals with vt320 emulation mode -# and following set-up : +# and following set-up : # 8 bit ISO Latin Character Set (ISO 8859-1), # 8 bit Control Characters, (CSI coded as x9B for ESC [) -# 80 columns screen. +# 80 columns screen. # Soft Terminal Reset csi ! p # RIS (erases screen): esc c # DECKPNM numeric keypad mode: esc > @@ -14444,11 +14444,11 @@ bq300-w-rv|Bull vt320 reverse mode 132 columns:\ # RM DECAWM auto right margin: csi ? 7 l # SM DECARM auto repeat: csi ? 8 h # RM DECARM auto repeat: csi ? 8 l -# DECSASD Select active main: csi 0 $ } -# DECSASD Select active status: csi 1 $ } -# DECSSDT Select status none: csi 0 $ ~ -# DECSSDT Select status indic.: csi 1 $ ~ -# DECSSDT Select status host-wr: csi 2 $ ~ +# DECSASD Select active main: csi 0 $ } +# DECSASD Select active status: csi 1 $ } +# DECSSDT Select status none: csi 0 $ ~ +# DECSSDT Select status indic.: csi 1 $ ~ +# DECSSDT Select status host-wr: csi 2 $ ~ # SM DECTCEM Visible cursor: csi ? 2 5 h # RM DECTCEM Invisible cursor: csi ? 2 5 l # SM DECNCRM 7 bits NCR set: csi ? 4 2 h @@ -14498,10 +14498,10 @@ bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns:\ :rs=\233?3h:vb=\233?5l\233?5h:tc=bq300-8: # This entry is used for terminals with vt320 emulation mode -# a 102 keys keyboard (PC scancode !) and following set-up : +# a 102 keys keyboard (PC scancode !) and following set-up : # 8 bit ISO Latin Character Set (ISO 8859-1), -# 7 bit Control Characters, -# 80 columns screen. +# 7 bit Control Characters, +# 80 columns screen. bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns:\ :%0@:%1@:*6@:@0@:@7=\E[4~:F1=\E[29~:F2=\E[31~:F3@:F4@:F5@:F6@:\ :F7@:F8@:F9@:FA@:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\ @@ -14520,8 +14520,8 @@ bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns:\ :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ :rs=\E[?3h:vb=\E[?5l\E[?5h:tc=bq300-pc: # 8 bit ISO Latin Character Set (ISO 8859-1), -# 8 bit Control Characters, -# 80 columns screen. +# 8 bit Control Characters, +# 80 columns screen. bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns:\ :%0@:%1@:*6@:@0@:@7=\2334~:F1=\23329~:F2=\23331~:F3@:F4@:F5@:\ :F6@:F7@:F8@:F9@:FA@:k1=\23317~:k2=\23318~:k3=\23319~:\ @@ -14629,13 +14629,13 @@ vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines:\ #### Chromatics # -# I have put the long strings in :ti:/:te:. Ti sets up a window -# that is smaller than the screen, and puts up a warning message -# outside the window. Te erases the warning message, puts the +# I have put the long strings in :ti:/:te:. Ti sets up a window +# that is smaller than the screen, and puts up a warning message +# outside the window. Te erases the warning message, puts the # window back to be the whole screen, and puts the cursor at just -# below the small window. I defined :ve: and :vi: to really turn -# the cursor on and off, but I have taken this out since I don't -# like the cursor being turned off when vi exits. +# below the small window. I defined :ve: and :vi: to really turn +# the cursor on and off, but I have taken this out since I don't +# like the cursor being turned off when vi exits. cg7900|chromatics|chromatics 7900:\ :am:\ :co#80:li#40:\ @@ -14688,17 +14688,17 @@ dp3360|datapoint|datapoint 3360:\ :sf=^J:up=^Z: # From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997 -# The Datapoint 8242 Workstation was sold at least between 1985 -# and 1989. To make the terminal work with this entry, press -# CONTROL-INT-INT to take the terminal off-line, and type (opt). -# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO -# CR/LF off. Use control-shift-[] as escape key, control-I as tab, +# The Datapoint 8242 Workstation was sold at least between 1985 +# and 1989. To make the terminal work with this entry, press +# CONTROL-INT-INT to take the terminal off-line, and type (opt). +# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO +# CR/LF off. Use control-shift-[] as escape key, control-I as tab, # shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in # fact unusable because the strings sent by the terminal conflict # with other keys). # The terminal is capable of displaying "box draw" characters. -# For each graphic character you must send 2 ESC's (\E\E) followed -# by a control character as follows: +# For each graphic character you must send 2 ESC's (\E\E) followed +# by a control character as follows: # character meaning # ========= ======= # ctrl-E top tee @@ -14712,8 +14712,8 @@ dp3360|datapoint|datapoint 3360:\ # ctrl-M bottom right corner # ctrl-N horizontal line # ctrl-O vertical line -# Unfortunately this cannot be fitted into the termcap/terminfo -# description scheme. +# Unfortunately this cannot be fitted into the termcap/terminfo +# description scheme. dp8242|datapoint 8242:\ :ms:\ :co#80:li#25:\ @@ -14732,7 +14732,7 @@ dp8242|datapoint 8242:\ # # These entries are DEC's official terminfos for its older terminals. # Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support -# Engineering for more information. Updated terminfos and termcaps +# Engineering for more information. Updated terminfos and termcaps # are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. # @@ -14808,7 +14808,7 @@ dw2|decwriter|dw|decwriter II:\ # \E[4g clear vertical tab stops # \E> disable alternate keypad mode (so it transmits numbers!) # \E[%i%p1%du set tab stop at column %d (origin == 1) -# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is +# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is # a tab stop) # # The dw3 does standout with wide characters. @@ -14900,22 +14900,22 @@ terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200:\ # # S401 # 0-3 = baud rate as follows: -# +# # 3 2 1 0 -# --- --- --- --- +# --- --- --- --- # 0 0 1 1 300 baud # 0 1 0 1 1200 baud # 1 0 0 0 2400 baud # 1 0 1 0 4800 baud # 1 1 0 0 9600 baud # 1 1 0 1 19.2K baud -# +# # 4 = parity (0 = no parity) # 5 = even parity (0 = odd parity) # 6 = stick parity (0 = normal parity) # 7 = full duplex (0 = half duplex) -# -# S402 +# +# S402 # 0 = block cursor (0 = underscore cursor) # 1 = no key click (0 = keyclick) # 2 = wrap at end of line (0 = no wrap) @@ -14924,7 +14924,7 @@ terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200:\ # 5 = ANSI mode (0 = VT52 mode) # 6 = keypad shifted (0 = keypad unshifted) # 7 = 50Hz refresh (1 = 60Hz refresh) -# +# # Factory Default settings are as follows: # 7 6 5 4 3 2 1 0 # S401 1 0 0 0 1 1 0 0 @@ -14948,14 +14948,14 @@ h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor:\ :ke=\Eu:ks=\Et:tc=h19-u: # (h19: merged in :ip: from BSDI hp19-e entry>; # also added empty <acsc> to suppress a tic warning --esr) -# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998 +# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998 # Tim tells us that: # I have an old Zenith-19 terminal at home that still gets a lot of use. # This terminal suffers from the same famous insert-mode padding lossage # that has been acknowledged for the Z29 terminal. Emacs is nearly # unusable on this box, since even a half-scroll up or down the window # causes flaming terminal death. -# +# # On the Z19, the only way I have found around this problem is to remove # the :al: and :dl: entries entirely. No amount of extra padding will # help (I have tried up to 20000). Removing :al=\EL$: and :dl=\EM$: @@ -14985,37 +14985,37 @@ alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19:\ # it needs more padding. It especially loses if a program attempts # to put the Z29 into insert mode and insert text at 9600 baud. It # even loses worse if the program attempts to insert tabs at 9600 -# baud. Adding padding to text that is inserted loses because in +# baud. Adding padding to text that is inserted loses because in # order to make the Z29 not die, one must add so much padding that -# whenever the program tries to use insert mode, the effective +# whenever the program tries to use insert mode, the effective # rate is about 110 baud. -# -# What program would want to put the terminal into insert mode -# and shove stuff at it at 9600 baud you ask? -# -# Emacs. Emacs seems to want to do the mathematically optimal +# +# What program would want to put the terminal into insert mode +# and shove stuff at it at 9600 baud you ask? +# +# Emacs. Emacs seems to want to do the mathematically optimal # thing in doing a redisplay rather than the practical thing. -# When it is about to output a line on top of a line that is -# already on the screen, instead of just killing to the end of -# the line and outputting the new line, it compares the old line -# and the new line and if there are any similarities, it -# constructs the new line by deleting the text on the old line +# When it is about to output a line on top of a line that is +# already on the screen, instead of just killing to the end of +# the line and outputting the new line, it compares the old line +# and the new line and if there are any similarities, it +# constructs the new line by deleting the text on the old line # on the terminal that is already there and then inserting new -# text into the line to transform it into the new line that is +# text into the line to transform it into the new line that is # to be displayed. The Z29 does not react kindly to this. -# +# # But don't cry for too long.... There is a solution. You can make # a termcap entry for the Z29 that says the Z29 has no insert mode. -# Then Emacs cannot use it. "Oh, no, but now inserting into a +# Then Emacs cannot use it. "Oh, no, but now inserting into a # line will be really slow", you say. Well there is a sort of a -# solution to that too. There is an insert character option on -# the Z29 that will insert one character. Unfortunately, it -# involves putting the terminal into ansi mode, inserting the -# character, and changing it back to H19 mode. All this takes 12 -# characters. Pretty expensive to insert one character, but it -# works. Either Emacs doesn't try to use its inserting hack when -# it's only given an insert character ability or the Z29 doesn't -# require padding with this (the former is probably more likely, +# solution to that too. There is an insert character option on +# the Z29 that will insert one character. Unfortunately, it +# involves putting the terminal into ansi mode, inserting the +# character, and changing it back to H19 mode. All this takes 12 +# characters. Pretty expensive to insert one character, but it +# works. Either Emacs doesn't try to use its inserting hack when +# it's only given an insert character ability or the Z29 doesn't +# require padding with this (the former is probably more likely, # but I haven't checked it out). # (z29: added empty <acsc> to suppress a tic warning, merged in # status line capabilities from BRL entry --esr) @@ -15113,9 +15113,9 @@ ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11:\ #### IMS International (ims) # -# There was a company called IMS International located in Carson City, +# There was a company called IMS International located in Carson City, # Nevada, that flourished from the mid-70s to mid-80s. They made S-100 -# bus/Z80 hardware and a line of terminals called Ultimas. +# bus/Z80 hardware and a line of terminals called Ultimas. # # From: Erik Fair <fair@ucbarpa.berkeley.edu> Sun Oct 27 07:21:05 1985 @@ -15153,7 +15153,7 @@ superbrain|intertec superbrain:\ :bc=^U:bl=^G:cd=\E~k<10*>:ce=\E~K:cl=\014:cm=\EY%+ %+ :\ :cr=^M:do=^J:kd=^J:kl=^U:kr=^F:ku=^K:le=^H:nd=^F:sf=^J:ta=^I:\ :te=^L:ti=^L:up=^K: -# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>, +# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>, # rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM, # and the reverse is actually true. Try it. -- esr) intertube|intertec|Intertec InterTube:\ @@ -15182,12 +15182,12 @@ intertube2|intertec data systems intertube 2:\ # # The Graphos III was a color graphics terminal from Ithaca Intersystems. -# These entries were written (originally in termcap syntax) by Brian Yandell -# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the +# These entries were written (originally in termcap syntax) by Brian Yandell +# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the # University of Wisconsin. -# (graphos: removed obsolete and syntactically incorrect :kn=4:, -# removed :if=/usr/share/tabset/init.graphos: and +# (graphos: removed obsolete and syntactically incorrect :kn=4:, +# removed :if=/usr/share/tabset/init.graphos: and # <rf=/usr/share/tabset/init.graphos> no such file & no :st: -- esr) graphos|graphos III:\ :am:mi:\ @@ -15215,7 +15215,7 @@ graphos-30|graphos III with 30 lines:\ # Vox: (617)-890-5796. # # However, if you call that number today you'll get an insurance company. -# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated +# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated # 26 Feb 1997 that says: # # Modgraph GX-1000, replaced by GX-2000. Both are out of production, have been @@ -15266,7 +15266,7 @@ modgraph48|mod|Modgraph w/48 lines:\ :us=\E[4m:vb=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q: #### Morrow Designs -# +# # This was George Morrow's company. They started in the late 1970s making # S100-bus machines. They used to be reachable at: # @@ -15277,7 +15277,7 @@ modgraph48|mod|Modgraph w/48 lines:\ # but they're long gone now (1995). # -# The mt70 terminal was shipped with the Morrow MD-3 microcomputer. +# The mt70 terminal was shipped with the Morrow MD-3 microcomputer. # Jeff's specimen was dated June 1984. # From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995 mt70|mt-70|Morrow MD-70; native Morrow mode:\ @@ -15417,17 +15417,17 @@ vsc|Signetics Vsc Video driver by RMC:\ # consisted of a circle with a slightly smaller 15 degree (approx.) # wedge with rounded corners inside it. The color was sort of # a metallic gold/yellow. -# +# # If I had been more of a beer drinker it might have been obvious # to me, but it took a clue from their service department to make # me exclaim, "Of course!" The circular object was the top of # a beer can (the old removable pop-top style) and "Soroc" was an # anagram for "Coors". -# +# # I can just imagine the founders of the company sitting around # one evening, tossing back a few and trying to decide what to # call their new company and what to use for a logo. -# +# # (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr) soroc120|iq120|soroc|soroc iq120:\ @@ -15444,7 +15444,7 @@ soroc140|iq140|soroc iq140:\ #### Southwest Technical Products # -# These guys made an early personal micro called the M6800. +# These guys made an early personal micro called the M6800. # The ct82 was probably its console terminal. # @@ -15483,7 +15483,7 @@ swtp|ct82|southwest technical products ct82:\ # CRT). It wasn't much different from the KTM-2 hardware-wise, but the # control and escape sequences are very different. The KTM-3 was always # real broken, at least according to the folks I've talked to about it. -# +# # The padding in the entry is probably off--these terminals were very # slow (it takes like 100ms for the KTM-2 to clear the screen...) And # anyone with any sanity replaced the ROMs with something that provided @@ -15491,7 +15491,7 @@ swtp|ct82|southwest technical products ct82:\ # obviously very primitive... oh, you could get an upgraded ROM from # Synertek for some incredible amount of money, but what hacker with an # EPROM burner would do that? :) -# +# # Sorry I don't have any contact info; I believe they were located in # Sunnyvale, and I'm fairly sure they are still manufacturing ICs # (they've gone to ASICs and FPGAs), but I doubt they're in the computer @@ -15725,7 +15725,7 @@ ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL:\ # # (zen30: removed obsolete :ma=^L ^R^L^K^P:. This entry originally -# had just :so:=\EG6 which I think means standout was supposed to be +# had just :so:=\EG6 which I think means standout was supposed to be # dim-reverse using ADM12-style attributes. ADM12 :us:/:ue: and # <invis> might work-- esr) zen30|z30|zentec 30:\ @@ -15761,7 +15761,7 @@ cci|cci1|z8001|zen8001|CCI Custom Zentec 8001:\ #### Apollo consoles # -# Apollo got bought by Hewlett-Packard. The Apollo workstations are +# Apollo got bought by Hewlett-Packard. The Apollo workstations are # labeled HP700s now. # @@ -15844,7 +15844,7 @@ qdss|qdcons|qdss glass tty:\ # to force both magic cookie glitches off. Once upon a time, I # used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are # function keys; thus the "Al" value for HM was certainly an error. I renamed -# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC. +# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC. # I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent # "reverse-video-glitch" capability; I have put :rv: and :re: in with standard # names below. I've removed obsolete ":nl=5^J:" as there is a :do: -- esr) @@ -15890,7 +15890,7 @@ masscomp2|masscomp large screen version 2:\ # # CTRM terminal emulator -# 1. underlining is not allowed with colors: first, is is simulated by +# 1. underlining is not allowed with colors: first, is is simulated by # black on white, second, it disables background color manipulations. # 2. BLINKING, REVERSE and BOLD are allowed with colors, # so we have to save their status in the static registers A, B and H @@ -15898,7 +15898,7 @@ masscomp2|masscomp large screen version 2:\ # (because any color change turns off ALL attributes) # 3. :md: and :mr: sequences alternate modes, # rather then simply entering them. Thus we have to check the -# static register B and H to determine the status, before sending the +# static register B and H to determine the status, before sending the # escape sequence. # 4. :me: now must set the status of all 3 register (A,B,H) to zero # and then reset colors @@ -16022,7 +16022,7 @@ diablo1620-m8|diablo1640-m8|diablo 1620 w/8 column left margin:\ # (diablo1640: removed :if=/usr/share/tabset/xerox1730:, no such file -- esr) diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640:\ :bl=^G:se=\E&:so=\EW:ue=\ER:us=\EE:tc=diablo1620: -# (diablo1640-lm: removed :if=/usr/share/tabset/xerox1730-lm:, no such +# (diablo1640-lm: removed :if=/usr/share/tabset/xerox1730-lm:, no such # file -- esr) diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin:\ :co#124:\ @@ -16031,7 +16031,7 @@ diablo1740-lm|630-lm|1730-lm|x1700-lm|diablo 1740 printer:\ :tc=diablo1640-lm: # DTC 382 with VDU. Has no :cd: so we fake it with :ce:. Standout # :so=^P\s\002^PF: works but won't go away without dynamite :se=^P\s\0:. -# The terminal has tabs, but I'm getting tired of fighting the braindamage. +# The terminal has tabs, but I'm getting tired of fighting the braindamage. # If no tab is set or the terminal's in a bad mood, it glitches the screen # around all of memory. Note that return puts a blank ("a return character") # in the space the cursor was at, so we use ^P return (and thus ^P newline for @@ -16089,7 +16089,7 @@ xerox1720|x1720|x1750|xerox 1720:\ #### Miscellaneous obsolete terminals, manufacturers unknown # -# If you have any information about these (like, a manufacturer's name, +# If you have any information about these (like, a manufacturer's name, # and a date on the serial-number plate) please send it! cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars:\ @@ -16206,7 +16206,7 @@ teletec|Teletec Datascreen:\ # # Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998: # I had a couple of scopes (3221) like this once where I used to work, around -# the 1987 time frame if memory serves me correctly. These scopes were made +# the 1987 time frame if memory serves me correctly. These scopes were made # by an outfit called LANPAR Technologies, and were meant to me DEC VT 220 # compatible. The 3220 was a plain text terminal like the VT-220, the 3221 # was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222 @@ -16262,18 +16262,18 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # receive the document in due course. Don't expect an email acknowledgement. # # Related standards include "X3.4-1977: American National Standard Code for -# Information Interchange" (the ASCII standard) and "X3.41.1974: +# Information Interchange" (the ASCII standard) and "X3.41.1974: # Code-Extension Techniques for Use with the 7-Bit Coded Character Set of # American National Standard for Information Interchange." I believe (but # am not certain) that these are effectively identical to ECMA-6 and ECMA-35 -# respectively. +# respectively. # #### VT100/ANSI/ECMA-48 # # ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals # and ECMA-48 Control Functions for Coded Character Sets. -# +# # Much of the content of this comment is adapted from a table prepared by # Richard Shuford, based on a 1984 Byte article. Terminfo correspondences, # discussion of some terminfo-related issues, and updates to capture ECMA-48 @@ -16444,13 +16444,13 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # VPR Vert. Position Relative \E [ Pn e 1 FE - (R) # VT Vertical Tabulation * ^K - FE - # VTS Vertical Tabulation Set \E J - FE - -# +# # --------------------------------------------------------------------------- # # Notes: # -# Some control characters are listed in the ECMA-48 standard without -# being assigned functions relevant to terminal control there (they +# Some control characters are listed in the ECMA-48 standard without +# being assigned functions relevant to terminal control there (they # referred to other standards such as ISO 1745 or ECMA-35). They are listed # here anyway for completeness. # @@ -16468,11 +16468,11 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # # (D) terminfo (nel) is usually \r\n rather than ANSI \EE. # -# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR +# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR # abbreviation. -# +# # (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear -# char tab, 3 = clear line tab, 4 = clear all char tabs on current line, +# char tab, 3 = clear line tab, 4 = clear all char tabs on current line, # 5 = clear all char tabs, 6 = clear all line tabs. # # (G) CUP and HVP are identical in effect. Some ANSI.SYS versions accept @@ -16488,7 +16488,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # # (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end, # 1 = clear from beginning, 2 = clear. -# +# # (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation. # # (L) The GSM parameters are vertical and horizontal parameters to scale by. @@ -16525,7 +16525,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # # (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from # primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer -# from secondary aux device, 4 = stop relay to primary aux device, 5 = +# from secondary aux device, 4 = stop relay to primary aux device, 5 = # start relay to primary aux device, 6 = stop relay to secondary aux device, # 7 = start relay to secondary aux device. # @@ -16537,13 +16537,13 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # # (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation. # -# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM), -# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM), +# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM), +# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM), # 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM), # 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional -# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM), +# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM), # 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM), -# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM), +# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM), # 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer # Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer # Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed @@ -16560,68 +16560,68 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # abbreviation. # # --------------------------------------------------------------------------- -# +# # Abbreviations: # # Intro an Introducer of some kind of defined sequence; the normal 7-bit # X3.64 Control Sequence Introducer is the two characters "Escape [" -# +# # Delim a Delimiter -# +# # x/y identifies a character by position in the ASCII table (column/row) -# +# # eF editor function (see explanation) -# +# # FE format effector (see explanation) # # F is a Final character in # an Escape sequence (F from 3/0 to 7/14 in the ASCII table) # a control sequence (F from 4/0 to 7/14) -# +# # Gs is a graphic character appearing in strings (Gs ranges from # 2/0 to 7/14) in the ASCII table -# +# # Ce is a control represented as a single bit combination in the C1 set # of controls in an 8-bit character set -# +# # C0 the familiar set of 7-bit ASCII control characters -# +# # C1 roughly, the set of control chars available only in 8-bit systems. # This is too complicated to explain fully here, so read Jim Fleming's # article in the February 1983 BYTE, especially pages 214 through 224. -# +# # Fe is a Final character of a 2-character Escape sequence that has an # equivalent representation in an 8-bit environment as a Ce-type # (Fe ranges from 4/0 to 5/15) -# +# # Fs is a Final character of a 2-character Escape sequence that is # standardized internationally with identical representation in 7-bit # and 8-bit environments and is independent of the currently # designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14) -# +# # I is an Intermediate character from 2/0 to 2/15 (inclusive) in the # ASCII table -# +# # P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII # table -# +# # Pn is a numeric parameter in a control sequence, a string of zero or # more characters ranging from 3/0 to 3/9 in the ASCII table -# +# # Ps is a variable number of selective parameters in a control sequence # with each selective parameter separated from the other by the code # 3/11 (which usually represents a semicolon); Ps ranges from # 3/0 to 3/9 and includes 3/11 # # * Not relevant to terminal control, listed for completeness only. -# +# # Format Effectors versus Editor Functions -# +# # A format effector specifies how following output is to be displayed. # An editor function allows you to modify the display. Informally # format effectors may be destructive; format effectors should not be. -# -# For instance, a format effector that moves the "active position" (the +# +# For instance, a format effector that moves the "active position" (the # cursor or equivalent) one space to the left would be useful when you want to # create an overstrike, a compound character made of two standard characters # overlaid. Control-H, the Backspace character, is actually supposed to be a @@ -16635,16 +16635,16 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # return, linefeed, formfeed, etc., are defined as format effectors. # # NOTES ON THE DEC VT100 IMPLEMENTATION -# +# # Control sequences implemented in the VT100 are as follows: -# +# # CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND, # LNM, NEL, RI, RIS, RM, SGR, SM, TBC -# +# # plus several private DEC commands. -# +# # Erasing parts of the display (EL and ED) in the VT100 is performed thus: -# +# # Erase from cursor to end of line Esc [ 0 K or Esc [ K # Erase from beginning of line to cursor Esc [ 1 K # Erase line containing cursor Esc [ 2 K @@ -16654,32 +16654,32 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # # Some brain-damaged terminal/emulators respond to Esc [ J as if it were # Esc [ 2 J, but this is wrong; the default is 0. -# +# # The VT100 responds to receiving the DA (Device Attributes) control -# +# # Esc [ c (or Esc [ 0 c) -# +# # by transmitting the sequence -# +# # Esc [ ? l ; Ps c -# +# # where Ps is a character that describes installed options. -# +# # The VT100's cursor location can be read with the DSR (Device Status # Report) control -# +# # Esc [ 6 n -# +# # The VT100 reports by transmitting the CPR sequence -# +# # Esc [ Pl ; Pc R -# +# # where Pl is the line number and Pc is the column number (in decimal). -# +# # The specification for the DEC VT100 is document EK-VT100-UG-003. #### ANSI.SYS -# +# # Here is a description of the color and attribute controls supported in the # the ANSI.SYS driver under MS-DOS. Most console drivers and ANSI # terminal emulators for Intel boxes obey these. They are a proper subset @@ -16716,7 +16716,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ #### Intel Binary Compatibility Standard # -# For comparison, here are the capabilities implied by the Intel Binary +# For comparison, here are the capabilities implied by the Intel Binary # Compatibility Standard for UNIX systems (Intel order number 468366-001). # These recommendations are optional. IBCS2 allows the leading escape to # be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with @@ -16779,7 +16779,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # CSI c (clear) clear screen # # The lack of any specification for attributes in SGR (among other things) -# makes this a wretchedly weak standard. The table above is literally +# makes this a wretchedly weak standard. The table above is literally # everything iBSC2 has to say about terminal escape sequences; there is # no further discussion of their meaning or how to set the parameters # in these sequences at all. @@ -16838,12 +16838,12 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # # Finally, XENIX also used the following forms-drawing capabilities: # -# single double type ASCII approximation +# single double type ASCII approximation # ------ ------ ------------- ------------------- # GV Gv vertical line | # GH Gv horizontal line - _ # G1 G5 top right corner _ | -# G2 G6 top left corner | +# G2 G6 top left corner | # G3 G7 bottom left corner |_ # G4 G8 bottom right corner _| # GD Gd down-tick character T @@ -16892,7 +16892,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # correspond to acsc chars, here is the mapping: # # box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE +# box1[1] = ACS_HLINE # box1[2] = ACS_URCORNER # box1[3] = ACS_VLINE # box1[4] = ACS_LRCORNER @@ -16930,7 +16930,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # project. # # This file contains all the capability information present in John Kunze's -# last version of the termcap master file, except as noted in the change +# last version of the termcap master file, except as noted in the change # comments at end of file. Some information about very ancient obsolete # capabilities has been moved to comments. Some all-numeric names of older # terminals have been retired. @@ -16998,7 +16998,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * Replaced the translated BBN Bitgraph entries with purpose-built # ones from AT&T's SVr3. # * Replaced the AT&T entries with AT&T's official terminfos. -# * Added teleray 16, vc415, cops10. +# * Added teleray 16, vc415, cops10. # * Merged in many individual capabilities from SCO terminfo files. # 9.4.3 (Mon Mar 13 02:37:53 EST 1995): # * Typo fixes. @@ -17022,7 +17022,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # 9.4.7 (Tue Apr 4 11:27:11 EDT 1995) # * Added apple (Videx card), adm1a, oadm31. # * Fixed malformed ampex csr. -# * Fixed act4, cyb110; they had old-style prefix padding left in. +# * Fixed act4, cyb110; they had old-style prefix padding left in. # * Changed mandatory to advisory padding in many entries. # * Replaced HP entries up to hpsub with purpose-built ones. # * Blank rmir/smir/rmdc/smdc capabilities removed. @@ -17052,7 +17052,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * Comment fixes from David MacKenzie. # * Added the new BSDI pc3 entry. # 9.5.2 (Tue Apr 25 17:27:52 EDT 1995) -# * A change in the tic -C logic now ensures that all entries in +# * A change in the tic -C logic now ensures that all entries in # the termcap translation will fit in < 1024 bytes. # * Added `bobcat' and `gator' HP consoles and the Nu machine entries # from GNU termcap file. This merges in all their local information. @@ -17103,7 +17103,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * Added csr capability to linux entry. # * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG. # * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators. -# * Some commented-out caps in long entries come back in, my code +# * Some commented-out caps in long entries come back in, my code # for computing string-table lengths had a bug in it. # * pcansi series modified to fit comm-program reality better. # 9.8.2 (Sat Sep 9 23:35:00 EDT 1995): @@ -17140,7 +17140,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * fixed cup in adm22 entry and parametrized strings in vt320-k3. # * added it#8 to entries that used to have :pt: -- tvi912, vi200, # ampex80, -# * Translate all home=\E[;H capabilities to home=\E[H, they're +# * Translate all home=\E[;H capabilities to home=\E[H, they're # equivalent. # * Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of # vt100 and ANSI-like terminals. @@ -17149,7 +17149,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # does this now, too. # * fviewpoint is gone, it duplicated screwpoint. # * Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c, -# ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3, +# ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3, # versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW. # The UW vi50 replaces the old one, which becomes vi50adm, # * No more embedded commas in name fields. @@ -17174,7 +17174,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * Hand-translate more XENIX capabilities. # * Added hpterm entry for HP's X terminal emulator. # * Added aixterm entries. -# * Shortened four names so everything fits in 14 chars. +# * Shortened four names so everything fits in 14 chars. # # 9.11.0 (Thu Nov 2 17:29:35 EST 1995): # * Added ibcs2 entry and info on iBCS2 standard. @@ -17198,23 +17198,23 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * Exiled some utterly unidentifiable custom and homebrew types to the # UFO file; also, obsolete small-screen hardware; also, entries which # look flat-out incorrect, garbled, or redundant. These include the -# following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec, +# following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec, # tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile, # apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu, -# fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55, -# yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2, -# vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200, -# trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40, -# att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w, -# tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na, -# c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na, -# regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb, -# vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam, +# fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55, +# yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2, +# vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200, +# trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40, +# att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w, +# tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na, +# c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na, +# regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb, +# vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam, # vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms. # * Corrected pcvt25h as suggested by Brian C. Grayson # <bgrayson@pine.ece.utexas.edu>. # 9.11.3 (Thu Nov 9 12:14:40 EST 1995): -# * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H. +# * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H. # * Added kent=\EOM to xterm entry. # # 9.11.4 (Fri Nov 10 08:31:35 EST 1995): @@ -17234,13 +17234,13 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * Improved iris-ansi and sun entries. # * More flash string improvements. # * Corrected wy160 & wy160 as suggested by Robert Dunn -# * Added dim to at386. +# * Added dim to at386. # * Reconciled pc3 and ibmpc3 with the BSDI termcap file. Keith says # he's ready to start using the termcap generated from this one. # * Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m, # ln03, lno3-w, h19-g, z29a*, qdss. Made vt200 an alias of vt220. # * Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925, -# att610, att620, att630, +# att610, att620, att630, # * Changed hazeltine name prefix from h to hz. # * Sent t500 to the UFI file. # * I think we've sucked all the juice out of BSDI's termcap file now. @@ -17305,7 +17305,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * Sun console entry correction from J.T. Conklin. # * Changed all DEC VT300 and up terminals to use VT300 tab set # 9.13.7 (Mon Jul 8 20:14:32 EDT 1996): -# * Added smul to linux entry (we never noticed it was missing +# * Added smul to linux entry (we never noticed it was missing # because of sgr!). # * Added rmln to hp+labels (deduced from other HP entries). # * Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas, @@ -17318,7 +17318,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200, # qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc, # wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90, -# adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p, +# adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p, # f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000, # owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx, # lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25, @@ -17335,7 +17335,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * Aha! The BRL terminals file told us what the Iris extensions mean. # * Added, from the BRL termcap file: rt6221, rt6221-w, northstar, # commodore, cdc721-esc, excel62, osexec. Replaced from the BRL file: -# cit500, adm11. +# cit500, adm11. # 9.13.9 (Mon Jul 15 00:32:51 EDT 1996): # * Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756, # aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155. @@ -17362,7 +17362,7 @@ v3220|LANPAR Vision II model 3220/3221/3222:\ # * corrected pairs#8 typo in dtterm entry. # * added tvi9065. # 9.13.15 (Sun Sep 15 02:47:05 EDT 1996): -# * updated xterm entry to cover 3.1.2E's new features. +# * updated xterm entry to cover 3.1.2E's new features. # 9.13.16 (Tue Sep 24 12:47:43 EDT 1996): # * Added new minix entry # * Removed aliases of the form ^[0-9]* for obsolete terminals. diff --git a/etc/vipcard.tex b/etc/vipcard.tex index 46c65dae9d8..33e87aefc5d 100644 --- a/etc/vipcard.tex +++ b/etc/vipcard.tex @@ -87,7 +87,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -172,7 +172,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters diff --git a/etc/viperCard.tex b/etc/viperCard.tex index 08651320966..fa7fcc262cd 100644 --- a/etc/viperCard.tex +++ b/etc/viperCard.tex @@ -95,7 +95,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. \def\ncolumns{\the\columnsperpage} -\message{[\ncolumns\space +\message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} @@ -180,7 +180,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi - \end} + \end} \fi % we won't be using math mode much, so redefine some of the characters @@ -279,7 +279,7 @@ in .emacs \section{Viper States} -Viper has four states: {\it emacs state}, {\it vi state}, {\it insert state}, +Viper has four states: {\it emacs state}, {\it vi state}, {\it insert state}, {\it replace state}. Mode line tells you which state you are in. In emacs state you can do all the normal GNU Emacs editing. @@ -668,7 +668,7 @@ moves 11 lines below current line to the end of buffer. \section{Ex Commands} -Avoid Ex text manipulation commands except substitute. +Avoid Ex text manipulation commands except substitute. There are better VI equivalents for all of them. Also note that all Ex commands expand \% to current file name. To include a \% in the command, escape it with a $\backslash$. diff --git a/install-sh b/install-sh index ebc66913e94..058b26c82d2 100755 --- a/install-sh +++ b/install-sh @@ -115,7 +115,7 @@ fi if [ x"$dir_arg" != x ]; then dst=$src src="" - + if [ -d $dst ]; then instcmd=: else @@ -124,7 +124,7 @@ if [ x"$dir_arg" != x ]; then else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad +# might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] @@ -134,7 +134,7 @@ else echo "install: $src does not exist" exit 1 fi - + if [ x"$dst" = x ] then echo "install: no destination specified" @@ -162,7 +162,7 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then -defaultIFS=' +defaultIFS=' ' IFS="${IFS-${defaultIFS}}" @@ -201,17 +201,17 @@ else # If we're going to rename the final executable, determine the name now. - if [ x"$transformarg" = x ] + if [ x"$transformarg" = x ] then dstfile=`basename $dst` else - dstfile=`basename $dst $transformbasename | + dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename - if [ x"$dstfile" = x ] + if [ x"$dstfile" = x ] then dstfile=`basename $dst` else @@ -242,7 +242,7 @@ else # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile + $doit $mvcmd $dsttmp $dstdir/$dstfile fi && diff --git a/leim/ChangeLog b/leim/ChangeLog index 0d294c34bd6..71a966b583c 100644 --- a/leim/ChangeLog +++ b/leim/ChangeLog @@ -75,7 +75,7 @@ * quail/vntelex.el: Use proper charset. -2002-04-22 Koaunghi Un <koaunghi@ling.cnu.ac.kr> +2002-04-22 Koaunghi Un <koaunghi@ling.cnu.ac.kr> * quail/hanja.el ("Od"): Remove rule. @@ -189,7 +189,7 @@ * makefile.nt (INDIAN): Likewise. -2001-11-21 KAWABATA, Taichi <batta@beige.ocn.ne.jp> +2001-11-21 KAWABATA, Taichi <batta@beige.ocn.ne.jp> * quail/devanagari.el: Renamed to indian.el. @@ -680,7 +680,7 @@ * quail/tibetan.el: Change all tibetan-1-column characters to tibetan. Quail map for "tibetan-wylie" fixed. -2000-03-31 Wlodzimierz Bzyl <matwb@monika.univ.gda.pl> +2000-03-31 Wlodzimierz Bzyl <matwb@monika.univ.gda.pl> * quail/latin-pre.el ("polish-slash"): New input method. @@ -726,7 +726,7 @@ * makefile.nt: New file. -1999-10-26 Gerd Moellmann <gerd@gnu.org> +1999-10-26 Gerd Moellmann <gerd@gnu.org> * Makefile.noleim: New. @@ -958,7 +958,7 @@ * Makefile.in (${TIT}): To byte-compile quail packages, use just built quail. -1997-12-09 Koaunghi Un <koanughi.un@zdv.uni-tuebingen.de> +1997-12-09 Koaunghi Un <koanughi.un@zdv.uni-tuebingen.de> * quail/hanja3.el: New file. diff --git a/leim/Makefile.in b/leim/Makefile.in index c70eaa6067a..9c297ea3c5b 100644 --- a/leim/Makefile.in +++ b/leim/Makefile.in @@ -78,7 +78,7 @@ CHINESE-NON-TIT=${NON-TIT-GB} ${NON-TIT-BIG5} CHINESE-GB=${TIT-GB} ${NON-TIT-GB} -CHINESE-BIG5=${TIT-BIG5} ${NON-TIT-BIG5} +CHINESE-BIG5=${TIT-BIG5} ${NON-TIT-BIG5} JAPANESE=${srcdir}/quail/japanese.elc ${srcdir}/ja-dic/ja-dic.elc diff --git a/leim/makefile.nt b/leim/makefile.nt index b9b55d6c0c6..4785f31ca34 100644 --- a/leim/makefile.nt +++ b/leim/makefile.nt @@ -19,7 +19,7 @@ # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. -# +# # Sets up the system dependent macros. # !include ..\nt\makefile.def @@ -74,7 +74,7 @@ CHINESE_NON_TIT=$(NON_TIT_GB) $(NON_TIT_BIG5) CHINESE_GB=$(TIT_GB) $(NON_TIT_GB) -CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5) +CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5) JAPANESE=$(srcdir)/quail/japanese.elc $(srcdir)/ja-dic/ja-dic.elc diff --git a/leim/makefile.w32-in b/leim/makefile.w32-in index 6fd06dd0959..0c338d19c1b 100644 --- a/leim/makefile.w32-in +++ b/leim/makefile.w32-in @@ -72,7 +72,7 @@ CHINESE_NON_TIT=$(NON_TIT_GB) $(NON_TIT_BIG5) CHINESE_GB=$(TIT_GB) $(NON_TIT_GB) -CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5) +CHINESE_BIG5=$(TIT_BIG5) $(NON_TIT_BIG5) JAPANESE=$(srcdir)/quail/japanese.elc $(srcdir)/ja-dic/ja-dic.elc diff --git a/leim/quail/cyril-jis.el b/leim/quail/cyril-jis.el index 4ba9b9d2822..56ddee6e281 100644 --- a/leim/quail/cyril-jis.el +++ b/leim/quail/cyril-jis.el @@ -88,7 +88,7 @@ ("," ?$B'R(B) ("." ?$B'p(B) ("/" ?$B!?(B) - + ("!" ?$B!*(B) ("@" ?$B!w(B) ("#" ?$B!t(B) diff --git a/leim/quail/cyrillic.el b/leim/quail/cyrillic.el index 6cdb7c6d7d7..7422c5ee733 100644 --- a/leim/quail/cyrillic.el +++ b/leim/quail/cyrillic.el @@ -104,7 +104,7 @@ ("," ?,LQ(B) ("." ?,Ln(B) ("/" ?/) - + ("!" ?!) ("@" ?\") ("#" ?') @@ -266,7 +266,7 @@ (">" ?,LN(B) ("?" ?,)) -;; Mikhailian couldn't check the next two. +;; Mikhailian couldn't check the next two. ;; This seems to have the same layout for letters as mk in XKB, but at ;; least the top row is different. @@ -328,7 +328,7 @@ ("," ?,) ("." ?.) ("/" ?-) - + ("!" ?!) ("@" ?\") ("#" ?#) @@ -437,7 +437,7 @@ ("," ?,) ("." ?.) ("/" ?-) - + ("!" ?!) ("@" ?\") ("#" ?#) @@ -545,7 +545,7 @@ ;; ("n" ?,L](B) ;; ("m" ?,L\(B) ;; ("/" ?-) - + ;; ("@" ?\") ;; ("^" ?&) ;; ("&" ?') @@ -605,7 +605,7 @@ ;; happily with this little change. [See "ukrainian-computer" below.] ;; Fixme: add GHE_WITH_UPTURN. -(quail-define-package +(quail-define-package "cyrillic-ukrainian" "Ukrainian" ",L6(BU" nil ",L$'5@B7(B-,L&.(B UKRAINIAN (ISO 8859-5 encoding) @@ -665,7 +665,7 @@ Sorry, but 'ghe with upturn' is not included in ISO 8859-5." ("," ?,) ("." ?.) ("/" ?-) - + ("!" ?!) ("@" ?\") ("#" ?#) @@ -826,7 +826,7 @@ Sorry, but 'ghe with upturn' is not included in ISO 8859-5." ;; Alexander Mikhailian says this is of limited use. It has been ;; popular among emigrants or foreigners who have to type in Cyrillic ;; (mostly Russian) from time to time. -(quail-define-package +(quail-define-package "cyrillic-yawerty" "Cyrillic" ",L6O(B" nil ",LO25@BK(B Roman transcription (ISO 8859-5 encoding) @@ -897,7 +897,7 @@ as follows. ("," ?,) ("." ?.) ("/" ?/) - + ("!" ?!) ("@" ?,Lq(B) ("#" ?,Lj(B) @@ -945,7 +945,7 @@ as follows. ("<" ?<) (">" ?>) ("?" ??) - + ("/q" ?,Lr(B) ("/w" ?,Ls(B) ("/e" ?,Lt(B) @@ -959,7 +959,7 @@ as follows. ("/a" ?,L|(B) ("/s" ?,L~(B) ("/d" ?,L(B) - + ("/Q" ?,L"(B) ("/W" ?,L#(B) ("/E" ?,L$(B) @@ -1005,53 +1005,53 @@ Should handle most cases. However: Russian alphabet: a b v=w g d e yo=jo zh z i j=j' k l m n o p r s t u f h=kh=x c ch sh shch=sj=/s=/sht ~ y ' e' yu=ju ya=ja=q -Also included are Ukrainian ,Lt(B (YE) = \"/e\" and ,Lw(B (YI) = \"yi\", +Also included are Ukrainian ,Lt(B (YE) = \"/e\" and ,Lw(B (YI) = \"yi\", Belarusian ,L~(B (SHORT U) = \"u'\", -Serbo-Croatian ,Lr(B (DJE) = \"/d\", ,L{(B (CHJE)= \"/ch\", +Serbo-Croatian ,Lr(B (DJE) = \"/d\", ,L{(B (CHJE)= \"/ch\", Macedonian ,Ls(B (GJE) = \"/g\", ,Lu(B (DZE) = \"/s\", ,L|(B (KJE) = \"/k\", -cyrillic ,Lv(B (I DECIMAL) = \"/i\", ,Lx(B (JE) = \"/j\", +cyrillic ,Lv(B (I DECIMAL) = \"/i\", ,Lx(B (JE) = \"/j\", ,Ly(B (LJE) = \"/l\", ,Lz(B (NJE) = \"/n\" and ,L(B (DZE) =\"/z\"." nil t t t t nil nil nil nil nil t) (quail-define-rules - ("a" ?,LP(B)("b" ?,LQ(B) ("v" ?,LR(B) ("w" ?,LR(B) ("g" ?,LS(B) ("d" ?,LT(B) - ("e" ?,LU(B) ("je" ?,LU(B) + ("a" ?,LP(B)("b" ?,LQ(B) ("v" ?,LR(B) ("w" ?,LR(B) ("g" ?,LS(B) ("d" ?,LT(B) + ("e" ?,LU(B) ("je" ?,LU(B) ("yo" ?,Lq(B) ("jo" ?,Lq(B) - ("zh" ?,LV(B) ("z" ?,LW(B) ("i" ?,LX(B) + ("zh" ?,LV(B) ("z" ?,LW(B) ("i" ?,LX(B) ("j" ?,LY(B) ("j'" ?,LY(B) ("j`" ?,LY(B) ("k" ?,LZ(B) ("l" ?,L[(B) ("m" ?,L\(B) ("n" ?,L](B) ("o" ?,L^(B) ("p" ?,L_(B) ("r" ?,L`(B) ("s" ?,La(B) ("t" ?,Lb(B) ("u" ?,Lc(B) ("f" ?,Ld(B) ("x" ?,Le(B) ("h" ?,Le(B) ("kh" ?,Le(B) ("c" ?,Lf(B) ("ch" ?,Lg(B) - ("sh" ?,Lh(B) - ("shch" ?,Li(B) ("sj" ?,Li(B) - ("/sht" ?,Li(B) ("/t" ?,Li(B) - ("~" ?,Lj(B) ("y" ?,Lk(B) ("'" ?,Ll(B) ("`" ?,Ll(B) - ("e'" ?,Lm(B) ("e`" ?,Lm(B) ("@" ?,Lm(B) - ("yu" ?,Ln(B) ("ju" ?,Ln(B) + ("sh" ?,Lh(B) + ("shch" ?,Li(B) ("sj" ?,Li(B) + ("/sht" ?,Li(B) ("/t" ?,Li(B) + ("~" ?,Lj(B) ("y" ?,Lk(B) ("'" ?,Ll(B) ("`" ?,Ll(B) + ("e'" ?,Lm(B) ("e`" ?,Lm(B) ("@" ?,Lm(B) + ("yu" ?,Ln(B) ("ju" ?,Ln(B) ("ya" ?,Lo(B) ("ja" ?,Lo(B) ("q" ?,Lo(B) - ("A" ?,L0(B) ("B" ?,L1(B) ("V" ?,L2(B) ("W" ?,L2(B) ("G" ?,L3(B) ("D" ?,L4(B) + ("A" ?,L0(B) ("B" ?,L1(B) ("V" ?,L2(B) ("W" ?,L2(B) ("G" ?,L3(B) ("D" ?,L4(B) ("E" ?,L5(B) ("Je" ?,L5(B) ("JE" ?,L5(B) - ("Yo" ?,L!(B) ("YO" ?,L!(B) ("Jo" ?,L!(B) ("JO" ?,L!(B) - ("Zh" ?,L6(B) ("ZH" ?,L6(B) ("Z" ?,L7(B) ("I" ?,L8(B) + ("Yo" ?,L!(B) ("YO" ?,L!(B) ("Jo" ?,L!(B) ("JO" ?,L!(B) + ("Zh" ?,L6(B) ("ZH" ?,L6(B) ("Z" ?,L7(B) ("I" ?,L8(B) ("J" ?,L9(B) ("J'" ?,L9(B) ("J`" ?,L9(B) ("K" ?,L:(B) ("L" ?,L;(B) ("M" ?,L<(B) ("N" ?,L=(B) ("O" ?,L>(B) ("P" ?,L?(B) ("R" ?,L@(B) ("S" ?,LA(B) ("T" ?,LB(B) ("U" ?,LC(B) ("F" ?,LD(B) ("X" ?,LE(B) ("H" ?,LE(B) ("Kh" ?,LE(B) ("KH" ?,LE(B) - ("C" ?,LF(B) ("Ch" ?,LG(B) ("CH" ?,LG(B) - ("Sh" ?,LH(B) ("SH" ?,LH(B) - ("Shch" ?,LI(B) ("SHCH" ?,LI(B) ("Sj" ?,LI(B) ("SJ" ?,LI(B) - ("/Sht" ?,LI(B) ("/SHT" ?,LI(B) ("/T" ?,LI(B) - ("~~" ",LJ(B") ("Y" ?,LK(B) ("''" ",LL(B") ("E'" ?,LM(B) ("E`" ?,LM(B) - ("Yu" ?,LN(B) ("YU" ?,LN(B) ("Ju" ?,LN(B) ("JU" ?,LN(B) + ("C" ?,LF(B) ("Ch" ?,LG(B) ("CH" ?,LG(B) + ("Sh" ?,LH(B) ("SH" ?,LH(B) + ("Shch" ?,LI(B) ("SHCH" ?,LI(B) ("Sj" ?,LI(B) ("SJ" ?,LI(B) + ("/Sht" ?,LI(B) ("/SHT" ?,LI(B) ("/T" ?,LI(B) + ("~~" ",LJ(B") ("Y" ?,LK(B) ("''" ",LL(B") ("E'" ?,LM(B) ("E`" ?,LM(B) + ("Yu" ?,LN(B) ("YU" ?,LN(B) ("Ju" ?,LN(B) ("JU" ?,LN(B) ("Ya" ?,LO(B) ("YA" ?,LO(B) ("Ja" ?,LO(B) ("JA" ?,LO(B) ("Q" ?,LO(B) ("/e" ?,Lt(B) ("yi" ?,Lw(B) ("u'" ?,L~(B) ("/d" ?,Lr(B) ("/ch" ?,L{(B) ("/g" ?,Ls(B) ("/s" ?,Lu(B) ("/k" ?,L|(B) ("/i" ?,Lv(B) ("/j" ?,Lx(B) ("/l" ?,Ly(B) ("/n" ?,Lz(B) ("/z" ?,L(B) - ("/E" ?,L$(B) ("YE" ?,L$(B) ("Yi" ?,L'(B) ("YI" ?,L'(B) ("U'" ?,L.(B) + ("/E" ?,L$(B) ("YE" ?,L$(B) ("Yi" ?,L'(B) ("YI" ?,L'(B) ("U'" ?,L.(B) ("/D" ?,L"(B) ("/Ch" ?,L+(B) ("/CH" ?,L+(B) - ("/G" ?,L#(B) ("/S" ?,L%(B) ("/K" ?,L,(B) + ("/G" ?,L#(B) ("/S" ?,L%(B) ("/K" ?,L,(B) ("/I" ?,L&(B) ("/J" ?,L((B) ("/L" ?,L)(B) ("/N" ?,L*(B) ("/Z" ?,L/(B) ) diff --git a/leim/quail/ethiopic.el b/leim/quail/ethiopic.el index b8c10f26b9a..8cda85ea884 100644 --- a/leim/quail/ethiopic.el +++ b/leim/quail/ethiopic.el @@ -30,7 +30,7 @@ (require 'quail) (require 'ethio-util) - + ;; ;; The package "ethiopic" ;; @@ -342,7 +342,7 @@ C-' or `M-x ethio-gemination' ("qqee" ?$(3%-(B) ("qq" ?$(3%.(B) ("qqo" ?$(3%/(B) - + ("Qe" ?$(3!q(B) ("Qu" ?$(3!r(B) ("Qi" ?$(3!s(B) @@ -1141,7 +1141,7 @@ C-' or `M-x ethio-gemination' (defun ethio-select-a-translation () ;; The translation of `a' depends on the language - ;; (either Tigrigna or Amharic). + ;; (either Tigrigna or Amharic). (quail-defrule "a" (if (ethio-prefer-amharic-p) ?$(3"c(B ?$(3"f(B) "ethiopic")) diff --git a/leim/quail/greek.el b/leim/quail/greek.el index a1fec0b27c3..25a5c4f8b18 100644 --- a/leim/quail/greek.el +++ b/leim/quail/greek.el @@ -84,7 +84,7 @@ Sorry, accents and terminal sigma are not supported in JIS." ("," ?, ) ("." ?. ) ("/" ?$B!?(B) - + ("!" ?$B!*(B) ("@" ?$B!w(B) ("#" ?$B!t(B) @@ -248,7 +248,7 @@ nil t t nil nil nil nil nil nil nil t) ("m" ?$,1'<(B) ("n" ?$,1'=(B) ("o" ?$,1'?(B) - + ("p" ?$,1'@(B) ("q" ?$,1'8(B) ("r" ?$,1'A(B) @@ -1049,7 +1049,7 @@ e.g. ;; 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~ ;; ;: ,FrS(B ,FeE(B ,FqQ(B ,FtT(B ,FuU(B ,FhH(B ,FiI(B ,FoO(B ,FpP(B [{ ]} ;; ,FaA(B ,FsS(B ,FdD(B ,FvV(B ,FcC(B ,FgG(B ,FnN(B ,FjJ(B ,FkK(B ,F4((B '" \| -;; ,FfF(B ,FwW(B ,FxX(B ,FyY(B ,FbB(B ,FmM(B ,FlL(B ,< .> /? +;; ,FfF(B ,FwW(B ,FxX(B ,FyY(B ,FbB(B ,FmM(B ,FlL(B ,< .> /? (quail-define-rules ("1" ?1) @@ -1099,7 +1099,7 @@ e.g. ("," ?,) ("." ?.) ("/" ?/) - + ("!" ?!) ("@" ?@) ("#" ?#) @@ -1147,7 +1147,7 @@ e.g. ("<" ?<) (">" ?>) ("?" ??) - + (";a" ?,F\(B) (";e" ?,F](B) (";h" ?,F^(B) @@ -1189,7 +1189,7 @@ e.g. ;; 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~ ;; ,F7/(B ,FrS(B ,FeE(B ,FqQ(B ,FtT(B ,FuU(B ,FhH(B ,FiI(B ,FoO(B ,FpP(B [{ ]} ;; ,FaA(B ,FsS(B ,FdD(B ,FvV(B ,FcC(B ,FgG(B ,FnN(B ,FjJ(B ,FkK(B ,F4((B '" \| -;; ,FfF(B ,FwW(B ,FxX(B ,FyY(B ,FbB(B ,FmM(B ,FlL(B ,; .: /? +;; ,FfF(B ,FwW(B ,FxX(B ,FyY(B ,FbB(B ,FmM(B ,FlL(B ,; .: /? (quail-define-rules ("1" ?1) @@ -1239,7 +1239,7 @@ e.g. ("," ?,) ("." ?.) ("/" ?/) - + ("!" ?!) ("@" ?@) ("#" ?#) @@ -1287,7 +1287,7 @@ e.g. ("<" ?<) (">" ?>) ("?" ??) - + ("a;" ?,F\(B) ("e;" ?,F](B) ("h;" ?,F^(B) diff --git a/leim/quail/hangul.el b/leim/quail/hangul.el index 2261f857ab6..6cd15cccd68 100644 --- a/leim/quail/hangul.el +++ b/leim/quail/hangul.el @@ -74,14 +74,14 @@ For instance, typing \"S\" followed by TAB will tell you ("x" ?$(C$<(B) ("v" ?$(C$=(B) ("g" ?$(C$>(B) - + ("R" ?$(C$"(B) ("E" ?$(C$((B) ("Q" ?$(C$3(B) ("W" ?$(C$9(B) ("T" ?$(C$6(B) ("P" ?$(C$F(B) - + ("k" ?$(C$?(B) ("i" ?$(C$A(B) ("j" ?$(C$C(B) @@ -95,7 +95,7 @@ For instance, typing \"S\" followed by TAB will tell you ("l" ?$(C$S(B) ("o" ?$(C$@(B) ("O" ?$(C$B(B) - + ("rk" ?$(C0!(B) ("rkr" ?$(C0"(B) ("rks" ?$(C0#(B) @@ -942,7 +942,7 @@ For instance, typing \"S\" followed by TAB will tell you ("ahkT" ?$(C8|(B) ("ahkd" ?$(C8}(B) ("ahl" ?$(C8~(B) - + ("ahls" ?$(C9!(B) ("ahlf" ?$(C9"(B) ("ahlq" ?$(C9#(B) @@ -977,7 +977,7 @@ For instance, typing \"S\" followed by TAB will tell you ("anls" ?$(C9@(B) ("anlf" ?$(C9A(B) ("ab" ?$(C9B(B) - + ("abs" ?$(C9C(B) ("abf" ?$(C9D(B) ("aba" ?$(C9E(B) @@ -2448,7 +2448,7 @@ For instance, typing \"S\" followed by TAB will tell you ("glq" ?$(CH|(B) ("glt" ?$(CH}(B) ("gld" ?$(CH~(B) - + ("Z!" ?$(C#!(B) ("Z\"" ?$(C#"(B) ("Z#" ?$(C##(B) @@ -2543,7 +2543,7 @@ For instance, typing \"S\" followed by TAB will tell you ("Z|" ?$(C#|(B) ("Z}" ?$(C#}(B) ("Z^-" ?$(C#~(B) - + ("HS" ?$(C$U(B) ("Hse" ?$(C$V(B) ("Hst" ?$(C$W(B) @@ -2586,7 +2586,7 @@ For instance, typing \"S\" followed by TAB will tell you ("Hbl" ?$(C$|(B) ("H." ?$(C$}(B) ("H.l" ?$(C$~(B) - + ("SY" ?$(C!M(B) ("SP" ?$(C!L(B) ("S%" ?$(C"6(B) diff --git a/leim/quail/hangul3.el b/leim/quail/hangul3.el index c87448bcbeb..a91c2ef2191 100644 --- a/leim/quail/hangul3.el +++ b/leim/quail/hangul3.el @@ -39,15 +39,15 @@ (?\; . "$(C$2(B") (?n . "$(C$5(B") (?j . "$(C$7(B") (?l . "$(C$8(B") (?o . "$(C$:(B") (?0 . "$(C$;(B") (?' . "$(C$<(B") (?p . "$(C$=(B") (?m . "$(C$>(B") ;; second character - (?f . "$(C$?(B") (?r . "$(C$@(B") (?6 . "$(C$A(B") (?R . "$(C$B(B") (?t . "$(C$C(B") + (?f . "$(C$?(B") (?r . "$(C$@(B") (?6 . "$(C$A(B") (?R . "$(C$B(B") (?t . "$(C$C(B") (?c . "$(C$D(B") (?e . "$(C$E(B") (?7 . "$(C$F(B") (?v . "$(C$G(B") (?/ . "$(C$G(B") (?4 . "$(C$K(B") (?b . "$(C$L(B") (?9 . "$(C$L(B") (?5 . "$(C$P(B") (?g . "$(C$Q(B") (?8 . "$(C$R(B") (?d . "$(C$S(B") ;; third character (?x . "$(C$!(B") (?F . "$(C$"(B") (?s . "$(C$$(B") (?S . "$(C$&(B") (?A . "$(C$'(B") - (?w . "$(C$)(B") (?D . "$(C$*(B") (?C . "$(C$+(B") (?V . "$(C$0(B") (?z . "$(C$1(B") + (?w . "$(C$)(B") (?D . "$(C$*(B") (?C . "$(C$+(B") (?V . "$(C$0(B") (?z . "$(C$1(B") (?3 . "$(C$2(B") (?X . "$(C$4(B") (?q . "$(C$5(B") (?2 . "$(C$6(B") (?a . "$(C$7(B") - (?! . "$(C$8(B") (?Z . "$(C$:(B") (?e . "$(C$;(B") (?W . "$(C$<(B") (?Q . "$(C$=(B") + (?! . "$(C$8(B") (?Z . "$(C$:(B") (?e . "$(C$;(B") (?W . "$(C$<(B") (?Q . "$(C$=(B") (?1 . "$(C$>(B") ;; other bindings (?G . "/") (?T . ";") (?H . "'") (?B . "!") (?Y . "<") @@ -91,7 +91,7 @@ ("'" ?$(C$<(B) ("p" ?$(C$=(B) ("m" ?$(C$>(B) - + ("f" ?$(C$?(B) ("r" ?$(C$@(B) ("6" ?$(C$A(B) @@ -120,7 +120,7 @@ ("g" ?$(C$Q(B) ("8" ?$(C$R(B) ("d" ?$(C$S(B) - + ("x" ?$(C$!(B) ("F" ?$(C$"(B) ("xx" ?$(C$"(B) @@ -154,7 +154,7 @@ ("W" ?$(C$<(B) ("Q" ?$(C$=(B) ("1" ?$(C$>(B) - + ("G" ?/) ("T" ?\;) ("H" ?') @@ -175,7 +175,7 @@ ("U" ?7) ("I" ?8) ("O" ?9) - + ("kf" ?$(C0!(B) ("kfx" ?$(C0"(B) ("kfs" ?$(C0#(B) @@ -620,7 +620,7 @@ ("kkd3" ?$(C3'(B) ("kkdq" ?$(C3((B) ("kkda" ?$(C3)(B) - + ("hf" ?$(C3*(B) ("hfx" ?$(C3+(B) ("hfF" ?$(C3,(B) @@ -817,7 +817,7 @@ ("hdq" ?$(C4V(B) ("hda" ?$(C4W(B) ("hdQ" ?$(C4X(B) - + ("uf" ?$(C4Y(B) ("ufx" ?$(C4Z(B) ("ufF" ?$(C4[(B) @@ -1004,7 +1004,7 @@ ("udqq" ?$(C5x(B) ("uda" ?$(C5y(B) ("ud!" ?$(C5z(B) - + ("uuf" ?$(C5{(B) ("uufx" ?$(C5|(B) ("uufs" ?$(C5}(B) @@ -1122,7 +1122,7 @@ ("uud3" ?$(C6p(B) ("uudq" ?$(C6q(B) ("uuda" ?$(C6r(B) - + ("yf" ?$(C6s(B) ("yfx" ?$(C6t(B) ("yfs" ?$(C6u(B) @@ -1294,7 +1294,7 @@ ("yd3" ?$(C83(B) ("ydq" ?$(C84(B) ("yda" ?$(C85(B) - + ("if" ?$(C86(B) ("ifx" ?$(C87(B) ("ifs" ?$(C88(B) @@ -1487,7 +1487,7 @@ ("ida" ?$(C9V(B) ("idZ" ?$(C9W(B) ("idW" ?$(C9X(B) - + (";f" ?$(C9Y(B) (";fx" ?$(C9Z(B) (";fF" ?$(C9[(B) @@ -1773,7 +1773,7 @@ (";;d3" ?$(C;d(B) (";;dq" ?$(C;e(B) (";;da" ?$(C;f(B) - + ("nf" ?$(C;g(B) ("nfx" ?$(C;h(B) ("nfxq" ?$(C;i(B) @@ -2138,7 +2138,7 @@ ("nnd3" ?$(C>C(B) ("nndq" ?$(C>D(B) ("nnda" ?$(C>E(B) - + ("jf" ?$(C>F(B) ("jfx" ?$(C>G(B) ("jfs" ?$(C>H(B) @@ -2444,7 +2444,7 @@ ("jda" ?$(C@W(B) ("jd!" ?$(C@X(B) ("jdQ" ?$(C@Y(B) - + ("lf" ?$(C@Z(B) ("lfx" ?$(C@[(B) ("lfs" ?$(C@\(B) @@ -2770,7 +2770,7 @@ ("llda" ?$(CBt(B) ("lld!" ?$(CBu(B) ("lld1" ?$(CBv(B) - + ("of" ?$(CBw(B) ("ofx" ?$(CBx(B) ("ofs" ?$(CBy(B) @@ -2928,7 +2928,7 @@ ("od3" ?$(CD((B) ("odq" ?$(CD)(B) ("oda" ?$(CD*(B) - + ("0f" ?$(CD+(B) ("0fx" ?$(CD,(B) ("0fs" ?$(CD-(B) @@ -3077,7 +3077,7 @@ ("0d3" ?$(CE5(B) ("0dq" ?$(CE6(B) ("0da" ?$(CE7(B) - + ("'f" ?$(CE8(B) ("'fx" ?$(CE9(B) ("'fs" ?$(CE:(B) @@ -3226,7 +3226,7 @@ ("'d3" ?$(CFA(B) ("'dq" ?$(CFB(B) ("'da" ?$(CFC(B) - + ("pf" ?$(CFD(B) ("pfx" ?$(CFE(B) ("pfF" ?$(CFF(B) @@ -3369,7 +3369,7 @@ ("pd3" ?$(CGL(B) ("pdq" ?$(CGM(B) ("pda" ?$(CGN(B) - + ("mf" ?$(CGO(B) ("mfx" ?$(CGP(B) ("mfs" ?$(CGQ(B) diff --git a/leim/quail/hanja.el b/leim/quail/hanja.el index 4e8999b740d..10106dfad26 100644 --- a/leim/quail/hanja.el +++ b/leim/quail/hanja.el @@ -32,7 +32,7 @@ (require 'quail) (require 'korea-util) -(quail-define-package +(quail-define-package "korean-hanja" "Korean" "$(CyS(B2" t "2$(C9z=D(BKSC$(CySm.(B: $(Cz1SWGO4B(B $(CySm.@G(B $(Cj$@;(B $(CGQ1[(B2$(C9zcR@87N(B $(C{<usGO?)(B $(C`TwI(B" nil nil nil nil nil nil t) diff --git a/leim/quail/hebrew.el b/leim/quail/hebrew.el index f52449b6cc6..5bd2c8bb49a 100644 --- a/leim/quail/hebrew.el +++ b/leim/quail/hebrew.el @@ -39,7 +39,7 @@ Hebrew letters are assigned to lowercases. ;; /Q 'W ,Hw(BE ,Hx(BR ,H`(BT ,Hh(BY ,He(BU ,Ho(BI ,Hm(BO ,Ht(BP {[ {] ;; ,Hy(BA ,Hc(BS ,Hb(BD ,Hk(BF ,Hr(BG ,Hi(BH ,Hg(BJ ,Hl(BK ,Hj(BL :,Hs(B ", |\ ;; ,Hf(BZ ,Hq(BX ,Ha(BC ,Hd(BV ,Hp(BB ,Hn(BN ,Hv(BM <,Hz(B >,Hu(B ?. -;; +;; (quail-define-rules ("`" ?\;) diff --git a/leim/quail/japanese.el b/leim/quail/japanese.el index ffb8a150c59..e859c63bdc6 100644 --- a/leim/quail/japanese.el +++ b/leim/quail/japanese.el @@ -56,7 +56,7 @@ (setq unread-command-events (list (aref quail-current-key control-flag))))))) control-flag) - + ;; Convert Hiragana <-> Katakana in the current translation region. (defun quail-japanese-toggle-kana () (interactive) @@ -139,7 +139,7 @@ ("ra" "$B$i(B") ("ri" "$B$j(B") ("ru" "$B$k(B") ("re" "$B$l(B") ("ro" "$B$m(B") ("la" "$B$i(B") ("li" "$B$j(B") ("lu" "$B$k(B") ("le" "$B$l(B") ("lo" "$B$m(B") ("wa" "$B$o(B") ("wi" "$B$p(B") ("wu" "$B$&(B") ("we" "$B$q(B") ("wo" "$B$r(B") - ("n'" "$B$s(B") + ("n'" "$B$s(B") ("ga" "$B$,(B") ("gi" "$B$.(B") ("gu" "$B$0(B") ("ge" "$B$2(B") ("go" "$B$4(B") ("za" "$B$6(B") ("zi" "$B$8(B") ("zu" "$B$:(B") ("ze" "$B$<(B") ("zo" "$B$>(B") ("da" "$B$@(B") ("di" "$B$B(B") ("du" "$B$E(B") ("de" "$B$G(B") ("do" "$B$I(B") @@ -461,7 +461,7 @@ qh: shift to the input method `japanese', ("p" "$B#p(B") ("q" "$B#q(B") ("r" "$B#r(B") ("s" "$B#s(B") ("t" "$B#t(B") ("u" "$B#u(B") ("v" "$B#v(B") ("w" "$B#w(B") ("x" "$B#x(B") ("y" "$B#y(B") ("z" "$B#z(B") ("{" "$B!P(B") -("|" "$B!C(B") ("}" "$B!Q(B") ("~" "$B!A(B") +("|" "$B!C(B") ("}" "$B!Q(B") ("~" "$B!A(B") ("qq" quail-japanese-switch-package) ("qh" quail-japanese-switch-package) @@ -527,7 +527,7 @@ qq: toggle between this input method and the input method `japanese-ascii'. (setq quail-current-str (japanese-katakana quail-current-str))) control-flag) -(quail-define-package +(quail-define-package "japanese-katakana" "Japanese" "$B%"(B" nil "Japanese katakana input method by Roman transliteration." diff --git a/leim/quail/latin-alt.el b/leim/quail/latin-alt.el index 22eec093981..ea0e1ba4448 100644 --- a/leim/quail/latin-alt.el +++ b/leim/quail/latin-alt.el @@ -1552,7 +1552,7 @@ Uses the `mule-unicode-0100-24ff' charset to supplement Latin-1. | prefix | ------------+---------+---------- diaeresis | \" | \"a -> ,Ad(B - + Doubling the postfix separates the letter and postfix: e.g. a'' -> a' " nil t nil nil nil nil nil nil nil nil t) @@ -1560,64 +1560,64 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a' ("fl." ?$,1!R(B) ;; LATIN SMALL LETTER F WITH HOOK (florin currency symbol) ("eur." ?$,1tL(B) ;; EURO SIGN ;; $,1r|(BThe 25th letter of the Dutch alphabet.$,1r}(B - ("ij" ?$,1 S(B) ;; LATIN SMALL LIGATURE IJ - ("IJ" ?$,1 R(B) ;; LATIN CAPITAL LIGATURE IJ + ("ij" ?$,1 S(B) ;; LATIN SMALL LIGATURE IJ + ("IJ" ?$,1 R(B) ;; LATIN CAPITAL LIGATURE IJ ;; $,1r|(BTrema on the second letter of vowel pair.$,1r}(B Yudit uses `:', not `"'. - ("\"a" ?,Ad(B) ;; LATIN SMALL LETTER A WITH DIAERESIS - ("\"e" ?,Ak(B) ;; LATIN SMALL LETTER E WITH DIAERESIS - ("\"i" ?,Ao(B) ;; LATIN SMALL LETTER I WITH DIAERESIS - ("\"o" ?,Av(B) ;; LATIN SMALL LETTER O WITH DIAERESIS - ("\"u" ?,A|(B) ;; LATIN SMALL LETTER U WITH DIAERESIS - ("\"A" ?,AD(B) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - ("\"E" ?,AK(B) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - ("\"I" ?,AO(B) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - ("\"O" ?,AV(B) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - ("\"U" ?,A\(B) ;; LATIN CAPITAL LETTER U WITH DIAERESIS + ("\"a" ?,Ad(B) ;; LATIN SMALL LETTER A WITH DIAERESIS + ("\"e" ?,Ak(B) ;; LATIN SMALL LETTER E WITH DIAERESIS + ("\"i" ?,Ao(B) ;; LATIN SMALL LETTER I WITH DIAERESIS + ("\"o" ?,Av(B) ;; LATIN SMALL LETTER O WITH DIAERESIS + ("\"u" ?,A|(B) ;; LATIN SMALL LETTER U WITH DIAERESIS + ("\"A" ?,AD(B) ;; LATIN CAPITAL LETTER A WITH DIAERESIS + ("\"E" ?,AK(B) ;; LATIN CAPITAL LETTER E WITH DIAERESIS + ("\"I" ?,AO(B) ;; LATIN CAPITAL LETTER I WITH DIAERESIS + ("\"O" ?,AV(B) ;; LATIN CAPITAL LETTER O WITH DIAERESIS + ("\"U" ?,A\(B) ;; LATIN CAPITAL LETTER U WITH DIAERESIS ;; $,1r|(BAcute, marking emphasis on long vowels$,1r}(B: - ("a'" ?,Aa(B) ;; LATIN SMALL LETTER A WITH ACUTE - ("e'" ?,Ai(B) ;; LATIN SMALL LETTER E WITH ACUTE - ("i'" ?,Am(B) ;; LATIN SMALL LETTER I WITH ACUTE - ("o'" ?,As(B) ;; LATIN SMALL LETTER O WITH ACUTE - ("u'" ?,Az(B) ;; LATIN SMALL LETTER U WITH ACUTE - ("A'" ?,AA(B) ;; LATIN CAPITAL LETTER A WITH ACUTE - ("E'" ?,AI(B) ;; LATIN CAPITAL LETTER E WITH ACUTE - ("I'" ?,AM(B) ;; LATIN CAPITAL LETTER I WITH ACUTE - ("O'" ?,AS(B) ;; LATIN CAPITAL LETTER O WITH ACUTE - ("U'" ?,AZ(B) ;; LATIN CAPITAL LETTER U WITH ACUTE + ("a'" ?,Aa(B) ;; LATIN SMALL LETTER A WITH ACUTE + ("e'" ?,Ai(B) ;; LATIN SMALL LETTER E WITH ACUTE + ("i'" ?,Am(B) ;; LATIN SMALL LETTER I WITH ACUTE + ("o'" ?,As(B) ;; LATIN SMALL LETTER O WITH ACUTE + ("u'" ?,Az(B) ;; LATIN SMALL LETTER U WITH ACUTE + ("A'" ?,AA(B) ;; LATIN CAPITAL LETTER A WITH ACUTE + ("E'" ?,AI(B) ;; LATIN CAPITAL LETTER E WITH ACUTE + ("I'" ?,AM(B) ;; LATIN CAPITAL LETTER I WITH ACUTE + ("O'" ?,AS(B) ;; LATIN CAPITAL LETTER O WITH ACUTE + ("U'" ?,AZ(B) ;; LATIN CAPITAL LETTER U WITH ACUTE ;; $,1r|(BGrave, marking emphasis on short vowels$,1r}(B: ("a`" ?,A`(B) ;; LATIN SMALL LETTER A WITH GRAVE - ("e`" ?,Ah(B) ;; LATIN SMALL LETTER E WITH GRAVE - ("i`" ?,Al(B) ;; LATIN SMALL LETTER I WITH GRAVE - ("o`" ?,Ar(B) ;; LATIN SMALL LETTER O WITH GRAVE - ("u`" ?,Ay(B) ;; LATIN SMALL LETTER U WITH GRAVE - ("A`" ?,A@(B) ;; LATIN CAPITAL LETTER A WITH GRAVE - ("E`" ?,AH(B) ;; LATIN CAPITAL LETTER E WITH GRAVE - ("I`" ?,AL(B) ;; LATIN CAPITAL LETTER I WITH GRAVE - ("O`" ?,AR(B) ;; LATIN CAPITAL LETTER O WITH GRAVE + ("e`" ?,Ah(B) ;; LATIN SMALL LETTER E WITH GRAVE + ("i`" ?,Al(B) ;; LATIN SMALL LETTER I WITH GRAVE + ("o`" ?,Ar(B) ;; LATIN SMALL LETTER O WITH GRAVE + ("u`" ?,Ay(B) ;; LATIN SMALL LETTER U WITH GRAVE + ("A`" ?,A@(B) ;; LATIN CAPITAL LETTER A WITH GRAVE + ("E`" ?,AH(B) ;; LATIN CAPITAL LETTER E WITH GRAVE + ("I`" ?,AL(B) ;; LATIN CAPITAL LETTER I WITH GRAVE + ("O`" ?,AR(B) ;; LATIN CAPITAL LETTER O WITH GRAVE ("U`" ?,AY(B) ;; LATIN CAPITAL LETTER U WITH GRAVE ;; $,1r|(BCater for the use of many French words and use of the circumflex ;; in Frisian.$,1r}(B Yudit used `;' for cedilla. - ("c," ?,Ag(B) ;; LATIN SMALL LETTER C WITH CEDILLA - ("C," ?,AG(B) ;; LATIN CAPITAL LETTER C WITH CEDILLA - ("a^" ?,Ab(B) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - ("e^" ?,Aj(B) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - ("i^" ?,An(B) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - ("o^" ?,At(B) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - ("u^" ?,A{(B) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - ("A^" ?,AB(B) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - ("E^" ?,AJ(B) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - ("I^" ?,AN(B) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - ("O^" ?,AT(B) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX + ("c," ?,Ag(B) ;; LATIN SMALL LETTER C WITH CEDILLA + ("C," ?,AG(B) ;; LATIN CAPITAL LETTER C WITH CEDILLA + ("a^" ?,Ab(B) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX + ("e^" ?,Aj(B) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX + ("i^" ?,An(B) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX + ("o^" ?,At(B) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX + ("u^" ?,A{(B) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX + ("A^" ?,AB(B) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX + ("E^" ?,AJ(B) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX + ("I^" ?,AN(B) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX + ("O^" ?,AT(B) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX ("U^" ?,A[(B) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX ;; $,1r|(BFollow the example of the Dutch POSIX locale, using ISO-8859-9 to ;; cater to the many Turks in Dutch society.$,1r}(B Perhaps German methods ;; should do so too. Follow turkish-alt-postfix here. ("i/" ?$,1 Q(B) ;; LATIN SMALL LETTER I WITH NO DOT - ("s," ?$,1 (B) ;; LATIN SMALL LETTER S WITH CEDILLA - ("g^" ?$,1 ?(B) ;; LATIN SMALL LETTER G WITH BREVE + ("s," ?$,1 (B) ;; LATIN SMALL LETTER S WITH CEDILLA + ("g^" ?$,1 ?(B) ;; LATIN SMALL LETTER G WITH BREVE ("I/" ?$,1 P(B) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE - ("S," ?$,1 ~(B) ;; LATIN CAPITAL LETTER S WITH CEDILLA - ("G^" ?$,1 >(B) ;; LATIN CAPITAL LETTER G WITH BREVE + ("S," ?$,1 ~(B) ;; LATIN CAPITAL LETTER S WITH CEDILLA + ("G^" ?$,1 >(B) ;; LATIN CAPITAL LETTER G WITH BREVE ) ;; Originally from Yudit, discussed with Albertas Agejevas diff --git a/leim/quail/latin-ltx.el b/leim/quail/latin-ltx.el index 16060f7ab14..afb68108627 100644 --- a/leim/quail/latin-ltx.el +++ b/leim/quail/latin-ltx.el @@ -62,7 +62,7 @@ system, including many technical ones. Examples: ("$^1$" ?,A9(B) ("$^o$" ?,A:(B) ("?`" ?,A?(B) - + ("\\`{A}" ?,A@(B) ("\\`A" ?,A@(B) ("\\'{A}" ?,AA(B) ("\\'A" ?,AA(B) ("\\^{A}" ?,AB(B) ("\\^A" ?,AB(B) diff --git a/leim/quail/latin-pre.el b/leim/quail/latin-pre.el index 3244ff678fa..67c490be628 100644 --- a/leim/quail/latin-pre.el +++ b/leim/quail/latin-pre.el @@ -26,7 +26,7 @@ ;;; Commentary: ;; Key translation maps were originally copied from iso-acc.el. -;; latin-1-prefix: extra special characters added, adapted from the vim +;; latin-1-prefix: extra special characters added, adapted from the vim ;; digraphs (from J.H.M.Dassen <jdassen@wi.leidenuniv.nl>) ;; by R.F. Smith <rsmith@xs4all.nl> ;; @@ -710,7 +710,7 @@ For example, the character named `aogonek' is obtained by `/a'." ("/e" ?,Bj(B) ("/l" ?,B3(B) ("/n" ?,Bq(B) - ("/o" ?,Bs(B) + ("/o" ?,Bs(B) ("/s" ?,B6(B) ("/x" ?,B<(B) ("/z" ?,B?(B) @@ -719,7 +719,7 @@ For example, the character named `aogonek' is obtained by `/a'." ("/E" ?,BJ(B) ("/L" ?,B#(B) ("/N" ?,BQ(B) - ("/O" ?,BS(B) + ("/O" ?,BS(B) ("/S" ?,B&(B) ("/X" ?,B,(B) ("/Z" ?,B/(B)) diff --git a/leim/quail/lrt.el b/leim/quail/lrt.el index 3a2b777793d..e12219f83f7 100644 --- a/leim/quail/lrt.el +++ b/leim/quail/lrt.el @@ -69,10 +69,10 @@ '((base-state (lao-transcription-consonant-alist . sv-state) lao-transcription-vowel-alist lao-transcription-tone-alist) - (sv-state (lao-transcription-semi-vowel-alist . v-state) + (sv-state (lao-transcription-semi-vowel-alist . v-state) (lao-transcription-vowel-alist . mt-state)) (v-state (lao-transcription-vowel-alist . mt-state)) - (mt-state (lao-transcription-maa-sakod-alist . t-state) + (mt-state (lao-transcription-maa-sakod-alist . t-state) lao-transcription-tone-alist) (t-state lao-transcription-tone-alist)))) diff --git a/leim/quail/thai.el b/leim/quail/thai.el index 72164f0bc48..a21d3c5fa14 100644 --- a/leim/quail/thai.el +++ b/leim/quail/thai.el @@ -82,7 +82,7 @@ The difference from the ordinal Thai keyboard: Don't know where to assign characters ',Tz(B' and ',T{(B'." nil t t t t nil nil nil 'quail-thai-update-translation nil t) -(quail-install-map +(quail-install-map (thai-generate-quail-map [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes @@ -110,7 +110,7 @@ The difference from the ordinal Thai keyboard: "Thai Pattachote input method with TIS620 keyboard layout" nil t t t t nil nil nil 'quail-thai-update-translation nil t) -(quail-install-map +(quail-install-map (thai-generate-quail-map [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes diff --git a/leim/quail/tibetan.el b/leim/quail/tibetan.el index 75ca75e3465..2bca014a7f8 100644 --- a/leim/quail/tibetan.el +++ b/leim/quail/tibetan.el @@ -210,7 +210,7 @@ ("O" . "T") ; Ta ("p" . "th") ; tha ("P" . "TH") ; THa - ("[" . "d") ; da + ("[" . "d") ; da ("{" . "D") ; Da ("]" . "n") ; na ("}" . "N") ; Na @@ -259,11 +259,11 @@ ("hO" . "+T") ; Ta ("hp" . "+th") ; tha ("hP" . "+TH") ; THa - ("h[" . "+d") ; da + ("h[" . "+d") ; da ("h{" . "+D") ; Da ("h]" . "+n") ; na ("h}" . "+N") ; Na - ("ha" . "+p") ; pa + ("ha" . "+p") ; pa ("hs" . "+ph") ; pha ("hd" . "+b") ; ba ("hf" . "+m") ; ma @@ -335,7 +335,7 @@ ("(" . "$(7!l(B") ("0" . "$(7!P(B") (")" . "$(7!m(B") -;;; ("-" ) ; enphatic, not yet supported +;;; ("-" ) ; enphatic, not yet supported ;;; ("_" ) ; id. ;;; ("=" ) ; special sign, not yet supported ("+" . "$(7!A(B") @@ -419,7 +419,7 @@ |A |S |D |F$(7"_(B|G$(7"S(B|H$(7"e(B|J$(7"[(B|K |L |:$(7"`(B|\"$(7#>(B| +-------------------------------------------+ |Z |X |C$(7"R(B|V$(7#B(B|B$(7#C(B|N$(7#D(B|M$(7"F(B|< |> |?$(7!=(B | - +---------------------------------------+ + +---------------------------------------+ DIFFERENCE FROM THE ORIGINAL TIBKEY: diff --git a/leim/quail/vntelex.el b/leim/quail/vntelex.el index 0184b670567..9748e446b0e 100644 --- a/leim/quail/vntelex.el +++ b/leim/quail/vntelex.el @@ -400,7 +400,7 @@ and postfix: Eee -> Ee, ajj -> aj, etc. ;("$$$" ["$$"]) ;; escape from composition - ("\\w" ?w) ; breve or horn + ("\\w" ?w) ; breve or horn ("\\W" ?W) ("\\a" ?a) ; a circumflex ("\\A" ?A) ; A circumflex diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 39266208b23..c983be1cce2 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -3746,7 +3746,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu> * b2m.c: Use <...> to include config.h. Don't include stdlib.h. -1994-03-03 Heiko Muenkel (muenkel@tnt.uni-hannover.de) +1994-03-03 Heiko Muenkel (muenkel@tnt.uni-hannover.de) * b2m.c (main): Change delimiter from "^L" to "^_^L". Allow for text following "BABYL OPTIONS:". @@ -3963,7 +3963,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu> * Version 19.20 released. -1993-11-08 Tom Hageman (tom@basil.icce.rug.nl) +1993-11-08 Tom Hageman (tom@basil.icce.rug.nl) * etags.c: (C_entries): Keep track of ()-parenthesis level so that functions returning a pointer to a function, a la `signal', can be diff --git a/lib-src/b2m.pl b/lib-src/b2m.pl index 40738fd01ed..86f9b948b32 100644 --- a/lib-src/b2m.pl +++ b/lib-src/b2m.pl @@ -30,7 +30,7 @@ use Mail::Address; use Date::Parse; my($whoami) = basename $0; -my($version) = '$Revision: 1.3 $'; +my($version) = '$Revision: 1.4 $'; my($usage) = "Usage: $whoami [--help] [--version] [--[no]full-headers] [Babyl-file] \tBy default, full headers are printed.\n"; @@ -80,7 +80,7 @@ while (<>) { $labels = $1; # Strip the integer indicating whether the header is pruned - $labels =~ s/^(\d+)[,\s]*//; + $labels =~ s/^(\d+)[,\s]*//; $pruned = $1; s/(?:((?:.+\n)+)\n*)?\*\*\* EOOH \*\*\*\n+// || goto malformatted; @@ -113,7 +113,7 @@ while (<>) { $labels =~ s/[,\s]+$//; # Now collapse extra commas and whitespace in the remaining label string $labels =~ s/[,\s]+/, /g; - + foreach my $rmail_header qw(summary-line x-coding-system) { $full_header =~ s/(^|\n)$rmail_header:.*\n/$1/i; } diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c index 87c6526c315..611c0f74c7d 100644 --- a/lib-src/ebrowse.c +++ b/lib-src/ebrowse.c @@ -2511,7 +2511,7 @@ parm_list (flags) { switch (LA1) { - /* Skip over grouping parens or parameter lists in parameter + /* Skip over grouping parens or parameter lists in parameter declarations. */ case '(': skip_matching (); @@ -3148,7 +3148,7 @@ class_definition (containing, tag, flags, nested) settings. */ if ((tag != CLASS && !f_structs) || (nested && !f_nested_classes)) current = NULL; - else + else { current = add_sym (yytext, containing); current->pos = BUFFER_POS (); @@ -3167,7 +3167,7 @@ class_definition (containing, tag, flags, nested) { switch (LA1) { - case VIRTUAL: case PUBLIC: case PROTECTED: case PRIVATE: + case VIRTUAL: case PUBLIC: case PROTECTED: case PRIVATE: MATCH (); break; diff --git a/lib-src/emacstool.c b/lib-src/emacstool.c index 191deb95471..dcbc20feeed 100644 --- a/lib-src/emacstool.c +++ b/lib-src/emacstool.c @@ -189,7 +189,7 @@ time_delta (now_sec, now_usec, prev_sec, prev_usec) /* * Filter function to translate selected input events for emacs * Mouse button events become ^X^@(button x-col y-line time-delta) . - * Function keys: ESC-*{c}{lrt} l,r,t for Left, Right, Top; + * Function keys: ESC-*{c}{lrt} l,r,t for Left, Right, Top; * {c} encodes the keynumber as a character [a-o] */ static Notify_value diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 0b90eba8953..ed6dde3a0bf 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -299,7 +299,7 @@ scan_keyword_or_put_char (ch, state) while (ch != ' ' && ch != ')'); put_char ('f', state); put_char ('n', state); - + /* Put back the last character. */ ungetc (ch, state->in_file); } diff --git a/lib-src/makefile.nt b/lib-src/makefile.nt index eef221ab0c3..d9553216337 100644 --- a/lib-src/makefile.nt +++ b/lib-src/makefile.nt @@ -3,24 +3,24 @@ # Copyright (C) 1994 Free Software Foundation, Inc. # # This file is part of GNU Emacs. -# +# # GNU Emacs is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 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., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # -# +# # Sets up the system dependent macros. # !include ..\nt\makefile.def @@ -139,7 +139,7 @@ $(BLD)\ebrowse.obj: ebrowse.c ..\src\config.h # # From ..\src\makefile.nt. # -obj = abbrev.c alloc.c alloca.c buffer.c bytecode.c callint.c callproc.c casefiddle.c cm.c cmds.c charset.c coding.c category.c ccl.c data.c dired.c dispnew.c doc.c doprnt.c editfns.c emacs.c eval.c fileio.c filelock.c filemode.c fns.c fontset.c indent.c insdel.c keyboard.c keymap.c lastfile.c lread.c macros.c marker.c minibuf.c xfaces.c print.c process.c regex.c scroll.c search.c syntax.c sysdep.c term.c termcap.c tparam.c undo.c unexw32.c window.c xdisp.c casetab.c floatfns.c frame.c gmalloc.c intervals.c ralloc.c textprop.c vm-limit.c region-cache.c strftime.c w32.c w32console.c w32faces.c w32fns.c w32heap.c w32inevt.c w32proc.c w32reg.c w32menu.c w32select.c w32term.c w32xfns.c +obj = abbrev.c alloc.c alloca.c buffer.c bytecode.c callint.c callproc.c casefiddle.c cm.c cmds.c charset.c coding.c category.c ccl.c data.c dired.c dispnew.c doc.c doprnt.c editfns.c emacs.c eval.c fileio.c filelock.c filemode.c fns.c fontset.c indent.c insdel.c keyboard.c keymap.c lastfile.c lread.c macros.c marker.c minibuf.c xfaces.c print.c process.c regex.c scroll.c search.c syntax.c sysdep.c term.c termcap.c tparam.c undo.c unexw32.c window.c xdisp.c casetab.c floatfns.c frame.c gmalloc.c intervals.c ralloc.c textprop.c vm-limit.c region-cache.c strftime.c w32.c w32console.c w32faces.c w32fns.c w32heap.c w32inevt.c w32proc.c w32reg.c w32menu.c w32select.c w32term.c w32xfns.c # # These are the lisp files that are loaded up in loadup.el @@ -224,7 +224,7 @@ lisp= \ $(lispsource)version.el -DOC = DOC +DOC = DOC $(DOC): $(BLD)\make-docfile.exe - $(DEL) $(DOC) $(BLD)\make-docfile -d ..\src $(obj) > $(DOC) @@ -261,7 +261,7 @@ install: $(INSTALL_FILES) # # Maintenance -# +# clean:; - $(DEL) *~ *.pdb DOC* - $(DEL) *.orig *.rej *.crlf ctags.c - $(DEL_TREE) deleted diff --git a/lib-src/movemail.c b/lib-src/movemail.c index 706a630c4bc..406dd8775bc 100644 --- a/lib-src/movemail.c +++ b/lib-src/movemail.c @@ -39,11 +39,11 @@ Boston, MA 02111-1307, USA. */ * "po:username". This will cause movemail to open a connection to * a pop server running on $MAILHOST (environment variable). Movemail * must be setuid to root in order to work with POP. - * + * * New module: popmail.c * Modified routines: * main - added code within #ifdef MAIL_USE_POP; added setuid (getuid ()) - * after POP code. + * after POP code. * New routines in movemail.c: * get_errmsg - return pointer to system error message * @@ -458,7 +458,7 @@ main (argc, argv) pfatal_with_name (inname); } - + { char buf[1024]; @@ -838,7 +838,7 @@ popmail (mailbox, outfile, preserve, password, reverse_order) error ("Error from POP server: %s", pop_error, 0); return (1); } - + return (0); } @@ -913,7 +913,7 @@ mbx_write (line, len, mbf) line++; len--; } - if (fwrite (line, 1, len, mbf) != len) + if (fwrite (line, 1, len, mbf) != len) return (NOTOK); if (fputc (0x0a, mbf) == EOF) return (NOTOK); diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c index 3e2caf50865..31bf758197d 100644 --- a/lib-src/ntlib.c +++ b/lib-src/ntlib.c @@ -59,20 +59,20 @@ getppid(void) DWORD result; ppid = getenv ("EM_PARENT_PROCESS_ID"); - if (!ppid) + if (!ppid) { printf("no pid.\n"); return 0; - } - else + } + else { getppid_ppid = atoi (ppid); } - if (!getppid_parent) + if (!getppid_parent) { getppid_parent = OpenProcess (SYNCHRONIZE, FALSE, atoi(ppid)); - if (!getppid_parent) + if (!getppid_parent) { printf ("Failed to open handle to parent process: %d\n", GetLastError()); @@ -81,7 +81,7 @@ getppid(void) } result = WaitForSingleObject (getppid_parent, 0); - switch (result) + switch (result) { case WAIT_TIMEOUT: /* The parent is still alive. */ @@ -188,7 +188,7 @@ fchown (int fd, int uid, int gid) } /* Place a wrapper around the MSVC version of ctime. It returns NULL - on network directories, so we handle that case here. + on network directories, so we handle that case here. (Ulrich Leodolter, 1/11/95). */ char * sys_ctime (const time_t *t) diff --git a/lib-src/pop.c b/lib-src/pop.c index 46a60195aff..b51e82c82bf 100644 --- a/lib-src/pop.c +++ b/lib-src/pop.c @@ -261,7 +261,7 @@ pop_open (host, username, password, flags) #else #define DONT_NEED_PASSWORD 0 #endif - + if ((! password) && (! DONT_NEED_PASSWORD)) { if (! (flags & POP_NO_GETPASS)) @@ -560,7 +560,7 @@ pop_list (server, message, IDs, sizes) * of lines with '>'. * msg_buf Output parameter to which a buffer containing the * message is assigned. - * + * * Return value: The number of bytes in msg_buf, which may contain * embedded nulls, not including its final null, or -1 on error * with pop_error set. @@ -643,7 +643,7 @@ pop_retrieve (server, message, markfrom, msg_buf) free (ptr); return (-1); -} +} int pop_retrieve_first (server, message, response) diff --git a/lib-src/profile.c b/lib-src/profile.c index e2fa4793b63..9c43c16e776 100644 --- a/lib-src/profile.c +++ b/lib-src/profile.c @@ -48,7 +48,7 @@ reset_watch () } /* This call returns the time since the last reset_watch call. The time - is returned as a string with the format <seconds>.<micro-seconds> + is returned as a string with the format <seconds>.<micro-seconds> If reset_watch was not called yet, exit. */ char * diff --git a/lib-src/rcs-checkin b/lib-src/rcs-checkin index 184ed8ac01a..75616c3564e 100755 --- a/lib-src/rcs-checkin +++ b/lib-src/rcs-checkin @@ -31,7 +31,7 @@ # is not deleted, as under VC with vc-keep-workfiles at its default of t, but # all the version files are. # -# If an argument file is already version-controlled under RCS, any version +# If an argument file is already version-controlled under RCS, any version # files are added to the list of deltas and deleted, and then the workfile # is checked in again as the latest version. This is probably not quite # what was wanted, and is the main reason VC doesn't simply call this to diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c index d871e336802..55737c542d7 100644 --- a/lib-src/update-game-score.c +++ b/lib-src/update-game-score.c @@ -216,13 +216,13 @@ main (argc, argv) user_id = get_user_id (); if (user_id == NULL) lose_syserr ("Couldn't determine user id"); - + if (stat (scorefile, &buf) < 0) lose_syserr ("Failed to access scores file"); - + if (lock_file (scorefile, &lockstate) < 0) lose_syserr ("Failed to lock scores file"); - + if (read_scores (scorefile, &scores, &scorecount) < 0) { unlock_file (scorefile, lockstate); @@ -283,7 +283,7 @@ read_score (f, score) char *username = malloc (unamelen); if (!username) return -1; - + while ((c = getc (f)) != EOF && !isspace (c)) { @@ -293,7 +293,7 @@ read_score (f, score) username[unameread] = c; unameread++; } - if (c == EOF) + if (c == EOF) return -1; username[unameread] = '\0'; score->username = username; @@ -342,12 +342,12 @@ read_scores (filename, scores, count) int readval, scorecount, cursize; struct score_entry *ret; FILE *f = fopen (filename, "r"); - if (!f) + if (!f) return -1; scorecount = 0; cursize = 16; ret = (struct score_entry *) malloc (sizeof (struct score_entry) * cursize); - if (!ret) + if (!ret) return -1; while ((readval = read_score (f, &ret[scorecount])) == 0) { @@ -388,7 +388,7 @@ score_compare_reverse (a, b) } int -push_score (scores, count, newscore, username, newdata) +push_score (scores, count, newscore, username, newdata) struct score_entry **scores; int *count; int newscore; char *username; @@ -406,12 +406,12 @@ push_score (scores, count, newscore, username, newdata) *scores = newscores; return 0; } - + void sort_scores (scores, count, reverse) struct score_entry *scores; int count; - int reverse; + int reverse; { qsort (scores, count, sizeof (struct score_entry), reverse ? score_compare_reverse : score_compare); @@ -421,9 +421,9 @@ int write_scores (filename, scores, count) const char *filename; const struct score_entry * scores; - int count; + int count; { - FILE *f; + FILE *f; int i; char *tempfile = malloc (strlen (filename) + strlen (".tempXXXXXX") + 1); if (!tempfile) @@ -448,7 +448,7 @@ write_scores (filename, scores, count) return -1; return 0; } - + int lock_file (filename, state) const char *filename; @@ -491,7 +491,7 @@ lock_file (filename, state) close (fd); return 0; } - + int unlock_file (filename, state) const char *filename; diff --git a/lib-src/yow.c b/lib-src/yow.c index 92df285870a..fa638b06466 100644 --- a/lib-src/yow.c +++ b/lib-src/yow.c @@ -1,12 +1,12 @@ /* * yow.c - * + * * Print a quotation from Zippy the Pinhead. * Qux <Kaufman-David@Yale> March 6, 1986 * * This file is in the public domain because the author published it * with no copyright notice before the US signed the Bern Convention. - * + * * With dynamic memory allocation. */ @@ -114,7 +114,7 @@ setup_yow(fp) header_len = ftell(fp); if (header_len > AVG_LEN) header_len -= AVG_LEN; /* allow the first quotation to appear */ - + if (fseek(fp, 0L, 2) == -1) { perror("yow"); exit(1); @@ -167,7 +167,7 @@ yow (fp) buf[i++] = c; while ((c = getc(fp)) != SEP && c != EOF) { buf[i++] = c; - + if (i == bufsize-1) { /* Yow! Is this quotation too long yet? */ bufsize *= 2; diff --git a/lispintro/INSTALL b/lispintro/INSTALL index a8f0b4cd7ab..6a53152b1e3 100644 --- a/lispintro/INSTALL +++ b/lispintro/INSTALL @@ -22,7 +22,7 @@ Basic Installation for An Introduction to Programming in Emacs Lisp version 2 ./configure make dvi - # To create an HTML file, execute the following + # To create an HTML file, execute the following # (presumably you have already executed the `./configure' command # before running `make dvi'; if not execute `./configure' now); # this will place HTML files into a emacs-lisp-intro/ subdirectory: diff --git a/lispintro/Makefile.old b/lispintro/Makefile.old index e4f16c7d093..50713d1e8ef 100644 --- a/lispintro/Makefile.old +++ b/lispintro/Makefile.old @@ -67,7 +67,7 @@ EXTRA_DIST = INSTALL MANIFEST README chest-of-drawers-diagram.eps cons-cell-di ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_CLEAN_FILES = +CONFIG_CLEAN_FILES = TEXI2DVI = texi2dvi INFO_DEPS = emacs-lisp-intro.info DVIS = emacs-lisp-intro.dvi @@ -83,14 +83,14 @@ GZIP_ENV = --best all: all-redirect .SUFFIXES: .SUFFIXES: .dvi .info .ps .texi .texinfo .txi -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status -$(ACLOCAL_M4): configure.in +$(ACLOCAL_M4): configure.in cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES) diff --git a/lispintro/README b/lispintro/README index 800ef7a08bc..e322fc86c7f 100644 --- a/lispintro/README +++ b/lispintro/README @@ -9,7 +9,7 @@ This second edition of 2001 Nov 20 updates the previous editions to GNU Emacs 21. The Texinfo source file `emacs-lisp-intro.texi', formats without -error using TeX version 3.14159, `kpathsea' version 3.3.1, +error using TeX version 3.14159, `kpathsea' version 3.3.1, `texinfo.tex' version 2001-05-24.08, and `makeinfo' version 4.0b. Also, this tar file contains the following optional Encapsulated Post diff --git a/lispintro/configure b/lispintro/configure index d9909c67a6b..0fdc8ced824 100644 --- a/lispintro/configure +++ b/lispintro/configure @@ -1,7 +1,7 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 +# Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation diff --git a/lispintro/install-sh b/lispintro/install-sh index e8436696c19..2df3e3b423d 100644 --- a/lispintro/install-sh +++ b/lispintro/install-sh @@ -115,7 +115,7 @@ fi if [ x"$dir_arg" != x ]; then dst=$src src="" - + if [ -d $dst ]; then instcmd=: else @@ -124,7 +124,7 @@ if [ x"$dir_arg" != x ]; then else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad +# might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] @@ -134,7 +134,7 @@ else echo "install: $src does not exist" exit 1 fi - + if [ x"$dst" = x ] then echo "install: no destination specified" @@ -162,7 +162,7 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then -defaultIFS=' +defaultIFS=' ' IFS="${IFS-${defaultIFS}}" @@ -201,17 +201,17 @@ else # If we're going to rename the final executable, determine the name now. - if [ x"$transformarg" = x ] + if [ x"$transformarg" = x ] then dstfile=`basename $dst` else - dstfile=`basename $dst $transformbasename | + dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename - if [ x"$dstfile" = x ] + if [ x"$dstfile" = x ] then dstfile=`basename $dst` else @@ -242,7 +242,7 @@ else # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile + $doit $mvcmd $dsttmp $dstdir/$dstfile fi && diff --git a/lispintro/texinfo.tex b/lispintro/texinfo.tex index b22a6bda4c2..c3ee7c2581c 100644 --- a/lispintro/texinfo.tex +++ b/lispintro/texinfo.tex @@ -35,10 +35,10 @@ % ftp://tug.org/tex/texinfo.tex % (and all CTAN mirrors, see http://www.ctan.org), % and /home/gd/gnu/doc/texinfo.tex on the GNU machines. -% +% % The texinfo.tex in any given Texinfo distribution could well be out % of date, so if that's what you're using, please check. -% +% % Texinfo has a small home page at http://texinfo.org/ and also % http://www.gnu.org/software/texinfo. % @@ -175,7 +175,7 @@ % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. -% +% \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount @@ -730,10 +730,10 @@ where each line of input produces a line of output.} % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). -% +% \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. - \setbox0 = \hbox{\ignorespaces #2}% + \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% @@ -797,7 +797,7 @@ where each line of input produces a line of output.} % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % We cannot implement @paragraphindent asis, though. -% +% \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % @@ -840,7 +840,7 @@ where each line of input produces a line of output.} % We don't use $'s directly in the definition of \math because we need % to set catcodes according to plain TeX first, to allow for subscripts, % superscripts, special math chars, etc. -% +% % @math does not do math typesetting in section titles, index % entries, and other such contexts where the catcodes are set before % @math gets a chance to work. This could perhaps be fixed, but for now @@ -852,7 +852,7 @@ where each line of input produces a line of output.} % an actual _ character, as in @math{@var{some_variable} + 1}. So make % _ within @math be active (mathcode "8000), and distinguish by seeing % if the current family is \slfam, which is what @var uses. -% +% {\catcode95 = \active % 95 = _ \gdef\mathunderscore{% \catcode95=\active @@ -863,7 +863,7 @@ where each line of input produces a line of output.} % FYI, plain.tex uses \\ as a temporary control sequence (why?), but % this is not advertised and we don't care. Texinfo does not % otherwise define @\. -% +% % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % @@ -986,11 +986,11 @@ where each line of input produces a line of output.} \def\pdfmakeoutlines{{% \openin 1 \jobname.toc \ifeof 1\else\begingroup - \closein 1 + \closein 1 \indexnofonts \def\tt{} \let\_ = \normalunderscore - % Thanh's hack / proper braces in bookmarks + % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % @@ -1032,7 +1032,7 @@ where each line of input produces a line of output.} \let\nextmakelinks=\makelinks \ifnum\lnkcount>0,\fi \picknum{#1}% - \startlink attr{/Border [0 0 0]} + \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{\the\pgn}}% \linkcolor #1% \advance\lnkcount by 1% @@ -1087,7 +1087,7 @@ where each line of input produces a line of output.} \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 - \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 + \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else @@ -1522,7 +1522,7 @@ where each line of input produces a line of output.} % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. -% +% %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} @@ -2743,10 +2743,10 @@ width0pt\relax} \fi % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. -% +% % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. -% +% \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} @@ -2788,13 +2788,13 @@ width0pt\relax} \fi % Take care of texinfo commands likely to appear in an index entry. % (Must be a way to avoid doing expansion at all, and thus not have to % laboriously list every single command here.) -% +% \def\indexdummies{% \def\ { }% \def\@{@}% change to @@ when we switch to @ as escape char in aux files. % Need these in case \tex is in effect and \{ is a \delimiter again. % But can't use \lbracecmd and \rbracecmd because texindex assumes -% braces and backslashes are used only as delimiters. +% braces and backslashes are used only as delimiters. \let\{ = \mylbrace \let\} = \myrbrace \def\_{{\realbackslash _}}% @@ -3349,7 +3349,7 @@ width0pt\relax} \fi \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } -% +% % All done with double columns. \def\enddoublecolumns{% \output = {% @@ -4150,7 +4150,7 @@ width0pt\relax} \fi % @foo ... @end foo. % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. -% +% % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % @@ -4162,7 +4162,7 @@ width0pt\relax} \fi % The @error{} command. % Adapted from the TeXbook's \boxit. -% +% \newbox\errorbox % {\tentt \global\dimen0 = 3em}% Width of the box. @@ -4470,7 +4470,7 @@ width0pt\relax} \fi % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>} -% If we want to allow any <char> as delimiter, +% If we want to allow any <char> as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % @@ -4544,8 +4544,8 @@ width0pt\relax} \fi \everypar{\starttabbox}% } -% Do the @verb magic: verbatim text is quoted by unique -% delimiter characters. Before first delimiter expect a +% Do the @verb magic: verbatim text is quoted by unique +% delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'<char>#1<char>'}'{#1} @@ -4564,7 +4564,7 @@ width0pt\relax} \fi % % \def\doverbatim#1@end verbatim{#1} % -% For Texinfo it's a lot easier than for LaTeX, +% For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}' % @@ -4622,7 +4622,7 @@ width0pt\relax} \fi % @copying ... @end copying. % Save the text away for @insertcopying later. -% +% \newbox\copyingbox % \def\copying{\begingroup @@ -4632,7 +4632,7 @@ width0pt\relax} \fi } % @insertcopying. -% +% \def\insertcopying{\unvcopy\copyingbox} @@ -4788,7 +4788,7 @@ width0pt\relax} \fi % to account for this both in the \...x definition and in parsing the % input at hand. Thus also need a control sequence (passed as #5) for % the \E... definition to assign the category name to. -% +% \def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV \medbreak \def#1{\endgraf\endgroup\medbreak}% @@ -5172,7 +5172,7 @@ width0pt\relax} \fi % These definitions are used if you use @defunx (etc.) % anywhere other than immediately after a @defun or @defunx. -% +% \def\defcvx#1 {\errmessage{@defcvx in invalid context}} \def\deffnx#1 {\errmessage{@deffnx in invalid context}} \def\defivarx#1 {\errmessage{@defivarx in invalid context}} @@ -5973,7 +5973,7 @@ width0pt\relax} \fi \nobreak\bigskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space - % above and below. + % above and below. \nobreak\vskip\parskip \nobreak \line\bgroup\hss @@ -6089,7 +6089,7 @@ should work if nowhere else does.} } % Use `small' versions. -% +% \def\smallenvironments{% \let\smalldisplay = \smalldisplayx \let\smallexample = \smalllispx @@ -6346,7 +6346,7 @@ should work if nowhere else does.} % Say @foo, not \foo, in error messages. @escapechar = `@@ -% These look ok in all fonts, so just make them not special. +% These look ok in all fonts, so just make them not special. @catcode`@& = @other @catcode`@# = @other @catcode`@% = @other diff --git a/lispref/Makefile.in b/lispref/Makefile.in index 5e4f9d85435..c05acc15bb2 100644 --- a/lispref/Makefile.in +++ b/lispref/Makefile.in @@ -44,7 +44,7 @@ VERSION=2.9 manual = elisp-manual-21-$(VERSION) # Uncomment this line for permuted index. -# permuted_index = 1 +# permuted_index = 1 # List of all the texinfo files in the manual: @@ -144,7 +144,7 @@ install: elisp clean: rm -f *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \ *.vr *.vrs *.pg *.pgs *.ky *.kys - rm -f make.out core + rm -f make.out core rm -f index.texi distclean: clean diff --git a/lispref/README b/lispref/README index 358b4193ff7..1600a5344b3 100644 --- a/lispref/README +++ b/lispref/README @@ -15,7 +15,7 @@ newsgroup gnu.emacs.help. 2.5 megabytes. * You can format this manual either for Info or for printing hardcopy -using TeX. +using TeX. * You can buy nicely printed copies from the Free Software Foundation. For info, send mail to gnu@gnu.org or phone 617-542-5942. Buying a @@ -42,7 +42,7 @@ commands in the shell: % make elisp.dvi *** To create a DVI file with a permuted index, you may experiment -with `make-permuted-index'. +with `make-permuted-index'. ** To make an Info file, you need to install Texinfo, then run `./configure' and `make info'. To install the Info files, run diff --git a/lispref/abbrevs.texi b/lispref/abbrevs.texi index 8e31c7c870d..5d7dad62a14 100644 --- a/lispref/abbrevs.texi +++ b/lispref/abbrevs.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999 -@c Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/abbrevs @node Abbrevs, Processes, Syntax Tables, Top @@ -46,7 +46,7 @@ Mode, emacs, The GNU Emacs Manual}. @node Abbrev Mode, Abbrev Tables, Abbrevs, Abbrevs @comment node-name, next, previous, up -@section Setting Up Abbrev Mode +@section Setting Up Abbrev Mode Abbrev mode is a minor mode controlled by the value of the variable @code{abbrev-mode}. diff --git a/lispref/advice.texi b/lispref/advice.texi index 3221753a1fc..cb877efe310 100644 --- a/lispref/advice.texi +++ b/lispref/advice.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1998, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1998, 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/advising @node Advising Functions, Debugging, Byte Compilation, Top @@ -726,7 +726,7 @@ The body forms of the various advice in each class are assembled according to their specified order. The forms of around-advice @var{l} are included in one of the forms of around-advice @var{l} @minus{} 1. -The innermost part of the around advice onion is +The innermost part of the around advice onion is @display apply original definition to @var{arglist} diff --git a/lispref/anti.texi b/lispref/anti.texi index 63035a0d23a..7925a8831df 100644 --- a/lispref/anti.texi +++ b/lispref/anti.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1999 Free Software Foundation, Inc. +@c Copyright (C) 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @c This node must have no pointers. @@ -176,7 +176,7 @@ The function @code{buffer-size} always reports on the current buffer. @item -The function @code{assq-delete-all} has itself been deleted. +The function @code{assq-delete-all} has itself been deleted. So there! @item @@ -270,13 +270,13 @@ The meaning of the second argument to @code{read-char}, they use the current input method if the argument is if @code{nil}. @item -The function @code{with-temp-message} has been eliminated. +The function @code{with-temp-message} has been eliminated. @item -The function @code{clear-this-command-keys} has been eliminated. +The function @code{clear-this-command-keys} has been eliminated. @item -The functions @code{gap-position} and @code{gap-size} have been eliminated. +The functions @code{gap-position} and @code{gap-size} have been eliminated. @item In @code{modify-face}, an argument of @code{(nil)} has no special diff --git a/lispref/backups.texi b/lispref/backups.texi index 7c35ecdd817..858d6dfa9d5 100644 --- a/lispref/backups.texi +++ b/lispref/backups.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/backups @node Backups and Auto-Saving, Buffers, Files, Top @@ -78,9 +78,9 @@ save disk space. (You would put this code in your init file.) @smallexample @group -(add-hook 'rmail-mode-hook +(add-hook 'rmail-mode-hook (function (lambda () - (make-local-variable + (make-local-variable 'make-backup-files) (setq make-backup-files nil)))) @end group @@ -157,7 +157,7 @@ files. If you define it, you may need to change @subsection Backup by Renaming or by Copying? @cindex backup files, how to make them - There are two ways that Emacs can make a backup file: + There are two ways that Emacs can make a backup file: @itemize @bullet @item @@ -405,7 +405,7 @@ This function returns the name of the most recent backup file for Some file comparison commands use this function so that they can automatically compare a file with its most recent backup. -@end defun +@end defun @node Auto-Saving @section Auto-Saving diff --git a/lispref/buffers.texi b/lispref/buffers.texi index b0c79cd28d5..23239ebc48d 100644 --- a/lispref/buffers.texi +++ b/lispref/buffers.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/buffers @node Buffers, Windows, Backups and Auto-Saving, Top @@ -138,7 +138,7 @@ Next, @code{set-buffer} makes the specified buffer current. Finally, @code{insert-buffer-substring} copies the string from the original current buffer to the specified (and now current) buffer. - If the buffer appended to happens to be displayed in some window, + If the buffer appended to happens to be displayed in some window, the next redisplay will show how its text has changed. Otherwise, you will not see the change immediately on the screen. The buffer becomes current temporarily during the execution of the command, but this does @@ -307,7 +307,7 @@ make @var{unique} non-@code{nil} with a numeric prefix argument. This function returns the buffer specified by @var{buffer-or-name}. If @var{buffer-or-name} is a string and there is no buffer with that name, the value is @code{nil}. If @var{buffer-or-name} is a buffer, it -is returned as given; that is not very useful, so the argument is usually +is returned as given; that is not very useful, so the argument is usually a name. For example: @example @@ -534,7 +534,7 @@ counter that increments every time the buffer is modified. If @comment node-name, next, previous, up @section Comparison of Modification Time @cindex comparison of modification time -@cindex modification time, comparison of +@cindex modification time, comparison of Suppose that you visit a file and make changes in its buffer, and meanwhile the file itself is changed on disk. At this point, saving the @@ -602,7 +602,7 @@ some other program has probably altered the file. Depending on the user's answer, the function may return normally, in which case the modification of the buffer proceeds, or it may signal a @code{file-supersession} error with data @code{(@var{filename})}, in which -case the proposed buffer modification is not allowed. +case the proposed buffer modification is not allowed. This function is called automatically by Emacs on the proper occasions. It exists so you can customize Emacs by redefining it. @@ -617,7 +617,7 @@ See also the file locking mechanism in @ref{File Locks}. @cindex buffer, read-only If a buffer is @dfn{read-only}, then you cannot change its contents, -although you may change your view of the contents by scrolling and +although you may change your view of the contents by scrolling and narrowing. Read-only buffers are used in two kinds of situations: @@ -716,7 +716,7 @@ which frames they were selected in. ;; @r{Note that the name of the minibuffer} ;; @r{begins with a space!} (mapcar (function buffer-name) (buffer-list)) - @result{} ("buffers.texi" " *Minibuf-1*" + @result{} ("buffers.texi" " *Minibuf-1*" "buffer.c" "*Help*" "TAGS") @end group @end example @@ -982,7 +982,7 @@ ever again be the current buffer. This creates an indirect buffer named @var{name} whose base buffer is @var{base-buffer}. The argument @var{base-buffer} may be a buffer or a string. - + If @var{base-buffer} is an indirect buffer, its base buffer is used as the base for the new buffer. @end deffn diff --git a/lispref/calendar.texi b/lispref/calendar.texi index 6b62582993b..eeee2d118b5 100644 --- a/lispref/calendar.texi +++ b/lispref/calendar.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Calendar, System Interface, Display, Top @chapter Customizing the Calendar and Diary @@ -16,7 +16,7 @@ diary suit your personal tastes. * Daylight Savings:: Changing the default. * Diary Customizing:: Defaults you can set. * Hebrew/Islamic Entries:: How to obtain them. -* Fancy Diary Display:: Enhancing the diary display, sorting entries, +* Fancy Diary Display:: Enhancing the diary display, sorting entries, using included diary files. * Sexp Diary Entries:: Fancy things you can do. * Appt Customizing:: Customizing appointment reminders. @@ -543,7 +543,7 @@ the fourth pattern. well as entries based on the world-standard Gregorian calendar. However, because recognition of such entries is time-consuming and most people don't use them, you must explicitly enable their use. If you -want the diary to recognize Hebrew-date diary entries, for example, +want the diary to recognize Hebrew-date diary entries, for example, you must do this: @vindex nongregorian-diary-listing-hook @@ -603,7 +603,7 @@ entry matches any date that has the same Hebrew day-within-month as the selected date. @item i h y Add a diary entry for the day of the Hebrew year corresponding to the -selected date (@code{insert-yearly-hebrew-diary-entry}). This diary +selected date (@code{insert-yearly-hebrew-diary-entry}). This diary entry matches any date which has the same Hebrew month and day-within-month as the selected date. @item i i d @@ -626,7 +626,7 @@ selected date (@code{insert-yearly-islamic-diary-entry}). These commands work much like the corresponding commands for ordinary diary entries: they apply to the date that point is on in the calendar window, and what they do is insert just the date portion of a diary entry -at the end of your diary file. You must then insert the rest of the +at the end of your diary file. You must then insert the rest of the diary entry. @node Fancy Diary Display diff --git a/lispref/commands.texi b/lispref/commands.texi index b33cace7ebe..340ff01857b 100644 --- a/lispref/commands.texi +++ b/lispref/commands.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/commands @node Command Loop, Keymaps, Minibuffers, Top @@ -12,7 +12,7 @@ When you run Emacs, it enters the @dfn{editor command loop} almost immediately. This loop reads key sequences, executes their definitions, and displays the results. In this chapter, we describe how these things -are done, and the subroutines that allow Lisp programs to do them. +are done, and the subroutines that allow Lisp programs to do them. @menu * Command Overview:: How the command loop reads commands. @@ -442,7 +442,7 @@ argument value. Completion, Existing, Prompt. @comment node-name, next, previous, up @subsection Examples of Using @code{interactive} @cindex examples of using @code{interactive} -@cindex @code{interactive}, examples of using +@cindex @code{interactive}, examples of using Here are some examples of @code{interactive}: @@ -501,7 +501,7 @@ command. You can also call these functions yourself. @defun commandp object Returns @code{t} if @var{object} is suitable for calling interactively; -that is, if @var{object} is a command. Otherwise, returns @code{nil}. +that is, if @var{object} is a command. Otherwise, returns @code{nil}. The interactively callable objects include strings and vectors (treated as keyboard macros), lambda expressions that contain a top-level call to @@ -664,7 +664,7 @@ non-@code{nil}. Here's how: @section Information from the Command Loop The editor command loop sets several Lisp variables to keep status -records for itself and for commands that are run. +records for itself and for commands that are run. @defvar last-command This variable records the name of the previous command executed by the @@ -1272,7 +1272,7 @@ The event type of a double-click event contains the prefix @key{meta} held down comes to the Lisp program as @code{M-double-mouse-2}. If a double-click event has no binding, the binding of the corresponding ordinary click event is used to execute -it. Thus, you need not pay attention to the double click feature +it. Thus, you need not pay attention to the double click feature unless you really want to. When the user performs a double click, Emacs generates first an ordinary @@ -2131,7 +2131,7 @@ functions to read command input. For example, the function that implements numeric prefix arguments reads any number of digits. When it finds a non-digit event, it must unread the event so that it can be read normally by the command loop. -Likewise, incremental search uses this feature to unread events with no +Likewise, incremental search uses this feature to unread events with no special meaning in a search, because these events should exit the search and then execute normally. @@ -2200,7 +2200,7 @@ It returns @code{nil}. In the following example, the user may type a number of characters right after starting the evaluation of the form. After the @code{sleep-for} -finishes sleeping, @code{discard-input} discards any characters typed +finishes sleeping, @code{discard-input} discards any characters typed during the sleep. @example @@ -2251,7 +2251,7 @@ screen. This function performs redisplay (provided there is no pending input from the user), then waits @var{seconds} seconds, or until input is available. The value is @code{t} if @code{sit-for} waited the full -time with no input arriving (see @code{input-pending-p} in @ref{Event +time with no input arriving (see @code{input-pending-p} in @ref{Event Input Misc}). Otherwise, the value is @code{nil}. The argument @var{seconds} need not be an integer. If it is a floating @@ -2334,7 +2334,7 @@ non-@code{nil} in any way thus causes a quit. At the level of C code, quitting cannot happen just anywhere; only at the special places that check @code{quit-flag}. The reason for this is that quitting at other places might leave an inconsistency in Emacs's -internal state. Because quitting is delayed until a safe place, quitting +internal state. Because quitting is delayed until a safe place, quitting cannot make Emacs crash. Certain functions such as @code{read-key-sequence} or @@ -2343,7 +2343,7 @@ for input. Instead of quitting, @kbd{C-g} serves as the requested input. In the case of @code{read-key-sequence}, this serves to bring about the special behavior of @kbd{C-g} in the command loop. In the case of @code{read-quoted-char}, this is so that @kbd{C-q} can be used -to quote a @kbd{C-g}. +to quote a @kbd{C-g}. @cindex prevent quitting You can prevent quitting for a portion of a Lisp function by binding @@ -2399,7 +2399,7 @@ in @ref{Errors}.) You can specify a character other than @kbd{C-g} to use for quitting. See the function @code{set-input-mode} in @ref{Terminal Input}. - + @node Prefix Command Arguments @section Prefix Command Arguments @cindex prefix argument @@ -2468,11 +2468,11 @@ C-u 3 M-x display-prefix @print{} 3 M-3 M-x display-prefix @print{} 3 ; @r{(Same as @code{C-u 3}.)} -C-u - M-x display-prefix @print{} - +C-u - M-x display-prefix @print{} - M-- M-x display-prefix @print{} - ; @r{(Same as @code{C-u -}.)} -C-u - 7 M-x display-prefix @print{} -7 +C-u - 7 M-x display-prefix @print{} -7 M-- 7 M-x display-prefix @print{} -7 ; @r{(Same as @code{C-u -7}.)} @end example @@ -2633,12 +2633,12 @@ then type @kbd{C-M-c} to exit and continue executing @code{simple-rec}. @deffn Command exit-recursive-edit This function exits from the innermost recursive edit (including minibuffer input). Its definition is effectively @code{(throw 'exit -nil)}. +nil)}. @end deffn @deffn Command abort-recursive-edit This function aborts the command that requested the innermost recursive -edit (including minibuffer input), by signaling @code{quit} +edit (including minibuffer input), by signaling @code{quit} after exiting the recursive edit. Its definition is effectively @code{(throw 'exit t)}. @xref{Quitting}. @end deffn @@ -2780,7 +2780,7 @@ not a symbol, string, or vector, an error is signaled. The argument @var{count} is a repeat count; @var{kbdmacro} is executed that many times. If @var{count} is omitted or @code{nil}, @var{kbdmacro} is executed once. If it is 0, @var{kbdmacro} is executed over and over until it -encounters an error or a failing search. +encounters an error or a failing search. @xref{Reading One Event}, for an example of using @code{execute-kbd-macro}. @end defun diff --git a/lispref/compile.texi b/lispref/compile.texi index b854fc86edf..c5615b0ec5e 100644 --- a/lispref/compile.texi +++ b/lispref/compile.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/compile @node Byte Compilation, Advising Functions, Loading, Top @@ -64,7 +64,7 @@ Here is an example: (defun silly-loop (n) "Return time before and after N iterations of a loop." (let ((t1 (current-time-string))) - (while (> (setq n (1- n)) + (while (> (setq n (1- n)) 0)) (list t1 (current-time-string)))) @result{} silly-loop @@ -530,7 +530,7 @@ they still serve their purpose. @group 0 constant 1 ; @r{Push 1 onto stack.} -1 varref integer ; @r{Get value of @code{integer}} +1 varref integer ; @r{Get value of @code{integer}} ; @r{from the environment} ; @r{and push the value} ; @r{onto the stack.} @@ -573,7 +573,7 @@ they still serve their purpose. @group ; @r{Stack now contains:} ; @minus{} @r{decremented value of @code{integer}} - ; @minus{} @r{@code{factorial}} + ; @minus{} @r{@code{factorial}} ; @minus{} @r{value of @code{integer}} ; @minus{} @r{@code{*}} @end group @@ -616,7 +616,7 @@ The @code{silly-loop} function is somewhat more complex: (defun silly-loop (n) "Return time before and after N iterations of a loop." (let ((t1 (current-time-string))) - (while (> (setq n (1- n)) + (while (> (setq n (1- n)) 0)) (list t1 (current-time-string)))) @result{} silly-loop @@ -717,7 +717,7 @@ The @code{silly-loop} function is somewhat more complex: @end group @group -19 constant current-time-string ; @r{Push} +19 constant current-time-string ; @r{Push} ; @r{@code{current-time-string}} ; @r{onto top of stack.} @end group diff --git a/lispref/configure b/lispref/configure index ddf8dc7c907..93cc63efd65 100755 --- a/lispref/configure +++ b/lispref/configure @@ -1,7 +1,7 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 +# Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation diff --git a/lispref/control.texi b/lispref/control.texi index adea5277061..a9f4d7c9d22 100644 --- a/lispref/control.texi +++ b/lispref/control.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/control @node Control Structures, Variables, Evaluation, Top @@ -154,7 +154,7 @@ based on the value of @var{condition}. If the evaluated @var{condition} is non-@code{nil}, @var{then-form} is evaluated and the result returned. Otherwise, the @var{else-forms} are evaluated in textual order, and the value of the last one is returned. (The @var{else} part of @code{if} is -an example of an implicit @code{progn}. @xref{Sequencing}.) +an example of an implicit @code{progn}. @xref{Sequencing}.) If @var{condition} has the value @code{nil}, and no @var{else-forms} are given, @code{if} returns @code{nil}. @@ -165,8 +165,8 @@ never evaluated---it is ignored. Thus, in the example below, @example @group -(if nil - (print 'true) +(if nil + (print 'true) 'very-false) @result{} very-false @end group @@ -260,7 +260,7 @@ clauses was successful. To do this, we use @code{t} as the never @code{nil}, so this clause never fails, provided the @code{cond} gets to it at all. -For example, +For example, @example @group @@ -376,7 +376,7 @@ expression returns @code{nil}. Just @code{(or)}, with no @var{conditions} turned out @code{nil}. (Think about it; which one did not?) -For example, this expression tests whether @code{x} is either +For example, this expression tests whether @code{x} is either @code{nil} or the integer zero: @example @@ -401,7 +401,7 @@ You could almost write @code{or} in terms of @code{if}, but not quite: @example @group (if @var{arg1} @var{arg1} - (if @var{arg2} @var{arg2} + (if @var{arg2} @var{arg2} @var{arg3})) @end group @end example @@ -663,7 +663,7 @@ return points at once. First, two return points with the same tag, @end group @group -(catch 'hack +(catch 'hack (print (catch2 'hack)) 'no) @print{} yes @@ -745,7 +745,7 @@ which you call for other purposes, such as if you try to take the buffer. You can also signal errors explicitly with the functions @code{error} and @code{signal}. - Quitting, which happens when the user types @kbd{C-g}, is not + Quitting, which happens when the user types @kbd{C-g}, is not considered an error, but it is handled almost like an error. @xref{Quitting}. @@ -1000,9 +1000,9 @@ message (but without a beep), then returns a very large number. @smallexample @group (defun safe-divide (dividend divisor) - (condition-case err + (condition-case err ;; @r{Protected form.} - (/ dividend divisor) + (/ dividend divisor) @end group @group ;; @r{The handler.} @@ -1046,7 +1046,7 @@ including those signaled with @code{error}: ;; @r{This is a call to the function @code{error}.} (error "Rats! The variable %s was %s, not 35" 'baz baz)) ;; @r{This is the handler; it is not a form.} - (error (princ (format "The error was: %s" err)) + (error (princ (format "The error was: %s" err)) 2)) @print{} The error was: (error "Rats! The variable baz was 34, not 35") @result{} 2 @@ -1096,7 +1096,7 @@ message @samp{peculiar error} is used. @group (put 'new-error 'error-conditions - '(error my-own-errors new-error)) + '(error my-own-errors new-error)) @result{} (error my-own-errors new-error) @end group @group @@ -1112,7 +1112,7 @@ classification; and @code{error}, which is the widest of all. The error string should start with a capital letter but it should not end with a period. This is for consistency with the rest of Emacs. - + Naturally, Emacs will never signal @code{new-error} on its own; only an explicit call to @code{signal} (@pxref{Signaling Errors}) in your code can do this: diff --git a/lispref/customize.texi b/lispref/customize.texi index d37e4fca983..b7699a19802 100644 --- a/lispref/customize.texi +++ b/lispref/customize.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +@c Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/customize @node Customization, Loading, Macros, Top @@ -13,8 +13,8 @@ definitions---as well as face definitions (@pxref{Defining Faces}). @menu * Common Keywords:: -* Group Definitions:: -* Variable Definitions:: +* Group Definitions:: +* Variable Definitions:: * Customization Types:: @end menu @@ -502,7 +502,7 @@ example, @end smallexample @noindent -instead of +instead of @smallexample (defcustom cons-alist '(("foo" . 1) ("bar" . 2) ("baz" . 3)) @@ -527,14 +527,14 @@ Similarily, you can have alists with more values associated with each key, using variations of this trick: @smallexample -(defcustom person-data '(("brian" 50 t) +(defcustom person-data '(("brian" 50 t) ("dorith" 55 nil) ("ken" 52 t)) "Alist of basic info about people. Each element has the form (NAME AGE MALE-FLAG)." :type '(alist :value-type (group age boolean))) -(defcustom pets '(("brian") +(defcustom pets '(("brian") ("dorith" "dog" "guppy") ("ken" "cat")) "Alist of people's pets. @@ -930,7 +930,7 @@ Substitute the tag here. You specify the tag with the @code{:tag} keyword. @item %% -Display a literal @samp{%}. +Display a literal @samp{%}. @end table @item :action @var{action} @@ -1033,7 +1033,7 @@ implemented. @item Widgets with tabbing order @code{-1} are ignored. -@item +@item (Unimplemented) When on a widget with tabbing order @var{n}, go to the next widget in the buffer with tabbing order @var{n+1} or @code{nil}, whichever comes first. diff --git a/lispref/debugging.texi b/lispref/debugging.texi index aa0cd0e1797..f0bbc9207cb 100644 --- a/lispref/debugging.texi +++ b/lispref/debugging.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/debugging @node Debugging, Read and Print, Advising Functions, Top diff --git a/lispref/display.texi b/lispref/display.texi index bc22fd48f17..85b21a045b9 100644 --- a/lispref/display.texi +++ b/lispref/display.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/display @node Display, Calendar, Processes, Top @@ -409,9 +409,9 @@ major mode should use the mode's own name as an element of @example ;; @r{If you want to display an ellipsis:} -(add-to-invisibility-spec '(my-symbol . t)) +(add-to-invisibility-spec '(my-symbol . t)) ;; @r{If you don't want ellipsis:} -(add-to-invisibility-spec 'my-symbol) +(add-to-invisibility-spec 'my-symbol) (overlay-put (make-overlay beginning end) 'invisible 'my-symbol) @@ -483,7 +483,7 @@ effect is seen only within Emacs. @defvar selective-display This buffer-local variable enables selective display. This means that -lines, or portions of lines, may be made invisible. +lines, or portions of lines, may be made invisible. @itemize @bullet @item @@ -1336,7 +1336,7 @@ kind of customization item (@pxref{Customization}) which the user can customize using the Customization buffer (@pxref{Easy Customization,,, emacs, The GNU Emacs Manual}). -@defmac defface face spec doc [keyword value]... +@defmac defface face spec doc [keyword value]... This declares @var{face} as a customizable face that defaults according to @var{spec}. You should not quote the symbol @var{face}. The argument @var{doc} specifies the face documentation. The keywords you @@ -1473,13 +1473,13 @@ set width. This should be one of the symbols @code{ultra-condensed}, @code{extra-condensed}, @code{condensed}, @code{semi-condensed}, @code{normal}, @code{semi-expanded}, @code{expanded}, @code{extra-expanded}, or @code{ultra-expanded}. - + @item :height Either the font height, an integer in units of 1/10 point, a floating point number specifying the amount by which to scale the height of any underlying face, or a function, which is called with the old height (from the underlying face), and should return the new height. - + @item :weight Font weight---a symbol from this series (from most dense to most faint): @code{ultra-bold}, @code{extra-bold}, @code{bold}, @code{semi-bold}, @@ -1499,7 +1499,7 @@ the terminal supports the feature. @item :foreground Foreground color, a string. - + @item :background Background color, a string. @@ -1852,7 +1852,7 @@ With a region that is active. In Transient Mark mode, the region is highlighted with the face @code{region} (@pxref{Standard Faces}). @item -With special glyphs. Each glyph can specify a particular face +With special glyphs. Each glyph can specify a particular face number. @xref{Glyphs}. @end itemize @@ -2285,7 +2285,7 @@ they mean. @menu * Specified Space:: Displaying one space with a specified width. * Other Display Specs:: Displaying an image; magnifying text; moving it - up or down on the page; adjusting the width + up or down on the page; adjusting the width of spaces within text. * Display Margins:: Displaying text or images to the side of the main text. * Conditional Display:: Making any of the above features conditional @@ -2465,7 +2465,7 @@ Thus, you can make changes take effect by calling @defun set-window-margins window left &optional right @tindex set-window-margins This function specifies the margin widths for window @var{window}. -The argument @var{left} controls the left margin and +The argument @var{left} controls the left margin and @var{right} controls the right margin (default @code{0}). @end defun @@ -3409,7 +3409,7 @@ variable @code{glyph-table}. @defvar glyph-table The value of this variable is the current glyph table. It should be a -vector; the @var{g}th element defines glyph code @var{g}. +vector; the @var{g}th element defines glyph code @var{g}. If a glyph code is greater than or equal to the length of the glyph table, that code is automatically simple. If the value of diff --git a/lispref/edebug.texi b/lispref/edebug.texi index 7df8a7f2c55..b94ba8838ba 100644 --- a/lispref/edebug.texi +++ b/lispref/edebug.texi @@ -1,10 +1,10 @@ @comment -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1992, 1993, 1994, 1998, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1992, 1993, 1994, 1998, 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. -@c This file can also be used by an independent Edebug User -@c Manual in which case the Edebug node below should be used +@c This file can also be used by an independent Edebug User +@c Manual in which case the Edebug node below should be used @c with the following links to the Bugs section and to the top level: @c , Bugs and Todo List, Top, Top @@ -35,7 +35,7 @@ at each breakpoint. Display expression results and evaluate expressions as if outside of Edebug. -@item +@item Automatically re-evaluate a list of expressions and display their results each time Edebug updates the display. @@ -117,7 +117,7 @@ at the open-parenthesis before @code{if}. @cindex stop points The places within a function where Edebug can stop execution are called @dfn{stop points}. These occur both before and after each subexpression -that is a list, and also after each variable reference. +that is a list, and also after each variable reference. Here we use periods to show the stop points in the function @code{fac}: @@ -142,7 +142,7 @@ display you will see: @end example When Edebug stops execution after an expression, it displays the -expression's value in the echo area. +expression's value in the echo area. Other frequently used commands are @kbd{b} to set a breakpoint at a stop point, @kbd{g} to execute until a breakpoint is reached, and @kbd{q} to @@ -445,7 +445,7 @@ breakpoint is temporary---it turns off the first time it stops the program. @item u -Unset the breakpoint (if any) at the stop point at or after +Unset the breakpoint (if any) at the stop point at or after point (@code{edebug-unset-breakpoint}). @item x @var{condition} @key{RET} @@ -490,7 +490,7 @@ breakpoints. This command does not continue execution---it just moves point in the buffer. @menu -* Global Break Condition:: Breaking on an event. +* Global Break Condition:: Breaking on an event. * Source Breakpoints:: Embedding breakpoints in source code. @end menu @@ -692,7 +692,7 @@ but they are evaluated in the context outside of Edebug. The expressions you enter interactively (and their results) are lost when you continue execution; but you can set up an @dfn{evaluation list} -consisting of expressions to be evaluated each time execution stops. +consisting of expressions to be evaluated each time execution stops. @cindex evaluation list group To do this, write one or more @dfn{evaluation list groups} in the @@ -771,7 +771,7 @@ If non-@code{nil}, Edebug binds @code{print-length} to this value while printing results. The default value is @code{50}. @end defopt -@defopt edebug-print-level +@defopt edebug-print-level If non-@code{nil}, Edebug binds @code{print-level} to this value while printing results. The default value is @code{50}. @end defopt @@ -794,7 +794,7 @@ Custom printing prints this as @samp{Result: #1=(#1# y)}. The structure. This notation is used for any shared elements of lists or vectors. -@defopt edebug-print-circle +@defopt edebug-print-circle If non-@code{nil}, Edebug binds @code{print-circle} to this value while printing results. The default value is @code{nil}. @end defopt @@ -900,13 +900,13 @@ the breakpoint is reached, the frequency data looks like this: @example (defun fac (n) (if (= n 0) (edebug)) -;#6 1 0 =5 +;#6 1 0 =5 (if (< 0 n) -;#5 = +;#5 = (* n (fac (1- n))) -;# 5 0 +;# 5 0 1)) -;# 0 +;# 0 @end example The comment lines show that @code{fac} was called 6 times. The @@ -939,12 +939,12 @@ before even deciding whether to make trace information or stop the program. @itemize @bullet -@item +@item @code{max-lisp-eval-depth} and @code{max-specpdl-size} are both incremented once to reduce Edebug's impact on the stack. You could, however, still run out of stack space when using Edebug. -@item +@item The state of keyboard macro execution is saved and restored. While Edebug is active, @code{executing-macro} is bound to @code{edebug-continue-kbd-macro}. @@ -958,7 +958,7 @@ Edebug is active, @code{executing-macro} is bound to @c This paragraph is not filled, because LaLiberte's conversion script @c needs an xref to be on just one line. When Edebug needs to display something (e.g., in trace mode), it saves -the current window configuration from ``outside'' Edebug +the current window configuration from ``outside'' Edebug (@pxref{Window Configurations}). When you exit Edebug (by continuing the program), it restores the previous window configuration. @@ -974,12 +974,12 @@ following data (though some of them are deliberately not restored if an error or quit signal occurs). @itemize @bullet -@item +@item @cindex current buffer point and mark (Edebug) Which buffer is current, and the positions of point and the mark in the current buffer, are saved and restored. -@item +@item @cindex window configuration (Edebug) The outside window configuration is saved and restored if @code{edebug-save-windows} is non-@code{nil} (@pxref{Edebug Display Update}). @@ -1002,7 +1002,7 @@ The variables @code{overlay-arrow-position} and @code{overlay-arrow-string} are saved and restored. So you can safely invoke Edebug from the recursive edit elsewhere in the same buffer. -@item +@item @code{cursor-in-echo-area} is locally bound to @code{nil} so that the cursor shows up in the window. @end itemize @@ -1047,7 +1047,7 @@ evaluation list window. by the @code{recursive-edit}, but Edebug temporarily restores them during evaluations. -@item +@item The state of keyboard macro definition is saved and restored. While Edebug is active, @code{defining-kbd-macro} is bound to @code{edebug-continue-kbd-macro}. @@ -1187,7 +1187,7 @@ A lambda expression with no quoting. @item &optional @kindex &optional @r{(Edebug)} All following elements in the specification list are optional; as soon -as one does not match, Edebug stops matching at this level. +as one does not match, Edebug stops matching at this level. To make just a few elements optional followed by non-optional elements, use @code{[&optional @var{specs}@dots{}]}. To specify that several @@ -1222,7 +1222,7 @@ Each of the following elements is matched as alternatives as if by using of them match, nothing is matched, but the @code{¬} specification succeeds. -@item &define +@item &define @kindex &define @r{(Edebug)} Indicates that the specification is for a defining form. The defining form itself is not instrumented (that is, Edebug does not stop before and @@ -1302,7 +1302,7 @@ Here is a list of additional specifications that may appear only after @table @code @item name -The argument, a symbol, is the name of the defining form. +The argument, a symbol, is the name of the defining form. A defining form is not required to have a name field; and it may have multiple name fields. @@ -1349,7 +1349,7 @@ necessarily mean a syntax error will be signaled; instead, exhausted. Eventually every element of the argument list must be matched by some element in the specification, and every required element in the specification must match some argument. - + When a syntax error is detected, it might not be reported until much later after higher-level alternatives have been exhausted, and with the point positioned further from the real error. But if backtracking is @@ -1405,8 +1405,8 @@ function body. @smallexample (def-edebug-spec defmacro defun) ; @r{Indirect ref to @code{defun} spec.} -(def-edebug-spec defun - (&define name lambda-list +(def-edebug-spec defun + (&define name lambda-list [&optional stringp] ; @r{Match the doc string, if present.} [&optional ("interactive" interactive)] def-body)) @@ -1479,7 +1479,7 @@ what happens to the window configurations, it is better to set this variable to @code{nil}. If the value is a list, only the listed windows are saved and -restored. +restored. You can use the @kbd{W} command in Edebug to change this variable interactively. @xref{Edebug Display Update}. @@ -1505,26 +1505,26 @@ mode for Edebug when it is first activated. Possible values are @code{step}, @code{next}, @code{go}, @code{Go-nonstop}, @code{trace}, @code{Trace-fast}, @code{continue}, and @code{Continue-fast}. -The default value is @code{step}. +The default value is @code{step}. @xref{Edebug Execution Modes}. @end defopt @defopt edebug-trace Non-@code{nil} means display a trace of function entry and exit. Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one -function entry or exit per line, indented by the recursion level. +function entry or exit per line, indented by the recursion level. -The default value is @code{nil}. +The default value is @code{nil}. Also see @code{edebug-tracing}, in @ref{Trace Buffer}. @end defopt -@defopt edebug-test-coverage +@defopt edebug-test-coverage If non-@code{nil}, Edebug tests coverage of all expressions debugged. @xref{Coverage Testing}. @end defopt -@defopt edebug-continue-kbd-macro +@defopt edebug-continue-kbd-macro If non-@code{nil}, continue defining or executing any keyboard macro that is executing outside of Edebug. Use this with caution since it is not debugged. diff --git a/lispref/elisp-covers.texi b/lispref/elisp-covers.texi index aa9d23b8444..c536e9e6b25 100644 --- a/lispref/elisp-covers.texi +++ b/lispref/elisp-covers.texi @@ -24,7 +24,7 @@ @sp 2 @center @titlefont{Volume 1} @sp 2 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @page @@ -47,7 +47,7 @@ @sp 2 @center @titlefont{Volume 2} @sp 2 -@center by Bil Lewis, +@center by Bil Lewis, @center Dan LaLiberte, and @center the GNU Manual Group @@ -78,7 +78,7 @@ @sp 2 @center @titlefont{Volume 1} @sp 2 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @page @@ -112,7 +112,7 @@ @sp 2 @center @titlefont{Volume 1} @sp 2 -@center by Bil Lewis, +@center by Bil Lewis, @center Dan LaLiberte, and @center the GNU Manual Group @@ -143,7 +143,7 @@ @sp 2 @center @titlefont{Volume 1} @sp 2 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @page @@ -173,7 +173,7 @@ @sp 2 @center @titlefont{Volume 2} @sp 2 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @page @@ -203,7 +203,7 @@ @sp 2 @center @titlefont{Volume 2} @sp 2 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @@ -216,7 +216,7 @@ @center for Unix Users @center Edition 2.3, June 1994 @sp 4 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @sp 4 @@ -225,7 +225,7 @@ @author FSF @author - + @page @c ================ Spine 2 ================ @@ -235,7 +235,7 @@ @center for Unix Users @center Edition 2.3, June 1994 @sp 4 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group diff --git a/lispref/elisp.texi b/lispref/elisp.texi index cd350c9bf18..7eab107f739 100644 --- a/lispref/elisp.texi +++ b/lispref/elisp.texi @@ -35,7 +35,7 @@ Published by the Free Software Foundation Boston, MA 02111-1307 USA Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,@* - 2000, 2002 Free Software Foundation, Inc. + 2000, 2002 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or @@ -207,8 +207,8 @@ Tips and Conventions Format of Descriptions -* A Sample Function Description:: -* A Sample Variable Description:: +* A Sample Function Description:: +* A Sample Variable Description:: Lisp Data Types @@ -317,7 +317,7 @@ Evaluation * Intro Eval:: Evaluation in the scheme of things. * Eval:: How to invoke the Lisp interpreter explicitly. * Forms:: How various sorts of objects are evaluated. -* Quoting:: Avoiding evaluation (to put constants in +* Quoting:: Avoiding evaluation (to put constants in the program). Kinds of Forms @@ -370,11 +370,11 @@ Variables Scoping Rules for Variable Bindings -* Scope:: Scope means where in the program a value +* Scope:: Scope means where in the program a value is visible. Comparison with other languages. * Extent:: Extent means how long in time a value exists. * Impl of Scope:: Two ways to implement dynamic scoping. -* Using Scoping:: How to use dynamic scoping carefully and +* Using Scoping:: How to use dynamic scoping carefully and avoid problems. Buffer-Local Variables @@ -392,11 +392,11 @@ Functions * Defining Functions:: Lisp expressions for defining functions. * Calling Functions:: How to use an existing function. * Mapping Functions:: Applying a function to each element of a list, etc. -* Anonymous Functions:: Lambda-expressions are functions with no names. +* Anonymous Functions:: Lambda-expressions are functions with no names. * Function Cells:: Accessing or setting the function definition of a symbol. * Related Topics:: Cross-references to specific Lisp primitives - that have a special bearing on how + that have a special bearing on how functions work. Lambda Expressions @@ -445,10 +445,10 @@ Debugging Lisp Programs * Debugger:: How the Emacs Lisp debugger is implemented. * Syntax Errors:: How to find syntax errors. -* Compilation Errors:: How to find errors that show up in +* Compilation Errors:: How to find errors that show up in byte compilation. * Edebug:: A source-level Emacs Lisp debugger. - + The Lisp Debugger * Error Debugging:: Entering the debugger when an error happens. @@ -467,10 +467,10 @@ Debugging Invalid Lisp Syntax Reading and Printing Lisp Objects * Streams Intro:: Overview of streams, reading and printing. -* Input Streams:: Various data types that can be used as +* Input Streams:: Various data types that can be used as input streams. * Input Functions:: Functions to read Lisp objects from text. -* Output Streams:: Various data types that can be used as +* Output Streams:: Various data types that can be used as output streams. * Output Functions:: Functions to print Lisp objects as text. @@ -542,7 +542,7 @@ Major and Minor Modes * Major Modes:: Defining major modes. * Minor Modes:: Defining minor modes. * Mode Line Format:: Customizing the text that appears in the mode line. -* Hooks:: How to use hooks; how to write code that +* Hooks:: How to use hooks; how to write code that provides hooks. Major Modes @@ -602,7 +602,7 @@ File Names * File Name Components:: The directory part of a file name, and the rest. * Directory Names:: A directory's name as a directory is different from its name as a file. -* Relative File Names:: Some file names are relative to a +* Relative File Names:: Some file names are relative to a current directory. * File Name Expansion:: Converting relative file names to absolute ones. * Unique File Names:: Generating names for temporary files. @@ -610,17 +610,17 @@ File Names Backups and Auto-Saving -* Backup Files:: How backup files are made; how their names +* Backup Files:: How backup files are made; how their names are chosen. * Auto-Saving:: How auto-save files are made; how their names are chosen. -* Reverting:: @code{revert-buffer}, and how to customize +* Reverting:: @code{revert-buffer}, and how to customize what it does. Backup Files * Making Backups:: How Emacs makes backup files, and when. -* Rename or Copy:: Two alternatives: renaming the old file +* Rename or Copy:: Two alternatives: renaming the old file or copying it. * Numbered Backups:: Keeping multiple backups for each source file. * Backup Names:: How backup file names are computed; customization. @@ -654,7 +654,7 @@ Windows and choosing a window for it. * Window Point:: Each window has its own location of point. * Window Start:: The display-start position controls which text - is on-screen in the window. + is on-screen in the window. * Vertical Scrolling:: Moving text up and down in the window. * Horizontal Scrolling:: Moving text sideways on the window. * Size of Window:: Accessing the size of a window. @@ -710,7 +710,7 @@ Markers * Predicates on Markers:: Testing whether an object is a marker. * Creating Markers:: Making empty markers or markers at certain places. * Information from Markers:: Finding the marker's buffer or character - position. + position. * Moving Markers:: Moving the marker to a new buffer or position. * The Mark:: How ``the mark'' is implemented with a marker. * The Region:: How to access ``the region''. @@ -739,7 +739,7 @@ Text * Registers:: How registers are implemented. Accessing the text or position stored in a register. * Change Hooks:: Supplying functions to be run when text is changed. - + The Kill Ring * Kill Ring Concepts:: What text looks like in the kill ring. diff --git a/lispref/errors.texi b/lispref/errors.texi index 51132c1b4bc..14797d61011 100644 --- a/lispref/errors.texi +++ b/lispref/errors.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/errors @node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top @@ -87,7 +87,7 @@ error message is constructed from the data items alone when the error condition @code{file-error} is present.@* @xref{Files}. -@item file-locked +@item file-locked This is a subcategory of @code{file-error}.@* @xref{File Locks}. @@ -131,7 +131,7 @@ find invalid syntax or mismatched parentheses.@* @xref{Searching and Matching}. @item setting-constant -@code{"Attempt to set a constant symbol"}@* +@code{"Attempt to set a constant symbol"}@* The values of the symbols @code{nil} and @code{t}, and any symbols that start with @samp{:}, may not be changed.@* diff --git a/lispref/eval.texi b/lispref/eval.texi index 4c4e19b1a47..fa90ff07be1 100644 --- a/lispref/eval.texi +++ b/lispref/eval.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/eval @node Evaluation, Control Structures, Symbols, Top @@ -30,7 +30,7 @@ function @code{eval}. @section Introduction to Evaluation The Lisp interpreter, or evaluator, is the program that computes -the value of an expression that is given to it. When a function +the value of an expression that is given to it. When a function written in Lisp is called, the evaluator computes the value of the function by evaluating the expressions in the function body. Thus, running any Lisp program really means running the Lisp interpreter. @@ -300,7 +300,7 @@ function, not a symbol. @smallexample @group ((lambda (arg) (erste arg)) - '(1 2 3)) + '(1 2 3)) @result{} 1 @end group @end smallexample diff --git a/lispref/files.texi b/lispref/files.texi index 8c3545a055b..cb28ac8607b 100644 --- a/lispref/files.texi +++ b/lispref/files.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/files @node Files, Backups and Auto-Saving, Documentation, Top @@ -92,7 +92,7 @@ temporary buffer. Visiting the file is not necessary and takes longer. @deffn Command find-file filename &optional wildcards This command selects a buffer visiting the file @var{filename}, -using an existing buffer if there is one, and otherwise creating a +using an existing buffer if there is one, and otherwise creating a new buffer and reading the file into it. It also returns that buffer. The body of the @code{find-file} function is very simple and looks @@ -548,7 +548,7 @@ offset from the start of the file and writes the data from there. If @var{mustbenew} is non-@code{nil}, then @code{write-region} asks for confirmation if @var{filename} names an existing file. -Starting in Emacs 21, if @var{mustbenew} is the symbol @code{excl}, +Starting in Emacs 21, if @var{mustbenew} is the symbol @code{excl}, then @code{write-region} does not ask for confirmation, but instead it signals an error @code{file-already-exists} if the file already exists. @@ -865,7 +865,7 @@ name of a text file, a directory, or even another symbolic link, or it may be a nonexistent file name. If the file @var{filename} is not a symbolic link (or there is no such file), -@code{file-symlink-p} returns @code{nil}. +@code{file-symlink-p} returns @code{nil}. @example @group @@ -1107,11 +1107,11 @@ For example, here are the file attributes for @file{files.texi}: @example @group (file-attributes "files.texi") - @result{} (nil 1 2235 75 - (8489 20284) - (8489 20284) + @result{} (nil 1 2235 75 + (8489 20284) + (8489 20284) (8489 20285) - 14906 "-rw-rw-rw-" + 14906 "-rw-rw-rw-" nil 129500 -32252) @end group @end example @@ -1530,7 +1530,7 @@ first character of the file name's last component. For example, @end defun @ignore -Andrew Innes says that this +Andrew Innes says that this @c @defvar directory-sep-char @c @tindex directory-sep-char @@ -1974,12 +1974,12 @@ default directory, and has five files whose names begin with @samp{f}: @example @group (file-name-all-completions "f" "") - @result{} ("foo" "file~" "file.c.~2~" + @result{} ("foo" "file~" "file.c.~2~" "file.c.~1~" "file.c") @end group @group -(file-name-all-completions "fo" "") +(file-name-all-completions "fo" "") @result{} ("foo") @end group @end example @@ -2126,7 +2126,7 @@ then the user will probably be happier if you do sort the names. @group (directory-files "~lewis") @result{} ("#foo#" "#foo.el#" "." ".." - "dired-mods.el" "files.texi" + "dired-mods.el" "files.texi" "files.texi.~1~") @end group @end example @@ -2388,7 +2388,7 @@ for an operation it does not recognize. Here's one way to do this: @dots{} ;; @r{Handle any operation we don't know about.} (t (let ((inhibit-file-name-handlers - (cons 'my-file-handler + (cons 'my-file-handler (and (eq inhibit-file-name-operation operation) inhibit-file-name-handlers))) (inhibit-file-name-operation operation)) diff --git a/lispref/frames.texi b/lispref/frames.texi index 9d9a0ce82c6..fd9e74bea36 100644 --- a/lispref/frames.texi +++ b/lispref/frames.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/frames @node Frames, Positions, Windows, Top @@ -70,7 +70,7 @@ The frame is displayed on an MS-DOS terminal. * Display Feature Testing:: Determining the features of a terminal. @end menu - @xref{Display}, for information about the related topic of + @xref{Display}, for information about the related topic of controlling Emacs redisplay. @node Creating Frames diff --git a/lispref/front-cover-1.texi b/lispref/front-cover-1.texi index 71ecd6a35da..56d0f2b1c2d 100644 --- a/lispref/front-cover-1.texi +++ b/lispref/front-cover-1.texi @@ -24,7 +24,7 @@ @sp 2 @center @titlefont{Volume 1} @sp 2 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @page . @@ -45,7 +45,7 @@ @sp 2 @center @titlefont{Volume 2} @sp 2 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @end titlepage diff --git a/lispref/functions.texi b/lispref/functions.texi index ece586f79e4..576ad51b006 100644 --- a/lispref/functions.texi +++ b/lispref/functions.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/functions @node Functions, Macros, Variables, Top @@ -18,7 +18,7 @@ define them. * Defining Functions:: Lisp expressions for defining functions. * Calling Functions:: How to use an existing function. * Mapping Functions:: Applying a function to each element of a list, etc. -* Anonymous Functions:: Lambda expressions are functions with no names. +* Anonymous Functions:: Lambda expressions are functions with no names. * Function Cells:: Accessing or setting the function definition of a symbol. * Inline Functions:: Defining functions that the compiler will open code. @@ -746,10 +746,10 @@ length of @var{sequence}. "Apply FUNCTION to successive cars of all ARGS. Return the list of results." ;; @r{If no list is exhausted,} - (if (not (memq 'nil args)) + (if (not (memq 'nil args)) ;; @r{apply function to @sc{car}s.} - (cons (apply function (mapcar 'car args)) - (apply 'mapcar* function + (cons (apply function (mapcar 'car args)) + (apply 'mapcar* function ;; @r{Recurse for rest of elements.} (mapcar 'cdr args))))) @end group @@ -779,7 +779,7 @@ The argument @var{function} must be a function that can take one argument and return a string. The argument @var{sequence} can be any kind of sequence except a char-table; that is, a list, a vector, a bool-vector, or a string. - + @smallexample @group (mapconcat 'symbol-name @@ -841,7 +841,7 @@ your program. For example, you might want to pass one as an argument to the function @code{mapcar}, which applies any given function to each element of a list. - Here we define a function @code{change-property} which + Here we define a function @code{change-property} which uses a function as its third argument: @example @@ -915,7 +915,7 @@ comment: @cindex @samp{#'} syntax The read syntax @code{#'} is a short-hand for using @code{function}. -For example, +For example, @example #'(lambda (x) (* x x)) diff --git a/lispref/gpl.texi b/lispref/gpl.texi index d348744468f..de21adbdd18 100644 --- a/lispref/gpl.texi +++ b/lispref/gpl.texi @@ -366,7 +366,7 @@ when it starts in an interactive mode: Gnomovision version 69, Copyright (C) @var{year} @var{name of author} Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome -to redistribute it under certain conditions; type `show c' +to redistribute it under certain conditions; type `show c' for details. @end smallexample @@ -384,7 +384,7 @@ necessary. Here is a sample; alter the names: @group Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' -(which makes passes at compilers) written +(which makes passes at compilers) written by James Hacker. @var{signature of Ty Coon}, 1 April 1989 diff --git a/lispref/hash.texi b/lispref/hash.texi index 4b12160c603..ca7d3ad8603 100644 --- a/lispref/hash.texi +++ b/lispref/hash.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1999 Free Software Foundation, Inc. +@c Copyright (C) 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/hash @node Hash Tables, Symbols, Sequences Arrays Vectors, Top @@ -176,7 +176,7 @@ association in @var{table}. @end defun @tindex puthash -@defun puthash key value table +@defun puthash key value table This function enters an association for @var{key} in @var{table}, with value @var{value}. If @var{key} already has an association in @var{table}, @var{value} replaces the old associated value. @@ -270,7 +270,7 @@ compared case-insensitively. (defun case-fold-string-hash (a) (sxhash (upcase a))) -(define-hash-table-test 'case-fold 'case-fold-string= +(define-hash-table-test 'case-fold 'case-fold-string= 'case-fold-string-hash)) (make-hash-table :test 'case-fold) diff --git a/lispref/help.texi b/lispref/help.texi index eb9dc0a75d7..3f4f83b41c0 100644 --- a/lispref/help.texi +++ b/lispref/help.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/help @node Documentation, Files, Modes, Top @@ -164,7 +164,7 @@ All symbols that have PATTERN in their name are described in the `*Help*' buffer." (interactive "sDescribe symbols matching: ") (let ((describe-func - (function + (function (lambda (s) @end group @group @@ -172,30 +172,30 @@ in the `*Help*' buffer." (if (fboundp s) ; @r{It is a function.} (princ (format "%s\t%s\n%s\n\n" s - (if (commandp s) + (if (commandp s) (let ((keys (where-is-internal s))) (if keys (concat "Keys: " - (mapconcat 'key-description + (mapconcat 'key-description keys " ")) "Keys: none")) "Function") @end group @group - (or (documentation s) + (or (documentation s) "not documented")))) - + (if (boundp s) ; @r{It is a variable.} @end group @group (princ (format "%s\t%s\n%s\n\n" s - (if (user-variable-p s) + (if (user-variable-p s) "Option " "Variable") @end group @group - (or (documentation-property + (or (documentation-property s 'variable-documentation) "not documented"))))))) sym-list) @@ -203,7 +203,7 @@ in the `*Help*' buffer." @group ;; @r{Build a list of symbols that match pattern.} - (mapatoms (function + (mapatoms (function (lambda (sym) (if (string-match pattern (symbol-name sym)) (setq sym-list (cons sym sym-list)))))) @@ -225,7 +225,7 @@ but provides more information. (describe-symbols "goal") ---------- Buffer: *Help* ---------- -goal-column Option +goal-column Option *Semipermanent goal column for vertical motion, as set by @dots{} @end group @c Do not blithely break or fill these lines. @@ -306,11 +306,11 @@ can also call that function yourself. stands for a key sequence that will invoke @var{command}, or @samp{M-x @var{command}} if @var{command} has no key bindings. -@item \@{@var{mapvar}@} +@item \@{@var{mapvar}@} stands for a summary of the keymap which is the value of the variable @var{mapvar}. The summary is made using @code{describe-bindings}. -@item \<@var{mapvar}> +@item \<@var{mapvar}> stands for no text itself. It is used only for a side effect: it specifies @var{mapvar}'s value as the keymap for any following @samp{\[@var{command}]} sequences in this documentation string. @@ -335,13 +335,13 @@ user's own customized key bindings. @smallexample @group -(substitute-command-keys +(substitute-command-keys "To abort recursive edit, type: \\[abort-recursive-edit]") @result{} "To abort recursive edit, type: C-]" @end group @group -(substitute-command-keys +(substitute-command-keys "The keys that are defined for the minibuffer here are: \\@{minibuffer-local-must-match-map@}") @result{} "The keys that are defined for the minibuffer here are: @@ -605,7 +605,7 @@ Emacs versions, @code{exec-directory} was used for this. @c Emacs 19 feature @defmac make-help-screen fname help-line help-text help-map -This macro defines a help command named @var{fname} that acts like a +This macro defines a help command named @var{fname} that acts like a prefix key that shows a list of the subcommands it offers. When invoked, @var{fname} displays @var{help-text} in a window, then diff --git a/lispref/hooks.texi b/lispref/hooks.texi index ecdec6885da..4c4e6d14c01 100644 --- a/lispref/hooks.texi +++ b/lispref/hooks.texi @@ -1,13 +1,13 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1998 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1998 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/hooks @node Standard Hooks, Index, Standard Keymaps, Top @appendix Standard Hooks The following is a list of hook variables that let you provide -functions to be called from within Emacs on suitable occasions. +functions to be called from within Emacs on suitable occasions. Most of these variables have names ending with @samp{-hook}. They are @dfn{normal hooks}, run by means of @code{run-hooks}. The value of such diff --git a/lispref/index.perm b/lispref/index.perm index aeccc6b4a7f..0b391e85379 100644 --- a/lispref/index.perm +++ b/lispref/index.perm @@ -23,7 +23,7 @@ All variables, functions, keys, programs, files, and concepts are -in this one index. +in this one index. All names and concepts are permuted, so they appear several times, one for each permutation of the parts of the name. For example, diff --git a/lispref/intro.texi b/lispref/intro.texi index 4a00377db4f..35e8151922d 100644 --- a/lispref/intro.texi +++ b/lispref/intro.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/intro @@ -337,7 +337,7 @@ The description follows on succeeding lines, sometimes with examples. function, @code{foo}. * A Sample Variable Description:: A description of an imaginary variable, - @code{electric-future-map}. + @code{electric-future-map}. @end menu @node A Sample Function Description diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi index be231798c43..e5adfb07b46 100644 --- a/lispref/keymaps.texi +++ b/lispref/keymaps.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/keymaps @node Keymaps, Modes, Command Loop, Top @@ -175,28 +175,28 @@ C-l}, @kbd{M-C-q}, and @kbd{M-C-x}. @example @group lisp-mode-map -@result{} +@result{} @end group @group -(keymap +(keymap ;; @key{TAB} - (9 . lisp-indent-line) + (9 . lisp-indent-line) @end group @group ;; @key{DEL} - (127 . backward-delete-char-untabify) + (127 . backward-delete-char-untabify) @end group @group - (3 keymap + (3 keymap ;; @kbd{C-c C-l} - (12 . run-lisp)) + (12 . run-lisp)) @end group @group - (27 keymap + (27 keymap ;; @r{@kbd{M-C-q}, treated as @kbd{@key{ESC} C-q}} - (17 . indent-sexp) + (17 . indent-sexp) ;; @r{@kbd{M-C-x}, treated as @kbd{@key{ESC} C-x}} - (24 . lisp-send-defun))) + (24 . lisp-send-defun))) @end group @end example @@ -280,7 +280,7 @@ definition is a keymap; the same symbol appears in the new copy. @end group @group ;; @r{(This implements meta characters.)} - (27 keymap + (27 keymap (83 . center-paragraph) (115 . center-line)) (9 . tab-to-tab-stop)) @@ -529,7 +529,7 @@ certain parts of the buffer; see @ref{Special Properties}. when the minor mode is enabled. The variable @code{overriding-local-map}, if non-@code{nil}, specifies -another local keymap that overrides the buffer's local map and all the +another local keymap that overrides the buffer's local map and all the minor mode keymaps. All the active keymaps are used together to determine what command to @@ -584,7 +584,7 @@ other. @example @group (current-global-map) -@result{} (keymap [set-mark-command beginning-of-line @dots{} +@result{} (keymap [set-mark-command beginning-of-line @dots{} delete-backward-char]) @end group @end example @@ -600,14 +600,14 @@ keymap. @example @group (current-local-map) -@result{} (keymap - (10 . eval-print-last-sexp) - (9 . lisp-indent-line) - (127 . backward-delete-char-untabify) +@result{} (keymap + (10 . eval-print-last-sexp) + (9 . lisp-indent-line) + (127 . backward-delete-char-untabify) @end group @group - (27 keymap - (24 . eval-defun) + (27 keymap + (24 . eval-defun) (17 . indent-sexp))) @end group @end example @@ -1004,7 +1004,7 @@ meta-prefix-char ; @r{The default value.} @end group @group (setq meta-prefix-char 24) - @result{} 24 + @result{} 24 @end group @group (key-binding "\M-b") @@ -1111,7 +1111,7 @@ map @end group @group map -@result{} (keymap +@result{} (keymap (24 keymap ; @kbd{C-x} (102 . forward-word)) ; @kbd{f} (6 . forward-char)) ; @kbd{C-f} @@ -1121,7 +1121,7 @@ map ;; @r{Bind @kbd{C-p} to the @code{ctl-x-map}.} (define-key map "\C-p" ctl-x-map) ;; @code{ctl-x-map} -@result{} [nil @dots{} find-file @dots{} backward-kill-sentence] +@result{} [nil @dots{} find-file @dots{} backward-kill-sentence] @end group @group @@ -1133,7 +1133,7 @@ map map @result{} (keymap ; @r{Note @code{foo} in @code{ctl-x-map}.} (16 keymap [nil @dots{} foo @dots{} backward-kill-sentence]) - (24 keymap + (24 keymap (102 . forward-word)) (6 . forward-char)) @end group @@ -1157,7 +1157,7 @@ standard bindings: @smallexample @group -(substitute-key-definition +(substitute-key-definition 'find-file 'find-file-read-only (current-global-map)) @end group @end smallexample @@ -1190,9 +1190,9 @@ Here is an example showing a keymap before and after substitution: @smallexample @group -(setq map '(keymap - (?1 . olddef-1) - (?2 . olddef-2) +(setq map '(keymap + (?1 . olddef-1) + (?2 . olddef-2) (?3 . olddef-1))) @result{} (keymap (49 . olddef-1) (50 . olddef-2) (51 . olddef-1)) @end group @@ -1220,8 +1220,8 @@ digits to run @code{digit-argument}, and @kbd{-} to run @code{negative-argument}. Otherwise it makes them undefined like the rest of the printing characters. -@cindex yank suppression -@cindex @code{quoted-insert} suppression +@cindex yank suppression +@cindex @code{quoted-insert} suppression The @code{suppress-keymap} function does not make it impossible to modify a buffer, as it does not suppress commands such as @code{yank} and @code{quoted-insert}. To prevent any modification of a buffer, make @@ -1423,7 +1423,7 @@ definition is the sparse keymap @code{(keymap (83 .@: center-paragraph) @smallexample @group (accessible-keymaps (current-local-map)) -@result{}(("" keymap +@result{}(("" keymap (27 keymap ; @r{Note this keymap for @key{ESC} is repeated below.} (83 . center-paragraph) (115 . center-line)) @@ -1431,8 +1431,8 @@ definition is the sparse keymap @code{(keymap (83 .@: center-paragraph) @end group @group - ("^[" keymap - (83 . center-paragraph) + ("^[" keymap + (83 . center-paragraph) (115 . foo))) @end group @end smallexample @@ -1447,7 +1447,7 @@ of a window. @smallexample @group (accessible-keymaps (current-global-map)) -@result{} (("" keymap [set-mark-command beginning-of-line @dots{} +@result{} (("" keymap [set-mark-command beginning-of-line @dots{} delete-backward-char]) @end group @group @@ -2240,7 +2240,7 @@ property list elements to add to the menu item specification. To define items in some local map, bind @code{`tool-bar-map} with @code{let} around calls of this function: @example -(defvar foo-tool-bar-map +(defvar foo-tool-bar-map (let ((tool-bar-map (make-sparse-keymap))) (tool-bar-add-item @dots{}) @dots{} diff --git a/lispref/lists.texi b/lispref/lists.texi index 1894fc3e15c..3235daa1d54 100644 --- a/lispref/lists.texi +++ b/lispref/lists.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/lists @node Lists, Sequences Arrays Vectors, Strings and Characters, Top @@ -498,7 +498,7 @@ This macro provides an alternative way to write It is new in Emacs 21. @example -(setq l '(a b)) +(setq l '(a b)) @result{} (a b) (push 'c l) @result{} (c a b) @@ -738,7 +738,7 @@ destructively. See @ref{Sets And Lists}. @cindex destructive list operations You can modify the @sc{car} and @sc{cdr} contents of a cons cell with the -primitives @code{setcar} and @code{setcdr}. We call these ``destructive'' +primitives @code{setcar} and @code{setcdr}. We call these ``destructive'' operations because they change existing list structure. @cindex CL note---@code{rplaca} vrs @code{setcar} diff --git a/lispref/loading.texi b/lispref/loading.texi index 0292088447c..1880f287df6 100644 --- a/lispref/loading.texi +++ b/lispref/loading.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/loading @node Loading, Byte Compilation, Customization, Top @@ -391,7 +391,7 @@ object, then it is defined as an autoload object like this: (autoload @var{filename} @var{docstring} @var{interactive} @var{type}) @end example -For example, +For example, @example @group @@ -580,7 +580,7 @@ file should call @code{provide} at the top level to add the feature to @code{features}; if it fails to do so, @code{require} signals an error. @cindex load error with require - For example, in @file{emacs/lisp/prolog.el}, + For example, in @file{emacs/lisp/prolog.el}, the definition for @code{run-prolog} includes the following code: @smallexample diff --git a/lispref/locals.texi b/lispref/locals.texi index d9565ae3e4b..6d998dabdf6 100644 --- a/lispref/locals.texi +++ b/lispref/locals.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/locals @node Standard Buffer-Local Variables, Standard Keymaps, Standard Errors, Top diff --git a/lispref/macros.texi b/lispref/macros.texi index a62b1838bf5..3c91e5bb317 100644 --- a/lispref/macros.texi +++ b/lispref/macros.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/macros @node Macros, Customization, Functions, Top @@ -446,7 +446,7 @@ macro. Here is a correct expansion for the @code{for} macro: @end group @end smallexample -Here is a macro definition that creates this expansion: +Here is a macro definition that creates this expansion: @smallexample @group diff --git a/lispref/maps.texi b/lispref/maps.texi index 06ac5c47fc1..8a529e81d2f 100644 --- a/lispref/maps.texi +++ b/lispref/maps.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/maps @node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top diff --git a/lispref/markers.texi b/lispref/markers.texi index 508955e39df..dec9396a787 100644 --- a/lispref/markers.texi +++ b/lispref/markers.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/markers @node Markers, Text, Positions, Top @@ -595,7 +595,7 @@ marks of the current buffer, most recent first. @example @group mark-ring -@result{} (#<marker at 11050 in markers.texi> +@result{} (#<marker at 11050 in markers.texi> #<marker at 10832 in markers.texi> @dots{}) @end group diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi index d5e57d79327..58ffd6d1a93 100644 --- a/lispref/minibuf.texi +++ b/lispref/minibuf.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/minibuf @node Minibuffers, Command Loop, Read and Print, Top @@ -374,7 +374,7 @@ text which is a valid form already: @group (edit-and-eval-command "Please edit: " '(forward-word 1)) -;; @r{After evaluation of the preceding expression,} +;; @r{After evaluation of the preceding expression,} ;; @r{the following appears in the minibuffer:} @end group @@ -582,7 +582,7 @@ is @code{t}. @smallexample @group -(try-completion +(try-completion "foo" '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))) @result{} "fooba" @@ -612,14 +612,14 @@ too short). Both of those begin with the string @samp{foobar}. @smallexample @group -(defun test (s) +(defun test (s) (> (length (car s)) 6)) @result{} test @end group @group -(try-completion +(try-completion "foo" - '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) + '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) 'test) @result{} "foobar" @end group @@ -642,13 +642,13 @@ example for @code{try-completion}: @smallexample @group -(defun test (s) +(defun test (s) (> (length (car s)) 6)) @result{} test @end group @group -(all-completions +(all-completions "foo" '(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4)) 'test) @@ -658,7 +658,7 @@ example for @code{try-completion}: @end defun @defvar completion-ignore-case -If the value of this variable is +If the value of this variable is non-@code{nil}, Emacs does not consider case significant in completion. @end defvar @@ -738,7 +738,7 @@ Here's an example of using @code{completing-read}: @end group @group -;; @r{After evaluation of the preceding expression,} +;; @r{After evaluation of the preceding expression,} ;; @r{the following appears in the minibuffer:} ---------- Buffer: Minibuffer ---------- @@ -923,7 +923,7 @@ only buffer name starting with the given input is @example (read-buffer "Buffer name? " "foo" t) @group -;; @r{After evaluation of the preceding expression,} +;; @r{After evaluation of the preceding expression,} ;; @r{the following prompt appears,} ;; @r{with an empty minibuffer:} @end group @@ -965,13 +965,13 @@ enters null input, the return value is @code{nil}. (read-command "Command name? ") @group -;; @r{After evaluation of the preceding expression,} +;; @r{After evaluation of the preceding expression,} ;; @r{the following prompt appears with an empty minibuffer:} @end group @group ----------- Buffer: Minibuffer ---------- -Command name? +---------- Buffer: Minibuffer ---------- +Command name? ---------- Buffer: Minibuffer ---------- @end group @end example @@ -990,7 +990,7 @@ complete in the set of extant Lisp symbols, and it uses the @group (read-command @var{prompt}) @equiv{} -(intern (completing-read @var{prompt} obarray +(intern (completing-read @var{prompt} obarray 'commandp t nil)) @end group @end example @@ -1010,8 +1010,8 @@ user enters null input, the return value is @code{nil}. @group (read-variable "Variable name? ") -;; @r{After evaluation of the preceding expression,} -;; @r{the following prompt appears,} +;; @r{After evaluation of the preceding expression,} +;; @r{the following prompt appears,} ;; @r{with an empty minibuffer:} @end group @@ -1080,13 +1080,13 @@ case, point goes at the beginning of @var{initial}. The default for @var{initial} does, try the command @kbd{C-x C-v}. @strong{Note:} we recommend using @var{default} rather than @var{initial} in most cases. -Here is an example: +Here is an example: @example @group (read-file-name "The file is ") -;; @r{After evaluation of the preceding expression,} +;; @r{After evaluation of the preceding expression,} ;; @r{the following appears in the minibuffer:} @end group @@ -1275,13 +1275,13 @@ invalid. At the next prompt the user types @kbd{y}. @group (y-or-n-p "Do you need a lift? ") -;; @r{After evaluation of the preceding expression,} +;; @r{After evaluation of the preceding expression,} ;; @r{the following prompt appears in the echo area:} @end group @group ---------- Echo area ---------- -Do you need a lift? (y or n) +Do you need a lift? (y or n) ---------- Echo area ---------- @end group @@ -1289,7 +1289,7 @@ Do you need a lift? (y or n) @group ---------- Echo area ---------- -Please answer y or n. Do you need a lift? (y or n) +Please answer y or n. Do you need a lift? (y or n) ---------- Echo area ---------- @end group @@ -1335,14 +1335,14 @@ Here is an example: @group (yes-or-no-p "Do you really want to remove everything? ") -;; @r{After evaluation of the preceding expression,} -;; @r{the following prompt appears,} +;; @r{After evaluation of the preceding expression,} +;; @r{the following prompt appears,} ;; @r{with an empty minibuffer:} @end group @group ---------- Buffer: minibuffer ---------- -Do you really want to remove everything? (yes or no) +Do you really want to remove everything? (yes or no) ---------- Buffer: minibuffer ---------- @end group @end smallexample diff --git a/lispref/modes.texi b/lispref/modes.texi index af38062706c..201e9ad3dc6 100644 --- a/lispref/modes.texi +++ b/lispref/modes.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/modes @node Modes, Documentation, Keymaps, Top @@ -99,7 +99,7 @@ Fundamental mode. Rmail mode is a complicated and specialized mode. * Example Major Modes:: Text mode and Lisp modes. * Auto Major Mode:: How Emacs chooses the major mode automatically. * Mode Help:: Finding out how to use a mode. -* Derived Modes:: Defining a new major mode based on another major +* Derived Modes:: Defining a new major mode based on another major mode. @end menu @@ -253,7 +253,7 @@ variable local to every buffer in which it is subsequently set, which would affect buffers that do not use this mode. It is undesirable for a mode to have such global effects. @xref{Buffer-Local Variables}. -With rare exceptions, the only reasonable way to use +With rare exceptions, the only reasonable way to use @code{make-variable-buffer-local} in a Lisp package is for a variable which is used only within that package. Using it on a variable used by other packages would interfere with them. @@ -324,7 +324,7 @@ the conventions listed above: @smallexample @group ;; @r{Create mode-specific tables.} -(defvar text-mode-syntax-table nil +(defvar text-mode-syntax-table nil "Syntax table used while in text mode.") @end group @@ -403,7 +403,7 @@ correspondingly more complicated. Here are excerpts from @smallexample @group ;; @r{Create mode-specific table variables.} -(defvar lisp-mode-syntax-table nil "") +(defvar lisp-mode-syntax-table nil "") (defvar emacs-lisp-mode-syntax-table nil "") (defvar lisp-mode-abbrev-table nil "") @end group @@ -419,7 +419,7 @@ correspondingly more complicated. Here are excerpts from ;; @r{Set syntax of chars up to 0 to class of chars that are} ;; @r{part of symbol names but not words.} ;; @r{(The number 0 is @code{48} in the @sc{ascii} character set.)} - (while (< i ?0) + (while (< i ?0) (modify-syntax-entry i "_ " emacs-lisp-mode-syntax-table) (setq i (1+ i))) @dots{} @@ -513,7 +513,7 @@ And here is the code to set up the keymap for Lisp mode: @end smallexample Finally, here is the complete major mode function definition for -Lisp mode. +Lisp mode. @smallexample @group @@ -601,7 +601,7 @@ the @samp{mode:} local variable near the end of a file; the How Major Modes are Chosen, emacs, The GNU Emacs Manual}. @end defun -@defopt default-major-mode +@defopt default-major-mode This variable holds the default major mode for new buffers. The standard value is @code{fundamental-mode}. @@ -649,7 +649,7 @@ For example, @end group @group ("\\.el\\'" . emacs-lisp-mode) - ("\\.c\\'" . c-mode) + ("\\.c\\'" . c-mode) ("\\.h\\'" . c-mode) @dots{}) @end group @@ -675,11 +675,11 @@ init file.) @smallexample @group (setq auto-mode-alist - (append + (append ;; @r{File name (within directory) starts with a dot.} - '(("/\\.[^/]*\\'" . fundamental-mode) + '(("/\\.[^/]*\\'" . fundamental-mode) ;; @r{File name has no dot.} - ("[^\\./]*\\'" . fundamental-mode) + ("[^\\./]*\\'" . fundamental-mode) ;; @r{File name ends in @samp{.C}.} ("\\.C\\'" . c++-mode)) auto-mode-alist)) @@ -742,7 +742,7 @@ This construct defines @var{variant} as a major mode command, using The new command @var{variant} is defined to call the function @var{parent}, then override certain aspects of that parent mode: -@itemize @bullet +@itemize @bullet @item The new mode has its own keymap, named @code{@var{variant}-map}. @code{define-derived-mode} initializes this map to inherit from @@ -751,25 +751,25 @@ The new mode has its own keymap, named @code{@var{variant}-map}. @item The new mode has its own syntax table, kept in the variable @code{@var{variant}-syntax-table}. -@code{define-derived-mode} initializes this variable by copying +@code{define-derived-mode} initializes this variable by copying @code{@var{parent}-syntax-table}, if it is not already set. @item The new mode has its own abbrev table, kept in the variable @code{@var{variant}-abbrev-table}. -@code{define-derived-mode} initializes this variable by copying +@code{define-derived-mode} initializes this variable by copying @code{@var{parent}-abbrev-table}, if it is not already set. @item The new mode has its own mode hook, @code{@var{variant}-hook}, which it runs in standard fashion as the very last thing that it does. -(The new mode also runs the mode hook of @var{parent} as part +(The new mode also runs the mode hook of @var{parent} as part of calling @var{parent}.) @end itemize In addition, you can specify how to override other aspects of @var{parent} with @var{body}. The command @var{variant} -evaluates the forms in @var{body} after setting up all its usual +evaluates the forms in @var{body} after setting up all its usual overrides, just before running @code{@var{variant}-hook}. The argument @var{docstring} specifies the documentation string for the @@ -1011,7 +1011,7 @@ specifying bindings in this form: @smallexample (define-minor-mode hungry-mode "Toggle Hungry mode. -With no argument, this command toggles the mode. +With no argument, this command toggles the mode. Non-null prefix argument turns on the mode. Null prefix argument turns off the mode. @@ -1025,7 +1025,7 @@ See the command \\[hungry-electric-delete]." ;; The minor mode bindings. '(("\C-\^?" . hungry-electric-delete) ("\C-\M-\^?" - . (lambda () + . (lambda () (interactive) (hungry-electric-delete t))))) @end smallexample @@ -1213,22 +1213,22 @@ directory. 'mode-line-mule-info 'mode-line-modified 'mode-line-frame-identification - "%b--" + "%b--" @end group @group ;; @r{Note that this is evaluated while making the list.} ;; @r{It makes a mode line construct which is just a string.} (getenv "HOST") @end group - ":" + ":" 'default-directory " " 'global-mode-string " %[(" '(:eval (mode-line-mode-name)) - 'mode-line-process - 'minor-mode-alist - "%n" + 'mode-line-process + 'minor-mode-alist + "%n" ")%]--" @group '(which-func-mode ("" which-func-format "--")) @@ -1325,9 +1325,9 @@ The default value of @code{minor-mode-alist} is: @group minor-mode-alist @result{} ((vc-mode vc-mode) - (abbrev-mode " Abbrev") - (overwrite-mode overwrite-mode) - (auto-fill-function " Fill") + (abbrev-mode " Abbrev") + (overwrite-mode overwrite-mode) + (auto-fill-function " Fill") (defining-kbd-macro " Def") (isearch-mode isearch-mode)) @end group @@ -1386,8 +1386,8 @@ The default value of @code{default-mode-line-format} is this list: ;; @r{properties to make it mouse-sensitive.} (:eval (mode-line-mode-name)) mode-line-process - minor-mode-alist - "%n" + minor-mode-alist + "%n" ")%]--" @end group @group @@ -2146,7 +2146,7 @@ Used (typically) for built-in function names. @item font-lock-function-name-face @vindex font-lock-function-name-face Used (typically) for the name of a function being defined or declared, -in a function definition or declaration. +in a function definition or declaration. @item font-lock-variable-name-face @vindex font-lock-variable-name-face diff --git a/lispref/nonascii.texi b/lispref/nonascii.texi index fbeedc191c8..de29dd9f3c9 100644 --- a/lispref/nonascii.texi +++ b/lispref/nonascii.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1998, 1999 Free Software Foundation, Inc. +@c Copyright (C) 1998, 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/characters @node Non-ASCII Characters, Searching and Matching, Text, Top diff --git a/lispref/numbers.texi b/lispref/numbers.texi index 534550159c2..b8361d52820 100644 --- a/lispref/numbers.texi +++ b/lispref/numbers.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/numbers @node Numbers, Strings and Characters, Lisp Data Types, Top @@ -40,14 +40,14 @@ minimum range is @minus{}134217728 to 134217727 (28 bits; i.e., @ifnottex -2**27 @end ifnottex -@tex +@tex @math{-2^{27}} @end tex -to +to @ifnottex 2**27 - 1), @end ifnottex -@tex +@tex @math{2^{27}-1}), @end tex but some machines may provide a wider range. Many examples in this @@ -746,7 +746,7 @@ like this (with 8-bit binary numbers): (lsh 3 2) @result{} 12 ;; @r{Decimal 3 becomes decimal 12.} -00000011 @result{} 00001100 +00000011 @result{} 00001100 @end group @end example @@ -757,14 +757,14 @@ On the other hand, shifting one place to the right looks like this: (lsh 6 -1) @result{} 3 ;; @r{Decimal 6 becomes decimal 3.} -00000110 @result{} 00000011 +00000110 @result{} 00000011 @end group @group (lsh 5 -1) @result{} 2 ;; @r{Decimal 5 becomes decimal 2.} -00000101 @result{} 00000010 +00000101 @result{} 00000010 @end group @end example @@ -787,7 +787,7 @@ In binary, in the 28-bit implementation, the argument looks like this: @example @group ;; @r{Decimal 134,217,727} -0111 1111 1111 1111 1111 1111 1111 +0111 1111 1111 1111 1111 1111 1111 @end group @end example @@ -797,7 +797,7 @@ which becomes the following when left shifted: @example @group ;; @r{Decimal @minus{}2} -1111 1111 1111 1111 1111 1111 1110 +1111 1111 1111 1111 1111 1111 1110 @end group @end example @end defun @@ -818,10 +818,10 @@ looks like this: @example @group -(ash -6 -1) @result{} -3 +(ash -6 -1) @result{} -3 ;; @r{Decimal @minus{}6 becomes decimal @minus{}3.} 1111 1111 1111 1111 1111 1111 1010 - @result{} + @result{} 1111 1111 1111 1111 1111 1111 1101 @end group @end example @@ -834,7 +834,7 @@ In contrast, shifting the pattern of bits one place to the right with (lsh -6 -1) @result{} 134217725 ;; @r{Decimal @minus{}6 becomes decimal 134,217,725.} 1111 1111 1111 1111 1111 1111 1010 - @result{} + @result{} 0111 1111 1111 1111 1111 1111 1101 @end group @end example @@ -992,7 +992,7 @@ bit is one in the result if, and only if, the @var{n}th bit is zero in @var{integer}, and vice-versa. @example -(lognot 5) +(lognot 5) @result{} -6 ;; 5 = @r{0000 0000 0000 0000 0000 0000 0101} ;; @r{becomes} diff --git a/lispref/objects.texi b/lispref/objects.texi index 02c11e7b990..66c4f74ae2e 100644 --- a/lispref/objects.texi +++ b/lispref/objects.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/objects @node Lisp Data Types, Numbers, Introduction, Top @@ -248,7 +248,7 @@ with a question mark. The usual read syntax for alphanumeric characters is a question mark followed by the character; thus, @samp{?A} for the character @kbd{A}, @samp{?B} for the character @kbd{B}, and @samp{?a} for the -character @kbd{a}. +character @kbd{a}. For example: @@ -397,7 +397,7 @@ bit to indicate that the shift key was used in typing a control character. This distinction is possible only when you use X terminals or other special terminals; ordinary terminals do not report the distinction to the computer in any way. The Lisp syntax for -the shift bit is @samp{\S-}; thus, @samp{?\C-\S-o} or @samp{?\C-\S-O} +the shift bit is @samp{\S-}; thus, @samp{?\C-\S-o} or @samp{?\C-\S-O} represents the shifted-control-o character. @cindex hyper characters @@ -899,8 +899,8 @@ ignores an escaped newline while reading a string. An escaped space in documentation strings, but the newline is \ ignored if escaped." - @result{} "It is useful to include newlines -in documentation strings, + @result{} "It is useful to include newlines +in documentation strings, but the newline is ignored if escaped." @end example @@ -932,7 +932,7 @@ character to the string, but it does terminate the preceding hex escape. represent a unibyte non-@sc{ascii} character with its character code, which must be in the range from 128 (0200 octal) to 255 (0377 octal). This forces a unibyte string. - + @xref{Text Representations}, for more information about the two text representations. @@ -1071,7 +1071,7 @@ that it begins with @samp{#&} followed by the length. The string constant that follows actually specifies the contents of the bool-vector as a bitmap---each ``character'' in the string contains 8 bits, which specify the next 8 elements of the bool-vector (1 stands for @code{t}, -and 0 for @code{nil}). The least significant bits of the character +and 0 for @code{nil}). The least significant bits of the character correspond to the lowest indices in the bool-vector. If the length is not a multiple of 8, the printed representation shows extra elements, but these extras really make no difference. diff --git a/lispref/permute-index b/lispref/permute-index index b2dfb771f14..bbe2be75cba 100644 --- a/lispref/permute-index +++ b/lispref/permute-index @@ -36,7 +36,7 @@ set MANUAL=elisp # the base name of the manual echo "Extract raw index from texinfo fn index." # Let texindex combine duplicate entries, later. # But it wants to protect non-alphanumerics thus confusing ptx. -# Also change `\ ' to just a ` ', since texindex will fail. This is produced +# Also change `\ ' to just a ` ', since texindex will fail. This is produced # by `@findex two words' in an example environment (no doubt among others). # delete wrapper parens # change dots {} to dots{} @@ -114,7 +114,7 @@ echo "Sort with texindex." ${TEXINDEX} permuted.fn #mv permuted.fns ${MANUAL}.fns -# The resulting permuted.fns will be read when we run TeX +# The resulting permuted.fns will be read when we run TeX # on the manual the second time. Or you can use permuted.texinfo here. #${TEX} permuted.texinfo diff --git a/lispref/positions.texi b/lispref/positions.texi index 6b9d10e519d..ac5efda9bc9 100644 --- a/lispref/positions.texi +++ b/lispref/positions.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/positions @node Positions, Markers, Frames, Top @@ -631,7 +631,7 @@ beginning of the first screen line. @xref{Minibuffer Misc}. @node List Motion @comment node-name, next, previous, up -@subsection Moving over Balanced Expressions +@subsection Moving over Balanced Expressions @cindex sexp motion @cindex Lisp expression motion @cindex list motion diff --git a/lispref/processes.texi b/lispref/processes.texi index 1ccc449f4e3..5bcd50a582e 100644 --- a/lispref/processes.texi +++ b/lispref/processes.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/processes @node Processes, Display, Abbrevs, Top @@ -108,7 +108,7 @@ must use @var{args} to provide those. specify overrides for it with @code{process-environment}. @xref{System Environment}. -@defvar exec-directory +@defvar exec-directory @pindex movemail The value of this variable is a string, the name of a directory that contains programs that come with GNU Emacs, programs intended for Emacs @@ -355,8 +355,8 @@ inputinput@point{} @smallexample @group -(call-process-region - start end +(call-process-region + start end shell-file-name ; @r{Name of program.} nil ; @r{Do not delete region.} buffer ; @r{Send output to @code{buffer}.} @@ -866,7 +866,7 @@ which is called the associated buffer of the process, or a function called the @dfn{filter function} can be called to act on the output. If the process has no buffer and no filter function, its output is discarded. - + When a subprocess terminates, Emacs reads any pending output, then stops reading output from that subprocess. Therefore, if the subprocess has children that are still live and still producing @@ -1205,7 +1205,7 @@ describing the type of event. The string describing the event looks like one of the following: @itemize @bullet -@item +@item @code{"finished\n"}. @item @@ -1301,7 +1301,7 @@ was not. @end defun @node Query Before Exit -@section Querying Before Exit +@section Querying Before Exit When Emacs exits, it terminates all its subprocesses by sending them the @code{SIGHUP} signal. Because some subprocesses are doing diff --git a/lispref/searching.texi b/lispref/searching.texi index 7f586f8777a..a172332e3a3 100644 --- a/lispref/searching.texi +++ b/lispref/searching.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/searching @node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top @@ -325,7 +325,7 @@ multibyte character @var{c2}, the range is divided into two parts: one is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where @var{c1} is the first character of the charset to which @var{c2} belongs. - + You cannot always match all non-@sc{ascii} characters with the regular expression @code{"[\200-\377]"}. This works when searching a unibyte buffer or string (@pxref{Text Representations}), but not in a multibyte @@ -670,7 +670,7 @@ an @code{invalid-regexp} error is signaled. Here is a complicated regexp, used by Emacs to recognize the end of a sentence together with any whitespace that follows. It is the value of -the variable @code{sentence-end}. +the variable @code{sentence-end}. First, we show the regexp as a string in Lisp syntax to distinguish spaces from tab characters. The string constant begins and ends with a @@ -689,7 +689,7 @@ will see the following: @example @group sentence-end - @result{} "[.?!][]\"')@}]*\\($\\| $\\| \\| \\)[ + @result{} "[.?!][]\"')@}]*\\($\\| $\\| \\| \\)[ ]*" @end group @end example @@ -1325,7 +1325,7 @@ positions within the text: @group (string-match "\\(qu\\)\\(ick\\)" "The quick fox jumped quickly.") - ;0123456789 + ;0123456789 @result{} 4 @end group diff --git a/lispref/sequences.texi b/lispref/sequences.texi index 813d606c30b..8e7ab4176e2 100644 --- a/lispref/sequences.texi +++ b/lispref/sequences.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/sequences @node Sequences Arrays Vectors, Hash Tables, Lists, Top @@ -222,7 +222,7 @@ in the list. Emacs defines four types of array, all one-dimensional: @dfn{strings}, @dfn{vectors}, @dfn{bool-vectors} and @dfn{char-tables}. A vector is a general array; its elements can be any Lisp objects. A string is a -specialized array; its elements must be characters. Each type of array +specialized array; its elements must be characters. Each type of array has its own read syntax. @xref{String Type}, and @ref{Vector Type}. diff --git a/lispref/streams.texi b/lispref/streams.texi index 74f9e43e92c..bddc65a6423 100644 --- a/lispref/streams.texi +++ b/lispref/streams.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/streams @node Read and Print, Minibuffers, Debugging, Top @@ -489,7 +489,7 @@ in reverse order. @group last-output - @result{} (10 34 116 117 112 116 117 111 32 101 104 + @result{} (10 34 116 117 112 116 117 111 32 101 104 116 32 115 105 32 115 105 104 84 34 10) @end group @end example @@ -566,13 +566,13 @@ characters are used. @code{print} returns @var{object}. For example: (progn (print 'The\ cat\ in) (print "the hat") (print " came back")) - @print{} + @print{} @print{} The\ cat\ in - @print{} + @print{} @print{} "the hat" - @print{} + @print{} @print{} " came back" - @print{} + @print{} @result{} " came back" @end group @end example @@ -586,8 +586,8 @@ This function outputs the printed representation of @var{object} to @example @group -(progn (prin1 'The\ cat\ in) - (prin1 "the hat") +(progn (prin1 'The\ cat\ in) + (prin1 "the hat") (prin1 " came back")) @print{} The\ cat\ in"the hat"" came back" @result{} " came back" @@ -771,12 +771,12 @@ exceeding this limit is abbreviated with an ellipsis. A value of @code{nil} (which is the default) means no limit. @end defvar - These variables are used for detecting and reporting circular + These variables are used for detecting and reporting circular and shared structure---but they are only defined in Emacs 21. @tindex print-circle @defvar print-circle -If non-@code{nil}, this variable enables detection of circular +If non-@code{nil}, this variable enables detection of circular and shared structure in printing. @end defvar diff --git a/lispref/strings.texi b/lispref/strings.texi index f35f94b2bc4..0870e0b5369 100644 --- a/lispref/strings.texi +++ b/lispref/strings.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/strings @node Strings and Characters, Lists, Numbers, Top @@ -158,7 +158,7 @@ position up to which the substring is copied. The character whose index is 3 is actually the fourth character in the string. A negative number counts from the end of the string, so that @minus{}1 -signifies the index of the last character of the string. For example: +signifies the index of the last character of the string. For example: @example @group @@ -410,7 +410,7 @@ no characters is less than any other string. (string< "abc" "ab") @result{} nil (string< "" "") - @result{} nil + @result{} nil @end group @end example @end defun @@ -597,7 +597,7 @@ in how they use the result of formatting. @defun format string &rest objects This function returns a new string that is made by copying -@var{string} and then replacing any format specification +@var{string} and then replacing any format specification in the copy with encodings of the corresponding @var{objects}. The arguments @var{objects} are the computed values to be formatted. @@ -707,9 +707,9 @@ operation} error. (format "The buffer object prints as %s." (current-buffer)) @result{} "The buffer object prints as strings.texi." -(format "The octal value of %d is %o, +(format "The octal value of %d is %o, and the hex value is %x." 18 18 18) - @result{} "The octal value of 18 is 22, + @result{} "The octal value of 18 is 22, and the hex value is 12." @end group @end example @@ -745,32 +745,32 @@ only 3 letters, so 4 blank spaces are inserted for padding. In the second case, the string @code{"specification"} is 13 letters wide but is not truncated. In the third case, the padding is on the right. -@smallexample +@smallexample @group (format "The word `%7s' actually has %d letters in it." "foo" (length "foo")) - @result{} "The word ` foo' actually has 3 letters in it." + @result{} "The word ` foo' actually has 3 letters in it." @end group @group (format "The word `%7s' actually has %d letters in it." - "specification" (length "specification")) - @result{} "The word `specification' actually has 13 letters in it." + "specification" (length "specification")) + @result{} "The word `specification' actually has 13 letters in it." @end group @group (format "The word `%-7s' actually has %d letters in it." "foo" (length "foo")) - @result{} "The word `foo ' actually has 3 letters in it." + @result{} "The word `foo ' actually has 3 letters in it." @end group @end smallexample @node Case Conversion -@comment node-name, next, previous, up +@comment node-name, next, previous, up @section Case Conversion in Lisp -@cindex upper case -@cindex lower case -@cindex character case +@cindex upper case +@cindex lower case +@cindex character case @cindex case conversion in Lisp The character case functions change the case of single characters or diff --git a/lispref/symbols.texi b/lispref/symbols.texi index e9459de708c..ae4dffec89c 100644 --- a/lispref/symbols.texi +++ b/lispref/symbols.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/symbols @node Symbols, Evaluation, Hash Tables, Top diff --git a/lispref/syntax.texi b/lispref/syntax.texi index 0d7c1cd0364..07aca71e94e 100644 --- a/lispref/syntax.texi +++ b/lispref/syntax.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/syntax @node Syntax Tables, Abbrevs, Searching and Matching, Top @@ -664,36 +664,36 @@ The result is a list of nine elements describing the final state of the parse: @enumerate 0 -@item +@item The depth in parentheses, counting from 0. -@item +@item @cindex innermost containing parentheses The character position of the start of the innermost parenthetical grouping containing the stopping point; @code{nil} if none. -@item +@item @cindex previous complete subexpression The character position of the start of the last complete subexpression terminated; @code{nil} if none. -@item +@item @cindex inside string Non-@code{nil} if inside a string. More precisely, this is the character that will terminate the string, or @code{t} if a generic string delimiter character should terminate it. -@item +@item @cindex inside comment @code{t} if inside a comment (of either style), or the comment nesting level if inside a kind of comment that can be nested. -@item +@item @cindex quote character @code{t} if point is just after a quote character. -@item +@item The minimum parenthesis depth encountered during this scan. @item diff --git a/lispref/text.texi b/lispref/text.texi index 2544e4d2ce9..cd4140dd220 100644 --- a/lispref/text.texi +++ b/lispref/text.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/text @node Text, Non-ASCII Characters, Markers, Top @@ -429,7 +429,7 @@ Do not try substituting your own definition of loop handles this function specially. @end deffn -@deffn Command newline &optional number-of-newlines +@deffn Command newline &optional number-of-newlines This command inserts newlines into the current buffer before point. If @var{number-of-newlines} is supplied, that many newline characters are inserted. @@ -614,7 +614,7 @@ You thought @end example @end deffn -@deffn Command delete-indentation &optional join-following-p +@deffn Command delete-indentation &optional join-following-p This function joins the line point is on to the previous line, deleting any whitespace at the join and in some cases replacing it with one space. If @var{join-following-p} is non-@code{nil}, @@ -945,7 +945,7 @@ selection from the newly killed text. @xref{Window System Selections}. The variable @code{kill-ring} holds the kill ring contents, in the form of a list of strings. The most recent kill is always at the front -of the list. +of the list. The @code{kill-ring-yank-pointer} variable points to a link in the kill ring list, whose @sc{car} is the text to yank next. We say it @@ -970,7 +970,7 @@ rotate the ring so that the newly killed text is at the front. Here is a diagram that shows the variable @code{kill-ring-yank-pointer} pointing to the second entry in the kill ring @code{("some text" "a -different piece of text" "yet older text")}. +different piece of text" "yet older text")}. @example @group @@ -980,11 +980,11 @@ kill-ring ---- kill-ring-yank-pointer | --- --- --- --- --- --- --> | | |------> | | |--> | | |--> nil --- --- --- --- --- --- - | | | - | | | - | | -->"yet older text" + | | | + | | | + | | -->"yet older text" | | - | --> "a different piece of text" + | --> "a different piece of text" | --> "some text" @end group @@ -1040,7 +1040,7 @@ to record where point was before the command. @item (@var{beg} . @var{end}) This kind of element indicates how to delete text that was inserted. -Upon insertion, the text occupied the range @var{beg}--@var{end} in the +Upon insertion, the text occupied the range @var{beg}--@var{end} in the buffer. @item (@var{text} . @var{position}) @@ -2123,7 +2123,7 @@ interactively. These commands, primarily for interactive use, act based on the indentation in the text. -@deffn Command back-to-indentation +@deffn Command back-to-indentation @comment !!SourceFile simple.el This command moves point to the first non-whitespace character in the current line (which is the line in which point is located). It returns @@ -2509,7 +2509,7 @@ properties are not identical to those of the character just after @var{pos}. If @var{limit} is non-@code{nil}, then the scan ends at position -@var{limit}. If there is no property change before that point, +@var{limit}. If there is no property change before that point, @code{next-property-change} returns @var{limit}. The value is @code{nil} if the properties remain unchanged all the way @@ -2540,7 +2540,7 @@ returns the position of the first character beyond @var{pos} whose @var{pos}. If @var{limit} is non-@code{nil}, then the scan ends at position -@var{limit}. If there is no property change before that point, +@var{limit}. If there is no property change before that point, @code{next-single-property-change} returns @var{limit}. The value is @code{nil} if the property remains unchanged all the way to @@ -3052,7 +3052,7 @@ uses may be possible. We invite users to write Lisp programs to store and retrieve text properties in files, using these hooks, and thus to experiment with -various data formats and find good ones. Eventually we hope users +various data formats and find good ones. Eventually we hope users will produce good, general extensions we can install in Emacs. We suggest not trying to handle arbitrary Lisp objects as text property diff --git a/lispref/tindex.pl b/lispref/tindex.pl index c138f5d66f1..459a2b72e84 100755 --- a/lispref/tindex.pl +++ b/lispref/tindex.pl @@ -52,7 +52,7 @@ my $help = 0; my $version = 0; my $old; -my $rc = GetOptions ('help' => \$help, 'version' => \$version, +my $rc = GetOptions ('help' => \$help, 'version' => \$version, 'old=s' => \$old); if ($version) { print "0.1\n"; @@ -86,14 +86,14 @@ foreach $file (@old_files) { close IN; } -# Process current files and remove those @tindex lines which we +# Process current files and remove those @tindex lines which we # know were already present in the files scanned above. print "Removing old \@tindex lines\n"; foreach $file (@new_files) { my $modified = 0; my $contents = ""; - + open (IN, "< $file") or fatal "Cannot open $file.orig for reading: $!"; while (<IN>) { if (/^\s*\@tindex\s+(\S+)/ && $tindex{$1}) { @@ -103,7 +103,7 @@ foreach $file (@new_files) { $contents = $contents . $_; } } - + close IN; if ($modified) { diff --git a/lispref/tips.texi b/lispref/tips.texi index 4eb0e3f7005..592a0015e75 100644 --- a/lispref/tips.texi +++ b/lispref/tips.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/tips @node Tips, GNU Emacs Internals, GPL, Top @@ -435,7 +435,7 @@ can be worth rearranging a data structure so that one of these primitive search functions can be used. @item -Certain built-in functions are handled specially in byte-compiled code, +Certain built-in functions are handled specially in byte-compiled code, avoiding the need for an ordinary function call. It is a good idea to use these functions rather than alternatives. To see whether a function is handled specially by the compiler, examine its @code{byte-compile} @@ -537,7 +537,7 @@ In Dired, visit the file or directory named on this line. @item Do not start or end a documentation string with whitespace. - + @item @strong{Do not} indent subsequent lines of a documentation string so that the text is lined up in the source code with the text of the first diff --git a/lispref/two-volume-cross-refs.txt b/lispref/two-volume-cross-refs.txt index b3fb7a665f4..f21028f1f32 100644 --- a/lispref/two-volume-cross-refs.txt +++ b/lispref/two-volume-cross-refs.txt @@ -28,7 +28,7 @@ and in Volume II: list motion .........117 All other references and the table of contents work the same way. I -find this *very* helpful. +find this *very* helpful. In brief: you run tex on a .texi file with @@ -126,16 +126,16 @@ Create volume specific .toc files with volume numbers in them. % cp elisp-toc-2vol.toc elisp1-toc.toc % cp elisp-toc-2vol.toc elisp2-toc.toc -Use keyboard macro to put I: in first half of elisp1-toc.toc and +Use keyboard macro to put I: in first half of elisp1-toc.toc and II: in first half of elisp2-toc.toc Copy the tocs to something you can remember more easily -% cp elisp2-toc.toc elisp1-toc-ready.toc -% cp elisp1-toc.toc elisp2-toc-ready.toc +% cp elisp2-toc.toc elisp1-toc-ready.toc +% cp elisp1-toc.toc elisp2-toc-ready.toc -Then, edit vol1.texi to input elisp1-toc-ready.toc -and vol2.texi to input elisp2-toc-ready.toc +Then, edit vol1.texi to input elisp1-toc-ready.toc +and vol2.texi to input elisp2-toc-ready.toc ### Now format the two volumes: @@ -217,7 +217,7 @@ Then insert marked file into other volume's .aux file." (defun volume-index-markup (arg) "Prepend `NUMBER:' to page number. Use Roman Numeral. -Apply only to unsorted index file, +Apply only to unsorted index file, Then insert marked file into other volume's unsorted index file. Then run texindex on that file and save." (interactive @@ -236,11 +236,11 @@ The steps: 1. Run TeX, texindex and TeX on file1. 2. Run TeX, texindex and TeX on file2. -3. Copy both .aux files into specially named files +3. Copy both .aux files into specially named files -4. In the case of the elisp ref manual, +4. In the case of the elisp ref manual, - copy the *unsorted* function index files into specially named files + copy the *unsorted* function index files into specially named files (no other index used in elisp ref manual) @@ -249,7 +249,7 @@ The steps: Run a function on the specially named .aux files to label each entry according to volume. Save these files. - i.e., convert + i.e., convert 'xrdef {Special-pg}{7} to 'xrdef {Special-pg}{7, vol.'tie1} 5a.Insert each specially named .aux file into the regular .aux file of diff --git a/lispref/two.el b/lispref/two.el index f8f00bde5b5..bad18d48485 100644 --- a/lispref/two.el +++ b/lispref/two.el @@ -14,7 +14,7 @@ Then insert marked file into other volume's .aux file." (defun volume-index-markup (arg) "Prepend `NUMBER:' to page number. Use Roman Numeral. -Apply only to unsorted index file, +Apply only to unsorted index file, Then insert marked file into other volume's unsorted index file. Then run texindex on that file and save." (interactive @@ -43,7 +43,7 @@ This is for the *Elisp Ref Manual*" (insert "\\unnumbchapentry {Volume 1}{}\n\\unnumbchapentry {}{}\n") (search-forward "\\unnumbchapentry {Index}") (forward-line 1) - (insert + (insert "\\unnumbchapentry {}{}\n\\unnumbchapentry {}{}\n\\unnumbchapentry {}{}\n\\unnumbchapentry {}{}\n\\unnumbchapentry {Volume 2}{}\n\\unnumbchapentry {}{}\n")) diff --git a/lispref/variables.texi b/lispref/variables.texi index 48003e0977a..9b83117f67b 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/variables @node Variables, Functions, Control Structures, Top @@ -207,7 +207,7 @@ Here is an example of this: @code{Z} is bound to the old value of @result{} 2 @end group @group -(let ((Y 1) +(let ((Y 1) (Z Y)) (list Y Z)) @result{} (1 2) @@ -767,7 +767,7 @@ The value of the @code{setq} form is the value of the last @var{form}. x ; @r{@code{x} now has a global value.} @result{} 3 @group -(let ((x 5)) +(let ((x 5)) (setq x 6) ; @r{The local binding of @code{x} is set.} x) @result{} 6 @@ -784,7 +784,7 @@ second @var{symbol} is set, and so on: @group (setq x 10 ; @r{Notice that @code{x} is set before} y (1+ x)) ; @r{the value of @code{y} is computed.} - @result{} 11 + @result{} 11 @end group @end example @end defspec @@ -1350,7 +1350,7 @@ then the variable appears directly in the resulting list. (mode-name . "Fundamental") @dots{} @group - ;; @r{Next, non-built-in buffer-local variables.} + ;; @r{Next, non-built-in buffer-local variables.} ;; @r{This one is buffer-local and void:} foobar ;; @r{This one is buffer-local and nonvoid:} diff --git a/lispref/vol1.texi b/lispref/vol1.texi index ddd4f776013..795d3974b2e 100644 --- a/lispref/vol1.texi +++ b/lispref/vol1.texi @@ -23,7 +23,7 @@ @c \overfullrule=0pt @c end tex -@c Start volume 1 chapter numbering on chapter 1; +@c Start volume 1 chapter numbering on chapter 1; @c this must be listed as chapno 0. @tex \global\chapno=0 @@ -87,18 +87,18 @@ @c ----- @c [163] [164] [165] [166]) (loading.texi Chapter 13 [167] [168] [169] @c Overfull \hbox (20.5428pt too wide) in paragraph at lines 131--131 -@c []@ninett +@c []@ninett @c setenv EMAC-SLOAD-PATH .:/user/bil/emacs:/usr/local/lib/emacs/lisp[] @c ----- @c (minibuf.texi Chapter 17 [206] [207] [208] [209] [210] [211] [212] [213] @c [214] [215] @c Overfull \hbox (2.09094pt too wide) in paragraph at lines 550--560 -@c @texttt map[] @textrm if @textsl require-match @textrm is -@c @texttt nil[]@textrm , or else with the keymap @texttt minibuffer- +@c @texttt map[] @textrm if @textsl require-match @textrm is +@c @texttt nil[]@textrm , or else with the keymap @texttt minibuffer- @c ----- @c (locals.texi Appendix @char 68 [533] [534] @c Underfull \hbox (badness 2512) in paragraph at lines 4--4 -@c []@chaprm Appendix DStandard Buffer-Local +@c []@chaprm Appendix DStandard Buffer-Local @c ------------------------------------------------------------------- @@ -186,11 +186,11 @@ instead of in the original English. @sp 2 @center @titlefont{Volume 1} @sp 3 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @page @vskip 0pt plus 1filll -Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. @sp 2 Edition 2.4 @* @@ -325,8 +325,8 @@ Conventions Format of Descriptions -* A Sample Function Description:: -* A Sample Variable Description:: +* A Sample Function Description:: +* A Sample Variable Description:: Lisp Data Types @@ -435,7 +435,7 @@ Evaluation * Intro Eval:: Evaluation in the scheme of things. * Eval:: How to invoke the Lisp interpreter explicitly. * Forms:: How various sorts of objects are evaluated. -* Quoting:: Avoiding evaluation (to put constants in +* Quoting:: Avoiding evaluation (to put constants in the program). Kinds of Forms @@ -488,11 +488,11 @@ Variables Scoping Rules for Variable Bindings -* Scope:: Scope means where in the program a value +* Scope:: Scope means where in the program a value is visible. Comparison with other languages. * Extent:: Extent means how long in time a value exists. * Impl of Scope:: Two ways to implement dynamic scoping. -* Using Scoping:: How to use dynamic scoping carefully and +* Using Scoping:: How to use dynamic scoping carefully and avoid problems. Buffer-Local Variables @@ -510,11 +510,11 @@ Functions * Defining Functions:: Lisp expressions for defining functions. * Calling Functions:: How to use an existing function. * Mapping Functions:: Applying a function to each element of a list, etc. -* Anonymous Functions:: Lambda-expressions are functions with no names. +* Anonymous Functions:: Lambda-expressions are functions with no names. * Function Cells:: Accessing or setting the function definition of a symbol. * Related Topics:: Cross-references to specific Lisp primitives - that have a special bearing on how + that have a special bearing on how functions work. Lambda Expressions @@ -550,10 +550,10 @@ Debugging Lisp Programs * Debugger:: How the Emacs Lisp debugger is implemented. * Syntax Errors:: How to find syntax errors. -* Compilation Errors:: How to find errors that show up in +* Compilation Errors:: How to find errors that show up in byte compilation. * Edebug:: A source-level Emacs Lisp debugger. - + The Lisp Debugger * Error Debugging:: Entering the debugger when an error happens. @@ -572,10 +572,10 @@ Debugging Invalid Lisp Syntax Reading and Printing Lisp Objects * Streams Intro:: Overview of streams, reading and printing. -* Input Streams:: Various data types that can be used as +* Input Streams:: Various data types that can be used as input streams. * Input Functions:: Functions to read Lisp objects from text. -* Output Streams:: Various data types that can be used as +* Output Streams:: Various data types that can be used as output streams. * Output Functions:: Functions to print Lisp objects as text. @@ -647,7 +647,7 @@ Major and Minor Modes * Major Modes:: Defining major modes. * Minor Modes:: Defining minor modes. * Mode Line Format:: Customizing the text that appears in the mode line. -* Hooks:: How to use hooks; how to write code that +* Hooks:: How to use hooks; how to write code that provides hooks. Major Modes @@ -707,7 +707,7 @@ File Names * File Name Components:: The directory part of a file name, and the rest. * Directory Names:: A directory's name as a directory is different from its name as a file. -* Relative File Names:: Some file names are relative to a +* Relative File Names:: Some file names are relative to a current directory. * File Name Expansion:: Converting relative file names to absolute ones. * Unique File Names:: Generating names for temporary files. @@ -715,17 +715,17 @@ File Names Backups and Auto-Saving -* Backup Files:: How backup files are made; how their names +* Backup Files:: How backup files are made; how their names are chosen. * Auto-Saving:: How auto-save files are made; how their names are chosen. -* Reverting:: @code{revert-buffer}, and how to customize +* Reverting:: @code{revert-buffer}, and how to customize what it does. Backup Files * Making Backups:: How Emacs makes backup files, and when. -* Rename or Copy:: Two alternatives: renaming the old file +* Rename or Copy:: Two alternatives: renaming the old file or copying it. * Numbered Backups:: Keeping multiple backups for each source file. * Backup Names:: How backup file names are computed; customization. @@ -759,7 +759,7 @@ Windows and choosing a window for it. * Window Point:: Each window has its own location of point. * Window Start:: The display-start position controls which text - is on-screen in the window. + is on-screen in the window. * Vertical Scrolling:: Moving text up and down in the window. * Horizontal Scrolling:: Moving text sideways on the window. * Size of Window:: Accessing the size of a window. @@ -815,7 +815,7 @@ Markers * Predicates on Markers:: Testing whether an object is a marker. * Creating Markers:: Making empty markers or markers at certain places. * Information from Markers:: Finding the marker's buffer or character - position. + position. * Changing Markers:: Moving the marker to a new buffer or position. * The Mark:: How ``the mark'' is implemented with a marker. * The Region:: How to access ``the region''. @@ -841,7 +841,7 @@ Text * Substitution:: Replacing a given character wherever it appears. * Registers:: How registers are implemented. Accessing the text or position stored in a register. - + The Kill Ring * Kill Ring Concepts:: What text looks like in the kill ring. diff --git a/lispref/vol2.texi b/lispref/vol2.texi index 93e677ced58..349a886324f 100644 --- a/lispref/vol2.texi +++ b/lispref/vol2.texi @@ -23,7 +23,7 @@ @c \overfullrule=0pt @c end tex -@c Start volume 2 chapter numbering on chapter 21; +@c Start volume 2 chapter numbering on chapter 21; @c this must be listed as chapno 20. @tex \global\chapno=20 @@ -87,18 +87,18 @@ @c ----- @c [163] [164] [165] [166]) (loading.texi Chapter 13 [167] [168] [169] @c Overfull \hbox (20.5428pt too wide) in paragraph at lines 131--131 -@c []@ninett +@c []@ninett @c setenv EMAC-SLOAD-PATH .:/user/bil/emacs:/usr/local/lib/emacs/lisp[] @c ----- @c (minibuf.texi Chapter 17 [206] [207] [208] [209] [210] [211] [212] [213] @c [214] [215] @c Overfull \hbox (2.09094pt too wide) in paragraph at lines 550--560 -@c @texttt map[] @textrm if @textsl require-match @textrm is -@c @texttt nil[]@textrm , or else with the keymap @texttt minibuffer- +@c @texttt map[] @textrm if @textsl require-match @textrm is +@c @texttt nil[]@textrm , or else with the keymap @texttt minibuffer- @c ----- @c (locals.texi Appendix @char 68 [533] [534] @c Underfull \hbox (badness 2512) in paragraph at lines 4--4 -@c []@chaprm Appendix DStandard Buffer-Local +@c []@chaprm Appendix DStandard Buffer-Local @c ------------------------------------------------------------------- @@ -186,11 +186,11 @@ instead of in the original English. @sp 2 @center @titlefont{Volume 2} @sp 3 -@center by Bil Lewis, Dan LaLiberte, +@center by Bil Lewis, Dan LaLiberte, @center and the GNU Manual Group @page @vskip 0pt plus 1filll -Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. @sp 2 Edition 2.4 @* @@ -325,8 +325,8 @@ Conventions Format of Descriptions -* A Sample Function Description:: -* A Sample Variable Description:: +* A Sample Function Description:: +* A Sample Variable Description:: Lisp Data Types @@ -435,7 +435,7 @@ Evaluation * Intro Eval:: Evaluation in the scheme of things. * Eval:: How to invoke the Lisp interpreter explicitly. * Forms:: How various sorts of objects are evaluated. -* Quoting:: Avoiding evaluation (to put constants in +* Quoting:: Avoiding evaluation (to put constants in the program). Kinds of Forms @@ -488,11 +488,11 @@ Variables Scoping Rules for Variable Bindings -* Scope:: Scope means where in the program a value +* Scope:: Scope means where in the program a value is visible. Comparison with other languages. * Extent:: Extent means how long in time a value exists. * Impl of Scope:: Two ways to implement dynamic scoping. -* Using Scoping:: How to use dynamic scoping carefully and +* Using Scoping:: How to use dynamic scoping carefully and avoid problems. Buffer-Local Variables @@ -510,11 +510,11 @@ Functions * Defining Functions:: Lisp expressions for defining functions. * Calling Functions:: How to use an existing function. * Mapping Functions:: Applying a function to each element of a list, etc. -* Anonymous Functions:: Lambda-expressions are functions with no names. +* Anonymous Functions:: Lambda-expressions are functions with no names. * Function Cells:: Accessing or setting the function definition of a symbol. * Related Topics:: Cross-references to specific Lisp primitives - that have a special bearing on how + that have a special bearing on how functions work. Lambda Expressions @@ -550,10 +550,10 @@ Debugging Lisp Programs * Debugger:: How the Emacs Lisp debugger is implemented. * Syntax Errors:: How to find syntax errors. -* Compilation Errors:: How to find errors that show up in +* Compilation Errors:: How to find errors that show up in byte compilation. * Edebug:: A source-level Emacs Lisp debugger. - + The Lisp Debugger * Error Debugging:: Entering the debugger when an error happens. @@ -572,10 +572,10 @@ Debugging Invalid Lisp Syntax Reading and Printing Lisp Objects * Streams Intro:: Overview of streams, reading and printing. -* Input Streams:: Various data types that can be used as +* Input Streams:: Various data types that can be used as input streams. * Input Functions:: Functions to read Lisp objects from text. -* Output Streams:: Various data types that can be used as +* Output Streams:: Various data types that can be used as output streams. * Output Functions:: Functions to print Lisp objects as text. @@ -647,7 +647,7 @@ Major and Minor Modes * Major Modes:: Defining major modes. * Minor Modes:: Defining minor modes. * Mode Line Format:: Customizing the text that appears in the mode line. -* Hooks:: How to use hooks; how to write code that +* Hooks:: How to use hooks; how to write code that provides hooks. Major Modes @@ -707,7 +707,7 @@ File Names * File Name Components:: The directory part of a file name, and the rest. * Directory Names:: A directory's name as a directory is different from its name as a file. -* Relative File Names:: Some file names are relative to a +* Relative File Names:: Some file names are relative to a current directory. * File Name Expansion:: Converting relative file names to absolute ones. * Unique File Names:: Generating names for temporary files. @@ -715,17 +715,17 @@ File Names Backups and Auto-Saving -* Backup Files:: How backup files are made; how their names +* Backup Files:: How backup files are made; how their names are chosen. * Auto-Saving:: How auto-save files are made; how their names are chosen. -* Reverting:: @code{revert-buffer}, and how to customize +* Reverting:: @code{revert-buffer}, and how to customize what it does. Backup Files * Making Backups:: How Emacs makes backup files, and when. -* Rename or Copy:: Two alternatives: renaming the old file +* Rename or Copy:: Two alternatives: renaming the old file or copying it. * Numbered Backups:: Keeping multiple backups for each source file. * Backup Names:: How backup file names are computed; customization. @@ -759,7 +759,7 @@ Windows and choosing a window for it. * Window Point:: Each window has its own location of point. * Window Start:: The display-start position controls which text - is on-screen in the window. + is on-screen in the window. * Vertical Scrolling:: Moving text up and down in the window. * Horizontal Scrolling:: Moving text sideways on the window. * Size of Window:: Accessing the size of a window. @@ -815,7 +815,7 @@ Markers * Predicates on Markers:: Testing whether an object is a marker. * Creating Markers:: Making empty markers or markers at certain places. * Information from Markers:: Finding the marker's buffer or character - position. + position. * Changing Markers:: Moving the marker to a new buffer or position. * The Mark:: How ``the mark'' is implemented with a marker. * The Region:: How to access ``the region''. @@ -841,7 +841,7 @@ Text * Substitution:: Replacing a given character wherever it appears. * Registers:: How registers are implemented. Accessing the text or position stored in a register. - + The Kill Ring * Kill Ring Concepts:: What text looks like in the kill ring. diff --git a/lispref/windows.texi b/lispref/windows.texi index 4d7008607b9..1fc7a7e5022 100644 --- a/lispref/windows.texi +++ b/lispref/windows.texi @@ -1685,7 +1685,7 @@ If @var{window} is @code{nil}, the function uses the selected window. @tindex window-body-height @defun window-body-height &optional window -Like @code{window-height} but the value does not include the +Like @code{window-height} but the value does not include the mode line (if any) or the header line (if any). @end defun diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index d5e6dadbeb4..52da2ebc2de 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -872,13 +872,13 @@ * xlwmenu.c: Add #include <X11/ObjectP.h> for X11R4. -1994-09-18 Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr> +1994-09-18 Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr> * lwlib-Xm.c (make_dialog): When there is more than two pushbuttons, set XmPACK_TIGHT and XmHORIZONTAL to the rowcolumn. Also add a margin of 10 pixels. -1994-09-16 Paul Reilly <pmr@geech.gnu.ai.mit.edu> +1994-09-16 Paul Reilly <pmr@geech.gnu.ai.mit.edu> * lwlib-Xm.c (make_main): New function to support toolkit independent creation of the main Emacs widget. diff --git a/lwlib/lwlib-Xaw.c b/lwlib/lwlib-Xaw.c index 058899a9277..3ffc0d62f2b 100644 --- a/lwlib/lwlib-Xaw.c +++ b/lwlib/lwlib-Xaw.c @@ -3,13 +3,13 @@ This file is part of the Lucid Widget Library. -The Lucid Widget Library is free software; you can redistribute it and/or +The Lucid Widget Library 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 1, or (at your option) any later version. The Lucid Widget Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of +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. @@ -356,7 +356,7 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, ra I want the separator to take up the slack between the buttons on the right and the buttons on the left (that is I want the buttons after the separator to be packed against the right edge of the - window) but I can't seem to make it do it. + window) but I can't seem to make it do it. */ ac = 0; XtSetArg (av [ac], XtNfromHoriz, button); ac++; @@ -440,7 +440,7 @@ xaw_create_dialog (instance) shell_name = "Question"; break; } - + total_buttons = name [1] - '0'; if (name [3] == 'T' || name [3] == 't') @@ -450,9 +450,9 @@ xaw_create_dialog (instance) } else if (name [3]) right_buttons = name [4] - '0'; - + left_buttons = total_buttons - right_buttons; - + widget = make_dialog (name, parent, pop_up_p, shell_name, icon_name, text_input_slot, radio_box, list, left_buttons, right_buttons); @@ -619,7 +619,7 @@ xaw_create_scrollbar (instance) Widget scrollbar; XtVaGetValues (instance->parent, XtNwidth, &width, NULL); - + XtSetArg (av[ac], XtNshowGrip, 0); ac++; XtSetArg (av[ac], XtNresizeToPreferred, 1); ac++; XtSetArg (av[ac], XtNallowResize, True); ac++; diff --git a/lwlib/lwlib-Xaw.h b/lwlib/lwlib-Xaw.h index 88f9114a237..6c9d7335752 100644 --- a/lwlib/lwlib-Xaw.h +++ b/lwlib/lwlib-Xaw.h @@ -5,7 +5,7 @@ extern widget_creation_entry xaw_creation_table []; -Widget +Widget xaw_create_dialog __P ((widget_instance*)); Boolean diff --git a/lwlib/lwlib-Xlw.c b/lwlib/lwlib-Xlw.c index fc59c5652b1..cc1e8f7890f 100644 --- a/lwlib/lwlib-Xlw.c +++ b/lwlib/lwlib-Xlw.c @@ -3,13 +3,13 @@ This file is part of the Lucid Widget Library. -The Lucid Widget Library is free software; you can redistribute it and/or +The Lucid Widget Library 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 1, or (at your option) any later version. The Lucid Widget Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of +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. @@ -162,7 +162,7 @@ xlw_create_popup_menu (instance) Widget popup_shell = XtCreatePopupShell (instance->info->name, overrideShellWidgetClass, instance->parent, NULL, 0); - + Widget widget; Arg al[2]; int ac = 0; @@ -182,7 +182,7 @@ xlw_create_popup_menu (instance) return popup_shell; } -widget_creation_entry +widget_creation_entry xlw_creation_table [] = { {"menubar", xlw_create_menubar}, diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c index f61b72534df..b22c59a7a1c 100644 --- a/lwlib/lwlib-Xm.c +++ b/lwlib/lwlib-Xm.c @@ -3,13 +3,13 @@ This file is part of the Lucid Widget Library. -The Lucid Widget Library is free software; you can redistribute it and/or +The Lucid Widget Library 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 1, or (at your option) any later version. The Lucid Widget Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of +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. @@ -72,7 +72,7 @@ enum do_call_type { pre_activate, selection, no_selection, post_activate }; /* Structures to keep destroyed instances */ -typedef struct _destroyed_instance +typedef struct _destroyed_instance { char* name; char* type; @@ -188,7 +188,7 @@ make_destroyed_instance (name, type, widget, parent, pop_up_p) instance->next = NULL; return instance; } - + static void free_destroyed_instance (instance) destroyed_instance* instance; @@ -210,7 +210,7 @@ Boolean lw_motif_widget_p (widget) Widget widget; { - return + return XtClass (widget) == xmDialogShellWidgetClass || XmIsPrimitive (widget) || XmIsManager (widget) || XmIsGadget (widget); } @@ -222,7 +222,7 @@ resource_motif_string (widget, name) { XtResource resource; XmString result = 0; - + resource.resource_name = name; resource.resource_class = XmCXmString; resource.resource_type = XmRXmString; @@ -254,7 +254,7 @@ destroy_all_children (widget, first_child_to_destroy) XtUnmanageChildren (children + first_child_to_destroy, number - first_child_to_destroy); - /* Unmanage all children and destroy them. They will only be + /* Unmanage all children and destroy them. They will only be really destroyed when we get out of DispatchEvent. */ for (i = first_child_to_destroy; i < number; i++) { @@ -265,7 +265,7 @@ destroy_all_children (widget, first_child_to_destroy) XtCompositeChildren. So get it out of the cascade button and free it. If this child is not a cascade button, then submenu should remain unchanged. */ - XtSetArg (al[0], XmNsubMenuId, &submenu); + XtSetArg (al[0], XmNsubMenuId, &submenu); XtGetValues (children[i], al, 1); if (submenu) { @@ -329,7 +329,7 @@ xm_arm_callback (w, client_data, call_data) the value to update. Menus: - + Emacs fills VAL->name with the text to display in the menu, and sets VAL->value to null. Function make_menu_in_widget creates widgets with VAL->name as resource name. This works because the @@ -371,10 +371,10 @@ xm_update_label (instance, widget, val) XmStringCreateLtoR (val->value, XmSTRING_DEFAULT_CHARSET); XtSetArg (al [ac], XmNlabelString, built_string); ac++; } - + XtSetArg (al [ac], XmNlabelType, XmSTRING); ac++; } - + if (val->key) { key_string = XmStringCreateLtoR (val->key, XmSTRING_DEFAULT_CHARSET); @@ -566,7 +566,7 @@ make_menu_in_widget (instance, widget, val, keep_first_children) XtSetArg (al[ac], XmNsensitive, cur->enabled); ac++; XtSetArg (al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++; XtSetArg (al[ac], XmNuserData, cur->call_data); ac++; - + if (instance->pop_up_p && !cur->contents && !cur->call_data && !lw_separator_p (cur->name, &separator, 1)) { @@ -605,9 +605,9 @@ make_menu_in_widget (instance, widget, val, keep_first_children) XtAddCallback (button, XmNarmCallback, xm_arm_callback, cur); XtAddCallback (button, XmNdisarmCallback, xm_arm_callback, cur); } - + xm_update_label (instance, button, cur); - + /* Add a callback that is called when the button is selected. Toggle buttons don't support XmNactivateCallback, we use XmNvalueChangedCallback in @@ -684,7 +684,7 @@ update_one_menu_entry (instance, widget, val, deep_p) menu = NULL; XtSetArg (al [ac], XmNsubMenuId, &menu); ac++; XtGetValues (widget, al, ac); - + contents = val->contents; if (!menu) @@ -715,8 +715,8 @@ update_one_menu_entry (instance, widget, val, deep_p) else { Widget button; - - /* The current menuitem is a XmPushButtonGadget, it + + /* The current menuitem is a XmPushButtonGadget, it needs to be replaced by a CascadeButtonGadget */ XtDestroyWidget (widget_list[i]); menu = XmCreatePulldownMenu (parent, val->name, NULL, 0); @@ -732,7 +732,7 @@ update_one_menu_entry (instance, widget, val, deep_p) #endif button = XmCreateCascadeButton (parent, val->name, al, ac); xm_update_label (instance, button, val); - + XtAddCallback (button, XmNcascadingCallback, xm_pull_down_callback, (XtPointer)instance); XtManageChild (button); @@ -779,7 +779,7 @@ xm_update_menu (instance, widget, val, deep_p) { if (children) { - for (i = 0, cur = val->contents; + for (i = 0, cur = val->contents; (i < num_children && cur); /* how else to ditch unwanted children ?? - mgd */ i++, cur = cur->next) @@ -867,18 +867,18 @@ xm_update_one_widget (instance, widget, val, deep_p) Boolean deep_p; { WidgetClass class; - + /* Mark as not edited */ val->edited = False; /* Common to all widget types */ XtSetSensitive (widget, val->enabled); XtVaSetValues (widget, XmNuserData, val->call_data, NULL); - + /* Common to all label like widgets */ if (XtIsSubclass (widget, xmLabelWidgetClass)) xm_update_label (instance, widget, val); - + class = XtClass (widget); /* Class specific things */ if (class == xmPushButtonWidgetClass || @@ -900,10 +900,10 @@ xm_update_one_widget (instance, widget, val, deep_p) Boolean radiobox = 0; int ac = 0; Arg al [1]; - + XtSetArg (al [ac], XmNradioBehavior, &radiobox); ac++; XtGetValues (widget, al, ac); - + if (radiobox) xm_update_radiobox (instance, widget, val); else @@ -940,7 +940,7 @@ xm_update_one_value (instance, widget, val) val->call_data = old_wv->call_data; break; } - + if (class == xmToggleButtonWidgetClass || class == xmToggleButtonGadgetClass) { XtVaGetValues (widget, XmNset, &val->selected, NULL); @@ -965,10 +965,10 @@ xm_update_one_value (instance, widget, val) Boolean radiobox = 0; int ac = 0; Arg al [1]; - + XtSetArg (al [ac], XmNradioBehavior, &radiobox); ac++; XtGetValues (widget, al, ac); - + if (radiobox) { CompositeWidget radio = (CompositeWidget)widget; @@ -977,7 +977,7 @@ xm_update_one_value (instance, widget, val) { int set = False; Widget toggle = radio->composite.children [i]; - + XtVaGetValues (toggle, XmNset, &set, NULL); if (set) { @@ -1020,7 +1020,7 @@ xm_update_one_value (instance, widget, val) /* This function is for activating a button from a program. It's wrong because we pass a NULL argument in the call_data which is not Motif compatible. This is used from the XmNdefaultAction callback of the List widgets to - have a double-click put down a dialog box like the button would do. + have a double-click put down a dialog box like the button would do. I could not find a way to do that with accelerators. */ static void @@ -1064,7 +1064,7 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, Arg al[64]; /* Arg List */ int ac; /* Arg Count */ int i; - + if (pop_up_p) { ac = 0; @@ -1089,9 +1089,9 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, n_children = left_buttons + right_buttons + 1; ac = 0; - XtSetArg(al[ac], XmNpacking, n_children == 3? + XtSetArg(al[ac], XmNpacking, n_children == 3? XmPACK_COLUMN: XmPACK_TIGHT); ac++; - XtSetArg(al[ac], XmNorientation, n_children == 3? + XtSetArg(al[ac], XmNorientation, n_children == 3? XmVERTICAL: XmHORIZONTAL); ac++; XtSetArg(al[ac], XmNnumColumns, left_buttons + right_buttons + 1); ac++; XtSetArg(al[ac], XmNmarginWidth, 0); ac++; @@ -1108,7 +1108,7 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightOffset, 13); ac++; row = XmCreateRowColumn (form, "row", al, ac); - + n_children = 0; for (i = 0; i < left_buttons; i++) { @@ -1140,7 +1140,7 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, XtSetArg (al[ac], XmNmappedWhenManaged, FALSE); ac++; children [n_children] = XmCreateLabel (row, "separator_button", al, ac); n_children++; - + for (i = 0; i < right_buttons; i++) { char button_name [16]; @@ -1152,9 +1152,9 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, if (! button) button = children [n_children]; n_children++; } - + XtManageChildren (children, n_children); - + ac = 0; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_NONE); ac++; XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_WIDGET); ac++; @@ -1250,7 +1250,7 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, list activate the default button */ XtAddCallback (value, XmNdefaultActionCallback, activate_button, button); } - + ac = 0; XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++; XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; @@ -1265,7 +1265,7 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; XtSetArg(al[ac], XmNrightOffset, 13); ac++; message = XmCreateLabel (form, "message", al, ac); - + if (list) XtManageChild (value); @@ -1280,7 +1280,7 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, children [i] = icon; i++; children [i] = icon_separator; i++; XtManageChildren (children, i); - + if (text_input_slot || list) { XtInstallAccelerators (value, button); @@ -1291,7 +1291,7 @@ make_dialog (name, parent, pop_up_p, shell_title, icon_name, text_input_slot, XtInstallAccelerators (form, button); XtSetKeyboardFocus (result, button); } - + return result; } @@ -1364,7 +1364,7 @@ recenter_widget (widget) x = (((Position)parent_width) - ((Position)child_width)) / 2; y = (((Position)parent_height) - ((Position)child_height)) / 2; - + XtTranslateCoords (parent, x, y, &x, &y); if (x + child_width > screen_width) @@ -1404,7 +1404,7 @@ recycle_instance (instance) focus = XtNameToWidget (widget, "*button1"); if (focus) XtSetKeyboardFocus (widget, focus); - + /* shrink the separator label back to their original size */ separator = XtNameToWidget (widget, "*separator_button"); if (separator) @@ -1472,7 +1472,7 @@ xm_create_dialog (instance) shell_name = "Question"; break; } - + total_buttons = name [1] - '0'; if (name [3] == 'T' || name [3] == 't') @@ -1482,9 +1482,9 @@ xm_create_dialog (instance) } else if (name [3]) right_buttons = name [4] - '0'; - + left_buttons = total_buttons - right_buttons; - + widget = make_dialog (name, parent, pop_up_p, shell_name, icon_name, text_input_slot, radio_box, list, left_buttons, right_buttons); @@ -1655,7 +1655,7 @@ make_project_display_dialog (widget_instance* instance) #endif /* ENERGIZE */ widget_creation_entry -xm_creation_table [] = +xm_creation_table [] = { {"menubar", make_menubar}, {"popup", make_popup_menu}, @@ -1744,7 +1744,7 @@ xm_popup_menu (widget, event) /* This is so totally ridiculous: there's NO WAY to tell Motif that *any* button can select a menu item. Only one button can have that honor. */ - + char *trans = 0; if (event->xbutton.state & Button5Mask) trans = "<Btn5Down>"; else if (event->xbutton.state & Button4Mask) trans = "<Btn4Down>"; @@ -1754,10 +1754,10 @@ xm_popup_menu (widget, event) if (trans) XtVaSetValues (widget, XmNmenuPost, trans, NULL); } #endif - + XmMenuPosition (widget, (XButtonPressedEvent *) event); } - + XtManageChild (widget); } @@ -1795,12 +1795,12 @@ xm_pop_instance (instance, up) if (up) XtManageChild (widget); else - XtUnmanageChild (widget); + XtUnmanageChild (widget); } } -/* motif callback */ +/* motif callback */ static void do_call (widget, closure, type) @@ -1829,36 +1829,36 @@ do_call (widget, closure, type) user_data = NULL; XtSetArg (al [ac], XmNuserData, &user_data); ac++; XtGetValues (widget, al, ac); - + switch (type) { case pre_activate: if (instance->info->pre_activate_cb) instance->info->pre_activate_cb (widget, id, user_data); break; - + case selection: if (instance->info->selection_cb) instance->info->selection_cb (widget, id, user_data); break; - + case no_selection: if (instance->info->selection_cb) instance->info->selection_cb (widget, id, (XtPointer) -1); break; - + case post_activate: if (instance->info->post_activate_cb) instance->info->post_activate_cb (widget, id, user_data); break; - + default: abort (); } } /* Like lw_internal_update_other_instances except that it does not do - anything if its shell parent is not managed. This is to protect + anything if its shell parent is not managed. This is to protect lw_internal_update_other_instances to dereference freed memory if the widget was ``destroyed'' by caching it in the all_destroyed_instances list */ @@ -1924,7 +1924,7 @@ xm_pull_down_callback (widget, closure, call_data) /* XmNpopdownCallback for MenuShell widgets. WIDGET is the MenuShell, - CLOSURE is a pointer to the widget_instance of the shell, + CLOSURE is a pointer to the widget_instance of the shell, Note that this callback is called for each cascade button in a menu, whether or not its submenu is visible. */ diff --git a/lwlib/lwlib-Xm.h b/lwlib/lwlib-Xm.h index 9d4af609660..79f03139f63 100644 --- a/lwlib/lwlib-Xm.h +++ b/lwlib/lwlib-Xm.h @@ -5,7 +5,7 @@ extern widget_creation_entry xm_creation_table []; -Widget +Widget xm_create_dialog __P ((widget_instance* instance)); Boolean diff --git a/lwlib/lwlib-utils.c b/lwlib/lwlib-utils.c index 5cc39bcca7e..3abff32579a 100644 --- a/lwlib/lwlib-utils.c +++ b/lwlib/lwlib-utils.c @@ -3,13 +3,13 @@ This file is part of the Lucid Widget Library. -The Lucid Widget Library is free software; you can redistribute it and/or +The Lucid Widget Library 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 1, or (at your option) any later version. The Lucid Widget Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of +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. @@ -60,7 +60,7 @@ XtNoClearRefreshWidget (widget) } -/* +/* * Apply a function to all the subwidgets of a given widget recursively. */ void @@ -177,7 +177,7 @@ XtSafelyDestroyWidget (widget) } else XtDestroyWidget (widget); - + #else abort (); #endif diff --git a/lwlib/lwlib.c b/lwlib/lwlib.c index 5f68a365935..624c7589084 100644 --- a/lwlib/lwlib.c +++ b/lwlib/lwlib.c @@ -3,13 +3,13 @@ This file is part of the Lucid Widget Library. -The Lucid Widget Library is free software; you can redistribute it and/or +The Lucid Widget Library 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. The Lucid Widget Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of +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. @@ -101,7 +101,7 @@ static void destroy_one_instance P_ ((widget_instance *)); static void lw_pop_all_widgets P_ ((LWLIB_ID, Boolean)); static Boolean get_one_value P_ ((widget_instance *, widget_value *)); static void show_one_widget_busy P_ ((Widget, Boolean)); - + void lwlib_memset (address, value, length) char *address; @@ -190,7 +190,7 @@ malloc_widget_value () } /* this is analogous to free(). It frees only what was allocated - by malloc_widget_value(), and no substructures. + by malloc_widget_value(), and no substructures. */ void free_widget_value (wv) @@ -251,7 +251,7 @@ copy_widget_value_tree (val, change) change_type change; { widget_value* copy; - + if (!val) return NULL; if (val == (widget_value *) 1) @@ -523,7 +523,7 @@ merge_widget_value (val1, val2, level, change_p) free_widget_value_tree (val1); return NULL; } - + change = NO_CHANGE; if (safe_strcmp (val1->name, val2->name)) @@ -591,7 +591,7 @@ merge_widget_value (val1, val2, level, change_p) merged_contents = merge_widget_value (val1->contents, val2->contents, level - 1, change_p); - + if (val1->contents && !merged_contents) { /* This used to say INVISIBLE_CHANGE, @@ -614,7 +614,7 @@ merge_widget_value (val1, val2, level, change_p) #endif #endif } - + val1->contents = merged_contents; } @@ -640,7 +640,7 @@ merge_widget_value (val1, val2, level, change_p) val1->this_one_change = this_one_change; val1->change = change; - + if (change > NO_CHANGE && val1->toolkit_data) { *change_p = 1; @@ -672,7 +672,7 @@ name_to_widget (instance, name) char* real_name = (char *) xmalloc (length); real_name [0] = '*'; strcpy (real_name + 1, name); - + widget = XtNameToWidget (instance->widget, real_name); free (real_name); @@ -691,7 +691,7 @@ set_one_value (instance, val, deep_p) #endif { Widget widget = name_to_widget (instance, val->name); - + if (widget) { #if defined (USE_LUCID) @@ -842,11 +842,11 @@ static Boolean dialog_spec_p (name) char* name; { - /* return True if name matches [EILPQeilpq][1-9][Bb] or + /* return True if name matches [EILPQeilpq][1-9][Bb] or [EILPQeilpq][1-9][Bb][Rr][1-9] */ if (!name) return False; - + switch (name [0]) { case 'E': case 'I': case 'L': case 'P': case 'Q': @@ -866,7 +866,7 @@ dialog_spec_p (name) } else return False; - + default: return False; } @@ -908,7 +908,7 @@ instantiate_widget_instance (instance) #endif } } - + if (!function) { printf ("No creation function for widget type %s\n", @@ -924,7 +924,7 @@ instantiate_widget_instance (instance) /* XtRealizeWidget (instance->widget);*/ } -void +void lw_register_widget (type, name, id, val, pre_activate_cb, selection_cb, post_activate_cb, highlight_cb) char* type; @@ -952,7 +952,7 @@ lw_get_widget (id, parent, pop_up_p) #endif { widget_instance* instance; - + instance = find_instance (id, parent, pop_up_p); return instance ? instance->widget : NULL; } @@ -969,7 +969,7 @@ lw_make_widget (id, parent, pop_up_p) { widget_instance* instance; widget_info* info; - + instance = find_instance (id, parent, pop_up_p); if (!instance) { @@ -1009,7 +1009,7 @@ lw_create_widget (type, name, id, val, parent, pop_up_p, pre_activate_cb, post_activate_cb, highlight_cb); return lw_make_widget (id, parent, pop_up_p); } - + /* destroying the widgets */ static void @@ -1046,7 +1046,7 @@ destroy_one_instance (instance) #if defined (USE_XAW) if (lw_xaw_widget_p (instance->widget)) xaw_destroy_instance (instance); - else + else #endif /* do not remove the empty statement */ ; @@ -1060,7 +1060,7 @@ lw_destroy_widget (w) Widget w; { widget_instance* instance = get_widget_instance (w, True); - + if (instance) { widget_info *info = instance->info; @@ -1233,7 +1233,7 @@ get_one_value (instance, val) widget_value* val; { Widget widget = name_to_widget (instance, val->name); - + if (widget) { #if defined (USE_LUCID) @@ -1310,7 +1310,7 @@ lw_get_widget_value_for_widget (instance, w) /* To forbid recursive calls */ static Boolean lwlib_updating; -/* This function can be used as a an XtCallback for the widgets that get +/* This function can be used as a an XtCallback for the widgets that get modified to update other instances of the widgets. Closure should be the widget_instance. */ void @@ -1390,7 +1390,7 @@ show_one_widget_busy (w, flag) Widget widget_to_invert = XtNameToWidget (w, "*sheet"); if (!widget_to_invert) widget_to_invert = w; - + XtVaGetValues (widget_to_invert, XtNforeground, &foreground, XtNbackground, &background, @@ -1438,7 +1438,7 @@ lw_refigure_widget (w, doit) Boolean doit; #endif { -#if defined (USE_XAW) +#if defined (USE_XAW) XawPanedSetRefigureMode (w, doit); #endif #if defined (USE_MOTIF) diff --git a/lwlib/lwlib.h b/lwlib/lwlib.h index bf2a9c67bdf..08aecd3e57b 100644 --- a/lwlib/lwlib.h +++ b/lwlib/lwlib.h @@ -5,12 +5,12 @@ /* ** Widget values depend on the Widget type: -** +** ** widget: (name value key enabled data contents/selected) ** ** label: ("name" "string" NULL NULL NULL NULL) ** button: ("name" "string" "key" T/F data <default-button-p>) -** button w/menu: +** button w/menu: ** ("name" "string" "key" T/F data (label|button|button w/menu...)) ** menubar: ("name" NULL NULL T/F data (button w/menu)) ** selectable thing: @@ -67,7 +67,7 @@ typedef struct _widget_value char* name; /* value (meaning depend on widget type) */ char* value; - /* keyboard equivalent. no implications for XtTranslations */ + /* keyboard equivalent. no implications for XtTranslations */ char* key; /* Help string or nil if none. GC finds this string through the frame's menu_bar_vector diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c index fc3abef503b..e7c783596f9 100644 --- a/lwlib/xlwmenu.c +++ b/lwlib/xlwmenu.c @@ -1243,7 +1243,7 @@ xlwmenu_window_p (w, window) { XlwMenuWidget mw = (XlwMenuWidget) w; int i; - + for (i = 0; i < mw->menu.windows_length; ++i) if (window == mw->menu.windows[i].window) break; diff --git a/mac/ChangeLog b/mac/ChangeLog index 686d0623864..113e06a911e 100644 --- a/mac/ChangeLog +++ b/mac/ChangeLog @@ -8,13 +8,13 @@ * INSTALL: Added documentation about --enable-carbon-app and changed documentation concerning Emacs.app location Removed some of the documentation about make-package that isn't - needed + needed Changed comment about requiring root permission to install to saying that it might be necessary depending on where you install Refered to /usr caveat in more places * make-package (make_options): Use new carbon_appdir option to specify directory to install Application and lets the makefile - install + install 2003-01-01 Steven Tamm <steventamm@mac.com> diff --git a/mac/INSTALL b/mac/INSTALL index 51b306c463b..1c44aa529f8 100644 --- a/mac/INSTALL +++ b/mac/INSTALL @@ -88,7 +88,7 @@ vt100|vt100-am|vt100am|dec vt100:\ :sc=\E7:rc=\E8:cs=\E[%i%d;%dr: ----- -To build the `info' files in versions prior to Mac OS X 10.2, you need +To build the `info' files in versions prior to Mac OS X 10.2, you need to install the texinfo software. To install from source, obtain texinfo-4.2.tar.gz from ftp.gnu.org or @@ -98,7 +98,7 @@ a mirror. Un-tar it, enter its directory and type make make install -The last step may need to be performed as root (sudo make install). +The last step may need to be performed as root (sudo make install). You may also like to install ispell, which will allow you to use ispell and flyspell-mode. To install ispell from source, you first @@ -110,7 +110,7 @@ Un-tar it, enter its directory, type ./configure --host=powerpc-apple-bsd make make install - + Again, the last step may need to be performed as root. Note that if you run `make check', the test for `pr' will fail. @@ -148,14 +148,14 @@ in a file called EmacsInstaller.dmg. This file can be then distributed to whomever would like a binary distribution. Here are the common options to user ---with-x - Use the X11 GUI instead of the Carbon GUI. +--with-x - Use the X11 GUI instead of the Carbon GUI. --prefix=DIR - Place the common emacs files in the given DIR. The default is /usr/local. See note below if placing in /usr --self-contained - Place the common emacs files inside the Emacs.app itself. This makes the application trivial to uninstall and copy between computers. ---app-symlink - Use a symlink inside the Application to the +--app-symlink - Use a symlink inside the Application to the $prefix/bin/emacs to reduce disk space. Note, this option may removed in the future. diff --git a/mac/inc/config.h b/mac/inc/config.h index a536ee9e877..beb8c0a6373 100644 --- a/mac/inc/config.h +++ b/mac/inc/config.h @@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA. */ /* No code in Emacs #includes config.h twice, but some of the code - intended to work with other packages as well (like gmalloc.c) + intended to work with other packages as well (like gmalloc.c) think they can include it as many times as they like. */ #ifndef EMACS_CONFIG_H #define EMACS_CONFIG_H @@ -41,7 +41,7 @@ Boston, MA 02111-1307, USA. */ /* Define REL_ALLOC if you want to use the relocating allocator for buffer space. */ /* #undef REL_ALLOC */ - + /* Define HAVE_X_WINDOWS if you want to use the X window system. */ /* #undef HAVE_X_WINDOWS */ diff --git a/mac/inc/m-mac.h b/mac/inc/m-mac.h index 69f33a36131..9e257a3121b 100644 --- a/mac/inc/m-mac.h +++ b/mac/inc/m-mac.h @@ -20,7 +20,7 @@ Boston, MA 02111-1307, USA. */ /* Contributed by Andrew Choi (akochoi@mac.com). */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ diff --git a/mac/make-package b/mac/make-package index a1c10f88e2c..5529d8811e4 100755 --- a/mac/make-package +++ b/mac/make-package @@ -116,10 +116,10 @@ fi if test "$display_usage" = "yes"; then cat <<EOF -\`make-package' generates a Mac OS X installer package from an Emacs -distribution. By default, this first runs ./configure on the emacs -directory. Then make install to create the emacs distribution. -Then some mac-specific commands to generate the required information +\`make-package' generates a Mac OS X installer package from an Emacs +distribution. By default, this first runs ./configure on the emacs +directory. Then make install to create the emacs distribution. +Then some mac-specific commands to generate the required information for the mac package. The installer will, by default, create a Carbon application called Emacs in the ${appsdir} directory, with the shared emacs files in /usr/local @@ -133,7 +133,7 @@ Options: --no-conf Do not run the configure script before running make install. --without-app Do not create the Emacs application bundle - --with-x Setup the install to use X Windows for its + --with-x Setup the install to use X Windows for its windowed display, instead of carbon. Implies --without-app. --without-full-dist Do not include all the .el files in the distribution. @@ -142,10 +142,10 @@ Options: to the install in [prefix]/bin/emacs and have the emacs executable link to emacs-${version} --self-contained Create an Emacs.app that is self-contained; - prefix will be ignored and all files installed - inside the application + prefix will be ignored and all files installed + inside the application --build-in-place Build the application in the source directory - instead of a temporary directory. + instead of a temporary directory. --build-dir=DIR Build the application in the specified directory instead of a temporary directory. Mutually exclusive with --build-in-place. @@ -357,7 +357,7 @@ echo 'UseUserMask NO' >> ${infofile} echo 'OverwritePermissions NO' >> ${infofile} echo 'InstallFat NO' >> ${infofile} -### Set the install directory to install files as root... +### Set the install directory to install files as root... ### Not sure if this is a good diea # echo "Setting owner to root" # chown -Rh 0 ${tempparentfull} @@ -402,7 +402,7 @@ fi if [ ! -d /Volumes/Emacs ]; then echo "Could not create disc image. The Emacs installer package (Emacs.pkg) -in this directory should be correct. Please use the Disc Copy program to +in this directory should be correct. Please use the Disc Copy program to create a disc image." >&2 exit 0 fi diff --git a/mac/makefile.MPW b/mac/makefile.MPW index 4ad27efb460..8e004249a09 100644 --- a/mac/makefile.MPW +++ b/mac/makefile.MPW @@ -2,19 +2,19 @@ # Copyright (C) 1999, 2000 Free Software Foundation, Inc. # # Author: Andrew Choi <akochoi@users.sourceforge.net> -# +# # 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., 59 Temple Place - Suite 330, @@ -147,7 +147,7 @@ Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects} "{PPCLibraries}PPCToolLibs.o" ¶ -o "{EmacsTarget}" -Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r +Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r Rez -a "{Source}"Emacs.maclf.r -o "{EmacsTarget}" Rez -a "{Source}"EmacsMPW.maclf.r -o "{EmacsTarget}" SetFile "{EmacsTarget}" -t APPL -c 'EMAx' -a B @@ -373,7 +373,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}macgui.h" ¶ "{Src}frame.h" ¶ "{Src}systime.h" - + {Src}doc.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Includes}sys:types.h" ¶ @@ -493,7 +493,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}buffer.h" ¶ "{Src}commands.h" ¶ "{Src}keyboard.h" - + {Src}getloadavg.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Includes}sys:types.h" @@ -586,7 +586,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}commands.h" ¶ "{Src}keyboard.h" ¶ "{Src}termhooks.h" - + {Src}macros.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" ¶ @@ -630,7 +630,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}termchar.h" ¶ "{Src}keyboard.h" ¶ {INTERVALS_H_GROUP} - + {Src}process.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Includes}sys:types.h" ¶ @@ -642,7 +642,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}ccl.h" ¶ "{Src}termopts.h" ¶ "{Src}sysselect.h" - + {Src}regex.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Includes}sys:types.h" ¶ @@ -658,7 +658,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}lisp.h" ¶ "{Src}buffer.h" ¶ "{Src}region-cache.h" - + {Src}scroll.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}termchar.h" ¶ @@ -666,7 +666,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r {DISPEXTERN_H_GROUP} ¶ "{Src}frame.h" ¶ {WINDOW_H_GROUP} - + {Src}search.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" ¶ @@ -680,12 +680,12 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r {INTERVALS_H_GROUP} ¶ "{Includes}sys:types.h" ¶ "{Src}regex.h" - + {Src}strftime.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Includes}sys:types.h" ¶ - "{Includes}sys:time.h" - + "{Includes}sys:time.h" + {Src}syntax.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" ¶ @@ -695,7 +695,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}syntax.h" ¶ {INTERVALS_H_GROUP} ¶ "{Src}category.h" - + {Src}sysdep.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" ¶ @@ -737,7 +737,7 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}macterm.h" ¶ "{Src}macgui.h" ¶ "{Src}frame.h" - + {Src}termcap.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" ¶ @@ -749,17 +749,17 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r {INTERVALS_H_GROUP} ¶ "{Src}buffer.h" ¶ {WINDOW_H_GROUP} - + {Src}tparam.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" - + {Src}undo.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" ¶ "{Src}buffer.h" ¶ "{Src}commands.h" - + {Src}window.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" ¶ @@ -776,8 +776,8 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r {INTERVALS_H_GROUP} ¶ "{Src}macterm.h" ¶ "{Src}macgui.h" ¶ - "{Src}frame.h" - + "{Src}frame.h" + {Src}xdisp.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Src}lisp.h" ¶ @@ -801,8 +801,8 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}fontset.h" ¶ "{Src}macterm.h" ¶ "{Src}macgui.h" ¶ - "{Src}frame.h" - + "{Src}frame.h" + {Src}xfaces.c.x Ä ¶ {CONFIG_H_GROUP} ¶ "{Includes}sys:types.h" ¶ @@ -907,8 +907,8 @@ Emacs ÄÄ {Makefile} "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r "{Src}termhooks.h" ¶ "{Src}coding.h" ¶ "{Src}ccl.h" - - + + #----------------------------------------# # Variables and rules for target "Clean" # #----------------------------------------# @@ -1089,7 +1089,7 @@ Doc Ä {DocTarget}DOC #-----------------------------------------------# Make-DocFile-Includes = -i :inc: -Make-DocFile-Sym = +Make-DocFile-Sym = Make-DocFile-PPCCOptions = -typecheck relaxed -w off -noMapCR ¶ {Make-DocFile-Includes} {Make-DocFile-Sym} diff --git a/mac/src/chdir.c b/mac/src/chdir.c index 987df2008bf..cfa77c8c44c 100644 --- a/mac/src/chdir.c +++ b/mac/src/chdir.c @@ -33,7 +33,7 @@ int chdir(const char *path) strcpy(mypath, path); c2pstr(mypath); - + wdpb.ioNamePtr = mypath; wdpb.ioVRefNum = 0; wdpb.ioWDDirID = 0; diff --git a/make-dist b/make-dist index 98a07fcc44a..daea607e63d 100755 --- a/make-dist +++ b/make-dist @@ -129,7 +129,7 @@ then EMACS=`pwd`/src/emacs else if [ "x$EMACS" = "x" -o "x$EMACS" = "xt" ]; - then + then echo You must specify the EMACS environment variable 2>&1 exit 1 fi @@ -362,7 +362,7 @@ echo "Making links to \`lisp' and its subdirectories" for file in `find . -type d -print`; do case $file in . | .. | */Old | */CVS | */RCS | */=*) - ;; + ;; *) if [ -d $file ]; then subdirs="$file $subdirs" @@ -537,7 +537,7 @@ echo "Making links to \`mac/Emacs.app/Contents'" echo "Making links to \`mac/Emacs.app/Contents/Resources/English.lproj'" (cd mac/Emacs.app/Contents/Resources/English.lproj ln InfoPlist.strings ../../../../../${tempdir}/mac/Emacs.app/Contents/Resources/English.lproj) - + echo "Making links to \`msdos'" (cd msdos ln ChangeLog emacs.ico emacs.pif ../${tempdir}/msdos diff --git a/man/ChangeLog b/man/ChangeLog index aaaccb3efb3..1958ce65d45 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -299,7 +299,7 @@ * gnus.texi: File deleted. -1995-11-02 Stephen Gildea <gildea@stop.mail-abuse.org> +1995-11-02 Stephen Gildea <gildea@stop.mail-abuse.org> * mh-e.texi: "Function Index" -> "Command Index" to work with Emacs 19.30 C-h C-k support of separately-documented commands. @@ -314,7 +314,7 @@ * Makefile.in (INFO_TARGETS, DVI_TARGETS): Add viper targets. (../info/viper, viper.dvi): New targets. -1995-04-20 Kevin Rodgers <kevinr@ihs.com> +1995-04-20 Kevin Rodgers <kevinr@ihs.com> * dired-x.texi (Installation): Change the example to set buffer-local variables like dired-omit-files-p in diff --git a/man/Makefile.in b/man/Makefile.in index 987e86580ad..bbddf682522 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -54,7 +54,7 @@ INFOSOURCES = info.texi texi2dvi $< TEXI2DVI = texi2dvi -ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" +ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" EMACSSOURCES= \ ${srcdir}/emacs.texi \ @@ -176,7 +176,7 @@ forms.dvi: forms.texi ../info/gnus: gnus.texi cd $(srcdir); $(MAKEINFO) gnus.texi gnus.dvi: gnus.texi - sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi + sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi $(ENVADD) $(TEXI2DVI) gnustmp.texi cp gnustmp.dvi $*.dvi rm gnustmp.* diff --git a/man/ack.texi b/man/ack.texi index 79bc8a54089..0f8da05f455 100644 --- a/man/ack.texi +++ b/man/ack.texi @@ -55,7 +55,7 @@ Steven L.@: Baur wrote @c If earcon.el actually works with Emacs 21, it isn't useful for lack @c of sound files. -- fx @c @file{earcon.el}, a facility for sound effects -@c for email and news messages, +@c for email and news messages, @file{footnote.el} which lets you include footnotes in email messages, and @file{gnus-audio.el} which provides sound effects for Gnus. @@ -184,7 +184,7 @@ Matthieu Devin wrote @file{delsel.el}, a package to make newly-typed text replace the current selection. @item -Eric Ding contributed @file{goto-addr.el}, +Eric Ding contributed @file{goto-addr.el}, @item Carsten Dominik wrote @file{reftex.el}, a package for setting up @@ -660,7 +660,7 @@ Shivers. Bengt Martensson, Mark Shapiro, Mike Newton, Aaron Larson, and Stefan Schoef, wrote @file{bibtex.el}, a mode for editing Bib@TeX{} bibliography files. - + @item Charlie Martin wrote @file{autoinsert.el}, which provides automatic mode-sensitive insertion of text into new files. @@ -722,7 +722,7 @@ Richard Mlynarik wrote: @file{rfc822.el}, a parser for E-mail addresses in the RFC-822 format, used in mail messages and news articles, @item -@file{terminal.el}, a terminal emulator for Emacs subprocesses, and +@file{terminal.el}, a terminal emulator for Emacs subprocesses, and @item @file{yow.el}, an essential utility (try @kbd{M-x yow}). @end itemize @@ -821,7 +821,7 @@ Jeff Peck wrote: @item @file{sun.el}, key bindings for sunterm keys, @item -@file{sun-curs.el}, cursor definitions for Sun Windows, and +@file{sun-curs.el}, cursor definitions for Sun Windows, and @item @file{sun-fns.el} and @file{sun-mouse.el}, providing mouse support for Sun Windows. @@ -1153,7 +1153,7 @@ buffers. Tibor @v{S}imko and Milan Zamazal wrote @file{slovak.el}, support for editing text in Slovak language. -@item +@item Naoto Takahashi wrote @file{utf-8.el}, support for encoding and decoding UTF-8 data. diff --git a/man/ada-mode.texi b/man/ada-mode.texi index f88d91d0d0c..a1012b8fbff 100644 --- a/man/ada-mode.texi +++ b/man/ada-mode.texi @@ -161,7 +161,7 @@ not use these extensions and if you want Emacs to automatically start the Ada mode every time you edit an Ada file. Also, for general usage variables that you might want to set, -see +see @iftex @cite{The GNU Emacs Manual}. @end iftex @@ -337,7 +337,7 @@ choice is to use this variable settings, and otherwise @item C-c u @findex ada-customize Create or edit the project file for the current buffer (@code{ada-customize}). -@item C-c c +@item C-c c @findex ada-change-prj Change the project file associated with the current Ada buffer (@code{ada-change-prj}). @item C-c d diff --git a/man/basic.texi b/man/basic.texi index f7eb39d31de..6029b76cfea 100644 --- a/man/basic.texi +++ b/man/basic.texi @@ -262,7 +262,7 @@ if you set the variable @code{next-line-add-newlines} to a non-@code{nil} value, @kbd{C-n} on the last line of a buffer creates an additional line at the end and moves down onto it. -@node Erasing +@node Erasing @section Erasing Text @table @kbd @@ -611,7 +611,7 @@ point and the character after it. It displays a line in the echo area that looks like this: @smallexample -Char: c (0143, 99, 0x63) point=21044 of 26883(78%) column 53 +Char: c (0143, 99, 0x63) point=21044 of 26883(78%) column 53 @end smallexample @noindent @@ -641,7 +641,7 @@ additional text describing the currently accessible range. For example, it might display this: @smallexample -Char: C (0103, 67, 0x43) point=252 of 889(28%) <231 - 599> column 0 +Char: C (0103, 67, 0x43) point=252 of 889(28%) <231 - 599> column 0 @end smallexample @noindent diff --git a/man/buffers.texi b/man/buffers.texi index 8630a17bf95..6aa0c5eac2c 100644 --- a/man/buffers.texi +++ b/man/buffers.texi @@ -54,7 +54,7 @@ megabytes. * Kill Buffer:: Killing buffers you no longer need. * Several Buffers:: How to go through the list of all buffers and operate variously on several of them. -* Indirect Buffers:: An indirect buffer shares the text of another buffer. +* Indirect Buffers:: An indirect buffer shares the text of another buffer. * Buffer Convenience:: Convenience and customization features for buffer handling. @end menu @@ -155,10 +155,10 @@ current buffer. Here is an example of a buffer list:@refill MR Buffer Size Mode File -- ------ ---- ---- ---- .* emacs.tex 383402 Texinfo /u2/emacs/man/emacs.tex - *Help* 1287 Fundamental + *Help* 1287 Fundamental files.el 23076 Emacs-Lisp /u2/emacs/lisp/files.el % RMAIL 64042 RMAIL /u/rms/RMAIL - *% man 747 Dired /u2/emacs/man/ + *% man 747 Dired /u2/emacs/man/ net.emacs 343885 Fundamental /u/rms/net.emacs fileio.c 27691 C /u2/emacs/src/fileio.c NEWS 67340 Text /u2/emacs/etc/NEWS @@ -498,7 +498,7 @@ convenient to switch between buffers. @menu * Uniquify:: Buffer names can contain directory parts. * Iswitchb:: Switching between buffers with substrings. -* Buffer Menus:: Configurable buffer menu. +* Buffer Menus:: Configurable buffer menu. @end menu @node Uniquify diff --git a/man/building.texi b/man/building.texi index 9f8466eef68..37af1db844a 100644 --- a/man/building.texi +++ b/man/building.texi @@ -18,14 +18,14 @@ in the larger process of developing and maintaining programs. * Compilation Mode:: The mode for visiting compiler errors. * Compilation Shell:: Customizing your shell properly for use in the compilation buffer. -* Debuggers:: Running symbolic debuggers for non-Lisp programs. -* Executing Lisp:: Various modes for editing Lisp programs, +* Debuggers:: Running symbolic debuggers for non-Lisp programs. +* Executing Lisp:: Various modes for editing Lisp programs, with different facilities for running - the Lisp programs. + the Lisp programs. * Libraries: Lisp Libraries. Creating Lisp programs to run in Emacs. * Interaction: Lisp Interaction. Executing Lisp in an Emacs buffer. * Eval: Lisp Eval. Executing a single Lisp expression in Emacs. -* External Lisp:: Communicating through Emacs with a separate Lisp. +* External Lisp:: Communicating through Emacs with a separate Lisp. @end menu @node Compilation diff --git a/man/calc.texi b/man/calc.texi index 3ef1b449e8b..5d43afefd23 100644 --- a/man/calc.texi +++ b/man/calc.texi @@ -12436,7 +12436,7 @@ this calculation has infinity as an input. @cindex Positive infinite mode The @kbd{m i} command with a numeric prefix argument of zero, i.e., @kbd{C-u 0 m i}, turns on a ``positive infinite mode'' in -which zero is treated as positive instead of being directionless. +which zero is treated as positive instead of being directionless. Thus, @samp{1 / 0 = inf} and @samp{-1 / 0 = -inf} in this mode. Note that zero never actually has a sign in Calc; there are no separate representations for @i{+0} and @i{-0}. Positive @@ -14171,7 +14171,7 @@ Calc TeX eqn ---- --- --- acute \acute bar \bar bar -breve \breve +breve \breve check \check dot \dot dot dotdot \ddot dotdot @@ -14458,7 +14458,7 @@ Subscripts use double square brackets: @samp{a[[i]]}.@refill @cindex Maple language The @kbd{d W} (@code{calc-maple-language}) command selects the conventions of Maple, another mathematical tool from the University -of Waterloo. +of Waterloo. Maple's language is much like C. Underscores are allowed in symbol names; square brackets are used for subscripts; explicit @samp{*}s for @@ -15040,7 +15040,7 @@ as an algebraic entry. @example @group - C + C + C + C a b 7 3 @end group @end example @@ -15564,7 +15564,7 @@ and 3 (HMS). The @kbd{m d} command accepts these prefixes. @item Symbolic mode. Value is 0 or 1; default is 0. Command is @kbd{m s}. -@item +@item Fraction mode. Value is 0 or 1; default is 0. Command is @kbd{m f}. @item @@ -17626,7 +17626,7 @@ fvb(rate, n, pmt) = pmt * ---------------------------- fvl(rate, n, pmt) = pmt * (1 + rate) -n - 1 - (1 + rate) + 1 - (1 + rate) pv(rate, n, pmt) = pmt * ---------------- rate @@ -22984,7 +22984,7 @@ indefinite integral in terms of variable @code{v} instead of @code{x}. With four arguments, @samp{integ(f(x),x,a,b)} represents a definite integral from @code{a} to @code{b}. @end ifinfo -@tex +@tex If you use the @code{integ} function directly in an algebraic formula, you can also write @samp{integ(f,x,v)} which expresses the resulting indefinite integral in terms of variable @code{v} instead of @code{x}. @@ -23249,7 +23249,7 @@ Two useful commands for working with the result of @kbd{a S} are to @cite{y/3 - 2}, and @kbd{s l} (@pxref{Let Command}) which evaluates another formula with @cite{x} set equal to @cite{y/3 - 2}. -@menu +@menu * Multiple Solutions:: * Solving Systems of Equations:: * Decomposing Polynomials:: @@ -34016,7 +34016,7 @@ If composition @var{c} is a ``flat'' composition, return the last @comment @node Lisp Variables, Hooks, Formatting Lisp Functions, Internals @comment @subsubsection Lisp Variables -@comment +@comment @comment @noindent @comment (This section is currently unfinished.) @@ -34397,8 +34397,8 @@ keystrokes are not listed in this summary. @r{ @: M-# _ @: @: 36 @:calc-grab-sum-across@:} @r{ @: M-# ` @:editing @: 30 @:calc-embedded-edit@:} @r{ @: M-# 0 @:(zero) @: @:calc-reset@:} - -@c + +@c @r{ @: 0-9 @:number @: @:@:number} @r{ @: . @:number @: @:@:0.number} @r{ @: _ @:number @: @:-@:number} @@ -34409,12 +34409,12 @@ keystrokes are not listed in this summary. @r{ @: @@ ' " @: (in number)@: @:@:HMS form} @r{ @: h m s @: (in number)@: @:@:HMS form} -@c +@c @r{ @: ' @:formula @: 37,46 @:@:formula} @r{ @: $ @:formula @: 37,46 @:$@:formula} @r{ @: " @:string @: 37,46 @:@:string} - -@c + +@c @r{ a b@: + @: @: 2 @:add@:(a,b) a+b} @r{ a b@: - @: @: 2 @:sub@:(a,b) a@minus{}b} @r{ a b@: * @: @: 2 @:mul@:(a,b) a b, a*b} @@ -34432,8 +34432,8 @@ keystrokes are not listed in this summary. @r{ a@: ! @: @: 1 @:fact@:(a) a!} @r{ a@: = @: @: 1 @:evalv@:(a)} @r{ a@: M-% @: @: @:percent@:(a) a%} - -@c + +@c @r{ ... a@: @key{RET} @: @: 1 @:@:... a a} @r{ ... a@: @key{SPC} @: @: 1 @:@:... a a} @r{... a b@: @key{TAB} @: @: 3 @:@:... b a} @@ -34443,8 +34443,8 @@ keystrokes are not listed in this summary. @r{... a b@: M-@key{DEL} @: @: 1 @:@:... b} @r{ @: M-@key{RET} @: @: 4 @:calc-last-args@:} @r{ a@: ` @:editing @: 1,30 @:calc-edit@:} - -@c + +@c @r{ ... a@: C-d @: @: 1 @:@:...} @r{ @: C-k @: @: 27 @:calc-kill@:} @r{ @: C-w @: @: 27 @:calc-kill-region@:} @@ -34452,8 +34452,8 @@ keystrokes are not listed in this summary. @r{ @: C-_ @: @: 4 @:calc-undo@:} @r{ @: M-k @: @: 27 @:calc-copy-as-kill@:} @r{ @: M-w @: @: 27 @:calc-copy-region-as-kill@:} - -@c + +@c @r{ @: [ @: @: @:@:[...} @r{[.. a b@: ] @: @: @:@:[a,b]} @r{ @: ( @: @: @:@:(...} @@ -34462,15 +34462,15 @@ keystrokes are not listed in this summary. @r{ @: ; @: @: @:@:matrix or polar complex} @r{ @: .. @: @: @:@:interval} -@c +@c @r{ @: ~ @: @: @:calc-num-prefix@:} @r{ @: < @: @: 4 @:calc-scroll-left@:} @r{ @: > @: @: 4 @:calc-scroll-right@:} @r{ @: @{ @: @: 4 @:calc-scroll-down@:} @r{ @: @} @: @: 4 @:calc-scroll-up@:} @r{ @: ? @: @: @:calc-help@:} - -@c + +@c @r{ a@: n @: @: 1 @:neg@:(a) @minus{}a} @r{ @: o @: @: 4 @:calc-realign@:} @r{ @: p @:precision @: 31 @:calc-precision@:} @@ -34478,8 +34478,8 @@ keystrokes are not listed in this summary. @r{ @: w @: @: @:calc-why@:} @r{ @: x @:command @: @:M-x calc-@:command} @r{ a@: y @: @:1,28,49 @:calc-copy-to-buffer@:} - -@c + +@c @r{ a@: A @: @: 1 @:abs@:(a)} @r{ a b@: B @: @: 2 @:log@:(a,b)} @r{ a b@: I B @: @: 2 @:alog@:(a,b) b^a} @@ -34524,8 +34524,8 @@ keystrokes are not listed in this summary. @r{ a@: I H T @: @: 1 @:arctanh@:(a)} @r{ @: U @: @: 4 @:calc-undo@:} @r{ @: X @: @: 4 @:calc-call-last-kbd-macro@:} - -@c + +@c @r{ a b@: a = @: @: 2 @:eq@:(a,b) a=b} @r{ a b@: a # @: @: 2 @:neq@:(a,b) a!=b} @r{ a b@: a < @: @: 2 @:lt@:(a,b) a<b} @@ -34539,20 +34539,20 @@ keystrokes are not listed in this summary. @r{ a b c@: a : @: @: 45 @:if@:(a,b,c) a?b:c} @r{ a@: a . @: @: 1 @:rmeq@:(a)} @r{ a@: a " @: @: 7,8 @:calc-expand-formula@:} - -@c + +@c @r{ a@: a + @:i, l, h @: 6,38 @:sum@:(a,i,l,h)} @r{ a@: a - @:i, l, h @: 6,38 @:asum@:(a,i,l,h)} @r{ a@: a * @:i, l, h @: 6,38 @:prod@:(a,i,l,h)} @r{ a b@: a _ @: @: 2 @:subscr@:(a,b) a_b} - -@c + +@c @r{ a b@: a \ @: @: 2 @:pdiv@:(a,b)} @r{ a b@: a % @: @: 2 @:prem@:(a,b)} @r{ a b@: a / @: @: 2 @:pdivrem@:(a,b) [q,r]} @r{ a b@: H a / @: @: 2 @:pdivide@:(a,b) q+r/b} - -@c + +@c @r{ a@: a a @: @: 1 @:apart@:(a)} @r{ a@: a b @:old, new @: 38 @:subst@:(a,old,new)} @r{ a@: a c @:v @: 38 @:collect@:(a,v)} @@ -34573,8 +34573,8 @@ keystrokes are not listed in this summary. @r{ a@: a t @:v, n @: 31,39 @:taylor@:(a,v,n)} @r{ a@: a v @: @: 7,8 @:calc-alg-evaluate@:} @r{ a@: a x @: @: 4,8 @:expand@:(a)} - -@c + +@c @r{ data@: a F @:model, vars @: 48 @:fit@:(m,iv,pv,data)} @r{ data@: I a F @:model, vars @: 48 @:xfit@:(m,iv,pv,data)} @r{ data@: H a F @:model, vars @: 48 @:efit@:(m,iv,pv,data)} @@ -34594,8 +34594,8 @@ keystrokes are not listed in this summary. @r{ a@: a T @:i, l, h @: 6,38 @:table@:(a,i,l,h)} @r{ a g@: a X @:v @: 38 @:maximize@:(a,v,g)} @r{ a g@: H a X @:v @: 38 @:wmaximize@:(a,v,g)} - -@c + +@c @r{ a b@: b a @: @: 9 @:and@:(a,b,w)} @r{ a@: b c @: @: 9 @:clip@:(a,w)} @r{ a b@: b d @: @: 9 @:diff@:(a,b,w)} @@ -34611,8 +34611,8 @@ keystrokes are not listed in this summary. @r{ a@: b u @: @: 1 @:vunpack@:(a)} @r{ @: b w @:w @: 9,50 @:calc-word-size@:} @r{ a b@: b x @: @: 9 @:xor@:(a,b,w)} - -@c + +@c @r{c s l p@: b D @: @: @:ddb@:(c,s,l,p)} @r{ r n p@: b F @: @: @:fv@:(r,n,p)} @r{ r n p@: I b F @: @: @:fvb@:(r,n,p)} @@ -34641,8 +34641,8 @@ keystrokes are not listed in this summary. @r{ r p a@: I b # @: @: @:nperb@:(r,p,a)} @r{ r p a@: H b # @: @: @:nperl@:(r,p,a)} @r{ a b@: b % @: @: @:relch@:(a,b)} - -@c + +@c @r{ a@: c c @: @: 5 @:pclean@:(a,p)} @r{ a@: c 0-9 @: @: @:pclean@:(a,p)} @r{ a@: H c c @: @: 5 @:clean@:(a,p)} @@ -34654,15 +34654,15 @@ keystrokes are not listed in this summary. @r{ a@: c p @: @: @:polar@:(a)} @r{ a@: I c p @: @: @:rect@:(a)} @r{ a@: c r @: @: 1 @:rad@:(a)} - -@c + +@c @r{ a@: c F @: @: 5 @:pfrac@:(a,p)} @r{ a@: H c F @: @: 5 @:frac@:(a,p)} - -@c + +@c @r{ a@: c % @: @: @:percent@:(a*100)} - -@c + +@c @r{ @: d . @:char @: 50 @:calc-point-char@:} @r{ @: d , @:char @: 50 @:calc-group-char@:} @r{ @: d < @: @: 13,50 @:calc-left-justify@:} @@ -34675,14 +34675,14 @@ keystrokes are not listed in this summary. @r{ @: d " @: @: 12,50 @:calc-display-strings@:} @r{ @: d @key{SPC} @: @: @:calc-refresh@:} @r{ @: d @key{RET} @: @: 1 @:calc-refresh-top@:} - -@c + +@c @r{ @: d 0 @: @: 50 @:calc-decimal-radix@:} @r{ @: d 2 @: @: 50 @:calc-binary-radix@:} @r{ @: d 6 @: @: 50 @:calc-hex-radix@:} @r{ @: d 8 @: @: 50 @:calc-octal-radix@:} - -@c + +@c @r{ @: d b @: @:12,13,50 @:calc-line-breaking@:} @r{ @: d c @: @: 50 @:calc-complex-notation@:} @r{ @: d d @:format @: 50 @:calc-date-notation@:} @@ -34701,8 +34701,8 @@ keystrokes are not listed in this summary. @r{ @: d t @: @: 27 @:calc-truncate-stack@:} @r{ @: d w @: @: 12,13 @:calc-auto-why@:} @r{ @: d z @: @: 12,50 @:calc-leading-zeros@:} - -@c + +@c @r{ @: d B @: @: 50 @:calc-big-language@:} @r{ @: d C @: @: 50 @:calc-c-language@:} @r{ @: d E @: @: 50 @:calc-eqn-language@:} @@ -34714,12 +34714,12 @@ keystrokes are not listed in this summary. @r{ @: d T @: @: 50 @:calc-tex-language@:} @r{ @: d U @: @: 50 @:calc-unformatted-language@:} @r{ @: d W @: @: 50 @:calc-maple-language@:} - -@c + +@c @r{ a@: f [ @: @: 4 @:decr@:(a,n)} @r{ a@: f ] @: @: 4 @:incr@:(a,n)} - -@c + +@c @r{ a b@: f b @: @: 2 @:beta@:(a,b)} @r{ a@: f e @: @: 1 @:erf@:(a)} @r{ a@: I f e @: @: 1 @:erfc@:(a)} @@ -34732,8 +34732,8 @@ keystrokes are not listed in this summary. @r{ a@: f s @: @: 1 @:sign@:(a)} @r{ a b@: f x @: @: 2 @:max@:(a,b)} @r{ n a@: f y @: @: 2 @:besY@:(n,a)} - -@c + +@c @r{ a@: f A @: @: 1 @:abssqr@:(a)} @r{ x a b@: f B @: @: @:betaI@:(x,a,b)} @r{ x a b@: H f B @: @: @:betaB@:(x,a,b)} @@ -34751,8 +34751,8 @@ keystrokes are not listed in this summary. @r{ a n@: f S @: @: 2 @:scf@:(a,n)} @r{ y x@: f T @: @: @:arctan2@:(y,x)} @r{ a@: f X @: @: 1 @:xpon@:(a)} - -@c + +@c @r{ x y@: g a @: @: 28,40 @:calc-graph-add@:} @r{ @: g b @: @: 12 @:calc-graph-border@:} @r{ @: g c @: @: @:calc-graph-clear@:} @@ -34772,8 +34772,8 @@ keystrokes are not listed in this summary. @r{ @: g v @: @: @:calc-graph-view-commands@:} @r{ @: g x @:display @: @:calc-graph-display@:} @r{ @: g z @: @: 12 @:calc-graph-zero-x@:} - -@c + +@c @r{ x y z@: g A @: @: 28,40 @:calc-graph-add-3d@:} @r{ @: g C @:command @: @:calc-graph-command@:} @r{ @: g D @:device @: 43,44 @:calc-graph-device@:} @@ -34790,13 +34790,13 @@ keystrokes are not listed in this summary. @r{ @: g V @: @: @:calc-graph-view-trail@:} @r{ @: g X @:format @: @:calc-graph-geometry@:} @r{ @: g Z @: @: 12 @:calc-graph-zero-y@:} - -@c + +@c @r{ @: g C-l @: @: 12 @:calc-graph-log-z@:} @r{ @: g C-r @:range @: @:calc-graph-range-z@:} @r{ @: g C-t @:title @: @:calc-graph-title-z@:} - -@c + +@c @r{ @: h b @: @: @:calc-describe-bindings@:} @r{ @: h c @:key @: @:calc-describe-key-briefly@:} @r{ @: h f @:function @: @:calc-describe-function@:} @@ -34807,23 +34807,23 @@ keystrokes are not listed in this summary. @r{ @: h s @: @: @:calc-info-summary@:} @r{ @: h t @: @: @:calc-tutorial@:} @r{ @: h v @:var @: @:calc-describe-variable@:} - -@c + +@c @r{ @: j 1-9 @: @: @:calc-select-part@:} @r{ @: j @key{RET} @: @: 27 @:calc-copy-selection@:} @r{ @: j @key{DEL} @: @: 27 @:calc-del-selection@:} @r{ @: j ' @:formula @: 27 @:calc-enter-selection@:} @r{ @: j ` @:editing @: 27,30 @:calc-edit-selection@:} @r{ @: j " @: @: 7,27 @:calc-sel-expand-formula@:} - -@c + +@c @r{ @: j + @:formula @: 27 @:calc-sel-add-both-sides@:} @r{ @: j - @:formula @: 27 @:calc-sel-sub-both-sides@:} @r{ @: j * @:formula @: 27 @:calc-sel-mul-both-sides@:} @r{ @: j / @:formula @: 27 @:calc-sel-div-both-sides@:} @r{ @: j & @: @: 27 @:calc-sel-invert@:} - -@c + +@c @r{ @: j a @: @: 27 @:calc-select-additional@:} @r{ @: j b @: @: 12 @:calc-break-selections@:} @r{ @: j c @: @: @:calc-clear-selections@:} @@ -34838,8 +34838,8 @@ keystrokes are not listed in this summary. @r{ @: j s @: @: 4,27 @:calc-select-here@:} @r{ @: j u @: @: 27 @:calc-unselect@:} @r{ @: j v @: @: 7,27 @:calc-sel-evaluate@:} - -@c + +@c @r{ @: j C @: @: 27 @:calc-sel-commute@:} @r{ @: j D @: @: 4,27 @:calc-sel-distribute@:} @r{ @: j E @: @: 27 @:calc-sel-jump-equals@:} @@ -34852,8 +34852,8 @@ keystrokes are not listed in this summary. @r{ @: j R @: @: 4,27 @:calc-commute-right@:} @r{ @: j S @: @: 4,27 @:calc-select-here-maybe@:} @r{ @: j U @: @: 27 @:calc-sel-unpack@:} - -@c + +@c @r{ @: k a @: @: @:calc-random-again@:} @r{ n@: k b @: @: 1 @:bern@:(n)} @r{ n x@: H k b @: @: 2 @:bern@:(n,x)} @@ -34874,8 +34874,8 @@ keystrokes are not listed in this summary. @r{ n m@: k s @: @: 2 @:stir1@:(n,m)} @r{ n m@: H k s @: @: 2 @:stir2@:(n,m)} @r{ n@: k t @: @: 1 @:totient@:(n)} - -@c + +@c @r{ n p x@: k B @: @: @:utpb@:(x,n,p)} @r{ n p x@: I k B @: @: @:ltpb@:(x,n,p)} @r{ v x@: k C @: @: @:utpc@:(x,v)} @@ -34889,8 +34889,8 @@ keystrokes are not listed in this summary. @r{ m x@: I k P @: @: @:ltpp@:(x,m)} @r{ v x@: k T @: @: @:utpt@:(x,v)} @r{ v x@: I k T @: @: @:ltpt@:(x,v)} - -@c + +@c @r{ @: m a @: @: 12,13 @:calc-algebraic-mode@:} @r{ @: m d @: @: @:calc-degrees-mode@:} @r{ @: m f @: @: 12 @:calc-frac-mode@:} @@ -34905,8 +34905,8 @@ keystrokes are not listed in this summary. @r{ @: m v @: @: 12,13 @:calc-matrix-mode@:} @r{ @: m w @: @: 13 @:calc-working@:} @r{ @: m x @: @: @:calc-always-load-extensions@:} - -@c + +@c @r{ @: m A @: @: 12 @:calc-alg-simplify-mode@:} @r{ @: m B @: @: 12 @:calc-bin-simplify-mode@:} @r{ @: m C @: @: 12 @:calc-auto-recompute@:} @@ -34918,8 +34918,8 @@ keystrokes are not listed in this summary. @r{ @: m R @: @: 12,13 @:calc-mode-record-mode@:} @r{ @: m S @: @: 12 @:calc-shift-prefix@:} @r{ @: m U @: @: 12 @:calc-units-simplify-mode@:} - -@c + +@c @r{ @: s c @:var1, var2 @: 29 @:calc-copy-variable@:} @r{ @: s d @:var, decl @: @:calc-declare-variable@:} @r{ @: s e @:var, editing @: 29,30 @:calc-edit-variable@:} @@ -34936,8 +34936,8 @@ keystrokes are not listed in this summary. @r{ a@: t 0-9 @: @: @:calc-store-into-quick@:} @r{ @: s u @:var @: 29 @:calc-unstore@:} @r{ a@: s x @:var @: 29 @:calc-store-exchange@:} - -@c + +@c @r{ @: s A @:editing @: 30 @:calc-edit-AlgSimpRules@:} @r{ @: s D @:editing @: 30 @:calc-edit-Decls@:} @r{ @: s E @:editing @: 30 @:calc-edit-EvalRules@:} @@ -34951,8 +34951,8 @@ keystrokes are not listed in this summary. @r{ @: s T @:editing @: 30 @:calc-edit-TimeZone@:} @r{ @: s U @:editing @: 30 @:calc-edit-Units@:} @r{ @: s X @:editing @: 30 @:calc-edit-ExtSimpRules@:} - -@c + +@c @r{ a@: s + @:var @: 29,47 @:calc-store-plus@: (v+a)} @r{ a@: s - @:var @: 29,47 @:calc-store-minus@: (v-a)} @r{ a@: s * @:var @: 29,47 @:calc-store-times@: (v*a)} @@ -34964,15 +34964,15 @@ keystrokes are not listed in this summary. @r{ @: s ] @:var @: 29,47 @:calc-store-incr@: (v-(-1))} @r{ a b@: s : @: @: 2 @:assign@:(a,b) a @t{:=} b} @r{ a@: s = @: @: 1 @:evalto@:(a,b) a @t{=>}} - -@c + +@c @r{ @: t [ @: @: 4 @:calc-trail-first@:} @r{ @: t ] @: @: 4 @:calc-trail-last@:} @r{ @: t < @: @: 4 @:calc-trail-scroll-left@:} @r{ @: t > @: @: 4 @:calc-trail-scroll-right@:} @r{ @: t . @: @: 12 @:calc-full-trail-vectors@:} - -@c + +@c @r{ @: t b @: @: 4 @:calc-trail-backward@:} @r{ @: t d @: @: 12,50 @:calc-trail-display@:} @r{ @: t f @: @: 4 @:calc-trail-forward@:} @@ -34986,8 +34986,8 @@ keystrokes are not listed in this summary. @r{ @: t r @:string @: @:calc-trail-isearch-backward@:} @r{ @: t s @:string @: @:calc-trail-isearch-forward@:} @r{ @: t y @: @: 4 @:calc-trail-yank@:} - -@c + +@c @r{ d@: t C @:oz, nz @: @:tzconv@:(d,oz,nz)} @r{d oz nz@: t C @:$ @: @:tzconv@:(d,oz,nz)} @r{ d@: t D @: @: 15 @:date@:(d)} @@ -35007,12 +35007,12 @@ keystrokes are not listed in this summary. @r{ d@: t U @: @: 16 @:unixtime@:(d,z)} @r{ d@: t W @: @: 17 @:newweek@:(d,w)} @r{ d@: t Y @: @: 17 @:newyear@:(d,n)} - -@c + +@c @r{ a b@: t + @: @: 2 @:badd@:(a,b)} @r{ a b@: t - @: @: 2 @:bsub@:(a,b)} - -@c + +@c @r{ @: u a @: @: 12 @:calc-autorange-units@:} @r{ a@: u b @: @: @:calc-base-units@:} @r{ a@: u c @:units @: 18 @:calc-convert-units@:} @@ -35027,8 +35027,8 @@ keystrokes are not listed in this summary. @r{ @: u v @: @: @:calc-enter-units-table@:} @r{ a@: u x @: @: @:calc-extract-units@:} @r{ a@: u 0-9 @: @: @:calc-quick-units@:} - -@c + +@c @r{ v1 v2@: u C @: @: 20 @:vcov@:(v1,v2)} @r{ v1 v2@: I u C @: @: 20 @:vpcov@:(v1,v2)} @r{ v1 v2@: H u C @: @: 20 @:vcorr@:(v1,v2)} @@ -35045,13 +35045,13 @@ keystrokes are not listed in this summary. @r{ v@: I H u S @: @: 19 @:vpvar@:(v)} @r{ @: u V @: @: @:calc-view-units-table@:} @r{ v@: u X @: @: 19 @:vmax@:(v)} - -@c + +@c @r{ v@: u + @: @: 19 @:vsum@:(v)} @r{ v@: u * @: @: 19 @:vprod@:(v)} @r{ v@: u # @: @: 19 @:vcount@:(v)} - -@c + +@c @r{ @: V ( @: @: 50 @:calc-vector-parens@:} @r{ @: V @{ @: @: 50 @:calc-vector-braces@:} @r{ @: V [ @: @: 50 @:calc-vector-brackets@:} @@ -35062,19 +35062,19 @@ keystrokes are not listed in this summary. @r{ @: V > @: @: 50 @:calc-matrix-right-justify@:} @r{ @: V / @: @: 12,50 @:calc-break-vectors@:} @r{ @: V . @: @: 12,50 @:calc-full-vectors@:} - -@c + +@c @r{ s t@: V ^ @: @: 2 @:vint@:(s,t)} @r{ s t@: V - @: @: 2 @:vdiff@:(s,t)} @r{ s@: V ~ @: @: 1 @:vcompl@:(s)} @r{ s@: V # @: @: 1 @:vcard@:(s)} @r{ s@: V : @: @: 1 @:vspan@:(s)} @r{ s@: V + @: @: 1 @:rdup@:(s)} - -@c + +@c @r{ m@: V & @: @: 1 @:inv@:(m) 1/m} - -@c + +@c @r{ v@: v a @:n @: @:arrange@:(v,n)} @r{ a@: v b @:n @: @:cvec@:(a,n)} @r{ v@: v c @:n >0 @: 21,31 @:mcol@:(v,n)} @@ -35107,8 +35107,8 @@ keystrokes are not listed in this summary. @r{ v@: v v @: @: 1 @:rev@:(v)} @r{ @: v x @:n @: 31 @:index@:(n)} @r{ n s i@: C-u v x @: @: @:index@:(n,s,i)} - -@c + +@c @r{ v@: V A @:op @: 22 @:apply@:(op,v)} @r{ v1 v2@: V C @: @: 2 @:cross@:(v1,v2)} @r{ m@: V D @: @: 1 @:det@:(m)} @@ -35137,20 +35137,20 @@ keystrokes are not listed in this summary. @r{ a@: I H V U @:op @: 22 @:afixp@:(op,a)} @r{ s t@: V V @: @: 2 @:vunion@:(s,t)} @r{ s t@: V X @: @: 2 @:vxor@:(s,t)} - -@c + +@c @r{ @: Y @: @: @:@:user commands} - -@c + +@c @r{ @: z @: @: @:@:user commands} - -@c + +@c @r{ c@: Z [ @: @: 45 @:calc-kbd-if@:} @r{ c@: Z | @: @: 45 @:calc-kbd-else-if@:} @r{ @: Z : @: @: @:calc-kbd-else@:} @r{ @: Z ] @: @: @:calc-kbd-end-if@:} - -@c + +@c @r{ @: Z @{ @: @: 4 @:calc-kbd-loop@:} @r{ c@: Z / @: @: 45 @:calc-kbd-break@:} @r{ @: Z @} @: @: @:calc-kbd-end-loop@:} @@ -35158,17 +35158,17 @@ keystrokes are not listed in this summary. @r{ @: Z > @: @: @:calc-kbd-end-repeat@:} @r{ n m@: Z ( @: @: @:calc-kbd-for@:} @r{ s@: Z ) @: @: @:calc-kbd-end-for@:} - -@c + +@c @r{ @: Z C-g @: @: @:@:cancel if/loop command} - -@c + +@c @r{ @: Z ` @: @: @:calc-kbd-push@:} @r{ @: Z ' @: @: @:calc-kbd-pop@:} @r{ a@: Z = @:message @: 28 @:calc-kbd-report@:} @r{ @: Z # @:prompt @: @:calc-kbd-query@:} - -@c + +@c @r{ comp@: Z C @:func, args @: 50 @:calc-user-define-composition@:} @r{ @: Z D @:key, command @: @:calc-user-define@:} @r{ @: Z E @:key, editing @: 30 @:calc-user-define-edit@:} diff --git a/man/calendar.texi b/man/calendar.texi index 3b06d30fef4..fb486ae01c8 100644 --- a/man/calendar.texi +++ b/man/calendar.texi @@ -1350,7 +1350,7 @@ them. @example Monday 9:30am Coffee break - 12:00pm Lunch + 12:00pm Lunch @end example @noindent diff --git a/man/cc-mode.texi b/man/cc-mode.texi index 41f1be4f57e..25f39d75cd6 100644 --- a/man/cc-mode.texi +++ b/man/cc-mode.texi @@ -18,7 +18,7 @@ @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -@comment +@comment @comment Texinfo manual for CC Mode @comment Generated from the original README file by Krishna Padmasola @comment <krishna@earth-gw.njit.edu> @@ -28,7 +28,7 @@ @comment Martin Stjernholm @comment @comment Maintained by Martin Stjernholm <bug-cc-mode@gnu.org> -@comment +@comment @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @copying @@ -398,7 +398,7 @@ level function block, and is indented relative to buffer position 29, which is the brace just after the function header. Here's another example: -@example +@example @group 1: int add( int val, int incr, int doit ) @@ -889,7 +889,7 @@ in: @example @group -void spam( int i ) +void spam( int i ) @{ // this is a comment-only line... if( i == 7 ) // but this is not @@ -1480,9 +1480,9 @@ that bit. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The following list of commands re-indent C constructs. Note that when -you change your coding style, either interactively or through some other +you change your coding style, either interactively or through some other means, your file does @emph{not} automatically get re-indented. You -will need to execute one of the following commands to see the effects of +will need to execute one of the following commands to see the effects of your changes. @cindex GNU indent program @@ -1495,7 +1495,7 @@ among other things. Re-indenting large sections of code can take a long time. When @ccmode{} reindents a region of code, it is essentially equivalent to -hitting @kbd{TAB} on every line of the region. Especially vulnerable is +hitting @kbd{TAB} on every line of the region. Especially vulnerable is code generator output@footnote{In particular, I have had people complain about the speed with which @code{lex(1)} output is re-indented. Lex, yacc, and other code generators usually output some pretty @@ -1589,7 +1589,7 @@ in a line's indentation, otherwise only spaces can be used. @vindex c-progress-interval @vindex progress-interval (c-) @item c-progress-interval -When indenting large regions of code, this variable controls how often a +When indenting large regions of code, this variable controls how often a progress message is displayed. Set this variable to @code{nil} to inhibit the progress messages, or set it to an integer which is the interval in seconds that progress messages are displayed. @@ -2355,22 +2355,22 @@ modes. @item When @code{c-default-style} is an association list, the current major -mode is looked up to find a style name string. In this case, this style -is always used exactly as specified and an error will occur if the named +mode is looked up to find a style name string. In this case, this style +is always used exactly as specified and an error will occur if the named style does not exist. @item If @code{c-default-style} is an association list, but the current major -mode isn't found, then the special symbol @samp{other} is looked up. If +mode isn't found, then the special symbol @samp{other} is looked up. If this value is found, the associated style is used. @item If @samp{other} is not found, then the @samp{gnu} style is used. @item -In all cases, the style described in @code{c-default-style} is installed +In all cases, the style described in @code{c-default-style} is installed @emph{before} the language hooks are run, so you can always override -this setting by including an explicit call to @code{c-set-style} in your +this setting by including an explicit call to @code{c-set-style} in your language mode hook, or in @code{c-mode-common-hook}. @end enumerate @@ -2533,7 +2533,7 @@ are simply indented two spaces to the right of line 3. But perhaps we'd like @ccmode{} to be a little more intelligent so that it aligns all the @samp{<<} symbols in lines 3 through 6. To do this, we have to write a custom indentation function which finds the column of first -stream operator on the first line of the statement. Here is sample +stream operator on the first line of the statement. Here is sample lisp code implementing this: @example @group @@ -2823,7 +2823,7 @@ i.e. they want the comments to always indent as they would for normal code, regardless of whether @kbd{TAB} or @kbd{M-;} were used. This behavior is controlled by the variable @code{c-indent-comments-syntactically-p}. When @code{nil} (the -default), @kbd{M-;} indents comment-only lines to @code{comment-column}, +default), @kbd{M-;} indents comment-only lines to @code{comment-column}, otherwise, they are indented just as they would be if @kbd{TAB} were typed. @@ -3374,7 +3374,7 @@ symbols. In this example: @example @group - 1: extern "C" + 1: extern "C" 2: @{ 3: int thing_one( int ); 4: int thing_two( double ); @@ -3412,7 +3412,7 @@ symbols. In this example: @noindent line 2 is given the @code{namespace-open} syntax, while line 4 is given the @code{namespace-close} syntax. The analysis for line 3 yields: -@code{((innamespace) (topmost-intro . 17))}, where @code{innamespace} is +@code{((innamespace) (topmost-intro . 17))}, where @code{innamespace} is a modifier similar in purpose to @code{inextern-lang} and @code{inclass}. A number of syntactic symbols are associated with parenthesis lists, @@ -3423,19 +3423,19 @@ calls. This example illustrates these: 1: void a_function( int line1, 2: int line2 ); - 3: + 3: 4: void a_longer_function( 5: int line1, 6: int line2 7: ); - 8: + 8: 9: void call_them( int line1, int line2 ) 10: @{ 11: a_function( 12: line1, 13: line2 14: ); - 15: + 15: 16: a_longer_function( line1, 17: line2 ); 18: @} @@ -3475,10 +3475,10 @@ covered are illustrated by this C++ example: 3: @{ 4: /* this line starts a multi-line 5: * comment. This line should get `c' syntax */ - 6: + 6: 7: char* a_multiline_string = "This line starts a multi-line \ 8: string. This line should get `string' syntax."; - 9: + 9: 10: note: 11: @{ 12: #ifdef LOCK @@ -3567,7 +3567,7 @@ example: @end example @noindent line 1 is given the syntactic symbol @code{cpp-macro}. This first line -of a macro is always given this symbol. The second and subsequent lines +of a macro is always given this symbol. The second and subsequent lines (e.g. lines 2 through 5) are given the @code{cpp-macro-cont} syntactic symbol, with a relative buffer position pointing to the @code{#} which starts the macro definition. @@ -3778,7 +3778,7 @@ indentation is added. E.g: @group main (int, - char ** + char ** ) // c-lineup-close-paren @end group @@ -3857,7 +3857,7 @@ E.g: @group class Foo - extends + extends Bar // c-lineup-java-inher <--> c-basic-offset @@ -3921,8 +3921,8 @@ Indent a one line block @code{c-basic-offset} extra. E.g: if (n > 0) @{m+=n; n=0;@} // c-indent-one-line-block - -<--> c-basic-offset + +<--> c-basic-offset @end group @end example @@ -3954,7 +3954,7 @@ Indent a multi line block @code{c-basic-offset} extra. E.g: @group int *foo[] = @{ - NULL, + NULL, @{17@}, // c-indent-multi-line-block @end group @@ -4440,7 +4440,7 @@ in the @file{README} file. XEmacs since 19.16. Due to release schedule skew, it is likely that all of these Emacsen -have old versions of @ccmode{} and so should be upgraded. Access to the +have old versions of @ccmode{} and so should be upgraded. Access to the @ccmode{} source code, as well as more detailed information on Emacsen compatibility, etc. are all available via the Web at: diff --git a/man/cl.texi b/man/cl.texi index 6c717066e22..eebd3ae4b5f 100644 --- a/man/cl.texi +++ b/man/cl.texi @@ -1031,41 +1031,41 @@ to standard Common Lisp. The following Emacs-specific functions are also @code{setf}-able. @smallexample -buffer-file-name marker-position -buffer-modified-p match-data -buffer-name mouse-position -buffer-string overlay-end -buffer-substring overlay-get -current-buffer overlay-start -current-case-table point -current-column point-marker -current-global-map point-max -current-input-mode point-min -current-local-map process-buffer -current-window-configuration process-filter -default-file-modes process-sentinel -default-value read-mouse-position -documentation-property screen-height -extent-data screen-menubar -extent-end-position screen-width -extent-start-position selected-window -face-background selected-screen -face-background-pixmap selected-frame -face-font standard-case-table -face-foreground syntax-table -face-underline-p window-buffer -file-modes window-dedicated-p -frame-height window-display-table -frame-parameters window-height -frame-visible-p window-hscroll -frame-width window-point -get-register window-start -getenv window-width -global-key-binding x-get-cut-buffer -keymap-parent x-get-cutbuffer +buffer-file-name marker-position +buffer-modified-p match-data +buffer-name mouse-position +buffer-string overlay-end +buffer-substring overlay-get +current-buffer overlay-start +current-case-table point +current-column point-marker +current-global-map point-max +current-input-mode point-min +current-local-map process-buffer +current-window-configuration process-filter +default-file-modes process-sentinel +default-value read-mouse-position +documentation-property screen-height +extent-data screen-menubar +extent-end-position screen-width +extent-start-position selected-window +face-background selected-screen +face-background-pixmap selected-frame +face-font standard-case-table +face-foreground syntax-table +face-underline-p window-buffer +file-modes window-dedicated-p +frame-height window-display-table +frame-parameters window-height +frame-visible-p window-hscroll +frame-width window-point +get-register window-start +getenv window-width +global-key-binding x-get-cut-buffer +keymap-parent x-get-cutbuffer local-key-binding x-get-secondary-selection -mark x-get-selection -mark-marker +mark x-get-selection +mark-marker @end smallexample Most of these have directly corresponding ``set'' functions, like @@ -2001,7 +2001,7 @@ just as in Common Lisp. Because they are implemented in terms of Emacs Lisp @code{catch} and @code{throw}, blocks have the same overhead as actual @code{catch} constructs (roughly two function calls). However, -the optimizing byte compiler will optimize away the @code{catch} +the optimizing byte compiler will optimize away the @code{catch} if the block does not in fact contain any @code{return} or @code{return-from} calls that jump to it. This means that @code{do} loops and @code{defun*} diff --git a/man/cmdargs.texi b/man/cmdargs.texi index 964e943433d..497b31698c7 100644 --- a/man/cmdargs.texi +++ b/man/cmdargs.texi @@ -432,7 +432,7 @@ removed from the end if it was present. On Windows, the default value of @env{HOME} is @file{C:/}, the root directory of drive @file{C:}. @item HOSTNAME The name of the machine that Emacs is running on. -@item INCPATH +@item INCPATH A colon-separated list of directories. Used by the @code{complete} package to search for files. @item INFOPATH @@ -629,7 +629,7 @@ all users of the machine. Settings you add to the override machine wide settings. @node Display X -@appendixsec Specifying the Display Name +@appendixsec Specifying the Display Name @cindex display name (X Window System) @cindex @env{DISPLAY} environment variable @@ -913,7 +913,7 @@ text-only terminals as well as on window systems. @cindex specifying fullscreen for Emacs frame Here is a list of the command-line options for specifying size and -position of the initial Emacs frame: +position of the initial Emacs frame: @table @samp @item -g @var{width}x@var{height}@r{[@{}+-@r{@}}@var{xoffset}@r{@{}+-@r{@}}@var{yoffset}@r{]]} diff --git a/man/commands.texi b/man/commands.texi index a751b9fbf16..b0727cfa1e4 100644 --- a/man/commands.texi +++ b/man/commands.texi @@ -84,7 +84,7 @@ don't hold down @key{ESC} while typing the next character; instead, you press it and release it, then you enter the next character. @key{ESC} is allowed on terminals with @key{META} keys, too, in case you have formed a habit of using it. - + The X Window System provides several other modifier keys that can be applied to any input character. These are called @key{SUPER}, @key{HYPER} and @key{ALT}. We write @samp{s-}, @samp{H-} and @samp{A-} @@ -183,7 +183,7 @@ There are a few prefix keys for which @kbd{C-h} does not work---for historical reasons, they have other meanings for @kbd{C-h} which are not easy to change. But @key{F1} should work for all prefix keys. - + @node Commands, Text Characters, Keys, Top @section Keys and Commands diff --git a/man/custom.texi b/man/custom.texi index 50221628faf..6d803683880 100644 --- a/man/custom.texi +++ b/man/custom.texi @@ -27,17 +27,17 @@ customizations for future sessions, this actually works by editing you can control their functioning. * Keyboard Macros:: A keyboard macro records a sequence of keystrokes to be replayed with a single - command. + command. * Key Bindings:: The keymaps say what command each key runs. By changing them, you can "redefine keys". * Keyboard Translations:: If your keyboard passes an undesired code for a key, you can tell Emacs to - substitute another code. + substitute another code. * Syntax:: The syntax table controls how words and expressions are parsed. * Init File:: How to write common customizations in the - @file{.emacs} file. + @file{.emacs} file. @end menu @node Minor Modes @@ -328,10 +328,10 @@ Confirm Kill Emacs: [Hide] [Value Menu] Don't confirm [State]: this option is unchanged from its standard setting. How to ask for confirmation when leaving Emacs. [More] -Editing group: [Go to Group] +Editing group: [Go to Group] Basic text editing facilities. -External group: [Go to Group] +External group: [Go to Group] Interfacing to external utilities. @var{more second-level groups} @@ -693,7 +693,7 @@ that match @var{regexp}. @item M-x customize-changed-options @key{RET} @var{version} @key{RET} Set up a customization buffer with all the options, faces and groups whose meaning has changed since Emacs version @var{version}. -@item M-x customize-saved +@item M-x customize-saved Set up a customization buffer containing all options and faces that you have saved with customization buffers. @item M-x customize-customized @@ -1575,7 +1575,7 @@ press the key, a message like this appears so that you can confirm that you are binding the key you want: @example -Set key C-z to command: +Set key C-z to command: @end example You can redefine function keys and mouse events in the same way; just diff --git a/man/dired-x.texi b/man/dired-x.texi index 6a5ce041994..a1172019544 100644 --- a/man/dired-x.texi +++ b/man/dired-x.texi @@ -1,7 +1,7 @@ \input texinfo @comment -*-texinfo-*- @c dired-x.texi --- Sebastian Kremer's Extra DIRED hacked up for GNU Emacs19 -@c +@c @c Author: Sebastian Kremer <sk@thp.uni-koeln.de> @c Lawrence R. Dodd <dodd@roebling.poly.edu> @c [Dodd's address no longer valid.] @@ -108,10 +108,10 @@ provided by the file @file{dired-x.el}. Based on @file{dired.texi} by Sebastian Kremer <sk@@thp.uni-koeln.de> @c dired-x.el REVISION NUMBER -@item +@item For @file{dired-x.el} revision 2 -@c @item +@c @item @c Revision of this manual: 2.53 (2001/02/25 14:05:46) @c @item @@ -137,10 +137,10 @@ For @file{dired-x.el} revision 2 * Miscellaneous Commands:: * Bugs:: -* Concept Index:: -* Command Index:: -* Key Index:: -* Variable Index:: +* Concept Index:: +* Command Index:: +* Key Index:: +* Variable Index:: @end menu @@ -177,7 +177,7 @@ Some features provided by Dired Extra @enumerate @item -Omitting uninteresting files from Dired listing. +Omitting uninteresting files from Dired listing. @itemize @bullet @xref{Omitting Files in Dired}. @end itemize @@ -298,7 +298,7 @@ for these functions. In your @file{.emacs} file put @example ;;; Autoload `dired-jump' and `dired-jump-other-window'. -;;; We autoload from FILE dired.el. This will then load dired-x.el +;;; We autoload from FILE dired.el. This will then load dired-x.el ;;; and hence define `dired-jump' and `dired-jump-other-window'. (define-key global-map "\C-x\C-j" 'dired-jump) (define-key global-map "\C-x4\C-j" 'dired-jump-other-window) @@ -337,7 +337,7 @@ If you choose to have @file{dired-x.el} bind @code{dired-x-find-file} over @code{dired-x-bind-find-file} in the @code{dired-load-hook}: @example -(add-hook 'dired-load-hook +(add-hook 'dired-load-hook (lambda () (load "dired-x") ;; Bind dired-x-find-file. @@ -351,7 +351,7 @@ Alternatively, you can set the variable @emph{before} @file{dired-x.el} is loaded @example -(add-hook 'dired-load-hook +(add-hook 'dired-load-hook (lambda () ;; Bind dired-x-find-file. (setq dired-x-hands-off-my-keys nil) @@ -596,7 +596,7 @@ in your @code{dired-mode-hook}. When Dired visits a directory, it looks for a file whose name is the value of variable @code{dired-local-variables-file} (default: @file{.dired}). If such a file is found, Dired will temporarily insert it into the Dired buffer and -run @code{hack-local-variables}. +run @code{hack-local-variables}. @noindent For example, if the user puts @@ -614,7 +614,7 @@ viewed it will be @enumerate @item -sorted by date +sorted by date @item omitted automatically @end enumerate @@ -623,7 +623,7 @@ omitted automatically You can set @code{dired-local-variables-file} to @code{nil} to suppress this. The value of @code{dired-enable-local-variables} controls if and how these local variables are read. This variable exists so that if may override the -default value of @code{enable-local-variables}. +default value of @code{enable-local-variables}. @noindent Please see the GNU Emacs Manual to learn more about local variables. @@ -1273,7 +1273,7 @@ If you encounter a bug in this package, wish to suggest an enhancement, or want to make a smart remark, then type @example -@kbd{M-x dired-x-submit-report} +@kbd{M-x dired-x-submit-report} @end example @noindent @@ -1283,7 +1283,7 @@ This command also inserts information that the Dired X maintainer can use to recreate your exact setup, making it easier to verify your bug or social maladjustment. -Lawrence R. Dodd +Lawrence R. Dodd @c <dodd@@roebling.poly.edu> @node Concept Index, Command Index, Bugs, Top diff --git a/man/display.texi b/man/display.texi index 0dbd9621016..e192db56a51 100644 --- a/man/display.texi +++ b/man/display.texi @@ -529,7 +529,7 @@ back on screen. By default, @code{scroll-conservatively} is 0. @cindex aggressive scrolling @vindex scroll-up-aggressively -@vindex scroll-down-aggressively +@vindex scroll-down-aggressively When the window does scroll by a longer distance, you can control how aggressively it scrolls, by setting the variables @code{scroll-up-aggressively} and @code{scroll-down-aggressively}. diff --git a/man/ebrowse.texi b/man/ebrowse.texi index f82d1e8988f..8a500a0feba 100644 --- a/man/ebrowse.texi +++ b/man/ebrowse.texi @@ -33,7 +33,7 @@ license to the document, as described in section 6 of the license. @end copying @dircategory Emacs -@direntry +@direntry * Ebrowse: (ebrowse). A C++ class browser for Emacs. @end direntry @@ -94,7 +94,7 @@ knows what identifiers are defined in your program@dots{}. The design of Ebrowse reflects these two needs. -How does it work? +How does it work? @cindex parser for C++ sources A fast parser written in C is used to process C++ source files. @@ -288,7 +288,7 @@ might want to add this to your init file: (add-to-list 'auto-mode-alist '(@var{NAME} . ebrowse-tree-mode)) @end lisp -@noindent +@noindent where @var{NAME} is the Lisp data base name you are using. @findex --append @@ -621,7 +621,7 @@ This command is also provided in the tree buffer's context menu. @item s Display file names for the current line, or for the number of lines -given by a prefix argument. +given by a prefix argument. @end table Here is an example of a tree buffer with file names displayed. @@ -664,7 +664,7 @@ name like in the example below. @table @kbd @item - This command collapses the branch of the tree starting at the class the -cursor is on. +cursor is on. @item + This command expands the branch of the tree starting at the class the @@ -760,7 +760,7 @@ also @xref{Tags-like Functions}.)@refill @item M t Toggle the mark of the line point is in or for as many lines as given by a prefix command. This command can also be found in the class' context -menu. +menu. @cindex unmark all @item M a @@ -861,7 +861,7 @@ list. @item L f Switch to the list of member functions. -@cindex static +@cindex static @item L F Switch to the list of static member functions. @@ -880,7 +880,7 @@ Switch to the list of types. Both commands cycle through the member list. -Most of the commands are also available from the member buffer's +Most of the commands are also available from the member buffer's context menu. @@ -996,7 +996,7 @@ displayed in the member buffer. @table @kbd @cindex @code{public} members -@item F a u +@item F a u This command toggles the display of @code{public} members. The @samp{a} stands for `access'. @@ -1217,7 +1217,7 @@ This command sets the column width depending on the display form used This command forces a redisplay of the member buffer. If the width of the window displaying the member buffer is changed this command redraws the member list with the appropriate column widths and number of -columns. +columns. @end table @@ -1348,7 +1348,7 @@ This command moves forward in the position stack, setting point to the next position stored in the position stack. @item C-c b p -Displays an electric buffer showing all positions saved in the stack. +Displays an electric buffer showing all positions saved in the stack. You can select a position by pressing @kbd{SPC} in a line. You can view a position with @kbd{v}. @end table @@ -1388,7 +1388,7 @@ All three operations above stop when finding a match. You can restart the operation with this command. @item C-c b n -This restarts the last tags operation with the next file in the list. +This restarts the last tags operation with the next file in the list. @end table @@ -1410,7 +1410,7 @@ name is read from the minibuffer with completion. @node Apropos, Symbol Completion, Members in Files, Tags-like Functions @comment node-name, next, previous, up -@section Member Apropos +@section Member Apropos @cindex apropos on class members @cindex members, matching regexp diff --git a/man/emacs-mime.texi b/man/emacs-mime.texi index 0bd6909d248..ab47e5a900a 100644 --- a/man/emacs-mime.texi +++ b/man/emacs-mime.texi @@ -900,7 +900,7 @@ options. @defopt mm-inline-media-tests This is an alist where the key is a @sc{mime} type, the second element -is a function to display the part @dfn{inline} (i.e., inside Emacs), and +is a function to display the part @dfn{inline} (i.e., inside Emacs), and the third element is a form to be @code{eval}ed to say whether the part can be displayed inline. @@ -923,7 +923,7 @@ be displayed automatically. @defopt mm-attachment-override-types Some @sc{mime} agents create parts that have a content-disposition of -@samp{attachment}. This variable allows overriding that disposition and +@samp{attachment}. This variable allows overriding that disposition and displaying the part inline. (Note that the disposition is only overridden if we are able to, and want to, display the part inline.) @end defopt @@ -981,7 +981,7 @@ Here's an example viewer for displaying @samp{text/enriched} inline: @end lisp We see that the function takes a @sc{mime} handle as its parameter. It -then goes to a temporary buffer, inserts the text of the part, does some +then goes to a temporary buffer, inserts the text of the part, does some work on the text, stores the result, goes back to the buffer it was called from and inserts the result. diff --git a/man/emacs.texi b/man/emacs.texi index bc6ddbf480f..ca5ddf039ba 100644 --- a/man/emacs.texi +++ b/man/emacs.texi @@ -37,7 +37,7 @@ Software Foundation raise funds for GNU development.'' @c in general, keep the following line commented out, unless doing a @c copy of this manual that will be published. the manual should go -@c onto the distribution in the full, 8.5 x 11" size. +@c onto the distribution in the full, 8.5 x 11" size. @c @smallbook @@ -144,7 +144,7 @@ Important General Concepts * Keys:: Key sequences: what you type to request one editing action. * Commands:: Named functions run by key sequences to do editing. -* Text Characters:: Character set for text (the contents of buffers +* Text Characters:: Character set for text (the contents of buffers and strings). * Entering Emacs:: Starting Emacs from the shell. * Exiting:: Stopping or killing Emacs. @@ -282,7 +282,7 @@ Deletion and Killing blank areas. * Killing by Lines:: How to kill entire lines of text at one time. * Other Kill Commands:: Commands to kill large regions of text and - syntactic units such as words and sentences. + syntactic units such as words and sentences. Yanking @@ -376,7 +376,7 @@ Using Multiple Buffers * Kill Buffer:: Killing buffers you no longer need. * Several Buffers:: How to go through the list of all buffers and operate variously on several of them. -* Indirect Buffers:: An indirect buffer shares the text of another buffer. +* Indirect Buffers:: An indirect buffer shares the text of another buffer. Multiple Windows @@ -547,14 +547,14 @@ Compiling and Testing Programs * Compilation Mode:: The mode for visiting compiler errors. * Compilation Shell:: Customizing your shell properly for use in the compilation buffer. -* Debuggers:: Running symbolic debuggers for non-Lisp programs. -* Executing Lisp:: Various modes for editing Lisp programs, +* Debuggers:: Running symbolic debuggers for non-Lisp programs. +* Executing Lisp:: Various modes for editing Lisp programs, with different facilities for running - the Lisp programs. + the Lisp programs. * Lisp Libraries:: Creating Lisp programs to run in Emacs. * Lisp Interaction:: Executing Lisp in an Emacs buffer. * Lisp Eval:: Executing a single Lisp expression in Emacs. -* External Lisp:: Communicating through Emacs with a separate Lisp. +* External Lisp:: Communicating through Emacs with a separate Lisp. Running Debuggers Under Emacs @@ -575,10 +575,10 @@ Maintaining Programs Tags Tables -* Tag Syntax:: Tag syntax for various types of code and text files. +* Tag Syntax:: Tag syntax for various types of code and text files. * Create Tags Table:: Creating a tags table with @code{etags}. * Select Tags Table:: How to visit a tags table. -* Find Tag:: Commands to find the definition of a specific tag. +* Find Tag:: Commands to find the definition of a specific tag. * Tags Search:: Using a tags table for searching and replacing. * List Tags:: Listing and finding tags defined in a file. @@ -722,17 +722,17 @@ Customization to decide what to do; by setting variables, you can control their functioning. * Keyboard Macros:: A keyboard macro records a sequence of - keystrokes to be replayed with a single command. + keystrokes to be replayed with a single command. * Key Bindings:: The keymaps say what command each key runs. By changing them, you can "redefine keys". * Keyboard Translations:: If your keyboard passes an undesired code for a key, you can tell Emacs to - substitute another code. + substitute another code. * Syntax:: The syntax table controls how words and expressions are parsed. * Init File:: How to write common customizations in the - @file{.emacs} file. + @file{.emacs} file. Variables @@ -865,7 +865,7 @@ chapters when you need them. properly. It explains how to cope with some common problems (@pxref{Lossage}), as well as when and how to report Emacs bugs (@pxref{Bugs}). - + To find the documentation on a particular command, look in the index. Keys (character commands) and command names have separate indexes. There is also a glossary, with a cross reference for each term. @@ -1359,7 +1359,7 @@ when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 20@var{yy} @var{name of author} Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome -to redistribute it under certain conditions; type `show c' +to redistribute it under certain conditions; type `show c' for details. @end smallexample @@ -1377,7 +1377,7 @@ necessary. Here is a sample; alter the names: @group Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' -(which makes passes at compilers) written +(which makes passes at compilers) written by James Hacker. @var{signature of Ty Coon}, 1 April 1989 diff --git a/man/entering.texi b/man/entering.texi index f33cd739401..5b6c28472bf 100644 --- a/man/entering.texi +++ b/man/entering.texi @@ -4,7 +4,7 @@ @node Entering Emacs, Exiting, Text Characters, Top @chapter Entering and Exiting Emacs @cindex entering Emacs -@cindex starting Emacs +@cindex starting Emacs The usual way to invoke Emacs is with the shell command @command{emacs}. Emacs clears the screen and then displays an initial help message and diff --git a/man/eshell.texi b/man/eshell.texi index c5e2d517d5d..188ac520a16 100644 --- a/man/eshell.texi +++ b/man/eshell.texi @@ -1,5 +1,5 @@ \input texinfo @c -*-texinfo-*- -@c "@(#)$Name: $:$Id: eshell.texi,v 1.16 2002/10/02 23:24:31 karl Exp $" +@c "@(#)$Name: $:$Id: eshell.texi,v 1.17 2002/12/10 13:16:31 pj Exp $" @c %**start of header @setfilename ../info/eshell @settitle Eshell: The Emacs Shell @@ -82,17 +82,17 @@ handling the sort of tasks accomplished by those tools. @menu * What is Eshell?:: A brief introduction to the Emacs Shell. * Installation:: For users of Emacs 20 and XEmacs. -* Command basics:: The basics of command usage. -* Commands:: -* Arguments:: -* Input/Output:: -* Process control:: -* Extension modules:: -* Extras and Goodies:: +* Command basics:: The basics of command usage. +* Commands:: +* Arguments:: +* Input/Output:: +* Process control:: +* Extension modules:: +* Extras and Goodies:: * Bugs and ideas:: Known problems, and future ideas. -* Concept Index:: -* Function and Variable Index:: -* Key Index:: +* Concept Index:: +* Function and Variable Index:: +* Key Index:: @end menu @node What is Eshell? @@ -479,11 +479,11 @@ on your mind. Have fun! @chapter Commands @menu -* Invocation:: -* Completion:: -* Aliases:: -* History:: -* Scripts:: +* Invocation:: +* Completion:: +* Aliases:: +* History:: +* Scripts:: * Built-ins:: @end menu @@ -507,7 +507,7 @@ command, follows these steps: @enumerate @item Parse the command string into separate arguments. -@item +@item @end enumerate @node Completion @@ -572,11 +572,11 @@ With @samp{cd -42}, you can access the directory stack by number. @chapter Arguments @menu -* The Parser:: -* Variables:: -* Substitution:: -* Globbing:: -* Predicates:: +* The Parser:: +* Variables:: +* Substitution:: +* Globbing:: +* Predicates:: @end menu @node The Parser @@ -606,13 +606,13 @@ With @samp{cd -42}, you can access the directory stack by number. @chapter Extension modules @menu -* Writing a module:: -* Module testing:: -* Directory handling:: -* Key rebinding:: -* Smart scrolling:: -* Terminal emulation:: -* Built-in UNIX commands:: +* Writing a module:: +* Module testing:: +* Directory handling:: +* Key rebinding:: +* Smart scrolling:: +* Terminal emulation:: +* Built-in UNIX commands:: @end menu @node Writing a module @@ -659,7 +659,7 @@ extensions to this package, I would like to hear from you. I hope you find this package useful! @menu -* Known problems:: +* Known problems:: @end menu @node Known problems @@ -1091,7 +1091,7 @@ perform this on-thy-fly rewriting. @item Write an alias for @command{less} that brings up a @code{view-mode} buffer Such that the user can press @key{SPC} and @key{DEL}, and then @key{q} -to return to Eshell. It would be equivalent to: +to return to Eshell. It would be equivalent to: @samp{X > #<buffer Y>; view-buffer #<buffer Y>}. @item Make @code{eshell-mode} as much a full citizen as @code{shell-mode} diff --git a/man/eudc.texi b/man/eudc.texi index a32e8d43aae..511069973df 100644 --- a/man/eudc.texi +++ b/man/eudc.texi @@ -70,7 +70,7 @@ LDAP or the CCSO white pages directory system (PH/QI) * Usage:: The various usage possibilities explained * Credits:: Who's done what * Command and Function Index:: -* Variables Index:: +* Variables Index:: @end menu @@ -83,7 +83,7 @@ LDAP or the CCSO white pages directory system (PH/QI) EUDC, the @dfn{Emacs Unified Directory Client}, provides a common user interface to access directory servers using different directory -protocols. +protocols. Currently supported back-ends are: @@ -99,7 +99,7 @@ BBDB, Big Brother's Insiduous Database The main features of the EUDC interface are: @itemize @bullet -@item +@item Queries using a customizable form @item Inline query expansion (for instance you can expand a name @@ -216,10 +216,10 @@ initialization file to add a shortcut for email address expansion in email composition buffers (@pxref{Inline Query Expansion}) @lisp -(eval-after-load +(eval-after-load "message" '(define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) -(eval-after-load +(eval-after-load "sendmail" '(define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) @end lisp @@ -255,7 +255,7 @@ customization options are available through the @samp{Directory Search} submenu of the @samp{Tools} submenu. @menu -* Querying Servers:: How queries are performed and handled +* Querying Servers:: How queries are performed and handled * Query Form:: How to use and customize the query form * Display of Query Results:: Controlling how query results are presented * Inline Query Expansion:: How to use and customize inline queries @@ -463,7 +463,7 @@ containing the results of the query. The fields that are returned for each record are controlled by @code{eudc-default-return-attributes} (@pxref{Return -Attributes}). +Attributes}). The display of each individual field can be performed by an arbitrary function which allows specific processing for binary values, such as @@ -484,12 +484,12 @@ This variable has protocol-local definitions (see @pxref{Server/Protocol Locals}). For instance, it is defined as follows for LDAP: @lisp -(eudc-protocol-set 'eudc-attribute-display-method-alist +(eudc-protocol-set 'eudc-attribute-display-method-alist '(("jpegphoto" . eudc-display-jpeg-inline) ("labeledurl" . eudc-display-url) ("audio" . eudc-display-sound) ("labeledurl" . eudc-display-url) - ("url" . eudc-display-url)) + ("url" . eudc-display-url)) 'ldap) @end lisp @@ -547,7 +547,7 @@ controlled by the variables @code{eudc-inline-expansion-format}, @code{eudc-expanding-overwrites-query} and @code{eudc-multiple-match-handling-method}. -If the query fails for a server, other servers may be tried successively +If the query fails for a server, other servers may be tried successively until one of them finds a match (@pxref{Multi-server Queries}). @deffn Command eudc-expand-inline replace-p @@ -564,7 +564,7 @@ is non-@code{nil} then the meaning of @var{replace-p} is negated. @end deffn @defvar eudc-inline-query-format -Format of an inline expansion query. +Format of an inline expansion query. This is actually a list of @var{format}s. A @var{format} is a list of one or more EUDC attribute names. A @var{format} applies if it contains as many attributes as individual words in the inline query string. If @@ -572,7 +572,7 @@ several @var{format}s apply then they are tried in order until a match is found. If @code{nil} all the words will be mapped onto the default server/protocol attribute name (generally @code{name}). -For instance, use the following +For instance, use the following @lisp (setq eudc-inline-query-format '((name) (firstname) @@ -582,7 +582,7 @@ For instance, use the following to indicate that single word expansion queries are to be considered as surnames and if no match is found then they should be tried as first names. Inline queries consisting of two words are considered as -consisting of a first name followed by a surname. If the query consists +consisting of a first name followed by a surname. If the query consists of more than two words, then the first one is considered as the first name and the remaining words are all considered as surname constituents. @@ -620,7 +620,7 @@ for an inline expansion. Possible values are: The first match is considered as being the only one, the others are discarded. @item select -A selection buffer pops up where you can choose a particular match. This +A selection buffer pops up where you can choose a particular match. This is the default value of the variable. @item all The expansion uses all records successively @@ -637,7 +637,7 @@ Default is @code{select} @comment node-name, next, previous, up @section The Server Hotlist -EUDC lets you maintain a list of frequently used servers so that you +EUDC lets you maintain a list of frequently used servers so that you can easily switch from one to another. This hotlist appears in the @samp{Server} submenu. You select a server in this list by clicking on its name. You can add the current server to the list with the command @@ -661,7 +661,7 @@ Add the current server to the hotlist of servers @defvar eudc-options-file The name of a file where EUDC stores its internal variables -(the hotlist and the current server). EUDC will try to load +(the hotlist and the current server). EUDC will try to load that file upon initialization so, if you choose a file name different from the defaults @file{~/.eudc-options}, be sure to set this variable to the appropriate value @emph{before} EUDC is itself @@ -775,25 +775,25 @@ The value of this variable should be a symbol naming an alist defining a mapping between BBDB field names onto directory attribute names records. This is a protocol-local variable and is initialized upon protocol switch (@pxref{Server/Protocol Locals}). The alist is made of cells of the -form @code{(@var{bbdb-field} . @var{spec-or-list})}. +form @code{(@var{bbdb-field} . @var{spec-or-list})}. @var{bbdb-field} is the name of a field that must be defined in your BBDB environment (standard field names are @code{name}, @code{company}, @code{net}, @code{phone}, @code{address} -and @code{notes}). +and @code{notes}). @var{spec-or-list} is either a single mapping specification or a list of mapping specifications. Lists of mapping specifications are valid for the @code{phone} and @code{address} BBDB fields only. @var{spec}s are actually s-expressions which are evaluated as follows: @table @asis -@item a string +@item a string evaluates to itself @item a symbol evaluates to the symbol value. Symbols corresponding to directory attribute names present in the record evaluate to the value of the field in the record @item a form -is evaluated as a function. The argument list may contain attribute +is evaluated as a function. The argument list may contain attribute names which evaluate to the corresponding values in the record. The form evaluation should return something appropriate for the particular @var{bbdb-field} (see @code{bbdb-create-internal}). @@ -816,7 +816,7 @@ The default value of the PH-specific value of that variable is This means that: @itemize @bullet -@item +@item the @code{name} field of the BBDB record gets its value from the @code{name} attribute of the directory record @item @@ -932,7 +932,7 @@ Return the value of @var{var} local to @var{protocol}. Return @end defun @defun eudc-variable-server-value var [server] -Return the value of @var{var} local to @var{server}. +Return the value of @var{var} local to @var{server}. Return @code{unbound} if @var{var} has no value local to @var{server}. @var{server} defaults to @code{eudc-server}. @end defun @@ -952,7 +952,7 @@ Update all EUDC variables according to their local settings. @comment node-name, next, previous, up @chapter Credits -EUDC was written by Oscar Figueiredo based on @file{ph.el} by the +EUDC was written by Oscar Figueiredo based on @file{ph.el} by the same author. Thanks to Soren Dayton for his suggestions, his enthusiasm and his help diff --git a/man/files.texi b/man/files.texi index e6729601b84..2c18092286c 100644 --- a/man/files.texi +++ b/man/files.texi @@ -1083,7 +1083,7 @@ links point to directories. If you visit two names for the same file, normally Emacs makes two different buffers, but it warns you about the situation. -@vindex find-file-existing-other-name +@vindex find-file-existing-other-name @vindex find-file-suppress-same-file-warnings Normally, if you visit a file which Emacs is already visiting under a different name, Emacs displays a message in the echo area and uses @@ -1112,7 +1112,7 @@ implies the effect of @code{find-file-existing-other-name}. @dfn{Version control systems} are packages that can record multiple versions of a source file, usually storing the unchanged parts of the file just once. Version control systems also record history information -such as the creation time of each version, who created it, and a +such as the creation time of each version, who created it, and a description of what was changed in that version. The Emacs version control interface is called VC. Its commands work @@ -1239,7 +1239,7 @@ check-in time. However, CVS can also be set up to require locking. @node Types of Log File @subsubsection Types of Log File @cindex types of log file -@cindex log File, types of +@cindex log File, types of @cindex version control log GNU projects under a revision control system generally possess @@ -1310,8 +1310,8 @@ in your @file{~/.emacs} file. (@xref{Init Rebinding}.) * Advanced C-x v v:: Advanced features available with a prefix argument. * Log Buffer:: Features available in log entry buffers. @end menu - -@node VC with Locking + +@node VC with Locking @subsubsection Basic Version Control with Locking If locking is used for the file (as with SCCS, and RCS in its default @@ -1540,7 +1540,7 @@ use once a day. * Registering:: Putting a file under version control. * VC Status:: Viewing the VC status of files. * VC Undo:: Cancelling changes before or after check-in. -* VC Dired Mode:: Listing files managed by version control. +* VC Dired Mode:: Listing files managed by version control. * VC Dired Commands:: Commands to use in a VC Dired buffer. @end menu @@ -1807,7 +1807,7 @@ example above have branch numbers 1.2.1 and 1.2.2. * Switching Branches:: How to get to another existing branch. * Creating Branches:: How to start a new branch. * Merging:: Transferring changes between branches. -* Multi-User Branching:: Multiple users working at multiple branches +* Multi-User Branching:: Multiple users working at multiple branches in parallel. @end menu @@ -2225,7 +2225,7 @@ won't really work as retrieved. @menu * Change Logs and VC:: Generating a change log file from log entries. -* Renaming and VC:: A command to rename both the source and master +* Renaming and VC:: A command to rename both the source and master file correctly. * Version Headers:: Inserting version control headers into working files. @end menu diff --git a/man/fixit.texi b/man/fixit.texi index a4b843f07b5..21f613a93ad 100644 --- a/man/fixit.texi +++ b/man/fixit.texi @@ -173,7 +173,7 @@ Check and correct spelling of each word in the buffer. @item M-x ispell-region Check and correct spelling of each word in the region. @item M-x ispell-message -Check and correct spelling of each word in a draft mail message, +Check and correct spelling of each word in a draft mail message, excluding cited material. @item M-x ispell-change-dictionary @key{RET} @var{dict} @key{RET} Restart the Ispell process, using @var{dict} as the dictionary. diff --git a/man/forms.texi b/man/forms.texi index 7c323094112..91a1f456f24 100644 --- a/man/forms.texi +++ b/man/forms.texi @@ -82,7 +82,7 @@ how to present it. * Forms Example:: An example: editing the password data base. * Entering and Exiting Forms Mode:: How to visit a file in Forms mode. -* Forms Commands:: Special commands to use while in Forms mode. +* Forms Commands:: Special commands to use while in Forms mode. * Data File Format:: How to format the data file. * Control File Format:: How to control forms mode. * Format Description:: How to define the forms layout. @@ -254,7 +254,7 @@ Create a new record and insert it before the current record contents for its fields; you can then edit the fields. With a numeric argument, the new record is created @emph{after} the current one. See also @code{forms-modified-record-filter} in @ref{Modifying Forms -Contents}. +Contents}. @findex forms-delete-record @kindex C-c C-k @@ -531,7 +531,7 @@ modified, just before updating the Forms data file. If it is @findex forms-insert-after @item forms-insert-after -If this variable is not @code{nil}, new records are created @emph{after} the +If this variable is not @code{nil}, new records are created @emph{after} the current record. Also, upon visiting a file, the initial position will be at the last record instead of the first one. @@ -613,7 +613,7 @@ in the beginning of this manual might look as follows: @end example When you construct the value of @code{forms-format-list}, you should -usually either quote the whole value, like this, +usually either quote the whole value, like this, @example (setq forms-format-list @@ -654,7 +654,7 @@ If @code{forms-read-only} is @code{nil}, the user can modify the fields and records of the database. All normal editing commands are available for editing the contents of the -displayed record. You cannot delete or modify the fixed, explanatory +displayed record. You cannot delete or modify the fixed, explanatory text that comes from string formatting elements, but you can modify the actual field contents. @@ -762,7 +762,7 @@ file. @item Forms control file error: `forms-number-of-fields' must be a number > 0 The variable @code{forms-number-of-fields} did not contain a positive -number. +number. @item Forms control file error: `forms-field-sep' is not a string @itemx Forms control file error: `forms-multi-line' must be nil or a one-character string @@ -835,7 +835,7 @@ An internal error prevented a specific record from being retrieved. @item No write access to @code{"}@var{file}@code{"} An attempt was made to enable edit mode on a file that has been write -protected. +protected. @item Search failed: @var{regexp} The @var{regexp} could not be found in the data file. Forward searching @@ -899,7 +899,7 @@ The optional FILL should be a character, used to fill to the column." (concat "\n" (make-string target fill)) (make-string (- target (current-column)) fill))) ;; -(defun arch-rj (target field &optional fill) +(defun arch-rj (target field &optional fill) "Produces a string to skip to column TARGET\ minus the width of field FIELD. Prepends newline if needed. diff --git a/man/frames.texi b/man/frames.texi index 2fdc1b7c4fc..4542893894c 100644 --- a/man/frames.texi +++ b/man/frames.texi @@ -273,7 +273,7 @@ particularly under OpenWindows and Gnome. The command @kbd{M-x menu-bar-enable-clipboard} makes the @code{Cut}, @code{Paste} and @code{Copy} menu items, as well as the keys of the same names, all use the clipboard. - + You can customize the option @code{x-select-enable-clipboard} to make the Emacs yank functions consult the clipboard before the primary selection, and to make the kill functions to store in the clipboard as @@ -394,7 +394,7 @@ subcommands. The difference is that @kbd{C-x 5} commands create a new frame rather than just a new window in the selected frame (@pxref{Pop Up Window}). If an existing visible or iconified frame already displays the requested material, these commands use the existing frame, after -raising or deiconifying as necessary. +raising or deiconifying as necessary. The various @kbd{C-x 5} commands differ in how they find or create the buffer to select: diff --git a/man/glossary.texi b/man/glossary.texi index bf5e1a35748..c347eb3f982 100644 --- a/man/glossary.texi +++ b/man/glossary.texi @@ -895,7 +895,7 @@ Point is the place in the buffer at which insertion and deletion occur. Point is considered to be between two characters, not at one character. The terminal's cursor (q.v.@:) indicates the location of point. @xref{Basic,Point,Basic Editing}. - + @item Prefix Argument See `numeric argument.' diff --git a/man/gnus-faq.texi b/man/gnus-faq.texi index 95ddf3234e8..acdb0edd5e4 100644 --- a/man/gnus-faq.texi +++ b/man/gnus-faq.texi @@ -100,7 +100,7 @@ Per Abrahamsen <abraham@@dina.kvl.dk> writes :@* The internal easymenu.el interface changed between 19.28 and 19.29 in order to make it possible to create byte compiled files that can be shared between Gnu Emacs and XEmacs. The change is upward -compatible, but not downward compatible. +compatible, but not downward compatible. This gives the following compatibility table: @example @@ -131,10 +131,10 @@ list is mainly for developers and testers. Gnus has a home World Wide Web page at@* @file{http://www.gnus.org/}. - + Gnus has a write up in the X Applications FAQ at@* @file{http://www.ee.ryerson.ca:8080/~elf/xapps/Q-III.html}. - + The Gnus manual is also available on the World Wide Web. The canonical source is in Norway at@* @file{http://www.gnus.org/manual/gnus_toc.html}. @@ -158,7 +158,7 @@ PostScript copies of the Gnus Reference card are available from@* United States. And@* @file{ftp://marvin.fkphy.uni-duesseldorf.de/pub/gnus/} in Germany. - + An online version of the Gnus FAQ is available at@* @file{http://www.miranova.com/~steve/gnus-faq.html}. Off-line formats are also available:@* @@ -277,7 +277,7 @@ Q2.3 How can I keep my nnvirtual:* groups sorted? How can I most efficiently arrange matters so as to keep my nnvirtual:* (etc) groups at the top of my group selection buffer, whilst keeping everything sorted in alphabetical order. - + If you don't subscribe often to new groups then the easiest way is to first sort the groups and then manually kill and yank the virtuals wherever you want them. @@ -307,7 +307,7 @@ The most vital entries in my (still young) all.SCORE: ("alt.fan.oj-simpson" -1000 nil s)) ("subject" (concat "\\<\\(make\\|fast\\|big\\)\\s-*" - "\\(money\\|cash\\|bucks?\\)\\>" + "\\(money\\|cash\\|bucks?\\)\\>" -1000 nil r) ("$$$$" -1000 nil s))) @end lisp @@ -336,7 +336,7 @@ I would like to contribute with mine. ;; $$$ Make Money $$$ ("$$" -10 nil s) ;; Empty subjects are worthless! - ("^ *\\([(<]none[>)]\\|(no subject\\( given\\)?)\\)? *$" + ("^ *\\([(<]none[>)]\\|(no subject\\( given\\)?)\\)? *$" -10 nil r) ;; Sometimes interesting announces occur! ("ANN?OU?NC\\(E\\|ING\\)" +10 nil r) @@ -571,7 +571,7 @@ like this: (gnus-auto-select-first nil))) @end lisp -and insert +and insert @lisp (setq gnus-auto-select-first t) @end lisp diff --git a/man/gnus.texi b/man/gnus.texi index 66fd0f915df..b9e6dfc84a2 100644 --- a/man/gnus.texi +++ b/man/gnus.texi @@ -627,7 +627,7 @@ Getting News Getting Mail -* Mail in a Newsreader:: Important introductory notes. +* Mail in a Newsreader:: Important introductory notes. * Getting Started Reading Mail:: A simple cookbook example. * Splitting Mail:: How to create mail groups. * Mail Sources:: How to tell Gnus where to get mail from. @@ -1188,7 +1188,7 @@ Kill all new groups. @item gnus-subscribe-topics @vindex gnus-subscribe-topics -Put the groups into the topic that has a matching @code{subscribe} topic +Put the groups into the topic that has a matching @code{subscribe} topic parameter (@pxref{Topic Parameters}). For instance, a @code{subscribe} topic parameter that looks like @@ -1196,7 +1196,7 @@ topic parameter that looks like "nnslashdot" @end example -will mean that all groups that match that regex will be subscribed under +will mean that all groups that match that regex will be subscribed under that topic. If no topics match the groups, the groups will be subscribed in the @@ -1486,7 +1486,7 @@ performance, but if the server does not support the aforementioned @code{LIST ACTIVE group} command, this isn't very nice to the server. If you think that starting up Gnus takes too long, try all the three -different values for this variable and see what works best for you. +different values for this variable and see what works best for you. In any case, if you use @code{some} or @code{nil}, you should definitely kill all groups that you aren't interested in to speed things up. @@ -2698,7 +2698,7 @@ will make @code{iso-8859-1} and @code{x-unknown} ignored; that is, the default charset will be used for decoding articles. See also @code{gnus-group-ignored-charsets-alist}. - + @item posting-style You can store additional posting style information for this group only here (@pxref{Posting Styles}). The format is that of an entry in the @@ -3278,7 +3278,7 @@ convention (@pxref{Process/Prefix}). @item T j @kindex T j (Topic) @findex gnus-topic-jump-to-topic -Go to a topic (@code{gnus-topic-jump-to-topic}). +Go to a topic (@code{gnus-topic-jump-to-topic}). @item T c @kindex T c (Topic) @@ -3523,10 +3523,10 @@ parameters: @table @code @item subscribe -When subscribing new groups by topic (@pxref{Subscription Methods}), the -@code{subscribe} topic parameter says what groups go in what topic. Its +When subscribing new groups by topic (@pxref{Subscription Methods}), the +@code{subscribe} topic parameter says what groups go in what topic. Its value should be a regexp to match the groups that should go in that -topic. +topic. @end table @@ -3642,7 +3642,7 @@ For example: @item gnus-group-name-charset-group-alist @vindex gnus-group-name-charset-group-alist -An alist of regexp of group name and the charset for group names. +An alist of regexp of group name and the charset for group names. It is used to show non-ASCII group names. For example: @@ -4498,8 +4498,8 @@ If given a numerical prefix, you can do semi-manual charset stuff. encoded in the @code{cn-gb-2312} charset. If you have @lisp -(setq gnus-summary-show-article-charset-alist - '((1 . cn-gb-2312) +(setq gnus-summary-show-article-charset-alist + '((1 . cn-gb-2312) (2 . big5))) @end lisp @@ -4731,7 +4731,7 @@ the process/prefix convention. @kindex S o p @r{(Summary)} @findex gnus-summary-post-forward Forward the current article to a newsgroup -(@code{gnus-summary-post-forward}). +(@code{gnus-summary-post-forward}). If no prefix is given, the message is forwarded according to the value of (@code{message-forward-as-mime}) and (@code{message-forward-show-mml}); if the prefix is 1, decode the @@ -6554,7 +6554,7 @@ a spool, you could @lisp (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy -(setq gnus-default-article-saver +(setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding @end lisp @@ -7432,7 +7432,7 @@ when filling. @item W Q @kindex W Q @r{(Summary)} -@findex gnus-article-fill-long-lines +@findex gnus-article-fill-long-lines Fill long lines (@code{gnus-article-fill-long-lines}). @item W C @@ -7480,7 +7480,7 @@ makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}. @item W h @kindex W h @r{(Summary)} @findex gnus-article-wash-html -Treat HTML (@code{gnus-article-wash-html}). +Treat HTML (@code{gnus-article-wash-html}). Note that the this is usually done automatically by Gnus if the message in question has a @code{Content-Type} header that says that this type has been done. @@ -7824,7 +7824,7 @@ signature after all. @kindex A t @r{(Summary)} @findex gnus-article-babel Translate the article from one language to another -(@code{gnus-article-babel}). +(@code{gnus-article-babel}). @end table @@ -8529,7 +8529,7 @@ disk forever and ever, never to return again.'' Use with caution. @vindex gnus-preserve-marks Move the article from one mail group to another (@code{gnus-summary-move-article}). Marks will be preserved if -@var{gnus-preserve-marks} is non-@code{nil} (which is the default). +@var{gnus-preserve-marks} is non-@code{nil} (which is the default). @item B c @kindex B c @r{(Summary)} @@ -9277,7 +9277,7 @@ Copy the @sc{mime} object to a fresh buffer and display this buffer @findex gnus-mime-view-part-as-type @item t @r{(Article)} View the @sc{mime} object as if it were a different @sc{mime} media type -(@code{gnus-mime-view-part-as-type}). +(@code{gnus-mime-view-part-as-type}). @findex gnus-mime-pipe-part @item | @r{(Article)} @@ -9427,7 +9427,7 @@ You can, of course, write your own functions to be called from @code{gnus-part-display-hook}. The functions are called narrowed to the part, and you can do anything you like, pretty much. There is no information that you have to keep in the buffer---you can change -everything. +everything. @node Article Keymap @@ -10514,7 +10514,7 @@ manual page, but here are the salient facts: The file contains one or more line, each of which define one server. @item -Each line may contain an arbitrary number of token/value pairs. +Each line may contain an arbitrary number of token/value pairs. The valid tokens include @samp{machine}, @samp{login}, @samp{password}, @samp{default}. In addition Gnus introduces two new tokens, not present @@ -10573,7 +10573,7 @@ The default value is @lisp '(("nntpd 1\\.5\\.11t" - (remove-hook 'nntp-server-opened-hook + (remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader))) @end lisp @@ -10714,11 +10714,11 @@ define a server as follows: @lisp ;; Type `C-c C-c' after you've finished editing. ;; -;; "snews" is port 563 and is predefined +;; "snews" is port 563 and is predefined ;; in our /etc/services ;; (nntp "snews.bar.com" - (nntp-open-connection-function + (nntp-open-connection-function nntp-open-ssl-stream) (nntp-port-number "snews") (nntp-address "snews.bar.com")) @@ -10878,7 +10878,7 @@ Reading mail with a newsreader---isn't that just plain WeIrD? But of course. @menu -* Mail in a Newsreader:: Important introductory notes. +* Mail in a Newsreader:: Important introductory notes. * Getting Started Reading Mail:: A simple cookbook example. * Splitting Mail:: How to create mail groups. * Mail Sources:: How to tell Gnus where to get mail from. @@ -10897,11 +10897,11 @@ course. @node Mail in a Newsreader @subsection Mail in a Newsreader -If you are used to traditional mail readers, but have decided to switch +If you are used to traditional mail readers, but have decided to switch to reading mail with Gnus, you may find yourself experiencing something of a culture shock. -Gnus does not behave like traditional mail readers. If you want to make +Gnus does not behave like traditional mail readers. If you want to make it behave that way, you can, but it's an uphill battle. Gnus, by default, handles all its groups using the same approach. This @@ -10915,7 +10915,7 @@ Does this mean that all the messages that have been marked as read are deleted? How awful! But, no, it means that old messages are @dfn{expired} according to some -scheme or other. For news messages, the expire process is controlled by +scheme or other. For news messages, the expire process is controlled by the news administrator; for mail, the expire process is controlled by you. The expire process for mail is covered in depth in @pxref{Expiring Mail}. @@ -11071,7 +11071,7 @@ If you wish to see where the previous mail split put the messages, you can use the @kbd{M-x nnmail-split-history} command. If you wish to see where re-spooling messages would put the messages, you can use @code{gnus-summary-respool-trace} and related commands (@pxref{Mail -Group Commands}). +Group Commands}). Gnus gives you all the opportunity you could possibly want for shooting yourself in the foot. Let's say you create a group that will contain @@ -11146,8 +11146,8 @@ Or using the default file name: (file) @end lisp -If the mail spool file is not located on the local machine, it's best to -use POP or @sc{imap} or the like to fetch the mail. You can not use ange-ftp +If the mail spool file is not located on the local machine, it's best to +use POP or @sc{imap} or the like to fetch the mail. You can not use ange-ftp file names here---it has no way to lock the mail spool while moving the mail. @@ -11337,12 +11337,12 @@ from locking problems). Two example maildir mail sources: @lisp -(maildir :path "/home/user-name/Maildir/" +(maildir :path "/home/user-name/Maildir/" :subdirs ("cur" "new")) @end lisp @lisp -(maildir :path "/user@@remotehost.org:~/Maildir/" +(maildir :path "/user@@remotehost.org:~/Maildir/" :subdirs ("new")) @end lisp @@ -11435,8 +11435,8 @@ after finishing the fetch. An example @sc{imap} mail source: @lisp -(imap :server "mail.mycorp.com" - :stream kerberos4 +(imap :server "mail.mycorp.com" + :stream kerberos4 :fetchflag "\\Seen") @end lisp @@ -11476,8 +11476,8 @@ folder after finishing the fetch. An example webmail source: @lisp -(webmail :subtype 'hotmail - :user "user-name" +(webmail :subtype 'hotmail + :user "user-name" :password "secret") @end lisp @end table @@ -11495,7 +11495,7 @@ directory source to get mail, you can specify it as in this example: @lisp (setq mail-sources - '((directory :path "/home/pavel/.Spool/" + '((directory :path "/home/pavel/.Spool/" :suffix "" :plugged t))) @end lisp @@ -11704,7 +11704,7 @@ Let's look at an example value of this variable first: (any "procmail@@informatik\\.rwth-aachen\\.de" "procmail.list") (any "SmartList@@informatik\\.rwth-aachen\\.de" "SmartList.list") ;; Both lists below have the same suffix, so prevent - ;; cross-posting to mkpkg.list of messages posted only to + ;; cross-posting to mkpkg.list of messages posted only to ;; the bugs- list, but allow cross-posting when the ;; message was really cross-posted. (any "bugs-mypackage@@somewhere" "mypkg.bugs") @@ -12719,8 +12719,8 @@ itself puts *all* one's mail in one file; @code{nnfolder} provides a little bit of optimization to this so that each of one's mail groups has a Unix mail box file. It's faster than @code{nnmbox} because each group can be parsed separately, and still provides the simple Unix mail box -format requiring minimal effort in moving the mail around. In addition, -it maintains an ``active'' file making it much faster for Gnus to figure +format requiring minimal effort in moving the mail around. In addition, +it maintains an ``active'' file making it much faster for Gnus to figure out how many messages there are in each separate group. If you have groups that are expected to have a massive amount of @@ -12746,13 +12746,13 @@ and click, and there's the discussion. With mailing lists, you have to go through a cumbersome subscription procedure, and most people don't even know what a news group is. -The problem with this scenario is that web browsers are not very good at -being newsreaders. They do not keep track of what articles you've read; -they do not allow you to score on subjects you're interested in; they do +The problem with this scenario is that web browsers are not very good at +being newsreaders. They do not keep track of what articles you've read; +they do not allow you to score on subjects you're interested in; they do not allow off-line browsing; they require you to click around and drive you mad in the end. -So---if web browsers suck at reading discussion forums, why not use Gnus +So---if web browsers suck at reading discussion forums, why not use Gnus to do it instead? Gnus has been getting a bit of a collection of back ends for providing @@ -12769,7 +12769,7 @@ interfaces to these sources. All the web sources require Emacs/w3 and the url library to work. The main caveat with all these web sources is that they probably won't -work for a very long time. Gleaning information from the @sc{html} data +work for a very long time. Gleaning information from the @sc{html} data is guesswork at best, and when the layout is altered, the Gnus back end will fail. If you have reasonably new versions of these back ends, though, you should be ok. @@ -12971,7 +12971,7 @@ quite regular and nice interface, and it's possible to get the information Gnus needs to keep groups updated. The easiest way to get started with @code{nnultimate} is to say -something like the following in the group buffer: @kbd{B nnultimate @key{RET} +something like the following in the group buffer: @kbd{B nnultimate @key{RET} http://www.tcj.com/messboard/ubbcgi/ @key{RET}}. (Substitute the @sc{url} (not including @samp{Ultimate.cgi} or the like at the end) for a forum you're interested in; there's quite a list of them on the Ultimate web @@ -13032,12 +13032,12 @@ The password for your account on the web server. @cindex url @cindex Netscape -Gnus uses the url library to fetch web pages and Emacs/w3 to display web +Gnus uses the url library to fetch web pages and Emacs/w3 to display web pages. Emacs/w3 is documented in its own manual, but there are some things that may be more relevant for Gnus users. For instance, a common question is how to make Emacs/w3 follow links -using the @code{browse-url} functions (which will call some external web +using the @code{browse-url} functions (which will call some external web browser like Netscape). Here's one way: @lisp @@ -13722,7 +13722,7 @@ Here's an example: @lisp (setq gnus-post-method - '(nngateway + '(nngateway "mail2news@@replay.com" (nngateway-header-transformation nngateway-mail2news-header-transformation))) @@ -13771,7 +13771,7 @@ A server configuration in @code{~/.gnus} with a few @sc{imap} servers might look something like this: @lisp -(setq gnus-secondary-select-methods +(setq gnus-secondary-select-methods '((nnimap "simpleserver") ; no special configuration ; perhaps a ssh port forwarded server: (nnimap "dolk" @@ -13833,7 +13833,7 @@ Example server specification: @lisp (nnimap "mail.server.com" - (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" + (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" ("~friend/Mail/" . "list/*")))) @end lisp @@ -14041,7 +14041,7 @@ Neither did I, we need examples. @lisp (setq nnimap-split-rule - '(("INBOX.nnimap" + '(("INBOX.nnimap" "^Sender: owner-nnimap@@vic20.globalcom.se") ("INBOX.junk" "^Subject:.*MAKE MONEY") ("INBOX.private" ""))) @@ -15618,7 +15618,7 @@ returned is the local score file. Phu. For example, to do hierarchical scoring but use a non-server-specific overall score file, you could use the value @example -(list (lambda (group) ("all.SCORE")) +(list (lambda (group) ("all.SCORE")) 'gnus-score-find-hierarchical) @end example @@ -16297,7 +16297,7 @@ the @code{Xref} header. If you want to lower the score of articles that have been crossposted to more than, say, 3 groups: @lisp -("xref" +("xref" ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+" -1000 nil r)) @end lisp @@ -17533,7 +17533,7 @@ for composing mail and news while leaving the original frame intact. To accomplish that, something like the following can be done: @lisp -(message +(message (frame 1.0 (if (not (buffer-live-p gnus-summary-buffer)) (car (cdr (assoc 'group gnus-buffer-configuration))) @@ -17575,7 +17575,7 @@ windows resized. @subsection Example Window Configurations @itemize @bullet -@item +@item Narrow left hand side occupied by group buffer. Right hand side split between summary buffer (top one-sixth) and article buffer (bottom). @@ -18090,7 +18090,7 @@ never be totally undoable. @findex gnus-undo The undoability is provided by the @code{gnus-undo-mode} minor mode. It is used if @code{gnus-use-undo} is non-@code{nil}, which is the -default. The @kbd{C-M-_} key performs the @code{gnus-undo} +default. The @kbd{C-M-_} key performs the @code{gnus-undo} command, which should feel kinda like the normal Emacs @code{undo} command. @@ -18915,7 +18915,7 @@ If was released as ``Gnus 5.6'' on March 8th 1998 (46 releases). Gnus 5.6 begat Pterodactyl Gnus on August 29th 1998 and was released as ``Gnus 5.8'' (after 99 releases and a CVS repository) on December 3rd -1999. +1999. If you happen upon a version of Gnus that has a prefixed name -- ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' -- @@ -20150,7 +20150,7 @@ If you used procmail like in (setq nnmail-procmail-suffix "\\.in") @end lisp -this now has changed to +this now has changed to @lisp (setq mail-sources @@ -20179,7 +20179,7 @@ of variables starting with @code{gnus-treat-} have been added. @item The Gnus posting styles have been redone again and now works in a subtly different manner. -@item New web-based back ends have been added: @code{nnslashdot}, +@item New web-based back ends have been added: @code{nnslashdot}, @code{nnwarchive} and @code{nnultimate}. nnweb has been revamped, again, to keep up with ever-changing layouts. @@ -20258,16 +20258,16 @@ I guess most manuals are written after-the-fact; documenting a program that's already there. This is not how this manual is written. When implementing something, I write the manual entry for that something straight away. I then see that it's difficult to explain the -functionality, so I write how it's supposed to be, and then I change the +functionality, so I write how it's supposed to be, and then I change the implementation. Writing the documentation and writing the code goes hand in hand. This, of course, means that this manual has no, or little, flow. It documents absolutely everything in Gnus, but often not where you're -looking for it. It is a reference manual, and not a guide to how to get +looking for it. It is a reference manual, and not a guide to how to get started with Gnus. -That would be a totally different book, that should be written using the +That would be a totally different book, that should be written using the reference manual as source material. It would look quite differently. @@ -21488,8 +21488,8 @@ Below is a slightly shortened version of the @code{nndir} back end. "*Non-nil means that nndir will never retrieve NOV headers." nnml-nov-is-evil) -(defvoo nndir-current-group "" - nil +(defvoo nndir-current-group "" + nil nnml-current-group nnmh-current-group) (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory) (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail) @@ -21508,7 +21508,7 @@ Below is a slightly shortened version of the @code{nndir} back end. (unless (assq 'nndir-directory defs) (push `(nndir-directory ,server) defs)) (push `(nndir-current-group - ,(file-name-nondirectory + ,(file-name-nondirectory (directory-file-name nndir-directory))) defs) (push `(nndir-top-directory diff --git a/man/idlwave.texi b/man/idlwave.texi index d812156cf48..6cd3cb0f1b9 100644 --- a/man/idlwave.texi +++ b/man/idlwave.texi @@ -87,9 +87,9 @@ shell. * Getting Started:: Tutorial * The IDLWAVE Major Mode:: The mode to edit IDL programs * The IDLWAVE Shell:: The mode to run IDL as an inferior program -* Installation:: How to Install or Upgrade +* Installation:: How to Install or Upgrade * Acknowledgements:: Who did what -* Sources of Routine Info:: How does IDLWAVE know about routine XYZ +* Sources of Routine Info:: How does IDLWAVE know about routine XYZ * Configuration Examples:: The user is king... * Windows and MacOS:: What still works, and how * Index:: Fast access @@ -99,9 +99,9 @@ shell. Getting Started (Tutorial) -* Lesson I -- Development Cycle:: -* Lesson II -- Customization:: -* Lesson III -- Library Catalog:: +* Lesson I -- Development Cycle:: +* Lesson II -- Customization:: +* Lesson III -- Library Catalog:: The IDLWAVE Major Mode @@ -121,7 +121,7 @@ The IDLWAVE Major Mode Code Formatting * Code Indentation:: Reflecting the logical structure -* Continued Statement Indentation:: +* Continued Statement Indentation:: * Comment Indentation:: Special indentation for comment lines * Continuation Lines:: Splitting statements over lines * Syntax Highlighting:: Font-lock support @@ -131,7 +131,7 @@ Completion * Case of Completed Words:: CaseOFcomPletedWords * Object Method Completion and Class Ambiguity:: obj->Method, what? -* Object Method Completion in the Shell:: +* Object Method Completion in the Shell:: * Class and Keyword Inheritance:: obj->Method, _EXTRA=e * Structure Tag Completion:: Completing state.Tag @@ -145,17 +145,17 @@ The IDLWAVE Shell * Starting the Shell:: How to launch IDL as a subprocess * Using the Shell:: Interactively working with the Shell -* Commands Sent to the Shell:: -* Debugging IDL Programs:: -* Examining Variables:: -* Custom Expression Examination:: +* Commands Sent to the Shell:: +* Debugging IDL Programs:: +* Examining Variables:: +* Custom Expression Examination:: Debugging IDL Programs -* Debug Key Bindings:: -* Compiling Programs:: -* Breakpoints and Stepping:: -* Walking the Calling Stack:: +* Debug Key Bindings:: +* Compiling Programs:: +* Breakpoints and Stepping:: +* Walking the Calling Stack:: Installation @@ -192,7 +192,7 @@ inferior shell@footnote{Note that this package has nothing to do with the Interface Definition Language, part of the Common Object Request Broker Architecture (CORBA)}. It can also be used for editing source files for the related WAVE/CL language, but with only limited -support. +support. IDLWAVE consists of two main parts: a major mode for editing IDL source files files (@code{idlwave-mode}) and a mode for running the IDL program @@ -201,11 +201,11 @@ be used without the other, both work together closely to form a complete development environment. Here is a brief summary of what IDLWAVE does: @itemize @bullet -@item +@item Code indentation and formatting. @item Three level syntax highlighting support. -@item +@item Context-sensitive display of calling sequences and keywords for more than 1000 native IDL routines, extendible to any number of additional routines in your local IDL libraries. @@ -367,9 +367,9 @@ at point. @cindex Getting Started @menu -* Lesson I -- Development Cycle:: -* Lesson II -- Customization:: -* Lesson III -- Library Catalog:: +* Lesson I -- Development Cycle:: +* Lesson II -- Customization:: +* Lesson III -- Library Catalog:: @end menu @node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started @@ -412,13 +412,13 @@ function daynr,d,m,y y1 = y * delta return, d + floor(m1*30.6)+floor(y1*365.25)+5 end - + function weekday,day,month,year ;; compute weekday number for date nr = daynr(day,month,year) return, nr mod 7 end - + pro plot_wday,day,month ;; Plot the weekday of a date in the first 10 years of this century. years = 2000,+indgen(10) @@ -649,7 +649,7 @@ keys f5-f8 to common debugging commands. @section Lesson III: Library Catalog We have already used the routine info display in the first part of this -tutorial. This was the key @kbd{C-c ?} which displays information about +tutorial. This was the key @kbd{C-c ?} which displays information about the IDL routine near the cursor position. Wouldn't it be nice to have the same available for your own library routines and for the huge amount of code in major extension libraries like JHUPL or the @@ -727,7 +727,7 @@ them. @menu * Code Indentation:: Reflecting the logical structure -* Continued Statement Indentation:: +* Continued Statement Indentation:: * Comment Indentation:: Special indentation for comment lines * Continuation Lines:: Splitting statements over lines * Syntax Highlighting:: Font-lock support @@ -769,7 +769,7 @@ governed by a number of variables. IDLWAVE indents blocks (between @code{PRO}/@code{FUNCTION}/@code{BEGIN} and @code{END}), and continuation lines. -@defopt idlwave-main-block-indent (@code{0}) +@defopt idlwave-main-block-indent (@code{0}) Extra indentation for the main block of code. That is the block between the FUNCTION/PRO statement and the END statement for that program unit. @@ -966,7 +966,7 @@ in the first line of a comment paragraph. @defopt idlwave-use-last-hang-indent (@code{nil}) Non-@code{nil} means use last match on line for -@code{idlwave-indent-regexp}. +@code{idlwave-indent-regexp}. @end defopt @node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting @@ -994,7 +994,7 @@ for highlighting using the variable @defopt idlwave-default-font-lock-items Items which should be fontified on the default fontification level -2. +2. @end defopt @node Octals and Highlighting, , Syntax Highlighting, Code Formatting @@ -1071,7 +1071,7 @@ plot,x,alog(x+5*sin(x) + 2), On positions 1,2 and 8, information about the @samp{plot} procedure will be shown. On positions 3,4, and 7, the @samp{alog} function will be described, while positions 5 and 6 will investigate the @samp{sin} -function. +function. When you ask for routine information about an object method, and the method exists in several classes, IDLWAVE queries for the class of the @@ -1127,7 +1127,7 @@ split into the next two. @item @i{Other} @tab Any other routine with a file not known to be on the search path. @item @i{Unresolved} -@tab An otherwise unkown routine the shell lists as unresolved +@tab An otherwise unkown routine the shell lists as unresolved (referenced, but not compiled). @end multitable @@ -1162,7 +1162,7 @@ with the middle mouse button inserts keywords or visits files: @item @i{Usage} @tab If online help is installed, a click with the @emph{right} mouse button on the @i{Usage:} line will access the help for the -routine (@pxref{Online Help}). +routine (@pxref{Online Help}). @item @i{Keyword} @tab Online help about keywords is also available with the @emph{right} mouse button. Clicking on a keyword with the @emph{middle} @@ -1489,7 +1489,7 @@ available. @menu * Case of Completed Words:: CaseOFcomPletedWords * Object Method Completion and Class Ambiguity:: obj->Method, what? -* Object Method Completion in the Shell:: +* Object Method Completion in the Shell:: * Class and Keyword Inheritance:: obj->Method, _EXTRA=e * Structure Tag Completion:: Completing state.Tag @end menu @@ -1554,7 +1554,7 @@ narrow down the number of possible completions. The variable @code{idlwave-query-class} can be configured to make such prompting the default for all methods (not recommended), or selectively for very common methods for which the number of completing keywords would be too -large (e.g. @code{Init}). +large (e.g. @code{Init}). @cindex Saving object class on @code{->} @cindex @code{->} @@ -1646,7 +1646,7 @@ class. Non-@code{nil} means consider inheritance during completion, online help etc. @end defopt -@defopt idlwave-keyword-class-inheritance +@defopt idlwave-keyword-class-inheritance A list of regular expressions to match methods for which simple class-driven keyword inheritance will be used for Completion. @end defopt @@ -1676,7 +1676,7 @@ Structure tag completion is not enabled by default. To enable it, simply add the following to your @file{.emacs}: @lisp - (add-hook 'idlwave-load-hook + (add-hook 'idlwave-load-hook (lambda () (require 'idlw-complete-structtag))) @end lisp @@ -2069,7 +2069,7 @@ your @file{.emacs} file: (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<" '(capitalize-word 1) t) ;; Capitalize common block name - (idlwave-action-and-binding "\\<common\\>[ \t]+\\<" + (idlwave-action-and-binding "\\<common\\>[ \t]+\\<" '(capitalize-word 1) t))) @end lisp @@ -2231,10 +2231,10 @@ currently only works under Unix. @menu * Starting the Shell:: How to launch IDL as a subprocess * Using the Shell:: Interactively working with the Shell -* Commands Sent to the Shell:: -* Debugging IDL Programs:: -* Examining Variables:: -* Custom Expression Examination:: +* Commands Sent to the Shell:: +* Debugging IDL Programs:: +* Examining Variables:: +* Custom Expression Examination:: @end menu @node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell @@ -2260,7 +2260,7 @@ In order to create a separate frame for the IDLWAVE shell buffer, call @code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or @kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell window, configure the variable -@code{idlwave-shell-use-dedicated-frame}. +@code{idlwave-shell-use-dedicated-frame}. To launch a quick IDLWAVE shell directly from a shell prompt without an IDLWAVE buffer (e.g., as a replacement for running inside an xterm), @@ -2305,10 +2305,10 @@ Non-@code{nil} means preserve command history between sessions. @defopt idlwave-shell-command-history-file (@file{~/.idlwhist}) The file in which the command history of the idlwave shell is saved. @end defopt - + @defopt idlwave-shell-use-dedicated-frame (@code{nil}) Non-@code{nil} means IDLWAVE should use a special frame to display -shell buffer. +shell buffer. @end defopt @defopt idlwave-shell-frame-parameters @@ -2515,10 +2515,10 @@ buffers. @end defopt @menu -* Debug Key Bindings:: -* Compiling Programs:: -* Breakpoints and Stepping:: -* Walking the Calling Stack:: +* Debug Key Bindings:: +* Compiling Programs:: +* Breakpoints and Stepping:: +* Walking the Calling Stack:: @end menu @node Debug Key Bindings, Compiling Programs, Debugging IDL Programs, Debugging IDL Programs @@ -2575,12 +2575,12 @@ commands in the shell and source buffers. Can be one or more of @kindex C-c C-d C-c In order to compile the current buffer under the IDLWAVE shell, press @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the -current buffer and then sends the command @samp{.run path/to/file} to the -shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in +current buffer and then sends the command @samp{.run path/to/file} to the +shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in which case the most recently compiled buffer will be saved and re-compiled. -When developing or debugging a program, it is often necessary to execute +When developing or debugging a program, it is often necessary to execute the same command line many times. A convenient way to do this is @kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}). This command first resets IDL from a state of interrupted execution by @@ -2792,14 +2792,14 @@ the expression printed by IDL. @end defopt @defopt idlwave-shell-output-face -The face for @code{idlwave-shell-output-overlay}. +The face for @code{idlwave-shell-output-overlay}. Allows to choose the font, color and other properties for the most recent output of IDL when examining an expression." @end defopt @defopt idlwave-shell-separate-examine-output (@code{t}) If non-@code{nil}, re-direct the output of examine commands to a special -@file{*Examine*} buffer, instead of in the shell itself. +@file{*Examine*} buffer, instead of in the shell itself. @end defopt @node Custom Expression Examination, , Examining Variables, The IDLWAVE Shell @@ -2840,17 +2840,17 @@ single string argument sharing the syntax of the @lisp (add-hook 'idlwave-shell-mode-hook (lambda () - (idlwave-shell-define-key-both [s-down-mouse-2] - (idlwave-shell-mouse-examine + (idlwave-shell-define-key-both [s-down-mouse-2] + (idlwave-shell-mouse-examine "print, size(___,/DIMENSIONS)")) (idlwave-shell-define-key-both [f9] (idlwave-shell-examine "print, size(___,/DIMENSIONS)")) - (idlwave-shell-define-key-both [f10] (idlwave-shell-examine + (idlwave-shell-define-key-both [f10] (idlwave-shell-examine "print,size(___,/TNAME)")) (idlwave-shell-define-key-both [f11] (idlwave-shell-examine "help,___,/STRUCTURE")))) -@end lisp - +@end lisp + @noindent Now pressing @key{f9}, or middle-mouse dragging with the @key{SUPER} key depressed, will print the dimensions of the nearby or highlighted expression. Pressing @key{f10} will give the type string, @@ -2941,7 +2941,7 @@ to get a separate frame for the IDL shell, remove that command from your @lisp (setq idlwave-shell-use-dedicated-frame t) @end lisp -@item +@item The key sequence @kbd{M-@key{TAB}} no longer inserts a TAB character. Like in many other Emacs modes, @kbd{M-@key{TAB}} now does completion. Inserting a TAB has therefore been moved to @@ -2973,7 +2973,7 @@ of the package from version 3.0, during which time he overhauled almost everything, modernized IDLWAVE with many new features, and developed the manual. -@item +@item @uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current maintainer, as of version 4.10, helped shape object method completion and most new features introduced in versions 4.x. @@ -3051,14 +3051,14 @@ know about the accessible routines. several places: @enumerate -@item +@item @emph{Builtin routines} are defined inside IDL itself. The source code of such routines is not available. @item Routines which are @emph{part of the current program}, are defined in a file explicitly compiled by the user. This file may or may not be located on the IDL search path. -@item +@item @emph{Library routines} are defined in files located on IDL's search path, and will not need to be manually compiled. When a library routine is called for the first time, IDL will find the source file and compile @@ -3095,7 +3095,7 @@ by scanning the IDL manuals and is stored in the file @file{idlw-rinfo.el}. @xref{Documentation Scan}, for information on how to regenerate this file for new versions of IDL. -@item +@item It @emph{scans} all @emph{buffers} of the current Emacs session for routine definitions. This is done automatically when routine information or completion is first requested by the user. Each new @@ -3182,7 +3182,7 @@ or all directories on the search path. If you only want to have routine and completion info of some libraries, it is sufficient to scan those directories. However, if you want IDLWAVE to detect possible name conflicts with routines defined in other libraries, the whole pass -should be scanned. +should be scanned. After selecting directories, click on the @w{@samp{[Scan & Save]}} button in the widget to scan all files in the selected directories and @@ -3279,7 +3279,7 @@ Another way to find out if a specific routine has multiple definitions on the load path is routine info display (@pxref{Routine Info}). @node Documentation Scan, , Load-Path Shadows, Sources of Routine Info -@appendixsec Documentation Scan +@appendixsec Documentation Scan @cindex @file{get_rinfo} @cindex @file{idlw-rinfo.el} @cindex @file{idlw-help.txt} @@ -3370,7 +3370,7 @@ user is King! (setq idlwave-main-block-indent 3) (setq idlwave-end-offset -3) (setq idlwave-continuation-indent 1) -(setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" +(setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" ; anchored at start of line. (setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,> (setq idlwave-pad-keyword nil) ; Remove spaces for keyword '=' @@ -3424,10 +3424,10 @@ user is King! ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference. ;; Some personal abbreviations - (define-abbrev idlwave-mode-abbrev-table + (define-abbrev idlwave-mode-abbrev-table (concat idlwave-abbrev-start-char "wb") "widget_base()" (idlwave-keyword-abbrev 1)) - (define-abbrev idlwave-mode-abbrev-table + (define-abbrev idlwave-mode-abbrev-table (concat idlwave-abbrev-start-char "on") "obj_new()" (idlwave-keyword-abbrev 1)) )) @@ -3445,12 +3445,12 @@ user is King! (add-hook 'idlwave-shell-mode-hook (lambda () ;; Set up some custom key and mouse examine commands - (idlwave-shell-define-key-both [s-down-mouse-2] - (idlwave-shell-mouse-examine + (idlwave-shell-define-key-both [s-down-mouse-2] + (idlwave-shell-mouse-examine "print, size(___,/DIMENSIONS)")) (idlwave-shell-define-key-both [f9] (idlwave-shell-examine "print, size(___,/DIMENSIONS)")) - (idlwave-shell-define-key-both [f10] (idlwave-shell-examine + (idlwave-shell-define-key-both [f10] (idlwave-shell-examine "print,size(___,/TNAME)")) (idlwave-shell-define-key-both [f11] (idlwave-shell-examine "help,___,/STRUCTURE")))) @@ -3487,7 +3487,7 @@ system. I am assuming that IDLWAVE has been installed in @w{@samp{C:\RSI\IDL55}}. @lisp -;; location of the lisp files (needed if IDLWAVE is not part of +;; location of the lisp files (needed if IDLWAVE is not part of ;; the X/Emacs installation) (setq load-path (cons "c:/program files/IDLWAVE" load-path)) @@ -3510,7 +3510,7 @@ system. I am assuming that IDLWAVE has been installed in sure you check the following things: @itemize @bullet -@item When you download the IDLWAVE distribution, make sure you save the +@item When you download the IDLWAVE distribution, make sure you save the files under the names @file{idlwave.tar.gz} and @file{idlwave-help-tar.gz}. @item Be sure that your software for untarring/ungzipping is @emph{NOT} diff --git a/man/indent.texi b/man/indent.texi index 1a7310f8c80..3fb3718f85f 100644 --- a/man/indent.texi +++ b/man/indent.texi @@ -151,7 +151,7 @@ indentation for part of your text. @node Tab Stops, Just Spaces, Indentation Commands, Indentation @section Tab Stops -@cindex tab stops +@cindex tab stops @cindex using tab stops in making tables @cindex tables, indentation for @kindex M-i diff --git a/man/killing.texi b/man/killing.texi index f66fc6a20ad..4118a4c56f5 100644 --- a/man/killing.texi +++ b/man/killing.texi @@ -80,7 +80,7 @@ mode (@pxref{Transient Mark}). blank areas. * Killing by Lines:: How to kill entire lines of text at one time. * Other Kill Commands:: Commands to kill large regions of text and - syntactic units such as words and sentences. + syntactic units such as words and sentences. @end menu @need 1500 @@ -550,7 +550,7 @@ a line. @table @kbd @item C-x r k -Kill the text of the region-rectangle, saving its contents as the +Kill the text of the region-rectangle, saving its contents as the ``last killed rectangle'' (@code{kill-rectangle}). @item C-x r d Delete the text of the region-rectangle (@code{delete-rectangle}). @@ -641,6 +641,6 @@ if the string is wider than the rectangle, the text after the rectangle shifts right. @findex string-insert-rectangle - The command @kbd{M-x string-insert-rectangle} is similar to -@code{string-rectangle}, but inserts the string on each line, + The command @kbd{M-x string-insert-rectangle} is similar to +@code{string-rectangle}, but inserts the string on each line, shifting the original text to the right. diff --git a/man/macos.texi b/man/macos.texi index 6a7b291e7fa..7a266697781 100644 --- a/man/macos.texi +++ b/man/macos.texi @@ -173,7 +173,7 @@ EMACS_UNIBYTE=1 @section Volumes and Directories on the Mac @cindex file names (Mac OS) - The directory structure in the Mac OS is seen by Emacs as + The directory structure in the Mac OS is seen by Emacs as @example /@var{volumename}/@var{filename} diff --git a/man/maintaining.texi b/man/maintaining.texi index 1889ec2e725..9683ffa62d8 100644 --- a/man/maintaining.texi +++ b/man/maintaining.texi @@ -480,7 +480,7 @@ knows, and the file name rules for guessing the language. It also prints a list of all the available @code{etags} options, together with a short explanation. If followed by one or more @samp{--language=@var{lang}} options, prints detailed information about how tags are generated for -@var{lang}. +@var{lang}. @node Etags Regexps @subsection Etags Regexps diff --git a/man/mark.texi b/man/mark.texi index 09a567ea4c4..ec91e66fb21 100644 --- a/man/mark.texi +++ b/man/mark.texi @@ -162,7 +162,7 @@ This makes the mark active and thus begins highlighting of the region. As you move point, you will see the highlighted region grow and shrink. -@item +@item The mouse commands for specifying the mark also make it active. So do keyboard commands whose purpose is to specify a region, including @kbd{M-@@}, @kbd{C-M-@@}, @kbd{M-h}, @kbd{C-M-h}, @kbd{C-x C-p}, and diff --git a/man/message.texi b/man/message.texi index a4b046f8400..d26ae9a5e33 100644 --- a/man/message.texi +++ b/man/message.texi @@ -1092,8 +1092,8 @@ posting a prepared news message. Symbol naming a @sc{mime} charset. Non-ASCII characters in messages are assumed to be encoded using this charset. The default is @code{nil}, which means ask the user. (This variable is used only on non-@sc{mule} -Emacsen. -@xref{Charset Translation, , Charset Translation, emacs-mime, +Emacsen. +@xref{Charset Translation, , Charset Translation, emacs-mime, Emacs MIME Manual}, for details on the @sc{mule}-to-@sc{mime} translation process. diff --git a/man/mh-e.texi b/man/mh-e.texi index eb8ba5b8b0a..406506d36a0 100644 --- a/man/mh-e.texi +++ b/man/mh-e.texi @@ -1,5 +1,5 @@ \input texinfo @c -*-texinfo-*- -@c $Id: mh-e.texi,v 1.12 2001/09/12 20:59:49 rms Exp $ +@c $Id: mh-e.texi,v 1.13 2002/10/02 23:24:31 karl Exp $ @c %**start of header @setfilename ../info/mh-e @settitle mh-e @@ -78,9 +78,9 @@ MH}, last updated @value{UPDATED} for mh-e Version @value{VERSION}. list and FAQ. * History:: The authors speak up! * Copying:: The GNU General Public License -* Command Index:: -* Variable Index:: -* Concept Index:: +* Command Index:: +* Variable Index:: +* Concept Index:: @end menu @end ifnottex @@ -154,12 +154,12 @@ the other two as you wish. @menu * Conventions:: GNU Emacs Terms and Conventions -* Getting Started:: -* Sending Mail Tour:: -* Reading Mail Tour:: -* Processing Mail Tour:: -* Leaving mh-e:: -* More About mh-e:: +* Getting Started:: +* Sending Mail Tour:: +* Reading Mail Tour:: +* Processing Mail Tour:: +* Leaving mh-e:: +* More About mh-e:: @end menu @node Conventions, Getting Started, Tour Through mh-e, Tour Through mh-e @@ -626,13 +626,13 @@ conventions are strange to you. Let's get started! @menu -* Reading Mail:: -* Sending Mail:: -* Draft Editing:: -* Moving Mail:: -* Searching:: -* Sequences:: -* Miscellaneous:: +* Reading Mail:: +* Sending Mail:: +* Draft Editing:: +* Moving Mail:: +* Searching:: +* Sequences:: +* Miscellaneous:: @end menu @node Reading Mail, Sending Mail, Using mh-e, Using mh-e @@ -700,8 +700,8 @@ Toggle between MH-Folder and MH-Folder Show modes (@code{mh-toggle-showing}). @end table @menu -* Viewing:: -* Moving Around:: +* Viewing:: +* Moving Around:: @end menu @node Viewing, Moving Around, Reading Mail, Reading Mail @@ -724,8 +724,8 @@ to see all of them, use the @kbd{,} (comma; @code{mh-header-display}) command. @menu -* Reading Digests:: -* Reading MIME:: +* Reading Digests:: +* Reading MIME:: @end menu @node Reading Digests, Reading MIME, Viewing, Viewing @@ -896,10 +896,10 @@ buffer on top and the draft on the bottom. If you would rather preserve the window layout, use @kbd{M-x mh-smail-other-window}. @menu -* Replying:: -* Forwarding:: -* Redistributing:: -* Old Drafts:: +* Replying:: +* Forwarding:: +* Redistributing:: +* Old Drafts:: @end menu @node Replying, Forwarding, Sending Mail, Sending Mail @@ -1096,10 +1096,10 @@ Quit editing and delete draft message (@code{mh-fully-kill-draft}). @end table @menu -* Editing Textual:: -* Editing MIME:: -* Sending Message:: -* Killing Draft:: +* Editing Textual:: +* Editing MIME:: +* Sending Message:: +* Killing Draft:: @end menu @node Editing Textual, Editing MIME, Draft Editing, Draft Editing @@ -1110,11 +1110,11 @@ The commands described here are also applicable to messages that have multimedia components. @menu -* Inserting Letter:: -* Inserting Messages:: -* Header:: -* Recipients:: -* Signature:: +* Inserting Letter:: +* Inserting Messages:: +* Header:: +* Recipients:: +* Signature:: @end menu @node Inserting Letter, Inserting Messages, Editing Textual, Editing Textual @@ -1242,7 +1242,7 @@ the content types that mh-e currently knows about. Several of the mh-e commands fill in the content type for you, whereas others require you to enter one. Most of the time, it should be obvious which one to use (e.g., use @kbd{image/jpeg} to include a @sc{jpeg} image). If not, you -can refer to @sc{rfc} 1521, +can refer to @sc{rfc} 1521, @c Footnotes are very fragile. Hence the duplication. @c The line break in the footnote was necessary since TeX wasn't creating one. @ifclear html @@ -1269,11 +1269,11 @@ multimedia fields unless the content description is compelling. Remember: you can always add @code{mhn} directives by hand. @menu -* Forwarding MIME:: -* FTP:: -* Tar:: -* Other MIME Objects:: -* Sending MIME:: +* Forwarding MIME:: +* FTP:: +* Tar:: +* Other MIME Objects:: +* Sending MIME:: @end menu @node Forwarding MIME, FTP, Editing MIME, Editing MIME @@ -1518,12 +1518,12 @@ Quit (@code{mh-quit}). @end table @menu -* Incorporating:: -* Deleting:: -* Organizing:: -* Printing:: -* Files and Pipes:: -* Finishing Up:: +* Incorporating:: +* Deleting:: +* Organizing:: +* Printing:: +* Files and Pipes:: +* Finishing Up:: @end menu @node Incorporating, Deleting, Moving Mail, Moving Mail @@ -1958,7 +1958,7 @@ always be included with any bug report you submit (@pxref{Bug Reports}). @chapter Customizing mh-e Until now, we've talked about the mh-e commands as they work ``out of the -box.'' Of course, it is also possible to reconfigure mh-e +box.'' Of course, it is also possible to reconfigure mh-e to fit the needs of even the most demanding user. The following sections describe all of the customization variables, show the defaults, and make recommendations for @@ -2067,11 +2067,11 @@ avoid conflicts with existing mh-e symbols, use a prefix like @code{my-} or your initials. @menu -* Customizing Reading:: -* Customizing Sending:: -* Customizing Draft Editing:: -* Customizing Moving Mail:: -* Customizing Searching:: +* Customizing Reading:: +* Customizing Sending:: +* Customizing Draft Editing:: +* Customizing Moving Mail:: +* Customizing Searching:: @end menu @node Customizing Reading, Customizing Sending, Customizing mh-e, Customizing mh-e @@ -2279,8 +2279,8 @@ key bindings, for example: @end lisp @menu -* Customizing Viewing:: -* Customizing Moving Around:: +* Customizing Viewing:: +* Customizing Moving Around:: @end menu @node Customizing Viewing, Customizing Moving Around, Customizing Reading, Customizing Reading @@ -2526,10 +2526,10 @@ This function is passed three arguments: the contents of the @samp{To:}, @samp{Subject:}, and @samp{cc:} header fields. @menu -* Customizing Replying:: -* Customizing Forwarding:: -* Customizing Redistributing:: -* Customizing Old Drafts:: +* Customizing Replying:: +* Customizing Forwarding:: +* Customizing Redistributing:: +* Customizing Old Drafts:: @end menu @node Customizing Replying, Customizing Forwarding, Customizing Sending, Customizing Sending @@ -2665,9 +2665,9 @@ MH program used to send messages (default: @samp{"send"}). @end table @menu -* Customizing Editing Textual:: -* Customizing Editing MIME:: -* Customizing Sending Message:: +* Customizing Editing Textual:: +* Customizing Editing MIME:: +* Customizing Sending Message:: @end menu @node Customizing Editing Textual, Customizing Editing MIME, Customizing Draft Editing, Customizing Draft Editing @@ -2678,8 +2678,8 @@ edit a draft. The discussion here applies to editing multimedia messages as well. @menu -* Customizing Inserting Letter:: -* Customizing Signature:: +* Customizing Inserting Letter:: +* Customizing Signature:: @end menu @node Customizing Inserting Letter, Customizing Signature, Customizing Editing Textual, Customizing Editing Textual @@ -2711,7 +2711,7 @@ default, which means that when a message is inserted into the letter, each line is prefixed by @code{mh-ins-buf-prefix}. Otherwise, it can be set to a function that modifies an included @cindex Emacs, packages, supercite -citation. +citation. @c Footnotes are fragile; hence the redundancy. @c TeX not inserting a line break; hence the @* @ifclear html @@ -2805,7 +2805,7 @@ like: @samp{You should be <bold>very</bold>}. You may also be interested in investigating @code{sgml-mode}. @menu -* Customizing Sending MIME:: +* Customizing Sending MIME:: @end menu @node Customizing Sending MIME, , Customizing Editing MIME, Customizing Editing MIME @@ -2896,7 +2896,7 @@ Program to scan messages (default: @samp{"scan"}). @item mh-before-quit-hook Functions to run before quitting (default: @code{nil}). See also -@code{mh-quit-hook}. +@code{mh-quit-hook}. @item mh-quit-hook Functions to run after quitting (default: @code{nil}). See also @@ -2904,12 +2904,12 @@ Functions to run after quitting (default: @code{nil}). See also @end table @menu -* Customizing Incorporating:: -* Customizing Deleting:: -* Customizing Organizing:: -* Customizing Printing:: -* Customizing Files and Pipes:: -* Customizing Finishing Up:: +* Customizing Incorporating:: +* Customizing Deleting:: +* Customizing Organizing:: +* Customizing Printing:: +* Customizing Files and Pipes:: +* Customizing Finishing Up:: @end menu @node Customizing Incorporating, Customizing Deleting, Customizing Moving Mail, Customizing Moving Mail @@ -3076,7 +3076,7 @@ override any arguments given in a @code{sortm:} entry in your MH profile (@file{~/.mh_profile}). @menu -* Customizing Scan Line Formats:: +* Customizing Scan Line Formats:: @end menu @node Customizing Scan Line Formats, , Customizing Organizing, Customizing Organizing @@ -3280,7 +3280,7 @@ mh-e context, so you might use it to modify the window setup. If you find that you do the same thing over and over when editing the search template, you may wish to bind some shortcuts to keys. This can be done with the variable @code{mh-pick-mode-hook}, which is called when -@kbd{M-s} (@code{mh-search-folder}) is run on a new pattern. +@kbd{M-s} (@code{mh-search-folder}) is run on a new pattern. The string @code{mh-partial-folder-mode-line-annotation} is used to annotate the @@ -3302,10 +3302,10 @@ you how to report bugs and how to get on the mh-e mailing list. I also point out some additional sources of information. @menu -* Bug Reports:: -* Mailing List:: -* MH FAQ:: -* Getting mh-e:: +* Bug Reports:: +* Mailing List:: +* MH FAQ:: +* Getting mh-e:: @end menu @node Bug Reports, Mailing List, Odds and Ends, Odds and Ends @@ -3413,9 +3413,9 @@ Bill Wohler then took over in 2000 and moved its development to @uref{http://sourceforge.net/, SourceForge}. @menu -* From Brian Reid:: -* From Jim Larus:: -* From Stephen Gildea:: +* From Brian Reid:: +* From Jim Larus:: +* From Stephen Gildea:: @end menu @node From Brian Reid, From Jim Larus, History, History @@ -3899,7 +3899,7 @@ when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 20@var{yy} @var{name of author} Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome -to redistribute it under certain conditions; type `show c' +to redistribute it under certain conditions; type `show c' for details. @end smallexample @@ -3917,7 +3917,7 @@ necessary. Here is a sample; alter the names: @group Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' -(which makes passes at compilers) written +(which makes passes at compilers) written by James Hacker. @var{signature of Ty Coon}, 1 April 1989 diff --git a/man/misc.texi b/man/misc.texi index 8f9ba69a06b..9ee73fcf007 100644 --- a/man/misc.texi +++ b/man/misc.texi @@ -47,7 +47,7 @@ To start Gnus, type @kbd{M-x gnus @key{RET}}. As opposed to most normal Emacs packages, Gnus uses a number of different buffers to display information and to receive commands. The three buffers users spend most of their time in are the @dfn{group -buffer}, the @dfn{summary buffer} and the @dfn{article buffer}. +buffer}, the @dfn{summary buffer} and the @dfn{article buffer}. The @dfn{group buffer} contains a list of groups. This is the first buffer Gnus displays when it starts up. It normally displays only the @@ -161,7 +161,7 @@ In the group buffer, select the group on the line under the cursor and display the first unread article in that group. @need 1000 -In the summary buffer, +In the summary buffer, @itemize @bullet @item @@ -291,7 +291,7 @@ Save articles. @xref{Saving Articles, , , gnus, The Gnus Manual}. @item Have Gnus score articles according to various criteria, like author name, subject, or string in the body of the articles.@* -@xref{Scoring, , , gnus, The Gnus Manual}. +@xref{Scoring, , , gnus, The Gnus Manual}. @item Send an article to a newsgroup.@* diff --git a/man/msdog.texi b/man/msdog.texi index 5273b28f7d6..6be4f703f79 100644 --- a/man/msdog.texi +++ b/man/msdog.texi @@ -1,9 +1,9 @@ @c This is part of the Emacs manual. -@c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001 +@c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001 @c Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node MS-DOS, Manifesto, Mac OS, Top -@appendix Emacs and MS-DOS +@appendix Emacs and MS-DOS @cindex MS-DOG @cindex MS-DOS peculiarities @@ -837,7 +837,7 @@ key invokes the Windows menu. The reason is that the @key{ALT} also serves as @key{META} in Emacs. When using Emacs, users often press the @key{META} key temporarily and then change their minds; if this has the effect of bringing up the Windows menu, it alters the meaning of -subsequent commands. Many users find this frustrating. +subsequent commands. Many users find this frustrating. @vindex w32-pass-alt-to-system You can reenable Windows's default handling of tapping the @key{ALT} key diff --git a/man/mule.texi b/man/mule.texi index 6c401417703..ccba75e9327 100644 --- a/man/mule.texi +++ b/man/mule.texi @@ -477,7 +477,7 @@ Display a list of all the supported input methods. input method name from the minibuffer; the name normally starts with the language environment that it is meant to be used with. The variable @code{current-input-method} records which input method is selected. - + @findex toggle-input-method @kindex C-\ Input methods use various sequences of ASCII characters to stand for diff --git a/man/pcl-cvs.texi b/man/pcl-cvs.texi index c6457237842..04952efd3cb 100644 --- a/man/pcl-cvs.texi +++ b/man/pcl-cvs.texi @@ -1,5 +1,5 @@ \input texinfo @c -*-texinfo-*- -@c "@(#)$Name: $:$Id: pcl-cvs.texi,v 1.17 2002/10/02 23:24:31 karl Exp $" +@c "@(#)$Name: $:$Id: pcl-cvs.texi,v 1.18 2002/12/07 13:38:26 pj Exp $" @c %**start of header @setfilename ../info/pcl-cvs @settitle PCL-CVS --- Emacs Front-End to CVS @@ -101,18 +101,18 @@ of the various commands and major modes for further information. About PCL-CVS * Contributors:: Contributors to PCL-CVS. -* Installation:: +* Installation:: Commands * Entering PCL-CVS:: Commands to invoke PCL-CVS * Setting flags:: Setting flags for CVS commands -* Updating the buffer:: +* Updating the buffer:: * Movement commands:: How to move up and down in the buffer * Marking files:: How to mark files that other commands will later operate on. * Committing changes:: Checking in your modifications to the - CVS repository. + CVS repository. * Editing files:: Loading files into Emacs. * Getting info about files:: Display the log and status of files. * Adding and removing files:: Adding and removing files @@ -127,7 +127,7 @@ Commands Customization -* Customizing Faces:: +* Customizing Faces:: @end detailmenu @end menu @@ -157,7 +157,7 @@ As of Emacs 21, PCL-CVS is part of the standard Emacs distribution. @menu * Contributors:: Contributors to PCL-CVS. -* Installation:: +* Installation:: @end menu @node Contributors, Installation, About PCL-CVS, About PCL-CVS @@ -250,7 +250,7 @@ If you are running XEmacs 21.0 or later, PCL-CVS is available in pre-compiled package form. Please refer to the XEmacs manual for instructions regarding package selection and installation. Currently, that PCL-CVS package also requires you to have installed the -@file{xemacs-base}, @file{elib}, and @file{dired} packages. +@file{xemacs-base}, @file{elib}, and @file{dired} packages. If you have @TeX{} installed at your site, you can make a typeset manual from @file{pcl-cvs.texi}. @@ -318,7 +318,7 @@ In directory sub: In this example, your repository is in @file{/usr/CVSroot} and CVS has been run in the directory @file{/users/ceder/FOO/test}. The three files -(@file{bar}, @file{file.txt} and +(@file{bar}, @file{file.txt} and @file{newer}) that are marked with @samp{Need-Update} have been changed by someone else in the CVS repository. Two files (@file{namechange} and @file{sub/ChangeLog}) have been modified locally, and need to be @@ -523,12 +523,12 @@ you can use in PCL-CVS. They are grouped together by type. @menu * Entering PCL-CVS:: Commands to invoke PCL-CVS * Setting flags:: Setting flags for CVS commands -* Updating the buffer:: +* Updating the buffer:: * Movement commands:: How to move up and down in the buffer * Marking files:: How to mark files that other commands will later operate on. * Committing changes:: Checking in your modifications to the - CVS repository. + CVS repository. * Editing files:: Loading files into Emacs. * Getting info about files:: Display the log and status of files. * Adding and removing files:: Adding and removing files @@ -554,13 +554,13 @@ you can use in PCL-CVS. They are grouped together by type. Most commands in PCL-CVS require that you have a @samp{*cvs*} buffer. The commands that you use to get one are listed below. -For each, a @samp{cvs} process will be run, the output will be parsed by +For each, a @samp{cvs} process will be run, the output will be parsed by PCL-CVS, and the result will be printed in the @samp{*cvs*} buffer (see @ref{Buffer contents}, for a description of the buffer's contents). @table @kbd @item M-x cvs-update -Run a @samp{cvs update} command. You will be asked for the directory +Run a @samp{cvs update} command. You will be asked for the directory in which the @samp{cvs update} will be run. @item M-x cvs-examine @@ -570,7 +570,7 @@ not change anything. You will be asked for the directory in which the @samp{cvs -n update} will be run. @item M-x cvs-status -Run a @samp{cvs status} command. You will be asked for the directory +Run a @samp{cvs status} command. You will be asked for the directory in which the @samp{cvs status} will be run. @item M-x cvs-checkout @@ -1307,7 +1307,7 @@ newline in the commit message buffer. @findex cvs-mode-changelog-commit @item log-edit-changelog-full-paragraphs If this variable is non-@code{nil}, include full @file{ChangeLog} -paragraphs in the CVS log created by @samp{cvs-mode-changelog-commit}. +paragraphs in the CVS log created by @samp{cvs-mode-changelog-commit}. This may be set in the local variables section of a @file{ChangeLog} file, to indicate the policy for that @file{ChangeLog}. @@ -1338,7 +1338,7 @@ default. @menu -* Customizing Faces:: +* Customizing Faces:: @end menu @node Customizing Faces, , Customization, Customization @@ -1365,7 +1365,7 @@ used to highlight file names. used to highlight the status of files which are @samp{Unknown}. @item cvs-handled-face -used to highlight the status of files which are handled and +used to highlight the status of files which are handled and need no further action. @item cvs-need-action-face diff --git a/man/programs.texi b/man/programs.texi index ab557d4522d..1e15aa985c8 100644 --- a/man/programs.texi +++ b/man/programs.texi @@ -1400,7 +1400,7 @@ display, so you can use it even on read-only buffers. You can use the command @kbd{M-x glasses-mode} to enable or disable the mode in the current buffer; you can also add @code{glasses-mode} to the mode hook of the programming language major modes in which you normally want -to use Glasses mode. +to use Glasses mode. @node Misc for Programs @section Other Features Useful for Editing Programs diff --git a/man/reftex.texi b/man/reftex.texi index 9d388d66b60..449efce9ce5 100644 --- a/man/reftex.texi +++ b/man/reftex.texi @@ -116,7 +116,7 @@ Introduction * Installation:: How to install and activate RefTeX. * RefTeX in a Nutshell:: A brief summary and quick guide. - + Labels and References * Creating Labels:: @@ -287,7 +287,7 @@ additional labeled environments you have defined yourself (variable @itemize @bullet @item -@b{Creating Labels}@* +@b{Creating Labels}@* Type @kbd{C-c (} (@code{reftex-label}) to insert a label at point. @b{Ref@TeX{}} will either @itemize @minus @@ -295,7 +295,7 @@ Type @kbd{C-c (} (@code{reftex-label}) to insert a label at point. derive a label from context (default for section labels) @item prompt for a label string (default for figures and tables) or -@item +@item insert a simple label made of a prefix and a number (all other environments)@refill @end itemize @@ -415,7 +415,7 @@ can do in each of the different special buffers, press @kbd{?}. Read the manual if you get stuck, of if you are curious what else might be available. The first part of the manual explains in a tutorial way how to use and customize @b{Ref@TeX{}}. The second -part is a command and variable reference.@refill +part is a command and variable reference.@refill @end enumerate @node Table of Contents, Labels and References, Introduction, Top @@ -514,7 +514,7 @@ Kill the @file{*toc*} buffer, return to the position where @item C-c > Switch to the @file{*Index*} buffer of this document. With prefix -@samp{2}, restrict the index to the section at point in the @file{*toc*} +@samp{2}, restrict the index to the section at point in the @file{*toc*} buffer. @tablesubheading{Controlling what gets displayed} @@ -550,7 +550,7 @@ Toggle the display of index entries in the @file{*toc*} buffer. The default for this flag can be set with the variable @code{reftex-toc-include-index-entries}. When called with a prefix argument, @b{Ref@TeX{}} will prompt for a specific index and include -only entries in the selected index in the @file{*toc*} buffer. The mode +only entries in the selected index in the @file{*toc*} buffer. The mode line @samp{I<>} indicator shows which index is used.@refill @item c @@ -799,7 +799,7 @@ Goto next section heading. Goto previous section heading. @item N z -Jump to section N, using the prefix arg. For example @kbd{3 z} jumps to +Jump to section N, using the prefix arg. For example @kbd{3 z} jumps to section 3.@refill @tablesubheading{Displaying Context} @@ -893,7 +893,7 @@ buffer.@refill @tablesubheading{Controlling what gets displayed} @vindex reftex-label-menu-flags -The defaults for the following flags can be configured with the variable +The defaults for the following flags can be configured with the variable @code{reftex-label-menu-flags} (@pxref{Options (Referencing Labels)}). @item c @@ -906,7 +906,7 @@ selection buffer.@refill @item t Toggle the display of the table of contents in the selection buffer. -With prefix @var{arg}, change the maximum level of toc entries displayed +With prefix @var{arg}, change the maximum level of toc entries displayed to @var{arg}. Chapters are level 1, section are level 2.@refill @item # @@ -1320,7 +1320,7 @@ Again, here the configuration in the customization buffer: @example [INS] [DEL] Package or Detailed : [Value Menu] Detailed: Environment or \macro : [Value Menu] String: \myfig[]@{@}@{@}@{*@}@{@} - Type specification : [Value Menu] Char : f + Type specification : [Value Menu] Char : f Label prefix string : [Value Menu] Default Label reference format: [Value Menu] Default Context method : [Value Menu] Macro arg nr: 3 @@ -1417,7 +1417,7 @@ Here is the setup:@refill (defun detect-be-ee (bound) ;; Search backward for the macros or an empty line - (if (re-search-backward + (if (re-search-backward "\\(^[ \t]*\n\\|\\\\ee\\>\\)\\|\\(\\\\be\\>\\)" bound t) (if (match-beginning 2) (match-beginning 2) ; Return start of environment @@ -1456,14 +1456,14 @@ for @b{Ref@TeX{}}. (defun detect-linguex (bound) (let ((cnt 0)) (catch 'exit - (while + (while ;; Search backward for all possible delimiters (re-search-backward (concat "\\(^[ \t]*\n\\)\\|\\(\\\\z\\.\\)\\|" "\\(\\ex[ig]?\\.\\)\\|\\(\\\\a\\.\\)") nil t) ;; Check which delimiter was matched. - (cond + (cond ((match-beginning 1) ;; empty line terminates all - return nil (throw 'exit nil)) @@ -1784,7 +1784,7 @@ SELECT A CITATION FORMAT Following the most generic of these packages, @code{natbib}, the builtin citation packages always accept the @kbd{t} key for a @emph{textual} -citation (like: @code{Jones et al. (1997) have shown...}) as well as +citation (like: @code{Jones et al. (1997) have shown...}) as well as the @kbd{p} key for a parenthetical citation (like: @code{As shown earlier (Jones et al, 1997)}).@refill @@ -2015,13 +2015,13 @@ repeat @var{word} outside the macro.@refill Phrases for indexing can be collected while writing the document. The command @kbd{C-c \} (@code{reftex-index-phrase-selection-or-word}) -copies the current selection (if active) or the word near point into the +copies the current selection (if active) or the word near point into the phrases buffer. It then selects this buffer, so that the phrase line can be edited. To return to the LaTeX document, press @kbd{C-c C-c} (@code{reftex-index-phrases-save-and-return}). You can also prepare the list of index phrases in a different way and -copy it into the phrases file. For example you might want to start from +copy it into the phrases file. For example you might want to start from a word list of the document and remove all words which should not be indexed. @@ -2030,7 +2030,7 @@ The phrase lines in the phrase buffer must have a specific format. format. A phrase line looks like this: @example -[@var{key}] <TABs> @var{phrase} [<TABs> @var{arg}[&&@var{arg}]... [ || @var{arg}]...] +[@var{key}] <TABs> @var{phrase} [<TABs> @var{arg}[&&@var{arg}]... [ || @var{arg}]...] @end example @code{<TABs>} stands for white space containing at least one @key{TAB}. @@ -2124,7 +2124,7 @@ may not last long enough to do everything in one go.@refill @b{Ref@TeX{}} will start at the first phrase line and search the phrase globally in the whole document. At each match it will stop, compute the replacement string and offer you the following choices@footnote{Windows -users: Restrict yourself to the described keys during indexing. Pressing +users: Restrict yourself to the described keys during indexing. Pressing @key{Help} at the indexing prompt can apparently hang Emacs.}:@refill @table @kbd @@ -2238,7 +2238,7 @@ Prefix argument. @tablesubheading{Moving around} @item ! A..Z Pressing any capital letter will jump to the corresponding section in -the @file{*Index*} buffer. The exclamation mark is special and jumps to +the @file{*Index*} buffer. The exclamation mark is special and jumps to the first entries alphabetically sorted below @samp{A}. These are usually non-alphanumeric characters.@refill @item n @@ -2248,7 +2248,7 @@ Go to previous entry.@refill @tablesubheading{Access to document locations} @item @key{SPC} -Show the place in the document where this index entry is defined.@refill +Show the place in the document where this index entry is defined.@refill @item @key{TAB} Go to the definition of the current index entry in another @@ -2299,19 +2299,19 @@ prefix, kill the entire @var{visual} part.@refill @item ( Toggle the beginning of page range property @samp{|(} of the -entry.@refill +entry.@refill @item ) -Toggle the end of page range property @samp{|)} of the entry.@refill +Toggle the end of page range property @samp{|)} of the entry.@refill @item _ Make the current entry a subentry. This command will prompt for the superordinate entry and insert it.@refill @item ^ -Remove the highest superordinate entry. If the current entry is a +Remove the highest superordinate entry. If the current entry is a subitem (@samp{aaa!bbb!ccc}), this function moves it up the hierarchy -(@samp{bbb!ccc}).@refill +(@samp{bbb!ccc}).@refill @tablesubheading{Exiting} @item q @@ -2364,7 +2364,7 @@ buffer.@refill @item s Switch to a different index (for documents with multiple -indices).@refill +indices).@refill @end table @@ -2427,7 +2427,7 @@ quick identification of these macros when @b{Ref@TeX{}} inserts new index entries with @code{reftex-index}. These codes need to be unique. @code{?i}, @code{?I}, and @code{?g} are reserved for the @code{\index}, @code{\index*}, and @code{\glossary} macros, -respectively. +respectively. The following string is empty unless your macro adds a superordinate entry to the index key - this is the case for the @code{\astobj} macro. @@ -2450,14 +2450,14 @@ Repeat: Macro with args: \ix@{*@} Index Tag : [Value Menu] String: idx Access Key : x - Key Prefix : + Key Prefix : Exclusion hook : nil Repeat Outside : [Toggle] off (nil) [INS] [DEL] List: Macro with args: \nindex@{*@} Index Tag : [Value Menu] String: name Access Key : n - Key Prefix : + Key Prefix : Exclusion hook : nil Repeat Outside : [Toggle] off (nil) [INS] [DEL] List: @@ -2558,7 +2558,7 @@ and @code{\glossary} macros, all macros configured in While the display of cross referencing information for the above mentioned macros is hard--coded, you can configure additional relations in the variable @code{reftex-view-crossref-extra}. - + @iftex @chapter All the Rest @end iftex @@ -2748,7 +2748,7 @@ see @ref{Adding Magic Words}. @vindex reftex-multiref-punctuation @vindex reftex-cite-punctuation -@item +@item @b{Ref@TeX{}} inserts ``punctuation'' for multiple references and for the author list in citations. Some of this may be language dependent. See the variables @code{reftex-multiref-punctuation} and @@ -2802,7 +2802,7 @@ variables and configure @b{Ref@TeX{}} to use them instead: Specify the full search path directly in @b{Ref@TeX{}}'s variables. @lisp -(setq reftex-texpath-environment-variables +(setq reftex-texpath-environment-variables '("./inp:/home/cd/tex//:/usr/local/tex//")) (setq reftex-bibpath-environment-variables '("/home/cd/tex/lit/")) @@ -2820,7 +2820,7 @@ command depends upon the version of that program. (setq reftex-use-external-file-finders t) (setq reftex-external-file-finders '(("tex" . "kpsewhich -format=.tex %f") - ("bib" . "kpsewhich -format=.bib %f"))) + ("bib" . "kpsewhich -format=.bib %f"))) @end lisp @end itemize @@ -2835,9 +2835,9 @@ the new extension must also be known to AUCTeX via the variable @code{TeX-file-extension}. For example: @lisp -(setq reftex-file-extensions +(setq reftex-file-extensions '(("nw" "tex" ".tex" ".ltx") ("bib" ".bib"))) -(setq TeX-file-extensions +(setq TeX-file-extensions '( "nw" "tex" "sty" "cls" "ltx" "texi" "texinfo")) @end lisp @@ -3148,7 +3148,7 @@ file @file{natbib.el} for the Natbib citation style does switch (reftex-set-cite-format 'natbib)))) @end lisp -@findex reftex-add-index-macros +@findex reftex-add-index-macros The hook may contain a call to @code{reftex-add-index-macros} to define additional @code{\index}-like macros. The argument must have the same format as @code{reftex-index-macros}. It may be a symbol, to @@ -3282,7 +3282,7 @@ literally for speed reasons. Then both short context and section headings may look different from what you usually see on your screen. In rare cases @code{reftex-toc} may have problems to jump to an affected section heading. There are three possible ways to deal with -this:@refill +this:@refill @itemize @minus @item @vindex reftex-keep-temporary-buffers @@ -3332,7 +3332,7 @@ The first line is just a normal configuration for a macro. For the argument (which really is a second argument to the macro @code{\begin}) as a label of type @code{?p}. Argument count for this macro starts only after the @samp{@{step+@}}, also when specifying how to get -context.@refill +context.@refill @item @b{Idle timers in XEmacs}@* @@ -3455,7 +3455,7 @@ When called with one or two @kbd{C-u} prefixes, first rescans the document. When called with a numeric prefix, make that many citations. When called with point inside the braces of a @code{\cite} command, it will add another key, ignoring the value of -@code{reftex-cite-format}.@refill @* +@code{reftex-cite-format}.@refill @* The regular expression uses an expanded syntax: @samp{&&} is interpreted as @code{and}. Thus, @samp{aaaa&&bbb} matches entries which contain both @samp{aaaa} and @samp{bbb}. While entering the regexp, completion @@ -3668,7 +3668,7 @@ Non-@code{nil} means, initially turn automatic recentering of toc on. When active, the @file{*TOC*} buffer will always show the section you are currently working in. Recentering happens whenever Emacs is idle for more than `reftex-idle-time' seconds. -This feature can be turned on and off from the menu +This feature can be turned on and off from the menu (Ref->Options). @end defopt @@ -4154,7 +4154,7 @@ called.@refill @deffn {Normal Hook} reftex-select-label-mode-hook Normal hook which is run when a selection buffer enters -@code{reftex-select-label-mode}.@refill +@code{reftex-select-label-mode}.@refill @end deffn @deffn Keymap reftex-select-label-map @@ -4287,14 +4287,14 @@ normal names separator, like @samp{, } in Jones, Brown and Miller @item final names separator, like @samp{ and } in Jones, Brown and Miller @item -The @samp{et al.} string, like @samp{ @{\it et al.@}} in +The @samp{et al.} string, like @samp{ @{\it et al.@}} in Jones @{\it et al.@} @end enumerate @end defopt @deffn {Normal Hook} reftex-select-bib-mode-hook Normal hook which is run when a selection buffer enters -@code{reftex-select-bib-mode}.@refill +@code{reftex-select-bib-mode}.@refill @end deffn @deffn Keymap reftex-select-bib-map @@ -4318,7 +4318,7 @@ document.@refill @defopt reftex-index-special-chars List of special characters in index entries, given as strings. These -correspond to the @code{MakeIndex} keywords +correspond to the @code{MakeIndex} keywords @code{(@var{level} @var{encap} @var{actual} @var{quote} @var{escape})}. @end defopt @@ -4533,7 +4533,7 @@ This is used when `reftex-view-crossref' is called with point in an argument of a macro. Note that crossref viewing for citations, references (both ways) and index entries is hard-coded. This variable is only to configure additional structures for which crossreference -viewing can be useful. Each entry has the structure +viewing can be useful. Each entry has the structure @example (@var{macro-re} @var{search-re} @var{highlight}). @end example @@ -4556,7 +4556,7 @@ display. This feature can be turned on and off from the menu @end defopt @defopt reftex-idle-time -Time (secs) Emacs has to be idle before automatic crossref display +Time (secs) Emacs has to be idle before automatic crossref display or toc recentering is done.@refill @end defopt @@ -4626,7 +4626,7 @@ be expanded recursively. See also @code{reftex-use-external-file-finders}. @defopt reftex-file-extensions Association list with file extensions for different file types. -This is a list of items, each item is like: +This is a list of items, each item is like: @code{(@var{type} . (@var{def-ext} @var{other-ext} ...))} @example @var{type}: @r{File type like @code{"bib"} or @code{"tex"}.} @@ -5250,7 +5250,7 @@ Fixed bug with empty context strings. @item Parse files @file{MASTER.rel} made compatible between Emacs and XEmacs. @item -@code{kill-emacs-hook} and @code{kill-buffer-hook} now write the parse +@code{kill-emacs-hook} and @code{kill-buffer-hook} now write the parse file. @item The cursor inside a @code{\ref} or @code{\cite} macro can now trigger @@ -5357,7 +5357,7 @@ labels like @samp{eq:13} sequentially through a document. @item Multiple selection buffers are now hidden buffers (they start with a SPACE). -@item +@item Fixed bug with file search when TEXINPUTS environment variable is empty. @end itemize @noindent @b{Version 3.34} @@ -5392,9 +5392,9 @@ to be on the macro argument. @itemize @bullet @item New options @code{reftex-texpath-environment-variables}, -@code{reftex-use-external-file-finders}, -@code{reftex-external-file-finders}, -@code{reftex-search-unrecursed-path-first}. +@code{reftex-use-external-file-finders}, +@code{reftex-external-file-finders}, +@code{reftex-search-unrecursed-path-first}. @item @emph{kpathsearch} support. See new options and @code{reftex-bibpath-environment-variables}. @@ -5430,7 +5430,7 @@ Reading a parse file now checks consistency. @noindent @b{Version 4.00} @itemize @bullet @item -RefTeX has been split into several smaller files which are autoloaded on +RefTeX has been split into several smaller files which are autoloaded on demand. @item Index support, along with many new options. @@ -5480,9 +5480,9 @@ Multiple @code{thebibliography} environments recognized. @item New option @code{reftex-toc-max-level} to limit the depth of the toc. New key binding @kbd{t} in the @file{*toc*} buffer to change this -setting.@refill +setting.@refill @item -RefTeX maintains an @file{Index Phrases} file in which phrases can be +RefTeX maintains an @file{Index Phrases} file in which phrases can be collected. When the document is ready, RefTeX can search all these phrases and assist indexing all matches.@refill @item @@ -5497,7 +5497,7 @@ default stuff which has been moved to a constant.@refill @item Environments like theorems can be placed into the TOC by putting entries for @samp{"begin@{theorem@}"} in -@code{reftex-setion-levels}.@refill +@code{reftex-setion-levels}.@refill @end itemize @noindent @b{Version 4.10} @itemize @bullet @@ -5531,7 +5531,7 @@ Improved interaction with Emacs LaTeX mode. @end ignore @noindent @b{Version 4.17} @itemize @bullet -@item +@item The toc window can be split off horizontally. See new options @code{reftex-toc-split-windows-horizontally}, @code{reftex-toc-split-windows-horizontally-fraction}. diff --git a/man/rmail.texi b/man/rmail.texi index 150145dfad1..9e6db0b9df5 100644 --- a/man/rmail.texi +++ b/man/rmail.texi @@ -94,7 +94,7 @@ changed). @kbd{C-x s} is a good enough way to do this @section Scrolling Within a Message When Rmail displays a message that does not fit on the screen, you -must scroll through it to read the rest. You could do this with +must scroll through it to read the rest. You could do this with @kbd{C-v}, @kbd{M-v} and @kbd{M-<}, but in Rmail scrolling is so frequent that it deserves to be easier to type. diff --git a/man/sc.texi b/man/sc.texi index c702c9fb9cf..c9f03d8f906 100644 --- a/man/sc.texi +++ b/man/sc.texi @@ -41,7 +41,7 @@ license to the document, as described in section 6 of the license. @dircategory Emacs @direntry -* SC: (sc). Supercite lets you cite parts of messages you're +* SC: (sc). Supercite lets you cite parts of messages you're replying to, in flexible ways. @end direntry @@ -1178,7 +1178,7 @@ Executing @code{sc-cite-original} performs the following steps as it initializes the reply buffer: @enumerate -@item +@item @vindex sc-pre-hook @vindex pre-hook (sc-) @emph{Runs @code{sc-pre-hook}.} @@ -1222,7 +1222,7 @@ Supercite sets an undo boundary before it begins to modify the original yanked text. This allows you to easily undo Supercite's changes to affect alternative citing styles. -@item +@item @emph{Processes the mail headers.} @vindex sc-confirm-always-p @vindex confirm-always-p (sc-) @@ -1275,7 +1275,7 @@ Once the mail headers have been processed, Supercite selects a attribution string and a citation string which it will use to cite the original message. @xref{Selecting an Attribution}, for details. -@item +@item @emph{Cites the message body.} @vindex sc-cite-region-limit @vindex cite-region-limit (sc-)b @@ -1316,7 +1316,7 @@ wouldn't encounter them all anyway. But you can configure Supercite to recognize those styles you see often. @xref{Configuring the Citation Engine}, for details.@refill -@item +@item @emph{Runs @code{sc-post-hook}.} @vindex sc-post-hook @vindex post-hook (sc-) @@ -1581,7 +1581,7 @@ Use the last selected attribution, if there is one. @item Use the value of the @code{"x-attribution"} key. -@item +@item Use the author's first name. @item @@ -1590,11 +1590,11 @@ Use the author's last name. @item Use the author's initials. -@item +@item Find the first non-@code{nil}, non-empty attribution string in the attribution alist. -@item +@item @code{sc-default-attribution} is used. @end enumerate @@ -2135,7 +2135,7 @@ together is bound on @kbd{C-c C-p C-p}.@refill Finally, the command @kbd{C-c C-p C-t h} (also @kbd{C-c C-p C-t ?}) brings up a Help message on the toggling keymap. - + @node Mail Field Commands, Miscellaneous Commands, Variable Toggling Shortcuts, Post-yank Formatting Commands @comment node-name, next, previous, up @@ -2299,7 +2299,7 @@ setting up a reply or forward buffer, your MUA should follow these steps: @enumerate -@item +@item Insert the original message, including the mail headers into the reply buffer. At this point you should not modify the raw text in any way, and you should place all the original headers into the body of the reply. @@ -2307,7 +2307,7 @@ This means that many of the mail headers will be duplicated, one copy above the @code{mail-header-separator} line and one copy below, however there will probably be more headers below this line.@refill -@item +@item Set @samp{point} to the beginning of the line containing the first mail header in the body of the reply. Set @samp{mark} at the end of the message text. It is very important that the region be set around the @@ -2319,7 +2319,7 @@ Emacs 19, the region need not be set active. Supercite will work properly when the region is inactive, as should any other like-minded package.@refill -@item +@item Run the hook @code{mail-citation-hook}. You will probably want to provide some kind of default citation functions in cases where the user does not have Supercite installed. By default, your MUA should diff --git a/man/screen.texi b/man/screen.texi index fc364d86071..2f5b66936be 100644 --- a/man/screen.texi +++ b/man/screen.texi @@ -107,7 +107,7 @@ for accessing the value now called ``point.'' @node Echo Area @section The Echo Area @cindex echo area -@c +@c The line at the bottom of the frame (below the mode line) is the @dfn{echo area}. It is used to display small amounts of text for diff --git a/man/texinfo.tex b/man/texinfo.tex index b0a1cfc3e72..35b3020e628 100644 --- a/man/texinfo.tex +++ b/man/texinfo.tex @@ -35,10 +35,10 @@ % ftp://tug.org/tex/texinfo.tex % (and all CTAN mirrors, see http://www.ctan.org), % and /home/gd/gnu/doc/texinfo.tex on the GNU machines. -% +% % The texinfo.tex in any given Texinfo distribution could well be out % of date, so if that's what you're using, please check. -% +% % Texinfo has a small home page at http://texinfo.org/ and also % http://www.gnu.org/software/texinfo. % @@ -175,7 +175,7 @@ % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. -% +% \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount @@ -730,10 +730,10 @@ where each line of input produces a line of output.} % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). -% +% \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. - \setbox0 = \hbox{\ignorespaces #2}% + \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% @@ -797,7 +797,7 @@ where each line of input produces a line of output.} % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % We cannot implement @paragraphindent asis, though. -% +% \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % @@ -840,7 +840,7 @@ where each line of input produces a line of output.} % We don't use $'s directly in the definition of \math because we need % to set catcodes according to plain TeX first, to allow for subscripts, % superscripts, special math chars, etc. -% +% % @math does not do math typesetting in section titles, index % entries, and other such contexts where the catcodes are set before % @math gets a chance to work. This could perhaps be fixed, but for now @@ -852,7 +852,7 @@ where each line of input produces a line of output.} % an actual _ character, as in @math{@var{some_variable} + 1}. So make % _ within @math be active (mathcode "8000), and distinguish by seeing % if the current family is \slfam, which is what @var uses. -% +% {\catcode95 = \active % 95 = _ \gdef\mathunderscore{% \catcode95=\active @@ -863,7 +863,7 @@ where each line of input produces a line of output.} % FYI, plain.tex uses \\ as a temporary control sequence (why?), but % this is not advertised and we don't care. Texinfo does not % otherwise define @\. -% +% % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % @@ -986,11 +986,11 @@ where each line of input produces a line of output.} \def\pdfmakeoutlines{{% \openin 1 \jobname.toc \ifeof 1\else\begingroup - \closein 1 + \closein 1 \indexnofonts \def\tt{} \let\_ = \normalunderscore - % Thanh's hack / proper braces in bookmarks + % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % @@ -1032,7 +1032,7 @@ where each line of input produces a line of output.} \let\nextmakelinks=\makelinks \ifnum\lnkcount>0,\fi \picknum{#1}% - \startlink attr{/Border [0 0 0]} + \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{\the\pgn}}% \linkcolor #1% \advance\lnkcount by 1% @@ -1087,7 +1087,7 @@ where each line of input produces a line of output.} \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 - \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 + \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else @@ -1521,7 +1521,7 @@ where each line of input produces a line of output.} % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. -% +% %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} @@ -2742,10 +2742,10 @@ width0pt\relax} \fi % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. -% +% % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. -% +% \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} @@ -2787,13 +2787,13 @@ width0pt\relax} \fi % Take care of texinfo commands likely to appear in an index entry. % (Must be a way to avoid doing expansion at all, and thus not have to % laboriously list every single command here.) -% +% \def\indexdummies{% \def\ { }% \def\@{@}% change to @@ when we switch to @ as escape char in aux files. % Need these in case \tex is in effect and \{ is a \delimiter again. % But can't use \lbracecmd and \rbracecmd because texindex assumes -% braces and backslashes are used only as delimiters. +% braces and backslashes are used only as delimiters. \let\{ = \mylbrace \let\} = \myrbrace \def\_{{\realbackslash _}}% @@ -3348,7 +3348,7 @@ width0pt\relax} \fi \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } -% +% % All done with double columns. \def\enddoublecolumns{% \output = {% @@ -4149,7 +4149,7 @@ width0pt\relax} \fi % @foo ... @end foo. % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. -% +% % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % @@ -4161,7 +4161,7 @@ width0pt\relax} \fi % The @error{} command. % Adapted from the TeXbook's \boxit. -% +% \newbox\errorbox % {\tentt \global\dimen0 = 3em}% Width of the box. @@ -4469,7 +4469,7 @@ width0pt\relax} \fi % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>} -% If we want to allow any <char> as delimiter, +% If we want to allow any <char> as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % @@ -4543,8 +4543,8 @@ width0pt\relax} \fi \everypar{\starttabbox}% } -% Do the @verb magic: verbatim text is quoted by unique -% delimiter characters. Before first delimiter expect a +% Do the @verb magic: verbatim text is quoted by unique +% delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'<char>#1<char>'}'{#1} @@ -4563,7 +4563,7 @@ width0pt\relax} \fi % % \def\doverbatim#1@end verbatim{#1} % -% For Texinfo it's a lot easier than for LaTeX, +% For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}' % @@ -4621,7 +4621,7 @@ width0pt\relax} \fi % @copying ... @end copying. % Save the text away for @insertcopying later. -% +% \newbox\copyingbox % \def\copying{\begingroup @@ -4631,7 +4631,7 @@ width0pt\relax} \fi } % @insertcopying. -% +% \def\insertcopying{\unvcopy\copyingbox} @@ -4734,7 +4734,7 @@ width0pt\relax} \fi % #1 is the \E... control sequence to end the definition (which we define). % #2 is the \...x control sequence (which our caller defines). % #3 is the control sequence to process the header, such as \defunheader. -% +% \def\parsebodycommon#1#2#3{% \begingroup\inENV % If there are two @def commands in a row, we'll have a \nobreak, @@ -4791,7 +4791,7 @@ width0pt\relax} \fi % to account for this both in the \...x definition and in parsing the % input at hand. Thus also need a control sequence (passed as #5) for % the \E... definition to assign the category name to. -% +% \def\deftypeopparsebody#1#2#3#4#5 #6 {% \parsebodycommon{#1}{#2}{#3}% \def#2##1 ##2 ##3 {% @@ -5148,7 +5148,7 @@ width0pt\relax} \fi % These definitions are used if you use @defunx (etc.) % anywhere other than immediately after a @defun or @defunx. -% +% \def\defcvx#1 {\errmessage{@defcvx in invalid context}} \def\deffnx#1 {\errmessage{@deffnx in invalid context}} \def\defivarx#1 {\errmessage{@defivarx in invalid context}} @@ -5949,7 +5949,7 @@ width0pt\relax} \fi \nobreak\bigskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space - % above and below. + % above and below. \nobreak\vskip\parskip \nobreak \line\bgroup\hss @@ -6065,7 +6065,7 @@ should work if nowhere else does.} } % Use `small' versions. -% +% \def\smallenvironments{% \let\smalldisplay = \smalldisplayx \let\smallexample = \smalllispx @@ -6322,7 +6322,7 @@ should work if nowhere else does.} % Say @foo, not \foo, in error messages. @escapechar = `@@ -% These look ok in all fonts, so just make them not special. +% These look ok in all fonts, so just make them not special. @catcode`@& = @other @catcode`@# = @other @catcode`@% = @other diff --git a/man/text.texi b/man/text.texi index d80cb087a8f..08b9e625b3c 100644 --- a/man/text.texi +++ b/man/text.texi @@ -918,7 +918,7 @@ the hook @code{outline-mode-hook} (@pxref{Hooks}). @menu * Format: Outline Format. What the text of an outline looks like. * Motion: Outline Motion. Special commands for moving through - outlines. + outlines. * Visibility: Outline Visibility. Commands to control what is visible. * Views: Outline Views. Outlines and multiple views. * Foldout:: Folding editing. @@ -1060,7 +1060,7 @@ Make the body of this heading line, and of all its subheadings, invisible (@code{hide-leaves}). @item C-c C-k Make all subheadings of this heading line, at all levels, visible -(@code{show-branches}). +(@code{show-branches}). @item C-c C-i Make immediate subheadings (one level down) of this heading line visible (@code{show-children}). @@ -1847,7 +1847,7 @@ contains a list of ideas for future enhancements. * Color: Format Colors. Changing the color of text. * Indent: Format Indentation. Changing the left and right margins. * Justification: Format Justification. - Centering, setting text flush with the + Centering, setting text flush with the left or right margin, etc. * Other: Format Properties. The "special" text properties submenu. * Forcing Enriched Mode:: How to force use of Enriched mode. @@ -2146,7 +2146,7 @@ Prefix}. @node Format Justification @subsection Justification in Formatted Text - + When editing formatted text, you can specify various styles of justification for a paragraph. The style you specify automatically affects the Emacs fill commands. @@ -2218,7 +2218,7 @@ region. The default justification style is specified by the variable @code{default-justification}. Its value should be one of the symbols @code{left}, @code{right}, @code{full}, @code{center}, or @code{none}. - + @node Format Properties @subsection Setting Other Text Properties @@ -2258,7 +2258,7 @@ When you @emph{insert} a file into a buffer, rather than visiting it. Emacs does the necessary conversions on the text which you insert, but it does not enable Enriched mode. If you wish to do that, type @kbd{M-x enriched-mode}. -@end itemize +@end itemize The command @code{format-decode-buffer} translates text in various formats into Emacs's internal format. It asks you to specify the format diff --git a/man/tramp.texi b/man/tramp.texi index 93cba2fea17..de819e9c454 100644 --- a/man/tramp.texi +++ b/man/tramp.texi @@ -67,7 +67,7 @@ Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -@quotation +@quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no @@ -1202,7 +1202,7 @@ Example: @defun tramp-set-completion-function method function-list This function sets @var{function-list} as list of completion functions -for @var{method}. +for @var{method}. Example: @example @@ -1620,7 +1620,7 @@ If you, for example, type @kbd{C-x C-f @value{tramp-prefix}t @value{tramp-prefix-single-hop}telnet@value{tramp-postfix-single-hop} @value{tramp-prefix-single-hop}toto@value{tramp-postfix} @end ifset @end example - + @samp{@value{tramp-prefix-single-hop}telnet@value{tramp-postfix-single-hop}} is a possible completion for the respective method, @ifset emacs @@ -1898,7 +1898,7 @@ operations on files accessed via @tramp{}. In the case of a remote file, the @code{shell-command} interface is used, with some wrapper code, to provide the same functionality on the -remote machine as would be seen on the local machine. +remote machine as would be seen on the local machine. @node Changed workfiles diff --git a/man/trouble.texi b/man/trouble.texi index 510176560f6..737fcf12fb0 100644 --- a/man/trouble.texi +++ b/man/trouble.texi @@ -818,7 +818,7 @@ To make Lisp errors stop Emacs and return to GDB, put a breakpoint at @code{Fsignal}. For a short listing of Lisp functions running, type the GDB -command @code{xbacktrace}. +command @code{xbacktrace}. The file @file{.gdbinit} defines several other commands that are useful for examining the data types and contents of Lisp objects. Their names diff --git a/man/vip.texi b/man/vip.texi index 6a977029e29..fc34eacc865 100644 --- a/man/vip.texi +++ b/man/vip.texi @@ -1750,7 +1750,7 @@ Place a copy of specified lines after @var{addr}. If @var{addr} is @item (.,.@:) d[elete] @var{register} @var{count} @var{flags} Delete specified lines. Text will be saved in a named @var{register} if a lower-case letter is given, and appended to a register if a capital letter is -given. +given. @item e[dit] !@: +@var{addr} @var{file} @itemx e[x] !@: +@var{addr} @var{file} @itemx vi[sual] !@: +@var{addr} @var{file} diff --git a/man/viper.texi b/man/viper.texi index 88387c1f919..a5b102acd56 100644 --- a/man/viper.texi +++ b/man/viper.texi @@ -1194,7 +1194,7 @@ way to do this is to use Emacs customization widget, which is accessible from the menubar. Viper customization group is located under the @emph{Emulations} customization group, which in turn is under the @emph{Editing} group (or simply by typing @kbd{:customize}). All Viper -faces are grouped together under Viper's +faces are grouped together under Viper's @emph{Highlighting} group. Try it: it is really simple! @@ -1748,7 +1748,7 @@ defined in the low-level key-translation-map or function-key-map, such as those emitted by the arrow and function keys. Other sequences, e.g., @kbd{\\e/}, are treated as @kbd{ESC} command followed by a @kbd{/}. This is good for people who type fast and tend to hit other characters right after they hit -ESC. Other people like Emacs to translate @kbd{ESC} sequences all the time. +ESC. Other people like Emacs to translate @kbd{ESC} sequences all the time. The default is to translate all sequences only when using a dumb terminal. This permits you to use @kbd{ESC} as a meta key in insert mode. For instance, hitting @kbd{ESC x} fast would have the effect of typing @kbd{M-x}. @@ -2035,7 +2035,7 @@ If you wish to change a Viper binding, you can use the @code{viper-insert-global-user-map}, and @code{viper-emacs-global-user-map}, as explained below. Each of these key maps affects the corresponding Viper state. The keymap @code{viper-insert-global-user-map} also affects Viper's Replace -state. +state. @noindent If you want to @@ -2219,7 +2219,7 @@ means that bindings set by those modes are generally available with Viper @code{viper-want-emacs-keys-in-vi} and @code{viper-want-emacs-keys-in-insert} to @code{nil}). If @code{viper-always} is set to @code{t} (which is the default), Viper -will try to bring each buffer +will try to bring each buffer in the Viper state that is most appropriate for that buffer. Usually, this would be the Vi state, but sometimes it could be the Insert state or the Emacs state. @@ -2661,7 +2661,7 @@ This variable controls the rate at which double-clicking must occur for the purpose of mouse search and mouse insert. By default, this is set to @code{double-click-time} in Emacs and to @code{mouse-track-multi-click-time} milliseconds in XEmacs. -@end table +@end table @kindex @kbd{S-Mouse-1} @kindex @kbd{S-Mouse-2} @kindex @kbd{meta shift button1up} @@ -2731,7 +2731,7 @@ the meaning of key sequences: keys typed in fast succession are treated specially, if this key sequence is bound to a macro. Viper provides Vi-style keyboard macros through the usual Ex commands, -@kbd{:map} and +@kbd{:map} and @kbd{:map!}. These macros are much more powerful in Viper than they are in the original Vi and in other emulators. This is because Viper implements an enhanced vi-style @@ -4044,8 +4044,8 @@ Obsolete @item :args List files not shown anywhere with counts for next @item :n [count] [+<cmd>] [<files>] -Edit <count> file, or edit files. The count comes from @kbd{:args}. -@item :N [count] [+<cmd>] [<files>] +Edit <count> file, or edit files. The count comes from @kbd{:args}. +@item :N [count] [+<cmd>] [<files>] Like @kbd{:n}, but the meaning of the variable @var{ex-cycle-other-window} is reversed. @item :b diff --git a/man/widget.texi b/man/widget.texi index 0a8b0f4b8c3..d1d7bae0315 100644 --- a/man/widget.texi +++ b/man/widget.texi @@ -44,18 +44,18 @@ Software Foundation raise funds for GNU development.'' @top The Emacs Widget Library @menu -* Introduction:: -* User Interface:: -* Programming Example:: -* Setting Up the Buffer:: -* Basic Types:: -* Sexp Types:: -* Widget Properties:: -* Defining New Widgets:: -* Widget Browser:: -* Widget Minor Mode:: -* Utilities:: -* Widget Wishlist:: +* Introduction:: +* User Interface:: +* Programming Example:: +* Setting Up the Buffer:: +* Basic Types:: +* Sexp Types:: +* Widget Properties:: +* Defining New Widgets:: +* Widget Browser:: +* Widget Minor Mode:: +* Utilities:: +* Widget Wishlist:: * Index:: @end menu @@ -78,7 +78,7 @@ The basic widgets are: @item link Areas of text with an associated action. Intended for hypertext links embedded in text. -@item push-button +@item push-button Like link, but intended for stand-alone buttons. @item editable-field An editable text field. It can be either variable or fixed length. @@ -92,14 +92,14 @@ buttons. The options are implemented as widgets. All options will be visible in the buffer. @item item A simple constant widget intended to be used in the @code{menu-choice} and -@code{radio-button-choice} widgets. +@code{radio-button-choice} widgets. @item choice-item A button item only intended for use in choices. When invoked, the user will be asked to select another option from the choice widget. @item toggle A simple @samp{on}/@samp{off} switch. @item checkbox -A checkbox (@samp{[ ]}/@samp{[X]}). +A checkbox (@samp{[ ]}/@samp{[X]}). @item editable-list Create an editable list. The user can insert or delete items in the list. Each list item is itself a widget. @@ -112,7 +112,7 @@ supposed to fill out a number of fields, each of which has a specific meaning. The user is not supposed to change or delete any of the text between the fields. Examples of forms in Emacs are the @file{forms} package (of course), the customize buffers, the mail and news compose -modes, and the @sc{html} form support in the @file{w3} browser. +modes, and the @sc{html} form support in the @file{w3} browser. @cindex widget library, why use it The advantages for a programmer of using the @code{widget} package to @@ -120,21 +120,21 @@ implement forms are: @enumerate @item -More complex fields than just editable text are supported. +More complex fields than just editable text are supported. @item You can give the users immediate feedback if they enter invalid data in a text field, and sometimes prevent entering invalid data. -@item +@item You can have fixed sized fields, thus allowing multiple fields to be lined up in columns. @item -It is simple to query or set the value of a field. -@item +It is simple to query or set the value of a field. +@item Editing happens in the buffer, not in the mini-buffer. -@item +@item Packages using the library get a uniform look, making them easier for the user to learn. -@item +@item As support for embedded graphics improve, the widget library will be extended to use the GUI features. This means that your code using the widget library will also use the new graphic features automatically. @@ -147,7 +147,7 @@ create any widgets, the code has been split in two files: @table @file @item widget.el This will declare the user variables, define the function -@code{define-widget}, and autoload the function @code{widget-create}. +@code{define-widget}, and autoload the function @code{widget-create}. @item wid-edit.el Everything else is here, there is no reason to load it explicitly, as it will be autoloaded when needed. @@ -177,7 +177,7 @@ Numbers: count to three below @b{[INS]} @b{[DEL]} @i{One} @b{[INS]} @b{[DEL]} @i{Eh, two?} @b{[INS]} @b{[DEL]} @i{Five!} -@b{[INS]} +@b{[INS]} Select multiple: @@ -258,7 +258,7 @@ field. Option fields are created by the @code{menu-choice} widget. In the example, @samp{@b{Choose}} is an option field tag. @item The @samp{@b{[INS]}} and @samp{@b{[DEL]}} buttons Activating these will insert or delete elements from an editable list. -The list is created by the @code{editable-list} widget. +The list is created by the @code{editable-list} widget. @cindex embedded buttons @item Embedded Buttons The @samp{@b{_other work_}} is an example of an embedded @@ -280,7 +280,7 @@ main difference from the @code{link} widget is that the buttons will be displayed as GUI buttons when possible. @end table -To make them easier to locate, buttons are emphasized in the buffer. +To make them easier to locate, buttons are emphasized in the buffer. @deffn Face widget-button-face Face used for buttons. @@ -352,11 +352,11 @@ Interface}). (widget-insert "\nSee also ") (widget-create 'link :notify (lambda (&rest ignore) - (widget-value-set widget-example-repeat + (widget-value-set widget-example-repeat '("En" "To" "Tre")) (widget-setup)) "other work") - (widget-insert + (widget-insert " for more information.\n\nNumbers: count to three below\n") (setq widget-example-repeat (widget-create 'editable-list @@ -387,7 +387,7 @@ Interface}). '(item "One") '(item "Another One.") '(item "A Final One.")) (widget-insert "\n") (widget-create 'push-button - :notify (lambda (&rest ignore) + :notify (lambda (&rest ignore) (if (= (length (widget-value widget-example-repeat)) 3) (message "Congratulation!") @@ -425,8 +425,8 @@ that are part of @var{type}. Delete @var{widget} and remove it from the buffer. @end defun -@defun widget-setup -Set up a buffer to support widgets. +@defun widget-setup +Set up a buffer to support widgets. This should be called after creating all the widgets and before allowing the user to edit them. @@ -436,7 +436,7 @@ the user to edit them. If you want to insert text outside the widgets in the form, the recommended way to do that is with @code{widget-insert}. -@defun widget-insert +@defun widget-insert Insert the arguments, either strings or characters, at point. The inserted text will be read-only. @end defun @@ -492,7 +492,7 @@ The following @samp{%} escapes are available: The text inside will be marked as a button. By default, the text will be shown in @code{widget-button-face}, and -surrounded by brackets. +surrounded by brackets. @defopt widget-button-prefix String to prefix buttons. @@ -505,7 +505,7 @@ String to suffix buttons. @item %@{ @itemx %@} The text inside will be displayed with the face specified by -@code{:sample-face}. +@code{:sample-face}. @item %v This will be replaced with the buffer representation of the widget's @@ -528,7 +528,7 @@ Insert the string specified by @code{:tag} here, or the @code{princ} representation of the value if there is no tag. @item %% -Insert a literal @samp{%}. +Insert a literal @samp{%}. @end table @vindex button-face@r{ keyword} @@ -556,12 +556,12 @@ The value of the symbol is expanded according to this table. @vindex doc@r{ keyword} @item :doc The string inserted by the @samp{%d} escape in the format -string. +string. @vindex tag@r{ keyword} @item :tag The string inserted by the @samp{%t} escape in the format -string. +string. @vindex tag-glyph@r{ keyword} @item :tag-glyph @@ -597,7 +597,7 @@ A function called each time the widget or a nested widget is changed. The function is called with two or three arguments. The first argument is the widget itself, the second argument is the widget that was changed, and the third argument is the event leading to the change, if -any. +any. @vindex menu-tag@r{ keyword} @item :menu-tag @@ -639,7 +639,7 @@ implemented. @item Widgets with tabbing order @code{-1} are ignored. -@item +@item (Unimplemented) When on a widget with tabbing order @var{n}, go to the next widget in the buffer with tabbing order @var{n+1} or @code{nil}, whichever comes first. @@ -664,7 +664,7 @@ arguments, which will be used when creating the @code{radio-button} or @end table @deffn {User Option} widget-glyph-directory -Directory where glyphs are found. +Directory where glyphs are found. Widget will look here for a file with the same name as specified for the image, with either a @file{.xpm} (if supported) or @file{.xbm} extension. @end deffn @@ -675,21 +675,21 @@ If non-nil, allow glyphs to appear on displays where they are supported. @menu -* link:: -* url-link:: -* info-link:: -* push-button:: -* editable-field:: -* text:: -* menu-choice:: -* radio-button-choice:: -* item:: -* choice-item:: -* toggle:: -* checkbox:: -* checklist:: -* editable-list:: -* group:: +* link:: +* url-link:: +* info-link:: +* push-button:: +* editable-field:: +* text:: +* menu-choice:: +* radio-button-choice:: +* item:: +* choice-item:: +* toggle:: +* checkbox:: +* checklist:: +* editable-list:: +* group:: @end menu @node link, url-link, Basic Types, Basic Types @@ -705,7 +705,7 @@ TYPE ::= (link [KEYWORD ARGUMENT]... [ VALUE ]) The @var{value}, if present, is used to initialize the @code{:value} property. The value should be a string, which will be inserted in the -buffer. +buffer. By default the link will be shown in brackets. @@ -730,7 +730,7 @@ TYPE ::= (url-link [KEYWORD ARGUMENT]... URL) @findex browse-url-browser-function@r{, and @code{url-link} widget} When this link is invoked, the @sc{www} browser specified by -@code{browse-url-browser-function} will be called with @var{url}. +@code{browse-url-browser-function} will be called with @var{url}. @node info-link, push-button, url-link, Basic Types @comment node-name, next, previous, up @@ -744,7 +744,7 @@ TYPE ::= (info-link [KEYWORD ARGUMENT]... ADDRESS) @end example When this link is invoked, the built-in Info reader is started on -@var{address}. +@var{address}. @node push-button, editable-field, info-link, Basic Types @comment node-name, next, previous, up @@ -759,7 +759,7 @@ TYPE ::= (push-button [KEYWORD ARGUMENT]... [ VALUE ]) The @var{value}, if present, is used to initialize the @code{:value} property. The value should be a string, which will be inserted in the -buffer. +buffer. By default the tag will be shown in brackets. @@ -797,7 +797,7 @@ By default the field will reach to the end of the line. @vindex value-face@r{ keyword} @item :value-face Face used for highlighting the editable field. Default is -@code{widget-field-face}, see @ref{User Interface}. +@code{widget-field-face}, see @ref{User Interface}. @vindex secret@r{ keyword} @item :secret @@ -849,7 +849,7 @@ arguments. @table @code @vindex void@r{ keyword} -@item :void +@item :void Widget type used as a fallback when the value does not match any of the specified @var{type} arguments. @@ -868,8 +868,8 @@ type in the buffer. The current chosen type. @vindex args@r{ keyword} -@item :args -The list of types. +@item :args +The list of types. @end table @node radio-button-choice, item, menu-choice, Basic Types @@ -901,7 +901,7 @@ Replace with the buffer representation of the @var{type} widget. @item %b Replace with the radio button. @item %% -Insert a literal @samp{%}. +Insert a literal @samp{%}. @end table @vindex button-args@r{ keyword} @@ -922,13 +922,13 @@ The widgets representing each type. The current chosen type @vindex args@r{ keyword} -@item :args -The list of types. +@item :args +The list of types. @end table You can add extra radio button items to a @code{radio-button-choice} widget after it has been created with the function -@code{widget-radio-add-item}. +@code{widget-radio-add-item}. @defun widget-radio-add-item widget type Add to @code{radio-button-choice} widget @var{widget} a new radio button @@ -969,7 +969,7 @@ The @var{value}, if present, is used to initialize the @code{:value} property. The value should be a string, which will be inserted in the buffer as a button. Activating the button of a @code{choice-item} is equivalent to activating the parent widget. This widget will only match -the specified value. +the specified value. @node toggle, checkbox, choice-item, Basic Types @comment node-name, next, previous, up @@ -991,7 +991,7 @@ The following extra properties are recognized: @item :on A string representing the @samp{on} state. By default the string @samp{on}. -@item :off +@item :off A string representing the @samp{off} state. By default the string @samp{off}. @vindex on-glyph@r{ keyword} @@ -1047,7 +1047,7 @@ Replaced with the buffer representation of the @var{type} widget. @item %b Replace with the checkbox. @item %% -Insert a literal @samp{%}. +Insert a literal @samp{%}. @end table @vindex greedy@r{ keyword} @@ -1072,8 +1072,8 @@ The widgets representing the checkboxes. The widgets representing each type. @vindex args@r{ keyword} -@item :args -The list of types. +@item :args +The list of types. @end table @node editable-list, group, checklist, Basic Types @@ -1088,7 +1088,7 @@ TYPE ::= (editable-list [KEYWORD ARGUMENT]... TYPE) @end example The value is a list, where each member represents one widget of type -@var{type}. +@var{type}. The following extra properties are recognized: @@ -1106,7 +1106,7 @@ Insert the @b{[INS]} button. @item %d Insert the @b{[DEL]} button. @item %% -Insert a literal @samp{%}. +Insert a literal @samp{%}. @end table @vindex insert-button-args@r{ keyword} @@ -1147,7 +1147,7 @@ Syntax: TYPE ::= (group [KEYWORD ARGUMENT]... TYPE...) @end example -The value is a list, with one member for each @var{type}. +The value is a list, with one member for each @var{type}. @node Sexp Types, Widget Properties, Basic Types, Top @comment @@ -1159,10 +1159,10 @@ for short, are also available. These basically fall in several categories described in this section. @menu -* constants:: -* generic:: -* atoms:: -* composite:: +* constants:: +* generic:: +* atoms:: +* composite:: @end menu @node constants, generic, Sexp Types, Sexp Types @@ -1185,7 +1185,7 @@ property and can be any s-expression. @deffn Widget const This will display any valid s-expression in an immutable part of the -buffer. +buffer. @end deffn There are two variations of the @code{const} widget, namely @@ -1218,7 +1218,7 @@ TYPE ::= (sexp [KEYWORD ARGUMENT]... [ VALUE ]) @deffn Widget sexp This will allow you to edit any valid s-expression in an editable buffer -field. +field. The @code{sexp} widget takes the same keyword arguments as the @code{editable-field} widget. @xref{editable-field}. @@ -1262,7 +1262,7 @@ Allows you to enter a character in an editable field. @deffn Widget file Allows you to edit a file name in an editable field. If you invoke the tag button, you can edit the file name in the mini-buffer with -completion. +completion. Keywords: @table @code @@ -1353,7 +1353,7 @@ specification: string string))) @end example -The value of a widget of this type will either have the form +The value of a widget of this type will either have the form @code{(file t)} or @code{(file string string)}. This concept of inline is probably hard to understand. It was certainly @@ -1403,7 +1403,7 @@ modifying the value of a widget before the user is allowed to edit the widget again. It is enough to call @code{widget-setup} once if you modify multiple widgets. This is currently only necessary if the widget contains an editing field, but may be necessary for other widgets in the -future. +future. If your application needs to associate some information with the widget objects, for example a reference to the item being edited, it can be @@ -1426,7 +1426,7 @@ Non-nil if @var{widget} has a value (even nil) for property @var{property}. @end defun Occasionally it can be useful to know which kind of widget you have, -i.e.@: the name of the widget type you gave when the widget was created. +i.e.@: the name of the widget type you gave when the widget was created. @defun widget-type widget Return the name of @var{widget}, a symbol. @@ -1459,7 +1459,7 @@ a widget is really active, you must therefore activate both it and all its ancestors. @lisp -(while widget +(while widget (widget-apply widget :activate) (setq widget (widget-get widget :parent))) @end lisp @@ -1482,13 +1482,13 @@ its ancestors have been deactivated. Do not attempt to set the You can define specialized widgets with @code{define-widget}. It allows you to create a shorthand for more complex widgets, including specifying component widgets and new default values for the keyword -arguments. +arguments. @defun define-widget name class doc &rest args Define a new widget type named @var{name} from @code{class}. @var{name} and class should both be symbols, @code{class} should be one -of the existing widget types. +of the existing widget types. The third argument @var{DOC} is a documentation string for the widget. @@ -1517,14 +1517,14 @@ If you only want to specify defaults for keywords with no complex conversions, you can use @code{identity} as your conversion function. The following additional keyword arguments are useful when defining new -widgets: +widgets: @table @code @vindex convert-widget@r{ keyword} @item :convert-widget Function to convert a widget type before creating a widget of that type. It takes a widget type as an argument, and returns the converted widget type. When a widget is created, this function is called for the -widget type and all the widget's parent types, most derived first. +widget type and all the widget's parent types, most derived first. The following predefined functions can be used here: @@ -1596,9 +1596,9 @@ Delete all @code{:children} and @code{:buttons} in @var{widget}. @end defun @vindex value-get@r{ keyword} -@item :value-get +@item :value-get Function to extract the value of a widget, as it is displayed in the -buffer. +buffer. The following predefined function can be used here: @@ -1621,7 +1621,7 @@ escape sequences, as well as give an error for unknown escapes. @vindex action@r{ keyword} @item :action Function to handle user initiated events. By default, @code{:notify} -the parent. +the parent. The following predefined function can be used here: @@ -1644,11 +1644,11 @@ for this widget, and does not have to check that it matches. If you want to define a new widget from scratch, use the @code{default} widget as its base. -@deffn Widget default -Widget used as a base for other widgets. +@deffn Widget default +Widget used as a base for other widgets. It provides most of the functionality that is referred to as ``by -default'' in this text. +default'' in this text. @end deffn @node Widget Browser, Widget Minor Mode, Defining New Widgets, Top @@ -1683,7 +1683,7 @@ When called interactively, use the position of point. There is a minor mode for manipulating widgets in major modes that don't provide any support for widgets themselves. This is mostly -intended to be useful for programmers doing experiments. +intended to be useful for programmers doing experiments. @deffn Command widget-minor-mode Toggle minor mode for traversing widgets. @@ -1716,11 +1716,11 @@ This is only meaningful for radio buttons or checkboxes in a list. @cindex todo @itemize @bullet -@item +@item It should be possible to add or remove items from a list with @kbd{C-k} and @kbd{C-o} (suggested by @sc{rms}). -@item +@item The @samp{[INS]} and @samp{[DEL]} buttons should be replaced by a single dash (@samp{-}). The dash should be a button that, when invoked, asks whether you want to add or delete an item (@sc{rms} wanted to git rid of @@ -1738,9 +1738,9 @@ Make indentation work with glyphs and proportional fonts. @item Add commands to show overview of object and class hierarchies to the -browser. +browser. -@item +@item Find a way to disable mouse highlight for inactive widgets. @item @@ -1762,10 +1762,10 @@ Add @code{widget} widget for editing widget specifications. Find clean way to implement variable length list. See @code{TeX-printer-list} for an explanation. -@item +@item @kbd{C-h} in @code{widget-prompt-value} should give type specific help. -@item +@item Add a @code{mailto} widget. @end itemize diff --git a/man/xresources.texi b/man/xresources.texi index e6451e76998..aa9fd818e55 100644 --- a/man/xresources.texi +++ b/man/xresources.texi @@ -458,7 +458,7 @@ Emacs.pane.menubar.popup_*.popup_*.Spell Checking.Complete Word: @var{value} @noindent (This should be one long line.) - + It's impossible to specify a resource for all the menu-bar items without also specifying it for the submenus as well. So if you want the submenu items to look different from the menu bar itself, you must ask @@ -533,7 +533,7 @@ The color for the border shadow, on the top and the left. If the Emacs installed at your site was built to use the GTK widget set, then the menu bar, scroll bar and the dialogs can be customized with the standard GTK @file{~/.gtkrc-2.0} file or with the Emacs specific -@file{~/.emacs.d/gtkrc} file; note that these files are only for +@file{~/.emacs.d/gtkrc} file; note that these files are only for customizing specific GTK widget features. To customize Emacs font, background, faces etc., use the normal X resources, see @ref{Resources}. @@ -568,7 +568,7 @@ gtk-font-name = "courier 12" If GTK at your site is installed under @var{prefix}, the resource file syntax is fully described in the GTK API -document +document @file{@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html}. @var{prefix} is usually @file{/usr} or @file{/usr/local}. You can find the same document online at @@ -586,7 +586,7 @@ You can find the same document online at @appendixsubsec GTK widget names @cindex GTK widget names - Widgets are specified by widget class or by widget name. + Widgets are specified by widget class or by widget name. The widget class is the type of the widget, for example @code{GtkMenuBar}. The widget name is the name given to a specific widget within a program. A widget always have a class but it is not mandatory to give a name to @@ -649,8 +649,8 @@ widget "*menu*" style "my_style" @cindex GTK widget classes In Emacs the top level widget for a frame is a @code{GtkWindow} that -contains a @code{GtkVBox}. The @code{GtkVBox} contains the -@code{GtkMenuBar} and a @code{GtkFixed} widget. +contains a @code{GtkVBox}. The @code{GtkVBox} contains the +@code{GtkMenuBar} and a @code{GtkFixed} widget. The vertical scroll bars, @code{GtkVScrollbar}, are contained in the @code{GtkFixed} widget. The text you write in Emacs is drawn in the @code{GtkFixed} widget. @@ -669,7 +669,7 @@ widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style" For the scroll bar, the absolute class name is: @smallexample -widget_class +widget_class "GtkWindow.GtkVBox.GtkFixed.GtkVScrollbar" style "my_style" @end smallexample @@ -705,7 +705,7 @@ widget "Emacs.pane.emacs.verticalScrollbar" style "my_style" @end smallexample GTK absolute names are quite strange when it comes to menus -and dialogs. The names do not start with @samp{Emacs}, as they are +and dialogs. The names do not start with @samp{Emacs}, as they are free-standing windows and not contained (in the GTK sense) by the Emacs GtkWindow. To customize the dialogs and menus, use wildcards like this: @@ -720,7 +720,7 @@ This file is only read by Emacs, so anything in @file{~/.emacs.d/gtkrc} affects Emacs but leaves other applications unaffected. For example, the drop down menu in the file dialog can not be customized by any absolute widget name, only by an absolute -class name. This is so because the widgets in the drop down menu does not +class name. This is so because the widgets in the drop down menu does not have names and the menu is not contained in the Emacs GtkWindow. To have all menus in Emacs look the same, use this in @file{~/.emacs.d/gtkrc}: @@ -766,7 +766,7 @@ style "default" bg_pixmap[NORMAL] = "background.xpm" bg_pixmap[INSENSITIVE] = "background.xpm" bg_pixmap[ACTIVE] = "background.xpm" - bg_pixmap[PRELIGHT] = "<none>" + bg_pixmap[PRELIGHT] = "<none>" @} @@ -788,7 +788,7 @@ The possible states are This is the default state for widgets. @item ACTIVE This is the state for a widget that is ready to do something. It is -also for the trough of a scroll bar, i.e. @code{bg[ACTIVE] = "red"} +also for the trough of a scroll bar, i.e. @code{bg[ACTIVE] = "red"} sets the scroll bar trough to red. Buttons that have been pressed but not released yet (``armed'') are in this state. @item PRELIGHT @@ -817,7 +817,7 @@ editable text, use @code{base} for that. @item base[@var{state}] = @var{color} This is the background color for editable text. -In Emacs, this color is used for the background of the text fields in the +In Emacs, this color is used for the background of the text fields in the file dialog. @item bg_pixmap[@var{state}] = "@var{pixmap}" @@ -844,7 +844,7 @@ of text in menus and buttons. It is also the color for the arrows in the scroll bar. For editable text, use @code{text}. @item text[@var{state}] = @var{color} -This is the color for editable text. In Emacs, this color is used for the +This is the color for editable text. In Emacs, this color is used for the text fields in the file dialog. @item font_name = "@var{font}" @@ -861,7 +861,7 @@ A color name is written within double quotes, for example @code{"red"}. @noindent A hexadecimal form is written within double quotes. There are four forms, -@code{#rrrrggggbbbb}, @code{#rrrgggbbb}, +@code{#rrrrggggbbbb}, @code{#rrrgggbbb}, @code{#rrggbb}, or @code{#rgb}. In each of these r, g and b are hex digits. @noindent diff --git a/msdos/ChangeLog b/msdos/ChangeLog index be5fd01d0e6..04085168558 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -11,7 +11,7 @@ 2002-03-20 Eli Zaretskii <eliz@is.elta.co.il> - * mainmake.v2 (bootstrap-lisp-1, bootstrap-lisp, bootstrap-src) + * mainmake.v2 (bootstrap-lisp-1, bootstrap-lisp, bootstrap-src) (bootstrap-clean-before, bootstrap-clean-after): Return to the top-level directory after sub-make. (bootstrap-lisp): Pass an absolute file name as value of ${lisp}. @@ -25,8 +25,8 @@ * sed1v2.inp: Edit the bootstrap-* targets. Fix the mostlyclean target. - * mainmake.v2 (maybe_bootstrap, bootstrap, bootstrap-lisp-1) - (bootstrap-lisp, bootstrap-src, bootstrap-clean-before) + * mainmake.v2 (maybe_bootstrap, bootstrap, bootstrap-lisp-1) + (bootstrap-lisp, bootstrap-src, bootstrap-clean-before) (bootstrap-clean-after): New targets. (all): Depend on maybe_bootstrap. @@ -68,7 +68,7 @@ 2001-10-05 Gerd Moellmann <gerd@gnu.org> * Branch for 21.1. - + 2001-07-20 Eli Zaretskii <eliz@is.elta.co.il> * mainmake.v2 (install): Create site-lisp/subdirs.el if it is not @@ -346,10 +346,10 @@ * sed1.inp: Replace `make-docfile' with `make-doc.exe'. In case src/Makefile needs to rebuild `make-doc.exe', use one command per line. Undo the previous change. - + 1996-04-15 Richard Stallman <rms@mole.gnu.ai.mit.edu> - * sed1.inp: Change make-docfile to make-doc.exe in a second place. + * sed1.inp: Change make-docfile to make-doc.exe in a second place. 1996-04-15 Eli Zaretskii <eliz@is.elta.co.il> @@ -357,7 +357,7 @@ a long sed command line (some versions of Sed don't handle that). (gdb): Merged back into src, undoing April 13 change. (install): Do use if statements, but not a loop. - + 1996-04-13 Richard Stallman <rms@mole.gnu.ai.mit.edu> * mainmake.v2 (gdb): New target, broken out of src. @@ -515,7 +515,7 @@ to terra@diku.dk, but be prepared to sign a copyright disclaimer. (This file contains non-printable characters.) - * sed3.inp: New file for changing lib-src/makefile.in into + * sed3.inp: New file for changing lib-src/makefile.in into lib-src/makefile. * sed2.inp: New file for changing src/config.h-in into src/config.h diff --git a/msdos/mainmake b/msdos/mainmake index 85a275fda3d..1111cdc5066 100644 --- a/msdos/mainmake +++ b/msdos/mainmake @@ -29,14 +29,14 @@ # with them. # # Delete `.dvi' files here if they are not part of the distribution. -# +# # make distclean # Delete all files from the current directory that are created by # configuring or building the program. If you have unpacked the # source and built the program without creating any other files, # `make distclean' should leave only the files that were in the # distribution. -# +# # make realclean # Delete everything from the current directory that can be # reconstructed with this Makefile. This typically includes diff --git a/msdos/mainmake.v2 b/msdos/mainmake.v2 index 65390accbdf..348e32f8814 100644 --- a/msdos/mainmake.v2 +++ b/msdos/mainmake.v2 @@ -32,14 +32,14 @@ # with them. # # Delete `.dvi' files here if they are not part of the distribution. -# +# # make distclean # Delete all files from the current directory that are created by # configuring or building the program. If you have unpacked the # source and built the program without creating any other files, # `make distclean' should leave only the files that were in the # distribution. -# +# # make realclean # Delete everything from the current directory that can be # reconstructed with this Makefile. This typically includes diff --git a/nt/INSTALL b/nt/INSTALL index 46b831f4292..e9dcfb693f5 100644 --- a/nt/INSTALL +++ b/nt/INSTALL @@ -7,7 +7,7 @@ If you used WinZip to unpack the distribution, we suggest to remove the files and unpack again with a different program! WinZip is known to create some subtle and hard to debug problems, - such as converting files to DOS CR-LF format, not creating empty + such as converting files to DOS CR-LF format, not creating empty directories, etc. We suggest to use djtarnt.exe from the GNU FTP site. @@ -35,7 +35,7 @@ In addition, using 4NT as your shell is known to fail the build process, at least for 4NT version 3.01. Use cmd.exe, the default NT shell, instead. - + sh exists no sh cygwin b20.1 make (3.75): fails[1, 5] fails[2, 5] @@ -46,7 +46,7 @@ cygwin compiled gmake 3.77: fails[1, 5] fails[2, 5] cygwin compiled make 3.78.1: fails[5] fails[2, 5] cygwin compiled make 3.79.1: fails[3, 5] fails[2?, 5] - mingw32 compiled make 3.79.1: okay okay + mingw32 compiled make 3.79.1: okay okay Notes: diff --git a/nt/addpm.c b/nt/addpm.c index 24fc0bbc591..fa0f4253abb 100644 --- a/nt/addpm.c +++ b/nt/addpm.c @@ -32,7 +32,7 @@ Boston, MA 02111-1307, USA. */ #include <stdlib.h> #include <stdio.h> -HDDEDATA CALLBACK +HDDEDATA CALLBACK DdeCallback (UINT uType, UINT uFmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hdata, DWORD dwData1, DWORD dwData2) @@ -50,8 +50,8 @@ static struct entry { char *name; char *value; -} -env_vars[] = +} +env_vars[] = { {"emacs_dir", NULL}, {"EMACSLOADPATH", "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp;%emacs_dir%/lisp;%emacs_dir%/leim"}, @@ -65,7 +65,7 @@ env_vars[] = {"TERM", "cmd"} }; -BOOL +BOOL add_registry (path) char *path; { @@ -73,39 +73,39 @@ add_registry (path) DWORD dwDisp; int i; BOOL ok = TRUE; - - /* Check both the current user and the local machine to see if we + + /* Check both the current user and the local machine to see if we have any resources. */ - + if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, 0, "", REG_OPTION_NON_VOLATILE, - KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS + KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS && RegCreateKeyEx (HKEY_CURRENT_USER, REG_ROOT, 0, "", REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS) { return FALSE; } - - for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++) + + for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++) { char * value = env_vars[i].value ? env_vars[i].value : path; - + if (RegSetValueEx (hrootkey, env_vars[i].name, 0, REG_EXPAND_SZ, value, lstrlen (value) + 1) != ERROR_SUCCESS) ok = FALSE; - } - + } + RegCloseKey (hrootkey); - + return (ok); } int main (argc, argv) int argc; - char *argv[]; + char *argv[]; { DWORD idDde = 0; HCONV HConversation; diff --git a/nt/addsection.c b/nt/addsection.c index 55e83977fb1..f9eff2f73f6 100644 --- a/nt/addsection.c +++ b/nt/addsection.c @@ -67,17 +67,17 @@ open_input_file (file_data *p_file, char *filename) file = CreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - if (file == INVALID_HANDLE_VALUE) + if (file == INVALID_HANDLE_VALUE) return FALSE; size = GetFileSize (file, &upper_size); - file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, + file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, 0, size, NULL); - if (!file_mapping) + if (!file_mapping) return FALSE; file_base = MapViewOfFile (file_mapping, FILE_MAP_READ, 0, 0, size); - if (file_base == 0) + if (file_base == 0) return FALSE; p_file->name = filename; @@ -98,18 +98,18 @@ open_output_file (file_data *p_file, char *filename, unsigned long size) file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); - if (file == INVALID_HANDLE_VALUE) + if (file == INVALID_HANDLE_VALUE) return FALSE; - file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, + file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, 0, size, NULL); - if (!file_mapping) + if (!file_mapping) return FALSE; - + file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size); - if (file_base == 0) + if (file_base == 0) return FALSE; - + p_file->name = filename; p_file->size = size; p_file->file = file; @@ -270,7 +270,7 @@ relocate_offset (DWORD offset, static void -copy_executable_and_add_section (file_data *p_infile, +copy_executable_and_add_section (file_data *p_infile, file_data *p_outfile, char *new_section_name, DWORD new_section_size) @@ -314,10 +314,10 @@ copy_executable_and_add_section (file_data *p_infile, Note that dst is updated implicitly by each COPY_CHUNK. */ dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base; - nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + + nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + dos_header->e_lfanew); section = IMAGE_FIRST_SECTION (nt_header); - + dst = (unsigned char *) p_outfile->file_base; COPY_CHUNK ("Copying DOS header...", dos_header, @@ -477,7 +477,7 @@ main (int argc, char **argv) /* Open the undumped executable file. */ if (!open_input_file (&in_file, in_filename)) { - printf ("Failed to open %s (%d)...bailing.\n", + printf ("Failed to open %s (%d)...bailing.\n", in_filename, GetLastError ()); exit (1); } @@ -491,7 +491,7 @@ main (int argc, char **argv) * nt_header->FileHeader.NumberOfSections; if (!open_output_file (&out_file, out_filename, size)) { - printf ("Failed to open %s (%d)...bailing.\n", + printf ("Failed to open %s (%d)...bailing.\n", out_filename, GetLastError ()); exit (1); } diff --git a/nt/cmdproxy.c b/nt/cmdproxy.c index 09a3c672e79..9280f29c351 100644 --- a/nt/cmdproxy.c +++ b/nt/cmdproxy.c @@ -230,7 +230,7 @@ search_dir (char *dir, char *exec, int bufsize, char *buffer) int i, rc; /* Search the directory for the program. */ - for (i = 0; i < n_exts; i++) + for (i = 0; i < n_exts; i++) { rc = SearchPath (dir, exec, exts[i], bufsize, buffer, &dummy); if (rc > 0) @@ -240,7 +240,7 @@ search_dir (char *dir, char *exec, int bufsize, char *buffer) return 0; } -/* Return the absolute name of executable file PROG, including +/* Return the absolute name of executable file PROG, including any file extensions. If an absolute name for PROG cannot be found, return NULL. */ char * @@ -272,18 +272,18 @@ make_absolute (char *prog) return NULL; } - if (GetCurrentDirectory (MAX_PATH, curdir) <= 0) + if (GetCurrentDirectory (MAX_PATH, curdir) <= 0) return NULL; /* Relative path; search in current dir. */ - if (strpbrk (prog, "\\")) + if (strpbrk (prog, "\\")) { if (search_dir (curdir, prog, MAX_PATH, absname) > 0) return strdup (absname); - else + else return NULL; } - + /* Just filename; search current directory then PATH. */ path = alloca (strlen (getenv ("PATH")) + strlen (curdir) + 2); strcpy (path, curdir); @@ -304,7 +304,7 @@ make_absolute (char *prog) /* Move to the next directory. */ path = p + 1; - } + } return NULL; } @@ -322,7 +322,7 @@ setup_argv (void) char * cmdline = GetCommandLine (); int arg_bytes = 0; - + } #endif @@ -384,7 +384,7 @@ spawn (char * progname, char * cmdline, char * dir, int * retcode) sec_attrs.nLength = sizeof (sec_attrs); sec_attrs.lpSecurityDescriptor = NULL; sec_attrs.bInheritHandle = FALSE; - + memset (&start, 0, sizeof (start)); start.cb = sizeof (start); diff --git a/nt/config.nt b/nt/config.nt index 4f5a641c7b9..a9246c255ea 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -20,7 +20,7 @@ Boston, MA 02111-1307, USA. */ /* No code in Emacs #includes config.h twice, but some of the code - intended to work with other packages as well (like gmalloc.c) + intended to work with other packages as well (like gmalloc.c) think they can include it as many times as they like. */ #ifndef EMACS_CONFIG_H #define EMACS_CONFIG_H @@ -288,7 +288,7 @@ Boston, MA 02111-1307, USA. */ configuration names to use for them. See s/template.h for documentation on writing s/SYSTEM.h files. */ -#undef config_opsysfile +#undef config_opsysfile #include "s/ms-w32.h" /* The configuration script defines machfile to be the name of the diff --git a/nt/ddeclient.c b/nt/ddeclient.c index 406e99fe0a2..3a82395ca30 100644 --- a/nt/ddeclient.c +++ b/nt/ddeclient.c @@ -23,7 +23,7 @@ Boston, MA 02111-1307, USA. */ #include <stdlib.h> #include <stdio.h> -HDDEDATA CALLBACK +HDDEDATA CALLBACK DdeCallback (UINT uType, UINT uFmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hdata, DWORD dwData1, DWORD dwData2) diff --git a/nt/gmake.defs b/nt/gmake.defs index d3d24b9d578..afa1b855d94 100644 --- a/nt/gmake.defs +++ b/nt/gmake.defs @@ -1,17 +1,17 @@ # # Makefile definition file for building GNU Emacs on the Microsoft W32 API. # Copyright (c) 2000-2001 Free Software Foundation, Inc. -# +# # 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., 59 Temple Place - Suite 330, @@ -21,7 +21,7 @@ all: # NOTES -# +# # I tried to force gmake to use the native shell for simplicity, by # setting SHELL as below, but this didn't work reliably because of # various case sensitivity niggles. Specifically, COMSPEC (which is in @@ -31,7 +31,7 @@ all: # thinks it doesn't exist (unless compiled with a switch to ignore # case), and so doesn't change which shell it will invoke to execute # commands. -# +# # It would be possible, though very tedious using just gmake facilities, # to convert the COMSPEC value to uppercase to solve this problem, but # it isn't worth it. That is partly because, even when using the native @@ -46,14 +46,14 @@ all: # mandate that rm and cp be available, so we can use Unix-format file # names everywhere. (Fortunately both MS and GNU make, and the # respective compilers, are happy with Unix-format names.) -# +# # Since we cannot easily force the choice of a particular shell, we must # make the effort to cope with whichever shell is being used. # Fortunately, the only command we need to use that is shell specific is # the testing of a file's existence for the purpose of working out when # we are copying files to their original location. That particular # requirement is abstracted easily enough. -# +# # The only other problem area was the change of directory when running # temacs to dump emacs.exe (where gmake doesn't support cd foo in any # useful way), but that has been resolved by modifying the Windows @@ -117,7 +117,7 @@ endif export EMACSLOADPATH # Determine the architecture we're running on. -# Define ARCH for our purposes; +# Define ARCH for our purposes; # Define CPU for use by ntwin32.mak; # Define CONFIG_H to the appropriate config.h for the system; # @@ -162,8 +162,8 @@ RC = windres -O coff RC_OUT = -o$(SPACE) RC_INCLUDE = --include-dir$(SPACE) -libc = -baselibs = +libc = +baselibs = O = o A = a @@ -181,7 +181,7 @@ WINMM = -lwinmm ifdef NOOPT DEBUG_CFLAGS = -DEMACSDEBUG else -DEBUG_CFLAGS = +DEBUG_CFLAGS = endif CFLAGS = -I. -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0400 $(ARCH_CFLAGS) -D$(ARCH) \ -D_CRTAPI1=_cdecl \ @@ -238,7 +238,7 @@ DQUOTE = \" endif ifdef NODEBUG -DEBUG_FLAG = +DEBUG_FLAG = DEBUG_LINK = else DEBUG_FLAG = -g diff --git a/nt/inc/sys/time.h b/nt/inc/sys/time.h index 441b3faa650..881808c5323 100644 --- a/nt/inc/sys/time.h +++ b/nt/inc/sys/time.h @@ -5,12 +5,12 @@ * sys/time.h doesn't exist on NT */ -struct timeval +struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microseconds */ }; -struct timezone +struct timezone { int tz_minuteswest; /* minutes west of Greenwich */ int tz_dsttime; /* type of dst correction */ diff --git a/nt/makefile.def b/nt/makefile.def index 6fb05dfd20a..24003eb309f 100644 --- a/nt/makefile.def +++ b/nt/makefile.def @@ -1,17 +1,17 @@ # # Makefile definition file for building GNU Emacs on Windows NT # Copyright (c) 1994-2001 Free Software Foundation, Inc. -# +# # 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., 59 Temple Place - Suite 330, @@ -63,7 +63,7 @@ _NMAKE_VER=$(_NMAKE_VER_4) !endif # Determine the architecture we're running on. -# Define ARCH for our purposes; +# Define ARCH for our purposes; # Define CPU for use by ntwin32.mak; # Define CONFIG_H to the appropriate config.h for the system; # @@ -100,8 +100,8 @@ OS_TYPE = windows95 # Include ntwin32.mak. So far, this file seems to be supported by every # Microsoft compiler on NT and Windows 95 and properly defines the executable -# names and libraries necessary to build Emacs. I do not have access -# to any other vendor compilers, so I do not know if they supply this +# names and libraries necessary to build Emacs. I do not have access +# to any other vendor compilers, so I do not know if they supply this # file, too. For now I'll assume that they do. # !include <ntwin32.mak> diff --git a/nt/makefile.nt b/nt/makefile.nt index e1378f611e7..d9ca04dabdf 100644 --- a/nt/makefile.nt +++ b/nt/makefile.nt @@ -3,17 +3,17 @@ # Copyright (c) 1993-2000 Free Software Foundation, Inc. # # This file is part of GNU Emacs. -# +# # GNU Emacs is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 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., 59 Temple Place - Suite 330, @@ -130,7 +130,7 @@ install: all $(INSTALL_DIR) $(INSTALL_CMD) cd ..\leim if exist makefile.nt $(INSTALL_CMD) - cd ..\nt + cd ..\nt - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin - $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin @@ -187,7 +187,7 @@ real_install: # # Maintenance -# +# CLEAN_CMD = $(MAKE) -f makefile.nt clean clean: - $(DEL) *~ *.pdb diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index 10f6d6bebd2..4e8265f4da0 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in @@ -4,17 +4,17 @@ # Top level makefile for building GNU Emacs on Windows NT
#
# 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., 59 Temple Place - Suite 330,
@@ -216,7 +216,7 @@ install-other-dirs-gmake: #
# Maintenance
-#
+#
clean: clean-other-dirs-$(MAKETYPE)
- $(DEL) *~ $(COMPILER_TEMP_FILES)
- $(DEL_TREE) $(OBJDIR)
diff --git a/nt/nmake.defs b/nt/nmake.defs index e2bfd58fc57..99db4211f1b 100644 --- a/nt/nmake.defs +++ b/nt/nmake.defs @@ -1,17 +1,17 @@ #
# Makefile definition file for building GNU Emacs on the Microsoft W32 API.
# Copyright (c) 2000-2001 Free Software Foundation, Inc.
-#
+#
# 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., 59 Temple Place - Suite 330,
@@ -64,7 +64,7 @@ _NMAKE_VER=$(_NMAKE_VER_4) !endif
# Determine the architecture we're running on.
-# Define ARCH for our purposes;
+# Define ARCH for our purposes;
# Define CPU for use by ntwin32.mak;
# Define CONFIG_H to the appropriate config.h for the system;
#
@@ -110,7 +110,7 @@ RC_OUT = -Fo RC_INCLUDE = -i
libc = libc.lib
-baselibs =
+baselibs =
O = obj
A = lib
@@ -128,7 +128,7 @@ WINMM = winmm.lib !ifdef NOOPT
DEBUG_CFLAGS = -DEMACSDEBUG
!else
-DEBUG_CFLAGS =
+DEBUG_CFLAGS =
!endif
CFLAGS = -I. -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0400 $(ARCH_CFLAGS) -D$(ARCH) \
-D_CRTAPI1=_cdecl $(DEBUG_CFLAGS) $(USER_CFLAGS) $(LOCAL_FLAGS)
@@ -166,8 +166,8 @@ DEL = rm DEL_TREE = rm -r
!ifdef NODEBUG
-DEBUG_FLAG =
-DEBUG_LINK =
+DEBUG_FLAG =
+DEBUG_LINK =
!else
DEBUG_FLAG = -Zi
DEBUG_LINK = -debug:full -debugtype:both
diff --git a/nt/preprep.c b/nt/preprep.c index 08a29ae5931..64cd1b73916 100644 --- a/nt/preprep.c +++ b/nt/preprep.c @@ -67,17 +67,17 @@ open_input_file (file_data *p_file, char *filename) file = CreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - if (file == INVALID_HANDLE_VALUE) + if (file == INVALID_HANDLE_VALUE) return FALSE; size = GetFileSize (file, &upper_size); - file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, + file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, 0, size, NULL); - if (!file_mapping) + if (!file_mapping) return FALSE; file_base = MapViewOfFile (file_mapping, FILE_MAP_READ, 0, 0, size); - if (file_base == 0) + if (file_base == 0) return FALSE; p_file->name = filename; @@ -98,18 +98,18 @@ open_output_file (file_data *p_file, char *filename, unsigned long size) file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); - if (file == INVALID_HANDLE_VALUE) + if (file == INVALID_HANDLE_VALUE) return FALSE; - file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, + file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, 0, size, NULL); - if (!file_mapping) + if (!file_mapping) return FALSE; - + file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size); - if (file_base == 0) + if (file_base == 0) return FALSE; - + p_file->name = filename; p_file->size = size; p_file->file = file; @@ -129,17 +129,17 @@ open_inout_file (file_data *p_file, char *filename) file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - if (file == INVALID_HANDLE_VALUE) + if (file == INVALID_HANDLE_VALUE) return FALSE; size = GetFileSize (file, &upper_size); file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, 0, size, NULL); - if (!file_mapping) + if (!file_mapping) return FALSE; file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size); - if (file_base == 0) + if (file_base == 0) return FALSE; p_file->name = filename; @@ -341,7 +341,7 @@ relocate_offset (DWORD offset, easy to parse. */ static void -copy_executable_and_move_sections (file_data *p_infile, +copy_executable_and_move_sections (file_data *p_infile, file_data *p_outfile) { unsigned char *dst; @@ -389,10 +389,10 @@ copy_executable_and_move_sections (file_data *p_infile, Note that dst is updated implicitly by each COPY_CHUNK. */ dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base; - nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + + nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + dos_header->e_lfanew); section = IMAGE_FIRST_SECTION (nt_header); - + import_dir = &nt_header->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]; import_section = rva_to_section (import_dir->VirtualAddress, nt_header); @@ -776,7 +776,7 @@ main (int argc, char **argv) /* Open the original (dumped) executable file for reference. */ if (!open_input_file (&in_file, in_filename)) { - printf ("Failed to open %s (%d)...bailing.\n", + printf ("Failed to open %s (%d)...bailing.\n", in_filename, GetLastError ()); exit (1); } @@ -786,7 +786,7 @@ main (int argc, char **argv) which should fit in the alignment slop. */ if (!open_output_file (&out_file, out_filename, in_file.size)) { - printf ("Failed to open %s (%d)...bailing.\n", + printf ("Failed to open %s (%d)...bailing.\n", out_filename, GetLastError ()); exit (1); } diff --git a/oldXMenu/Activate.c b/oldXMenu/Activate.c index 5196d0ccc12..8e1b3742d9b 100644 --- a/oldXMenu/Activate.c +++ b/oldXMenu/Activate.c @@ -1,4 +1,4 @@ -/* $Header: /cvsroot/emacs//emacs/oldXMenu/Activate.c,v 1.3 2000/07/21 14:36:24 gerd Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/Activate.c,v 1.4 2002/04/22 18:27:03 jhd Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ #include "copyright.h" @@ -28,7 +28,7 @@ * * 1) If at any time an error occurs the data * pointer is left untouched and XM_FAILURE - * is returned. + * is returned. * * 2) When a selection request is received (i.e., * when the specified mouse event occurs) the @@ -42,7 +42,7 @@ * will be left untouched and XM_NO_SELECT will * be returned. * - * 4) If the selection that was current at the time + * 4) If the selection that was current at the time * a selection request is made is not an active * selection the data pointer will be left * untouched and XM_IA_SELECT will be returned. @@ -131,7 +131,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, XMEventQue *feq = NULL; /* Foreign event queue. */ XMEventQue *feq_tmp; /* Foreign event queue temporary. */ - + /* * If there are no panes in the menu then return failure * because the menu is not initialized. @@ -162,14 +162,14 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, * Compute origin of menu so that cursor is in * Correct pane and selection. */ - _XMTransToOrigin(display, - menu, - cur_p, cur_s, - x_pos, y_pos, + _XMTransToOrigin(display, + menu, + cur_p, cur_s, + x_pos, y_pos, &orig_x, &orig_y); menu->x_pos = orig_x; /* Store X and Y coords of menu. */ menu->y_pos = orig_y; - + if (XMenuRecompute(display, menu) == XM_FAILURE) { return(XM_FAILURE); } @@ -212,11 +212,11 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, * not provided an event handler. */ XSync(display, 0); - + /* * Grab the mouse for menu input. */ - + status = XGrabPointer( display, menu->parent, @@ -239,7 +239,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, if (status != Success) XUngrabPointer(display, CurrentTime); } - + if (status == _X_FAILURE) { _XMErrorCode = XME_GRAB_MOUSE; return(XM_FAILURE); @@ -250,7 +250,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, */ XMapWindow(display, cur_p->window); for (p_ptr = menu->p_list->next; - p_ptr != cur_p; + p_ptr != cur_p; p_ptr = p_ptr->next) XMapWindow(display, p_ptr->window); for (p_ptr = cur_p->next; @@ -260,7 +260,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, XRaiseWindow(display, cur_p->window); /* Make sure current */ /* pane is on top. */ - + cur_s = NULL; /* Clear current selection. */ /* @@ -271,7 +271,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, switch (event.type) { /* Dispatch on the event type. */ case Expose: event_xmp = (XMPane *)XLookUpAssoc(display, - menu->assoc_tab, + menu->assoc_tab, event.xexpose.window); if (event_xmp == NULL) { /* @@ -292,7 +292,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, } if (event_xmp->activated) { XSetWindowBackground(display, - event_xmp->window, + event_xmp->window, menu->bkgnd_color); } else { @@ -303,13 +303,13 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, _XMRefreshPane(display, menu, event_xmp); break; case EnterNotify: - /* + /* * First wait a small period of time, and see * if another EnterNotify event follows hard on the * heels of this one. i.e., the user is simply * "passing through". If so, ignore this one. */ - + event_xmw = (XMWindow *)XLookUpAssoc(display, menu->assoc_tab, event.xcrossing.window); @@ -324,11 +324,11 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, if(peek_event.type == LeaveNotify) { break; } - } + } cur_s = (XMSelect *)event_xmw; help_callback (cur_s->help_string, cur_p->serial, cur_s->serial); - + /* * If the pane we are in is active and the * selection entered is active then activate @@ -385,7 +385,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, * take it from here. -- caveh@eng.sun.com. */ XSetWindowBackground(display, - event_xmp->window, + event_xmp->window, menu->bkgnd_color); _XMRefreshPane(display, menu, event_xmp); #endif @@ -400,7 +400,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, ); if (event_xmw == NULL) break; if(cur_s == NULL) break; - + /* * If the current selection was activated then * deactivate it. @@ -411,7 +411,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, } cur_s = NULL; break; - + case ButtonPress: case ButtonRelease: *p_num = cur_p->serial; @@ -471,7 +471,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, */ for ( p_ptr = menu->p_list->next; p_ptr != menu->p_list; - p_ptr = p_ptr->next) + p_ptr = p_ptr->next) { XUnmapWindow(display, p_ptr->window); } @@ -482,7 +482,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, XUngrabPointer(display, CurrentTime); XUngrabKeyboard(display, CurrentTime); - /* + /* * Restore bits under where the menu was if we managed * to save them and free the pixmap. */ @@ -502,7 +502,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, * Synchronize the X buffers and the X event queue. */ XSync(display, 0); - + /* * Dispatch any events remaining on the queue. */ @@ -557,7 +557,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data, feq = feq_tmp->next; free((char *)feq_tmp); } - + /* * Return successfully. */ diff --git a/oldXMenu/AddPane.c b/oldXMenu/AddPane.c index 739cdfe43e8..ab8ed42b012 100644 --- a/oldXMenu/AddPane.c +++ b/oldXMenu/AddPane.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/AddPane.c,v 1.1 1992/04/11 22:10:17 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/AddPane.c,v 1.1 1999/10/03 19:34:51 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -18,14 +18,14 @@ int XMenuAddPane(display, menu, label, active) - Display *display; + Display *display; register XMenu *menu; /* Menu object to be modified. */ register char *label; /* Selection label. */ int active; /* Make selection active? */ { register XMPane *pane; /* Newly created pane. */ register XMSelect *select; /* Initial selection for the new pane. */ - + int label_length; /* Label length in characters. */ int label_width; /* Label width in pixels. */ @@ -50,7 +50,7 @@ XMenuAddPane(display, menu, label, active) _XMErrorCode = XME_CALLOC; return(XM_FAILURE); } - + /* * Determine label size. */ @@ -58,7 +58,7 @@ XMenuAddPane(display, menu, label, active) label_width = XTextWidth(menu->p_fnt_info, label, label_length); - + /* * Set up the initial selection. * Values not explicitly set are zeroed by calloc. @@ -87,7 +87,7 @@ XMenuAddPane(display, menu, label, active) emacs_insque(pane, menu->p_list->prev); /* - * Update the pane count. + * Update the pane count. */ menu->p_count++; diff --git a/oldXMenu/AddSel.c b/oldXMenu/AddSel.c index 3a25cbdba3a..7807fb66518 100644 --- a/oldXMenu/AddSel.c +++ b/oldXMenu/AddSel.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /gd/gnu/cvsroot/emacs/oldXMenu/AddSel.c,v 1.1 1999/10/03 19:34:52 fx Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/AddSel.c,v 1.2 2000/01/27 15:30:18 gerd Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -32,7 +32,7 @@ XMenuAddSelection(display, menu, p_num, data, label, active, help) int label_length; /* Label lenght in characters. */ int label_width; /* Label width in pixels. */ - + /* * Check for NULL pointers! */ @@ -59,7 +59,7 @@ XMenuAddSelection(display, menu, p_num, data, label, active, help) */ label_length = strlen(label); label_width = XTextWidth(menu->s_fnt_info, label, label_length); - + /* * Fill the XMSelect structure. */ @@ -81,7 +81,7 @@ XMenuAddSelection(display, menu, p_num, data, label, active, help) select->data = data; select->parent_p = pane; select->help_string = help; - + /* * Insert the selection at the end of the selection list. */ diff --git a/oldXMenu/ChgSel.c b/oldXMenu/ChgSel.c index 591fbb7e886..d436a480a1b 100644 --- a/oldXMenu/ChgSel.c +++ b/oldXMenu/ChgSel.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/ChgSel.c,v 1.1 1992/04/11 22:10:17 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/ChgSel.c,v 1.1 1999/10/03 19:34:54 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -28,7 +28,7 @@ XMenuChangeSelection(display, menu, p_num, s_num, data, data_sw, label, label_sw { register XMPane *p_ptr; /* XMPane pointer. */ register XMSelect *s_ptr; /* XMSelect pointer. */ - + int label_length; /* Label length in characters. */ int label_width; /* Label width in pixels. */ diff --git a/oldXMenu/Create.c b/oldXMenu/Create.c index ffbee593421..e500e406349 100644 --- a/oldXMenu/Create.c +++ b/oldXMenu/Create.c @@ -1,4 +1,4 @@ -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Create.c,v 1.4 1993/03/09 18:18:01 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/Create.c,v 1.1 1999/10/03 19:34:56 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ #include "copyright.h" @@ -98,7 +98,7 @@ char *x_get_resource_string (); -static Status +static Status XAllocDisplayColor(display, map, colorName, color, junk) Display *display; Colormap map; @@ -189,7 +189,7 @@ XMenuCreate(display, parent, def_env) Pixmap stipple_pixmap; /* Stipple mask for half-tone text. */ unsigned long valuemask; XGCValues *values; - + Window root = RootWindow (display, DefaultScreen (display)); /* @@ -205,8 +205,8 @@ XMenuCreate(display, parent, def_env) _XMErrorCode = XME_CALLOC; return(NULL); } - - /* + + /* * Create the XAssocTable */ assoc_tab = (XAssocTable *)XCreateAssocTable(XASSOC_TABLE_SIZE); @@ -266,14 +266,14 @@ XMenuCreate(display, parent, def_env) if (strcmp(def_val, "box") == 0) menu_mode = BOX; else if (strcmp(def_val, "invert") == 0) menu_mode = INVERT; } - + def_val = x_get_resource_string ("menuMouse", "MenuMouse"); if ( def_val != NULL && DisplayCells(display, DefaultScreen(display)) > 2 && - XAllocDisplayColor(display, - DefaultColormap(display, DefaultScreen(display)), - def_val, + XAllocDisplayColor(display, + DefaultColormap(display, DefaultScreen(display)), + def_val, &mouse_color, &color_def) ); else if (reverse && @@ -282,13 +282,13 @@ XMenuCreate(display, parent, def_env) "white", &mouse_color, &color_def) ); - + else if (XAllocDisplayColor(display, DefaultColormap(display, DefaultScreen(display)), - "black", + "black", &mouse_color, &color_def) ); - + else ; def_val = x_get_resource_string ("menuBackground", "MenuBackground"); @@ -335,15 +335,15 @@ XMenuCreate(display, parent, def_env) def_val = x_get_resource_string ("paneForeground", "PaneForeground"); if ( def_val != NULL && - DisplayCells(display, DefaultScreen(display)) > 2 + DisplayCells(display, DefaultScreen(display)) > 2 ) XAllocDisplayColor(display, DefaultColormap(display, DefaultScreen(display)), def_val, &p_frg_color, &color_def); - + else if (reverse) XAllocDisplayColor(display, - DefaultColormap(display, + DefaultColormap(display, DefaultScreen(display)), "white", &p_frg_color, &color_def); @@ -362,19 +362,19 @@ XMenuCreate(display, parent, def_env) &p_bdr_color, &color_def) ); else if (reverse && - XAllocDisplayColor(display, + XAllocDisplayColor(display, DefaultColormap(display, DefaultScreen(display)), "white", &p_bdr_color, &color_def) ); - else XAllocDisplayColor(display, + else XAllocDisplayColor(display, DefaultColormap(display, DefaultScreen(display)), "black", &p_bdr_color, &color_def); - + def_val = x_get_resource_string ("paneBorderWidth", "PaneBorderWidth"); if (def_val != NULL) p_bdr_width = atoi(def_val); - + def_val = x_get_resource_string ("paneSpread", "PaneSpread"); if (def_val != NULL) p_spread = atof(def_val); @@ -396,7 +396,7 @@ XMenuCreate(display, parent, def_env) DefaultColormap(display, DefaultScreen(display)), def_val, &s_frg_color, &color_def) - ); + ); else if (reverse && XAllocDisplayColor(display, DefaultColormap(display, DefaultScreen(display)), @@ -409,7 +409,7 @@ XMenuCreate(display, parent, def_env) &s_frg_color, &color_def) ) ; else ; - + def_val = x_get_resource_string ("selectionBorder", "SelectionBorder"); if ( @@ -421,7 +421,7 @@ XMenuCreate(display, parent, def_env) &s_bdr_color, &color_def) ) ; else if (reverse && - XAllocDisplayColor(display, + XAllocDisplayColor(display, DefaultColormap(display, DefaultScreen(display)), "white", &s_bdr_color, &color_def) @@ -435,7 +435,7 @@ XMenuCreate(display, parent, def_env) def_val = x_get_resource_string ("selectionBorderWidth", "SelectionBorderWidth"); if (def_val != NULL) s_bdr_width = atoi(def_val); - + def_val = x_get_resource_string ("selectionSpread", "SelectionSpread"); if (def_val != NULL) s_spread = atof(def_val); @@ -446,7 +446,7 @@ XMenuCreate(display, parent, def_env) char *data = NULL; int width, height; - switch (inact_pnum) + switch (inact_pnum) { case 0: data = (char *)dimple1_bits; @@ -495,7 +495,7 @@ XMenuCreate(display, parent, def_env) /* * Load the mouse cursor. */ - + switch (menu_style) { case LEFT: cursor = XCreateBitmapFromData(display, @@ -510,13 +510,13 @@ XMenuCreate(display, parent, def_env) left_ptrmsk_height); mouse_cursor = XCreatePixmapCursor( display, - cursor, cursor_mask, + cursor, cursor_mask, &mouse_color, &bkgnd_color, left_ptr_x_hot, left_ptr_y_hot ); XFreePixmap(display, cursor); - XFreePixmap(display, cursor_mask); + XFreePixmap(display, cursor_mask); break; case RIGHT: cursor = XCreateBitmapFromData(display, @@ -537,7 +537,7 @@ XMenuCreate(display, parent, def_env) right_ptr_y_hot ); XFreePixmap(display, cursor); - XFreePixmap(display, cursor_mask); + XFreePixmap(display, cursor_mask); break; case CENTER: cursor = XCreateBitmapFromData(display, @@ -558,7 +558,7 @@ XMenuCreate(display, parent, def_env) cntr_ptr_y_hot ); XFreePixmap(display, cursor); - XFreePixmap(display, cursor_mask); + XFreePixmap(display, cursor_mask); break; default: /* Error! Invalid style parameter. */ @@ -573,12 +573,12 @@ XMenuCreate(display, parent, def_env) /* * Open the pane and selection fonts. */ - + p_fnt_info = XLoadQueryFont(display, p_fnt_name); if (p_fnt_info == NULL) { _XMErrorCode = XME_OPEN_FONT; return(NULL); - + } s_fnt_info = XLoadQueryFont(display, s_fnt_name); @@ -619,7 +619,7 @@ XMenuCreate(display, parent, def_env) * Initialize the internal pane and selection creation queues. */ _XMWinQueInit(); - + /* * Create pane, active, and inactive GC's. */ @@ -634,9 +634,9 @@ XMenuCreate(display, parent, def_env) values->background = bkgnd_color.pixel; values->font = p_fnt_info->fid; values->line_width = p_bdr_width; - + pane_GC = XCreateGC( - display, + display, root, valuemask, values); @@ -648,7 +648,7 @@ XMenuCreate(display, parent, def_env) values->background = bkgnd_color.pixel; values->font = s_fnt_info->fid; values->line_width = s_bdr_width; - normal_select_GC = XCreateGC(display, + normal_select_GC = XCreateGC(display, root, valuemask, values); @@ -656,20 +656,20 @@ XMenuCreate(display, parent, def_env) * Inverse video selection. */ - values->foreground = bkgnd_color.pixel; + values->foreground = bkgnd_color.pixel; values->background = s_frg_color.pixel; values->font = s_fnt_info->fid; values->line_width = s_bdr_width; - inverse_select_GC = XCreateGC(display, + inverse_select_GC = XCreateGC(display, root, valuemask, values); stipple_pixmap = XCreateBitmapFromData(display, root, - stipple_bits, - stipple_width, - stipple_height); - + stipple_bits, + stipple_width, + stipple_height); + /* * Finally, inactive pane header and selections */ @@ -680,15 +680,15 @@ XMenuCreate(display, parent, def_env) values->line_width = s_bdr_width; values->fill_style = FillStippled; values->stipple = stipple_pixmap; - - inact_GC = XCreateGC(display, + + inact_GC = XCreateGC(display, root, valuemask, values); valuemask |= (GCGraphicsExposures); values->graphics_exposures = False; - inact_GC_noexpose = XCreateGC (display, + inact_GC_noexpose = XCreateGC (display, root, valuemask, values); diff --git a/oldXMenu/DelPane.c b/oldXMenu/DelPane.c index cf0354920ce..f656c32ea07 100644 --- a/oldXMenu/DelPane.c +++ b/oldXMenu/DelPane.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/DelPane.c,v 1.1 1992/04/11 22:10:18 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/DelPane.c,v 1.1 1999/10/03 19:34:57 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -24,7 +24,7 @@ XMenuDeletePane(display, menu, p_num) register XMPane *p_ptr; /* Pointer to pane being deleted. */ register XMSelect *s_ptr; /* Pointer to selections being deleted. */ register XMSelect *s_next; /* Pointer to next selection to be deleted. */ - + /* * Find the right pane. */ @@ -48,7 +48,7 @@ XMenuDeletePane(display, menu, p_num) * association table and free their XMSelect structures. */ for ( - s_ptr = p_ptr->s_list->next; + s_ptr = p_ptr->s_list->next; s_ptr != p_ptr->s_list; s_ptr = s_next ) { @@ -63,13 +63,13 @@ XMenuDeletePane(display, menu, p_num) * Destroy the selection transparencies. */ XDestroySubwindows(display, p_ptr->window); - + /* * Destroy the pane window. */ XDestroyWindow(display, p_ptr->window); } - + /* * Free the pane's XMPane structure. */ diff --git a/oldXMenu/DelSel.c b/oldXMenu/DelSel.c index 9f520860df8..76adcc17f2f 100644 --- a/oldXMenu/DelSel.c +++ b/oldXMenu/DelSel.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/DelSel.c,v 1.1 1992/04/11 22:10:18 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/DelSel.c,v 1.1 1999/10/03 19:34:58 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -24,7 +24,7 @@ XMenuDeleteSelection(display, menu, p_num, s_num) { register XMPane *p_ptr; /* Pointer to pane being deleted. */ register XMSelect *s_ptr; /* Pointer to selections being deleted. */ - + /* * Find the right pane. */ @@ -53,7 +53,7 @@ XMenuDeleteSelection(display, menu, p_num, s_num) * Destroy the selection transparency. */ if (s_ptr->window) XDestroyWindow(display, s_ptr->window); - + /* * Free the selection's XMSelect structure. */ diff --git a/oldXMenu/Destroy.c b/oldXMenu/Destroy.c index b7f34fc4788..588af2ad37d 100644 --- a/oldXMenu/Destroy.c +++ b/oldXMenu/Destroy.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Destroy.c,v 1.1 1992/04/11 22:10:18 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/Destroy.c,v 1.1 1999/10/03 19:34:59 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -80,33 +80,33 @@ XMenuDestroy(display, menu) */ if ((menu->p_bdr_color != BlackPixel(display, DefaultScreen(display))) && (menu->p_bdr_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( - display, + display, DefaultColormap(display, DefaultScreen(display)), - &menu->p_bdr_color, + &menu->p_bdr_color, 1, 0); if ((menu->s_bdr_color != BlackPixel(display, DefaultScreen(display))) && (menu->s_bdr_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( - display, - DefaultColormap(display, DefaultScreen(display)), - &menu->s_bdr_color, + display, + DefaultColormap(display, DefaultScreen(display)), + &menu->s_bdr_color, 1, 0); if ((menu->p_frg_color != BlackPixel(display, DefaultScreen(display))) && (menu->p_frg_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( - display, + display, DefaultColormap(display, DefaultScreen(display)), - &menu->p_frg_color, + &menu->p_frg_color, 1, 0); if ((menu->s_frg_color != BlackPixel(display, DefaultScreen(display))) && (menu->s_frg_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( - display, + display, DefaultColormap(display, DefaultScreen(display)), - &menu->s_frg_color, + &menu->s_frg_color, 1, 0); if ((menu->bkgnd_color != BlackPixel(display, DefaultScreen(display))) && (menu->bkgnd_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( - display, + display, DefaultColormap(display, DefaultScreen(display)), - &menu->bkgnd_color, + &menu->bkgnd_color, 1, 0); /* diff --git a/oldXMenu/FindPane.c b/oldXMenu/FindPane.c index a4bed439076..af1ecce51bb 100644 --- a/oldXMenu/FindPane.c +++ b/oldXMenu/FindPane.c @@ -1,12 +1,12 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/FindPane.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/FindPane.c,v 1.1 1999/10/03 19:35:02 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* * XMenu: MIT Project Athena, X Window system menu package * - * XMenuFindPane - Find the first menu pane who's label matches a + * XMenuFindPane - Find the first menu pane who's label matches a * particular string. * * Author: Tony Della Fera, DEC @@ -17,7 +17,7 @@ #include "XMenuInt.h" int -XMenuFindPane(menu, label) +XMenuFindPane(menu, label) register XMenu *menu; register char *label; { diff --git a/oldXMenu/InsPane.c b/oldXMenu/InsPane.c index 7a0d6e3ec63..25fa3390293 100644 --- a/oldXMenu/InsPane.c +++ b/oldXMenu/InsPane.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/InsPane.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/InsPane.c,v 1.1 1999/10/03 19:35:04 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -27,7 +27,7 @@ XMenuInsertPane(menu, p_num, label, active) register XMPane *p_ptr; /* XMPane pointer. */ register XMPane *pane; /* Newly created pane. */ register XMSelect *select; /* Initial selection for the new pane. */ - + int label_length; /* Label length in characters. */ int label_width; /* Label width in pixels. */ @@ -95,7 +95,7 @@ XMenuInsertPane(menu, p_num, label, active) emacs_insque(pane, p_ptr); /* - * Update the pane count. + * Update the pane count. */ menu->p_count++; diff --git a/oldXMenu/InsSel.c b/oldXMenu/InsSel.c index 200f57574ef..b2c75c1043a 100644 --- a/oldXMenu/InsSel.c +++ b/oldXMenu/InsSel.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/InsSel.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/InsSel.c,v 1.1 1999/10/03 19:35:05 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -32,7 +32,7 @@ XMenuInsertSelection(menu, p_num, s_num, data, label, active) int label_length; /* Label length in characters. */ int label_width; /* Label width in pixels. */ - + /* * Check for NULL pointers! */ diff --git a/oldXMenu/Internal.c b/oldXMenu/Internal.c index 39a6a3be6a4..a8941bf3ee2 100644 --- a/oldXMenu/Internal.c +++ b/oldXMenu/Internal.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Internal.c,v 1.1 1992/04/11 22:10:20 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/Internal.c,v 1.1 1999/10/03 19:35:07 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -51,7 +51,7 @@ static XMWinQue _XMWinQue; /* * _XMErrorCode - Global XMenu error code. */ -int _XMErrorCode = XME_NO_ERROR; +int _XMErrorCode = XME_NO_ERROR; /* * _XMErrorList - Global XMenu error code description strings. */ @@ -204,7 +204,7 @@ _XMWinQueFlush(display, menu, pane, select) /* * If the pane window queue is not empty... */ - + if (_XMWinQue.pq_size > 0) { /* * set up attributes for pane window to be created. @@ -214,7 +214,7 @@ _XMWinQueFlush(display, menu, pane, select) attributes->border_pixel = menu->p_bdr_color; attributes->background_pixmap = menu->inact_pixmap; attributes->override_redirect = True; - + /* * Create all the pending panes in order, so that the * current pane will be on top, with the others @@ -222,7 +222,7 @@ _XMWinQueFlush(display, menu, pane, select) */ for (pq_index = _XMWinQue.pq_size - 1; pq_index >= 0; - pq_index--) + pq_index--) { p_ptr = _XMWinQue.pq[pq_index]; /* Retrieve next pane. */ if (p_ptr == pane) break; @@ -243,7 +243,7 @@ _XMWinQueFlush(display, menu, pane, select) } for (pq_index = 0; pq_index < _XMWinQue.pq_size; - pq_index++) + pq_index++) { p_ptr = _XMWinQue.pq[pq_index]; /* Retrieve next pane. */ p_ptr->window = XCreateWindow(display, @@ -273,7 +273,7 @@ _XMWinQueFlush(display, menu, pane, select) /* * If the selection window queue is not empty... */ - + if (_XMWinQue.sq_size > 0) { for (sq_index = 0; sq_index < _XMWinQue.sq_size; sq_index++) { @@ -293,10 +293,10 @@ _XMWinQueFlush(display, menu, pane, select) CopyFromParent, 0, attributes); - + /* * Insert the new window id and its - * associated XMSelect structure into the + * associated XMSelect structure into the * association table. */ XMakeAssoc(display, menu->assoc_tab, s_ptr->window, s_ptr); @@ -371,7 +371,7 @@ _XMGetSelectionPtr(p_ptr, s_num) { register XMSelect *s_ptr; /* Selection pointer to be returned. */ register int i; /* Loop counter. */ - + /* * Is the selection number out of range? */ @@ -400,7 +400,7 @@ _XMGetSelectionPtr(p_ptr, s_num) * global values. */ _XMRecomputeGlobals(display, menu) - register Display *display; /*X11 display variable. */ + register Display *display; /*X11 display variable. */ register XMenu *menu; /* Menu object to compute from. */ { register XMPane *p_ptr; /* Pane pointer. */ @@ -418,7 +418,7 @@ _XMRecomputeGlobals(display, menu) int s_width; /* Selection window width. */ int screen; /* DefaultScreen holder. */ - + /* * For each pane... */ @@ -427,14 +427,14 @@ _XMRecomputeGlobals(display, menu) p_ptr != menu->p_list; p_ptr = p_ptr->next ){ - + /* * Recompute maximum pane label width. */ max_p_label = max(max_p_label, p_ptr->label_width); /* - * Recompute maximum selection count. + * Recompute maximum selection count. */ s_count = max(s_count, p_ptr->s_count); @@ -495,7 +495,7 @@ _XMRecomputeGlobals(display, menu) menu->p_width = p_width; menu->s_width = s_width; - /* + /* * Ensure that the origin of the menu is placed so that * None of the panes ore selections are off the screen. */ @@ -522,10 +522,10 @@ _XMRecomputePane(display, menu, p_ptr, p_num) { register int window_x; /* Recomputed window X coordinate. */ register int window_y; /* Recomputed window Y coordinate. */ - + unsigned long change_mask; /* Value mask to reconfigure window. */ XWindowChanges *changes; /* Values to use in configure window. */ - + register Bool config_p = False; /* Reconfigure pane window? */ /* @@ -558,7 +558,7 @@ _XMRecomputePane(display, menu, p_ptr, p_num) window_y += menu->y_pos; /* - * If the newly compute pane coordinates differ from the + * If the newly compute pane coordinates differ from the * current coordinates, reset the current coordinates and * reconfigure the pane. */ @@ -608,7 +608,7 @@ _XMRecomputePane(display, menu, p_ptr, p_num) changes->y = p_ptr->window_y; changes->width = p_ptr->window_w; changes->height = p_ptr->window_h; - + XConfigureWindow( display, p_ptr->window, @@ -616,7 +616,7 @@ _XMRecomputePane(display, menu, p_ptr, p_num) changes ); free(changes); - + } else { if (_XMWinQueAddPane(display, menu, p_ptr) == _FAILURE) { @@ -624,7 +624,7 @@ _XMRecomputePane(display, menu, p_ptr, p_num) } } } - + /* * Recompute label X position. */ @@ -673,7 +673,7 @@ _XMRecomputeSelection(display, menu, s_ptr, s_num) register Bool config_s = False; /* Reconfigure selection window? */ XWindowChanges *changes; /* Values to change in configure. */ unsigned long change_mask; /* Value mask for XConfigureWindow. */ - + /* * If the selection serial numbers are out of order, begin * resequencing selections. Recompute selection window coordinates @@ -735,7 +735,7 @@ _XMRecomputeSelection(display, menu, s_ptr, s_num) changes->y = s_ptr->window_y; changes->width = s_ptr->window_w; changes->height = s_ptr->window_h; - + XConfigureWindow( display, s_ptr->window, @@ -743,7 +743,7 @@ _XMRecomputeSelection(display, menu, s_ptr, s_num) changes ); free(changes); - + } else { if (_XMWinQueAddSelection(display, menu, s_ptr) == _FAILURE) { @@ -775,7 +775,7 @@ _XMRecomputeSelection(display, menu, s_ptr, s_num) * Recompute label Y position. */ s_ptr->label_y = s_ptr->window_y + menu->s_fnt_info->max_bounds.ascent + menu->s_fnt_pad + menu->s_bdr_width; - + /* * All went well, return successfully. */ @@ -787,7 +787,7 @@ _XMRecomputeSelection(display, menu, s_ptr, s_num) /* * _XMTransToOrigin - Internal subroutine to translate the point at - * the center of the current pane and selection to the + * the center of the current pane and selection to the * the menu origin. * * WARNING! ****** Be certain that all menu dependencies have been @@ -806,7 +806,7 @@ _XMTransToOrigin(display, menu, p_ptr, s_ptr, x_pos, y_pos, orig_x, orig_y) { register int l_orig_x; /* Local X coordinate of the menu origin. */ register int l_orig_y; /* Local Y coordinate of the menu origin. */ - + /* * Translate the menu origin such that the cursor hot point will be in the * center of the desired current selection and pane. @@ -863,7 +863,7 @@ _XMRefreshPane(display, menu, pane) register XMSelect *s_ptr; /* - * First clear the pane. + * First clear the pane. */ XClearWindow(display, pane->window); if (!pane->activated) { @@ -916,12 +916,12 @@ _XMRefreshPane(display, menu, pane) } } } - - + + /* - * _XMRefreshSelection - Internal subroutine that refreshes + * _XMRefreshSelection - Internal subroutine that refreshes * a single selection window. */ _XMRefreshSelection(display, menu, select) @@ -932,7 +932,7 @@ _XMRefreshSelection(display, menu, select) register int width = select->window_w; register int height = select->window_h; register int bdr_width = menu->s_bdr_width; - + if (select->type == SEPARATOR) { XDrawLine(display, select->parent_p->window, @@ -944,11 +944,11 @@ _XMRefreshSelection(display, menu, select) } else if (select->activated) { if (menu->menu_mode == INVERT) { - XFillRectangle(display, + XFillRectangle(display, select->parent_p->window, menu->normal_select_GC, select->window_x, select->window_y, - width, height); + width, height); XDrawString(display, select->parent_p->window, menu->inverse_select_GC, @@ -963,7 +963,7 @@ _XMRefreshSelection(display, menu, select) * are slow compared to raster-ops lets use a raster-op to * draw the boxes. */ - + XDrawRectangle(display, select->parent_p->window, menu->normal_select_GC, @@ -980,7 +980,7 @@ _XMRefreshSelection(display, menu, select) } } else { - XClearArea(display, + XClearArea(display, select->parent_p->window, select->window_x, select->window_y, width, height, diff --git a/oldXMenu/Locate.c b/oldXMenu/Locate.c index 1e02807de96..145812dc3b3 100644 --- a/oldXMenu/Locate.c +++ b/oldXMenu/Locate.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Locate.c,v 1.1 1992/04/11 22:10:20 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/Locate.c,v 1.1 1999/10/03 19:35:09 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -31,7 +31,7 @@ XMenuLocate(display, menu, p_num, s_num, x_pos, y_pos, ul_x, ul_y, width, height { register XMPane *p_ptr; /* XMPane pointer. */ register XMSelect *s_ptr; /* XMSelect pointer. */ - + /* * Are the position arguments positive? */ diff --git a/oldXMenu/Post.c b/oldXMenu/Post.c index 471b1d60dc0..d10b04945d0 100644 --- a/oldXMenu/Post.c +++ b/oldXMenu/Post.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /gd/gnu/cvsroot/emacs/oldXMenu/Post.c,v 1.1 1999/10/03 19:35:10 fx Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/Post.c,v 1.2 2000/01/27 15:30:47 gerd Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -9,7 +9,7 @@ * XMenuPost - Maps a given menu to the display and activates * the menu for user selection. The user is allowed to * specify the mouse button event mask that will be used - * to identify a selection request. When a selection + * to identify a selection request. When a selection * request is received (i.e., when the specified mouse * event occurs) the data returned will be either the * data associated with the particular selection active @@ -59,11 +59,11 @@ XMenuPost(display, menu, p_num, s_num, x_pos, y_pos, event_mask) * Make the procedure call. */ stat = XMenuActivate( - display, + display, menu, - p_num, s_num, - x_pos, y_pos, - event_mask, + p_num, s_num, + x_pos, y_pos, + event_mask, &data, 0); /* diff --git a/oldXMenu/README b/oldXMenu/README index 79b4250633d..4d6619b77ae 100644 --- a/oldXMenu/README +++ b/oldXMenu/README @@ -1,6 +1,6 @@ This directory contains the source code for the X11R2 XMenu library. As of Release 2 of the X Window System, Version 11 from MIT, the XMenu -library no longer supported. It is not used in any software supplied +library no longer supported. It is not used in any software supplied by MIT and its use is not encouraged. diff --git a/oldXMenu/Recomp.c b/oldXMenu/Recomp.c index c433cd550fd..933a6bf9f33 100644 --- a/oldXMenu/Recomp.c +++ b/oldXMenu/Recomp.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Recomp.c,v 1.1 1992/04/11 22:10:20 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/Recomp.c,v 1.1 1999/10/03 19:35:11 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -25,7 +25,7 @@ XMenuRecompute(display, menu) register int p_num; /* Pane serial number. */ register int s_num; /* Selection serial number. */ - + /* * If there are no panes in the menu then return failure * because the menu is not initialized. @@ -44,7 +44,7 @@ XMenuRecompute(display, menu) /* * For each pane in the menu... */ - + p_num = 0; for ( p_ptr = menu->p_list->next; @@ -58,7 +58,7 @@ XMenuRecompute(display, menu) return(XM_FAILURE); } p_num++; - + /* * For each selection in the pane... */ diff --git a/oldXMenu/SetSel.c b/oldXMenu/SetSel.c index 0db2c8eb6bb..af812be31fe 100644 --- a/oldXMenu/SetSel.c +++ b/oldXMenu/SetSel.c @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/SetSel.c,v 1.1 1992/04/11 22:10:21 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/SetSel.c,v 1.1 1999/10/03 19:35:15 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -24,7 +24,7 @@ XMenuSetSelection(menu, p_num, s_num, active) { register XMPane *p_ptr; /* XMPane pointer. */ register XMSelect *s_ptr; /* XMSelect pointer. */ - + /* * Find the right pane. */ diff --git a/oldXMenu/X10.h b/oldXMenu/X10.h index 4a983feac20..b6ba06e85da 100644 --- a/oldXMenu/X10.h +++ b/oldXMenu/X10.h @@ -1,14 +1,14 @@ -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/X10.h,v 1.1 1992/04/11 22:10:21 jimb Exp $ */ -/* +/* $Header: /cvs/emacs/oldXMenu/X10.h,v 1.1 1999/10/03 19:35:16 fx Exp $ */ +/* * Copyright 1985, 1986, 1987 by the Massachusetts Institute of Technology * * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting + * documentation for any purpose and without fee is hereby granted, provided + * that the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting * documentation, and that the name of M.I.T. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the + * or publicity pertaining to distribution of the software without specific, + * written prior permission. M.I.T. makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * @@ -38,15 +38,15 @@ typedef struct { #define VertexCurved 0x0004 /* else straight */ #define VertexStartClosed 0x0008 /* else not */ #define VertexEndClosed 0x0010 /* else not */ -/*#define VertexDrawLastPoint 0x0020 */ /* else don't */ +/*#define VertexDrawLastPoint 0x0020 */ /* else don't */ /* -The VertexDrawLastPoint option has not been implemented in XDraw and -XDrawFilled so it shouldn't be defined. +The VertexDrawLastPoint option has not been implemented in XDraw and +XDrawFilled so it shouldn't be defined. */ /* - * XAssoc - Associations used in the XAssocTable data structure. The + * XAssoc - Associations used in the XAssocTable data structure. The * associations are used as circular queue entries in the association table * which is contains an array of circular queues (buckets). */ @@ -58,11 +58,11 @@ typedef struct _XAssoc { char *data; /* Pointer to untyped memory. */ } XAssoc; -/* +/* * XAssocTable - X Window System id to data structure pointer association * table. An XAssocTable is a hash table whose buckets are circular * queues of XAssoc's. The XAssocTable is constructed from an array of - * XAssoc's which are the circular queue headers (bucket headers). + * XAssoc's which are the circular queue headers (bucket headers). * An XAssocTable consists an XAssoc pointer that points to the first * bucket in the bucket array and an integer that indicates the number * of buckets in the array. diff --git a/oldXMenu/XCrAssoc.c b/oldXMenu/XCrAssoc.c index 864ed9d4f1f..fae6defea05 100644 --- a/oldXMenu/XCrAssoc.c +++ b/oldXMenu/XCrAssoc.c @@ -37,14 +37,14 @@ XAssocTable *XCreateAssocTable(size) register XAssocTable *table; /* XAssocTable to be initialized. */ register XAssoc *buckets; /* Pointer to the first bucket in */ /* the bucket array. */ - + /* Malloc the XAssocTable. */ if ((table = (XAssocTable *)malloc(sizeof(XAssocTable))) == NULL) { /* malloc call failed! */ errno = ENOMEM; return(NULL); } - + /* calloc the buckets (actually just their headers). */ buckets = (XAssoc *)calloc((unsigned)size, (unsigned)sizeof(XAssoc)); if (buckets == NULL) { diff --git a/oldXMenu/XDestAssoc.c b/oldXMenu/XDestAssoc.c index 452dd223bd8..d43b9c9576d 100644 --- a/oldXMenu/XDestAssoc.c +++ b/oldXMenu/XDestAssoc.c @@ -18,7 +18,7 @@ without express or implied warranty. /* * XDestroyAssocTable - Destroy (free the memory associated with) - * an XAssocTable. + * an XAssocTable. */ XDestroyAssocTable(table) register XAssocTable *table; diff --git a/oldXMenu/XLookAssoc.c b/oldXMenu/XLookAssoc.c index f80952a6345..b3a98ca2569 100644 --- a/oldXMenu/XLookAssoc.c +++ b/oldXMenu/XLookAssoc.c @@ -21,7 +21,7 @@ without express or implied warranty. #define NULL 0 #endif -/* +/* * XLookUpAssoc - Retrieve the data stored in an XAssocTable by its XId. * If an appropriately matching XId can be found in the table the routine will * return apointer to the data associated with it. If the XId can not be found diff --git a/oldXMenu/XMakeAssoc.c b/oldXMenu/XMakeAssoc.c index d4682700ed2..f6ce766a9a0 100644 --- a/oldXMenu/XMakeAssoc.c +++ b/oldXMenu/XMakeAssoc.c @@ -47,7 +47,7 @@ XMakeAssoc(dpy, table, x_id, data) register XAssoc *bucket; register XAssoc *Entry; register XAssoc *new_entry; - + /* Hash the XId to get the bucket number. */ hash = x_id & (table->size - 1); /* Look up the bucket to get the entries in that bucket. */ diff --git a/oldXMenu/XMenu.h b/oldXMenu/XMenu.h index b94c01548cd..3188f66fa4c 100644 --- a/oldXMenu/XMenu.h +++ b/oldXMenu/XMenu.h @@ -1,6 +1,6 @@ #include "copyright.h" -/* $Header: /gd/gnu/cvsroot/emacs/oldXMenu/XMenu.h,v 1.1 1999/10/03 19:35:23 fx Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/XMenu.h,v 1.2 2000/01/27 15:29:38 gerd Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -8,7 +8,7 @@ * * XMenu.h - Include file for the MIT Project Athena * XMenu X window system menu package. - * + * * Author: Tony Della Fera, DEC * August, 1984 */ @@ -169,8 +169,8 @@ typedef enum _xmmode { } XMMode; -/* - * Define the XMenu datatype. +/* + * Define the XMenu datatype. * * All dimensions are in pixels unless otherwise noted. */ @@ -216,7 +216,7 @@ typedef struct _xmenu { int s_y_off; /* Selection window Y offset. */ int s_count; /* Maximum number of selections per pane. */ GC normal_select_GC; /* GC used for inactive selections. */ - GC inverse_select_GC; /* GC used for active (current) selection. */ + GC inverse_select_GC; /* GC used for active (current) selection. */ GC inact_GC; /* GC used for inactive selections and */ /* panes headers. */ /* -------------------- Color data -------------------- */ diff --git a/oldXMenu/XMenuInt.h b/oldXMenu/XMenuInt.h index 7f3f013509a..3929f20bc79 100644 --- a/oldXMenu/XMenuInt.h +++ b/oldXMenu/XMenuInt.h @@ -1,5 +1,5 @@ -/* $Header: /u/src/emacs/19.0/oldXMenu/RCS/XMenuInt.h,v 1.3 1992/10/10 16:05:10 jimb Exp $ */ +/* $Header: /cvs/emacs/oldXMenu/XMenuInt.h,v 1.1 1999/10/03 19:35:24 fx Exp $ */ /* Copyright Massachusetts Institute of Technology 1985 */ /* @@ -8,7 +8,7 @@ * XMenuInternal.h - Internal menu system include file for the * MIT Project Athena XMenu X window system * menu package. - * + * * Author: Tony Della Fera, DEC * October, 1985 */ diff --git a/oldXMenu/insque.c b/oldXMenu/insque.c index 4d264434d26..e15db5d6566 100644 --- a/oldXMenu/insque.c +++ b/oldXMenu/insque.c @@ -13,7 +13,7 @@ struct qelem { /* Insert ELEM into a doubly-linked list, after PREV. */ void -emacs_insque (elem, prev) +emacs_insque (elem, prev) struct qelem *elem, *prev; { struct qelem *next = prev->q_forw; diff --git a/src/.gdbinit b/src/.gdbinit index 705a6e836a7..ca6f5f255a2 100644 --- a/src/.gdbinit +++ b/src/.gdbinit @@ -334,7 +334,7 @@ end define xbacktrace set $bt = backtrace_list - while $bt + while $bt set $type = (enum Lisp_Type) ((*$bt->function >> gdb_valbits) & 0x7) if $type == Lisp_Symbol xprintsym *$bt->function @@ -353,7 +353,7 @@ define xbacktrace end document xbacktrace Print a backtrace of Lisp function calls from backtrace_list. - Set a breakpoint at Fsignal and call this to see from where + Set a breakpoint at Fsignal and call this to see from where an error was signaled. end diff --git a/src/ChangeLog.3 b/src/ChangeLog.3 index 890ea110a3e..a93f4ab9825 100644 --- a/src/ChangeLog.3 +++ b/src/ChangeLog.3 @@ -6625,7 +6625,7 @@ * editfns.c (Fcurrent_time_zone): Don't forget to include code to signal an error when EMACS_CURRENT_TIME_ZONE is not defined. -1992-08-06 Joseph Arceneaux (jla@gnu.ai.mit.edu) +1992-08-06 Joseph Arceneaux (jla@gnu.ai.mit.edu) * doc.c (Vdata_directory): Declared. (syms_of_doc): Initialized. @@ -6643,7 +6643,7 @@ character from the key sequence, NOT the index of the character IN the key sequence. How many tries will it take to get it right? -1992-08-04 Roland McGrath (roland@churchy.gnu.ai.mit.edu) +1992-08-04 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * eval.c (syms_of_eval): Doc fix for debug-on-quit. diff --git a/src/ChangeLog.4 b/src/ChangeLog.4 index 13c49fa72db..36ec0081a62 100644 --- a/src/ChangeLog.4 +++ b/src/ChangeLog.4 @@ -20,7 +20,7 @@ * xdisp.c (redisplay): If have window change at end, redisplay again. - * lread.c (defvar_bool, defvar_int, defvar_lisp, defvar_lisp_nopro): + * lread.c (defvar_bool, defvar_int, defvar_lisp, defvar_lisp_nopro): Delete third arg DOC. * s/hpux8.h (LD_SWITCH_SYSTEM): Delete the -L options. @@ -522,7 +522,7 @@ * floatfns.c: Don't guard DOMAIN && SING && OVERFLOW check by an #ifndef MSDOS. -1994-05-06 Francesco Potorti` (pot@cnuce.cnr.it) +1994-05-06 Francesco Potorti` (pot@cnuce.cnr.it) * m/delta.h: (SYSTEM_MALLOC): deleted. The problem isn't there. @@ -626,7 +626,7 @@ x_destroy_window): Use row/col instead of buffer position to keep track of highlighted area. -1994-05-02 Francesco Potorti` (pot@cnuce.cnr.it) +1994-05-02 Francesco Potorti` (pot@cnuce.cnr.it) * m/delta.h: (SYSTEM_MALLOC): Defined, since GNU malloc does not work. (BCOPY_UPWARD_SAFE): Defined to 0 for the Green Hills compiler. @@ -641,7 +641,7 @@ * xfns.c (Fx_create_frame): Set the size_hint_flags field. Don't call x_calc_absolute_position. * xterm.c (x_calc_absolute_position): Use size_hint_flags. - New FLAGS arg deleted. Callers changed. + New FLAGS arg deleted. Callers changed. * xfns.c (x_figure_window_size): Handle `-' for top or left. (Fx_parse_geometry): Handle one element at a time. @@ -892,7 +892,7 @@ * keyboard.c (read_char): Don't use menus if we have events waiting. * xterm.c (XTread_socket) [USE_X_TOOLKIT]: Let toolkit handle - menu bar click. + menu bar click. 1994-04-25 Karl Heuer (kwzh@hal.gnu.ai.mit.edu) @@ -1025,7 +1025,7 @@ 1994-04-20 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * frame.c (Fmodify_frame_parameters, Fframe_parameters): + * frame.c (Fmodify_frame_parameters, Fframe_parameters): Define even if not MULTI_FRAME. * config.h.in (HAVE_INET_SOCKETS): Add #undef. @@ -1359,7 +1359,7 @@ * buffer.h (Vafter_change_functions, Vbefore_change_functions): Declared. - * insdel.c (before_change_functions_restore): + * insdel.c (before_change_functions_restore): (after_change_functions_restore): New functions. (signal_before_change): Handle Vbefore_change_functions. (signal_after_change): Handle Vafter_change_functions. @@ -1605,7 +1605,7 @@ 1994-04-01 Richard Stallman (rms@mole.gnu.ai.mit.edu) - * xterm.c (construct_menu_click, construct_mouse_click): + * xterm.c (construct_menu_click, construct_mouse_click): Use XSET when setting result->x and result->y. * xmenu.c (xmenu_show): Undo part of March 11 change: @@ -1649,13 +1649,13 @@ * xterm.h: Define HAVE_X11R4 if AIX3_2 is defined. - * xfns.c (x_window) [USE_X_TOOLKIT]: New args window_prompting and + * xfns.c (x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only. Don't pass top_pos and left_pos to XtCreatePopupShell. Call initialize_frame_menubar before creating the Emacs frame if it is not the minibuffer. Call XtManageChild for the menubar widget if any. Compute some geometry management. - (Fx_create_frame): Pass window_prompting and minibuffer_only to + (Fx_create_frame): Pass window_prompting and minibuffer_only to x_window. Don't call x_wm_set_size_hint. Don't call initialize_frame_menubar. @@ -1811,7 +1811,7 @@ 1994-03-24 Frederic Pierresteguy (fp@mole.gnu.ai.mit.edu) - * xfns.c (Fx_create_frame): Add USE_X_TOOLKIT conditional around the + * xfns.c (Fx_create_frame): Add USE_X_TOOLKIT conditional around the call to initialize_frame_menubar. 1994-03-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -1851,7 +1851,7 @@ 1994-03-23 Frederic Pierresteguy (fp@geech.gnu.ai.mit.edu) - * xmenu.c (update_frame_menubar): Function renamed from + * xmenu.c (update_frame_menubar): Function renamed from update_one_frame_psheets. (initialize_frame_menubar): New function. (set_frame_menubar): Call menu_bar_items when items is NIL. @@ -2009,7 +2009,7 @@ * minibuf.c (read_minibuf): Disallow trailing junk. -1994-03-16 Morten Welinder (terra@diku.dk) +1994-03-16 Morten Welinder (terra@diku.dk) * fileio.c (Ffile_modes) [MSDOS]: set exec-bit based on file suffix. * s/msdos.h: use bcopy when moving gap. @@ -2285,7 +2285,7 @@ 1994-03-04 Frederic Pierresteguy (fp@mole.gnu.ai.mit.edu) - * xmenu.c (update_one_frame_psheets): Call EmacsFrameSetCharSize to + * xmenu.c (update_one_frame_psheets): Call EmacsFrameSetCharSize to force the paned widget to resize to the right value. (xmenu_show): No need to check a second time whether the mouse has moved to another menu bar item. This slows down execution. @@ -2295,7 +2295,7 @@ 1994-03-04 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - * xmenu.c [USE_X_TOOLKIT] (xmenu_show): Pass display to + * xmenu.c [USE_X_TOOLKIT] (xmenu_show): Pass display to XtWindowToWidget. 1994-03-03 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -2360,7 +2360,7 @@ * frame.c (make_frame): Init menu_bar_items field to 0. * xdisp.c (update_menu_bar): Change call to menu_bar_items. (display_menu_bar): Use FRAME_MENU_BAR_LINES as vector. - * xmenu.c (map_event_to_object, set_frame_menubar): + * xmenu.c (map_event_to_object, set_frame_menubar): Use FRAME_MENU_BAR_LINES as vector. 1994-03-01 Karl Heuer (kwzh@hal.gnu.ai.mit.edu) @@ -2377,7 +2377,7 @@ * fileio.c (Finsert_file_contents): If undo_list was t, leave it t. - * alloc.c (memory_signal_data): No longer static. + * alloc.c (memory_signal_data): No longer static. (syms_of_alloc): Stick Qerror onto memory_signal_data. * lisp.h (memory_signal_data): Declare it. * eval.c (Fsignal): If DATA is memory_signal_data, don't add to it. @@ -2729,7 +2729,7 @@ * xmenu.c (free_frame_menubar) [USE_X_TOOLKIT]: New function to destroy the X Widget instance of the menubar. - * widget.c (EmacsFrameResize): Don't call XTranslateCoordinates. Code + * widget.c (EmacsFrameResize): Don't call XTranslateCoordinates. Code removed. * xmenu.c (xmenu_show) [USE_X_TOOLKIT]: Return Qnil when val is null. @@ -2764,7 +2764,7 @@ 1994-02-10 Frederic Pierresteguy (fp@mole.gnu.ai.mit.edu) - * xmenu.c (xmenu_show): Test again event.xmotion.x_root in the + * xmenu.c (xmenu_show): Test again event.xmotion.x_root in the MotionNotify case. 1994-02-09 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -2822,12 +2822,12 @@ * xterm.c (x_set_window_size): New arg CHANGE_GRAVITY. (x_new_font): Pass CHANGE_GRAVITY arg to x_set_window_size. (x_wm_set_size_hint): New arg CHANGE_GRAVITY. - (x_set_offset, x_set_window_size): + (x_set_offset, x_set_window_size): Pass CHANGE_GRAVITY arg to x_set_window_size. - * xfns.c (x_set_internal_border_width, x_set_vertical_scroll_bars): + * xfns.c (x_set_internal_border_width, x_set_vertical_scroll_bars): Pass CHANGE_GRAVITY arg to x_set_window_size. (Fx_create_frame): Pass CHANGE_GRAVITY arg to x_wm_set_size_hint. - * frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size): + * frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size): Pass CHANGE_GRAVITY arg to x_set_window_size. * frame.c (other_visible_frames): @@ -2875,7 +2875,7 @@ 1994-02-04 Frederic Pierresteguy (fp@mole.gnu.ai.mit.edu) - * xmenu.c (xmenu_show) [USE_X_TOOLKIT]: Remove the #if 0 directives + * xmenu.c (xmenu_show) [USE_X_TOOLKIT]: Remove the #if 0 directives and reverse one to avoid the flickering of the menubar. 1994-02-04 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -2982,7 +2982,7 @@ 1994-01-28 Frederic Pierresteguy (fp@mole.gnu.ai.mit.edu) - * xterm.c (x_set_window_size): Add USE_X_TOOLKIT conditional. Call + * xterm.c (x_set_window_size): Add USE_X_TOOLKIT conditional. Call EmacsFrameSetCharSize and return. * xterm.c (x_term_init): Cast to (char **) before assignment to argv. @@ -3357,7 +3357,7 @@ * buffer.c, buffer.h [MSDOS]: New buffer-local variable: buffer-file-type to handle DOS newlines. - * callproc.c (syms_of_callproc) [MSDOS]: New lisp variable: + * callproc.c (syms_of_callproc) [MSDOS]: New lisp variable: binary-process. (init_callproc) [MSDOS]: Initialize binary-process. [MSDOS]: Declare binary-process. @@ -3369,7 +3369,7 @@ (Fcall_process) [not subprocesses]: Barf if zero buffer argument. (call_process_cleanup) [MSDOS]: Close and erase temporary file instead of the pid-stuff. - (Fcall_process_region) [MSDOS]: Create temporary file in $TMP or + (Fcall_process_region) [MSDOS]: Create temporary file in $TMP or $TEMP. (Fchild_setup) [MSDOS]: #if 0, as it is not used. @@ -3399,7 +3399,7 @@ in a slash. (Finsert_file_contents) [MSDOS]: Determine file type by name (call find-buffer-file-type) and change CR+LF to LF if it is a text file. - (Fwrite_region) [MSDOS]: Use text/binary mode as specified by + (Fwrite_region) [MSDOS]: Use text/binary mode as specified by buffer_file_type. (syms_of_fileio) [MSDOS]: Set Qfind_buffer_file_type. (Fsubstitute_in_file_name) [MSDOS]: Ignore case in environtment @@ -3407,7 +3407,7 @@ * floatfns.c [MSDOS]: Don't define HAVE_MATHERR. - * keyboard.c [MSDOS]: #include <dos.h> and <time.h>, but not + * keyboard.c [MSDOS]: #include <dos.h> and <time.h>, but not <sys/ioctl.h>. (read_avail_input) [MSDOS]: Work around `ioctl'. Also read through dos_keyread for better keyboard support. @@ -3437,7 +3437,7 @@ * systty.h [MSDOS]: don't #include <sgtty.h>. We haven't got it. Declare dummy main field. Don't ever use TABs. - * termcap.c (tgetent) [INTERNAL_TERMINAL]: Fake internal terminal + * termcap.c (tgetent) [INTERNAL_TERMINAL]: Fake internal terminal without reading any files. (valid_file_name, tgetent) [MSDOS]: Drive letter support. (tgetent) [MSDOS]: Use text mode for database. @@ -3728,7 +3728,7 @@ * m/sun2.h (OTHER_FILES): Use ${libsrc} as dir. -1993-12-15 Michal Jankowski (michalj@fuw.edu.pl) +1993-12-15 Michal Jankowski (michalj@fuw.edu.pl) * insdel.c (del_range): Second argument in call to offset_intervals is 'from', not 'point'. @@ -3767,7 +3767,7 @@ (redisplay_window): Likewise. (display_text_line): Likewise. (display_menu_bar): Likewise. - (display_mode_element): + (display_mode_element): * editfns.c (Fmessage): Use message2. @@ -3818,7 +3818,7 @@ * process.c (create_process): Delete SYSV4_PTYS code. (deactivate_process): Likewise. - + 1993-12-06 Richard Stallman (rms@gnu.ai.mit.edu) * doc.c (Fsubstitute_command_keys): Ignore menu bar bindings. @@ -3880,7 +3880,7 @@ * fileio.c (Fread_file_name): If defalt is nil and user tries to use it, signal an error. - * lisp.h (DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_0,...): + * lisp.h (DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_0,...): New macros. (DEFUN) [__STDC__]: Use those macros. @@ -4081,7 +4081,7 @@ 1993-11-20 Paul Reilly (pmr@legacy.pajato.com) - * s/dgux.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): + * s/dgux.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF): Defined (copied from usg5-4.h). (FIRST_PTY_LETTER): Deleted. @@ -4093,7 +4093,7 @@ the case where there are no intervals. (Fprevious_single_property_change, Fprevious_property_change) Extra arg LIMIT. Return value was off by 1. - (Fnext_single_property_change, Fnext_property_change): + (Fnext_single_property_change, Fnext_property_change): Extra arg LIMIT. (Fnext_single_property_change): Require at least 2 args. * indent.c (compute_motion): @@ -4594,7 +4594,7 @@ 1993-07-09 Karl Berry (karl@cs.umb.edu) - * dired.c (file_name_completion): Install case-preserving + * dired.c (file_name_completion): Install case-preserving changes from Emacs 18 for completion_ignore_case. (completion_ignore_case): Declare. @@ -4785,7 +4785,7 @@ * buffer.c (verify_overlay_modification): Initialize endpos. - * keymap.c (describe_buffer_bindings): Declare shadow just once. + * keymap.c (describe_buffer_bindings): Declare shadow just once. 1993-08-10 Richard Stallman (rms@mole.gnu.ai.mit.edu) @@ -4903,7 +4903,7 @@ * m/ibm370aix.h: Total rewrite; includes ibmps2-aix.h. - * m/ibmps2-aix.h (SYSTEM_TYPE): Don't redefine it here. + * m/ibmps2-aix.h (SYSTEM_TYPE): Don't redefine it here. * syntax.c: Doc fix. @@ -5004,9 +5004,9 @@ (textget_direct, Qfront_sticky, Qrear_nonsticky): Declared. * textprop.c (Qfront_sticky, Qrear_nonsticky): New variables. (syms_of_textprop): Set them up. - + Change display code to handle the `invisible' text property. - * dispnew.c (direct_output_for_insert): Fail if character + * dispnew.c (direct_output_for_insert): Fail if character just inserted has text properties. (direct_ouput_forward_char): Fail if moving near invisible chars. * indent.c (compute_motion): Compute correctly for invisible text. @@ -5217,7 +5217,7 @@ * s/sco4.h (HAVE_SOCKETS): Define, if HAVE_INET_SOCKETS. - * sunfns.c: Fix comment syntax. Put back the comment + * sunfns.c: Fix comment syntax. Put back the comment saying that we don't maintain this file. * xterm.c (XTread_socket) [! HAVE_X11R5]: @@ -5360,7 +5360,7 @@ be asked. * textprop.c (syms_of_textprop): Don't forget defsubr for - Stext_property_all. + Stext_property_all. * textprop.c (Ftext_property_any, Ftext_property_all): Use EQ to compare property values, not Fequal. @@ -5588,7 +5588,7 @@ 1993-07-08 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * callint.c (check_mark): Don't check mark-active unless in - transient-mark-mode. + transient-mark-mode. For inactive mark, signal mark-inactive instead of error with a message. * editfns.c (region_limit): Don't error if Vmark_even_if_inactive @@ -5690,7 +5690,7 @@ against Qnil, not 0. * keyboard.c (Vdouble_click_time): Renamed from double_click_time, - and made a Lisp_Object instead of an int. + and made a Lisp_Object instead of an int. (make_lispy_event): If Vdouble_click_time is t, impose no time limit on double-clicks. (syms_of_keyboard): DEFVAR_LISP (not DEFVAR_INT) @@ -5844,7 +5844,7 @@ 1993-06-28 Richard Stallman (rms@mole.gnu.ai.mit.edu) * keymap.c (describe_map_2): Cleanups. - Check there's no previous definition in same keymap. + Check there's no previous definition in same keymap. 1993-06-24 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) diff --git a/src/ChangeLog.5 b/src/ChangeLog.5 index d7794eb6722..1f20b6812f7 100644 --- a/src/ChangeLog.5 +++ b/src/ChangeLog.5 @@ -1766,7 +1766,7 @@ * m/intel386.h (C_SWITCH_SYSTEM): Don't #undef or define it. [SOLARIS2, SOLARIS2_4, !__GNUC__] (C_SWITCH_MACHINE): Define instead. -1995-03-26 Germano Caronni <caronni@tik.ethz.ch> +1995-03-26 Germano Caronni <caronni@tik.ethz.ch> * ralloc.c (r_re_alloc): Correct realloc behavior--allow shrinking of blocks while reallocating, if shrinking by more than one page. @@ -1789,7 +1789,7 @@ * textprop.c (Fnext_property_change): Fix previous change. -1995-03-23 Kevin Rodgers <kevinr@ihs.com> +1995-03-23 Kevin Rodgers <kevinr@ihs.com> * print.c (temp_output_buffer_setup): (Re)set the default directory of the temp buffer to that of the current buffer. @@ -3199,7 +3199,7 @@ * dispnew.c (scrolling): Fewer restrictions if scroll_region_ok is set. New vector old_draw_cost for direct scrolling method. -1994-12-23 Michal Jankowski (Michal.Jankowski@fuw.edu.pl) +1994-12-23 Michal Jankowski (Michal.Jankowski@fuw.edu.pl) * keyboard.c (read_char): Don't echo keys when echo_keystrokes is 0. @@ -4314,7 +4314,7 @@ * buffer.c (list_buffers_1): Always mark current_buffer read-only. -1994-10-20 Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr> +1994-10-20 Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr> * m/dpx2.h (LD_SWITCH_MACHINE): Defined. @@ -5279,7 +5279,7 @@ * window.c (syms_of_window): Doc fix. -1994-09-26 Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr> +1994-09-26 Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr> * m/dpx2.h (POSIX_SIGNALS): Define it. (sigsetmask): Add #undef. @@ -5485,7 +5485,7 @@ * editfns.c (Fmessage_box): Renamed from Fbox_message. -1994-09-17 Michael Ben-Gershon (mybg@cs.huji.ac.il) +1994-09-17 Michael Ben-Gershon (mybg@cs.huji.ac.il) * unexec.c (copy_text_and_data): Add RISCiX changes. @@ -5793,7 +5793,7 @@ * term.c (clear_to_end): Fix reversed condition. -1994-09-16 K. Berry <kb@cs.umb.edu> +1994-09-16 K. Berry <kb@cs.umb.edu> * dired.c (Qcompletion_ignored_extensions): New symbol. (syms_of_dired): Initialize it. @@ -5804,7 +5804,7 @@ * s/msdos.h (MODE_LINE_BINARY_TEXT): Define this symbol. * xdisp.c (decode_mode_spec): Use it when defined. -1994-09-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> +1994-09-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * minibuf.c (read_minibuf): Don't add to the history list if the minibuffer string is empty, since it is not very useful. @@ -6045,7 +6045,7 @@ instead of whether SIGIO is defined. * Makefile.in.in (xterm.o): Depend on keyboard.h. -1994-08-26 Kevin Rodgers <kevinr@ihs.com> +1994-08-26 Kevin Rodgers <kevinr@ihs.com> * xfns.c (Fx_color_defined_p): Return list of RGB values, not just t. diff --git a/src/ChangeLog.6 b/src/ChangeLog.6 index cc4764a734a..3cf30f682e3 100644 --- a/src/ChangeLog.6 +++ b/src/ChangeLog.6 @@ -116,7 +116,7 @@ * xmenu.c (Fx_popup_dialog): Don't fail to initialize WINDOW. * xdisp.c (prepare_menu_bars): Clear pending_menu_activation. - + * print.c: When printing into a buffer, generate all the text first, then insert it all at once. (print_buffer): New variable. @@ -239,7 +239,7 @@ * xfns.c (xlwmenu_default_font): Declare, but don't define. * xselect.c (last_event_timestamp): Declare, but don't define. -1996-07-15 David Mosberger-Tang <davidm@AZStarNet.com> +1996-07-15 David Mosberger-Tang <davidm@AZStarNet.com> * m/alpha.h (TEXT_START, DATA_START, DATA_SEG_BITS, UNEXEC, DATA_END): Omit these definitions if ELF. @@ -1079,7 +1079,7 @@ scroll_bar_up_arrow, scroll_bar_down_arrow. (win32_scroll_bar_click): New enum constant. -1996-05-03 Andrw Innes <andrewi@harlequin.co.uk> +1996-05-03 Andrw Innes <andrewi@harlequin.co.uk> * makefile.nt (SUBSYSTEM) [NTGUI]: Remove conditional. (LINK_FLAGS): Explicitly set base address, and stack and heap sizes. @@ -1574,7 +1574,7 @@ * w32fns.c (defined_color): Map color to nearest in default palette. (win32_wnd_proc): Special handling for WM_CLOSE. -1996-04-16 Kim Storm <storm@olicom.dk> +1996-04-16 Kim Storm <storm@olicom.dk> * msdos.c (check_timer): Removed; use gettime instead. (sys_select): Call __dpmi_yield while waiting for input to @@ -4475,7 +4475,7 @@ * keyboard.c (read_key_sequence): Validate the event position before calling get_local_map. -1995-08-29 Jack Repenning <jackr@sgi.com> +1995-08-29 Jack Repenning <jackr@sgi.com> * unexelfsgi.c: Compute new data offset based on memory address; also, copy .got from memory not temacs. diff --git a/src/ChangeLog.7 b/src/ChangeLog.7 index 6413b20eeeb..99631e5eefa 100644 --- a/src/ChangeLog.7 +++ b/src/ChangeLog.7 @@ -83,7 +83,7 @@ * xterm.c, xterm.h: x_display_unibyte_char_with_fontset renamed to unibyte_display_via_language_environment. - + * xfns.c (unibyte_display_through_language_environment): Renamed from x_display_unibyte_char_with_fontset. @@ -200,7 +200,7 @@ * commands.h (Vthis_command): Renamed from this_command. - * minibuf.c (Fminibuffer_complete): + * minibuf.c (Fminibuffer_complete): this_command renamed to Vthis_command. * macros.c (Fcall_last_kbd_macro): @@ -210,7 +210,7 @@ (real_this_command): New variable, but not a Lisp variable; updated like Vthis_command, but never altered by Lisp programs. (command_loop_1): Use real_this_command to set Vreal_last_command. - + 1998-08-07 Kenichi Handa <handa@etl.go.jp> * cmds.c (internal_self_insert): If enable-multibyte-characters is @@ -266,7 +266,7 @@ to XLoadQueryFont. (fast_find_position): Handle case where position is before an invisible character, thus not actually listed in charstarts. - + * keyboard.c (Vinput_method_previous_message): New variable. (syms_of_keyboard): Set up lisp variable. (Qinput_method_exit_on_first_char, Qinput_method_use_echo_area): @@ -278,7 +278,7 @@ * lisp.h (Fread_key_sequence): Update declaration. * callint.c (Fcall_interactively): Pass new arg to Fread_key_sequence. - + 1998-08-03 Richard Stallman <rms@psilocin.ai.mit.edu> * window.c (Fmove_to_window_line): Doc fix. @@ -331,7 +331,7 @@ account. 1998-07-30 Paul Eggert <eggert@twinsun.com> - + * src/Makefile.in (widget.o, xfns.o, xmenu.o): Prepend $(srcdir)/ to rule dependencies outside this dir. @@ -450,7 +450,7 @@ (syms_of_keyboard): Set up Lisp vars. (command_loop_1): Check Vunread_input_method_events and Vunread_post_input_method_events along with Vunread_command_events. - + 1998-07-11 Andrew Innes <andrewi@harlequin.co.uk> * w32menu.c (w32_menu_show): Set widget call_data to 0 if @@ -509,11 +509,11 @@ * charset.h (MAX_CHAR_COMPOSITION): Defined as (GLYPH_MASK_CHAR - 1), one less than the previous value. - (GENERIC_COMPOSITION_CHAR): New macro. + (GENERIC_COMPOSITION_CHAR): New macro. * charset.c (Vgeneric_character_list): New variable. (init_charset_once): Init and staticpro it. - (Fgeneric_character_list): New function. + (Fgeneric_character_list): New function. (syms_of_charset): defsubr it. * fns.c (Fset_char_table_default): Check only if the charset of @@ -630,7 +630,7 @@ * doc.c (get_doc_string): Take both UNIBYTE and DEFINITION as args. All callers changed. * lisp.h (get_doc_string): Adjust declaration. - + * lread.c (read_list): Pass new arg to get_doc_string. * doc.c (get_doc_string): 2nd arg is now DEFINITION; @@ -646,7 +646,7 @@ * emacs.c (sort_args): Discard duplicate options with no args. (main): With duplicate -d options, use the last one. Likewise for -t. Check -d last, by checking for -nl earlier on. - + 1998-06-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * keyboard.c (command_loop): Reset executing_macro after @@ -775,7 +775,7 @@ 1998-06-14 Eli Zaretskii <eliz@mescaline.gnu.org> * msdos.c (dos_set_keyboard): Call Int 2Fh via the DPMI server, - not directly. + not directly. (dos_yield_time_slice): New function. (sys_select): Use it instead of __dpmi_yield. @@ -895,7 +895,7 @@ (display_text_line): If cursor's in the frame's echo area, don't set this_line_endpos. (redisplay_window): Use Fwindow_end to find lower scroll margin. - + * syntax.c (scan_lists): Properly skip the comment-fence character that ends a comment, when moving forward. (Fbackward_prefix_chars): Return immediately if point is at BEGV. @@ -912,7 +912,7 @@ (scan_lists): Likewise. (prev_char_comstart_first): New function. - * syntax.c + * syntax.c 1998-06-05 Andrew Innes <andrewi@harlequin.co.uk> * w32.c: #include sys/file.h @@ -1008,7 +1008,7 @@ * w32.c (sys_rename): Handle filenames with accented characters. (stat): Handle "c:/.." and "/.." specially. - + * unexw32.c (w32_fatal_reload_error): Update error message. 1998-05-30 Karl Heuer <kwzh@gnu.org> @@ -1065,7 +1065,7 @@ (read1): Enable saving of doc strings on WINDOWSNT. (read_list): Call get_doc_string instead of read_doc_string, when forced to load doc strings. - + 1998-05-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * s/gnu-linux.h (setpgrp): Remove extra parens around parameters. @@ -1130,7 +1130,7 @@ * window.c (select_window_1): New subroutine, from Fselect_window. (Fselect_window): Use select_window_1. (temp_output_buffer_show): Use select_window_1. - + 1998-05-22 Kenichi Handa <handa@etl.go.jp> * ccl.c: Change term "character translation table" to "translation @@ -1198,7 +1198,7 @@ * minibuf.c (syms_of_minibuf): Doc fix. * window.c (Fscroll_up, Fscroll_down, Fscroll_other_window): Doc fixes. - + * frame.c (make_frame_visible_1): New function. (Fmake_frame_visible): Use that. @@ -1275,7 +1275,7 @@ * window.c (Fset_window_buffer): Update buffer's display_time. * insdel.c (insert_1_both, insert_from_string_1, replace_range) - (insert_from_buffer_1, adjust_before_replace, adjust_after_replace): + (insert_from_buffer_1, adjust_before_replace, adjust_after_replace): Don't copy text being deleted, if undo is disabled. * lread.c (readchar): Use readchar_backlog again @@ -1380,7 +1380,7 @@ * xdisp.c (redisplay_window): Handle scroll_step along with scroll_conservatively. Fix 1-off error checking the limit for them. - * filelock.c (unlock_file): Encode the file name. + * filelock.c (unlock_file): Encode the file name. 1998-05-10 Richard Stallman <rms@psilocin.ai.mit.edu> @@ -1517,7 +1517,7 @@ * emacs.c (main): Call the syms_of_... and keys_of_... functions earlier, before init_vms_input and init_display. - + 1998-05-04 E. Jay Berkenbilt <ejb@ql.org> * window.h (WINDOW_RIGHT_MARGIN): Don't subtract 1 from width when @@ -1585,7 +1585,7 @@ 1998-05-02 Hrvoje Niksic <hniksic@srce.hr> - * fileio.c (Fmake_temp_name): Improve randomness of generated file + * fileio.c (Fmake_temp_name): Improve randomness of generated file names. 1998-05-01 Richard Stallman <rms@psilocin.gnu.org> @@ -1599,7 +1599,7 @@ 1998-04-30 Geoff Voelker <voelker@cs.washington.edu> - * keyboard.c (Qdrag_n_drop, drag_n_drop_syms, lispy_drag_n_drop_names) + * keyboard.c (Qdrag_n_drop, drag_n_drop_syms, lispy_drag_n_drop_names) New variables. (make_lispy_event): Handle drag_n_drop events. (syms_of_keyboard): Initialize new symbols. @@ -1610,7 +1610,7 @@ * termhooks.h (event_kind): New event type `drag_n_drop'. * makefile.nt (LIBS): Link in shell32.lib. - + * w32fns.c: Include shellapi.h. (w32_createwindow): Enable drag-n-drop on new windows. (w32_wnd_proc): Handle WM_DROPFILES messages. @@ -1618,7 +1618,7 @@ * w32term.c: Include shellapi.h. (construct_drag_n_drop): New function. - (w32_read_socket): Handle WM_DROPFILES messages. + (w32_read_socket): Handle WM_DROPFILES messages. 1998-04-30 Skip Collins <ColliBF1@APLMSG.JHUAPL.EDU> @@ -1637,7 +1637,7 @@ * indent.c (compute_motion): When invisible text cross TO, return TO, not the start of the invisible text. - * process.c (Fset_process_inherit_coding_system_flag, Fstart_process): + * process.c (Fset_process_inherit_coding_system_flag, Fstart_process): Store inherit_coding_system_flag as a Lisp_Object. (Fopen_network_stream): Likewise. (Fprocess_inherit_coding_system_flag): Access it as Lisp_Object. @@ -1686,7 +1686,7 @@ * emacs.c (abort): Omit this definition, if NO_ABORT. End by calling exit, to avoid warning. - + 1998-04-28 Richard Stallman <rms@psilocin.gnu.org> * filelock.c: Include coding.h. @@ -1767,7 +1767,7 @@ * minibuf.c (minibuf_conform_representation): New function. (Ftry_completion): Use it to return multibyte string if and only if the completion table has a multibyte string. - (Fdisplay_completion_list): + (Fdisplay_completion_list): Convert string to unibyte before displaying it, if default is unibyte. * eval.c (find_handler_clause): Cast Fbacktrace to proper type. @@ -1881,7 +1881,7 @@ * xfaces.c (unload_color): No longer static. - * insdel.c (insert_from_string, insert_from_string_before_markers): + * insdel.c (insert_from_string, insert_from_string_before_markers): Don't special case LENGTH = 0. (insert_from_buffer): Likewise. @@ -1894,7 +1894,7 @@ 1998-04-22 Eli Zaretskii <eliz@delysid.gnu.org> * w16select.c (Fwin16_set_clipboard_data): Call UNBLOCK_INPUT - before calling sit_for. + before calling sit_for. (Fwin16_get_clipboard_data, Fwin16_set_clipboard_data): Balance the calls to BLOCK_INPUT and UNBLOCK_INPUT. (alloc_xfer_buf): If want_size is more than 1MB, return @@ -1911,7 +1911,7 @@ 1998-04-21 Eli Zaretskii <eliz@delysid.gnu.org> * callproc.c (Fcall_process) [MSDOS]: Call child_setup instead of - run_msdos_command. + run_msdos_command. (child_setup) [MSDOS]: Call run_msdos_command here. (child_setup) [DOS_NT]: Get past drive letter in pwd. Don't call close_load_descs, since we are not in a vfork. @@ -1957,7 +1957,7 @@ (load_convert_to_unibyte): New variable. (syms_of_lread): Set up Lisp var. (read1): If load_convert_to_unibyte, convert strings to unibyte. - + * insdel.c (copy_text): Count down bytes_left properly in multibyte to unibyte case. @@ -2062,7 +2062,7 @@ (map_virt_key): Brazilian keyboards use 0xc1 for /(?) key. * w32menu.c (Vmenu_updating_frame): New variable. - (Fx_popup_menu, set_frame_menubar): Record frame whose menu is + (Fx_popup_menu, set_frame_menubar): Record frame whose menu is being updated. (syms_of_w32menu): Define Vmenu_updating_frame. @@ -2082,7 +2082,7 @@ * w32term.c (Vw32_recognize_altgr): New variable. (dumpglyphs): Update from xterm.c. (w32_ring_bell): Flash window, don't just reset its state. - (dumprectangle, show_mouse_face, x_draw_single_glyph): Use new + (dumprectangle, show_mouse_face, x_draw_single_glyph): Use new args to dumpglyphs. (my_set_foreground_window): New function. (w32_condemn_scroll_bars): Mark all as condemned scroll bars. @@ -2193,7 +2193,7 @@ * fontset.h (FONT_ENCODING_NOT_DECIDED): The value is changed to 255. (find_ccl_program_func): Extern it. (Fquery_fontset): Args number changed to 2. - + * xfns.c (syms_of_xfns): Initialize find_ccl_program_func. * xterm.c (x_find_ccl_program): New function. @@ -2293,7 +2293,7 @@ (printchar, strout): If echo area text converted to multibyte does not all fit, truncate it at char boundary. - * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): + * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): When calling set_marker_both, pass the right buffer. * indent.c (Fcompute_motion): Check that TO and FROM are in range. @@ -2367,7 +2367,7 @@ (syms_of_charset): Defsubr it. (multibyte_form_length): Modified to be consistent with string_to_non_ascii_char. - + * charset.h (MULTIBYTE_FORM_LENGTH): Don't check LEN here. * xdisp.c (display_text_line): Code for displaying a character by @@ -2547,7 +2547,7 @@ * fileio.c (barf_or_query_if_file_exists): New arg QUICK. All calls changed. - + 1998-03-27 Richard Stallman <rms@psilocin.gnu.org> * insdel.c (check_markers_debug_flag): New variable. @@ -2568,7 +2568,7 @@ * coding.c (code_convert_region): Call adjust_before_replace in the no-conversion case. Adjust GPT, ZV and Z in chars. - + 1998-03-25 Richard Stallman <rms@psilocin.gnu.org> * lread.c (init_lread): Init Vstandard_input. @@ -2733,7 +2733,7 @@ * fns.c (substring_both, Fsubstring): Use make_specified_string. (concat): Make string result unibyte or multibyte as appropriate. - + * doc.c (Fsubstitute_command_keys): Use make_string_from_bytes. * coding.c (code_convert_string): Use make_string_from_bytes. @@ -2748,7 +2748,7 @@ * editfns.c (Fchar_to_string): Use make_string_from_bytes. (Fformat): Use make_specified_string. (make_buffer_string_both): Use make_uninit_string if buffer is unibyte. - + * sunfns.c (syms_of_sunfns): Pass new arg to make_pure_string. * lread.c (read1): Pass new arg to make_pure_string. @@ -2769,14 +2769,14 @@ * lisp.h (STRING_BYTES, SET_STRING_BYTES): New macros. * All files: Use STRING_BYTES and SET_STRING_BYTES. - + * editfns.c (Ftranspose_regions): Try to handle combining bytes. * insdel.c (replace_range): New arg NOMARKERS. - + 1998-03-20 Richard Stallman <rms@psilocin.gnu.org> * cmds.c (internal_self_insert): Pass new arg to replace_range. - + * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1): (adjust_before_replace, adjust_after_replace, replace_range): (del_range_2): Call record_delete the new way. @@ -2787,7 +2787,7 @@ * undo.c (record_delete): Replace LENGTH arg with STRING. (record_change): Call record_delete the new way. - + * Makefile.in (keymap.o): Depend on puresize.h. (xmenu.o): Don't depend on puresize.h. @@ -2799,7 +2799,7 @@ * keymap.c (fix_submap_inheritance, get_keyelt, store_in_keymap, copy-keymap, where_is_internal_1): Support new format for menu items. (syms_of_keymap): New symbol `menu-item'. - + * keyboard.c: Include puresize.h for CHECK_IMPURE. (parse_menu_item): New function. (menu_item_eval_property_1, menu_item_eval_property) New suroutines. @@ -2919,7 +2919,7 @@ * process.c (exec_sentinel, read_process_output): Fstore_match_data => Fset_match_data. - + * xmenu.c (set_frame_menubar): Fstore_match_data => Fset_match_data. * xdisp.c (message_dolog): Save and restore Vdeactivate_mark. @@ -3018,14 +3018,14 @@ * lisp.h (struct Lisp_Buffer_Local_Value): Field car renamed to realvalue. New fields check_frame, found_for_buffer, found_for_frame, buffer, frame. - + * data.c (store_symval_forwarding, swap_in_symval_forwarding) (set_internal, default_value, Fset_default, Fmake_local_variable) (Fmake_variable_buffer_local, Fkill_local_variable): Handle new data structure for struct Lisp_Buffer_Local_Value. (Fmake_variable_frame_local): New function. - * buffer.c (set_buffer_internal_1) + * buffer.c (set_buffer_internal_1) (swap_out_buffer_local_variables): Handle new data structure for struct Lisp_Buffer_Local_Value. @@ -3044,7 +3044,7 @@ Call set_search_regs differently in a forward search. (boyer_moore): Fix up the code that translates the pattern and loops thru equivalent characters. - + 1998-03-07 Richard Stallman <rms@psilocin.gnu.org> * insdel.c (adjust_markers_for_insert): New arg COMBINED_AFTER_BYTES. @@ -3178,7 +3178,7 @@ (list2, list3, list4, list5): New function decl. (Fwrite_region): Add an argument. (compare_window_configurations): New function decl. - + * keyboard.c: Include syntax.h. (interrupt_signal): Save and restore gl_state around an immediate quit, in case debugger returns. @@ -3200,7 +3200,7 @@ * callproc.c (Fcall_process_region): Pass new arg to Fwrite_region. 1998-03-01 Ilya Zakharevich <ilya@math.ohio-state.edu> - + * syntax.c (update_syntax_table): Properly update `position' field of used intervals. @@ -3486,7 +3486,7 @@ * buffer.c (advance_to_char_boundary): New function. (Fset_buffer_multibyte): Advance all byte-positions to char boundaries. Clear undo list. - + * fontset.h (GENERIC_FONT_PTR): Commented-out definition deleted. 1998-02-06 Kenichi Handa <handa@etl.go.jp> @@ -3504,7 +3504,7 @@ * editfns.c (Fposition_bytes): New function. (syms_of_editfns): defsubr it. - * fns.c (Fstring_bytes): New function. + * fns.c (Fstring_bytes): New function. (syms_of_fns): defsubr it. 1998-02-05 Richard Stallman <rms@psilocin.gnu.org> @@ -3721,7 +3721,7 @@ change of code_convert_string. (Fupdate_iso_coding_systems): New function. (init_coding_once): Initialize coding_system_table. - + * data.c (Faset): Allow setting a multibyte character in a multibyte string as far as it doesn't change the size_byte of the string. @@ -3809,7 +3809,7 @@ CODING_CATEGORY_MASK_ISO_7_TIGHT. (coding_category_table, coding_category_name): Extern deleted. (Vselect_safe_coding_system_function): Extern it. - + * charset.h (MAX_CHAR_COMPOSITION): New macro. (CHAR_CHARSET): Check more strictly. (CODING_FLAG_ISO_DESIGNATION): New macro. @@ -3864,19 +3864,19 @@ * charset.c (nonascii_insert_offset): Variable moved from cmds.c. (syms_of_charset): Initialize variable. - * cmds.c (internal_self_insert, Fself_insert_command): + * cmds.c (internal_self_insert, Fself_insert_command): Use unibyte_char_to_multibyte. (nonascii_insert_offset): Variable moved to charset.c. (syms_of_cmds): Don't initialize nonascii_insert_offset. * fileio.c (Fsubstitute_in_file_name): Use unibyte_char_to_multibyte. - + * keyboard.c (command_loop_1): Use unibyte_char_to_multibyte. * xdisp.c (message_dolog): Use unibyte_char_to_multibyte. Pass different args to scan_newline. Properly compare oldpoint with Z. - + * syntax.c (skip_chars): Use unibyte_char_to_multibyte, * fns.c (concat): Use unibyte_char_to_multibyte. @@ -4100,7 +4100,7 @@ (insert_from_buffer_1): Call copy_text to convert between single-byte and multibyte text. (insert_from_string_1): Likewise. - + * process.c (read_process_output): New var `multibyte'. Set it according to which coding system was used. @@ -4168,7 +4168,7 @@ insert_from_string. Scan string by bytes and chars. (Ftry_completion): Use size_byte while comparing. (Fall_completions): Use size_byte while comparing. - (test_completion): + (test_completion): * editfns.c (syms_of_editfns): Delete defsubr for sref. @@ -4218,7 +4218,7 @@ * keyboard.c (read_char): Use Faref on Vkeyboard_translate_table if it is a string. (apply_modifiers_uncached): New arg base_len_byte. Calls changed. - (read_char_minibuf_menu_prompt): + (read_char_minibuf_menu_prompt): (read_key_sequence): Access buffer's downcase_table with XCHAR_TABLE. (Fexecute_extended_command): Use Faref to access FUNCTION. Use size_byte of BINDING. @@ -4263,7 +4263,7 @@ Initialize print_buffer_pos_byte. Use insert_1_both. (printchar): Update print_buffer_pos_byte and print_buffer_pos. (print_buffer_pos_byte): New variable. - + * editfns.c (general_insert_function): Pass the additional args to INSERT_FROM_STRING_FUNC. (Fchar_to_string): Use make_multibyte_string. @@ -4274,7 +4274,7 @@ (Fmessage, Fmessage_box): Update message_text based on size_byte. * insdel.c (insert_from_string): New args POS_BYTE, LENGTH. - (insert_from_string_before_markers): + (insert_from_string_before_markers): (insert_from_string_1): New arg POS_BYTE. Swap args NCHARS, NBYTES. Don't fail to use POS_BYTE! (insert_from_buffer_1): Get both inschars and insbytes from NEW. @@ -4301,13 +4301,13 @@ (Fstring): Renamed from Fconcat_chars. Handle bytes vs chars in string. (syms_of_charset): Corresponding changes. - + * fns.c (concat, Fsubstring, internal_equal, mapcar1): Distinguish bytes and chars when indexing strings. (Fstring_equal, Fstring_lessp): Likewise. (substring_both): New function. (string_char_to_byte, string_byte_to_char): New functions. - + * charset.h (FETCH_STRING_CHAR_ADVANCE): New macro. * lisp.h (struct lisp_String): New field size_byte. @@ -4319,10 +4319,10 @@ * window.c (Fselect_window): Don't set OW->pointm if OW->buffer is nil. (Fset_window_configuration): Set old selected window's pointm. - + * minibuf.c (Fcompleting_read): Doc fix. - * keymap.c (current_minor_maps): + * keymap.c (current_minor_maps): If a variable has an entry in Vminor_mode_overriding_map_alist, and also an entry in Vminor_mode_map_alist, ignore the latter. @@ -4350,7 +4350,7 @@ * lisp.h (struct Lisp_Marker): Rename `bufpos' to `bytepos'. Its value no longer includes the gap space. - + * editfns.c (Fchar_after): Fix previous change. * fileio.c (a_write): Fix prototype. @@ -4360,7 +4360,7 @@ (insert_1, indented_beyond_p): Decls changed. (move_gap_both, del_range_byte, del_range_both, del_range_2) (scan_newline, Ffile_locked_p): New decls. - (struct Lisp_Marker): + (struct Lisp_Marker): * search.c (scan_newline): Always restore prev value of immediate_quit. @@ -4388,7 +4388,7 @@ * charset.h (CHAR_HEAD_P): Take char, not pointer, as arg. * window.c (unshow_buffer): Set PT with TEMP_SET_PT_BOTH. - + * indent.c (indented_beyond_p): Take POS in bytes and chars. Callers changed. (pos_tab_indent): Function moved to xdisp.c. @@ -4400,7 +4400,7 @@ * xdisp.c (pos_tab_indent): Moved from indent,c. Now static. Take POS in bytes and chars. Callers changed. - + * indent.c (Fcurrent_indentation): Use scan_newline and SET_PT_BOTH. (indented_beyond_p, current_column_1): Likewise. @@ -4421,7 +4421,7 @@ (window_scroll): Save and restore both kinds of pointers. * process.c (status_notify): Use byte and char pointers. - + * callint.c (Fcall_interactively) <'d', 'r'>: Use set_marker_both. * emacs.c (abort): New function. @@ -4451,14 +4451,14 @@ (message_log_check_duplicate): Take charpos and bytepos args. (message_dolog): Use markers to update old PT, BEGV, ZV. Use scan_newline. Handle positions in bytes and chars. - + 1997-12-28 Richard Stallman <rms@psilocin.gnu.org> * xselect.c (Fx_rotate_cut_buffers_internal): Doc fix. * coding.c (code_convert_region): Handle bytepos and charpos. (Fdetect_coding_region): Likewise. - + * Makefile.in (marker.o): Depend on charset.h. 1997-12-27 Richard Stallman <rms@psilocin.gnu.org> @@ -4491,7 +4491,7 @@ * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos. Wrap in if (1) ... else. - + * minibuf.c (Fminibuffer_complete_word): Handle bytes vs characters when comparing buffer against string. (temp_echo_area_glyphs): Save, update, delete text using @@ -4505,13 +4505,13 @@ * buffer.h (DECODE_POSITION): New macro. (CHAR_TO_BYTE, BYTE_TO_CHAR): New macros. - + * buffer.h (BEG_BYTE, BEGV_BYTE, PT_BYTE, GPT_BYTE) (ZV_BYTE, Z_BYTE): New macros. (BUF_BEG_BYTE, BUF_BEGV_BYTE, BUF_PT_BYTE, BUF_GPT_BYTE) (BUF_ZV_BYTE, BUF_Z_BYTE): New macros. (BUF_GAP_END_ADDR): New macro. - (BEGV_ADDR, PT_ADDR, GPT_ADDR, GAP_END_ADDR, ZV_ADDR, Z_ADDR): + (BEGV_ADDR, PT_ADDR, GPT_ADDR, GAP_END_ADDR, ZV_ADDR, Z_ADDR): Use the new ..._byte buffer data. (BUFFER_CEILING_OF, BUFFER_FLOOR_OF): Likewise. (BUF_GPT_ADDR, BUF_Z_ADDR): Likewise. @@ -4543,7 +4543,7 @@ (write_abbrev): Return void. (Fexpand_abbrev): Scan in bytepos along with charpos. (Funexpand_abbrev): Use bytepos to delete the expansion. - + * charset.h (INC_POS, DEC_POS): Fix because arg is a bufpos. (BUF_INC_POS, BUF_DEC_POS): New macros. (INC_BOTH, DEC_BOTH): New macros. @@ -4567,7 +4567,7 @@ use readchar_backlog to fetch bytes from a character. (unreadchar): Increment readchar_backlog. (readevalloop, Fread): Init readchar_backlog. - + * charset.c (Fchar_boundary_p): Always return 0. (Fchars_in_region): Just subtract the arguments. (chars_in_text): New function. @@ -4612,28 +4612,28 @@ (Fmove_to_column): Scan with bytepos and charpos. (pos_tab_offset): Use bytepos to do FETCH_BYTE. (skip_invisible): Don't worry about position in middle of character. - + * xdisp.c (try_window): Pass bytepos to and from display_text_line. (try_window_id): Likewise. Use byte pos as well as charpos. (redisplay_internal): Handle bytepos for tlbufpos. * xdisp.c (message): Cast last arg to doprnt. - + * indent.h (struct position): New field bytepos. * keyboard.c (command_loop_1): Use PT_BYTE when calling FETCH_BYTE. Instead of Fforward_point, just add. - + * search.c (looking_at_1): Use bytepos to call re_search_2. Convert search regs to charpos, if search succeeded. (search_buffer): Likewise. Also convert charpos <-> bytepos in non-regexp case. - (scan_buffer): Convert charpos <-> bytepos. + (scan_buffer): Convert charpos <-> bytepos. (scan_newline): New function. (find_next_newline): Function deleted. (set_search_regs): Args now in bytes; convert to charpos. (Freplace_match): Convert charpos <-> bytepos when scanning case. - + * fileio.c (restore_point_unwind): Now static. Use Fgoto_char. (Funhandled_file_name_directory): Doc fix. (Finsert_file_contents): Handle bytes vs chars. @@ -4642,7 +4642,7 @@ (e_write): Rename args. (Funhandled_file_name_directory): Doc fix. (a_write, e_write): Now static. - + * editfns.c (Fgoto_char): When arg is a marker, copy char and byte positions from it. When arg is an integer, no need to worry that it is in middle of a character. @@ -4710,9 +4710,9 @@ (message2): Pass new arg to message2_nolog. (message1_nolog): Likewise. - * keyboard.c (Fexecute_extended_command): + * keyboard.c (Fexecute_extended_command): Save message_enable_multibyte and pass it to message2_nolog. - + * alloc.c (Fgarbage_collect): Save message_enable_multibyte and pass it to message2_nolog. @@ -4734,7 +4734,7 @@ * xdisp.c (message_dolog): Convert between single-byte and multibyte when inserting text into *Messages*. - + 1997-12-11 Richard Stallman <rms@gnu.org> * sysdep.c (sys_signal): Add two casts. @@ -4742,7 +4742,7 @@ 1997-12-09 Richard Stallman <rms@gnu.org> * callproc.c (Fcall_process): Don't clobber new_argv[0] - in the case of no args. + in the case of no args. 1997-12-09 Kenichi Handa <handa@etl.go.jp> @@ -4799,7 +4799,7 @@ * eval.c (do_autoload): Return void. * sysdep.c (reset_sigio): Return void. - + * keyboard.c (Fsuspend_emacs): Cast init_sys_modes when calling record_unwind_protect. @@ -4818,7 +4818,7 @@ * undo.c (record_change, record_first_change, record_property_change): Declare them as void. (record_delete, record_marker_adjustment): Declare them as void. - + * indent.c (invalidate_current_column): Declare it as void. * fileio.c (report_file_error): Declare it as void. @@ -4857,7 +4857,7 @@ * xdisp.c (redisplay_preserve_echo_area): Declare it as void. * charset.c (strwidth): Remove extra argument to buffer_display_table. - + 1997-11-25 Andreas Schwab <schwab@delysid.gnu.org> * charset.h (SPLIT_STRING): Remove extra argument to @@ -5126,7 +5126,7 @@ 1997-10-24 Richard Stallman <rms@gnu.org> - * frame.c (Fmouse_pixel_position, Fmouse_position): + * frame.c (Fmouse_pixel_position, Fmouse_position): Pass -1 as INSIST arg to mouse_position_hook. * w32term.c (w32_mouse_position): Handle INSIST < 0. * xterm.c (XTmouse_position): Handle INSIST < 0. @@ -5466,7 +5466,7 @@ Decode all result file names using Vfile_name_coding_system. * coding.c (Fencode_coding_string, Fdecode_coding_string): Doc fixes. - + 1997-09-07 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * lread.c (Feval_buffer): New arg FILENAME. @@ -5476,7 +5476,7 @@ 1997-09-07 Geoff Voelker <voelker@cs.washington.edu> * firstfile.c: New file. - + 1997-09-07 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * xdisp.c (display_string): Determine multibyte from current buffer, @@ -5491,7 +5491,7 @@ * unexelf.c: Test __OpenBSD__ along with __NetBSD__. [__OpenBSD__]: Include sys/exec_elf.h. - + 1997-09-05 Ken'ichi Handa <handa@psilocin.gnu.ai.mit.edu> * coding.c (Ffind_operation_coding_system): If a function in @@ -5505,7 +5505,7 @@ * lisp.h (Fread_coding_system): Update decl. * callint.c (Fcall_interactively): Pass new arg to Fread_coding_system. - + 1997-09-04 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * m/alpha.h (PTY_OPEN): Call sigblock properly. @@ -5581,7 +5581,7 @@ a separate .bss section conditional. Use my_begbss and my_endbss to determine .bss size by default. Look for Emacs data in EMDATA section. - + * w32.c: Include stddef.h. (getwd): Delete macro. (startup_dir): New variable. @@ -5598,9 +5598,9 @@ (sys_link): Support NTFS links. (sys_rename): Use a long file name for temporary name. (sys_pipe): Make pipes binary and non-inheritable. - (sys_read, sys_write): Spoof text mode translation for pipes + (sys_read, sys_write): Spoof text mode translation for pipes and sockets. - + (hashval): Simplify. (generate_inode_val): Use long file name version of file. @@ -5615,18 +5615,18 @@ (lookup_volume_info, add_volume_info, GetCachedVolumeInformation): New functions. (get_volume_info): Use volume_info_data. - Use GetCachedVolumeInformation. + Use GetCachedVolumeInformation. (init_ntproc): No longer restrict to one DOS subprocess. Use CRT _open and _fdopen. Cache fixed drive information. - + * w32.h: Remove debugging macros. (child_process): Remove is_dos_process field, add hwnd handle field. (FILE_LAST_CR): New macro. (w32_get_long_filename): Declare extern. - * w32console.c: (DebPrint, reset_kbd, unset_kbd, take_console): + * w32console.c: (DebPrint, reset_kbd, unset_kbd, take_console): Delete functions. (keyboard_init_hook): Delete variable. (prev_console_cursor) [! USE_SEPARATE_SCREEN]: New variable. @@ -5640,7 +5640,7 @@ * w32fns.c: Include limits.h and errno.h. Declare externs from other files. - (w32_in_use): New variable. + (w32_in_use): New variable. (check_w32, have_menus_p, x_set_title, w32_msg_worker, find_deferred_msg, send_deferred_msg, complete_deferred_msg, Fw32_focus_frame, W32-send-sys-command): New functions. @@ -5654,7 +5654,7 @@ (x_icon): Initial support for creating window iconified. (x_display_info_for_name): Set w32_in_use. (Fx_open_connection): Validate Vwindow_system. Set w32_in_use. - + (w32_create_window): Set window size to frame dimensions. Set font width, line height, border, scrollbar indexes. Don't set X and Y units indexes. @@ -5662,7 +5662,7 @@ Make static. Don't post done message. No longer handle create scrollbar message. Don't abort on anomalous messages. Return when completion detected. - (w32_wnd_proc): Keep track of button state. + (w32_wnd_proc): Keep track of button state. For WINDOWPOSCHANGING, force window dimensions to be multiples of character dimensions. Handle CREATESCROLLBAR. @@ -5675,7 +5675,7 @@ Set icon name. Use courier new as default font (has bold and italic). Set BufferPredicate and Title default parameters. - + (x_to_w32_weight): Support semibold weight. (x_to_w32_charset): Map # to numeric charset identifier. (w32_to_x_charset): Encode unknown charsets as a number. @@ -5697,23 +5697,23 @@ * w32inevt.c: Declare externs from other files. (w32_kbd_mods_to_emacs): New parameter KEY. Use w32-capslock-is-shiftlock for old behavior. - (key_event): Pass in new parameter to w32_kbd_mods_to_emacs. - + (key_event): Pass in new parameter to w32_kbd_mods_to_emacs. + * w32menu.c (init_menu_items): Disable code. (x_activate_menubar): New function. (initialize_frame_menubar): Pass in new param to set_frame_menubar. - + * w32proc.c: Include w32heap.h. (Vw32_start_process_share_console, Vw32_generate_fake_inodes, - Vw32_get_true_file_attributes, Qhigh, Qlow, process_dir): + Vw32_get_true_file_attributes, Qhigh, Qlow, process_dir): New variables. (find_child_console, set_process_dir, Fw32_short_file_name, Fw32_long_file_name, Fw32_set_process_priority, Fw32_get_locale_info, - Fw32_get_current_locale_id, Fw32_get_default_local_id, + Fw32_get_current_locale_id, Fw32_get_default_local_id, Fw32_set_current_locale): New functions. (CORRECT_DIR_SEPS): New macro. (create_child): Create a new console if subprocs don't share parent's. - (reap_subprocess): Don't check for dos subprocesses. + (reap_subprocess): Don't check for dos subprocesses. Add debug support. (sys_wait): Ignore socket child_procs. Check for quit while waiting. @@ -5760,7 +5760,7 @@ Pass in new parameter to w32_kbd_mods_to_emacs. Handle WM_DISPLAYCHANGE, WINDOWPOSCHANGED, ACTIVATE, SHOWWINDOW, INITMENU, and ACTIVATEAPP messages. - Explicitly check for visibile and obscured frames, and to see if + Explicitly check for visibile and obscured frames, and to see if any event should cause a redisplay. (x_display_bar_cursor): Don't check whether frame is updating here. @@ -5773,9 +5773,9 @@ (x_focus_on_frame): Set focus by making frame the foreground window. (x_raise_frame): Support frames to be raised without grabbing focus. (x_lower_frame): Set NOACTIVATE flag when setting window position. - (x_make_frame_visible, x_make_frame_invisible): Pass in frame + (x_make_frame_visible, x_make_frame_invisible): Pass in frame to my_show_window. - (x_iconify_frame): Send a MINIMIZE message to the window. + (x_iconify_frame): Send a MINIMIZE message to the window. (x_wm_set_size_hint): Set font width, line height, border, and scroll bar indexes instead of X and Y unit indexes. @@ -5786,7 +5786,7 @@ * w32term.h (w32_output): New fields menubar_widget, menubar_active, and pending_menu_activation. - (VERTICAL_SCROLL_BAR_*): Use proportional scroll bar variables. + (VERTICAL_SCROLL_BAR_*): Use proportional scroll bar variables. (W32WindowPos): Delete definition. (WM_EMACS_SETFOCUS, WND_*_INDEX): New macros. (deferred_msg): New structure. @@ -5799,7 +5799,7 @@ Undef system calls before redefining. Emulated calls redefined to sys_*, real calls redefined to _*. (DebPrint): Macro defined. - + 1997-09-02 Michael Welsh Duggan <md5i@schenley.com> * w32term.h (WM_MOUSEWHEEL): Define if not already defined. @@ -5812,7 +5812,7 @@ * w32fns.c (win32_wnd_proc): Capture and handle WM_MOUSEWHEEL events. Capture and handle WM_EMACS_TRACKPOPUPMENU events. - Allow a dragged selection from a popup menu started up + Allow a dragged selection from a popup menu started up by a mouse down event. (x_to_win32_color): Support for X Windows RGB string specifications. @@ -5831,13 +5831,13 @@ send address of menu to win32menu_show. (win32menu_show): Send message to call popup menu rather than trying directly. get_menu_event should take an address. - Call eat_mouse_events in order to get rid of any extraneous + Call eat_mouse_events in order to get rid of any extraneous mouse events. (list_of_panes): Only bring up one pane if the length of the list of panes is one. 1997-09-02 Nico Francois <nico.francois@scala.nl> - + * w32menu.c (single_keymap_panes): Fixed problem with 'descrip' lisp object not being protected properly (GCPRO). (get_single_keymap_event): Fixed problem with 'descrip' lisp @@ -5884,12 +5884,12 @@ * sysdep.c (sys_subshell) [DOS_NT]: Save and restore parent's working directory. (sys_subshell) [WINDOWSNT]: Share MSDOS code. Don't take console. - (init_sys_modes, reset_sys_modes) [WINDOWSNT]: Do it even with + (init_sys_modes, reset_sys_modes) [WINDOWSNT]: Do it even with a read_socket_hook. * xdisp.c (redisplay_internal): Check to see if frame is not obscured as well as visible. - + 1997-09-02 Michael Welsh Duggan <md5i@schenley.com> * lisp.h: Declare discard_mouse_events. @@ -5915,7 +5915,7 @@ in the detect_coding_iso2022 case. * minibuf.c (Fread_from_minibuffer, Fread_string): Doc fixes. - (Fread_no_blanks_input, Fcompleting_read): Doc fixes. + (Fread_no_blanks_input, Fcompleting_read): Doc fixes. * unexnext.c: Include unistd.h instead of libc.h. @@ -5997,7 +5997,7 @@ raw-text-unix. (Fdetect_coding_region): Do not select no-conversion even if EOL format of raw-text file is inconsistent. - + 1997-08-28 Kenichi Handa <handa@etl.go.jp> * coding.c (Qno_conversion, Qundecided): New variables. @@ -6160,7 +6160,7 @@ * fontset.c (Valternate_fontname_alist): Name changed from Valternative_fontname_alist. (syms_of_fontset): Adjusted for the above change. - + * fontset.h: Adjusted for the name change of Valternate_fontname_alist. @@ -6386,7 +6386,7 @@ * xrdb.c (X_DEFAULT_SEARCH_PATH): Add /usr/X11R6/lib alternatives. - * editfns.c (Fwiden, Fnarrow_to_region, save_restriction_restore): + * editfns.c (Fwiden, Fnarrow_to_region, save_restriction_restore): Don't set clip_changed if the new values are the same as the old. * fileio.c (Fwrite_region): Turn off the feature of checking @@ -6487,7 +6487,7 @@ 1997-08-02 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * coding.c: Doc fixes. - + * lread.c (Fload): New optional arg MUST-SUFFIX. * fns.c (Frequire): Pass t for the MUST-SUFFIX arg to Fload. * eval.c (do_autoload): Pass new arg to Fload. @@ -6553,7 +6553,7 @@ 1997-07-29 Ken'ichi Handa <handa@psilocin.gnu.ai.mit.edu> * xterm.c (x_list_fonts): Reject a font whose min_bounds.width is 0. - + 1997-07-28 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * emacs.c (sort_args): Check properly for `--'. @@ -6687,12 +6687,12 @@ * keyboard.c (read_char): Delete spurious UNGCPRO. Add UNGCPRO before the longjmps to wrong_kboard_jmpbuf. Initialize c before the GCPRO1. - + * frame.c (Fdelete_frame): Undo previous change. * s/hpux8.h (LD_SWITCH_SYSTEM_TEMACS): Define this instead of LD_SWITCH_SYSTEM. - + * window.c (set_window_height): Allow all heights > 0 for minibuffer windows. (change_window_height): Fix one-off comparing DELTA with MAXIMUM. @@ -6929,7 +6929,7 @@ * w32.c (sys_shutdown): New function. * s/ms-win32.h: Define HAVE_SHUTDOWN. - + 1997-07-10 Eli Zaretskii <eliz@pogo.gnu.ai.mit.edu> * xfaces.c (Fset_face_attribute_internal): Set mouse_face_defer @@ -6961,7 +6961,7 @@ * xterm.c (x_load_font): Get value of fontp->height from ascent and descent members of structure font->max_bounds. - (dumpglyphs): Draw background by FillSolid if a font is too short. + (dumpglyphs): Draw background by FillSolid if a font is too short. 1997-07-08 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> @@ -6996,7 +6996,7 @@ * syntax.h (struct gl_state_s): New field `offset'. (SETUP_SYNTAX_TABLE_FOR_OBJECT): Set offset field. (SETUP_SYNTAX_TABLE): Clear offset field. - (UPDATE_SYNTAX_TABLE, UPDATE_SYNTAX_TABLE_FORWARD): + (UPDATE_SYNTAX_TABLE, UPDATE_SYNTAX_TABLE_FORWARD): (UPDATE_SYNTAX_TABLE_BACKWARD): Use the offset field. * s/sol2.h (LIBS_SYSTEM): Add -lkvm and -lelf. @@ -7037,7 +7037,7 @@ emacs-mule, and set coding system for encoding to nil. (Fopen_network_stream): If enable-multibyte-characters is nil, set coding systems for decoding and encoding to nil. - + * fileio.c (Finsert_file_contents): If enable-multibyte-characters is nil, decode character code by emacs-mule. (Fwrite_region): Use buffer-file-coding-system for encoding if @@ -7138,7 +7138,7 @@ * syssignal.h (sigpause): Don't define if already defined. * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): New variable. - + 1997-07-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makefile.in (lisp, shortlisp): Add widget.elc. @@ -7226,7 +7226,7 @@ (read_process_output): Use read instead of READ_CHILD_OUTPUT. * makefile.nt (OBJ2): Include new source files. - + * s/ms-w32.h: Duplicate undefs from config.in to check completeness. (STDC_HEADERS, HAVE_TZNAME, HAVE_MKTIME): Define to have a value. (HAVE_GETPAGESIZE, HAVE_SETLOCALE, HAVE_SHUTDOWN, HAVE_TZSET, @@ -7234,7 +7234,7 @@ [HAVE_NTGUI] (HAVE_MENUS): Define. (SYSTEM_PURESIZE_EXTRA): Increase value. - * unexw32.c, w32heap.c: Add pragma to force zero initialized + * unexw32.c, w32heap.c: Add pragma to force zero initialized data into .data segment. * w32console.c, w32term.c: Include charset.h. @@ -7325,7 +7325,7 @@ 1997-06-22 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * s/bsdos3.h: New file. - + * s/bsdos2.h (KERNEL_FILE): New overriding definition. * keyboard.c (read_avail_input): Check for failure with EIO. @@ -7336,7 +7336,7 @@ (KERNEL_FILE, UNEXEC): Don't redefine them if __linux__. [__linux__] (TEXT_START, DATA_START, DATA_SEG_BITS): Alternate definitions. - + * emacs.c (Fdump_emacs): Bind command-line-processed to nil here. * xdisp.c (init_xdisp): Pay attention to FRAME_MENU_BAR_LINES. @@ -7400,7 +7400,7 @@ * process.c (Fprocess_send_eof): Use shutdown, if it's a socket. Don't close the output descriptor if that is also the input descriptor. - + * config.in (HAVE_SHUTDOWN): Add #undef. * editfns.c (Fchar_before): Validate N after decrementing. @@ -7427,7 +7427,7 @@ 1997-06-15 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * process.c (wait_reading_process_input): When exiting because - the process WAIT_PROC has terminated, first read all its output. + the process WAIT_PROC has terminated, first read all its output. 1997-06-14 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> @@ -7461,7 +7461,7 @@ Don't define these if __ELF__. (RUN_TIME_REMAP, N_PAGSIZ, N_BSSADDR, N_TRELOFF): Likewise. - * m/alpha.h (TEXT_END, COFF, DATA_END): + * m/alpha.h (TEXT_END, COFF, DATA_END): Define them if __NetBSD__ just as if LINUX. (HAVE_TEXT_START): Define, if __NetBSD__ and __ELF__. @@ -7484,9 +7484,9 @@ * editfns.c (Finsert_char): Check QUIT. - * fontset.c (list_fontsets, fs_load_font): + * fontset.c (list_fontsets, fs_load_font): fast_c_string_match_ignore_case renamed. - + * xterm.c (x_list_fonts): fast_c_string_match_ignore_case renamed. * search.c (fast_c_string_match_ignore_case): @@ -7561,9 +7561,9 @@ 1997-06-01 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * lisp.h (VALMASK, GCTYPEMASK, MARKBIT, ARRAY_MARK_FLAG) - (PSEUDOVECTOR_FLAG, enum pvec_type, PSEUDOVECTOR_SIZE_MASK): + (PSEUDOVECTOR_FLAG, enum pvec_type, PSEUDOVECTOR_SIZE_MASK): Define regardless of NO_UNION_TYPE. - + * xfns.c (Fx_create_frame): Use XINT to access parent. * syntax.c (Fsyntax_table_p, check_syntax_table): Use EQ. @@ -7600,7 +7600,7 @@ (ORDINARY_LINK): Defined (if __NetBSD__). * s/netbsd.h [__alpha__] (NO_SHARED_LIBS): Defined. - + 1997-05-31 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * lread.c (init_lread): Sometimes add to load-path @@ -7642,7 +7642,7 @@ 1997-05-30 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - * xterm.c (process_expose_from_menu, XTread_socket): + * xterm.c (process_expose_from_menu, XTread_socket): Set has_been_visible field. (x_make_frame_visible): Don't do XMoveWindow unles has_been_visible. @@ -7753,7 +7753,7 @@ Simplify the call to x_real_positions. (x_make_frame_visible): Use win_gravity to decide whether to call XMoveWindow. Also, don't do it if frame already visible. - + * xfns.c (x_real_positions): Subtract border width from results. 1997-05-26 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> @@ -7803,11 +7803,11 @@ Always call x_wm_set_size_hint for them. No need to call XTranslateCoordinates here. (x_clear_errors): New function. - + 1997-05-20 Erik Naggum <erik@naggum.no> * editfns.c (Fformat_time_string): Doc update. - + 1997-05-20 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * editfns.c (Fformat_time_string): Doc update. @@ -7969,7 +7969,7 @@ Thu May 15 22:21:18 1997 Ken'ichi Handa <handa@diazepam.gnu.ai.mit.edu> CODING_EOL_AUTOMATIC => CODING_EOL_UNDECIDED. * coding.c: Likewise. * fileio.c: Likewise. - + * xfns.c (Fx_create_frame): Delete unnecessary code. 1997-05-15 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> @@ -8009,7 +8009,7 @@ Thu May 15 22:21:18 1997 Ken'ichi Handa <handa@diazepam.gnu.ai.mit.edu> (compute_trt_identity, compute_trt_shuffle): New subroutines. (init_casetab_once): Use XSETFASTINT to store into case table; use CHAR_TABLE_SINGLE_BYTE_SLOTS to end the loop. - + 1997-05-13 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * syntax.c (describe_syntax_1): Pass new args to describe_vector. @@ -8048,7 +8048,7 @@ Thu May 15 22:21:18 1997 Ken'ichi Handa <handa@diazepam.gnu.ai.mit.edu> (copy_keymap_1, accessible_keymaps_char_table): New subroutines. (where_is_internal_1, where_is_internal_2): New functions. (syms_of_keymap): Set up Qchar_table_extra_slots prop on Qkeymap. - + 1997-05-10 Ken'ichi Handa <handa@etl.go.jp> * callproc.c (Fcall_process_region): Supply 7th new arg @@ -8151,7 +8151,7 @@ Thu May 15 22:21:18 1997 Ken'ichi Handa <handa@diazepam.gnu.ai.mit.edu> * fileio.c (Fread_file_name): Finish previous change. - * coding.c (Fread_coding_system, Fread_non_nil_coding_system): + * coding.c (Fread_coding_system, Fread_non_nil_coding_system): Pass new arg to Fcompleting_read. * callint.c (Fcall_interactively): Pass new arg to Fcompleting_read. @@ -8231,7 +8231,7 @@ Thu May 15 22:21:18 1997 Ken'ichi Handa <handa@diazepam.gnu.ai.mit.edu> 1997-04-30 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> - * xterm.c (XTmouse_position, x_term_init): + * xterm.c (XTmouse_position, x_term_init): Save value from x_catch_errors and pass to x_uncatch_errors. * xselect.c (x_own_selection, x_reply_selection_request) @@ -8405,14 +8405,14 @@ Thu May 15 22:21:18 1997 Ken'ichi Handa <handa@diazepam.gnu.ai.mit.edu> SETUP_SYNTAX_TABLE_FOR_OBJECT): New macros. (struct gl_state_s): New struct. - * textprop.c: Style of comments corrected. + * textprop.c: Style of comments corrected. (interval_of): New function. 1997-04-14 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> * w16select.c: New file, MS-Windows clipboard support from Emacs running as MSDOS application. - + * s/msdos.h (SYMS_SYSTEM): Add `syms_of_win16select'. * Makefile.in (MSDOS_OBJ): Add w16select.o. @@ -8446,7 +8446,7 @@ Thu May 15 22:21:18 1997 Ken'ichi Handa <handa@diazepam.gnu.ai.mit.edu> when REPLACE is handled by reading directly from the file. Use insert_1 to insert replacement text, to avoid query about whether to modify the buffer. - + 1997-04-10 Marcus G. Daniels <marcus@cathcart.sysc.pdx.edu> * Makefile.in (mallocobj): Make non-REL_ALLOC configuration work @@ -8496,7 +8496,7 @@ Thu May 15 22:21:18 1997 Ken'ichi Handa <handa@diazepam.gnu.ai.mit.edu> (init_alloc_once): Set trim and mmap malloc parms, when using glibc. * config.in (DOUG_LEA_MALLOC): Add #undef. - + * Makefile.in (mallocobj): Don't add gmalloc if using glibc. Drop check for `old malloc'; it isn't distributed with Emacs. @@ -8631,7 +8631,7 @@ Sun Apr 6 10:26:53 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> (Fcopy_file): Fix previous change. (Finsert_file_contents): Determine the character coding before we see if REPLACE can be handled. - Do handle REPLACE even if code conversion is needed. + Do handle REPLACE even if code conversion is needed. 1997-03-30 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> @@ -8664,10 +8664,10 @@ Sun Apr 6 10:26:53 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> 1997-03-22 Mark W. Eichin <eichin@kitten.gen.ma.us> * keyboard.c (make_lispy_event): Use iso_lispy_function_keys for - XK_ISO_* keys found in XFree86. + XK_ISO_* keys found in XFree86. (ISO_FUNCTION_KEY_OFFSET): New macro. (iso_lispy_function_keys): New table. - + * xterm.c (XTread_socket): Accept XK_ISO_* keys. 1997-03-19 Kenichi Handa <handa@etl.go.jp> @@ -8833,7 +8833,7 @@ Sun Apr 6 10:26:53 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> precisely. (Ffind_coding_system, syms_of_coding): Escape newlines in docstring. - + * charset.h (INC_POS, DEC_POS): Don't increase or decrease too much if there's binary code (invalid character code). @@ -8970,7 +8970,7 @@ Sun Apr 6 10:26:53 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> wordbeg, wordend, matchsyntax, and matchnotsyntax, code re-written to handle multibyte characters. Add code for case categoryspec and notcategoryspec. - + * regex.h (struct re_pattern_buffer): New member multibyte. 1997-02-21 Richard Stallman <rms@whiz-bang.gnu.ai.mit.edu> @@ -9381,7 +9381,7 @@ Sun Apr 6 10:26:53 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> 1997-02-14 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * print.c (print): Generate a backslash in \2e10. - + 1997-02-08 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> * window.c (change_window_height): Take size from multiple siblings, @@ -9432,7 +9432,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> that of the dividend. This does not yield a particularly accurate result, but at least it will be in the range promised by fmod. - + * doprnt.c: Include <float.h> if STDC_HEADERS. (DBL_MAX_10_EXP): Define if not defined; default is IEEE double. (doprnt1): Allocate enough buffer space to handle very large floating @@ -9487,7 +9487,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> Define these variables only if LOCALTIME_CACHE is defined. 1997-01-21 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> - + * msdos.c (run_msdos_command): Remove unused variables. (crlf_to_lf): Remove unused variables. (Fmsdos_downcase_filename): Remove unused variable. @@ -9517,7 +9517,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> * dispnew.c (init_display): Check for overflow in screen size. Use `fatal'. - + 1997-01-19 Geoff Voelker <voelker@cs.washington.edu> * w32.c (init_environment): Rebuild Vsystem_configuration at startup. @@ -9527,16 +9527,16 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> * w32gui.h: Renamed from win32.h. * dispextern.h, w32term.h, makefile.nt: Use new name w32gui.h. * makefile.nt: Update header comment. - - * w32console.c (initialize_w32_display): Renamed from + + * w32console.c (initialize_w32_display): Renamed from initialize_win_nt_display. * term.c (term_init): Use new name initialize_w32_display. - + * w32.c, w32console.c, w32faces.c, w32fns.c, w32heap.c, w32inevt.c, w32menu.c, w32proc.c, w32select.c, w32term.c, w32xfns.c, win32.h, w32inevt.h, w32term.h: Change all uses of win95, winnt, and win32 into Windows 95, Windows NT, and W32, respectively. - Expand "win" substring in variables referring to Microsoft Windows + Expand "win" substring in variables referring to Microsoft Windows constructs into "windows". Canonicalize header comments to use same terminology. @@ -9684,7 +9684,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> Use BROKEN_MKTIME to determine whether mktime is broken. 1996-12-30 Paul Eggert <eggert@twinsun.com> - + * data.c, floatfns.c: <float.h>: Include if STDC_HEADERS. (IEEE_FLOATING_POINT): New symbol. * data.c (float_arith_driver, Fmod), floatfns.c (Ffloor): @@ -9725,7 +9725,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> * window.c (window_scroll): Preserve vpos of point if we cannot preserve the actual position of it. Make it static. New arg WHOLE; callers changed. - + * keyboard.c (read_char_x_menu_prompt): Unread and record all the input events from here. (record_menu_key): New subroutine. @@ -9876,7 +9876,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> * msdos.c (IT_cmgoto): Don't update FRAME_CURSOR_X when the cursor is in echo area. -1996-12-05 Erik Naggum <erik@naggum.no> +1996-12-05 Erik Naggum <erik@naggum.no> * keyboard.c (syms_of_keyboard): Doc fix. @@ -9944,7 +9944,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> * w32console.c: Renamed from w32term.c. * unexw32.c: Renamed from unexnt.c. * s/ms-w32.h: Renamed from s/windowsnt.h. - + * dispnew.c (init_display) [HAVE_NTGUI]: Use w32 for window-system. * Makefile.in, callproc.c, makefile.nt: Use new names for w32 files. @@ -10257,7 +10257,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> 1996-09-26 Marcus Daniels <marcus@sayre.sysc.pdx.edu> - * xfns.c (x_set_scroll_bar_width): Move cursor to the + * xfns.c (x_set_scroll_bar_width): Move cursor to the left margin, past a scroll bar, if any. 1996-09-26 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> @@ -10372,7 +10372,7 @@ Sun Feb 2 10:36:26 1997 Eli Zaretskii <eliz@wombat.gnu.ai.mit.edu> 1996-09-20 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> - * xterm.c (x_scroll_bar_create, x_scroll_bar_move): + * xterm.c (x_scroll_bar_create, x_scroll_bar_move): (x_scroll_bar_expose): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM. * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Renamed from @@ -10421,7 +10421,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> * xfns.c: Add the symbol `right'; this symbol is used to indicate that a right-side scroll bar is wanted. - (x_set_vertical_scroll_bars): Check for left<->right<->none + (x_set_vertical_scroll_bars): Check for left<->right<->none scroll bar changes, and modify the vertical scroll bar type as appropriate. (x_figure_window_size): Use new SET_FRAME_WIDTH macro. @@ -10462,7 +10462,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> * w32fns.c (Qright): New variable. (syms_of_win32fns): Initialize and staticpro Qright. - (x_set_vertical_scroll_bars): Check for left<->right<->none + (x_set_vertical_scroll_bars): Check for left<->right<->none scroll bar changes, and modify the vertical scroll bar type as appropriate. (x_figure_window_size): Use new SET_FRAME_WIDTH macro. @@ -10497,7 +10497,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> (change_frame_size_1): Use FRAME_WINDOW_WIDTH to check for changes. Give `set_window_width' the window width value. Use new macro SET_FRAME_WIDTH. - + * xterm.h (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): Add frame as an argument, and use it to decrease the width in the case of a left-side scroll bar; this prevents the bar and adjacent text @@ -10517,7 +10517,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> `external_width' and `width'. (WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Modify to handle left-side scroll bars too. - + * window.h (WINDOW_LEFT_MARGIN): New macro. (WINDOW_RIGHT_EDGE, WINDOW_RIGHT_MARGIN): New macros. (WINDOW_FULL_WIDTH_P, WINDOW_RIGHTMOST_P): New macros. @@ -10528,7 +10528,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> (VERTICAL_SCROLL_BAR_TOP_RANGE): New arg F (not used). * xterm.c: Pass frame arg in calls to VERTICAL_SCROLL_BAR_INSIDE_HEIGHT and VERTICAL_SCROLL_BAR_TOP_RANGE. - + * sysdep.c (init_system_name): Retry gethostbyname only 5 times and don't sleep after the last time. @@ -10592,7 +10592,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> * window.c (Fset_window_start): Clear last_overlay_modified field. (set_window_height, set_window_width, Fset_window_buffer) - (change_window_height, window_scroll, Fset_window_configuration): + (change_window_height, window_scroll, Fset_window_configuration): Clear last_overlay_modified field. (Fpos_visible_in_window_p): Test last_overlay_modified field. @@ -10627,15 +10627,15 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> * xdisp.c (overlay_unchanged_modified): New variable. (redisplay_internal): Set overlay_unchanged_modified. - * insdel.c (gap_left, gap_right, modify_region): + * insdel.c (gap_left, gap_right, modify_region): Compare overlay_unchanged_modified with OVERLAY_MODIFF. * buffer.c (modify_overlay): Renamed from redisplay_region moved here from xdisp.c, and made static. Callers changed. Update OVERLAY_MODIFF instead of MODIFF. * xdisp.c (redisplay_region): Renamed and moved to buffer.c. - - * s/sco5.h (C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM): + + * s/sco5.h (C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM): Don't define them if using GCC. 1996-09-13 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> @@ -10674,7 +10674,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> * keyboard.c (Fexecute_extended_command): Delete junk lines. Print the key bindings after the command, temporarily; then bring back the previous message. - + * buffer.c (syms_of_buffer): Doc fixes. * filelock.c (lock_superlock): Delete superlock file if it stayed @@ -10708,7 +10708,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> 1996-09-04 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> * lisp.h: Add many declarations. - + * lisp.h (BITS_PER_EMACS_INT): New macro. (XMARKBIT): Test BITS_PER_EMACS_INT to conditionalize fast definition. * m/alpha.h (BITS_PER_EMACS_INT): New definition. @@ -10771,7 +10771,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> * xterm.c (note_mouse_highlight): Pass POS argument to fast_find_position as int. - * textprop.c (set_properties, add_properties, remove_properties): + * textprop.c (set_properties, add_properties, remove_properties): Call modify_region with ints. * insdel.c (prepare_to_modify_buffer): Take integer arguments. @@ -10805,7 +10805,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> * xfns.c (x_get_and_record_arg): New function. (x_icon): Use that, for Qicon_top and Qicon_left. (x_report_frame_params): Report the Qparent_id parameter. - + 1996-09-03 Paul Eggert <eggert@twinsun.com> * config.in (mktime): Define to emacs_mktime if we are using our own @@ -10879,7 +10879,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> 1996-08-31 Geoff Voelker <voelker@cs.washington.edu> - * Makefile.in (MSDOS_SUPPORT, WINNT_SUPPORT, SOME_MACHINE_LISP): + * Makefile.in (MSDOS_SUPPORT, WINNT_SUPPORT, SOME_MACHINE_LISP): Include dos-nt.elc. 1996-08-31 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> @@ -10966,7 +10966,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> to the error message. * macros.h (executing_macro_iterations, executing_macro): Declared. - + * macros.c (executing_macro_iterations, executing_macro): New vars. (Fexecute_kbd_macro): Set them. @@ -11016,7 +11016,7 @@ Fri Sep 20 02:37:37 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu> * s/sunos413.h: Renamed from s/sunos4-1-3.h. * s/dgux5-4-3.h: Renamed from s/dgux5-4r3.h. * s/sunos4-1-2.h: File deleted. - + * xmenu.c (set_frame_menubar): Don't add ibw to menubar_size. * xfns.c (x_window): Don't add ibw to menubar_size. diff --git a/src/ChangeLog.8 b/src/ChangeLog.8 index 978bf7e0429..1c2f7820bb5 100644 --- a/src/ChangeLog.8 +++ b/src/ChangeLog.8 @@ -1089,7 +1089,7 @@ * xfns.c (Fx_show_busy_cursor): Doc-fix. (Fx_hide_busy_cursor): Ditto. -1999-11-17 Marco Walther <walther@siemens-pyramid.com> +1999-11-17 Marco Walther <walther@siemens-pyramid.com> * unexsni.c (unexec): Handle .rel.dyn section. @@ -1807,7 +1807,7 @@ Don't call XSetInputFocus because that can generate additional FocusIn events. -1999-10-07 Jeffrey C Honig <jch@bsdi.com> +1999-10-07 Jeffrey C Honig <jch@bsdi.com> * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP. @@ -4039,7 +4039,7 @@ (Fputhash): Ditto. (Fremhash): Ditto. -1999-07-26 Gerd Moellmann <gerd@gnu.org> +1999-07-26 Gerd Moellmann <gerd@gnu.org> * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth value to frame width and height. @@ -11346,7 +11346,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> * editfns.c (Fuser_full_name): Doc fix. -1999-06-14 Tak Ota <ota@atc.sel.sony.com> +1999-06-14 Tak Ota <ota@atc.sel.sony.com> * w32bdf.c: (clear_cached_bitmap_slots): Remove. (get_bitmap_with_cache): Check if CreateBitmap failed. @@ -11355,7 +11355,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> Do cache clearing inline. Move global variables to local scope. -1999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at> +1999-06-13 Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at> * unexsgi.c (unexec): Dump the .rodata section from memory under IRIX6.5 in order to be able to unexec with gcc. @@ -11536,11 +11536,11 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> * w32term.c (dumpglyphs): Always fill background for italic fonts. -1999-05-03 Eli Zaretskii <eliz@is.elta.co.il> +1999-05-03 Eli Zaretskii <eliz@is.elta.co.il> * dired.c (make_time): Make argument type be time_t. -1999-05-02 Eli Zaretskii <eliz@is.elta.co.il> +1999-05-02 Eli Zaretskii <eliz@is.elta.co.il> * msdos.c (unibyte_display_via_language_environment): Add extern. @@ -11813,7 +11813,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> * filelock.c (get_boot_time): Test tempname, not filename. -1999-03-17 Jason Rumney <jasonr@altavista.net> +1999-03-17 Jason Rumney <jasonr@altavista.net> * w32bdf.h: Merged patches from Meadow; introduce bitmap cache to speed display. @@ -11851,7 +11851,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> * macros.c (Fexecute_kbd_macro): Initialize executing_macro_iterations at beginning. -1999-03-14 Jason Rumney <jasonr@altavista.net> +1999-03-14 Jason Rumney <jasonr@altavista.net> * w32fns.c (w32_strict_fontnames): New variable. (Fx_create_frame): Formatting fix. @@ -11902,7 +11902,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> * makefile.nt: Remove common multiple file compilation commands. -1999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp> +1999-03-04 Takeshi YAMADA <yamada@cslab.kecl.ntt.co.jp> * fns.c (Fbase64_encode_string): Allocate sufficient memory for newlines added when the arg NO-LINE-BREAK is nil. @@ -12229,7 +12229,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> * makefile.nt: Use full path to temacs.exe when dumping. -1999-01-27 Jason Rumney <jasonr@altavista.net> +1999-01-27 Jason Rumney <jasonr@altavista.net> * w32fns.c (w32_load_system_font): Do not load unlisted fonts if list was reliable. @@ -12291,7 +12291,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> to set prev_from_syntax, above start of main loop. At startinstring, check syntax when checking for a match. -1999-01-22 Jason Rumney <jasonr@altavista.net> +1999-01-22 Jason Rumney <jasonr@altavista.net> * w32bdf.c: New file. * w32bdf.h: New file. @@ -12349,7 +12349,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> * xterm.c (same_x_server): Detect treat ":0" and "unix:0" as the same. Treat "myname:0" as the same as those two. -1999-01-19 Jason Rumney <jasonr@altavista.net> +1999-01-19 Jason Rumney <jasonr@altavista.net> * w32fns.c (x_to_w32_charset): Add iso8859-9. (w32_to_x_charset): Fix charset mappings. @@ -13203,7 +13203,7 @@ Wed Jun 25 15:22:58 1997 Gerd Moellmann <gerd@acm.org> * m/ews4800.h, s/ux4800.h: New files. -1998-11-03 Theodore Jump <tjump@tertius.com> +1998-11-03 Theodore Jump <tjump@tertius.com> * makefile.nt: Compile multiple source files when possible. diff --git a/src/ChangeLog.9 b/src/ChangeLog.9 index 659397a3730..224b8384f5a 100644 --- a/src/ChangeLog.9 +++ b/src/ChangeLog.9 @@ -2249,7 +2249,7 @@ (live_float_p, live_misc_p): Return 1 only if the offset of the pointer in its block is >= 0. -2001-03-28 Paul Eggert <eggert@twinsun.com> +2001-03-28 Paul Eggert <eggert@twinsun.com> * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the microseconds calcuation. Avoid double-rounding problem. @@ -6656,7 +6656,7 @@ gai_strerror. Make sure xerrno is set if connect fails. Improve error recovery. -2000-09-29 Jason Rumney <jasonr@gnu.org> +2000-09-29 Jason Rumney <jasonr@gnu.org> * w32term.c (w32_char_font_type, w32_encode_char) (x_produce_glyphs): Distinguish single and multibyte BDF fonts. @@ -8340,7 +8340,7 @@ * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES. Callers changed. -2000-08-02 Colin Walters <walters@cis.ohio-state.edu> +2000-08-02 Colin Walters <walters@cis.ohio-state.edu> * window.c (display_buffer_reuse_frames): New variable. (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse @@ -12619,7 +12619,7 @@ * msdos.c (XMenuActivate): Turn off the cursor after displaying the help message. -2000-02-07 Eli Zaretskii <eliz@is.elta.co.il> +2000-02-07 Eli Zaretskii <eliz@is.elta.co.il> * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue, md, mh, mb, mr, and me to the fake termcap entry. @@ -12659,7 +12659,7 @@ the string constant limit (2048 bytes) in MSVC. (main): Ditto. -2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp> +2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp> * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area. (x_display_cursor) [HAVE_X_I18N]: Don't set it here. @@ -12800,7 +12800,7 @@ (create_frame_xic): Renamed from xic_create_frame. (free_frame_xic): Renamed from xic_destroy_frame. -2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp> +2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp> * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of our frames, call XFilterEvent with 2nd parameter `None'. @@ -12977,7 +12977,7 @@ (x_produce_glyphs): Calculate per char metrics for a character that we know exists in default font when font_not_found_p is true. -2000-01-22 Jason Rumney <jasonr@gnu.org> +2000-01-22 Jason Rumney <jasonr@gnu.org> * makefile.nt (intervals.obj, composite.obj): New modules. (composite.h): Added as dependency where appropriate. diff --git a/src/abbrev.c b/src/abbrev.c index 2939b138d3f..ae675bb310e 100644 --- a/src/abbrev.c +++ b/src/abbrev.c @@ -303,7 +303,7 @@ Returns the abbrev symbol, if expansion took place. */) c = FETCH_BYTE (idx_byte); idx++, idx_byte++; } - + if (UPPERCASEP (c)) c = DOWNCASE (c), uccount++; else if (! NOCASEP (c)) diff --git a/src/alloc.c b/src/alloc.c index 61ea3565153..20240136526 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -356,7 +356,7 @@ struct mem_node /* Node color. */ enum {MEM_BLACK, MEM_RED} color; - + /* Memory type. */ enum mem_type type; }; @@ -596,14 +596,14 @@ lisp_malloc (nbytes, type) #ifdef GC_MALLOC_CHECK allocated_mem_type = type; #endif - + val = (void *) malloc (nbytes); #if GC_MARK_STACK && !defined GC_MALLOC_CHECK if (val && type != MEM_TYPE_NON_LISP) mem_insert (val, (char *) val + nbytes, type); #endif - + UNBLOCK_INPUT; if (!val && nbytes) memory_full (); @@ -617,7 +617,7 @@ lisp_malloc (nbytes, type) struct buffer * allocate_buffer () { - struct buffer *b + struct buffer *b = (struct buffer *) lisp_malloc (sizeof (struct buffer), MEM_TYPE_BUFFER); VALIDATE_LISP_STORAGE (b, sizeof *b); @@ -674,7 +674,7 @@ emacs_blocked_free (ptr) if (ptr) { struct mem_node *m; - + m = mem_find (ptr); if (m == MEM_NIL || m->start != ptr) { @@ -689,10 +689,10 @@ emacs_blocked_free (ptr) } } #endif /* GC_MALLOC_CHECK */ - + __free_hook = old_free_hook; free (ptr); - + /* If we released our reserve (due to running out of memory), and we have a fair amount free once again, try to set aside another reserve in case we run out once more. */ @@ -762,7 +762,7 @@ emacs_blocked_malloc (size) } } #endif /* GC_MALLOC_CHECK */ - + __malloc_hook = emacs_blocked_malloc; UNBLOCK_INPUT; @@ -797,9 +797,9 @@ emacs_blocked_realloc (ptr, size) mem_delete (m); } - + /* fprintf (stderr, "%p -> realloc\n", ptr); */ - + /* Prevent malloc from registering blocks. */ dont_register_blocks = 1; #endif /* GC_MALLOC_CHECK */ @@ -820,10 +820,10 @@ emacs_blocked_realloc (ptr, size) /* Can't handle zero size regions in the red-black tree. */ mem_insert (value, (char *) value + max (size, 1), MEM_TYPE_NON_LISP); } - + /* fprintf (stderr, "%p <- realloc\n", value); */ #endif /* GC_MALLOC_CHECK */ - + __realloc_hook = emacs_blocked_realloc; UNBLOCK_INPUT; @@ -1069,13 +1069,13 @@ struct sdata struct Lisp_String *string; #ifdef GC_CHECK_STRING_BYTES - + EMACS_INT nbytes; unsigned char data[1]; - + #define SDATA_NBYTES(S) (S)->nbytes #define SDATA_DATA(S) (S)->data - + #else /* not GC_CHECK_STRING_BYTES */ union @@ -1086,7 +1086,7 @@ struct sdata /* When STRING is null. */ EMACS_INT nbytes; } u; - + #define SDATA_NBYTES(S) (S)->u.nbytes #define SDATA_DATA(S) (S)->u.data @@ -1165,7 +1165,7 @@ static int total_string_size; S must be live, i.e. S->data must not be null. S->data is actually a pointer to the `u.data' member of its sdata structure; the structure starts at a constant offset in front of that. */ - + #ifdef GC_CHECK_STRING_BYTES #define SDATA_OF_STRING(S) \ @@ -1238,7 +1238,7 @@ string_bytes (s) abort (); return nbytes; } - + /* Check validity of Lisp strings' string_bytes member in B. */ void @@ -1246,25 +1246,25 @@ check_sblock (b) struct sblock *b; { struct sdata *from, *end, *from_end; - + end = b->next_free; - + for (from = &b->first_data; from < end; from = from_end) { /* Compute the next FROM here because copying below may overwrite data we need to compute it. */ int nbytes; - + /* Check that the string size recorded in the string is the same as the one recorded in the sdata structure. */ if (from->string) CHECK_STRING_BYTES (from->string); - + if (from->string) nbytes = GC_STRING_BYTES (from->string); else nbytes = SDATA_NBYTES (from); - + nbytes = SDATA_SIZE (nbytes); from_end = (struct sdata *) ((char *) from + nbytes); } @@ -1289,7 +1289,7 @@ check_string_bytes (all_p) if (s) CHECK_STRING_BYTES (s); } - + for (b = oldest_sblock; b; b = b->next) check_sblock (b); } @@ -1395,12 +1395,12 @@ allocate_string_data (s, nchars, nbytes) #endif b = (struct sblock *) lisp_malloc (size, MEM_TYPE_NON_LISP); - + #ifdef DOUG_LEA_MALLOC /* Back to a reasonable maximum of mmap'ed areas. */ mallopt (M_MMAP_MAX, MMAP_MAX_AREAS); #endif - + b->next_free = &b->first_data; b->first_data.string = NULL; b->next = large_sblocks; @@ -1428,7 +1428,7 @@ allocate_string_data (s, nchars, nbytes) old_data = s->data ? SDATA_OF_STRING (s) : NULL; old_nbytes = GC_STRING_BYTES (s); - + data = b->next_free; data->string = s; s->data = SDATA_DATA (data); @@ -1439,7 +1439,7 @@ allocate_string_data (s, nchars, nbytes) s->size_byte = nbytes; s->data[nbytes] = '\0'; b->next_free = (struct sdata *) ((char *) data + needed); - + /* If S had already data assigned, mark that as free by setting its string back-pointer to null, and recording the size of the data in it. */ @@ -1460,7 +1460,7 @@ sweep_strings () { struct string_block *b, *next; struct string_block *live_blocks = NULL; - + string_free_list = NULL; total_strings = total_free_strings = 0; total_string_size = 0; @@ -1484,7 +1484,7 @@ sweep_strings () { /* String is live; unmark it and its intervals. */ UNMARK_STRING (s); - + if (!NULL_INTERVAL_P (s->intervals)) UNMARK_BALANCE_INTERVALS (s->intervals); @@ -1556,7 +1556,7 @@ free_large_strings () { struct sblock *b, *next; struct sblock *live_blocks = NULL; - + for (b = large_sblocks; b; b = next) { next = b->next; @@ -1597,7 +1597,7 @@ compact_small_strings () { end = b->next_free; xassert ((char *) end <= (char *) b + SBLOCK_SIZE); - + for (from = &b->first_data; from < end; from = from_end) { /* Compute the next FROM here because copying below may @@ -1611,15 +1611,15 @@ compact_small_strings () && GC_STRING_BYTES (from->string) != SDATA_NBYTES (from)) abort (); #endif /* GC_CHECK_STRING_BYTES */ - + if (from->string) nbytes = GC_STRING_BYTES (from->string); else nbytes = SDATA_NBYTES (from); - + nbytes = SDATA_SIZE (nbytes); from_end = (struct sdata *) ((char *) from + nbytes); - + /* FROM->string non-null means it's alive. Copy its data. */ if (from->string) { @@ -1633,7 +1633,7 @@ compact_small_strings () to = &tb->first_data; to_end = (struct sdata *) ((char *) to + nbytes); } - + /* Copy, and update the string's `data' pointer. */ if (from != to) { @@ -1700,7 +1700,7 @@ Both LENGTH and INIT must be numbers. */) p += len; } } - + *p = 0; return val; } @@ -1728,16 +1728,16 @@ LENGTH must be a number. INIT matters only in whether it is t or nil. */) slot `size' of the struct Lisp_Bool_Vector. */ val = Fmake_vector (make_number (length_in_elts + 1), Qnil); p = XBOOL_VECTOR (val); - + /* Get rid of any bits that would cause confusion. */ p->vector_size = 0; XSETBOOL_VECTOR (val, p); p->size = XFASTINT (length); - + real_init = (NILP (init) ? 0 : -1); for (i = 0; i < length_in_chars ; i++) p->data[i] = real_init; - + /* Clear the extraneous bits in the last byte. */ if (XINT (length) != length_in_chars * BITS_PER_CHAR) XBOOL_VECTOR (val)->data[length_in_chars - 1] @@ -1982,7 +1982,7 @@ make_float (float_value) } XSETFLOAT (val, &float_block->floats[float_block_index++]); } - + XFLOAT_DATA (val) = float_value; XSETFASTINT (XFLOAT (val)->type, 0); /* bug chasing -wsr */ consing_since_gc += sizeof (struct Lisp_Float); @@ -2089,7 +2089,7 @@ DEFUN ("cons", Fcons, Scons, 2, 2, 0, } XSETCONS (val, &cons_block->conses[cons_block_index++]); } - + XSETCAR (val, car); XSETCDR (val, cdr); consing_since_gc += sizeof (struct Lisp_Cons); @@ -2174,17 +2174,17 @@ DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0, { val = Fcons (init, val); --size; - + if (size > 0) { val = Fcons (init, val); --size; - + if (size > 0) { val = Fcons (init, val); --size; - + if (size > 0) { val = Fcons (init, val); @@ -2196,7 +2196,7 @@ DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0, QUIT; } - + return val; } @@ -2232,15 +2232,15 @@ allocate_vectorlike (len, type) a dumped Emacs. */ mallopt (M_MMAP_MAX, 0); #endif - + nbytes = sizeof *p + (len - 1) * sizeof p->contents[0]; p = (struct Lisp_Vector *) lisp_malloc (nbytes, type); - + #ifdef DOUG_LEA_MALLOC /* Back to a reasonable maximum of mmap'ed areas. */ mallopt (M_MMAP_MAX, MMAP_MAX_AREAS); #endif - + VALIDATE_LISP_STORAGE (p, 0); consing_since_gc += nbytes; vector_cells_consed += len; @@ -2272,11 +2272,11 @@ allocate_hash_table () EMACS_INT len = VECSIZE (struct Lisp_Hash_Table); struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_HASH_TABLE); EMACS_INT i; - + v->size = len; for (i = 0; i < len; ++i) v->contents[i] = Qnil; - + return (struct Lisp_Hash_Table *) v; } @@ -2287,11 +2287,11 @@ allocate_window () EMACS_INT len = VECSIZE (struct window); struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_WINDOW); EMACS_INT i; - + for (i = 0; i < len; ++i) v->contents[i] = Qnil; v->size = len; - + return (struct window *) v; } @@ -2302,7 +2302,7 @@ allocate_frame () EMACS_INT len = VECSIZE (struct frame); struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_FRAME); EMACS_INT i; - + for (i = 0; i < len; ++i) v->contents[i] = make_number (0); v->size = len; @@ -2316,11 +2316,11 @@ allocate_process () EMACS_INT len = VECSIZE (struct Lisp_Process); struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_PROCESS); EMACS_INT i; - + for (i = 0; i < len; ++i) v->contents[i] = Qnil; v->size = len; - + return (struct Lisp_Process *) v; } @@ -2331,11 +2331,11 @@ allocate_other_vector (len) { struct Lisp_Vector *v = allocate_vectorlike (len, MEM_TYPE_VECTOR); EMACS_INT i; - + for (i = 0; i < len; ++i) v->contents[i] = Qnil; v->size = len; - + return v; } @@ -2547,7 +2547,7 @@ Its value and function definition are void, and its property list is nil. */) } XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index++]); } - + p = XSYMBOL (val); p->xname = name; p->plist = Qnil; @@ -2628,7 +2628,7 @@ allocate_misc () } XSETMISC (val, &marker_block->markers[marker_block_index++]); } - + consing_since_gc += sizeof (union Lisp_Misc); misc_objects_consed++; return val; @@ -2713,7 +2713,7 @@ make_event_array (nargs, args) characters, so we can make a string. */ { Lisp_Object result; - + result = Fmake_string (make_number (nargs), make_number (0)); for (i = 0; i < nargs; i++) { @@ -2722,7 +2722,7 @@ make_event_array (nargs, args) if (XINT (args[i]) & CHAR_META) SSET (result, i, SREF (result, i) | 0x80); } - + return result; } } @@ -2805,7 +2805,7 @@ mem_insert (start, end, type) parent = NULL; #if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS - + while (c != MEM_NIL) { if (start >= c->start && start < c->end) @@ -2813,15 +2813,15 @@ mem_insert (start, end, type) parent = c; c = start < c->start ? c->left : c->right; } - + #else /* GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS */ - + while (c != MEM_NIL) { parent = c; c = start < c->start ? c->left : c->right; } - + #endif /* GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS */ /* Create a new node. */ @@ -2847,7 +2847,7 @@ mem_insert (start, end, type) else parent->right = x; } - else + else mem_root = x; /* Re-establish red-black tree properties. */ @@ -2868,13 +2868,13 @@ mem_insert_fixup (x) { /* X is red and its parent is red. This is a violation of red-black tree property #3. */ - + if (x->parent == x->parent->parent->left) { /* We're on the left side of our grandparent, and Y is our "uncle". */ struct mem_node *y = x->parent->parent->right; - + if (y->color == MEM_RED) { /* Uncle and parent are red but should be black because @@ -2904,7 +2904,7 @@ mem_insert_fixup (x) { /* This is the symmetrical case of above. */ struct mem_node *y = x->parent->parent->left; - + if (y->color == MEM_RED) { x->parent->color = MEM_BLACK; @@ -2919,7 +2919,7 @@ mem_insert_fixup (x) x = x->parent; mem_rotate_right (x); } - + x->parent->color = MEM_BLACK; x->parent->parent->color = MEM_RED; mem_rotate_left (x->parent->parent); @@ -2933,8 +2933,8 @@ mem_insert_fixup (x) } -/* (x) (y) - / \ / \ +/* (x) (y) + / \ / \ a (y) ===> (x) c / \ / \ b c a b */ @@ -2973,10 +2973,10 @@ mem_rotate_left (x) } -/* (x) (Y) - / \ / \ - (y) c ===> a (x) - / \ / \ +/* (x) (Y) + / \ / \ + (y) c ===> a (x) + / \ / \ a b b c */ static void @@ -2988,7 +2988,7 @@ mem_rotate_right (x) x->left = y->right; if (y->right != MEM_NIL) y->right->parent = x; - + if (y != MEM_NIL) y->parent = x->parent; if (x->parent) @@ -3000,7 +3000,7 @@ mem_rotate_right (x) } else mem_root = y; - + y->right = x; if (x != MEM_NIL) x->parent = y; @@ -3049,7 +3049,7 @@ mem_delete (z) z->end = y->end; z->type = y->type; } - + if (y->color == MEM_BLACK) mem_delete_fixup (x); @@ -3073,7 +3073,7 @@ mem_delete_fixup (x) if (x == x->parent->left) { struct mem_node *w = x->parent->right; - + if (w->color == MEM_RED) { w->color = MEM_BLACK; @@ -3081,7 +3081,7 @@ mem_delete_fixup (x) mem_rotate_left (x->parent); w = x->parent->right; } - + if (w->left->color == MEM_BLACK && w->right->color == MEM_BLACK) { w->color = MEM_RED; @@ -3106,7 +3106,7 @@ mem_delete_fixup (x) else { struct mem_node *w = x->parent->left; - + if (w->color == MEM_RED) { w->color = MEM_BLACK; @@ -3114,7 +3114,7 @@ mem_delete_fixup (x) mem_rotate_right (x->parent); w = x->parent->left; } - + if (w->right->color == MEM_BLACK && w->left->color == MEM_BLACK) { w->color = MEM_RED; @@ -3129,7 +3129,7 @@ mem_delete_fixup (x) mem_rotate_left (w); w = x->parent->left; } - + w->color = x->parent->color; x->parent->color = MEM_BLACK; w->left->color = MEM_BLACK; @@ -3138,7 +3138,7 @@ mem_delete_fixup (x) } } } - + x->color = MEM_BLACK; } @@ -3206,7 +3206,7 @@ live_symbol_p (m, p) { struct symbol_block *b = (struct symbol_block *) m->start; int offset = (char *) p - (char *) &b->symbols[0]; - + /* P must point to the start of a Lisp_Symbol, not be one of the unused cells in the current symbol block, and not be on the free-list. */ @@ -3233,7 +3233,7 @@ live_float_p (m, p) { struct float_block *b = (struct float_block *) m->start; int offset = (char *) p - (char *) &b->floats[0]; - + /* P must point to the start of a Lisp_Float, not be one of the unused cells in the current float block, and not be on the free-list. */ @@ -3260,7 +3260,7 @@ live_misc_p (m, p) { struct marker_block *b = (struct marker_block *) m->start; int offset = (char *) p - (char *) &b->markers[0]; - + /* P must point to the start of a Lisp_Misc, not be one of the unused cells in the current misc block, and not be on the free-list. */ @@ -3366,7 +3366,7 @@ mark_maybe_object (obj) { void *po = (void *) XPNTR (obj); struct mem_node *m = mem_find (po); - + if (m != MEM_NIL) { int mark_p = 0; @@ -3412,12 +3412,12 @@ mark_maybe_object (obj) case Lisp_Misc_Marker: mark_p = !XMARKBIT (XMARKER (obj)->chain); break; - + case Lisp_Misc_Buffer_Local_Value: case Lisp_Misc_Some_Buffer_Local_Value: mark_p = !XMARKBIT (XBUFFER_LOCAL_VALUE (obj)->realvalue); break; - + case Lisp_Misc_Overlay: mark_p = !XMARKBIT (XOVERLAY (obj)->plist); break; @@ -3456,30 +3456,30 @@ mark_maybe_pointer (p) assume that Lisp data is aligned on even addresses. */ if ((EMACS_INT) p & 1) return; - + m = mem_find (p); if (m != MEM_NIL) { Lisp_Object obj = Qnil; - + switch (m->type) { case MEM_TYPE_NON_LISP: /* Nothing to do; not a pointer to Lisp memory. */ break; - + case MEM_TYPE_BUFFER: if (live_buffer_p (m, p) && !XMARKBIT (((struct buffer *) p)->name)) XSETVECTOR (obj, p); break; - + case MEM_TYPE_CONS: if (live_cons_p (m, p) && !XMARKBIT (((struct Lisp_Cons *) p)->car)) XSETCONS (obj, p); break; - + case MEM_TYPE_STRING: if (live_string_p (m, p) && !STRING_MARKED_P ((struct Lisp_String *) p)) @@ -3491,20 +3491,20 @@ mark_maybe_pointer (p) { Lisp_Object tem; XSETMISC (tem, p); - + switch (XMISCTYPE (tem)) { case Lisp_Misc_Marker: if (!XMARKBIT (XMARKER (tem)->chain)) obj = tem; break; - + case Lisp_Misc_Buffer_Local_Value: case Lisp_Misc_Some_Buffer_Local_Value: if (!XMARKBIT (XBUFFER_LOCAL_VALUE (tem)->realvalue)) obj = tem; break; - + case Lisp_Misc_Overlay: if (!XMARKBIT (XOVERLAY (tem)->plist)) obj = tem; @@ -3512,19 +3512,19 @@ mark_maybe_pointer (p) } } break; - + case MEM_TYPE_SYMBOL: if (live_symbol_p (m, p) && !XMARKBIT (((struct Lisp_Symbol *) p)->plist)) XSETSYMBOL (obj, p); break; - + case MEM_TYPE_FLOAT: if (live_float_p (m, p) && !XMARKBIT (((struct Lisp_Float *) p)->type)) XSETFLOAT (obj, p); break; - + case MEM_TYPE_VECTOR: case MEM_TYPE_PROCESS: case MEM_TYPE_HASH_TABLE: @@ -3552,7 +3552,7 @@ mark_maybe_pointer (p) /* Mark Lisp objects referenced from the address range START..END. */ -static void +static void mark_memory (start, end) void *start, *end; { @@ -3593,7 +3593,7 @@ mark_memory (start, end) Here, `obj' isn't really used, and the compiler optimizes it away. The only reference to the life string is through the pointer `s'. */ - + for (pp = (void **) start; (void *) pp < end; ++pp) mark_maybe_pointer (*pp); } @@ -3783,14 +3783,14 @@ mark_stack () #ifdef sparc asm ("ta 3"); #endif - + /* Save registers that we need to see on the stack. We need to see registers used to hold register variables and registers used to pass parameters. */ #ifdef GC_SAVE_REGISTERS_ON_STACK GC_SAVE_REGISTERS_ON_STACK (end); #else /* not GC_SAVE_REGISTERS_ON_STACK */ - + #ifndef GC_SETJMP_WORKS /* If it hasn't been checked yet that setjmp will definitely work, test it and print a message with the result @@ -3801,7 +3801,7 @@ mark_stack () test_setjmp (); } #endif /* GC_SETJMP_WORKS */ - + setjmp (j); end = stack_grows_down_p ? (char *) &j + sizeof j : (char *) &j; #endif /* not GC_SAVE_REGISTERS_ON_STACK */ @@ -4146,7 +4146,7 @@ Garbage collection happens automatically if you cons more than Qt tends to return NULL, which effectively turns undo back on. So don't call truncate_undo_list if undo_list is Qt. */ if (! EQ (nextb->undo_list, Qt)) - nextb->undo_list + nextb->undo_list = truncate_undo_list (nextb->undo_list, undo_limit, undo_strong_limit); @@ -4199,7 +4199,7 @@ Garbage collection happens automatically if you cons more than XMARK (tail->var[i]); } #endif - + mark_byte_stack (); for (bind = specpdl; bind != specpdl_ptr; bind++) { @@ -4210,12 +4210,12 @@ Garbage collection happens automatically if you cons more than { mark_object (&catch->tag); mark_object (&catch->val); - } + } for (handler = handlerlist; handler; handler = handler->next) { mark_object (&handler->handler); mark_object (&handler->var); - } + } for (backlist = backtrace_list; backlist; backlist = backlist->next) { if (!XMARKBIT (*backlist->function)) @@ -4233,7 +4233,7 @@ Garbage collection happens automatically if you cons more than mark_object (&backlist->args[i]); XMARK (backlist->args[i]); } - } + } mark_kboards (); /* Look thru every buffer's undo list @@ -4300,7 +4300,7 @@ Garbage collection happens automatically if you cons more than for (i = 0; i < tail->nvars; i++) XUNMARK (tail->var[i]); #endif - + unmark_byte_stack (); for (backlist = backtrace_list; backlist; backlist = backlist->next) { @@ -4311,7 +4311,7 @@ Garbage collection happens automatically if you cons more than i = backlist->nargs - 1; for (; i >= 0; i--) XUNMARK (backlist->args[i]); - } + } XUNMARK (buffer_defaults.name); XUNMARK (buffer_local_symbols.name); @@ -4357,7 +4357,7 @@ Garbage collection happens automatically if you cons more than { /* Compute average percentage of zombies. */ double nlive = 0; - + for (i = 0; i < 7; ++i) if (CONSP (total[i])) nlive += XFASTINT (XCAR (total[i])); @@ -4408,7 +4408,7 @@ mark_glyph_matrix (matrix) { struct glyph *glyph = row->glyphs[area]; struct glyph *end_glyph = glyph + row->used[area]; - + for (; glyph < end_glyph; ++glyph) if (GC_STRINGP (glyph->object) && !STRING_MARKED_P (XSTRING (glyph->object))) @@ -4450,7 +4450,7 @@ mark_image (img) struct image *img; { mark_object (&img->spec); - + if (!NILP (img->data.lisp_val)) mark_object (&img->data.lisp_val); } @@ -4538,13 +4538,13 @@ mark_object (argptr) CHECK_ALLOCATED (); \ CHECK_LIVE (LIVEP); \ } while (0) \ - + #else /* not GC_CHECK_MARKED_OBJECTS */ - + #define CHECK_ALLOCATED() (void) 0 #define CHECK_LIVE(LIVEP) (void) 0 #define CHECK_ALLOCATED_AND_LIVE(LIVEP) (void) 0 - + #endif /* not GC_CHECK_MARKED_OBJECTS */ switch (SWITCH_ENUM_CAST (XGCTYPE (obj))) @@ -4571,7 +4571,7 @@ mark_object (argptr) && po != &buffer_local_symbols) abort (); #endif /* GC_CHECK_MARKED_OBJECTS */ - + if (GC_BUFFERP (obj)) { if (!XMARKBIT (XBUFFER (obj)->name)) @@ -4602,7 +4602,7 @@ mark_object (argptr) if (size & ARRAY_MARK_FLAG) break; /* Already marked */ - + CHECK_LIVE (live_vector_p); ptr->size |= ARRAY_MARK_FLAG; /* Else mark it */ size &= PSEUDOVECTOR_SIZE_MASK; @@ -4695,18 +4695,18 @@ mark_object (argptr) { struct Lisp_Hash_Table *h = XHASH_TABLE (obj); EMACS_INT size = h->size; - + /* Stop if already marked. */ if (size & ARRAY_MARK_FLAG) break; - + /* Mark it. */ CHECK_LIVE (live_vector_p); h->size |= ARRAY_MARK_FLAG; /* Mark contents. */ /* Do not mark next_free or next_weak. - Being in the next_weak chain + Being in the next_weak chain should not keep the hash table alive. No need to mark `count' since it is an integer. */ mark_object (&h->test); @@ -4725,7 +4725,7 @@ mark_object (argptr) mark_object (&h->key_and_value); else XVECTOR (h->key_and_value)->size |= ARRAY_MARK_FLAG; - + } else { @@ -4759,7 +4759,7 @@ mark_object (argptr) if (!PURE_POINTER_P (XSTRING (ptr->xname))) MARK_STRING (XSTRING (ptr->xname)); MARK_INTERVAL_TREE (STRING_INTERVALS (ptr->xname)); - + /* Note that we do not mark the obarray of the symbol. It is safe not to do so because nothing accesses that slot except to check whether it is nil. */ @@ -4933,7 +4933,7 @@ mark_buffer (buf) /* If this is an indirect buffer, mark its base buffer. */ if (buffer->base_buffer && !XMARKBIT (buffer->base_buffer->name)) { - XSETBUFFER (base_buffer, buffer->base_buffer); + XSETBUFFER (base_buffer, buffer->base_buffer); mark_buffer (base_buffer); } } @@ -4975,7 +4975,7 @@ survives_gc_p (obj) Lisp_Object obj; { int survives_p; - + switch (XGCTYPE (obj)) { case Lisp_Int: @@ -4992,12 +4992,12 @@ survives_gc_p (obj) case Lisp_Misc_Marker: survives_p = XMARKBIT (obj); break; - + case Lisp_Misc_Buffer_Local_Value: case Lisp_Misc_Some_Buffer_Local_Value: survives_p = XMARKBIT (XBUFFER_LOCAL_VALUE (obj)->realvalue); break; - + case Lisp_Misc_Intfwd: case Lisp_Misc_Boolfwd: case Lisp_Misc_Objfwd: @@ -5005,7 +5005,7 @@ survives_gc_p (obj) case Lisp_Misc_Kboard_Objfwd: survives_p = 1; break; - + case Lisp_Misc_Overlay: survives_p = XMARKBIT (XOVERLAY (obj)->plist); break; @@ -5071,7 +5071,7 @@ gc_sweep () register int num_free = 0, num_used = 0; cons_free_list = 0; - + for (cblk = cons_block; cblk; cblk = *cprev) { register int i; @@ -5121,7 +5121,7 @@ gc_sweep () register int num_free = 0, num_used = 0; float_free_list = 0; - + for (fblk = float_block; fblk; fblk = *fprev) { register int i; @@ -5221,7 +5221,7 @@ gc_sweep () register int num_free = 0, num_used = 0; symbol_free_list = NULL; - + for (sblk = symbol_block; sblk; sblk = *sprev) { int this_free = 0; @@ -5234,7 +5234,7 @@ gc_sweep () it might be pointed to by pure bytecode which we don't trace, so we conservatively assume that it is live. */ int pure_p = PURE_POINTER_P (XSTRING (sym->xname)); - + if (!XMARKBIT (sym->plist) && !pure_p) { *(struct Lisp_Symbol **) &sym->value = symbol_free_list; @@ -5252,7 +5252,7 @@ gc_sweep () XUNMARK (sym->plist); } } - + lim = SYMBOL_BLOCK_SIZE; /* If this block contains only free symbols and we have already seen more than two blocks worth of free symbols then deallocate @@ -5284,7 +5284,7 @@ gc_sweep () register int num_free = 0, num_used = 0; marker_free_list = 0; - + for (mblk = marker_block; mblk; mblk = *mprev) { register int i; @@ -5414,7 +5414,7 @@ gc_sweep () prev = vector, vector = vector->next; } } - + #ifdef GC_CHECK_STRING_BYTES if (!noninteractive) check_string_bytes (1); diff --git a/src/alloca.s b/src/alloca.s index 5277586a2ea..0833cba997c 100644 --- a/src/alloca.s +++ b/src/alloca.s @@ -59,7 +59,7 @@ lose!! data text globl _alloca -_alloca +_alloca move.l (sp)+,a0 ; pop return addr from top of stack move.l (sp)+,d0 ; pop size in bytes from top of stack add.l #ROUND,d0 ; round size up to long word @@ -112,7 +112,7 @@ copy_regs_loop: /* save caller's saved registers */ alloca: #ifdef MOTOROLA_DELTA /* slightly modified version of alloca to motorola sysV/68 pcc - based - compiler. + compiler. this compiler saves used registers relative to %sp instead of %fp. alright, just make new copy of saved register set whenever we allocate new space from stack.. @@ -251,9 +251,9 @@ alloca: * We have to copy registers, and therefore waste 32 bytes. * * Stack layout: - * new sp -> junk + * new sp -> junk * registers (copy) - * r0 -> new data + * r0 -> new data * | (orig retval) * | (orig arg) * old sp -> regs (orig) diff --git a/src/atimer.c b/src/atimer.c index 492aa4ec04e..25b48c5857a 100644 --- a/src/atimer.c +++ b/src/atimer.c @@ -132,12 +132,12 @@ start_atimer (type, time, fn, client_data) case ATIMER_ABSOLUTE: t->expiration = time; break; - + case ATIMER_RELATIVE: EMACS_GET_TIME (t->expiration); EMACS_ADD_TIME (t->expiration, t->expiration, time); break; - + case ATIMER_CONTINUOUS: EMACS_GET_TIME (t->expiration); EMACS_ADD_TIME (t->expiration, t->expiration, time); @@ -151,7 +151,7 @@ start_atimer (type, time, fn, client_data) /* Arrange for a SIGALRM at the time the next atimer is ripe. */ set_alarm (); - + return t; } @@ -163,14 +163,14 @@ cancel_atimer (timer) struct atimer *timer; { int i; - + BLOCK_ATIMERS; for (i = 0; i < 2; ++i) { struct atimer *t, *prev; struct atimer **list = i ? &stopped_atimers : &atimers; - + /* See if TIMER is active or stopped. */ for (t = *list, prev = NULL; t && t != timer; prev = t, t = t->next) ; @@ -184,7 +184,7 @@ cancel_atimer (timer) prev->next = t->next; else *list = t->next; - + t->next = free_atimers; free_atimers = t; break; @@ -209,7 +209,7 @@ append_atimer_lists (list1, list2) else { struct atimer *p; - + for (p = list1; p->next; p = p->next) ; p->next = list2; @@ -225,11 +225,11 @@ stop_other_atimers (t) struct atimer *t; { BLOCK_ATIMERS; - + if (t) { struct atimer *p, *prev; - + /* See if T is active. */ for (p = atimers, prev = 0; p && p != t; p = p->next) ; @@ -246,7 +246,7 @@ stop_other_atimers (t) /* T is not active. Let's handle this like T == 0. */ t = NULL; } - + stopped_atimers = append_atimer_lists (atimers, stopped_atimers); atimers = t; UNBLOCK_ATIMERS; @@ -263,18 +263,18 @@ run_all_atimers () { struct atimer *t = atimers; struct atimer *next; - + BLOCK_ATIMERS; atimers = stopped_atimers; stopped_atimers = NULL; - + while (t) { next = t->next; schedule_atimer (t); t = next; } - + UNBLOCK_ATIMERS; } } @@ -301,7 +301,7 @@ set_alarm () must reestablish each time. */ signal (SIGALRM, alarm_signal_handler); #endif /* USG */ - + if (atimers) { EMACS_TIME now, time; @@ -320,7 +320,7 @@ set_alarm () EMACS_SET_SECS (time, 0); EMACS_SET_USECS (time, 1000); } - + bzero (&it, sizeof it); it.it_value = time; setitimer (ITIMER_REAL, &it, 0); @@ -350,7 +350,7 @@ schedule_atimer (t) prev->next = t; else atimers = t; - + t->next = a; } @@ -363,20 +363,20 @@ alarm_signal_handler (signo) int signo; { EMACS_TIME now; - + EMACS_GET_TIME (now); pending_atimers = 0; - + while (atimers && (pending_atimers = interrupt_input_blocked) == 0 && EMACS_TIME_LE (atimers->expiration, now)) { struct atimer *t; - + t = atimers; atimers = atimers->next; t->fn (t); - + if (t->type == ATIMER_CONTINUOUS) { EMACS_ADD_TIME (t->expiration, now, t->interval); @@ -387,10 +387,10 @@ alarm_signal_handler (signo) t->next = free_atimers; free_atimers = t; } - + EMACS_GET_TIME (now); } - + set_alarm (); } diff --git a/src/atimer.h b/src/atimer.h index 7c1fb0544c6..4a487cdbb30 100644 --- a/src/atimer.h +++ b/src/atimer.h @@ -51,7 +51,7 @@ struct atimer { /* The type of this timer. */ enum atimer_type type; - + /* Time when this timer is ripe. */ EMACS_TIME expiration; diff --git a/src/blockinput.h b/src/blockinput.h index 6d4fde2c9b9..c5485fa4801 100644 --- a/src/blockinput.h +++ b/src/blockinput.h @@ -42,7 +42,7 @@ Boston, MA 02111-1307, USA. */ BLOCK_INPUT and UNBLOCK_INPUT may be nested. * Any complicated interrupt handling code should test - interrupt_input_blocked, and put off its work until later. + interrupt_input_blocked, and put off its work until later. * If the interrupt handling code wishes, it may set interrupt_input_pending to a non-zero value. If that flag is set diff --git a/src/buffer.c b/src/buffer.c index 49813b38d37..06663c9abd7 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -464,13 +464,13 @@ copy_overlays (b, list) OVERLAY_START (overlay) = start; OVERLAY_END (overlay) = end; OVERLAY_PLIST (overlay) = Fcopy_sequence (OVERLAY_PLIST (old_overlay)); - + result = Fcons (overlay, result); } return Fnreverse (result); } - + /* Clone per-buffer values of buffer FROM. @@ -487,7 +487,7 @@ clone_per_buffer_values (from, to) int offset; XSETBUFFER (to_buffer, to); - + for (offset = PER_BUFFER_VAR_OFFSET (name) + sizeof (Lisp_Object); offset < sizeof *to; offset += sizeof (Lisp_Object)) @@ -507,7 +507,7 @@ clone_per_buffer_values (from, to) } bcopy (from->local_flags, to->local_flags, sizeof to->local_flags); - + to->overlays_before = copy_overlays (to, from->overlays_before); to->overlays_after = copy_overlays (to, from->overlays_after); } @@ -816,7 +816,7 @@ If BUFFER is not indirect, return nil. */) } DEFUN ("buffer-local-value", Fbuffer_local_value, - Sbuffer_local_value, 2, 2, 0, + Sbuffer_local_value, 2, 2, 0, doc: /* Return the value of VARIABLE in BUFFER. If VARIABLE does not have a buffer-local binding in BUFFER, the value is the default binding of variable. */) @@ -833,7 +833,7 @@ is the default binding of variable. */) /* Look in local_var_list */ result = Fassoc (symbol, buf->local_var_alist); - if (NILP (result)) + if (NILP (result)) { int offset, idx; int found = 0; @@ -846,8 +846,8 @@ is the default binding of variable. */) { idx = PER_BUFFER_IDX (offset); if ((idx == -1 || PER_BUFFER_VALUE_P (buf, idx)) - && SYMBOLP (PER_BUFFER_SYMBOL (offset)) - && EQ (PER_BUFFER_SYMBOL (offset), symbol)) + && SYMBOLP (PER_BUFFER_SYMBOL (offset)) + && EQ (PER_BUFFER_SYMBOL (offset), symbol)) { result = PER_BUFFER_VALUE (buf, offset); found = 1; @@ -1005,7 +1005,7 @@ A non-nil FLAG means mark the buffer modified. */) #endif /* CLASH_DETECTION */ SAVE_MODIFF = NILP (flag) ? MODIFF : 0; - + /* Set update_mode_lines only if buffer is displayed in some window. Packages like jit-lock or lazy-lock preserve a buffer's modified state by recording/restoring the state around blocks of code. @@ -1024,7 +1024,7 @@ A non-nil FLAG means mark the buffer modified. */) ++update_mode_lines; current_buffer->prevent_redisplay_optimizations_p = 1; } - + return flag; } @@ -1038,7 +1038,7 @@ state of the current buffer. Use with care. */) { #ifdef CLASH_DETECTION Lisp_Object fn; - + /* If buffer becoming modified, lock the file. If buffer becoming unmodified, unlock the file. */ @@ -1053,7 +1053,7 @@ state of the current buffer. Use with care. */) unlock_file (fn); } #endif /* CLASH_DETECTION */ - + SAVE_MODIFF = NILP (flag) ? MODIFF : 0; return flag; } @@ -1152,7 +1152,7 @@ If BUFFER is omitted or nil, some interesting buffer is returned. */) /* Consider buffers that have been seen in the selected frame before other buffers. */ - + tem = frame_buffer_list (frame); add_ons = Qnil; while (CONSP (tem)) @@ -1354,7 +1354,7 @@ with SIGHUP. */) UNGCPRO; } - + /* Make this buffer not be current. In the process, notice if this is the sole visible buffer and give up if so. */ @@ -1495,7 +1495,7 @@ record_buffer (buf) Vbuffer_alist = XCDR (Vbuffer_alist); else XSETCDR (prev, XCDR (XCDR (prev))); - + XSETCDR (link, Vbuffer_alist); Vbuffer_alist = link; @@ -1519,7 +1519,7 @@ record_buffer (buf) XCDR (frame_buffer_list (frame))); else XSETCDR (prev, XCDR (XCDR (prev))); - + XSETCDR (link, frame_buffer_list (frame)); set_frame_buffer_list (frame, link); } @@ -1549,7 +1549,7 @@ the current buffer's major mode. */) && NILP (Fget (current_buffer->major_mode, Qmode_class))) function = current_buffer->major_mode; } - + if (NILP (function) || EQ (function, Qfundamental_mode)) return Qnil; @@ -1709,7 +1709,7 @@ set_buffer_internal_1 (b) if (b->text->beg == NULL) enlarge_buffer_text (b, 0); #endif /* USE_MMAP_FOR_BUFFERS */ - + if (current_buffer == b) return; @@ -1937,7 +1937,7 @@ selected window if it is displayed there. */) else { Lisp_Object buf1; - + buf1 = Fget_buffer (buffer); if (NILP (buf1)) nsberror (buffer); @@ -2175,7 +2175,7 @@ but the contents viewed as characters do change. */) p = GAP_END_ADDR; stop = Z; } - + if (UNIBYTE_STR_AS_MULTIBYTE_P (p, stop - pos, bytes)) p += bytes, pos += bytes; else @@ -2328,7 +2328,7 @@ the normal hook `change-major-mode-hook'. */) /* Any which are supposed to be permanent, make local again, with the same values they had. */ - + for (alist = oalist; !NILP (alist); alist = XCDR (alist)) { sym = XCAR (XCAR (alist)); @@ -2390,7 +2390,7 @@ swap_out_buffer_local_variables (b) } /* Find all the overlays in the current buffer that contain position POS. - Return the number found, and store them in a vector in *VEC_PTR. + Return the number found, and store them in a vector in *VEC_PTR. Store in *LEN_PTR the size allocated for the vector. Store in *NEXT_PTR the next position after POS where an overlay starts, or ZV if there are no more overlays. @@ -2542,7 +2542,7 @@ overlays_at (pos, extend, vec_ptr, len_ptr, next_ptr, prev_ptr, change_req) /* Find all the overlays in the current buffer that overlap the range BEG-END or are empty at BEG. - Return the number found, and store them in a vector in *VEC_PTR. + Return the number found, and store them in a vector in *VEC_PTR. Store in *LEN_PTR the size allocated for the vector. Store in *NEXT_PTR the next position after POS where an overlay starts, or ZV if there are no more overlays. @@ -2691,7 +2691,7 @@ mouse_face_overlay_overlaps (overlay) int end = OVERLAY_POSITION (OVERLAY_END (overlay)); int n, i, size; Lisp_Object *v, tem; - + size = 10; v = (Lisp_Object *) alloca (size * sizeof *v); n = overlays_in (start, end, 0, &v, &size, NULL, NULL); @@ -3545,7 +3545,7 @@ rear delimiter advance when text is inserted there. */) XOVERLAY (overlay)->end = end; XOVERLAY (overlay)->plist = Qnil; - /* Put the new overlay on the wrong list. */ + /* Put the new overlay on the wrong list. */ end = OVERLAY_END (overlay); if (OVERLAY_POSITION (end) < XINT (b->overlay_center)) b->overlays_after = Fcons (overlay, b->overlays_after); @@ -3576,7 +3576,7 @@ modify_overlay (buf, start, end) } BUF_COMPUTE_UNCHANGED (buf, start, end); - + /* If this is a buffer not in the selected window, we must do other windows. */ if (buf != XBUFFER (XWINDOW (selected_window)->buffer)) @@ -3682,7 +3682,7 @@ buffer. */) Fset_marker (OVERLAY_START (overlay), beg, buffer); Fset_marker (OVERLAY_END (overlay), end, buffer); - /* Put the overlay on the wrong list. */ + /* Put the overlay on the wrong list. */ end = OVERLAY_END (overlay); if (OVERLAY_POSITION (end) < XINT (b->overlay_center)) b->overlays_after = Fcons (overlay, b->overlays_after); @@ -3712,7 +3712,7 @@ DEFUN ("delete-overlay", Fdelete_overlay, Sdelete_overlay, 1, 1, 0, b = XBUFFER (buffer); specbind (Qinhibit_quit, Qt); - + b->overlays_before = Fdelq (overlay, b->overlays_before); b->overlays_after = Fdelq (overlay, b->overlays_after); modify_overlay (b, @@ -4276,21 +4276,21 @@ buffer_slot_type_mismatch (offset) { Lisp_Object sym; char *type_name; - + switch (XINT (PER_BUFFER_TYPE (offset))) { case Lisp_Int: type_name = "integers"; break; - + case Lisp_String: type_name = "strings"; break; - + case Lisp_Symbol: type_name = "symbols"; break; - + default: abort (); } @@ -4353,7 +4353,7 @@ struct mmap_region { /* User-specified size. */ size_t nbytes_specified; - + /* Number of bytes mapped */ size_t nbytes_mapped; @@ -4444,7 +4444,7 @@ mmap_find (start, end) { struct mmap_region *r; char *s = (char *) start, *e = (char *) end; - + for (r = mmap_regions; r; r = r->next) { char *rstart = (char *) r; @@ -4478,7 +4478,7 @@ mmap_free_1 (r) r->prev->next = r->next; else mmap_regions = r->next; - + if (munmap ((POINTER_TYPE *) r, r->nbytes_mapped) == -1) { fprintf (stderr, "munmap: %s\n", emacs_strerror (errno)); @@ -4516,7 +4516,7 @@ mmap_enlarge (r, npages) else if (npages > 0) { nbytes = npages * mmap_page_size; - + /* Try to map additional pages at the end of the region. We cannot do this if the address range is already occupied by something else because mmap deletes any previous mapping. @@ -4524,7 +4524,7 @@ mmap_enlarge (r, npages) if (!MMAP_ALLOCATED_P (region_end, region_end + nbytes)) { POINTER_TYPE *p; - + p = mmap (region_end, nbytes, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, mmap_fd, 0); if (p == MAP_FAILED) @@ -4605,7 +4605,7 @@ mmap_alloc (var, nbytes) map = ROUND (nbytes + MMAP_REGION_STRUCT_SIZE, mmap_page_size); p = mmap (NULL, map, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, mmap_fd, 0); - + if (p == MAP_FAILED) { if (errno != ENOMEM) @@ -4615,7 +4615,7 @@ mmap_alloc (var, nbytes) else { struct mmap_region *r = (struct mmap_region *) p; - + r->nbytes_specified = nbytes; r->nbytes_mapped = map; r->var = var; @@ -4624,10 +4624,10 @@ mmap_alloc (var, nbytes) if (r->next) r->next->prev = r; mmap_regions = r; - + p = MMAP_USER_AREA (p); } - + return *var = p; } @@ -4643,12 +4643,12 @@ mmap_realloc (var, nbytes) size_t nbytes; { POINTER_TYPE *result; - + mmap_init (); if (*var == NULL) result = mmap_alloc (var, nbytes); - else if (nbytes == 0) + else if (nbytes == 0) { mmap_free (var); result = mmap_alloc (var, nbytes); @@ -4657,7 +4657,7 @@ mmap_realloc (var, nbytes) { struct mmap_region *r = MMAP_REGION (*var); size_t room = r->nbytes_mapped - MMAP_REGION_STRUCT_SIZE; - + if (room < nbytes) { /* Must enlarge. */ @@ -4718,7 +4718,7 @@ mmap_free (var) POINTER_TYPE **var; { mmap_init (); - + if (*var) { mmap_free_1 (MMAP_REGION (*var)); @@ -4747,11 +4747,11 @@ mmap_init () if (mmap_initialized_p) return; mmap_initialized_p = 1; - + #if MAP_ANON != 0 mmap_fd = -1; #endif - + mmap_page_size = getpagesize (); } @@ -4778,7 +4778,7 @@ alloc_buffer_text (b, nbytes) size_t nbytes; { POINTER_TYPE *p; - + BLOCK_INPUT; #if defined USE_MMAP_FOR_BUFFERS p = mmap_alloc ((POINTER_TYPE **) &b->text->beg, nbytes); @@ -4787,7 +4787,7 @@ alloc_buffer_text (b, nbytes) #else p = xmalloc (nbytes); #endif - + if (p == NULL) { UNBLOCK_INPUT; @@ -4817,7 +4817,7 @@ enlarge_buffer_text (b, delta) #else p = xrealloc (b->text->beg, nbytes); #endif - + if (p == NULL) { UNBLOCK_INPUT; @@ -4844,7 +4844,7 @@ free_buffer_text (b) #else xfree (b->text->beg); #endif - + BUF_BEG_ADDR (b) = NULL; UNBLOCK_INPUT; } @@ -4975,7 +4975,7 @@ init_buffer_once () XSETFASTINT (buffer_local_flags.cache_long_line_scans, idx); ++idx; XSETFASTINT (buffer_local_flags.category_table, idx); ++idx; XSETFASTINT (buffer_local_flags.direction_reversed, idx); ++idx; - XSETFASTINT (buffer_local_flags.buffer_file_coding_system, idx); + XSETFASTINT (buffer_local_flags.buffer_file_coding_system, idx); /* Make this one a permanent local. */ buffer_permanent_local_flags[idx++] = 1; XSETFASTINT (buffer_local_flags.left_margin_width, idx); ++idx; @@ -4991,7 +4991,7 @@ init_buffer_once () if (idx >= MAX_PER_BUFFER_VARS) abort (); last_per_buffer_idx = idx; - + Vbuffer_alist = Qnil; current_buffer = 0; all_buffers = 0; @@ -5036,13 +5036,13 @@ init_buffer () text pointers will have been set to null in the dumped Emacs. Map new memory. */ struct buffer *b; - + for (b = all_buffers; b; b = b->next) if (b->text->beg == NULL) enlarge_buffer_text (b, 0); } #endif /* USE_MMAP_FOR_BUFFERS */ - + Fset_buffer (Fget_buffer_create (build_string ("*scratch*"))); if (NILP (buffer_defaults.enable_multibyte_characters)) Fset_buffer_multibyte (Qnil); @@ -5181,17 +5181,17 @@ This is the same as (default-value 'ctl-arrow). */); &buffer_defaults.direction_reversed, doc: /* Default value of `direction_reversed' for buffers that do not override it. This is the same as (default-value 'direction-reversed). */); - + DEFVAR_LISP_NOPRO ("default-enable-multibyte-characters", &buffer_defaults.enable_multibyte_characters, doc: /* *Default value of `enable-multibyte-characters' for buffers not overriding it. This is the same as (default-value 'enable-multibyte-characters). */); - + DEFVAR_LISP_NOPRO ("default-buffer-file-coding-system", &buffer_defaults.buffer_file_coding_system, doc: /* Default value of `buffer-file-coding-system' for buffers not overriding it. This is the same as (default-value 'buffer-file-coding-system). */); - + DEFVAR_LISP_NOPRO ("default-truncate-lines", &buffer_defaults.truncate_lines, doc: /* Default value of `truncate-lines' for buffers that do not override it. @@ -5218,7 +5218,7 @@ This is the same as (default-value 'tab-width). */); This is the same as (default-value 'case-fold-search). */); #ifdef DOS_NT - DEFVAR_LISP_NOPRO ("default-buffer-file-type", + DEFVAR_LISP_NOPRO ("default-buffer-file-type", &buffer_defaults.buffer_file_type, doc: /* Default file type for buffers that do not override it. This is the same as (default-value 'buffer-file-type). @@ -5234,31 +5234,31 @@ This is the same as (default-value 'left-margin-width). */); &buffer_defaults.right_margin_width, doc: /* Default value of `right_margin_width' for buffers that don't override it. This is the same as (default-value 'right-margin-width). */); - + DEFVAR_LISP_NOPRO ("default-indicate-empty-lines", &buffer_defaults.indicate_empty_lines, doc: /* Default value of `indicate-empty-lines' for buffers that don't override it. This is the same as (default-value 'indicate-empty-lines). */); - + DEFVAR_LISP_NOPRO ("default-scroll-up-aggressively", &buffer_defaults.scroll_up_aggressively, doc: /* Default value of `scroll-up-aggressively'. This value applies in buffers that don't have their own local values. This variable is an alias for (default-value 'scroll-up-aggressively). */); - + DEFVAR_LISP_NOPRO ("default-scroll-down-aggressively", &buffer_defaults.scroll_down_aggressively, doc: /* Default value of `scroll-down-aggressively'. This value applies in buffers that don't have their own local values. This variable is an alias for (default-value 'scroll-down-aggressively). */); - + DEFVAR_PER_BUFFER ("header-line-format", ¤t_buffer->header_line_format, Qnil, doc: /* Analogous to `mode-line-format', but controls the header line. The header line appears, optionally, at the top of a window; the mode line appears at the bottom. */); - + DEFVAR_PER_BUFFER ("mode-line-format", ¤t_buffer->mode_line_format, Qnil, doc: /* Template for displaying mode line for current buffer. @@ -5269,7 +5269,7 @@ For a symbol, its value is used (but it is ignored if t or nil). A string appearing directly as the value of a symbol is processed verbatim in that the %-constructs below are not recognized. Note that unless the symbol is marked as a `risky-local-variable', all - properties in any strings, as well as all :eval and :propertize forms + properties in any strings, as well as all :eval and :propertize forms in the value of that symbol will be ignored. For a list of the form `(:eval FORM)', FORM is evaluated and the result is used as a mode line element. Be careful--FORM should not load any files, @@ -5506,18 +5506,18 @@ See also the functions `display-table-slot' and `set-display-table-slot'. */); Qnil, doc: /* *Width of left marginal area for display of a buffer. A value of nil means no marginal area. */); - + DEFVAR_PER_BUFFER ("right-margin-width", ¤t_buffer->right_margin_width, Qnil, doc: /* *Width of right marginal area for display of a buffer. A value of nil means no marginal area. */); - + DEFVAR_PER_BUFFER ("indicate-empty-lines", ¤t_buffer->indicate_empty_lines, Qnil, doc: /* *Visually indicate empty lines after the buffer end. If non-nil, a bitmap is displayed in the left fringe of a window on window-systems. */); - + DEFVAR_PER_BUFFER ("scroll-up-aggressively", ¤t_buffer->scroll_up_aggressively, Qnil, doc: /* How far to scroll windows upward. @@ -5530,7 +5530,7 @@ case that you moved off with C-f means scrolling just one line. 1.0 means point goes at the top, so that in that simple case, the window window scrolls by a full window height. Meaningful values are between 0.0 and 1.0, inclusive. */); - + DEFVAR_PER_BUFFER ("scroll-down-aggressively", ¤t_buffer->scroll_down_aggressively, Qnil, doc: /* How far to scroll windows downward. @@ -5543,7 +5543,7 @@ case that you moved off with C-b means scrolling just one line. 1.0 means point goes at the bottom, so that in that simple case, the window window scrolls by a full window height. Meaningful values are between 0.0 and 1.0, inclusive. */); - + /*DEFVAR_LISP ("debug-check-symbol", &Vcheck_symbol, "Don't ask."); */ diff --git a/src/buffer.h b/src/buffer.h index 890cabe24ec..7dd1e967afd 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -25,52 +25,52 @@ Boston, MA 02111-1307, USA. */ /* These macros come in pairs, one for the char position and one for the byte position. */ -/* Position of beginning of buffer. */ +/* Position of beginning of buffer. */ #define BEG (1) #define BEG_BYTE (1) -/* Position of beginning of accessible range of buffer. */ +/* Position of beginning of accessible range of buffer. */ #define BEGV (current_buffer->begv) #define BEGV_BYTE (current_buffer->begv_byte) /* Position of point in buffer. The "+ 0" makes this - not an l-value, so you can't assign to it. Use SET_PT instead. */ + not an l-value, so you can't assign to it. Use SET_PT instead. */ #define PT (current_buffer->pt + 0) #define PT_BYTE (current_buffer->pt_byte + 0) -/* Position of gap in buffer. */ +/* Position of gap in buffer. */ #define GPT (current_buffer->text->gpt) #define GPT_BYTE (current_buffer->text->gpt_byte) -/* Position of end of accessible range of buffer. */ +/* Position of end of accessible range of buffer. */ #define ZV (current_buffer->zv) #define ZV_BYTE (current_buffer->zv_byte) -/* Position of end of buffer. */ +/* Position of end of buffer. */ #define Z (current_buffer->text->z) #define Z_BYTE (current_buffer->text->z_byte) /* Macros for the addresses of places in the buffer. */ -/* Address of beginning of buffer. */ +/* Address of beginning of buffer. */ #define BEG_ADDR (current_buffer->text->beg) -/* Address of beginning of accessible range of buffer. */ +/* Address of beginning of accessible range of buffer. */ #define BEGV_ADDR (BYTE_POS_ADDR (current_buffer->begv_byte)) -/* Address of point in buffer. */ +/* Address of point in buffer. */ #define PT_ADDR (BYTE_POS_ADDR (current_buffer->pt_byte)) -/* Address of beginning of gap in buffer. */ +/* Address of beginning of gap in buffer. */ #define GPT_ADDR (current_buffer->text->beg + current_buffer->text->gpt_byte - 1) /* Address of end of gap in buffer. */ #define GAP_END_ADDR (current_buffer->text->beg + current_buffer->text->gpt_byte + current_buffer->text->gap_size - 1) -/* Address of end of accessible range of buffer. */ +/* Address of end of accessible range of buffer. */ #define ZV_ADDR (BYTE_POS_ADDR (current_buffer->zv_byte)) -/* Address of end of buffer. */ +/* Address of end of buffer. */ #define Z_ADDR (current_buffer->text->beg + current_buffer->text->gap_size + current_buffer->text->z_byte - 1) /* Size of gap. */ @@ -101,27 +101,27 @@ Boston, MA 02111-1307, USA. */ /* Similar macros to operate on a specified buffer. Note that many of these evaluate the buffer argument more than once. */ -/* Position of beginning of buffer. */ +/* Position of beginning of buffer. */ #define BUF_BEG(buf) (1) #define BUF_BEG_BYTE(buf) (1) -/* Position of beginning of accessible range of buffer. */ +/* Position of beginning of accessible range of buffer. */ #define BUF_BEGV(buf) ((buf)->begv) #define BUF_BEGV_BYTE(buf) ((buf)->begv_byte) -/* Position of point in buffer. */ +/* Position of point in buffer. */ #define BUF_PT(buf) ((buf)->pt) #define BUF_PT_BYTE(buf) ((buf)->pt_byte) -/* Position of gap in buffer. */ +/* Position of gap in buffer. */ #define BUF_GPT(buf) ((buf)->text->gpt) #define BUF_GPT_BYTE(buf) ((buf)->text->gpt_byte) -/* Position of end of accessible range of buffer. */ +/* Position of end of accessible range of buffer. */ #define BUF_ZV(buf) ((buf)->zv) #define BUF_ZV_BYTE(buf) ((buf)->zv_byte) -/* Position of end of buffer. */ +/* Position of end of buffer. */ #define BUF_Z(buf) ((buf)->text->z) #define BUF_Z_BYTE(buf) ((buf)->text->z_byte) @@ -197,7 +197,7 @@ Boston, MA 02111-1307, USA. */ } \ } \ while (0) - + /* Macros to set PT in the current buffer, or another buffer. */ @@ -336,14 +336,14 @@ extern int _fetch_multibyte_char_len; or converting between byte positions and addresses, in a specified buffer. */ -/* Return the address of character at byte position POS in buffer BUF. +/* Return the address of character at byte position POS in buffer BUF. Note that both arguments can be computed more than once. */ #define BUF_BYTE_ADDRESS(buf, pos) \ ((buf)->text->beg + (pos) - 1 \ + ((pos) >= (buf)->text->gpt_byte ? (buf)->text->gap_size : 0)) -/* Return the address of character at char position POS in buffer BUF. +/* Return the address of character at char position POS in buffer BUF. Note that both arguments can be computed more than once. */ #define BUF_CHAR_ADDRESS(buf, pos) \ @@ -396,7 +396,7 @@ struct buffer_text e.g. happen when malloc is called. So, don't pass a pointer into a buffer's text to functions that malloc. */ unsigned char *beg; - + int gpt; /* Char pos of gap in buffer. */ int z; /* Char pos of end of buffer. */ int gpt_byte; /* Byte pos of gap in buffer. */ @@ -487,7 +487,7 @@ struct buffer this means the variable is always local in all buffers. */ #define MAX_PER_BUFFER_VARS 50 char local_flags[MAX_PER_BUFFER_VARS]; - + /* Set to the modtime of the visited file when read or written. -1 means visited file was nonexistent. 0 means visited file modtime unknown; in no case complain @@ -579,7 +579,7 @@ struct buffer So we copy it around in set_buffer_internal. This comes before `name' because it is marked in a special way. */ Lisp_Object undo_list; - + /* Analogous to mode_line_format for the line displayed at the top of windows. Nil means don't display that line. */ Lisp_Object header_line_format; @@ -712,7 +712,7 @@ struct buffer /* Incremented each time the buffer is displayed in a window. */ Lisp_Object display_count; - + /* Widths of left and right marginal areas for windows displaying this buffer. */ Lisp_Object left_margin_width, right_margin_width; @@ -729,7 +729,7 @@ struct buffer that point ends up this number of lines from the top of the window. Nil means that scrolling method isn't used. */ Lisp_Object scroll_up_aggressively; - + /* If scrolling the display because point is above the top of a window showing this buffer, try to choose a window start so that point ends up this number of lines from the bottom of the diff --git a/src/callint.c b/src/callint.c index 4552b2274b1..6ce9fb12387 100644 --- a/src/callint.c +++ b/src/callint.c @@ -743,7 +743,7 @@ supply if the command inquires which events were used to invoke it. */) args[i] = Qnil; varies[i] = -1; } - else + else { args[i] = Fread_non_nil_coding_system (build_string (callint_message)); @@ -820,7 +820,7 @@ supply if the command inquires which events were used to invoke it. */) UNGCPRO; return unbind_to (speccount, val); } -} +} DEFUN ("prefix-numeric-value", Fprefix_numeric_value, Sprefix_numeric_value, 1, 1, 0, @@ -831,7 +831,7 @@ Its numeric meaning is what you would get from `(interactive "p")'. */) Lisp_Object raw; { Lisp_Object val; - + if (NILP (raw)) XSETFASTINT (val, 1); else if (EQ (raw, Qminus)) diff --git a/src/callproc.c b/src/callproc.c index d1e62de0705..0e9b51920e5 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -253,7 +253,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) #ifndef subprocesses /* Without asynchronous processes we cannot have BUFFER == 0. */ - if (nargs >= 3 + if (nargs >= 3 && (INTEGERP (CONSP (args[2]) ? XCAR (args[2]) : args[2]))) error ("Operating system cannot handle asynchronous subprocesses"); #endif /* subprocesses */ @@ -339,7 +339,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) CHECK_BUFFER (buffer); } } - else + else buffer = Qnil; /* Make sure that the child will be able to chdir to the current @@ -431,7 +431,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) *tempfile = '\0'; } dostounix_filename (tempfile); - if (*tempfile == '\0' || tempfile[strlen (tempfile) - 1] != '/') + if (*tempfile == '\0' || tempfile[strlen (tempfile) - 1] != '/') strcat (tempfile, "/"); strcat (tempfile, "detmp.XXX"); mktemp (tempfile); @@ -545,7 +545,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) code does not handle passing the environment to the synchronous Mac subprocess. */ char *infn, *outfn, *errfn, *currdn; - + /* close these files so subprocess can write to them */ close (outfilefd); if (fd_error != outfilefd) @@ -780,7 +780,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) /* Now NREAD is the total amount of data in the buffer. */ immediate_quit = 0; - + if (!NILP (buffer)) { if (! CODING_MAY_REQUIRE_DECODING (&process_coding)) @@ -793,7 +793,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) repeat_decoding: size = decoding_buffer_size (&process_coding, nread); decoding_buf = (char *) xmalloc (size); - + /* We can't use the macro CODING_REQUIRE_DETECTION because it always returns nonzero if the coding system requires EOL detection. Here, we have to @@ -807,10 +807,10 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) } if (process_coding.cmp_data) process_coding.cmp_data->char_offset = PT; - + decode_coding (&process_coding, bufptr, decoding_buf, nread, size); - + if (display_on_the_fly && saved_coding.type == coding_type_undecided && process_coding.type != coding_type_undecided) @@ -825,7 +825,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) carryover = nread; continue; } - + if (process_coding.produced > 0) insert_1_both (decoding_buf, process_coding.produced_char, process_coding.produced, 0, 1, 0); @@ -840,9 +840,9 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) /* CRs have been replaced with LFs. Undo that in the text inserted above. */ unsigned char *p; - + move_gap_both (PT, PT_BYTE); - + p = BYTE_POS_ADDR (pt_byte_orig); for (; p < GPT_ADDR; ++p) if (*p == '\n') @@ -858,7 +858,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) old_pt = PT; old_pt_byte = PT_BYTE; nCR = 0; - + for (bytepos = PT_BYTE - 1; bytepos >= pt_byte_orig; --bytepos) @@ -882,13 +882,13 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS) */) coding = AREF (eol_type, CODING_EOL_LF); else coding = saved_coding.symbol; - + process_coding.symbol = coding; process_coding.eol_type = CODING_EOL_LF; process_coding.mode &= ~CODING_MODE_INHIBIT_INCONSISTENT_EOL; } - + nread -= process_coding.consumed; carryover = nread; if (carryover > 0) @@ -1106,7 +1106,7 @@ usage: (call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &r unbind_to (count1, Qnil); } - /* Note that Fcall_process takes care of binding + /* Note that Fcall_process takes care of binding coding-system-for-read. */ record_unwind_protect (delete_temp_file, filename_string); @@ -1144,7 +1144,7 @@ static int relocate_fd (); of environ around the vfork and the call to this function. SET_PGRP is nonzero if we should put the subprocess into a separate - process group. + process group. CURRENT_DIR is an elisp string giving the path of the current directory the subprocess should have. Since we can't really signal @@ -1467,7 +1467,7 @@ egetenv (var) #endif /* not VMS */ /* This is run before init_cmdargs. */ - + void init_callproc_1 () { @@ -1475,7 +1475,7 @@ init_callproc_1 () char *doc_dir = egetenv ("EMACSDOC"); Vdata_directory - = Ffile_name_as_directory (build_string (data_dir ? data_dir + = Ffile_name_as_directory (build_string (data_dir ? data_dir : PATH_DATA)); Vdoc_directory = Ffile_name_as_directory (build_string (doc_dir ? doc_dir @@ -1494,7 +1494,7 @@ void init_callproc () { char *data_dir = egetenv ("EMACSDATA"); - + register char * sh; Lisp_Object tempdir; @@ -1512,7 +1512,7 @@ init_callproc () Vexec_path = Fcons (tem, Vexec_path); Vexec_path = nconc2 (decode_env_path ("PATH", ""), Vexec_path); } - + Vexec_directory = Ffile_name_as_directory (tem); #endif /* not DOS_NT */ diff --git a/src/casetab.c b/src/casetab.c index 6056af54682..306c7df3281 100644 --- a/src/casetab.c +++ b/src/casetab.c @@ -71,7 +71,7 @@ check_case_table (obj) while (tem = Fcase_table_p (obj), NILP (tem)) obj = wrong_type_argument (Qcase_table_p, obj); return (obj); -} +} DEFUN ("current-case-table", Fcurrent_case_table, Scurrent_case_table, 0, 0, 0, doc: /* Return the case table of the current buffer. */) diff --git a/src/category.c b/src/category.c index c7ae2ccf90d..4846ae8f7f6 100644 --- a/src/category.c +++ b/src/category.c @@ -167,7 +167,7 @@ check_category_table (table) while (tem = Fcategory_table_p (table), NILP (tem)) table = wrong_type_argument (Qcategory_table_p, table); return table; -} +} DEFUN ("category-table", Fcategory_table, Scategory_table, 0, 0, 0, doc: /* Return the current category table. @@ -377,7 +377,7 @@ then delete CATEGORY from the category set instead of adding it. */) if (NILP (CATEGORY_DOCSTRING (table, XFASTINT (category)))) error ("Undefined category: %c", XFASTINT (category)); - + set_value = NILP (reset) ? Qt : Qnil; if (c < CHAR_TABLE_SINGLE_BYTE_SLOTS) @@ -534,7 +534,7 @@ init_category_once () Fput (Qcategory_table, Qchar_table_extra_slots, make_number (2)); Vstandard_category_table = Fmake_char_table (Qcategory_table, Qnil); - /* Set a category set which contains nothing to the default. */ + /* Set a category set which contains nothing to the default. */ XCHAR_TABLE (Vstandard_category_table)->defalt = MAKE_CATEGORY_SET; Fset_char_table_extra_slot (Vstandard_category_table, make_number (0), Fmake_vector (make_number (95), Qnil)); diff --git a/src/category.h b/src/category.h index 3b2e609bdd3..d48d99df805 100644 --- a/src/category.h +++ b/src/category.h @@ -109,7 +109,7 @@ extern Lisp_Object _temp_category_set; #else #define CATEGORY_SET(c) \ Faref (current_buffer->category_table, make_number (c)) -#endif +#endif /* Return the doc string of CATEGORY in category table TABLE. */ #define CATEGORY_DOCSTRING(table, category) \ diff --git a/src/ccl.c b/src/ccl.c index 3b8eb62db9a..e82eea542c2 100644 --- a/src/ccl.c +++ b/src/ccl.c @@ -426,7 +426,7 @@ Lisp_Object Vtranslation_hash_table_vector; extended_command (rrr,RRR,Rrr,ARGS) */ -/* +/* Here after, Extended CCL Instructions. Bit length of extended command is 14. Therefore, the instruction code range is 0..16384(0x3fff). @@ -484,7 +484,7 @@ Lisp_Object Vtranslation_hash_table_vector; 3:MAP-ID1 4:MAP-ID2 ... - */ + */ /* Map the code in reg[rrr] by MAPs starting from the Nth (N = reg[RRR]) map. @@ -562,7 +562,7 @@ Lisp_Object Vtranslation_hash_table_vector; where STARTPOINT is an offset to be used for indexing a map, ENDPOINT is a maximum index number of a map, - VAL and VALn is a number, nil, t, or lambda. + VAL and VALn is a number, nil, t, or lambda. Valid index range of a map of type (a) is: STARTPOINT <= index < STARTPOINT + map_size - 1 @@ -862,7 +862,7 @@ struct ccl_prog_stack int ic; /* Instruction Counter. */ }; -/* For the moment, we only support depth 256 of stack. */ +/* For the moment, we only support depth 256 of stack. */ static struct ccl_prog_stack ccl_prog_stack_struct[256]; int @@ -1096,7 +1096,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) } CCL_INVALID_CMD; } - + ccl_prog_stack_struct[stack_idx].ccl_prog = ccl_prog; ccl_prog_stack_struct[stack_idx].ic = ic; stack_idx++; @@ -1260,7 +1260,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) src++; goto ccl_read_multibyte_character_suspend; } - + if (!ccl->multibyte) { int bytes; @@ -1274,7 +1274,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) i = *src++; if (i == '\n' && ccl->eol_type != CODING_EOL_LF) { - /* We are encoding. */ + /* We are encoding. */ if (ccl->eol_type == CODING_EOL_CRLF) { if (ccl->cr_consumed) @@ -1399,7 +1399,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) SPLIT_CHAR (op, reg[RRR], i, j); if (j != -1) i = (i << 7) | j; - + reg[rrr] = i; break; @@ -1411,14 +1411,14 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) SPLIT_CHAR (op, reg[RRR], i, j); if (j != -1) i = (i << 7) | j; - + reg[rrr] = i; break; case CCL_LookupIntConstTbl: op = XINT (ccl_prog[ic]); /* table */ ic++; - { + { struct Lisp_Hash_Table *h = GET_HASH_TABLE (op); op = hash_lookup (h, make_number (reg[RRR]), NULL); @@ -1443,7 +1443,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) op = XINT (ccl_prog[ic]); /* table */ ic++; CCL_MAKE_CHAR (reg[RRR], reg[rrr], i); - { + { struct Lisp_Hash_Table *h = GET_HASH_TABLE (op); op = hash_lookup (h, make_number (i), NULL); @@ -1517,7 +1517,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) else continue; } - else + else continue; if (NILP (content)) @@ -1553,7 +1553,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) ic = fin_ic; } break; - + case CCL_MapMultiple: { Lisp_Object map, content, attrib, value; @@ -1640,7 +1640,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) } } map_vector_size = ASIZE (Vcode_conversion_map_vector); - + do { for (;map_set_rest_length > 0;i++, ic++, map_set_rest_length--) { @@ -1690,7 +1690,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) else continue; } - else + else continue; if (NILP (content)) @@ -1808,7 +1808,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) } } break; - + default: CCL_INVALID_CMD; } @@ -1881,7 +1881,7 @@ ccl_driver (ccl, source, destination, src_bytes, dst_bytes, consumed) bcopy (msg, dst, msglen); dst += msglen; } - + if (ccl->status == CCL_STAT_INVALID_CMD) { #if 0 /* If the remaining bytes contain 0x80..0x9F, copying them @@ -2317,7 +2317,7 @@ Return index number of the registered map. */) CHECK_SYMBOL (symbol); CHECK_VECTOR (map); - + for (i = 0; i < len; i++) { Lisp_Object slot = AREF (Vcode_conversion_map_vector, i); diff --git a/src/ccl.h b/src/ccl.h index ed89bf5e6d8..f5344ff0d07 100644 --- a/src/ccl.h +++ b/src/ccl.h @@ -44,7 +44,7 @@ struct ccl_program { int private_state; /* CCL instruction may use this for private use, mainly for saving internal states on suspending. - This variable is set to 0 when ccl is + This variable is set to 0 when ccl is set up. */ int last_block; /* Set to 1 while processing the last block. */ diff --git a/src/charset.c b/src/charset.c index a0ab20c26a7..af5c6ff7068 100644 --- a/src/charset.c +++ b/src/charset.c @@ -210,7 +210,7 @@ char_to_string_1 (c, str) /* If C still has any modifier bits, just ignore it. */ c &= ~CHAR_MODIFIER_MASK; } - + if (SINGLE_BYTE_CHAR_P (c)) { if (ASCII_BYTE_P (c) || c >= 0xA0) @@ -345,7 +345,7 @@ char_printable_p (c) return 0; else if (c >= MAX_CHAR) return 0; - + SPLIT_CHAR (c, charset, c1, c2); if (! CHARSET_DEFINED_P (charset)) return 0; @@ -817,7 +817,7 @@ find_charset_in_text (ptr, nchars, nbytes, charsets, table) { maskbits |= (*ptr < 0x80 ? 1 : *ptr < 0xA0 ? 2 : 4); ptr++; - } + } if (maskbits & 1) charsets[CHARSET_ASCII] = 1; @@ -1548,7 +1548,7 @@ str_as_multibyte (str, len, nbytes, nchars) { while (n--) *to++ = *p++; - } + } else { *to++ = LEADING_CODE_8_BIT_CONTROL; @@ -1600,7 +1600,7 @@ str_to_multibyte (str, len, bytes) endp = str + len; safe_bcopy (p, endp - bytes, bytes); p = endp - bytes; - while (p < endp) + while (p < endp) { if (*p < 0x80 || *p >= 0xA0) *to++ = *p++; @@ -1624,7 +1624,7 @@ str_as_unibyte (str, bytes) while (p < endp && *p != LEADING_CODE_8_BIT_CONTROL) p++; to = p; - while (p < endp) + while (p < endp) { if (*p == LEADING_CODE_8_BIT_CONTROL) *to++ = *(p + 1) - 0x20, p += 2; @@ -224,7 +224,7 @@ calccost (srcy, srcx, dsty, dstx, doit) if (doit) while (--deltay >= 0) tputs (p, 1, cmputc); -x: +x: if ((deltax = dstx - srcx) == 0) goto done; if (deltax < 0) { @@ -235,7 +235,7 @@ x: if (Wcm.cc_tab >= BIG || !Wcm.cm_usetabs) goto olddelta; /* forget it! */ - /* + /* * ntabs is # tabs towards but not past dstx; n2tabs is one more * (ie past dstx), but this is only valid if that is not past the * right edge of the screen. We can check that at the same time @@ -251,7 +251,7 @@ x: if (tab2x >= Wcm.cm_cols) /* too far (past edge) */ n2tabs = 0; - /* + /* * Now set tabcost to the cost for using ntabs, and c to the cost * for using n2tabs, then pick the minimum. */ @@ -270,7 +270,7 @@ x: if (tabcost >= BIG) /* caint use tabs */ goto newdelta; - /* + /* * See if tabcost is less than just moving right */ @@ -282,20 +282,20 @@ x: srcx = tabx; } - /* + /* * Now might as well just recompute the delta. */ -newdelta: +newdelta: if ((deltax = dstx - srcx) == 0) goto done; -olddelta: +olddelta: if (deltax > 0) p = Wcm.cm_right, c = Wcm.cc_right; else p = Wcm.cm_left, c = Wcm.cc_left, deltax = -deltax; -dodelta: +dodelta: if (c == BIG) { /* caint get thar from here */ fail: if (doit) @@ -306,7 +306,7 @@ fail: if (doit) while (--deltax >= 0) tputs (p, 1, cmputc); -done: +done: return totalcost; } @@ -379,7 +379,7 @@ cmgoto (row, col) dcm = Wcm.cm_abs; } - /* + /* * In the following comparison, the = in <= is because when the costs * are the same, it looks nicer (I think) to move directly there. */ @@ -400,17 +400,17 @@ cmgoto (row, col) switch (use) { - case USEHOME: + case USEHOME: tputs (Wcm.cm_home, 1, cmputc); curY = 0, curX = 0; break; - case USELL: + case USELL: tputs (Wcm.cm_ll, 1, cmputc); curY = Wcm.cm_rows - 1, curX = 0; break; - case USECR: + case USECR: tputs (Wcm.cm_cr, 1, cmputc); if (Wcm.cm_autolf) curY++; diff --git a/src/coding.c b/src/coding.c index fb7cd0cd9db..9dde90af15e 100644 --- a/src/coding.c +++ b/src/coding.c @@ -6514,7 +6514,7 @@ find_safe_codings_2 (p, pend, safe_codings, work_table, single_byte_char_found) int c, len, i; Lisp_Object val, ch; Lisp_Object prev, tail; - + while (p < pend) { c = STRING_CHAR_AND_LENGTH (p, pend - p, len); @@ -6635,7 +6635,7 @@ DEFUN ("find-coding-systems-region-internal-2", else /* ... and append generic coding systems. */ val = Fcopy_sequence (XCAR (Vcoding_system_safe_chars)); - + for (; CONSP (safe_codings); safe_codings = XCDR (safe_codings)) val = Fcons (XCAR (XCAR (safe_codings)), val); safe_codings = val; diff --git a/src/composite.c b/src/composite.c index 7bd50a23396..cc05a869126 100644 --- a/src/composite.c +++ b/src/composite.c @@ -249,7 +249,7 @@ get_composition_id (charpos, bytepos, nchars, prop, string) } /* This composition is a new one. We must register it. */ - + /* Check if we have sufficient memory to store this information. */ if (composition_table_size == 0) { @@ -485,7 +485,7 @@ update_compositions (from, to, check_mask) if (inhibit_modification_hooks) return; - + /* If FROM and TO are not in a valid range, do nothing. */ if (! (BEGV <= from && from <= to && to <= ZV)) return; @@ -754,7 +754,7 @@ for the composition. See `compose-string' for more detail. */) } DEFUN ("find-composition-internal", Ffind_composition_internal, - Sfind_composition_internal, 4, 4, 0, + Sfind_composition_internal, 4, 4, 0, doc: /* Internal use only. Return information about composition at or nearest to position POS. @@ -775,7 +775,7 @@ See `find-composition' for more detail. */) } else end = -1; - + if (!NILP (string)) { CHECK_STRING (string); @@ -839,7 +839,7 @@ syms_of_composite () { Lisp_Object args[6]; extern Lisp_Object QCsize; - + args[0] = QCtest; args[1] = Qequal; args[2] = QCweakness; diff --git a/src/composite.h b/src/composite.h index ce47aee7098..620d5d4ce28 100644 --- a/src/composite.h +++ b/src/composite.h @@ -147,7 +147,7 @@ extern Lisp_Object composition_temp; When a composition is assigned an ID number (by get_composition_id), this structure is allocated for the - composition and linked in composition_table[ID]. + composition and linked in composition_table[ID]. Identical compositions appearing at different places have the same ID, and thus share the same instance of this structure. */ diff --git a/src/config.in b/src/config.in index 5a22b7c3c50..c86215d823f 100644 --- a/src/config.in +++ b/src/config.in @@ -22,7 +22,7 @@ Boston, MA 02111-1307, USA. */ /* No code in Emacs #includes config.h twice, but some bits of code - intended to work with other packages as well (like gmalloc.c) + intended to work with other packages as well (like gmalloc.c) think they can include it as many times as they like. */ #ifndef EMACS_CONFIG_H #define EMACS_CONFIG_H @@ -999,7 +999,7 @@ typedef unsigned size_t; #ifdef __GNUC__ # ifndef GC_SETJMP_WORKS /* GC_SETJMP_WORKS is nearly always appropriate for GCC -- - see NON_SAVING_SETJMP in the target descriptions. */ + see NON_SAVING_SETJMP in the target descriptions. */ /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k, SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86. Fixme: Deal with ns32k, SVR3. */ @@ -1022,7 +1022,7 @@ typedef unsigned size_t; #endif /* EMACS_CONFIG_H */ -/* +/* Local Variables: mode: c End: diff --git a/src/dired.c b/src/dired.c index e1aca66ba16..54f96ba82f1 100644 --- a/src/dired.c +++ b/src/dired.c @@ -130,7 +130,7 @@ directory_files_internal_unwind (dh) return Qnil; } -/* Function shared by Fdirectory_files and Fdirectory_files_and_attributes. +/* Function shared by Fdirectory_files and Fdirectory_files_and_attributes. When ATTRS is zero, return a list of directory filenames; when non-zero, return a list of directory filenames and their attributes. */ @@ -187,7 +187,7 @@ directory_files_internal (directory, full, match, nosort, attrs) have to make sure it gets closed, and setting up an unwind_protect to do so would be a pain. */ retry: - + d = opendir (SDATA (dirfilename)); if (d == NULL) report_file_error ("Opening directory", Fcons (directory, Qnil)); @@ -219,7 +219,7 @@ directory_files_internal (directory, full, match, nosort, attrs) if (dp == NULL && errno == EAGAIN) continue; #endif - + if (dp == NULL) break; @@ -233,7 +233,7 @@ directory_files_internal (directory, full, match, nosort, attrs) len = NAMLEN (dp); name = finalname = make_unibyte_string (dp->d_name, len); GCPRO2 (finalname, name); - + /* Note: ENCODE_FILE can GC; it should protect its argument, though. */ name = DECODE_FILE (name); @@ -261,24 +261,24 @@ directory_files_internal (directory, full, match, nosort, attrs) fullname = make_uninit_multibyte_string (nbytes, nbytes); bcopy (SDATA (directory), SDATA (fullname), directory_nbytes); - + if (needsep) SSET (fullname, directory_nbytes, DIRECTORY_SEP); - + bcopy (SDATA (name), SDATA (fullname) + directory_nbytes + needsep, len); - + nchars = chars_in_text (SDATA (fullname), nbytes); /* Some bug somewhere. */ if (nchars > nbytes) abort (); - + STRING_SET_CHARS (fullname, nchars); if (nchars == nbytes) STRING_SET_UNIBYTE (fullname); - + finalname = fullname; } else @@ -328,7 +328,7 @@ directory_files_internal (directory, full, match, nosort, attrs) if (NILP (nosort)) list = Fsort (Fnreverse (list), attrs ? Qfile_attributes_lessp : Qstring_lessp); - + RETURN_UNGCPRO (list); } @@ -686,7 +686,7 @@ file_name_completion (file, dirname, all_flag, ver_flag) /* This tests that the current file is an exact match but BESTMATCH is not (it is too long). */ if ((matchsize == len - && matchsize + !!directoryp + && matchsize + !!directoryp < SCHARS (bestmatch)) || /* If there is no exact match ignoring case, @@ -699,7 +699,7 @@ file_name_completion (file, dirname, all_flag, ver_flag) either both or neither are exact. */ (((matchsize == len) == - (matchsize + !!directoryp + (matchsize + !!directoryp == SCHARS (bestmatch))) && !bcmp (p2, SDATA (encoded_file), SCHARS (encoded_file)) && bcmp (p1, SDATA (encoded_file), SCHARS (encoded_file)))) diff --git a/src/dispextern.h b/src/dispextern.h index ec5e16b2bca..48732088e28 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -112,7 +112,7 @@ extern int trace_redisplay_p; #endif /* GLYPH_DEBUG == 0 */ - + /*********************************************************************** Text positions @@ -121,7 +121,7 @@ extern int trace_redisplay_p; /* Starting with Emacs 20.3, characters from strings and buffers have both a character and a byte position associated with them. The following structure holds such a pair of positions. */ - + struct text_pos { /* Character position. */ @@ -177,7 +177,7 @@ struct text_pos #define SET_MARKER_FROM_TEXT_POS(MARKER, POS) \ set_marker_both ((MARKER), Qnil, CHARPOS ((POS)), BYTEPOS ((POS))) - + /* Value is non-zero if character and byte positions of POS1 and POS2 are equal. */ @@ -224,7 +224,7 @@ struct display_pos enum glyph_type { /* Glyph describes a character. */ - CHAR_GLYPH, + CHAR_GLYPH, /* Glyph describes a composition sequence. */ COMPOSITE_GLYPH, @@ -255,7 +255,7 @@ struct glyph int charpos; /* Lisp object source of this glyph. Currently either a buffer or - a string, if the glyph was produced from characters which came from + a string, if the glyph was produced from characters which came from a buffer or a string; or 0 if the glyph was inserted by redisplay for its own purposes such as padding. */ Lisp_Object object; @@ -334,7 +334,7 @@ struct glyph unsigned ascent : 16; } stretch; - + /* Used to compare all bit-fields above in one step. */ unsigned val; } u; @@ -347,7 +347,7 @@ struct glyph (GLYPH_FROM_CHAR_GLYPH ((GLYPH)) == SPACEGLYPH) /* Are glyphs *X and *Y displayed equal? */ - + #define GLYPH_EQUAL_P(X, Y) \ ((X)->type == (Y)->type \ && (X)->u.val == (Y)->u.val \ @@ -367,7 +367,7 @@ struct glyph /* Fill a character glyph GLYPH. CODE, FACE_ID, PADDING_P correspond to the bits defined for the typedef `GLYPH' in lisp.h. */ - + #define SET_CHAR_GLYPH(GLYPH, CODE, FACE_ID, PADDING_P) \ do \ { \ @@ -379,7 +379,7 @@ struct glyph /* Fill a character type glyph GLYPH from a glyph typedef FROM as defined in lisp.h. */ - + #define SET_CHAR_GLYPH_FROM_GLYPH(GLYPH, FROM) \ SET_CHAR_GLYPH ((GLYPH), \ FAST_GLYPH_CHAR ((FROM)), \ @@ -389,14 +389,14 @@ struct glyph /* Construct a glyph code from a character glyph GLYPH. If the character is multibyte, return -1 as we can't use glyph table for a multibyte character. */ - + #define GLYPH_FROM_CHAR_GLYPH(GLYPH) \ ((GLYPH).u.ch < 256 \ ? ((GLYPH).u.ch | ((GLYPH).face_id << CHARACTERBITS)) \ : -1) /* Is GLYPH a padding glyph? */ - + #define CHAR_GLYPH_PADDING_P(GLYPH) (GLYPH).padding_p @@ -557,7 +557,7 @@ enum glyph_row_area Each row is partitioned into three areas. The start and end of each area is recorded in a pointer as shown below. - + +--------------------+-------------+---------------------+ | left margin area | text area | right margin area | +--------------------+-------------+---------------------+ @@ -565,13 +565,13 @@ enum glyph_row_area glyphs[LEFT_MARGIN_AREA] glyphs[RIGHT_MARGIN_AREA] | | glyphs[TEXT_AREA] | - glyphs[LAST_AREA] + glyphs[LAST_AREA] Rows in frame matrices reference glyph memory allocated in a frame glyph pool (see the description of struct glyph_pool). Rows in window matrices on frames having frame matrices reference slices of the glyphs of corresponding rows in the frame matrix. - + Rows in window matrices on frames having no frame matrices point to glyphs allocated from the heap via xmalloc; glyphs[LEFT_MARGIN_AREA] is the start address of the allocated @@ -655,7 +655,7 @@ struct glyph_row /* 1 means the overlay arrow is on this line. */ unsigned overlay_arrow_p : 1; - + /* 1 means that this row displays a continued line, i.e. it has a continuation mark at the right side. */ unsigned continued_p : 1; @@ -695,7 +695,7 @@ struct glyph_row of more than one glyph. Some glyphs have been put in this row, the rest are put in rows below this one. */ unsigned ends_in_middle_of_char_p : 1; - + /* 1 means this line starts in the middle of a character consisting of more than one glyph. Some glyphs have been put in the previous row, the rest are put in this row. */ @@ -726,7 +726,7 @@ struct glyph_row *matrix_row P_ ((struct glyph_matrix *, int)); #define MATRIX_ROW(MATRIX, ROW) ((MATRIX)->rows + (ROW)) #endif -/* Return a pointer to the row reserved for the mode line in MATRIX. +/* Return a pointer to the row reserved for the mode line in MATRIX. Row MATRIX->nrows - 1 is always reserved for the mode line. */ #define MATRIX_MODE_LINE_ROW(MATRIX) \ @@ -751,29 +751,29 @@ struct glyph_row *matrix_row P_ ((struct glyph_matrix *, int)); (MATRIX_ROW ((MATRIX), (ROW))->glyphs[TEXT_AREA]) /* Return the number of used glyphs in the text area of a row. */ - + #define MATRIX_ROW_USED(MATRIX, ROW) \ (MATRIX_ROW ((MATRIX), (ROW))->used[TEXT_AREA]) /* Return the character/ byte position at which the display of ROW starts. */ - + #define MATRIX_ROW_START_CHARPOS(ROW) ((ROW)->start.pos.charpos) #define MATRIX_ROW_START_BYTEPOS(ROW) ((ROW)->start.pos.bytepos) /* Return the character/ byte position at which ROW ends. */ - + #define MATRIX_ROW_END_CHARPOS(ROW) ((ROW)->end.pos.charpos) #define MATRIX_ROW_END_BYTEPOS(ROW) ((ROW)->end.pos.bytepos) /* Return the vertical position of ROW in MATRIX. */ - + #define MATRIX_ROW_VPOS(ROW, MATRIX) ((ROW) - (MATRIX)->rows) /* Return the last glyph row + 1 in MATRIX on window W reserved for text. If W has a mode line, the last row in the matrix is reserved for it. */ - + #define MATRIX_BOTTOM_TEXT_ROW(MATRIX, W) \ ((MATRIX)->rows \ + (MATRIX)->nrows \ @@ -781,46 +781,46 @@ struct glyph_row *matrix_row P_ ((struct glyph_matrix *, int)); /* Non-zero if the face of the last glyph in ROW's text area has to be drawn to the end of the text area. */ - + #define MATRIX_ROW_EXTENDS_FACE_P(ROW) ((ROW)->fill_line_p) /* Set and query the enabled_p flag of glyph row ROW in MATRIX. */ - + #define SET_MATRIX_ROW_ENABLED_P(MATRIX, ROW, VALUE) \ (MATRIX_ROW ((MATRIX), (ROW))->enabled_p = (VALUE) != 0) - + #define MATRIX_ROW_ENABLED_P(MATRIX, ROW) \ (MATRIX_ROW ((MATRIX), (ROW))->enabled_p) /* Non-zero if ROW displays text. Value is non-zero if the row is blank but displays a line end. */ - + #define MATRIX_ROW_DISPLAYS_TEXT_P(ROW) ((ROW)->displays_text_p) /* Non-zero if ROW is not completely visible in window W. */ - + #define MATRIX_ROW_PARTIALLY_VISIBLE_P(ROW) \ ((ROW)->height != (ROW)->visible_height) /* Non-zero if ROW is partially visible at the top of window W. */ - + #define MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P(W, ROW) \ (MATRIX_ROW_PARTIALLY_VISIBLE_P ((ROW)) \ && (ROW)->y < WINDOW_DISPLAY_HEADER_LINE_HEIGHT ((W))) /* Non-zero if ROW is partially visible at the bottom of window W. */ - + #define MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P(W, ROW) \ (MATRIX_ROW_PARTIALLY_VISIBLE_P ((ROW)) \ && (ROW)->y + (ROW)->height > WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE ((W))) /* Return the bottom Y + 1 of ROW. */ - + #define MATRIX_ROW_BOTTOM_Y(ROW) ((ROW)->y + (ROW)->height) /* Is ROW the last visible one in the display described by the iterator structure pointed to by IT?. */ - + #define MATRIX_ROW_LAST_VISIBLE_P(ROW, IT) \ (MATRIX_ROW_BOTTOM_Y ((ROW)) >= (IT)->last_visible_y) @@ -844,7 +844,7 @@ struct glyph_row *matrix_row P_ ((struct glyph_matrix *, int)); ((ROW)->end.overlay_string_index >= 0) /* Non-zero if ROW starts in the middle of a character. See above. */ - + #define MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P(ROW) \ ((ROW)->start.dpvec_index >= 0 \ || (ROW)->starts_in_middle_of_char_p \ @@ -1016,14 +1016,14 @@ extern struct glyph_row scratch_glyph_row; * CANON_X_UNIT (XFRAME (WINDOW_FRAME ((W)))))) /* Height of the display region of W, including a mode line, if any. */ - + #define WINDOW_DISPLAY_PIXEL_HEIGHT(W) \ (XFASTINT ((W)->height) \ * CANON_Y_UNIT (XFRAME (WINDOW_FRAME ((W))))) /* Height in pixels of the mode line. May be zero if W doesn't have a mode line. */ - + #define WINDOW_DISPLAY_MODE_LINE_HEIGHT(W) \ (WINDOW_WANTS_MODELINE_P ((W)) \ ? CURRENT_MODE_LINE_HEIGHT (W) \ @@ -1031,27 +1031,27 @@ extern struct glyph_row scratch_glyph_row; /* Height in pixels of the header line. Zero if W doesn't have a header line. */ - + #define WINDOW_DISPLAY_HEADER_LINE_HEIGHT(W) \ (WINDOW_WANTS_HEADER_LINE_P ((W)) \ ? CURRENT_HEADER_LINE_HEIGHT (W) \ : 0) /* Pixel height of window W without mode line. */ - + #define WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE(W) \ (WINDOW_DISPLAY_PIXEL_HEIGHT ((W)) \ - WINDOW_DISPLAY_MODE_LINE_HEIGHT ((W))) /* Pixel height of window W without mode and header line. */ - + #define WINDOW_DISPLAY_TEXT_HEIGHT(W) \ (WINDOW_DISPLAY_PIXEL_HEIGHT ((W)) \ - WINDOW_DISPLAY_MODE_LINE_HEIGHT ((W)) \ - WINDOW_DISPLAY_HEADER_LINE_HEIGHT ((W))) /* Left edge of W in pixels relative to its frame. */ - + #define WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X(W) \ (FRAME_INTERNAL_BORDER_WIDTH_SAFE (XFRAME (WINDOW_FRAME ((W)))) \ + (WINDOW_LEFT_MARGIN ((W)) \ @@ -1059,54 +1059,54 @@ extern struct glyph_row scratch_glyph_row; + FRAME_LEFT_FRINGE_WIDTH (XFRAME (WINDOW_FRAME ((W))))) /* Right edge of window W in pixels, relative to its frame. */ - + #define WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X(W) \ (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X ((W)) \ + WINDOW_DISPLAY_PIXEL_WIDTH ((W))) /* Top edge of W in pixels relative to its frame. */ - + #define WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y(W) \ (FRAME_INTERNAL_BORDER_WIDTH_SAFE (XFRAME (WINDOW_FRAME ((W)))) \ + (XFASTINT ((W)->top) \ * CANON_Y_UNIT (XFRAME (WINDOW_FRAME ((W)))))) /* Bottom edge of window W relative to its frame. */ - + #define WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y(W) \ (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y ((W)) \ + WINDOW_DISPLAY_PIXEL_HEIGHT ((W))) - + /* Convert window W relative pixel X to frame pixel coordinates. */ - + #define WINDOW_TO_FRAME_PIXEL_X(W, X) \ ((X) + WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X ((W))) /* Convert window W relative pixel Y to frame pixel coordinates. */ - + #define WINDOW_TO_FRAME_PIXEL_Y(W, Y) \ ((Y) + WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y ((W))) /* Convert frame relative pixel X to window relative pixel X. */ - + #define FRAME_TO_WINDOW_PIXEL_X(W, X) \ ((X) - WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X ((W))) /* Convert frame relative pixel Y to window relative pixel Y. */ - + #define FRAME_TO_WINDOW_PIXEL_Y(W, Y) \ ((Y) - WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y ((W))) /* Width of left margin area in pixels. */ - + #define WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH(W) \ (NILP ((W)->left_margin_width) \ ? 0 \ : (XINT ((W)->left_margin_width) \ * CANON_X_UNIT (XFRAME (WINDOW_FRAME ((W)))))) - + /* Width of right marginal area in pixels. */ - + #define WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH(W) \ (NILP ((W)->right_margin_width) \ ? 0 \ @@ -1114,7 +1114,7 @@ extern struct glyph_row scratch_glyph_row; * CANON_X_UNIT (XFRAME (WINDOW_FRAME ((W)))))) /* Width of text area in pixels. */ - + #define WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH(W) \ (WINDOW_DISPLAY_PIXEL_WIDTH ((W)) \ - WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH ((W)) \ @@ -1147,7 +1147,7 @@ extern struct glyph_row scratch_glyph_row; : (((AREA) == LEFT_MARGIN_AREA) \ ? WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH ((W)) \ : WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH ((W)))) - + /* Value is non-zero if window W wants a mode line. */ #define WINDOW_WANTS_MODELINE_P(W) \ @@ -1168,11 +1168,11 @@ extern struct glyph_row scratch_glyph_row; && !NILP (XBUFFER ((W)->buffer)->header_line_format) \ && XFASTINT ((W)->height) > 1 + !NILP (XBUFFER ((W)->buffer)->mode_line_format)) - + /*********************************************************************** Faces ***********************************************************************/ - + /* Indices of face attributes in Lisp face vectors. Slot zero is the symbol `face'. */ @@ -1230,11 +1230,11 @@ struct face int id; #ifdef HAVE_WINDOW_SYSTEM - + /* If non-zero, this is a GC that we can use without modification for drawing the characters in this face. */ GC gc; - + /* Font used for this face, or null if the font could not be loaded for some reason. This points to a `font' slot of a struct font_info, and we should not call XFreeFont on it because the @@ -1255,7 +1255,7 @@ struct face /* Pixel value of foreground color for X frames. Color index for tty frames. */ unsigned long foreground; - + /* Pixel value or color index of background color. */ unsigned long background; @@ -1283,10 +1283,10 @@ struct face Otherwise, a specific font is loaded from the set of fonts specified by the fontset given by the family attribute of the face. */ int fontset; - + /* Pixmap width and height. */ unsigned int pixmap_w, pixmap_h; - + /* Non-zero means characters in this face have a box that thickness around them. If it is negative, the absolute value indicates the thickness, and the horizontal lines of box (top and bottom) are @@ -1335,7 +1335,7 @@ struct face /* 1 means that either no color is specified for underlining or that the specified color couldn't be loaded. Use the foreground color when drawing in that case. */ - unsigned underline_defaulted_p : 1; + unsigned underline_defaulted_p : 1; /* 1 means that either no color is specified for the corresponding attribute or that the specified color couldn't be loaded. @@ -1415,7 +1415,7 @@ struct face_cache { /* Hash table of cached realized faces. */ struct face **buckets; - + /* Back-pointer to the frame this cache belongs to. */ struct frame *f; @@ -1460,7 +1460,7 @@ struct face_cache /* Return the id of the realized face on frame F that is like the face with id ID but is suitable for displaying character CHAR. This macro is only meaningful for multibyte character CHAR. */ - + #define FACE_FOR_CHAR(F, FACE, CHAR) \ (SINGLE_BYTE_CHAR_P (CHAR) \ ? (FACE)->ascii_face->id \ @@ -1690,7 +1690,7 @@ struct it /* Stack pointer. */ int sp; - + /* Setting of buffer-local variable selective-display-ellipsis. */ unsigned selective_display_ellipsis_p : 1; @@ -1715,7 +1715,7 @@ struct it /* Non-null means that the current character is the first in a run of characters with box face. */ unsigned start_of_box_run_p : 1; - + /* Non-zero means that the current character is the last in a run of characters with box face. */ unsigned end_of_box_run_p : 1; @@ -1809,7 +1809,7 @@ struct it /* Number of glyphs needed for the last character requested via produce_glyphs. This is 1 except for tabs. */ int nglyphs; - + /* Width of the display element in pixels. Result of produce_glyphs. */ int pixel_width; @@ -1925,7 +1925,7 @@ struct redisplay_interface /* Produce glyphs/get display metrics for the display element IT is loaded with. */ void (*produce_glyphs) P_ ((struct it *it)); - + /* Write or insert LEN glyphs from STRING at the nominal output position. */ void (*write_glyphs) P_ ((struct glyph *string, int len)); @@ -1934,7 +1934,7 @@ struct redisplay_interface /* Clear from nominal output position to X. X < 0 means clear to right end of display. */ void (*clear_end_of_line) P_ ((int x)); - + /* Function to call to scroll the display as described by RUN on window W. */ void (*scroll_run_hook) P_ ((struct window *w, struct run *run)); @@ -1955,7 +1955,7 @@ struct redisplay_interface have to update the mouse highlight. */ void (*update_window_end_hook) P_ ((struct window *w, int cursor_on_p, int mouse_face_overwritten_p)); - + /* Move cursor to row/column position VPOS/HPOS, pixel coordinates Y/X. HPOS/VPOS are window-relative row and column numbers and X/Y are window-relative pixel positions. */ diff --git a/src/dispnew.c b/src/dispnew.c index 4ea59834762..1318bcb851f 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -317,7 +317,7 @@ struct redisplay_interface *rif; int fonts_changed_p; -/* Convert vpos and hpos from frame to window and vice versa. +/* Convert vpos and hpos from frame to window and vice versa. This may only be used for terminal frames. */ #if GLYPH_DEBUG @@ -368,12 +368,12 @@ add_window_display_history (w, msg, paused_p) int paused_p; { char *buf; - + if (history_idx >= REDISPLAY_HISTORY_SIZE) history_idx = 0; buf = redisplay_history[history_idx].trace; ++history_idx; - + sprintf (buf, "%d: window %p (`%s')%s\n", history_tick++, w, @@ -396,12 +396,12 @@ add_frame_display_history (f, paused_p) int paused_p; { char *buf; - + if (history_idx >= REDISPLAY_HISTORY_SIZE) history_idx = 0; buf = redisplay_history[history_idx].trace; ++history_idx; - + sprintf (buf, "%d: update frame %p%s", history_tick++, f, paused_p ? " ***paused***" : ""); @@ -490,7 +490,7 @@ safe_bcopy (from, to, size) bcopy (from, to, endt - from); } } -} +} @@ -530,7 +530,7 @@ new_glyph_matrix (pool) is freed. If the count gets negative, more structures were freed than allocated, i.e. one matrix was freed more than once or a bogus pointer was passed to this function. - + If MATRIX->pool is null, this means that the matrix manages its own glyph memory---this is done for matrices on X frames. Freeing the matrix also frees the glyph memory in this case. */ @@ -552,7 +552,7 @@ free_glyph_matrix (matrix) if (matrix->pool == NULL) for (i = 0; i < matrix->rows_allocated; ++i) xfree (matrix->rows[i].glyphs[LEFT_MARGIN_AREA]); - + /* Free row structures and the matrix itself. */ xfree (matrix->rows); xfree (matrix); @@ -655,7 +655,7 @@ adjust_glyph_matrix (w, matrix, x, y, dim) && matrix->window_width == window_width) return; } - + /* Enlarge MATRIX->rows if necessary. New rows are cleared. */ if (matrix->rows_allocated < dim.height) { @@ -675,7 +675,7 @@ adjust_glyph_matrix (w, matrix, x, y, dim) if (matrix->pool) { xassert (matrix->pool->glyphs); - + if (w) { left = margin_glyphs_to_reserve (w, dim.width, @@ -685,16 +685,16 @@ adjust_glyph_matrix (w, matrix, x, y, dim) } else left = right = 0; - + for (i = 0; i < dim.height; ++i) { struct glyph_row *row = &matrix->rows[i]; - - row->glyphs[LEFT_MARGIN_AREA] + + row->glyphs[LEFT_MARGIN_AREA] = (matrix->pool->glyphs + (y + i) * matrix->pool->ncolumns + x); - + if (w == NULL || row == matrix->rows + dim.height - 1 || (row == matrix->rows && matrix->header_line_p)) @@ -716,7 +716,7 @@ adjust_glyph_matrix (w, matrix, x, y, dim) = row->glyphs[LEFT_MARGIN_AREA] + dim.width; } } - + matrix->left_margin_glyphs = left; matrix->right_margin_glyphs = right; } @@ -731,14 +731,14 @@ adjust_glyph_matrix (w, matrix, x, y, dim) { struct glyph_row *row = matrix->rows; struct glyph_row *end = row + matrix->rows_allocated; - + while (row < end) { row->glyphs[LEFT_MARGIN_AREA] = (struct glyph *) xrealloc (row->glyphs[LEFT_MARGIN_AREA], (dim.width * sizeof (struct glyph))); - + /* The mode line never has marginal areas. */ if (row == matrix->rows + dim.height - 1 || (row == matrix->rows && matrix->header_line_p)) @@ -767,7 +767,7 @@ adjust_glyph_matrix (w, matrix, x, y, dim) matrix->left_margin_glyphs = left; matrix->right_margin_glyphs = right; } - + /* Number of rows to be used by MATRIX. */ matrix->nrows = dim.height; xassert (matrix->nrows >= 0); @@ -782,7 +782,7 @@ adjust_glyph_matrix (w, matrix, x, y, dim) building desired matrices when this function runs. */ if (window_width < 0) window_width = window_box_width (w, -1); - + /* Optimize the case that only the height has changed (C-x 2, upper window). Invalidate all rows that are no longer part of the window. */ @@ -807,7 +807,7 @@ adjust_glyph_matrix (w, matrix, x, y, dim) if (INTEGERP (w->window_end_vpos) && XFASTINT (w->window_end_vpos) >= i) w->window_end_valid = Qnil; - + while (i < matrix->nrows) matrix->rows[i++].enabled_p = 0; } @@ -827,8 +827,8 @@ adjust_glyph_matrix (w, matrix, x, y, dim) matrix->rows[i].enabled_p = 0; } } - - + + /* Remember last values to be able to optimize frame redraws. */ matrix->matrix_x = x; matrix->matrix_y = y; @@ -939,7 +939,7 @@ enable_glyph_matrix_rows (matrix, start, end, enabled_p) xassert (start <= end); xassert (start >= 0 && start < matrix->nrows); xassert (end >= 0 && end <= matrix->nrows); - + for (; start < end; ++start) matrix->rows[start].enabled_p = enabled_p != 0; } @@ -965,7 +965,7 @@ clear_glyph_matrix (matrix) matrix->no_scrolling_p = 0; } } - + /* Shift part of the glyph matrix MATRIX of window W up or down. Increment y-positions in glyph rows between START and END by DY, @@ -978,21 +978,21 @@ shift_glyph_matrix (w, matrix, start, end, dy) int start, end, dy; { int min_y, max_y; - + xassert (start <= end); xassert (start >= 0 && start < matrix->nrows); xassert (end >= 0 && end <= matrix->nrows); - + min_y = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w); max_y = WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE (w); - + for (; start < end; ++start) { struct glyph_row *row = &matrix->rows[start]; - + row->y += dy; row->visible_height = row->height; - + if (row->y < min_y) row->visible_height -= min_y - row->y; if (row->y + row->height > max_y) @@ -1037,7 +1037,7 @@ clear_desired_matrices (f) { if (f->desired_matrix) clear_glyph_matrix (f->desired_matrix); - + if (WINDOWP (f->menu_bar_window)) clear_glyph_matrix (XWINDOW (f->menu_bar_window)->desired_matrix); @@ -1142,16 +1142,16 @@ blank_row (w, row, y) int y; { int min_y, max_y; - + min_y = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w); max_y = WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE (w); - + clear_glyph_row (row); row->y = y; row->ascent = row->phys_ascent = 0; row->height = row->phys_height = CANON_Y_UNIT (XFRAME (w->frame)); row->visible_height = row->height; - + if (row->y < min_y) row->visible_height -= min_y - row->y; if (row->y + row->height > max_y) @@ -1290,7 +1290,7 @@ copy_glyph_row_contents (to, from, delta, delta_bytes) /* Copy glyphs from FROM to TO. */ for (area = 0; area < LAST_AREA; ++area) if (from->used[area]) - bcopy (from->glyphs[area], to->glyphs[area], + bcopy (from->glyphs[area], to->glyphs[area], from->used[area] * sizeof (struct glyph)); /* Increment buffer positions in TO by DELTA. */ @@ -1383,7 +1383,7 @@ line_hash_code (row) struct glyph_row *row; { int hash = 0; - + if (row->enabled_p) { struct glyph *glyph = row->glyphs[TEXT_AREA]; @@ -1431,7 +1431,7 @@ line_draw_cost (matrix, vpos) while (end > beg && CHAR_GLYPH_SPACE_P (*(end - 1))) --end; - /* All blank line. */ + /* All blank line. */ if (end == beg) return 0; @@ -1452,17 +1452,17 @@ line_draw_cost (matrix, vpos) while (beg < end) { GLYPH g = GLYPH_FROM_CHAR_GLYPH (*beg); - + if (g < 0 || GLYPH_SIMPLE_P (glyph_table_base, glyph_table_len, g)) len += 1; else len += GLYPH_LENGTH (glyph_table_base, g); - + ++beg; } } - + return len; } @@ -1473,7 +1473,7 @@ line_draw_cost (matrix, vpos) visibility. MOUSE_FACE_P non-zero means compare the mouse_face_p flags of A and B, too. */ -static INLINE int +static INLINE int row_equal_p (w, a, b, mouse_face_p) struct window *w; struct glyph_row *a, *b; @@ -1496,15 +1496,15 @@ row_equal_p (w, a, b, mouse_face_p) { if (a->used[area] != b->used[area]) return 0; - + a_glyph = a->glyphs[area]; a_end = a_glyph + a->used[area]; b_glyph = b->glyphs[area]; - + while (a_glyph < a_end && GLYPH_EQUAL_P (a_glyph, b_glyph)) ++a_glyph, ++b_glyph; - + if (a_glyph != a_end) return 0; } @@ -1551,10 +1551,10 @@ new_glyph_pool () /* Allocate a new glyph_pool and clear it. */ result = (struct glyph_pool *) xmalloc (sizeof *result); bzero (result, sizeof *result); - + /* For memory leak and double deletion checking. */ ++glyph_pool_count; - + return result; } @@ -1626,7 +1626,7 @@ realloc_glyph_pool (pool, matrix_dim) determine pointers to rows of window sub-matrices. */ pool->nrows = matrix_dim.height; pool->ncolumns = matrix_dim.width; - + return changed_p; } @@ -1659,7 +1659,7 @@ check_matrix_pointer_lossage (matrix) struct glyph_matrix *matrix; { int i, j; - + for (i = 0; i < matrix->nrows; ++i) for (j = 0; j < matrix->nrows; ++j) xassert (i == j @@ -1684,7 +1684,7 @@ matrix_row (matrix, row) #if 0 check_matrix_pointer_lossage (matrix); #endif - + return matrix->rows + row; } @@ -1707,7 +1707,7 @@ check_matrix_invariants (w) struct buffer *saved = current_buffer; struct buffer *buffer = XBUFFER (w->buffer); int c; - + /* This can sometimes happen for a fresh window. */ if (matrix->nrows < 2) return; @@ -1870,18 +1870,18 @@ allocate_matrices_for_frame_redisplay (window, x, y, dim_only_p, && !NILP (XWINDOW (XWINDOW (window)->parent)->hchild)); /* For WINDOW and all windows on the same level. */ - do + do { w = XWINDOW (window); /* Get the dimension of the window sub-matrix for W, depending on whether this is a combination or a leaf window. */ if (!NILP (w->hchild)) - dim = allocate_matrices_for_frame_redisplay (w->hchild, x, y, + dim = allocate_matrices_for_frame_redisplay (w->hchild, x, y, dim_only_p, window_change_flags); else if (!NILP (w->vchild)) - dim = allocate_matrices_for_frame_redisplay (w->vchild, x, y, + dim = allocate_matrices_for_frame_redisplay (w->vchild, x, y, dim_only_p, window_change_flags); else @@ -1893,7 +1893,7 @@ allocate_matrices_for_frame_redisplay (window, x, y, dim_only_p, w->current_matrix = new_glyph_matrix (f->current_pool); *window_change_flags |= NEW_LEAF_MATRIX; } - + /* Width and height MUST be chosen so that there are no holes in the frame matrix. */ dim.width = required_matrix_width (w); @@ -1929,7 +1929,7 @@ allocate_matrices_for_frame_redisplay (window, x, y, dim_only_p, below W. */ if (in_horz_combination_p) x += dim.width; - else + else y += dim.height; /* Remember maximum glyph matrix dimensions. */ @@ -1952,7 +1952,7 @@ allocate_matrices_for_frame_redisplay (window, x, y, dim_only_p, total.width = x - x0; total.height = hmax; } - else + else { total.width = wmax; total.height = y - y0; @@ -1970,7 +1970,7 @@ required_matrix_height (w) { #ifdef HAVE_WINDOW_SYSTEM struct frame *f = XFRAME (w->frame); - + if (FRAME_WINDOW_P (f)) { int ch_height = FRAME_SMALLEST_FONT_HEIGHT (f); @@ -1984,7 +1984,7 @@ required_matrix_height (w) + 2); } #endif /* HAVE_WINDOW_SYSTEM */ - + return XINT (w->height); } @@ -2001,7 +2001,7 @@ required_matrix_width (w) { int ch_width = FRAME_SMALLEST_CHAR_WIDTH (f); int window_pixel_width = XFLOATINT (w->width) * CANON_X_UNIT (f); - + /* Compute number of glyphs needed in a glyph row. */ return (((window_pixel_width + ch_width - 1) / ch_width) @@ -2020,7 +2020,7 @@ required_matrix_width (w) /* Allocate window matrices for window-based redisplay. W is the window whose matrices must be allocated/reallocated. CH_DIM is the size of the smallest character that could potentially be used on W. */ - + static void allocate_matrices_for_window_redisplay (w) struct window *w; @@ -2048,7 +2048,7 @@ allocate_matrices_for_window_redisplay (w) adjust_glyph_matrix (w, w->desired_matrix, 0, 0, dim); adjust_glyph_matrix (w, w->current_matrix, 0, 0, dim); } - + w = NILP (w->next) ? NULL : XWINDOW (w->next); } } @@ -2072,7 +2072,7 @@ adjust_glyphs (f) else { Lisp_Object tail, lisp_frame; - + FOR_EACH_FRAME (tail, lisp_frame) adjust_frame_glyphs (XFRAME (lisp_frame)); } @@ -2082,9 +2082,9 @@ adjust_glyphs (f) /* Adjust frame glyphs when Emacs is initialized. - - To be called from init_display. - + + To be called from init_display. + We need a glyph matrix because redraw will happen soon. Unfortunately, window sizes on selected_frame are not yet set to meaningful values. I believe we can assume that there are only two @@ -2115,7 +2115,7 @@ adjust_frame_glyphs_initially () adjust_frame_glyphs (sf); glyphs_initialized_initially_p = 1; } - + /* Allocate/reallocate glyph matrices of a single frame F. */ @@ -2127,7 +2127,7 @@ adjust_frame_glyphs (f) adjust_frame_glyphs_for_window_redisplay (f); else adjust_frame_glyphs_for_frame_redisplay (f); - + /* Don't forget the message buffer and the buffer for decode_mode_spec. */ adjust_frame_message_buffer (f); @@ -2145,11 +2145,11 @@ fake_current_matrices (window) Lisp_Object window; { struct window *w; - + for (; !NILP (window); window = w->next) { w = XWINDOW (window); - + if (!NILP (w->hchild)) fake_current_matrices (w->hchild); else if (!NILP (w->vchild)) @@ -2163,7 +2163,7 @@ fake_current_matrices (window) xassert (m->matrix_h == XFASTINT (w->height)); xassert (m->matrix_w == XFASTINT (w->width)); - + for (i = 0; i < m->matrix_h; ++i) { struct glyph_row *r = m->rows + i; @@ -2238,7 +2238,7 @@ restore_current_matrix (f, saved) to->used[TEXT_AREA] = from->used[TEXT_AREA]; xfree (from->glyphs[TEXT_AREA]); } - + xfree (saved->rows); xfree (saved); } @@ -2264,7 +2264,7 @@ adjust_frame_glyphs_for_frame_redisplay (f) /* Determine the smallest character in any font for F. On console windows, all characters have dimension (1, 1). */ ch_dim.width = ch_dim.height = 1; - + top_window_y = FRAME_TOP_MARGIN (f); /* Allocate glyph pool structures if not already done. */ @@ -2280,7 +2280,7 @@ adjust_frame_glyphs_for_frame_redisplay (f) f->desired_matrix = new_glyph_matrix (f->desired_pool); f->current_matrix = new_glyph_matrix (f->current_pool); } - + /* Compute window glyph matrices. (This takes the mini-buffer window into account). The result is the size of the frame glyph matrix needed. The variable window_change_flags is set to a bit @@ -2301,7 +2301,7 @@ adjust_frame_glyphs_for_frame_redisplay (f) pool_changed_p = realloc_glyph_pool (f->desired_pool, matrix_dim); realloc_glyph_pool (f->current_pool, matrix_dim); - /* Set up glyph pointers within window matrices. Do this only if + /* Set up glyph pointers within window matrices. Do this only if absolutely necessary since it requires a frame redraw. */ if (pool_changed_p || window_change_flags) { @@ -2315,7 +2315,7 @@ adjust_frame_glyphs_for_frame_redisplay (f) to the frame width (from CHANGE_FRAME_SIZE_1). */ xassert (matrix_dim.width == FRAME_WIDTH (f) && matrix_dim.height == FRAME_HEIGHT (f)); - + /* Pointers to glyph memory in glyph rows are exchanged during the update phase of redisplay, which means in general that a frame's current matrix consists of pointers into both the @@ -2357,7 +2357,7 @@ adjust_frame_glyphs_for_window_redisplay (f) struct window *w; xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f)); - + /* Get minimum sizes. */ #ifdef HAVE_WINDOW_SYSTEM ch_dim.width = FRAME_SMALLEST_CHAR_WIDTH (f); @@ -2365,7 +2365,7 @@ adjust_frame_glyphs_for_window_redisplay (f) #else ch_dim.width = ch_dim.height = 1; #endif - + /* Allocate/reallocate window matrices. */ allocate_matrices_for_window_redisplay (XWINDOW (FRAME_ROOT_WINDOW (f))); @@ -2416,7 +2416,7 @@ adjust_frame_glyphs_for_window_redisplay (f) } -/* Adjust/ allocate message buffer of frame F. +/* Adjust/ allocate message buffer of frame F. Note that the message buffer is never freed. Since I could not find a free in 19.34, I assume that freeing it would be @@ -2474,7 +2474,7 @@ free_glyphs (f) event while we're in an inconsistent state. */ BLOCK_INPUT; f->glyphs_initialized_p = 0; - + /* Release window sub-matrices. */ if (!NILP (f->root_window)) free_window_matrices (XWINDOW (f->root_window)); @@ -2516,7 +2516,7 @@ free_glyphs (f) free_glyph_pool (f->current_pool); f->desired_pool = f->current_pool = NULL; } - + UNBLOCK_INPUT; } } @@ -2536,7 +2536,7 @@ free_window_matrices (w) free_window_matrices (XWINDOW (w->hchild)); else if (!NILP (w->vchild)) free_window_matrices (XWINDOW (w->vchild)); - else + else { /* This is a leaf window. Free its memory and reset fields to zero in case this function is called a second time for @@ -2611,7 +2611,7 @@ check_glyph_memory () up glyph lengths of the window matrices. A line in the frame matrix is enabled, if a corresponding line in a window matrix is enabled. - + After building the desired frame matrix, it will be passed to terminal code, which will manipulate both the desired and current frame matrix. Changes applied to the frame's current matrix have @@ -2624,7 +2624,7 @@ check_glyph_memory () contents needed in a frame matrix. Thus, any modification of glyphs done in terminal code will be reflected in window matrices automatically. - + 2. Exchanges of rows in a frame matrix done by terminal code are intercepted by hook functions so that corresponding row operations on window matrices can be performed. This is necessary because we @@ -2649,7 +2649,7 @@ build_frame_matrix (f) /* F must have a frame matrix when this function is called. */ xassert (!FRAME_WINDOW_P (f)); - + /* Clear all rows in the frame matrix covered by window matrices. Menu bar lines are not covered by windows. */ for (i = FRAME_TOP_MARGIN (f); i < f->desired_matrix->nrows; ++i) @@ -2747,7 +2747,7 @@ build_frame_matrix_from_leaf_window (frame_matrix, w) window_row = w->current_matrix->rows + window_y; current_row_p = 1; } - + if (current_row_p) { /* Copy window row to frame row. */ @@ -2758,11 +2758,11 @@ build_frame_matrix_from_leaf_window (frame_matrix, w) else { xassert (window_row->enabled_p); - + /* Only when a desired row has been displayed, we want the corresponding frame row to be updated. */ frame_row->enabled_p = 1; - + /* Maybe insert a vertical border between horizontally adjacent windows. */ if (right_border_glyph) @@ -2774,10 +2774,10 @@ build_frame_matrix_from_leaf_window (frame_matrix, w) /* Window row window_y must be a slice of frame row frame_y. */ xassert (glyph_row_slice_p (window_row, frame_row)); - + /* If rows are in sync, we don't have to copy glyphs because frame and window share glyphs. */ - + #if GLYPH_DEBUG strcpy (w->current_matrix->method, w->desired_matrix->method); add_window_display_history (w, w->current_matrix->method, 0); @@ -2787,7 +2787,7 @@ build_frame_matrix_from_leaf_window (frame_matrix, w) /* Set number of used glyphs in the frame matrix. Since we fill up with spaces, and visit leaf windows from left to right it can be done simply. */ - frame_row->used[TEXT_AREA] + frame_row->used[TEXT_AREA] = window_matrix->matrix_x + window_matrix->matrix_w; /* Next row. */ @@ -2853,7 +2853,7 @@ fill_up_frame_row_with_spaces (row, upto) { int i = row->used[TEXT_AREA]; struct glyph *glyph = row->glyphs[TEXT_AREA]; - + while (i < upto) glyph[i++] = space_glyph; @@ -2949,7 +2949,7 @@ mirror_make_current (w, frame_row) current_row->enabled_p = 1; } } - + w = NILP (w->next) ? 0 : XWINDOW (w->next); } } @@ -2964,7 +2964,7 @@ mirror_make_current (w, frame_row) row 0 <= I < NLINES which is empty. This function is called from do_scrolling and do_direct_scrolling. */ - + void mirrored_line_dance (matrix, unchanged_at_top, nlines, copy_from, retained_p) @@ -2978,7 +2978,7 @@ mirrored_line_dance (matrix, unchanged_at_top, nlines, copy_from, /* Rows to assign to. */ struct glyph_row *new_rows = MATRIX_ROW (matrix, unchanged_at_top); - + int i; /* Make a copy of the original rows. */ @@ -3030,7 +3030,7 @@ sync_window_with_frame_matrix_rows (w) window_row = w->current_matrix->rows; window_row_end = window_row + w->current_matrix->nrows; frame_row = f->current_matrix->rows + XFASTINT (w->top); - + for (; window_row < window_row_end; ++window_row, ++frame_row) { window_row->glyphs[LEFT_MARGIN_AREA] @@ -3054,7 +3054,7 @@ frame_row_to_window (w, row) int row; { struct window *found = NULL; - + while (w && !found) { if (!NILP (w->hchild)) @@ -3064,7 +3064,7 @@ frame_row_to_window (w, row) else if (row >= XFASTINT (w->top) && row < XFASTINT (w->top) + XFASTINT (w->height)) found = w; - + w = NILP (w->next) ? 0 : XWINDOW (w->next); } @@ -3114,36 +3114,36 @@ mirror_line_dance (w, unchanged_at_top, nlines, copy_from, retained_p) { /* Frame relative line assigned to. */ int frame_to = i + unchanged_at_top; - + /* Frame relative line assigned. */ int frame_from = copy_from[i] + unchanged_at_top; - + /* Window relative line assigned to. */ int window_to = frame_to - m->matrix_y; - + /* Window relative line assigned. */ int window_from = frame_from - m->matrix_y; - + /* Is assigned line inside window? */ int from_inside_window_p = window_from >= 0 && window_from < m->matrix_h; - + /* Is assigned to line inside window? */ int to_inside_window_p = window_to >= 0 && window_to < m->matrix_h; - + if (from_inside_window_p && to_inside_window_p) { /* Enabled setting before assignment. */ int enabled_before_p; - + /* Do the assignment. The enabled_p flag is saved over the assignment because the old redisplay did that. */ enabled_before_p = m->rows[window_to].enabled_p; m->rows[window_to] = old_rows[window_from]; m->rows[window_to].enabled_p = enabled_before_p; - + /* If frame line is empty, window line is empty, too. */ if (!retained_p[copy_from[i]]) m->rows[window_to].enabled_p = 0; @@ -3163,7 +3163,7 @@ mirror_line_dance (w, unchanged_at_top, nlines, copy_from, retained_p) m2_from = frame_from - m2->matrix_y; copy_row_except_pointers (m->rows + window_to, m2->rows + m2_from); - + /* If frame line is empty, window line is empty, too. */ if (!retained_p[copy_from[i]]) m->rows[window_to].enabled_p = 0; @@ -3177,7 +3177,7 @@ mirror_line_dance (w, unchanged_at_top, nlines, copy_from, retained_p) pointers are in sync with the frame matrix. */ if (sync_p) sync_window_with_frame_matrix_rows (w); - + /* Check that no pointers are lost. */ CHECK_MATRIX (m); } @@ -3212,7 +3212,7 @@ check_window_matrix_pointers (w) check_matrix_pointers (w->desired_matrix, f->desired_matrix); check_matrix_pointers (w->current_matrix, f->current_matrix); } - + w = NILP (w->next) ? 0 : XWINDOW (w->next); } } @@ -3233,7 +3233,7 @@ check_matrix_pointers (window_matrix, frame_matrix) /* Row number corresponding to I in FRAME_MATRIX. */ int j = window_matrix->matrix_y; - /* For all rows check that the row in the window matrix is a + /* For all rows check that the row in the window matrix is a slice of the row in the frame matrix. If it isn't we didn't mirror an operation on the frame matrix correctly. */ while (i < window_matrix->nrows) @@ -3264,7 +3264,7 @@ window_to_frame_vpos (w, vpos) int vpos; { struct frame *f = XFRAME (w->frame); - + xassert (!FRAME_WINDOW_P (f)); xassert (vpos >= 0 && vpos <= w->desired_matrix->nrows); vpos += XFASTINT (w->top); @@ -3282,12 +3282,12 @@ window_to_frame_hpos (w, hpos) int hpos; { struct frame *f = XFRAME (w->frame); - + xassert (!FRAME_WINDOW_P (f)); hpos += XFASTINT (w->left); return hpos; } - + #endif /* GLYPH_DEBUG */ @@ -3429,8 +3429,8 @@ direct_output_for_insert (g) is handled specially there (see display_line). */ || (MINI_WINDOW_P (w) && XFASTINT (w->hscroll)) /* Give up if overwriting in the middle of a line. */ - || (overwrite_p - && PT != ZV + || (overwrite_p + && PT != ZV && FETCH_BYTE (PT) != '\n') /* Give up for tabs and line ends. */ || g == '\t' @@ -3474,7 +3474,7 @@ direct_output_for_insert (g) glyph_row = MATRIX_ROW (w->current_matrix, w->cursor.vpos); if (glyph_row->mouse_face_p) return 0; - + /* Give up if highlighting trailing whitespace and we have trailing whitespace in glyph_row. We would have to remove the trailing whitespace face in that case. */ @@ -3494,7 +3494,7 @@ direct_output_for_insert (g) if the overlay string has newlines in it. */ if (STRINGP (it.string)) return 0; - + it.hpos = w->cursor.hpos; it.vpos = w->cursor.vpos; it.current_x = w->cursor.x + it.first_visible_x; @@ -3505,7 +3505,7 @@ direct_output_for_insert (g) /* More than one display element may be returned for PT - 1 if (i) it's a control character which is translated into `\003' or - `^C', or (ii) it has a display table entry, or (iii) it's a + `^C', or (ii) it has a display table entry, or (iii) it's a combination of both. */ delta = delta_bytes = 0; while (get_next_display_element (&it)) @@ -3562,7 +3562,7 @@ direct_output_for_insert (g) bcopy (it.glyph_row->glyphs[TEXT_AREA], glyphs, n * sizeof *glyphs); glyph_row->used[TEXT_AREA] = min (glyph_row->used[TEXT_AREA] + n, end - glyph_row->glyphs[TEXT_AREA]); - + /* Compute new line width. */ glyph = glyph_row->glyphs[TEXT_AREA]; end = glyph + glyph_row->used[TEXT_AREA]; @@ -3573,18 +3573,18 @@ direct_output_for_insert (g) ++glyph; } - /* Increment buffer positions for glyphs following the newly + /* Increment buffer positions for glyphs following the newly inserted ones. */ for (glyph = glyphs + n; glyph < end; ++glyph) if (glyph->charpos > 0 && BUFFERP (glyph->object)) glyph->charpos += delta; - + if (MATRIX_ROW_END_CHARPOS (glyph_row) > 0) { MATRIX_ROW_END_CHARPOS (glyph_row) += delta; MATRIX_ROW_END_BYTEPOS (glyph_row) += delta_bytes; } - + /* Adjust positions in lines following the one we are in. */ increment_matrix_positions (w->current_matrix, w->cursor.vpos + 1, @@ -3611,7 +3611,7 @@ direct_output_for_insert (g) if (rif) { rif->update_window_begin_hook (w); - + if (glyphs == end - n /* In front of a space added by append_space. */ || (glyphs == end - n - 1 @@ -3684,8 +3684,8 @@ direct_output_forward_char (n) /* Give up if face attributes have been changed. */ if (face_change_count) return 0; - - /* Give up if current matrix is not up to date or we are + + /* Give up if current matrix is not up to date or we are displaying a message. */ if (!display_completed || cursor_in_echo_area) return 0; @@ -3712,7 +3712,7 @@ direct_output_forward_char (n) if (XWINDOW (minibuf_window) == w && EQ (minibuf_window, echo_area_window)) return 0; - + /* Give up if we don't know where the cursor is. */ if (w->cursor.vpos < 0) return 0; @@ -3725,13 +3725,13 @@ direct_output_forward_char (n) return 0; set_cursor_from_row (w, row, w->current_matrix, 0, 0, 0, 0); - + w->last_cursor = w->cursor; XSETFASTINT (w->last_point, PT); xassert (w->cursor.hpos >= 0 && 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); @@ -3745,7 +3745,7 @@ direct_output_forward_char (n) y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos); cursor_to (y, x); } - + fflush (stdout); redisplay_performed_directly_p = 1; return 1; @@ -3762,7 +3762,7 @@ direct_output_forward_char (n) If FORCE_P is non-zero, don't let redisplay be stopped by detecting pending input. If INHIBIT_HAIRY_ID_P is non-zero, don't try scrolling. - + Value is non-zero if redisplay was stopped due to pending input. */ int @@ -3812,12 +3812,12 @@ update_frame (f, force_p, inhibit_hairy_id_p) f->desired_tool_bar_string = tem; } } - + /* Update windows. */ paused_p = update_window_tree (root_window, force_p); update_end (f); - + #if 0 /* This flush is a performance bottleneck under X, and it doesn't seem to be necessary anyway. */ rif->flush_display (f); @@ -3831,7 +3831,7 @@ update_frame (f, force_p, inhibit_hairy_id_p) /* Build F's desired matrix from window matrices. */ build_frame_matrix (f); - + /* Update the display */ update_begin (f); paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p); @@ -3850,7 +3850,7 @@ update_frame (f, force_p, inhibit_hairy_id_p) /* Reset flags indicating that a window should be updated. */ set_window_update_flags (root_window, 0); - + display_completed = !paused_p; return paused_p; } @@ -3870,7 +3870,7 @@ update_window_tree (w, force_p) int force_p; { int paused_p = 0; - + while (w && !paused_p) { if (!NILP (w->hchild)) @@ -3922,7 +3922,7 @@ redraw_overlapped_rows (w, yb) int yb; { int i; - + /* 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 @@ -3936,11 +3936,11 @@ redraw_overlapped_rows (w, yb) break; else if (row->mode_line_p) continue; - + if (row->overlapped_p) { enum glyph_row_area area; - + for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) { updated_row = row; @@ -3950,7 +3950,7 @@ redraw_overlapped_rows (w, yb) rif->write_glyphs (row->glyphs[area], row->used[area]); rif->clear_end_of_line (-1); } - + row->overlapped_p = 0; } @@ -3970,7 +3970,7 @@ redraw_overlapping_rows (w, yb) { int i, bottom_y; struct glyph_row *row; - + for (i = 0; i < w->current_matrix->nrows; ++i) { row = w->current_matrix->rows + i; @@ -3979,17 +3979,17 @@ redraw_overlapping_rows (w, yb) break; else if (row->mode_line_p) continue; - + bottom_y = MATRIX_ROW_BOTTOM_Y (row); if (row->overlapping_p && i > 0 && bottom_y < yb) { if (row->used[LEFT_MARGIN_AREA]) rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA); - + if (row->used[TEXT_AREA]) rif->fix_overlapping_area (w, row, TEXT_AREA); - + if (row->used[RIGHT_MARGIN_AREA]) rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA); @@ -4078,7 +4078,7 @@ update_window (w, force_p) Adjust y-positions of other rows by the header line height. */ row = desired_matrix->rows; end = row + desired_matrix->nrows - 1; - + if (row->mode_line_p) { header_line_row = row; @@ -4103,7 +4103,7 @@ update_window (w, force_p) be also completely empty matrices. */ while (row < end && !row->enabled_p) ++row; - + /* Try reusing part of the display by copying. */ if (row < end && !desired_matrix->no_scrolling_p) { @@ -4136,7 +4136,7 @@ update_window (w, force_p) { int vpos = MATRIX_ROW_VPOS (row, desired_matrix); int i; - + /* We'll have to play a little bit with when to detect_input_pending. If it's done too often, scrolling large windows with repeated scroll-up @@ -4163,9 +4163,9 @@ update_window (w, force_p) /* Was display preempted? */ paused_p = row < end; - + set_cursor: - + /* Fix the appearance of overlapping/overlapped rows. */ if (!paused_p && !w->pseudo_window_p) { @@ -4174,7 +4174,7 @@ update_window (w, force_p) redraw_overlapped_rows (w, yb); redraw_overlapping_rows (w, yb); } - + /* Make cursor visible at cursor position of W. */ set_window_cursor_after_update (w); @@ -4202,7 +4202,7 @@ update_window (w, force_p) /* check_current_matrix_flags (w); */ add_window_display_history (w, w->current_matrix->method, paused_p); #endif - + clear_glyph_matrix (desired_matrix); return paused_p; @@ -4248,7 +4248,7 @@ update_text_area (w, vpos) /* Let functions in xterm.c know what area subsequent X positions will be relative to. */ updated_area = TEXT_AREA; - + /* If rows are at different X or Y, or rows have different height, or the current row is marked invalid, write the entire line. */ if (!current_row->enabled_p @@ -4262,11 +4262,11 @@ update_text_area (w, vpos) || current_row->x != desired_row->x) { rif->cursor_to (vpos, 0, desired_row->y, desired_row->x); - + if (desired_row->used[TEXT_AREA]) rif->write_glyphs (desired_row->glyphs[TEXT_AREA], desired_row->used[TEXT_AREA]); - + /* Clear to end of window. */ rif->clear_end_of_line (-1); changed_p = 1; @@ -4294,7 +4294,7 @@ update_text_area (w, vpos) extension actually takes place. */ if (MATRIX_ROW_EXTENDS_FACE_P (desired_row)) --desired_stop_pos; - + stop = min (current_row->used[TEXT_AREA], desired_stop_pos); i = 0; x = desired_row->x; @@ -4304,7 +4304,7 @@ update_text_area (w, vpos) while (i < stop) { int can_skip_p = 1; - + /* Skip over glyphs that both rows have in common. These don't have to be written. We can't skip if the last current glyph overlaps the glyph to its right. For @@ -4317,12 +4317,12 @@ update_text_area (w, vpos) { struct glyph *glyph = ¤t_row->glyphs[TEXT_AREA][i - 1]; int left, right; - + rif->get_glyph_overhangs (glyph, XFRAME (w->frame), &left, &right); can_skip_p = right == 0; } - + if (can_skip_p) { while (i < stop @@ -4347,7 +4347,7 @@ update_text_area (w, vpos) != desired_row->used[TEXT_AREA])) { int left, right; - + rif->get_glyph_overhangs (current_glyph, XFRAME (w->frame), &left, &right); while (left > 0 && i > 0) @@ -4358,7 +4358,7 @@ update_text_area (w, vpos) } } } - + /* Try to avoid writing the entire rest of the desired row by looking for a resync point. This mainly prevents mode line flickering in the case the mode line is in @@ -4395,7 +4395,7 @@ update_text_area (w, vpos) changed_p = 1; } } - + /* Write the rest. */ if (i < desired_row->used[TEXT_AREA]) { @@ -4403,7 +4403,7 @@ update_text_area (w, vpos) rif->write_glyphs (desired_glyph, desired_row->used[TEXT_AREA] - i); changed_p = 1; } - + /* Maybe clear to end of line. */ if (MATRIX_ROW_EXTENDS_FACE_P (desired_row)) { @@ -4427,7 +4427,7 @@ update_text_area (w, vpos) /* Otherwise clear to the end of the old row. Everything after that position should be clear already. */ int x; - + if (i >= desired_row->used[TEXT_AREA]) rif->cursor_to (vpos, i, desired_row->y, desired_row->x + desired_row->pixel_width); @@ -4470,8 +4470,8 @@ update_window_line (w, vpos, mouse_face_overwritten_p) know what line height values are in effect. */ updated_row = desired_row; - /* A row can be completely invisible in case a desired matrix was - built with a vscroll and then make_cursor_line_fully_visible shifts + /* A row can be completely invisible in case a desired matrix was + built with a vscroll and then make_cursor_line_fully_visible shifts the matrix. Make sure to make such rows current anyway, since we need the correct y-position, for example, in the current matrix. */ if (desired_row->mode_line_p @@ -4486,7 +4486,7 @@ update_window_line (w, vpos, mouse_face_overwritten_p) changed_p = 1; update_marginal_area (w, LEFT_MARGIN_AREA, vpos); } - + /* Update the display of the text area. */ if (update_text_area (w, vpos)) { @@ -4494,7 +4494,7 @@ update_window_line (w, vpos, mouse_face_overwritten_p) if (current_row->mouse_face_p) *mouse_face_overwritten_p = 1; } - + /* Update display of the right margin area, if there is one. */ if (!desired_row->full_width_p && !NILP (w->right_margin_width)) @@ -4502,7 +4502,7 @@ update_window_line (w, vpos, mouse_face_overwritten_p) changed_p = 1; update_marginal_area (w, RIGHT_MARGIN_AREA, vpos); } - + /* Draw truncation marks etc. */ if (!current_row->enabled_p || desired_row->y != current_row->y @@ -4518,7 +4518,7 @@ update_window_line (w, vpos, mouse_face_overwritten_p) != MATRIX_ROW_CONTINUATION_LINE_P (current_row))) rif->after_update_window_line_hook (desired_row); } - + /* Update current_row from desired_row. */ make_current (w->desired_matrix, w->current_matrix, vpos); updated_row = NULL; @@ -4538,7 +4538,7 @@ set_window_cursor_after_update (w) /* Not intended for frame matrix updates. */ xassert (FRAME_WINDOW_P (f)); - + if (cursor_in_echo_area && !NILP (echo_area_buffer[0]) /* If we are showing a message instead of the mini-buffer, @@ -4573,7 +4573,7 @@ set_window_cursor_after_update (w) last_row = row; ++row; } - + if (last_row) { struct glyph *start = last_row->glyphs[TEXT_AREA]; @@ -4581,7 +4581,7 @@ set_window_cursor_after_update (w) while (last > start && last->charpos < 0) --last; - + for (glyph = start; glyph < last; ++glyph) { cx += glyph->pixel_width; @@ -4629,7 +4629,7 @@ set_window_update_flags (w, on_p) w = NILP (w->next) ? 0 : XWINDOW (w->next); } -} +} @@ -4643,16 +4643,16 @@ struct row_entry { /* Number of occurrences of this row in desired and current matrix. */ int old_uses, new_uses; - + /* Vpos of row in new matrix. */ int new_line_number; /* Bucket index of this row_entry in the hash table row_table. */ int bucket; - + /* The row described by this entry. */ struct glyph_row *row; - + /* Hash collision chain. */ struct row_entry *next; }; @@ -4700,11 +4700,11 @@ add_row_entry (w, row) { struct row_entry *entry; int i = row->hash % row_table_size; - + entry = row_table[i]; while (entry && !row_equal_p (w, entry->row, row, 1)) entry = entry->next; - + if (entry == NULL) { entry = row_entry_pool + row_entry_idx++; @@ -4781,7 +4781,7 @@ scrolling_window (w, header_line_p) /* Give up if some rows in the desired matrix are not enabled. */ if (!MATRIX_ROW (desired_matrix, i)->enabled_p) return -1; - + first_old = first_new = i; /* Set last_new to the index + 1 of the last enabled row in the @@ -4833,14 +4833,14 @@ scrolling_window (w, header_line_p) return 0; /* Reallocate vectors, tables etc. if necessary. */ - + if (current_matrix->nrows > old_lines_size) { old_lines_size = current_matrix->nrows; nbytes = old_lines_size * sizeof *old_lines; old_lines = (struct row_entry **) xrealloc (old_lines, nbytes); } - + if (desired_matrix->nrows > new_lines_size) { new_lines_size = desired_matrix->nrows; @@ -4878,7 +4878,7 @@ scrolling_window (w, header_line_p) /* Add rows from the current and desired matrix to the hash table row_hash_table to be able to find equal ones quickly. */ - + for (i = first_old; i < last_old; ++i) { if (MATRIX_ROW (current_matrix, i)->enabled_p) @@ -4927,8 +4927,8 @@ scrolling_window (w, header_line_p) && old_lines[j] == new_lines[k]) { int h = MATRIX_ROW (current_matrix, j)->height; - --run->current_vpos; - --run->desired_vpos; + --run->current_vpos; + --run->desired_vpos; ++run->nrows; run->height += h; run->desired_y -= h; @@ -4944,7 +4944,7 @@ scrolling_window (w, header_line_p) && old_lines[j] == new_lines[k]) { int h = MATRIX_ROW (current_matrix, j)->height; - ++run->nrows; + ++run->nrows; run->height += h; ++j, ++k; } @@ -4994,7 +4994,7 @@ scrolling_window (w, header_line_p) for (j = i + 1; j < nruns; ++j) { struct run *p = runs[j]; - + if ((p->current_y >= r->desired_y && p->current_y < r->desired_y + r->height) || (p->current_y + p->height >= r->desired_y @@ -5126,7 +5126,7 @@ update_frame_1 (f, force_p, inhibit_id_p) update_frame_line (f, i); } } - + pause = (i < FRAME_HEIGHT (f) - 1) ? i : 0; /* Now just clean up termcap drivers and set cursor, etc. */ @@ -5161,11 +5161,11 @@ update_frame_1 (f, force_p, inhibit_id_p) is several lines high, find the last line that has any text on it. */ row = FRAME_HEIGHT (f); - do + do { --row; col = 0; - + if (MATRIX_ROW_ENABLED_P (current_matrix, row)) { /* Frame rows are filled up with spaces that @@ -5178,7 +5178,7 @@ update_frame_1 (f, force_p, inhibit_id_p) while (last > start && (last - 1)->charpos < 0) --last; - + col = last - start; } } @@ -5219,7 +5219,7 @@ update_frame_1 (f, force_p, inhibit_id_p) if (INTEGERP (w->left_margin_width)) x += XFASTINT (w->left_margin_width); - + /* x = max (min (x, FRAME_WINDOW_WIDTH (f) - 1), 0); */ cursor_to (y, x); } @@ -5334,7 +5334,7 @@ count_blanks (r, len) int len; { int i; - + for (i = 0; i < len; ++i) if (!CHAR_GLYPH_SPACE_P (r[i])) break; @@ -5353,12 +5353,12 @@ count_match (str1, end1, str2, end2) { struct glyph *p1 = str1; struct glyph *p2 = str2; - + while (p1 < end1 && p2 < end2 && GLYPH_CHAR_AND_FACE_EQUAL_P (p1, p2)) ++p1, ++p2; - + return p1 - str1; } @@ -5403,7 +5403,7 @@ update_frame_line (f, vpos) { obody = MATRIX_ROW_GLYPH_START (current_matrix, vpos); olen = current_row->used[TEXT_AREA]; - + /* Ignore trailing spaces, if we can. */ if (!write_spaces_p) while (olen > 0 && CHAR_GLYPH_SPACE_P (obody[olen-1])) @@ -5438,7 +5438,7 @@ update_frame_line (f, vpos) cursor_to (vpos, 0); write_glyphs (nbody, nlen); } - + /* Don't call clear_end_of_line if we already wrote the whole line. The cursor will not be at the right margin in that case but in the line below. */ @@ -5451,7 +5451,7 @@ update_frame_line (f, vpos) /* Make sure we are in the right row, otherwise cursor movement with cmgoto might use `ch' in the wrong row. */ cursor_to (vpos, 0); - + make_current (desired_matrix, current_matrix, vpos); return; } @@ -5480,8 +5480,8 @@ update_frame_line (f, vpos) || !GLYPH_EQUAL_P (nbody + j, obody + j) || CHAR_GLYPH_PADDING_P (nbody[j]))) ++j; - - /* Output this run of non-matching chars. */ + + /* Output this run of non-matching chars. */ cursor_to (vpos, i); write_glyphs (nbody + i, j - i); i = j - 1; @@ -5641,17 +5641,17 @@ update_frame_line (f, vpos) int del; cursor_to (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); - + /* If we left columns to be overwritten, we must delete them. */ del = olen - tem - out; if (del > 0) delete_glyphs (del); - + /* At last, we insert columns not yet written out. */ insert_glyphs (nbody + nsp + begmatch + out, nlen - olen + del); olen = nlen; @@ -5705,11 +5705,11 @@ buffer_posn_from_coords (w, x, y, object, pos) CHARPOS (startp) = min (ZV, max (BEGV, CHARPOS (startp))); BYTEPOS (startp) = min (ZV_BYTE, max (BEGV_BYTE, BYTEPOS (startp))); start_display (&it, w, startp); - + left_area_width = WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH (w); move_it_to (&it, -1, *x + it.first_visible_x - left_area_width, *y, -1, MOVE_TO_X | MOVE_TO_Y); - + *x = it.current_x - it.first_visible_x + left_area_width; *y = it.current_y; current_buffer = old_current_buffer; @@ -5873,7 +5873,7 @@ do_pending_window_change (safe) /* If window_change_signal should have run before, run it now. */ if (redisplaying_p && !safe) return; - + while (delayed_size_change) { Lisp_Object tail, frame; @@ -5895,7 +5895,7 @@ do_pending_window_change (safe) /* Change the frame height and/or width. Values may be given as zero to - indicate no change is to take place. + indicate no change is to take place. If DELAY is non-zero, then assume we're being called from a signal handler, and queue the change for later - perhaps the next @@ -6017,7 +6017,7 @@ change_frame_size_1 (f, newheight, newwidth, pretend, delay, safe) { struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); int text_area_x, text_area_y, text_area_width, text_area_height; - + window_box (w, TEXT_AREA, &text_area_x, &text_area_y, &text_area_width, &text_area_height); if (w->cursor.x >= text_area_x + text_area_width) @@ -6190,14 +6190,14 @@ Emacs was built without floating point support. #ifdef VMS sys_sleep (sec); #else /* not VMS */ -/* The reason this is done this way +/* The reason this is done this way (rather than defined (H_S) && defined (H_T)) is because the VMS preprocessor doesn't grok `defined'. */ #ifdef HAVE_SELECT EMACS_GET_TIME (end_time); EMACS_SET_SECS_USECS (timeout, sec, usec); EMACS_ADD_TIME (end_time, end_time, timeout); - + while (1) { EMACS_GET_TIME (timeout); @@ -6210,7 +6210,7 @@ Emacs was built without floating point support. sleep (sec); #endif /* HAVE_SELECT */ #endif /* not VMS */ - + immediate_quit = 0; #endif /* no subprocesses */ @@ -6439,7 +6439,7 @@ init_display () display_arg = (display != 0 && *display != 0); } - if (!inhibit_window_system && display_arg + if (!inhibit_window_system && display_arg #ifndef CANNOT_DUMP && initialized #endif @@ -6463,7 +6463,7 @@ init_display () #endif /* HAVE_X_WINDOWS */ #ifdef HAVE_NTGUI - if (!inhibit_window_system) + if (!inhibit_window_system) { Vwindow_system = intern ("w32"); Vwindow_system_version = make_number (1); @@ -6473,7 +6473,7 @@ init_display () #endif /* HAVE_NTGUI */ #ifdef MAC_OS - if (!inhibit_window_system) + if (!inhibit_window_system) { Vwindow_system = intern ("mac"); Vwindow_system_version = make_number (1); @@ -6518,11 +6518,11 @@ For types not defined in VMS, use define emacs_term \"TYPE\".\n\ *p = tolower (*p); terminal_type = new; - } + } #endif /* VMS */ term_init (terminal_type); - + { struct frame *sf = SELECTED_FRAME (); int width = FRAME_WINDOW_WIDTH (sf); @@ -6591,7 +6591,7 @@ don't show a cursor. */) window = selected_window; else CHECK_WINDOW (window); - + XWINDOW (window)->cursor_off_p = NILP (show); } @@ -6607,14 +6607,14 @@ WINDOW nil or omitted means report on the selected window. */) Lisp_Object window; { struct window *w; - + if (NILP (window)) window = selected_window; else CHECK_WINDOW (window); - + w = XWINDOW (window); - return w->cursor_off_p ? Qnil : Qt; + return w->cursor_off_p ? Qnil : Qt; } @@ -6652,34 +6652,34 @@ syms_of_display () doc: /* *The output baud rate of the terminal. On most systems, changing this value will affect the amount of padding and the other strategic decisions made during redisplay. */); - + DEFVAR_BOOL ("inverse-video", &inverse_video, doc: /* *Non-nil means invert the entire frame display. This means everything is in inverse video which otherwise would not be. */); - + DEFVAR_BOOL ("visible-bell", &visible_bell, doc: /* *Non-nil means try to flash the frame to represent a bell. See also `ring-bell-function'. */); - + DEFVAR_BOOL ("no-redraw-on-reenter", &no_redraw_on_reenter, doc: /* *Non-nil means no need to redraw entire frame after suspending. A non-nil value is useful if the terminal can automatically preserve 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. The value is a symbol--for instance, `x' for X windows. The value is nil if Emacs is using a text-only terminal. */); - + DEFVAR_LISP ("window-system-version", &Vwindow_system_version, doc: /* The version number of the window system in use. For X windows, this is 10 or 11. */); - + DEFVAR_BOOL ("cursor-in-echo-area", &cursor_in_echo_area, doc: /* Non-nil means put cursor in minibuffer, at end of any message there. */); - + DEFVAR_LISP ("glyph-table", &Vglyph_table, doc: /* Table defining how to output a glyph code to the frame. If not nil, this is a vector indexed by glyph code to define the glyph. diff --git a/src/doc.c b/src/doc.c index 473ba911023..3a53dc5174e 100644 --- a/src/doc.c +++ b/src/doc.c @@ -151,7 +151,7 @@ get_doc_string (filepos, unibyte, definition) if (!STRINGP (file)) return Qnil; - + /* Put the file name in NAME as a C string. If it is relative, combine it with Vdoc_directory. */ @@ -375,12 +375,12 @@ string is passed through `substitute-command-keys'. */) documentation: doc = Qnil; - + if (SYMBOLP (function) && (tem = Fget (function, Qfunction_documentation), !NILP (tem))) return Fdocumentation_property (function, Qfunction_documentation, raw); - + fun = Findirect_function (function); if (SUBRP (fun)) { @@ -487,7 +487,7 @@ aren't strings. */) Lisp_Object tem; documentation_property: - + tem = Fget (symbol, prop); if (EQ (tem, make_number (0))) tem = Qnil; @@ -512,7 +512,7 @@ aren't strings. */) else if (!STRINGP (tem)) /* Feval protects its argument. */ tem = Feval (tem); - + if (NILP (raw) && STRINGP (tem)) tem = Fsubstitute_command_keys (tem); return tem; @@ -918,7 +918,7 @@ syms_of_doc () { Qfunction_documentation = intern ("function-documentation"); staticpro (&Qfunction_documentation); - + DEFVAR_LISP ("internal-doc-file-name", &Vdoc_file_name, doc: /* Name of file containing documentation strings of built-in symbols. */); Vdoc_file_name = Qnil; diff --git a/src/ecrt0.c b/src/ecrt0.c index ac23259de4f..17bd4841002 100644 --- a/src/ecrt0.c +++ b/src/ecrt0.c @@ -348,7 +348,7 @@ _start () { #ifdef sun finitfp_(); -#endif +#endif /* On 68000, _start pushes a6 onto stack */ start1 (); } diff --git a/src/editfns.c b/src/editfns.c index d5293e170c8..0c012514f93 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -289,16 +289,16 @@ region_limit (beginningp) { extern Lisp_Object Vmark_even_if_inactive; /* Defined in callint.c. */ Lisp_Object m; - + if (!NILP (Vtransient_mark_mode) && NILP (Vmark_even_if_inactive) && NILP (current_buffer->mark_active)) Fsignal (Qmark_inactive, Qnil); - + m = Fmarker_position (current_buffer->mark); if (NILP (m)) error ("The mark is not set now, so there is no region"); - + if ((PT < XFASTINT (m)) == beginningp) m = make_number (PT); return m; @@ -456,7 +456,7 @@ get_pos_property (position, prop, object) } } } - + } { /* Now check the text-properties. */ @@ -881,7 +881,7 @@ save_excursion_restore (info) /* visible */ info = XCDR (info); visible_p = !NILP (XCAR (info)); - + #if 0 /* We used to make the current buffer visible in the selected window if that was true previously. That avoids some anomalies. But it creates others, and it wasn't documented, and it is simpler @@ -2952,7 +2952,7 @@ save_restriction_restore (data) clip_to_bounds (beg->charpos, pt, end->charpos), clip_to_bounds (beg->bytepos, BUF_PT_BYTE (buf), end->bytepos)); - + buf->clip_changed = 1; /* Remember that the narrowing changed. */ } } diff --git a/src/eval.c b/src/eval.c index 5cd50271292..9d63da194a8 100644 --- a/src/eval.c +++ b/src/eval.c @@ -234,13 +234,13 @@ call_debugger (arg) int debug_while_redisplaying; int count = SPECPDL_INDEX (); Lisp_Object val; - + if (lisp_eval_depth + 20 > max_lisp_eval_depth) max_lisp_eval_depth = lisp_eval_depth + 20; - + if (specpdl_size + 40 > max_specpdl_size) max_specpdl_size = specpdl_size + 40; - + #ifdef HAVE_X_WINDOWS if (display_hourglass_p) cancel_hourglass (); @@ -261,7 +261,7 @@ call_debugger (arg) redisplay, which necessarily leads to display problems. */ specbind (Qinhibit_eval_during_redisplay, Qt); #endif - + val = apply1 (Vdebugger, arg); /* Interrupting redisplay and resuming it later is not safe under @@ -535,7 +535,7 @@ usage: (setq SYM VAL SYM VAL ...) */) UNGCPRO; return val; } - + DEFUN ("quote", Fquote, Squote, 1, UNEVALLED, 0, doc: /* Return the argument, without evaluating it. `(quote x)' yields `x'. usage: (quote ARG) */) @@ -544,7 +544,7 @@ usage: (quote ARG) */) { return Fcar (args); } - + DEFUN ("function", Ffunction, Sfunction, 1, UNEVALLED, 0, doc: /* Like `quote', but preferred for objects which are functions. In byte compilation, `function' causes its argument to be compiled. @@ -614,7 +614,7 @@ interactive_p (exclude_subrs_p) fun = Findirect_function (*btp->function); if (exclude_subrs_p && SUBRP (fun)) return 0; - + /* btp points to the frame of a Lisp function that called interactive-p. Return t if that function was called interactively. */ if (btp && btp->next && EQ (*btp->next->function, Qcall_interactively)) @@ -694,7 +694,7 @@ usage: (defmacro NAME ARGLIST [DOCSTRING] [DECL] BODY...) */) call2 (Vmacro_declaration_function, fn_name, Fcar (tail)); UNGCPRO; } - + tail = Fcdr (tail); } @@ -703,7 +703,7 @@ usage: (defmacro NAME ARGLIST [DOCSTRING] [DECL] BODY...) */) else tail = Fcons (lambda_list, Fcons (doc, tail)); defn = Fcons (Qmacro, Fcons (Qlambda, tail)); - + if (!NILP (Vpurify_flag)) defn = Fpurecopy (defn); if (CONSP (XSYMBOL (fn_name)->function) @@ -835,7 +835,7 @@ value of `standard-value' or of `custom-autoload' on its property list). */) Lisp_Object variable; { Lisp_Object documentation; - + if (!SYMBOLP (variable)) return Qnil; @@ -856,7 +856,7 @@ value of `standard-value' or of `custom-autoload' on its property list). */) || (!NILP (Fget (variable, intern ("custom-autoload"))))) return Qt; return Qnil; -} +} DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0, doc: /* Bind variables according to VARLIST then eval BODY. @@ -1168,7 +1168,7 @@ unwind_to_catch (catch, value) #endif backtrace_list = catch->backlist; lisp_eval_depth = catch->lisp_eval_depth; - + _longjmp (catch->jmp, 1); } @@ -1207,7 +1207,7 @@ usage: (unwind-protect BODYFORM UNWINDFORMS...) */) record_unwind_protect (0, Fcdr (args)); val = Feval (Fcar (args)); - return unbind_to (count, val); + return unbind_to (count, val); } /* Chain of condition handlers currently in effect. @@ -1288,7 +1288,7 @@ usage: (condition-case VAR BODYFORM HANDLERS...) */) } c.next = catchlist; catchlist = &c; - + h.var = var; h.handler = handlers; h.next = handlerlist; @@ -1486,7 +1486,7 @@ See also the function `condition-case'. */) if (display_hourglass_p) cancel_hourglass (); #endif -#endif +#endif /* This hook is used by edebug. */ if (! NILP (Vsignal_hook_function) @@ -1512,13 +1512,13 @@ See also the function `condition-case'. */) for (; handlerlist; handlerlist = handlerlist->next) { register Lisp_Object clause; - + if (lisp_eval_depth + 20 > max_lisp_eval_depth) max_lisp_eval_depth = lisp_eval_depth + 20; - + if (specpdl_size + 40 > max_specpdl_size) max_specpdl_size = specpdl_size + 40; - + clause = find_handler_clause (handlerlist->handler, conditions, error_symbol, data, &debugger_value); @@ -1608,7 +1608,7 @@ skip_debugger (conditions, data) error_message = Ferror_message_string (data); first_string = 0; } - + if (fast_string_match (XCAR (tail), error_message) >= 0) return 1; } @@ -1933,7 +1933,7 @@ do_autoload (fundef, funname) /* Preserve the match data. */ record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil)); - + /* Value saved here is to be restored into Vautoload_queue. */ record_unwind_protect (un_autoload, Vautoload_queue); Vautoload_queue = Qt; @@ -1981,7 +1981,7 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0, if (handling_signal) abort (); - + if (SYMBOLP (form)) return Fsymbol_value (form); if (!CONSP (form)) @@ -2162,7 +2162,7 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0, #ifdef HAVE_CARBON mac_check_for_quit_char(); -#endif +#endif return val; } @@ -2185,7 +2185,7 @@ usage: (apply FUNCTION &rest ARGUMENTS) */) funcall_args = 0; spread_arg = args [nargs - 1]; CHECK_LIST (spread_arg); - + numargs = XINT (Flength (spread_arg)); if (numargs == 0) @@ -2280,7 +2280,7 @@ usage: (run-hooks &rest HOOKS) */) return Qnil; } - + DEFUN ("run-hook-with-args", Frun_hook_with_args, Srun_hook_with_args, 1, MANY, 0, doc: /* Run HOOK with the specified arguments ARGS. @@ -2523,7 +2523,7 @@ call1 (fn, arg1) { struct gcpro gcpro1; #ifdef NO_ARG_ARRAY - Lisp_Object args[2]; + Lisp_Object args[2]; args[0] = fn; args[1] = arg1; @@ -2779,7 +2779,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) default: /* If a subr takes more than 8 arguments without using MANY - or UNEVALLED, we need to extend this function to support it. + or UNEVALLED, we need to extend this function to support it. Until this is done, there is no way to call the function. */ abort (); } @@ -2887,11 +2887,11 @@ funcall_lambda (fun, nargs, arg_vector) for (; CONSP (syms_left); syms_left = XCDR (syms_left)) { QUIT; - + next = XCAR (syms_left); while (!SYMBOLP (next)) next = Fsignal (Qinvalid_function, Fcons (fun, Qnil)); - + if (EQ (next, Qand_rest)) rest = 1; else if (EQ (next, Qand_optional)) @@ -2928,7 +2928,7 @@ funcall_lambda (fun, nargs, arg_vector) AREF (fun, COMPILED_CONSTANTS), AREF (fun, COMPILED_STACK_DEPTH)); } - + return unbind_to (count, val); } @@ -3006,7 +3006,7 @@ specbind (symbol, value) else { Lisp_Object valcontents; - + ovalue = find_symbol_value (symbol); specpdl_ptr->func = 0; specpdl_ptr->old_value = ovalue; @@ -3020,7 +3020,7 @@ specbind (symbol, value) Lisp_Object where, current_buffer; current_buffer = Fcurrent_buffer (); - + /* For a local variable, record both the symbol and which buffer's or frame's value we are saving. */ if (!NILP (Flocal_variable_p (symbol, Qnil))) @@ -3112,7 +3112,7 @@ unbind_to (count, value) Fset_default (symbol, specpdl_ptr->old_value); else if (BUFFERP (where)) set_internal (symbol, specpdl_ptr->old_value, XBUFFER (where), 1); - else + else set_internal (symbol, specpdl_ptr->old_value, NULL, 1); } else @@ -3126,7 +3126,7 @@ unbind_to (count, value) set_internal (specpdl_ptr->symbol, specpdl_ptr->old_value, 0, 1); } } - + if (NILP (Vquit_flag) && quitf) Vquit_flag = Qt; @@ -3300,7 +3300,7 @@ before making `inhibit-quit' nil. */); Qdeclare = intern ("declare"); staticpro (&Qdeclare); - + /* Note that the process handling also uses Qexit, but we don't want to staticpro it twice, so we just do it here. */ Qexit = intern ("exit"); diff --git a/src/filelock.c b/src/filelock.c index 33de9a4e7db..bcad75199cd 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -80,14 +80,14 @@ Lisp_Object Vtemporary_file_directory; #ifndef WTMP_FILE #define WTMP_FILE "/var/log/wtmp" #endif - + /* The strategy: to lock a file FN, create a symlink .#FN in FN's directory, with link data `user@host.pid'. This avoids a single mount (== failure) point for lock files. When the host in the lock data is the current host, we can check if the pid is valid with kill. - + Otherwise, we could look at a separate file that maps hostnames to reboot times to see if the remote pid can possibly be valid, since we don't want Emacs to have to communicate via pipes or sockets or @@ -105,15 +105,15 @@ Lisp_Object Vtemporary_file_directory; files to be useful on old systems lacking symlinks, nowadays virtually all such systems are probably single-user anyway, so it didn't seem worth the complication. - + Similarly, we don't worry about a possible 14-character limit on file names, because those are all the same systems that don't have symlinks. - + This is compatible with the locking scheme used by Interleaf (which has contributed this implementation for Emacs), and was designed by Ethan Jacobson, Kimbo Mundy, and others. - + --karl@cs.umb.edu/karl@hq.ileaf.com. */ @@ -344,7 +344,7 @@ fill_in_lock_file_name (lockfile, fn) do something to support 14-character-max file names. */ for (p = lockfile + strlen (lockfile); p != lockfile && *p != '/'; p--) p[2] = *p; - + /* Insert the `.#'. */ p[1] = '.'; p[2] = '#'; @@ -368,7 +368,7 @@ fill_in_lock_file_name (lockfile, fn) static int lock_file_1 (lfname, force) - char *lfname; + char *lfname; int force; { register int err; @@ -394,7 +394,7 @@ lock_file_1 (lfname, force) (unsigned long) getpid (), (unsigned long) boot_time); else sprintf (lock_info_str, "%s@%s.%lu", user_name, host_name, - (unsigned long) getpid ()); + (unsigned long) getpid ()); err = symlink (lock_info_str, lfname); if (errno == EEXIST && force) @@ -448,7 +448,7 @@ current_lock_owner (owner, lfname) #endif } while (len >= bufsize); - + /* If nonexistent lock file, all is well; otherwise, got strange error. */ if (len == -1) { @@ -458,7 +458,7 @@ current_lock_owner (owner, lfname) /* Link info exists, so `len' is its length. Null terminate. */ lfinfo[len] = 0; - + /* Even if the caller doesn't want the owner info, we still have to read it to determine return value, so allocate it. */ if (!owner) @@ -466,7 +466,7 @@ current_lock_owner (owner, lfname) owner = (lock_info_type *) alloca (sizeof (lock_info_type)); local_owner = 1; } - + /* Parse USER@HOST.PID:BOOT_TIME. If can't parse, return -1. */ /* The USER is everything before the first @. */ at = index (lfinfo, '@'); @@ -480,7 +480,7 @@ current_lock_owner (owner, lfname) owner->user = (char *) xmalloc (len + 1); strncpy (owner->user, lfinfo, len); owner->user[len] = 0; - + /* The PID is everything from the last `.' to the `:'. */ owner->pid = atoi (dot + 1); colon = dot; @@ -500,7 +500,7 @@ current_lock_owner (owner, lfname) /* We're done looking at the link info. */ xfree (lfinfo); - + /* On current host? */ if (STRINGP (Fsystem_name ()) && strcmp (owner->host, SDATA (Fsystem_name ())) == 0) @@ -524,7 +524,7 @@ current_lock_owner (owner, lfname) here's where we'd do it. */ ret = 1; } - + /* Avoid garbage. */ if (local_owner || ret <= 0) { @@ -543,7 +543,7 @@ current_lock_owner (owner, lfname) static int lock_if_free (clasher, lfname) lock_info_type *clasher; - register char *lfname; + register char *lfname; { while (lock_file_1 (lfname, 0) == 0) { @@ -551,7 +551,7 @@ lock_if_free (clasher, lfname) if (errno != EEXIST) return -1; - + locker = current_lock_owner (clasher, lfname); if (locker == 2) { @@ -634,7 +634,7 @@ lock_file (fn) sprintf (locker, "%s@%s (pid %lu)", lock_info.user, lock_info.host, lock_info.pid); FREE_LOCK_INFO (lock_info); - + attack = call2 (intern ("ask-user-about-lock"), fn, build_string (locker)); if (!NILP (attack)) /* User says take the lock */ @@ -691,7 +691,7 @@ or else nothing is done if current buffer isn't visiting a file. */) if (SAVE_MODIFF < MODIFF && !NILP (file)) lock_file (file); - return Qnil; + return Qnil; } DEFUN ("unlock-buffer", Funlock_buffer, Sunlock_buffer, diff --git a/src/floatfns.c b/src/floatfns.c index 08405c307a7..b7d6412fdbf 100644 --- a/src/floatfns.c +++ b/src/floatfns.c @@ -468,7 +468,7 @@ DEFUN ("expt", Fexpt, Sexpt, 2, 2, 0, x = XINT (arg1); y = XINT (arg2); acc = 1; - + if (y < 0) { if (x == 1) @@ -992,7 +992,7 @@ float_error (signo) #endif /* FLOAT_CATCH_SIGILL */ #ifdef HAVE_MATHERR -int +int matherr (x) struct exception *x; { @@ -1026,7 +1026,7 @@ init_floatfns () { #ifdef FLOAT_CATCH_SIGILL signal (SIGILL, float_error); -#endif +#endif in_float = 0; } diff --git a/src/fontset.h b/src/fontset.h index 1a920ac69ec..634711110bc 100644 --- a/src/fontset.h +++ b/src/fontset.h @@ -97,7 +97,7 @@ struct font_info `ascent'. In other words, the value indicates how many bits higher we should draw a character of the font than normal ASCII text for a better looking. - + We also have to consider the fact that the concept of `baseline' differs among languages to which each character belongs. For instance, baseline should be at the bottom most position of all @@ -195,7 +195,7 @@ EXFUN (Fquery_fontset, 2); extern Lisp_Object list_fontsets P_ ((struct frame *, Lisp_Object, int)); extern Lisp_Object Qfontset; -extern Lisp_Object Vuse_default_ascent; +extern Lisp_Object Vuse_default_ascent; extern Lisp_Object Vignore_relative_composition; extern Lisp_Object Valternate_fontname_alist; extern Lisp_Object Vfontset_alias_alist; diff --git a/src/frame.c b/src/frame.c index b8fb2e1546d..d3d84ff1394 100644 --- a/src/frame.c +++ b/src/frame.c @@ -92,7 +92,7 @@ set_menu_bar_lines_1 (window, n) XSETFASTINT (w->last_modified, 0); XSETFASTINT (w->top, XFASTINT (w->top) + n); XSETFASTINT (w->height, XFASTINT (w->height) - n); - + if (INTEGERP (w->orig_top)) XSETFASTINT (w->orig_top, XFASTINT (w->orig_top) + n); if (INTEGERP (w->orig_height)) @@ -367,7 +367,7 @@ make_frame_without_minibuffer (mini_window, kb, display) call1 (intern ("make-initial-minibuffer-frame"), display); UNGCPRO; } - + mini_window = XFRAME (kb->Vdefault_minibuffer_frame)->minibuffer_window; } @@ -576,7 +576,7 @@ do_switch_frame (frame, track, for_deletion) int track, for_deletion; { struct frame *sf = SELECTED_FRAME (); - + /* If FRAME is a switch-frame event, extract the frame we should switch to. */ if (CONSP (frame) @@ -774,7 +774,7 @@ If omitted, FRAME defaults to the currently selected frame. */) Lisp_Object frame; { Lisp_Object window; - + if (NILP (frame)) window = SELECTED_FRAME ()->root_window; else @@ -782,7 +782,7 @@ If omitted, FRAME defaults to the currently selected frame. */) CHECK_LIVE_FRAME (frame); window = XFRAME (frame)->root_window; } - + return window; } @@ -794,7 +794,7 @@ If omitted, FRAME defaults to the currently selected frame. */) Lisp_Object frame; { Lisp_Object window; - + if (NILP (frame)) window = SELECTED_FRAME ()->selected_window; else @@ -816,7 +816,7 @@ If FRAME is the selected frame, this makes WINDOW the selected window. */) { if (NILP (frame)) frame = selected_frame; - + CHECK_LIVE_FRAME (frame); CHECK_LIVE_WINDOW (window); @@ -1016,7 +1016,7 @@ Otherwise, include all frames. */) { if (NILP (frame)) frame = selected_frame; - + CHECK_LIVE_FRAME (frame); return next_frame (frame, miniframe); } @@ -1211,8 +1211,8 @@ The functions are run with one arg, the frame to be deleted. */) x_clear_frame_selections (f); #endif - /* Free glyphs. - This function must be called before the window tree of the + /* Free glyphs. + This function must be called before the window tree of the frame is deleted because windows contain dynamically allocated memory. */ free_glyphs (f); @@ -1592,7 +1592,7 @@ If omitted, FRAME defaults to the currently selected frame. */) { if (NILP (frame)) frame = selected_frame; - + CHECK_LIVE_FRAME (frame); #if 0 /* This isn't logically necessary, and it can do GC. */ @@ -1701,7 +1701,7 @@ doesn't support multiple overlapping frames, this function does nothing. */) frame = selected_frame; CHECK_LIVE_FRAME (frame); - + if (frame_raise_lower_hook) (*frame_raise_lower_hook) (XFRAME (frame), 0); @@ -1749,7 +1749,7 @@ The redirection lasts until `redirect-frame-focus' is called to change it. */) if (frame_rehighlight_hook) (*frame_rehighlight_hook) (XFRAME (frame)); - + return Qnil; } @@ -1949,7 +1949,7 @@ store_frame_param (f, prop, val) /* Update some other special parameters in their special places in addition to the alist. */ - + if (EQ (prop, Qbuffer_predicate)) f->buffer_predicate = val; @@ -1999,7 +1999,7 @@ If FRAME is omitted, return information on the currently selected frame. */) alist = Fcopy_alist (f->param_alist); GCPRO1 (alist); - + if (!FRAME_WINDOW_P (f)) { int fg = FRAME_FOREGROUND_PIXEL (f); @@ -2088,10 +2088,10 @@ If FRAME is nil, describe the currently selected frame. */) else CHECK_FRAME (frame); CHECK_SYMBOL (parameter); - + f = XFRAME (frame); value = Qnil; - + if (FRAME_LIVE_P (f)) { /* Avoid consing in frequent cases. */ @@ -2146,12 +2146,12 @@ If FRAME is nil, describe the currently selected frame. */) else value = Fcdr (Fassq (parameter, Fframe_parameters (frame))); } - + return value; } -DEFUN ("modify-frame-parameters", Fmodify_frame_parameters, +DEFUN ("modify-frame-parameters", Fmodify_frame_parameters, Smodify_frame_parameters, 2, 2, 0, doc: /* Modify the parameters of frame FRAME according to ALIST. If FRAME is nil, it defaults to the selected frame. @@ -2278,7 +2278,7 @@ For a terminal screen, the value is always 1. */) return make_number (1); } -DEFUN ("frame-pixel-height", Fframe_pixel_height, +DEFUN ("frame-pixel-height", Fframe_pixel_height, Sframe_pixel_height, 0, 1, 0, doc: /* Return a FRAME's height in pixels. This counts only the height available for text lines, @@ -2303,7 +2303,7 @@ If FRAME is omitted, the selected frame is used. */) return make_number (FRAME_HEIGHT (f)); } -DEFUN ("frame-pixel-width", Fframe_pixel_width, +DEFUN ("frame-pixel-width", Fframe_pixel_width, Sframe_pixel_width, 0, 1, 0, doc: /* Return FRAME's width in pixels. For a terminal frame, the result really gives the width in characters. @@ -2411,7 +2411,7 @@ DEFUN ("set-frame-size", Fset_frame_size, Sset_frame_size, 3, 3, 0, return Qnil; } -DEFUN ("set-frame-position", Fset_frame_position, +DEFUN ("set-frame-position", Fset_frame_position, Sset_frame_position, 3, 3, 0, doc: /* Sets position of FRAME in pixels to XOFFSET by YOFFSET. This is actually the position of the upper left corner of the frame. @@ -2525,7 +2525,7 @@ which need to do mouse handling at the Lisp level. */); Vmouse_position_function = Qnil; DEFVAR_LISP ("mouse-highlight", &Vmouse_highlight, - doc: /* If non-nil, clickable text is highlighted when mouse is over it. + doc: /* If non-nil, clickable text is highlighted when mouse is over it. If the value is an integer, highlighting is only shown after moving the mouse, while keyboard input turns off the highlight even when the mouse is over the clickable text. However, the mouse shape still indicates diff --git a/src/frame.h b/src/frame.h index af2a66bad65..25e43a9f317 100644 --- a/src/frame.h +++ b/src/frame.h @@ -150,7 +150,7 @@ struct frame or modified with modify-frame-parameters. */ Lisp_Object param_alist; - /* List of scroll bars on this frame. + /* List of scroll bars on this frame. Actually, we don't specify exactly what is stored here at all; the scroll bar implementation code can use it to store anything it likes. This field is marked by the garbage collector. It is here @@ -224,7 +224,7 @@ struct frame int tool_bar_lines; int n_tool_bar_items; - + /* A buffer for decode_mode_line. */ char *decode_mode_spec_buffer; @@ -253,7 +253,7 @@ struct frame /* A structure of auxiliary data used for displaying the contents. struct x_output is used for X window frames; - it is defined in xterm.h. + it is defined in xterm.h. struct w32_output is used for W32 window frames; it is defined in w32term.h. */ union output_data @@ -325,7 +325,7 @@ struct frame /* True if frame actually has a minibuffer window on it. 0 if using a minibuffer window that isn't on this frame. */ char has_minibuffer; - + /* 0 means, if this frame has just one window, show no modeline for that window. */ char wants_modeline; @@ -525,8 +525,8 @@ typedef struct frame *FRAME_PTR; /* The currently selected window of the window tree of frame F. */ #define FRAME_SELECTED_WINDOW(f) (f)->selected_window -#define FRAME_INSERT_COST(f) (f)->insert_line_cost -#define FRAME_DELETE_COST(f) (f)->delete_line_cost +#define FRAME_INSERT_COST(f) (f)->insert_line_cost +#define FRAME_DELETE_COST(f) (f)->delete_line_cost #define FRAME_INSERTN_COST(f) (f)->insert_n_lines_cost #define FRAME_DELETEN_COST(f) (f)->delete_n_lines_cost #define FRAME_MESSAGE_BUF(f) (f)->message_buf @@ -623,7 +623,7 @@ typedef struct frame *FRAME_PTR; /* Return the size of message_buf of the frame F. We multiply the width of the frame by 4 because multi-byte form may require at most 4-byte for a character. */ - + #define FRAME_MESSAGE_BUF_SIZE(f) (((int) (f)->width) * 4) /* Emacs's redisplay code could become confused if a frame's @@ -649,7 +649,7 @@ typedef struct frame *FRAME_PTR; Also, if a frame used to be invisible, but has just become visible, it must be marked as garbaged, since redisplay hasn't been keeping up its contents. */ - + #define FRAME_SAMPLE_VISIBILITY(f) \ (((f)->async_visible && (f)->visible != (f)->async_visible) ? \ SET_FRAME_GARBAGED (f) : 0, \ @@ -674,7 +674,7 @@ typedef struct frame *FRAME_PTR; loop will set FRAME_VAR, a Lisp_Object, to each frame in Vframe_list in succession and execute the statement. LIST_VAR should be a Lisp_Object too; it is used to iterate through the - Vframe_list. + Vframe_list. This macro is a holdover from a time when multiple frames weren't always supported. An alternate definition of the macro would expand to @@ -731,7 +731,7 @@ enum text_cursor_kinds get_window_cursor_type P_ ((struct window *, int *, int * /* Return the height in lines of the vertical scroll bar in w. If the window has a mode line, don't make the scroll bar extend that far. */ - + #define WINDOW_VERTICAL_SCROLL_BAR_HEIGHT(w) (window_internal_height (w)) /* The currently selected frame. */ @@ -779,7 +779,7 @@ extern Lisp_Object selected_frame; (FRAME_WINDOW_P (F) ? FRAME_X_LEFT_FRINGE_WIDTH (F) : 0) #define FRAME_RIGHT_FRINGE_WIDTH(F) \ (FRAME_WINDOW_P (F) ? FRAME_X_RIGHT_FRINGE_WIDTH (F) : 0) - + #else /* not HAVE_WINDOW_SYSTEM */ #define FRAME_FRINGE_WIDTH(F) 0 @@ -788,7 +788,7 @@ extern Lisp_Object selected_frame; #define FRAME_RIGHT_FRINGE_WIDTH(F) 0 #endif /* not HAVE_WINDOW_SYSTEM */ - + @@ -803,16 +803,16 @@ extern Lisp_Object selected_frame; /* Convert canonical value X to pixels. F is the frame whose canonical char width is to be used. X must be a Lisp integer or float. Value is a C integer. */ - + #define PIXEL_X_FROM_CANON_X(F, X) \ (INTEGERP (X) \ ? XINT (X) * CANON_X_UNIT (F) \ : (int) (XFLOAT_DATA (X) * CANON_X_UNIT (F))) - + /* Convert canonical value Y to pixels. F is the frame whose canonical character height is to be used. X must be a Lisp integer or float. Value is a C integer. */ - + #define PIXEL_Y_FROM_CANON_Y(F, Y) \ (INTEGERP (Y) \ ? XINT (Y) * CANON_Y_UNIT (F) \ @@ -836,6 +836,6 @@ extern Lisp_Object selected_frame; #define CANON_Y_FROM_PIXEL_Y(F, Y) \ ((Y) % CANON_Y_UNIT (F) \ ? make_float ((double) (Y) / CANON_Y_UNIT (F)) \ - : make_number ((Y) / CANON_Y_UNIT (F))) - + : make_number ((Y) / CANON_Y_UNIT (F))) + #endif /* not EMACS_FRAME_H */ diff --git a/src/gmalloc.c b/src/gmalloc.c index 77fb3197101..7c654e1ece1 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -420,7 +420,7 @@ protect_malloc_state (protect_p) last_state_size = _heaplimit * sizeof *_heapinfo; last_heapinfo = _heapinfo; - + if (protect_p != state_protected_p) { state_protected_p = protect_p; @@ -992,7 +992,7 @@ _free_internal (ptr) return; PROTECT_MALLOC_STATE (0); - + for (l = _aligned_blocks; l != NULL; l = l->next) if (l->aligned == ptr) { @@ -1214,7 +1214,7 @@ _free_internal (ptr) } break; } - + PROTECT_MALLOC_STATE (1); } @@ -1380,7 +1380,7 @@ _realloc_internal (ptr, size) block = BLOCK (ptr); PROTECT_MALLOC_STATE (0); - + type = _heapinfo[block].busy.type; switch (type) { @@ -1843,7 +1843,7 @@ freehook (ptr) __ptr_t ptr; { struct hdr *hdr; - + if (ptr) { hdr = ((struct hdr *) ptr) - 1; @@ -1853,7 +1853,7 @@ freehook (ptr) } else hdr = NULL; - + __free_hook = old_free_hook; free (hdr); __free_hook = freehook; @@ -1887,7 +1887,7 @@ reallochook (ptr, size) { struct hdr *hdr = NULL; __malloc_size_t osize = 0; - + if (ptr) { hdr = ((struct hdr *) ptr) - 1; @@ -1897,7 +1897,7 @@ reallochook (ptr, size) if (size < osize) flood ((char *) ptr + size, FREEFLOOD, osize - size); } - + __free_hook = old_free_hook; __malloc_hook = old_malloc_hook; __realloc_hook = old_realloc_hook; diff --git a/src/gtkutil.c b/src/gtkutil.c index c2da9a145e6..6b92779cbf6 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -180,7 +180,7 @@ static void xg_list_insert (xg_list_node *list, xg_list_node *node) { xg_list_node *list_start = list->next; - + if (list_start) list_start->prev = node; node->next = list_start; node->prev = 0; @@ -213,7 +213,7 @@ get_utf8_string (str) char *str; { char *utf8_str = str; - + /* If not UTF-8, try current locale. */ if (str && !g_utf8_validate (str, -1, NULL)) utf8_str = g_locale_to_utf8 (str, -1, 0, 0, 0); @@ -242,7 +242,7 @@ xg_set_geometry (f) int top = f->output_data.x->top_pos; int yneg = f->output_data.x->size_hint_flags & YNegative; char geom_str[32]; - + if (xneg) left = -left; if (yneg) @@ -260,7 +260,7 @@ xg_set_geometry (f) } } - + /* Resize the outer window of frame F after chainging the height. This happend when the menu bar or the tool bar is added or removed. COLUMNS/ROWS is the size the edit area shall have after the resize. */ @@ -299,7 +299,7 @@ xg_resize_widgets (f, pixelwidth, pixelheight) int tbheight = FRAME_TOOLBAR_HEIGHT (f); int rows = PIXEL_TO_CHAR_HEIGHT (f, pixelheight - mbheight - tbheight); int columns = PIXEL_TO_CHAR_WIDTH (f, pixelwidth); - + if (FRAME_GTK_WIDGET (f) && (columns != FRAME_WIDTH (f) || rows != FRAME_HEIGHT (f) || pixelwidth != PIXEL_WIDTH (f) || pixelheight != PIXEL_HEIGHT (f))) @@ -333,7 +333,7 @@ xg_frame_set_char_size (f, cols, rows) int pixelheight = CHAR_TO_PIXEL_HEIGHT (f, rows) + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f); int pixelwidth = CHAR_TO_PIXEL_WIDTH (f, cols); - + /* Take into account the size of the scroll bar. Always use the number of columns occupied by the scroll bar here otherwise we might end up with a frame width that is not a multiple of the @@ -374,7 +374,7 @@ xg_win_to_widget (wdesc) event.any.window = gdkwin; gwdesc = gtk_get_event_widget (&event); } - + UNBLOCK_INPUT; return gwdesc; } @@ -404,13 +404,13 @@ xg_create_frame_widgets (f) GtkRcStyle *style; int i; char *title = 0; - + BLOCK_INPUT; wtop = gtk_window_new (GTK_WINDOW_TOPLEVEL); wvbox = gtk_vbox_new (FALSE, 0); wfixed = gtk_fixed_new (); /* Must have this to place scroll bars */ - + if (! wtop || ! wvbox || ! wfixed) { if (wtop) gtk_widget_destroy (wtop); @@ -430,7 +430,7 @@ xg_create_frame_widgets (f) else if (! NILP (f->name)) title = SDATA (f->name); if (title) gtk_window_set_title (GTK_WINDOW (wtop), title); - + FRAME_GTK_OUTER_WIDGET (f) = wtop; FRAME_GTK_WIDGET (f) = wfixed; f->output_data.x->vbox_widget = wvbox; @@ -440,7 +440,7 @@ xg_create_frame_widgets (f) gtk_widget_set_size_request (wfixed, PIXEL_WIDTH (f), PIXEL_HEIGHT (f)); - + gtk_container_add (GTK_CONTAINER (wtop), wvbox); gtk_box_pack_end (GTK_BOX (wvbox), wfixed, TRUE, TRUE, 0); @@ -456,11 +456,11 @@ xg_create_frame_widgets (f) later on when tool bar items are added. */ if (FRAME_EXTERNAL_TOOL_BAR (f) && FRAME_TOOLBAR_HEIGHT (f) == 0) FRAME_TOOLBAR_HEIGHT (f) = 34; - + gtk_widget_set_double_buffered (wvbox, FALSE); gtk_widget_set_double_buffered (wfixed, FALSE); gtk_widget_set_double_buffered (wtop, FALSE); - + /* GTK documents says use gtk_window_set_resizable. But then a user can't shrink the window from its starting size. */ gtk_window_set_policy (GTK_WINDOW (wtop), TRUE, TRUE, TRUE); @@ -472,7 +472,7 @@ xg_create_frame_widgets (f) GTK is to destroy the widget. We want Emacs to do that instead. */ g_signal_connect (G_OBJECT (wtop), "delete-event", G_CALLBACK (gtk_true), 0); - + /* Convert our geometry parameters into a geometry string and specify it. GTK will itself handle calculating the real position this way. */ @@ -508,7 +508,7 @@ xg_create_frame_widgets (f) /* Must use g_strdup because gtk_widget_modify_style does g_free. */ style->bg_pixmap_name[GTK_STATE_NORMAL] = g_strdup ("<none>"); gtk_widget_modify_style (wfixed, style); - + /* GTK does not set any border, and they look bad with GTK. */ f->output_data.x->border_width = 0; f->output_data.x->internal_border_width = 0; @@ -538,7 +538,7 @@ x_wm_set_size_hint (f, flags, user_position) int base_width, base_height; int min_rows = 0, min_cols = 0; int win_gravity = f->output_data.x->win_gravity; - + if (flags) { memset (&size_hints, 0, sizeof (size_hints)); @@ -547,7 +547,7 @@ x_wm_set_size_hint (f, flags, user_position) } else flags = f->output_data.x->size_hint_flags; - + size_hints = f->output_data.x->size_hints; hint_flags = f->output_data.x->hint_flags; @@ -567,7 +567,7 @@ x_wm_set_size_hint (f, flags, user_position) size_hints.min_width = base_width + min_cols * size_hints.width_inc; size_hints.min_height = base_height + min_rows * size_hints.height_inc; - + /* These currently have a one to one mapping with the X values, but I don't think we should rely on that. */ hint_flags |= GDK_HINT_WIN_GRAVITY; @@ -648,7 +648,7 @@ static char * get_dialog_title (char key) { char *title = ""; - + switch (key) { case 'E': case 'e': title = "Error"; @@ -746,7 +746,7 @@ create_dialog (wv, select_cb, deactivate_cb) g_signal_connect (G_OBJECT (wdialog), "delete-event", G_CALLBACK (dialog_delete_callback), 0); - + if (deactivate_cb) { g_signal_connect (G_OBJECT (wdialog), "close", deactivate_cb, 0); @@ -876,7 +876,7 @@ xg_get_file_name (f, prompt, default_filename, mustmatch_p) GtkFileSelection *filesel; int filesel_done = XG_FILE_NOT_DONE; char *fn = 0; - + filewin = gtk_file_selection_new (prompt); filesel = GTK_FILE_SELECTION (filewin); @@ -909,9 +909,9 @@ xg_get_file_name (f, prompt, default_filename, mustmatch_p) gtk_file_selection_hide_fileop_buttons (filesel); } - + gtk_widget_show_all (filewin); - + while (filesel_done == XG_FILE_NOT_DONE) gtk_main_iteration (); @@ -950,7 +950,7 @@ static xg_list_node xg_menu_item_cb_list; The menu bar and all sub menus under the menu bar in a frame share the same structure, hence the reference count. - + Returns CL_DATA if CL_DATA is not NULL, or a pointer to a newly allocated xg_menu_cb_data if CL_DATA is NULL. */ static xg_menu_cb_data * @@ -1069,7 +1069,7 @@ menuitem_highlight_callback (w, event, client_data) { xg_menu_item_cb_data *data = (xg_menu_item_cb_data*) client_data; gpointer call_data = event->type == GDK_LEAVE_NOTIFY ? 0 : client_data; - + if (! NILP (data->help) && data->cl_data->highlight_cb) { GtkCallback func = (GtkCallback) data->cl_data->highlight_cb; @@ -1125,14 +1125,14 @@ make_widget_for_menu_item (utf8_label, utf8_key) GtkWidget *wlbl; GtkWidget *wkey; GtkWidget *wbox; - + wbox = gtk_hbox_new (FALSE, 0); wlbl = gtk_label_new_with_mnemonic (utf8_label); wkey = gtk_label_new (utf8_key); gtk_misc_set_alignment (GTK_MISC (wlbl), 0.0, 0.5); gtk_misc_set_alignment (GTK_MISC (wkey), 0.0, 0.5); - + gtk_box_pack_start (GTK_BOX (wbox), wlbl, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (wbox), wkey, FALSE, FALSE, 0); @@ -1146,7 +1146,7 @@ make_widget_for_menu_item (utf8_label, utf8_key) UTF8_LABEL is the text for the menu item (GTK uses UTF8 internally). UTF8_KEY is the text representing the key binding. ITEM is the widget_value describing the menu item. - + GROUP is an in/out parameter. If the menu item to be created is not part of any radio menu group, *GROUP contains NULL on entry and exit. If the menu item to be created is part of a radio menu group, on entry @@ -1164,10 +1164,10 @@ make_menu_item (utf8_label, utf8_key, item, group) { GtkWidget *w; GtkWidget *wtoadd = 0; - + if (utf8_key) wtoadd = make_widget_for_menu_item (utf8_label, utf8_key); - + if (item->button_type == BUTTON_TYPE_TOGGLE) { *group = NULL; @@ -1189,7 +1189,7 @@ make_menu_item (utf8_label, utf8_key, item, group) if (utf8_key) w = gtk_menu_item_new (); else w = gtk_menu_item_new_with_mnemonic (utf8_label); } - + if (wtoadd) gtk_container_add (GTK_CONTAINER (w), wtoadd); if (! item->enabled) gtk_widget_set_sensitive (w, FALSE); @@ -1230,7 +1230,7 @@ tearoff_remove (widget, event, client_data) /* Callback invoked when a menu is detached. It sets the xg_did_tearoff variable. WIDGET is the GtkTearoffMenuItem. - CLIENT_DATA is not used. */ + CLIENT_DATA is not used. */ static void tearoff_activate (widget, client_data) GtkWidget *widget; @@ -1257,7 +1257,7 @@ xg_keep_popup (menu, submenu) /* Find the top widget for the detached menu. */ p = gtk_widget_get_toplevel (submenu); - + /* Delay destroying the menu until the detached menu is removed. */ g_signal_connect (G_OBJECT (p), "unmap_event", G_CALLBACK (tearoff_remove), menu); @@ -1308,7 +1308,7 @@ xg_create_one_menuitem (item, f, select_cb, highlight_cb, cl_data, group) cb_data->help = item->help; cb_data->cl_data = cl_data; cb_data->call_data = item->call_data; - + g_signal_connect (G_OBJECT (w), "destroy", G_CALLBACK (menuitem_destroy_callback), @@ -1395,7 +1395,7 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb, g_object_set_data (G_OBJECT (wmenu), XG_FRAME_DATA, (gpointer)cl_data); g_signal_connect (G_OBJECT (wmenu), "destroy", G_CALLBACK (menu_destroy_callback), cl_data); - + if (name) gtk_widget_set_name (wmenu, name); @@ -1406,7 +1406,7 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb, g_signal_connect (G_OBJECT (wmenu), "grab-notify", G_CALLBACK (menu_grab_callback), 0); } - + if (! menu_bar_p && add_tearoff_p) { GtkWidget *tearoff = gtk_tearoff_menu_item_new (); @@ -1419,7 +1419,7 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb, for (item = data; item; item = item->next) { GtkWidget *w; - + if (pop_up_p && !item->contents && !item->call_data && !xg_separator_p (item->name)) { @@ -1585,7 +1585,7 @@ remove_from_container (wcont, list) /* Add a ref to w so we can explicitly destroy it later. */ gtk_widget_ref (w); gtk_container_remove (GTK_CONTAINER (wcont), w); - + /* If there is a menu under this widget that has been detached, there is a reference to it, and just removing w from the container does not destroy the submenu. By explicitly @@ -1679,7 +1679,7 @@ xg_update_menubar (menubar, f, list, iter, pos, val, Current: A B C New: A C Remove B. */ - + gtk_widget_ref (GTK_WIDGET (witem)); gtk_container_remove (GTK_CONTAINER (menubar), GTK_WIDGET (witem)); gtk_widget_destroy (GTK_WIDGET (witem)); @@ -1707,7 +1707,7 @@ xg_update_menubar (menubar, f, list, iter, pos, val, is up to date when leaving the minibuffer. */ GtkLabel *wlabel = GTK_LABEL (gtk_bin_get_child (GTK_BIN (witem))); char *utf8_label = get_utf8_string (val->name); - + gtk_label_set_text_with_mnemonic (wlabel, utf8_label); iter = g_list_next (iter); @@ -1787,8 +1787,8 @@ xg_update_menu_item (val, w, select_cb, highlight_cb, cl_data) const char *old_label = 0; const char *old_key = 0; xg_menu_item_cb_data *cb_data; - - wchild = gtk_bin_get_child (GTK_BIN (w)); + + wchild = gtk_bin_get_child (GTK_BIN (w)); utf8_label = get_utf8_string (val->name); utf8_key = get_utf8_string (val->key); @@ -1830,10 +1830,10 @@ xg_update_menu_item (val, w, select_cb, highlight_cb, cl_data) } } - + if (wkey) old_key = gtk_label_get_label (wkey); if (wlbl) old_label = gtk_label_get_label (wlbl); - + if (wkey && utf8_key && (! old_key || strcmp (utf8_key, old_key) != 0)) gtk_label_set_text (wkey, utf8_key); @@ -1842,7 +1842,7 @@ xg_update_menu_item (val, w, select_cb, highlight_cb, cl_data) if (utf8_key && utf8_key != val->key) g_free (utf8_key); if (utf8_label && utf8_label != val->name) g_free (utf8_label); - + if (! val->enabled && GTK_WIDGET_SENSITIVE (w)) gtk_widget_set_sensitive (w, FALSE); else if (val->enabled && ! GTK_WIDGET_SENSITIVE (w)) @@ -1855,7 +1855,7 @@ xg_update_menu_item (val, w, select_cb, highlight_cb, cl_data) cb_data->call_data = val->call_data; cb_data->help = val->help; cb_data->cl_data = cl_data; - + /* We assume the callback functions don't change. */ if (val->call_data && ! val->contents) { @@ -1951,10 +1951,10 @@ xg_update_submenu (submenu, f, val, widget_value *cur; int has_tearoff_p = 0; GList *first_radio = 0; - + if (submenu) list = gtk_container_get_children (GTK_CONTAINER (submenu)); - + for (cur = val, iter = list; cur && iter; iter = g_list_next (iter), cur = cur->next) @@ -2046,7 +2046,7 @@ xg_update_submenu (submenu, f, val, if (cur && first_radio) remove_from_container (submenu, first_radio); else remove_from_container (submenu, iter); } - + if (cur) { /* More items added. Create them. */ @@ -2062,7 +2062,7 @@ xg_update_submenu (submenu, f, val, cl_data, 0); } - + if (list) g_list_free (list); return newsub; @@ -2091,7 +2091,7 @@ xg_modify_menubar_widgets (menubar, f, val, deep_p, GList *list = gtk_container_get_children (GTK_CONTAINER (menubar)); if (! list) return; - + cl_data = (xg_menu_cb_data*) g_object_get_data (G_OBJECT (menubar), XG_FRAME_DATA); @@ -2129,7 +2129,7 @@ xg_modify_menubar_widgets (menubar, f, val, deep_p, break; } } - + newsub = xg_update_submenu (sub, f, cur->contents, @@ -2159,7 +2159,7 @@ xg_update_frame_menubar (f) { struct x_output *x = f->output_data.x; GtkRequisition req; - + if (!x->menubar_widget || GTK_WIDGET_MAPPED (x->menubar_widget)) return 0; @@ -2177,7 +2177,7 @@ xg_update_frame_menubar (f) /* The height has changed, resize outer widget and set columns rows to what we had before adding the menu bar. */ xg_resize_outer_widget (f, FRAME_WIDTH (f), FRAME_HEIGHT (f)); - + SET_FRAME_GARBAGED (f); UNBLOCK_INPUT; } @@ -2311,7 +2311,7 @@ xg_gtk_scroll_destroy (widget, data) { gpointer p; int id = (int)data; - + p = g_object_get_data (G_OBJECT (widget), XG_LAST_SB_DATA); if (p) xfree (p); xg_remove_widget_from_map (id); @@ -2355,7 +2355,7 @@ xg_create_scroll_bar (f, bar, scroll_callback, scroll_bar_name) GtkWidget *wscroll; GtkObject *vadj; int scroll_id; - + /* Page, step increment values are not so important here, they will be corrected in x_set_toolkit_scroll_bar_thumb. */ vadj = gtk_adjustment_new (XG_SB_MIN, XG_SB_MIN, XG_SB_MAX, @@ -2364,9 +2364,9 @@ xg_create_scroll_bar (f, bar, scroll_callback, scroll_bar_name) wscroll = gtk_vscrollbar_new (GTK_ADJUSTMENT (vadj)); gtk_widget_set_name (wscroll, scroll_bar_name); gtk_range_set_update_policy (GTK_RANGE (wscroll), GTK_UPDATE_CONTINUOUS); - + scroll_id = xg_store_widget_in_map (wscroll); - + g_signal_connect (G_OBJECT (vadj), "value-changed", scroll_callback, @@ -2386,7 +2386,7 @@ xg_create_scroll_bar (f, bar, scroll_callback, scroll_bar_name) "button-release-event", G_CALLBACK (scroll_bar_button_cb), 0); - + gtk_fixed_put (GTK_FIXED (f->output_data.x->edit_widget), wscroll, 0, 0); @@ -2426,7 +2426,7 @@ xg_remove_scroll_bar (f, scrollbar_id) TOP/LEFT are the new pixel positions where the bar shall appear. WIDTH, HEIGHT is the size in pixels the bar shall have. */ void -xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height) +xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height) FRAME_PTR f; int scrollbar_id; int top; @@ -2483,7 +2483,7 @@ xg_set_toolkit_scroll_bar_thumb (bar, portion, position, whole) gdouble shown; gdouble top; int size, value; - + adj = gtk_range_get_adjustment (GTK_RANGE (wscroll)); if (whole <= 0) @@ -2552,7 +2552,7 @@ xg_tool_bar_callback (w, client_data) return; idx *= TOOL_BAR_ITEM_NSLOTS; - + key = AREF (f->tool_bar_items, idx + TOOL_BAR_ITEM_KEY); XSETFRAME (frame, f); event.kind = TOOL_BAR_EVENT; @@ -2678,10 +2678,10 @@ xg_create_tool_bar (f) x->handlebox_widget = gtk_handle_box_new (); gtk_container_add (GTK_CONTAINER (x->handlebox_widget), x->toolbar_widget); - + gtk_box_pack_start (GTK_BOX (x->vbox_widget), x->handlebox_widget, FALSE, FALSE, 0); - + gtk_box_reorder_child (GTK_BOX (x->vbox_widget), x->handlebox_widget, vbox_pos); @@ -2694,11 +2694,11 @@ xg_create_tool_bar (f) gtk_widget_size_request (x->toolbar_widget, &req); FRAME_TOOLBAR_HEIGHT (f) = req.height; - + /* The height has changed, resize outer widget and set columns rows to what we had before adding the tool bar. */ xg_resize_outer_widget (f, FRAME_WIDTH (f), FRAME_HEIGHT (f)); - + SET_FRAME_GARBAGED (f); } @@ -2716,7 +2716,7 @@ update_frame_tool_bar (f) return; BLOCK_INPUT; - + if (! x->toolbar_widget) xg_create_tool_bar (f); @@ -2724,7 +2724,7 @@ update_frame_tool_bar (f) icon_list = gtk_container_get_children (GTK_CONTAINER (x->toolbar_widget)); iter = icon_list; - + for (i = 0; i < f->n_tool_bar_items; ++i) { #define PROP(IDX) AREF (f->tool_bar_items, i * TOOL_BAR_ITEM_NSLOTS + (IDX)) @@ -2775,7 +2775,7 @@ update_frame_tool_bar (f) if (wicon) gtk_widget_hide (wicon); continue; } - + if (! wicon) { GdkPixmap *gpix = gdk_pixmap_foreign_new (img->pixmap); @@ -2788,7 +2788,7 @@ update_frame_tool_bar (f) w, GTK_SIGNAL_FUNC (xg_tool_bar_callback), (gpointer)i); - + /* Save the image so we can see if an update is needed when this function is called again. */ g_object_set_data (G_OBJECT (w), XG_TOOL_BAR_IMAGE_DATA, @@ -2798,7 +2798,7 @@ update_frame_tool_bar (f) of the GtkImage parent. Go upwards until we find the button. */ while (! GTK_IS_BUTTON (w)) w = gtk_widget_get_parent (w); - + if (w) { /* Save the frame in the button so the xg_tool_bar_callback @@ -2848,7 +2848,7 @@ update_frame_tool_bar (f) gtk_widget_set_sensitive (wicon, enabled_p); gtk_widget_show (wicon); } - + #undef PROP } diff --git a/src/gtkutil.h b/src/gtkutil.h index 103b9781417..b6779b465f1 100644 --- a/src/gtkutil.h +++ b/src/gtkutil.h @@ -66,7 +66,7 @@ typedef struct xg_list_node_ typedef struct xg_menu_cb_data_ { xg_list_node ptrs; - + FRAME_PTR f; Lisp_Object menu_bar_vector; int menu_bar_items_used; @@ -85,7 +85,7 @@ typedef struct xg_menu_item_cb_data_ Lisp_Object help; gpointer call_data; xg_menu_cb_data *cl_data; - + } xg_menu_item_cb_data; @@ -98,7 +98,7 @@ typedef struct _widget_value char *name; /* value (meaning depend on widget type) */ char *value; - /* keyboard equivalent. no implications for XtTranslations */ + /* keyboard equivalent. no implications for XtTranslations */ char *key; /* Help string or nil if none. GC finds this string through the frame's menu_bar_vector diff --git a/src/hftctl.c b/src/hftctl.c index a6daf0a1f1b..272f7bad7fe 100644 --- a/src/hftctl.c +++ b/src/hftctl.c @@ -67,7 +67,7 @@ static char SCCSid[] = "com/gnuemacs/src,3.1,9021-90/05/03-5/3/90"; #define QLOC ((HFQLOCCH<<8)|HFQLOCCL) #define QPS ((HFQPRESCH<<8)|HFQPRESCL) -#ifndef TCGETS +#ifndef TCGETS #define TCGETS TCGETA #endif #ifndef TCSETS diff --git a/src/indent.h b/src/indent.h index 676f64a8ae8..0ce7238ec75 100644 --- a/src/indent.h +++ b/src/indent.h @@ -26,13 +26,13 @@ Boston, MA 02111-1307, USA. */ Example (where W_ stands for a wide-column character): ---------- abcdefgh\\ - W_ + W_ ---------- - To handle this case, we should not calculate the tab offset by + To handle this case, we should not calculate the tab offset by tab_offset += width; - Instead, we must remember tab_offset of the line. + Instead, we must remember tab_offset of the line. */ diff --git a/src/insdel.c b/src/insdel.c index 281cb010971..d4921b5f1ce 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -373,7 +373,7 @@ adjust_markers_for_delete (from, from_byte, to, to_byte) if (! m->insertion_type) /* Normal markers will end up at the beginning of the re-inserted text after undoing a deletion, and must be - adjusted to move them to the correct place. */ + adjusted to move them to the correct place. */ record_marker_adjustment (marker, from - charpos); else if (charpos < to) /* Before-insertion markers will automatically move forward @@ -536,7 +536,7 @@ make_gap_larger (nbytes_added) That won't work because so many places use `int'. Make sure we don't introduce overflows in the calculation. */ - + if (Z_BYTE - BEG_BYTE + GAP_SIZE >= (((EMACS_INT) 1 << (min (VALBITS, BITS_PER_INT) - 1)) - 1 - nbytes_added)) @@ -990,7 +990,7 @@ insert_1_both (string, nchars, nbytes, inherit, prepare, before_markers) { if (nchars == 0) return; - + if (NILP (current_buffer->enable_multibyte_characters)) nchars = nbytes; @@ -1173,7 +1173,7 @@ insert_from_string_1 (string, pos, pos_byte, nchars, nbytes, /* Get the intervals for the part of the string we are inserting. */ if (nbytes < SBYTES (string)) intervals = copy_intervals (intervals, pos, nchars); - + /* Insert those intervals. */ graft_intervals_into_buffer (intervals, PT, nchars, current_buffer, inherit); @@ -1239,13 +1239,13 @@ insert_from_buffer_1 (buf, from, nchars, inherit) if (chunk < incoming_nbytes) outgoing_after_gap - = count_size_as_multibyte (BUF_BYTE_ADDRESS (buf, + = count_size_as_multibyte (BUF_BYTE_ADDRESS (buf, from_byte + chunk), incoming_nbytes - chunk); outgoing_nbytes = outgoing_before_gap + outgoing_after_gap; } - + /* Make sure point-max won't overflow after this insertion. */ XSETINT (temp, outgoing_nbytes + Z); if (outgoing_nbytes + Z != XINT (temp)) @@ -1329,7 +1329,7 @@ insert_from_buffer_1 (buf, from, nchars, inherit) from += nchars; intervals = copy_intervals (intervals, from, nchars); } - + /* Insert those intervals. */ graft_intervals_into_buffer (intervals, PT, nchars, current_buffer, inherit); @@ -2129,7 +2129,7 @@ signal_after_change (charpos, lendel, lenins) return; } - if (!NILP (combine_after_change_list)) + if (!NILP (combine_after_change_list)) Fcombine_after_change_execute (); if (!NILP (Vafter_change_functions)) @@ -2260,7 +2260,7 @@ DEFUN ("combine-after-change-execute", Fcombine_after_change_execute, that was changed. */ begpos = BEG + beg; endpos = Z - end; - + /* We are about to handle these, so discard them. */ combine_after_change_list = Qnil; diff --git a/src/keyboard.c b/src/keyboard.c index 704aebccba5..5b520b9569b 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -10897,7 +10897,7 @@ will be in `last-command' during the following command. */); doc: /* The command bound to the current key sequence before remapping. It equals `this-command' if the original command was not remapped through any of the active keymaps. Otherwise, the value of `this-command' is the -result of looking up the original command in the active keymaps. */); +result of looking up the original command in the active keymaps. */); Vthis_original_command = Qnil; DEFVAR_INT ("auto-save-interval", &auto_save_interval, diff --git a/src/keyboard.h b/src/keyboard.h index 87af2e84692..9d77d21ec75 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -210,7 +210,7 @@ extern Lisp_Object internal_last_event_frame; Using a Lisp vector to hold this information while we decode it takes care of protecting all the data from GC. */ extern Lisp_Object item_properties; - + /* This describes the elements of item_properties. The first element is not a property, it is a pointer to the item properties that is saved for GC protection. */ diff --git a/src/lread.c b/src/lread.c index 5d5e6e67500..e32f669ecf2 100644 --- a/src/lread.c +++ b/src/lread.c @@ -215,7 +215,7 @@ static Lisp_Object load_descriptor_unwind P_ ((Lisp_Object)); The READCHAR and UNREAD macros are meant for reading/unreading a byte code; they do not handle multibyte characters. The caller should manage them if necessary. - + [ Actually that seems to be a lie; READCHAR will definitely read multibyte characters from buffer sources, at least. Is the comment just out of date? @@ -233,7 +233,7 @@ readchar (readcharfun) register int c; readchar_count++; - + if (BUFFERP (readcharfun)) { register struct buffer *inbuffer = XBUFFER (readcharfun); @@ -411,7 +411,7 @@ unreadchar (readcharfun, c) static Lisp_Object read_internal_start P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); static Lisp_Object read0 P_ ((Lisp_Object)); -static Lisp_Object read1 P_ ((Lisp_Object, int *, int)); +static Lisp_Object read1 P_ ((Lisp_Object, int *, int)); static Lisp_Object read_list P_ ((int, Lisp_Object)); static Lisp_Object read_vector P_ ((Lisp_Object, int)); @@ -457,7 +457,7 @@ read_filtered_event (no_switch_frame, ascii_required, error_nonascii, if (display_hourglass_p) cancel_hourglass (); #endif - + delayed_switch_frame = Qnil; /* Read until we get an acceptable event. */ @@ -498,7 +498,7 @@ read_filtered_event (no_switch_frame, ascii_required, error_nonascii, XSETFASTINT (val, XINT (tem1) | XINT (Fcar (Fcdr (tem)))); } } - + /* If we don't have a character now, deal with it appropriately. */ if (!INTEGERP (val)) { @@ -709,7 +709,7 @@ Return t if file exists. */) } else file = Fsubstitute_in_file_name (file); - + /* Avoid weird lossage with null string as arg, since it would try to load a directory as a Lisp file */ @@ -1550,7 +1550,7 @@ read_internal_start (stream, start, end) read_from_string_index_byte = string_char_to_byte (stream, startval); read_from_string_limit = endval; } - + retval = read0 (stream); if (EQ (Vread_with_symbol_positions, Qt) || EQ (Vread_with_symbol_positions, stream)) @@ -1751,7 +1751,7 @@ read_escape (readcharfun, stringp, byterep) break; } } - + *byterep = 1; return i; } @@ -1825,11 +1825,11 @@ read_integer (readcharfun, radix) } else if (c == '+') c = READCHAR; - + while (c >= 0) { int digit; - + if (c >= '0' && c <= '9') digit = c - '0'; else if (c >= 'a' && c <= 'z') @@ -1894,7 +1894,7 @@ to_multibyte (p, end, nchars) if (nbytes != *nchars) nbytes = str_as_multibyte (read_buffer, read_buffer_size, *p - read_buffer, nchars); - + *p = read_buffer + nbytes; } @@ -1992,7 +1992,7 @@ read1 (readcharfun, pch, first_in_list) == (SCHARS (tmp) - 1) * BITS_PER_CHAR)) Fsignal (Qinvalid_read_syntax, Fcons (make_string ("#&...", 5), Qnil)); - + val = Fmake_bool_vector (length, Qnil); bcopy (SDATA (tmp), XBOOL_VECTOR (val)->data, size_in_chars); @@ -2047,7 +2047,7 @@ read1 (readcharfun, pch, first_in_list) UNGCPRO; return tmp; } - + /* #@NUMBER is used to skip NUMBER following characters. That's used in .elc files to skip over doc strings and function definitions. */ @@ -2064,7 +2064,7 @@ read1 (readcharfun, pch, first_in_list) } if (c >= 0) UNREAD (c); - + if (load_force_doc_strings && EQ (readcharfun, Qget_file_char)) { /* If we are supposed to force doc strings into core right now, @@ -2170,7 +2170,7 @@ read1 (readcharfun, pch, first_in_list) /* ...and #n# will use the real value from now on. */ Fsetcdr (cell, tem); - + return tem; } /* #n# returns a previously read object. */ @@ -2183,7 +2183,7 @@ read1 (readcharfun, pch, first_in_list) } else if (c == 'r' || c == 'R') return read_integer (readcharfun, n); - + /* Fall through to error message. */ } else if (c == 'x' || c == 'X') @@ -2442,7 +2442,7 @@ read1 (readcharfun, pch, first_in_list) p = read_buffer + offset; end = read_buffer + read_buffer_size; } - + if (c == '\\') { c = READCHAR; @@ -2536,7 +2536,7 @@ read1 (readcharfun, pch, first_in_list) : intern (read_buffer); if (EQ (Vread_with_symbol_positions, Qt) || EQ (Vread_with_symbol_positions, readcharfun)) - Vread_symbol_positions_list = + Vread_symbol_positions_list = /* Kind of a hack; this will probably fail if characters in the symbol name were escaped. Not really a big deal, though. */ @@ -2567,7 +2567,7 @@ substitute_object_in_subtree (object, placeholder) /* Make all the substitutions. */ check_object = substitute_object_recurse (object, placeholder, object); - + /* Clear seen_list because we're done with it. */ seen_list = Qnil; @@ -2611,7 +2611,7 @@ substitute_object_recurse (object, placeholder, subtree) read_objects. */ if (!EQ (Qnil, Frassq (subtree, read_objects))) seen_list = Fcons (subtree, seen_list); - + /* Recurse according to subtree's type. Every branch must return a Lisp_Object. */ switch (XTYPE (subtree)) @@ -2624,7 +2624,7 @@ substitute_object_recurse (object, placeholder, subtree) { Lisp_Object idx = make_number (i); SUBSTITUTE (Faref (subtree, idx), - Faset (subtree, idx, true_value)); + Faset (subtree, idx, true_value)); } return subtree; } @@ -2645,7 +2645,7 @@ substitute_object_recurse (object, placeholder, subtree) INTERVAL root_interval = STRING_INTERVALS (subtree); Lisp_Object arg = Fcons (object, placeholder); - + traverse_intervals_noorder (root_interval, &substitute_in_interval, arg); @@ -2682,7 +2682,7 @@ isfloat_string (cp) register char *cp; { register int state; - + char *start = cp; state = 0; @@ -2813,7 +2813,7 @@ read_vector (readcharfun, bytecodeflag) } return vector; } - + /* FLAG = 1 means check for ] to terminate rather than ) and . FLAG = -1 means check for starting with defun and make structure pure. */ @@ -2832,7 +2832,7 @@ read_list (flag, readcharfun) struct gcpro gcpro1, gcpro2; /* 0 is the normal case. 1 means this list is a doc reference; replace it with the number 0. - 2 means this list is a doc reference; replace it with the doc string. */ + 2 means this list is a doc reference; replace it with the doc string. */ int doc_reference = 0; /* Initialize this to 1 if we are reading a list. */ @@ -3321,7 +3321,7 @@ init_obarray () /* Intern nil in the obarray */ XSYMBOL (Qnil)->interned = SYMBOL_INTERNED_IN_INITIAL_OBARRAY; XSYMBOL (Qnil)->constant = 1; - + /* These locals are to kludge around a pyramid compiler bug. */ hash = hash_string ("nil", 3); /* Separate statement here to avoid VAXC bug. */ @@ -3454,7 +3454,7 @@ defvar_per_buffer (namestring, address, type, doc) SET_SYMBOL_VALUE (sym, val); PER_BUFFER_SYMBOL (offset) = sym; PER_BUFFER_TYPE (offset) = type; - + if (PER_BUFFER_IDX (offset) == 0) /* Did a DEFVAR_PER_BUFFER without initializing the corresponding slot of buffer_local_flags */ @@ -3626,8 +3626,8 @@ init_lread () #endif #ifndef WINDOWSNT - /* When Emacs is invoked over network shares on NT, PATH_LOADSEARCH is - almost never correct, thereby causing a warning to be printed out that + /* When Emacs is invoked over network shares on NT, PATH_LOADSEARCH is + almost never correct, thereby causing a warning to be printed out that confuses users. Since PATH_LOADSEARCH is always overridden by the EMACSLOADPATH environment variable below, disable the warning on NT. */ @@ -3750,7 +3750,7 @@ symbol from the position where `read' or `read-from-string' started. Note that a symbol will appear multiple times in this list, if it was read multiple times. The list is in the same order as the symbols were read in. */); - Vread_symbol_positions_list = Qnil; + Vread_symbol_positions_list = Qnil; DEFVAR_LISP ("load-path", &Vload_path, doc: /* *List of directories to search for files to load. @@ -3914,7 +3914,7 @@ to load. See also `load-dangerous-libraries'. */); staticpro (&read_objects); read_objects = Qnil; staticpro (&seen_list); - + Vloads_in_progress = Qnil; staticpro (&Vloads_in_progress); } diff --git a/src/m/7300.h b/src/m/7300.h index 8f4f70efe69..3db16e67fb6 100644 --- a/src/m/7300.h +++ b/src/m/7300.h @@ -20,7 +20,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2-2" */ @@ -59,7 +59,7 @@ Boston, MA 02111-1307, USA. */ /* Data type of load average, as read out of kmem. */ /* These are commented out since it is not supported by this machine. */ - + /* #define LOAD_AVE_TYPE long */ /* Convert that into an integer that is 100 for a load average of 1.0 */ diff --git a/src/m/alliant-2800.h b/src/m/alliant-2800.h index 243b786e714..dabad592c39 100644 --- a/src/m/alliant-2800.h +++ b/src/m/alliant-2800.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-3" */ diff --git a/src/m/alliant.h b/src/m/alliant.h index 86f104ceedd..3b79a3c1709 100644 --- a/src/m/alliant.h +++ b/src/m/alliant.h @@ -21,7 +21,7 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/alliant1.h b/src/m/alliant1.h index 95f56cf1804..2e061227b47 100644 --- a/src/m/alliant1.h +++ b/src/m/alliant1.h @@ -1,7 +1,7 @@ /* config.h should include this file for version 1 of Alliant's operating system. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/alliant4.h b/src/m/alliant4.h index ade3dbbaae5..7e24c53eb89 100644 --- a/src/m/alliant4.h +++ b/src/m/alliant4.h @@ -1,7 +1,7 @@ /* machine description file for Alliant Concentrix 4.0 or later. Use alliant.h for versions 2 and 3. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/alpha.h b/src/m/alpha.h index 5ce528622cc..b37116b0d48 100644 --- a/src/m/alpha.h +++ b/src/m/alpha.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/altos.h b/src/m/altos.h index a20f89ac903..654acc1d5c1 100644 --- a/src/m/altos.h +++ b/src/m/altos.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ diff --git a/src/m/amdahl.h b/src/m/amdahl.h index b6a3871a221..4e64d0dca85 100644 --- a/src/m/amdahl.h +++ b/src/m/amdahl.h @@ -1,4 +1,4 @@ -/* amdahl machine description file +/* amdahl machine description file Copyright (C) 1987, 1999, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -123,7 +123,7 @@ extern int sign_extend_temp; /* Put text and data on non-segment boundary; makes image smaller */ -#define LD_SWITCH_MACHINE -N +#define LD_SWITCH_MACHINE -N /* When writing the 'xemacs' file, make text segment ro */ #define EXEC_MAGIC 0410 diff --git a/src/m/amdx86-64.h b/src/m/amdx86-64.h index eb603eeb469..c7cfbf8b847 100644 --- a/src/m/amdx86-64.h +++ b/src/m/amdx86-64.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="linux" */ diff --git a/src/m/apollo.h b/src/m/apollo.h index 2808e580368..83af7496e01 100644 --- a/src/m/apollo.h +++ b/src/m/apollo.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-3" */ diff --git a/src/m/att3b.h b/src/m/att3b.h index ed5f3c53dc9..46b101dfa4c 100644 --- a/src/m/att3b.h +++ b/src/m/att3b.h @@ -21,7 +21,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2-2" */ diff --git a/src/m/celerity.h b/src/m/celerity.h index 3ec5e99c1ec..c38d144d9b4 100644 --- a/src/m/celerity.h +++ b/src/m/celerity.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/convex.h b/src/m/convex.h index 44a86bf5d84..29797fc1314 100644 --- a/src/m/convex.h +++ b/src/m/convex.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-3" */ @@ -38,7 +38,7 @@ Boston, MA 02111-1307, USA. */ * to be corrected before they can be used as byte counts. */ /* #define WORD_MACHINE */ - + /* Now define a symbol for the cpu type, if your compiler does not define it automatically. */ #ifndef convex /* The compiler doesn't always do this. */ @@ -54,7 +54,7 @@ Boston, MA 02111-1307, USA. */ and Ralph Sobek <Ralph.Sobek@cerfacs.fr> agree must ignore one arg when compiled with convex compiler. */ #define CRT0_DUMMIES ignore, -#else +#else #define CRT0_DUMMIES #endif @@ -86,9 +86,9 @@ Boston, MA 02111-1307, USA. */ /*#define VIRT_ADDR_VARIES*/ /* Must use the system's termcap. It does special things. */ - + #define LIBS_TERMCAP -ltermcap - + /* Define NO_REMAP if memory segmentation makes it not work well to change the boundary between the text section and data section when Emacs is dumped. If you define this, the preloaded Lisp diff --git a/src/m/cydra5.h b/src/m/cydra5.h index 344e6139301..7f227e36df9 100644 --- a/src/m/cydra5.h +++ b/src/m/cydra5.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-3" */ diff --git a/src/m/delta88k.h b/src/m/delta88k.h index 08eb98e1eaa..0b574ef0ca4 100644 --- a/src/m/delta88k.h +++ b/src/m/delta88k.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-3" */ @@ -54,7 +54,7 @@ Boston, MA 02111-1307, USA. */ /* Use type int rather than a union, to represent Lisp_Object */ /* This is desirable for most machines. */ -#define NO_UNION_TYPE +#define NO_UNION_TYPE /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend the 24-bit bit field into an int. In other words, if bit fields @@ -84,7 +84,7 @@ Boston, MA 02111-1307, USA. */ Otherwise Emacs assumes that text space precedes data space, numerically. */ -/* #define VIRT_ADDR_VARIES */ +/* #define VIRT_ADDR_VARIES */ /* Define NO_REMAP if memory segmentation makes it not work well to change the boundary between the text section and data section @@ -96,13 +96,13 @@ Boston, MA 02111-1307, USA. */ /* Motorola SysV has PTYs. Not all usg3-5 systems do, so this is defined here. */ -#define HAVE_PTYS +#define HAVE_PTYS #define SYSV_PTYS /* Ditto for IPC. */ -/* +/* * we now have job control in R32V1 */ #undef NOMULTIPLEJOBS @@ -134,7 +134,7 @@ Boston, MA 02111-1307, USA. */ /* previously defined in usg5-4, if we choose to use that. */ #ifndef LIBS_SYSTEM #ifdef USG5_4 -#define LIBS_SYSTEM -lsocket -lnsl +#define LIBS_SYSTEM -lsocket -lnsl #else #define LIBS_SYSTEM -lbsd -lg #endif /* USG5_4 */ diff --git a/src/m/dpx2.h b/src/m/dpx2.h index eee18512e6d..282c4bd877e 100644 --- a/src/m/dpx2.h +++ b/src/m/dpx2.h @@ -1,4 +1,4 @@ -/* machine description for Bull DPX/2 range +/* machine description for Bull DPX/2 range Copyright (C) 1985, 1986, 1999, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -18,12 +18,12 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-3" */ /* - * You need to either un-comment one of these lines, or copy one + * You need to either un-comment one of these lines, or copy one * of them to config.h before you include this file. * Note that some simply define a constant and others set a value. */ diff --git a/src/m/dual.h b/src/m/dual.h index a2c022f08ed..d00a30d9345 100644 --- a/src/m/dual.h +++ b/src/m/dual.h @@ -18,7 +18,7 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" @@ -57,7 +57,7 @@ NOTE-END */ /* Data type of load average, as read out of kmem. */ /* These are commented out since it does not really work in uniplus */ - + /* #define LOAD_AVE_TYPE long */ /* Convert that into an integer that is 100 for a load average of 1.0 */ diff --git a/src/m/elxsi.h b/src/m/elxsi.h index b3003000dc5..b392e07c5f0 100644 --- a/src/m/elxsi.h +++ b/src/m/elxsi.h @@ -19,7 +19,7 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ diff --git a/src/m/gould-np1.h b/src/m/gould-np1.h index 00ae9604d59..fcbeac3b6ca 100644 --- a/src/m/gould-np1.h +++ b/src/m/gould-np1.h @@ -18,7 +18,7 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-3" */ diff --git a/src/m/gould.h b/src/m/gould.h index c2e469db38e..af77843a9f2 100644 --- a/src/m/gould.h +++ b/src/m/gould.h @@ -25,7 +25,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" @@ -37,11 +37,11 @@ Gould Power Node (-machine=gould -opsystem=bsd4-2 or bsd4-3) On UTX/32 2.0, use -opsystem=bsd4-3 - On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling - lib-src/sorted-doc tickles a compiler bug: remove the -g flag to cc in the + On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling + lib-src/sorted-doc tickles a compiler bug: remove the -g flag to cc in the makefile. - UTX/32 1.3 has a bug in the bcopy library routine. Fix it by + UTX/32 1.3 has a bug in the bcopy library routine. Fix it by #undef BSTRING in gould.h. Version 19 incorporates support for releases 2.1 and later of UTX/32. @@ -70,7 +70,7 @@ NOTE-END */ #define GOULD #endif -/* sel is an old preprocessor name on gould machines +/* sel is an old preprocessor name on gould machines - it is no longer needed and interferes with a variable in xmenu.c */ #undef sel diff --git a/src/m/hp800.h b/src/m/hp800.h index 72c3a1ca4ea..5e4e0fd0ec6 100644 --- a/src/m/hp800.h +++ b/src/m/hp800.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="hpux" */ @@ -61,7 +61,7 @@ Boston, MA 02111-1307, USA. */ /* The standard definitions of these macros would work ok, but these are faster because the constants are short. */ - + #define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS) diff --git a/src/m/hp9000s300.h b/src/m/hp9000s300.h index 725aa0d9eec..ad4ca111664 100644 --- a/src/m/hp9000s300.h +++ b/src/m/hp9000s300.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/i860.h b/src/m/i860.h index b65b6fdd27d..48222538380 100644 --- a/src/m/i860.h +++ b/src/m/i860.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ diff --git a/src/m/ibm370aix.h b/src/m/ibm370aix.h index cae7f24db36..32dc30089a5 100644 --- a/src/m/ibm370aix.h +++ b/src/m/ibm370aix.h @@ -49,7 +49,7 @@ Boston, MA 02111-1307, USA. */ #define LOAD_AVE_TYPE double #undef LIBS_MACHINE -#define LIBS_MACHINE +#define LIBS_MACHINE #undef LD_SWITCH_MACHINE #define LD_SWITCH_MACHINE -xa diff --git a/src/m/ibmps2-aix.h b/src/m/ibmps2-aix.h index 36dc0e7cbdc..a29d916451d 100644 --- a/src/m/ibmps2-aix.h +++ b/src/m/ibmps2-aix.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" @@ -190,7 +190,7 @@ so disable it for them. */ #ifdef __GNUC__ #define alloca(n) __builtin_alloca(n) #if __GNUC__ < 2 -#define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc +#define LIB_STANDARD /usr/local/lib/gcc-gnulib -lbsd -lrts -lc #endif /* -g fails to work, so it is omitted. */ /* tranle says that -fstrength-reduce does not help. */ diff --git a/src/m/ibmrs6000.h b/src/m/ibmrs6000.h index 51f809c45ff..650530bf4c0 100644 --- a/src/m/ibmrs6000.h +++ b/src/m/ibmrs6000.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="aix3-1" */ diff --git a/src/m/ibmrt-aix.h b/src/m/ibmrt-aix.h index 0ae8941007f..26803238953 100644 --- a/src/m/ibmrt-aix.h +++ b/src/m/ibmrt-aix.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2-2" */ diff --git a/src/m/ibmrt.h b/src/m/ibmrt.h index e6dfa17117d..587729e1418 100644 --- a/src/m/ibmrt.h +++ b/src/m/ibmrt.h @@ -1,4 +1,4 @@ -/* RTPC machine dependent defines +/* RTPC machine dependent defines Copyright (C) 1986, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/ibms390.h b/src/m/ibms390.h index 019db37bd80..711681267a4 100644 --- a/src/m/ibms390.h +++ b/src/m/ibms390.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ diff --git a/src/m/intel386.h b/src/m/intel386.h index 318a5e1c7dc..7f9f616d25a 100644 --- a/src/m/intel386.h +++ b/src/m/intel386.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" @@ -185,7 +185,7 @@ NOTE-END */ #endif /* not USG5_4 */ #endif /* LIB_STANDARD */ -#define NO_REMAP +#define NO_REMAP #define TEXT_START 0 #endif /* USG */ #endif /* not XENIX */ diff --git a/src/m/irist.h b/src/m/irist.h index 78111b6a3e1..b365371324f 100644 --- a/src/m/irist.h +++ b/src/m/irist.h @@ -20,7 +20,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" NOTE-START diff --git a/src/m/is386.h b/src/m/is386.h index 45f9273e910..0c89fdf91c6 100644 --- a/src/m/is386.h +++ b/src/m/is386.h @@ -2,7 +2,7 @@ #include "intel386.h" -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/isi-ov.h b/src/m/isi-ov.h index 768b40051f6..a1ab808923a 100644 --- a/src/m/isi-ov.h +++ b/src/m/isi-ov.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/masscomp.h b/src/m/masscomp.h index 540fa3e0a8e..0b045794e42 100644 --- a/src/m/masscomp.h +++ b/src/m/masscomp.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="rtu" */ diff --git a/src/m/mega68.h b/src/m/mega68.h index b67e3573293..fccd495e0d8 100644 --- a/src/m/mega68.h +++ b/src/m/mega68.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/mg1.h b/src/m/mg1.h index 7d37959e441..bf6e708bd7e 100644 --- a/src/m/mg1.h +++ b/src/m/mg1.h @@ -20,7 +20,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/mips-siemens.h b/src/m/mips-siemens.h index 832487795d5..d0935ce6160 100644 --- a/src/m/mips-siemens.h +++ b/src/m/mips-siemens.h @@ -24,7 +24,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" @@ -140,10 +140,10 @@ NOTE-END */ #ifdef __GNUC__ #define C_DEBUG_SWITCH -#define LD_SWITCH_MACHINE +#define LD_SWITCH_MACHINE #else #define C_DEBUG_SWITCH -DSYSV -#define C_OPTIMIZE_SWITCH -DSYSV +#define C_OPTIMIZE_SWITCH -DSYSV #define LD_SWITCH_MACHINE #endif diff --git a/src/m/mips.h b/src/m/mips.h index d4143a4d51f..3948cb6855c 100644 --- a/src/m/mips.h +++ b/src/m/mips.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/mips4.h b/src/m/mips4.h index 33905072ac0..5371fc03200 100644 --- a/src/m/mips4.h +++ b/src/m/mips4.h @@ -2,7 +2,7 @@ #include "mips.h" -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/news-risc.h b/src/m/news-risc.h index 7066395e360..cba5bbc5689 100644 --- a/src/m/news-risc.h +++ b/src/m/news-risc.h @@ -18,7 +18,7 @@ #else /* not NEWSOS5 */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-3" */ diff --git a/src/m/news.h b/src/m/news.h index 0fdeed10f4e..812432d8f38 100644 --- a/src/m/news.h +++ b/src/m/news.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/nh3000.h b/src/m/nh3000.h index eafb560e471..4df55957d90 100644 --- a/src/m/nh3000.h +++ b/src/m/nh3000.h @@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA. */ * series Motorola 88100 and 88110 based machines. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ diff --git a/src/m/nh4000.h b/src/m/nh4000.h index b5db2802cfa..d002405fe13 100644 --- a/src/m/nh4000.h +++ b/src/m/nh4000.h @@ -23,7 +23,7 @@ Boston, MA 02111-1307, USA. */ * series Motorola 88100 and 88110 based machines. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ diff --git a/src/m/ns16000.h b/src/m/ns16000.h index e6cbe6cee6f..f684c3dcc6d 100644 --- a/src/m/ns16000.h +++ b/src/m/ns16000.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/ns32000.h b/src/m/ns32000.h index 2bacb5702d3..c3183862355 100644 --- a/src/m/ns32000.h +++ b/src/m/ns32000.h @@ -20,7 +20,7 @@ Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ diff --git a/src/m/nu.h b/src/m/nu.h index ec9ad5f2976..8eb9374e6da 100644 --- a/src/m/nu.h +++ b/src/m/nu.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ @@ -50,7 +50,7 @@ Boston, MA 02111-1307, USA. */ /* Data type of load average, as read out of kmem. */ /* These are commented out since it does not really work in uniplus */ - + /* #define LOAD_AVE_TYPE long */ /* Convert that into an integer that is 100 for a load average of 1.0 */ diff --git a/src/m/orion.h b/src/m/orion.h index c2b83bc1903..2a89251e23c 100644 --- a/src/m/orion.h +++ b/src/m/orion.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/orion105.h b/src/m/orion105.h index 2f622107ff4..7e5fb34b319 100644 --- a/src/m/orion105.h +++ b/src/m/orion105.h @@ -20,7 +20,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/plexus.h b/src/m/plexus.h index 9f8690127ec..22dbffa16f9 100644 --- a/src/m/plexus.h +++ b/src/m/plexus.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ @@ -88,7 +88,7 @@ Boston, MA 02111-1307, USA. */ #undef NO_REMAP -/* Use the following on ld so we can use the gnu crt0 +/* Use the following on ld so we can use the gnu crt0 The plexus ld looks for start */ #define LD_SWITCH_MACHINE -e __start diff --git a/src/m/pmax.h b/src/m/pmax.h index 7cf01f79c41..54f246fed65 100644 --- a/src/m/pmax.h +++ b/src/m/pmax.h @@ -2,9 +2,9 @@ #include "mips.h" -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. - USUAL-OPSYS="note" + USUAL-OPSYS="note" NOTE-START The operating system would be either osf1, ultrix, or NetBSD. diff --git a/src/m/powermac.h b/src/m/powermac.h index f60e51963b0..0ab535dfd23 100644 --- a/src/m/powermac.h +++ b/src/m/powermac.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="darwin" */ diff --git a/src/m/powerpcle.h b/src/m/powerpcle.h index e1409200dbc..2c01acb843d 100644 --- a/src/m/powerpcle.h +++ b/src/m/powerpcle.h @@ -17,7 +17,7 @@ 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="Solaris2.5.1 Windows/NT AIX 4.1.2" */ diff --git a/src/m/pyramid.h b/src/m/pyramid.h index ace92e51ba3..7abd4f88b3f 100644 --- a/src/m/pyramid.h +++ b/src/m/pyramid.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-2" */ diff --git a/src/m/sequent-ptx.h b/src/m/sequent-ptx.h index fdf977075c7..2c815ff97bb 100644 --- a/src/m/sequent-ptx.h +++ b/src/m/sequent-ptx.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="ptx" */ @@ -95,7 +95,7 @@ Boston, MA 02111-1307, USA. */ #endif /* #undef NO_REMAP */ -/* If a valid PTX executable could be dumped without NO_REMAP defined, +/* If a valid PTX executable could be dumped without NO_REMAP defined, here's a guess at some defines to make it work. */ #ifndef NO_REMAP diff --git a/src/m/sequent.h b/src/m/sequent.h index 2cd06b490d8..404bbf54668 100644 --- a/src/m/sequent.h +++ b/src/m/sequent.h @@ -19,15 +19,15 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. - USUAL-OPSYS="note" + USUAL-OPSYS="note" NOTE-START Use -opsystem=bsd4-2, or -opsystem=bsd4-3 on newer systems. NOTE-END */ -/* NOTE: this file works for DYNIX release 2.0 +/* NOTE: this file works for DYNIX release 2.0 (not tested on 1.3) on NS32000's */ /* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word diff --git a/src/m/sparc.h b/src/m/sparc.h index 28ac8421694..8e22ccb2b21 100644 --- a/src/m/sparc.h +++ b/src/m/sparc.h @@ -18,7 +18,7 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/sps7.h b/src/m/sps7.h index f1e83e24deb..1589f2cbfb2 100644 --- a/src/m/sps7.h +++ b/src/m/sps7.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ @@ -34,7 +34,7 @@ Boston, MA 02111-1307, USA. */ #define m68000 #endif -#define sps7 +#define sps7 /* Use type int rather than a union, to represent Lisp_Object */ @@ -99,7 +99,7 @@ Boston, MA 02111-1307, USA. */ /* Use -T32 for 68020, -T16 otherwise */ #define C_SWITCH_MACHINE -T32 - + #define BROKEN_SIGIO /* Other than 68020 use ld16, as32, or undefine (defaults ld and as). */ diff --git a/src/m/sr2k.h b/src/m/sr2k.h index 5013d1249fc..4adf0f700fc 100644 --- a/src/m/sr2k.h +++ b/src/m/sr2k.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="hpux" */ @@ -61,7 +61,7 @@ Boston, MA 02111-1307, USA. */ /* The standard definitions of these macros would work ok, but these are faster because the constants are short. */ - + #define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS) diff --git a/src/m/stride.h b/src/m/stride.h index 17bc577dd69..4e1fd18dc91 100644 --- a/src/m/stride.h +++ b/src/m/stride.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ diff --git a/src/m/sun1.h b/src/m/sun1.h index 68a113747e8..6bff1d21677 100644 --- a/src/m/sun1.h +++ b/src/m/sun1.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/sun2.h b/src/m/sun2.h index e9267df0967..5107f3c47d2 100644 --- a/src/m/sun2.h +++ b/src/m/sun2.h @@ -21,7 +21,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/sun3-68881.h b/src/m/sun3-68881.h index b74758fa4fc..1210bef6300 100644 --- a/src/m/sun3-68881.h +++ b/src/m/sun3-68881.h @@ -2,7 +2,7 @@ #include "sun3.h" -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/sun3-fpa.h b/src/m/sun3-fpa.h index da959cac361..1b2c084e010 100644 --- a/src/m/sun3-fpa.h +++ b/src/m/sun3-fpa.h @@ -2,7 +2,7 @@ #include "sun3.h" -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/sun3-soft.h b/src/m/sun3-soft.h index 05a1e9e7f49..0913e875d8a 100644 --- a/src/m/sun3-soft.h +++ b/src/m/sun3-soft.h @@ -2,7 +2,7 @@ #include "sun3.h" -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/sun3.h b/src/m/sun3.h index b20889c25b8..24f84d8e2da 100644 --- a/src/m/sun3.h +++ b/src/m/sun3.h @@ -7,7 +7,7 @@ #define sun3 #endif -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/sun386.h b/src/m/sun386.h index cf9537ea100..61468f99879 100644 --- a/src/m/sun386.h +++ b/src/m/sun386.h @@ -21,7 +21,7 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" @@ -47,7 +47,7 @@ NOTE-END */ #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) -/* Underscores are not prepended to C symbols on this machine. */ +/* Underscores are not prepended to C symbols on this machine. */ #undef LDAV_SYMBOL #define LDAV_SYMBOL "avenrun" diff --git a/src/m/symmetry.h b/src/m/symmetry.h index 74ca6c09c26..a3e89c58490 100644 --- a/src/m/symmetry.h +++ b/src/m/symmetry.h @@ -18,18 +18,18 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* CHANGE: [Eric H. Herrin II; eric@ms.uky.edu - 15 Sept 1988] - * Modified the sequent.h file for the Sequent Symmetry machine. - * Biggest change was to align the sections in the a.out to 4K +/* CHANGE: [Eric H. Herrin II; eric@ms.uky.edu - 15 Sept 1988] + * Modified the sequent.h file for the Sequent Symmetry machine. + * Biggest change was to align the sections in the a.out to 4K * boundaries (this is the page size). */ /* NOTICE: this file works for DYNIX release 3.0.12 on Sequent Symmetry * (Intel 80386) machines. Hasn't been tested on anything else. - */ + */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-3" */ diff --git a/src/m/tad68k.h b/src/m/tad68k.h index 78b961d2c77..4aa142fbd91 100644 --- a/src/m/tad68k.h +++ b/src/m/tad68k.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-3" */ diff --git a/src/m/tahoe.h b/src/m/tahoe.h index 5bef9a1a375..343247d0529 100644 --- a/src/m/tahoe.h +++ b/src/m/tahoe.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/tandem-s2.h b/src/m/tandem-s2.h index 405af5c844a..92e9ebfbb35 100644 --- a/src/m/tandem-s2.h +++ b/src/m/tandem-s2.h @@ -2,7 +2,7 @@ #include "mips.h" -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-3" */ diff --git a/src/m/targon31.h b/src/m/targon31.h index 86211a6e5a4..7c44f12e177 100644 --- a/src/m/targon31.h +++ b/src/m/targon31.h @@ -1,4 +1,4 @@ -/* targon31 machine description file +/* targon31 machine description file Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2-2" */ diff --git a/src/m/tek4300.h b/src/m/tek4300.h index 5c88f6ef9bd..d402022a034 100644 --- a/src/m/tek4300.h +++ b/src/m/tek4300.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="bsd4-3" */ diff --git a/src/m/tekxd88.h b/src/m/tekxd88.h index cc2439d0a92..2e1fa20d371 100644 --- a/src/m/tekxd88.h +++ b/src/m/tekxd88.h @@ -48,7 +48,7 @@ Boston, MA 02111-1307, USA. */ /* Use type int rather than a union, to represent Lisp_Object */ /* This is desirable for most machines. */ -#define NO_UNION_TYPE +#define NO_UNION_TYPE /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend the 24-bit bit field into an int. In other words, if bit fields @@ -73,7 +73,7 @@ Boston, MA 02111-1307, USA. */ Otherwise Emacs assumes that text space precedes data space, numerically. */ -/* #define VIRT_ADDR_VARIES */ +/* #define VIRT_ADDR_VARIES */ /* Define NO_REMAP if memory segmentation makes it not work well to change the boundary between the text section and data section @@ -100,7 +100,7 @@ Boston, MA 02111-1307, USA. */ #define HAVE_PTYS /* XD88 SysV has PTYs. */ #define SYSV_PTYS /* Requires <termios.h> */ -#ifdef ghs /* Stands for "Green Hills Software", defined only in /bin/cc */ +#ifdef ghs /* Stands for "Green Hills Software", defined only in /bin/cc */ /* -X18 means do not allocate programmer-defined local variables to a register unless they are declared register. (Copied from perl-4.036 Green Hills C hints file. Might be needed for setjmp, I don't know.) */ diff --git a/src/m/template.h b/src/m/template.h index 7683cbfba6e..6def690cd98 100644 --- a/src/m/template.h +++ b/src/m/template.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ diff --git a/src/m/tower32.h b/src/m/tower32.h index 9dbb0dc6b6e..307d2b93e33 100644 --- a/src/m/tower32.h +++ b/src/m/tower32.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2-2" */ diff --git a/src/m/tower32v3.h b/src/m/tower32v3.h index dbbafcd19cd..3d54366aa94 100644 --- a/src/m/tower32v3.h +++ b/src/m/tower32v3.h @@ -20,7 +20,7 @@ Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-3" */ diff --git a/src/m/ustation.h b/src/m/ustation.h index 9e8c26a17da..17d59df0d02 100644 --- a/src/m/ustation.h +++ b/src/m/ustation.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-3" */ diff --git a/src/m/vax.h b/src/m/vax.h index 86ca420f2e4..eace9f7e144 100644 --- a/src/m/vax.h +++ b/src/m/vax.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="note" diff --git a/src/m/wicat.h b/src/m/wicat.h index e361d09164d..0a9596cd15c 100644 --- a/src/m/wicat.h +++ b/src/m/wicat.h @@ -19,7 +19,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ diff --git a/src/m/windowsnt.h b/src/m/windowsnt.h index 5a3e16ddad1..4188a7032ec 100644 --- a/src/m/windowsnt.h +++ b/src/m/windowsnt.h @@ -19,7 +19,7 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="<name of system .h file here, without the s- or .h>" */ diff --git a/src/m/xps100.h b/src/m/xps100.h index 499182d5509..26cec523741 100644 --- a/src/m/xps100.h +++ b/src/m/xps100.h @@ -21,7 +21,7 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* The following line tells the configuration script what sort of +/* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="usg5-2" */ diff --git a/src/mac.c b/src/mac.c index bc2d342b197..a6b92db4680 100644 --- a/src/mac.c +++ b/src/mac.c @@ -2770,7 +2770,7 @@ sys_select (n, rfds, wfds, efds, timeout) if (!inhibit_window_system && rfds && FD_ISSET (0, rfds)) return 1; else if (inhibit_window_system || noninteractive || - (timeout && (EMACS_SECS(*timeout)==0) && + (timeout && (EMACS_SECS(*timeout)==0) && (EMACS_USECS(*timeout)==0))) return select(n, rfds, wfds, efds, timeout); else @@ -2780,22 +2780,22 @@ sys_select (n, rfds, wfds, efds, timeout) EMACS_GET_TIME (end_time); if (timeout) EMACS_ADD_TIME (end_time, end_time, *timeout); - + do { int r; EMACS_TIME one_second; SELECT_TYPE orfds; - + FD_ZERO (&orfds); if (rfds) { orfds = *rfds; } - + EMACS_SET_SECS (one_second, 1); EMACS_SET_USECS (one_second, 0); - + if (timeout && EMACS_TIME_LT(*timeout, one_second)) one_second = *timeout; @@ -2806,12 +2806,12 @@ sys_select (n, rfds, wfds, efds, timeout) } mac_check_for_quit_char(); - + EMACS_GET_TIME (now); EMACS_SUB_TIME (now, end_time, now); } while (!timeout || !EMACS_TIME_NEG_P (now)); - + return 0; } } @@ -2835,7 +2835,7 @@ int sys_read (fds, buf, nbyte) if (sys_select (fds+1, &rfds, 0, 0, NULL) < 0) return -1; } - + return read (fds, buf, nbyte); } diff --git a/src/macmenu.c b/src/macmenu.c index d52fff8bd5e..3958be9668d 100644 --- a/src/macmenu.c +++ b/src/macmenu.c @@ -120,7 +120,7 @@ typedef struct _widget_value char* name; /* value (meaning depend on widget type) */ char* value; - /* keyboard equivalent. no implications for XtTranslations */ + /* keyboard equivalent. no implications for XtTranslations */ char* key; /* Help string or nil if none. GC finds this string through the frame's menu_bar_vector @@ -174,7 +174,7 @@ typedef struct _widget_value #define TRUE 1 #define FALSE 0 #endif /* no TRUE */ - + Lisp_Object Vmenu_updating_frame; Lisp_Object Qdebug_on_next_call; @@ -507,7 +507,7 @@ single_keymap_panes (keymap, pane_name, prefix, notreal, maxdepth) /* This is a subroutine of single_keymap_panes that handles one keymap entry. - KEY is a key in a keymap and ITEM is its binding. + KEY is a key in a keymap and ITEM is its binding. PENDING_MAPS_PTR points to a list of keymaps waiting to be made into separate panes. If NOTREAL is nonzero, only check for equivalent key bindings, don't @@ -523,7 +523,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth) Lisp_Object map, item_string, enabled; struct gcpro gcpro1, gcpro2; int res; - + /* Parse the menu item and leave the result in item_properties. */ GCPRO2 (key, item); res = parse_menu_item (item, notreal, 0); @@ -532,7 +532,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth) return; /* Not a menu item. */ map = XVECTOR (item_properties)->contents[ITEM_PROPERTY_MAP]; - + if (notreal) { /* We don't want to make a menu, just traverse the keymaps to @@ -543,7 +543,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth) } enabled = XVECTOR (item_properties)->contents[ITEM_PROPERTY_ENABLE]; - item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME]; + item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME]; if (!NILP (map) && SREF (item_string, 0) == '@') { @@ -818,7 +818,7 @@ cached information about equivalent key sequences. */) keymaps = 0; } - + if (NILP (position)) { discard_menu_items (); @@ -971,7 +971,7 @@ on the left of the dialog box and all following items on the right. But first we recompute the menu bar contents (the whole tree). This way we can safely execute Lisp code. */ - + void x_activate_menubar (f) FRAME_PTR f; @@ -1182,7 +1182,7 @@ single_submenu (item_key, item_name, maps) first_wv = wv; save_wv = 0; prev_wv = 0; - + /* Loop over all panes and items made during this call and construct a tree of widget_value objects. Ignore the panes and items made by previous calls to @@ -1286,7 +1286,7 @@ single_submenu (item_key, item_name, maps) #endif /* not HAVE_MULTILINGUAL_MENU */ wv = xmalloc_widget_value (); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else save_wv->contents = wv; @@ -1432,7 +1432,7 @@ set_frame_menubar (f, first_time, deep_p) break; wv = single_submenu (key, string, maps); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else first_wv->contents = wv; @@ -1508,7 +1508,7 @@ set_frame_menubar (f, first_time, deep_p) This value just has to be different from small integers. */ wv->call_data = (void *) (EMACS_INT) (-1); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else first_wv->contents = wv; @@ -1537,7 +1537,7 @@ set_frame_menubar (f, first_time, deep_p) DisposeMenu (menu); menu = GetMenuHandle (++i); } - + i = MIN_SUBMENU_ID; menu = GetMenuHandle (i); while (menu != NULL) @@ -1549,9 +1549,9 @@ set_frame_menubar (f, first_time, deep_p) } fill_menubar (first_wv->contents); - + DrawMenuBar (); - + free_menubar_widget_value_tree (first_wv); UNBLOCK_INPUT; @@ -1640,7 +1640,7 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error) wv->help = Qnil; first_wv = wv; first_pane = 1; - + /* Loop over all panes and items, filling in the tree. */ i = 0; while (i < menu_items_used) @@ -1743,9 +1743,9 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error) #endif /* not HAVE_MULTILINGUAL_MENU */ wv = xmalloc_widget_value (); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; - else + else save_wv->contents = wv; wv->name = (char *) SDATA (item_name); if (!NILP (descrip)) @@ -1830,14 +1830,14 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error) menu_item_selection = LoWord (menu_item_choice); /* Get the refcon to find the correct item*/ - if (menu_item_selection) + if (menu_item_selection) { menu = GetMenuHandle (HiWord (menu_item_choice)); if (menu) { GetMenuItemRefCon (menu, menu_item_selection, &refcon); } } - + #if 0 /* Clean up extraneous mouse events which might have been generated during the call. */ @@ -1944,13 +1944,13 @@ mac_dialog (widget_value *wv) SInt16 part_code; int control_part_code; Point mouse; - + dialog_name = wv->name; nb_buttons = dialog_name[1] - '0'; left_count = nb_buttons - (dialog_name[4] - '0'); button_labels = (char **) alloca (sizeof (char *) * nb_buttons); ref_cons = (UInt32 *) alloca (sizeof (UInt32) * nb_buttons); - + wv = wv->contents; prompt = (char *) alloca (strlen (wv->value) + 1); strcpy (prompt, wv->value); @@ -1974,7 +1974,7 @@ mac_dialog (widget_value *wv) #else SetPort (window_ptr); #endif - + TextFont (0); /* Left and right margins in the dialog are 13 pixels each.*/ dialog_width = 14; @@ -1996,7 +1996,7 @@ mac_dialog (widget_value *wv) #else SetPort (window_ptr); #endif - + TextFont (0); MoveTo (13, 29); @@ -2034,7 +2034,7 @@ mac_dialog (widget_value *wv) } DisposeWindow (window_ptr); - + return i; } @@ -2076,7 +2076,7 @@ mac_dialog_show (f, keymaps, title, error) pane_name = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_NAME]; prefix = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_PREFIX]; pane_string = (NILP (pane_name) - ? "" : (char *) SDATA (pane_name)); + ? "" : (char *) SDATA (pane_name)); prev_wv = xmalloc_widget_value (); prev_wv->value = pane_string; if (keymaps && !NILP (prefix)) @@ -2085,12 +2085,12 @@ mac_dialog_show (f, keymaps, title, error) prev_wv->name = "message"; prev_wv->help = Qnil; first_wv = prev_wv; - + /* Loop over all panes and items, filling in the tree. */ i = MENU_ITEMS_PANE_LENGTH; while (i < menu_items_used) { - + /* Create a new item within current pane. */ Lisp_Object item_name, enable, descrip, help; @@ -2099,7 +2099,7 @@ mac_dialog_show (f, keymaps, title, error) descrip = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY]; help = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_HELP]; - + if (NILP (item_name)) { free_menubar_widget_value_tree (first_wv); @@ -2240,10 +2240,10 @@ add_menu_item (MenuHandle menu, widget_value *wv, int submenu, if (name_is_separator (wv->name)) AppendMenu (menu, "\p-"); - else + else { AppendMenu (menu, "\pX"); - + #if TARGET_API_MAC_CARBON pos = CountMenuItems (menu); #else @@ -2340,7 +2340,7 @@ fill_menubar (widget_value *wv) { MenuHandle menu; Str255 title; - + strncpy (title, wv->name, 255); title[255] = 0; c2pstr (title); @@ -2348,7 +2348,7 @@ fill_menubar (widget_value *wv) if (wv->contents) fill_menu (menu, wv->contents); - + InsertMenu (menu, 0); } } diff --git a/src/macros.c b/src/macros.c index 99383f758f3..44d44d2c9c1 100644 --- a/src/macros.c +++ b/src/macros.c @@ -62,7 +62,7 @@ Use \\[end-kbd-macro] to finish recording and make the macro available. Use \\[name-last-kbd-macro] to give it a permanent name. Non-nil arg (prefix arg) means append to last macro defined; this begins by re-executing that macro as if you typed it again. -If optional second arg, NO-EXEC, is non-nil, do not re-execute last +If optional second arg, NO-EXEC, is non-nil, do not re-execute last macro before appending to it. */) (append, no_exec) Lisp_Object append, no_exec; @@ -127,7 +127,7 @@ macro before appending to it. */) message ("Appending to kbd macro..."); } current_kboard->defining_kbd_macro = Qt; - + return Qnil; } @@ -155,7 +155,7 @@ With numeric arg, repeat macro now that many times, counting the definition just completed as the first repetition. An argument of zero means repeat until error. -In Lisp, optional second arg LOOPFUNC may be a function that is called prior to +In Lisp, optional second arg LOOPFUNC may be a function that is called prior to each iteration of the macro. Iteration stops if LOOPFUNC returns nil. */) (repeat, loopfunc) Lisp_Object repeat, loopfunc; @@ -198,7 +198,7 @@ store_kbd_macro_char (c) if (kb->kbd_macro_ptr - kb->kbd_macro_buffer == kb->kbd_macro_bufsize) { int ptr_offset, end_offset, nbytes; - + ptr_offset = kb->kbd_macro_ptr - kb->kbd_macro_buffer; end_offset = kb->kbd_macro_end - kb->kbd_macro_buffer; kb->kbd_macro_bufsize *= 2; @@ -208,7 +208,7 @@ store_kbd_macro_char (c) kb->kbd_macro_ptr = kb->kbd_macro_buffer + ptr_offset; kb->kbd_macro_end = kb->kbd_macro_buffer + end_offset; } - + *kb->kbd_macro_ptr++ = c; } } @@ -248,9 +248,9 @@ DEFUN ("call-last-kbd-macro", Fcall_last_kbd_macro, Scall_last_kbd_macro, A prefix argument serves as a repeat count. Zero means repeat until error. To make a macro permanent so you can call it even after -defining others, use \\[name-last-kbd-macro]. +defining others, use \\[name-last-kbd-macro]. -In Lisp, optional second arg LOOPFUNC may be a function that is called prior to +In Lisp, optional second arg LOOPFUNC may be a function that is called prior to each iteration of the macro. Iteration stops if LOOPFUNC returns nil. */) (prefix, loopfunc) Lisp_Object prefix, loopfunc; @@ -295,9 +295,9 @@ pop_kbd_macro (info) DEFUN ("execute-kbd-macro", Fexecute_kbd_macro, Sexecute_kbd_macro, 1, 3, 0, doc: /* Execute MACRO as string of editor command characters. If MACRO is a symbol, its function definition is used. -COUNT is a repeat count, or nil for once, or 0 for infinite loop. +COUNT is a repeat count, or nil for once, or 0 for infinite loop. -Optional third arg LOOPFUNC may be a function that is called prior to +Optional third arg LOOPFUNC may be a function that is called prior to each iteration of the macro. Iteration stops if LOOPFUNC returns nil. */) (macro, count, loopfunc) Lisp_Object macro, count, loopfunc; diff --git a/src/macterm.c b/src/macterm.c index f31ae2d44d4..e9f613918fd 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -202,7 +202,7 @@ Lisp_Object Vx_toolkit_scroll_bars; /* If a string, XTread_socket generates an event to display that string. (The display is done in read_char.) */ - + static Lisp_Object help_echo; static Lisp_Object help_echo_window; static Lisp_Object help_echo_object; @@ -259,7 +259,7 @@ extern int waiting_for_input; struct frame *pending_autoraise_frame; -/* Nominal cursor position -- where to draw output. +/* Nominal cursor position -- where to draw output. HPOS and VPOS are window relative glyph matrix coordinates. X and Y are window relative pixel coordinates. */ @@ -456,7 +456,7 @@ static void x_update_cursor_in_window_tree P_ ((struct window *, int)); static void x_update_window_cursor P_ ((struct window *, int)); static void x_erase_phys_cursor P_ ((struct window *)); void x_display_and_set_cursor P_ ((struct window *, int, int, int, int, int)); -static void x_draw_fringe_bitmap P_ ((struct window *, struct glyph_row *, +static void x_draw_fringe_bitmap P_ ((struct window *, struct glyph_row *, enum fringe_bitmap_type, int left_p)); static void x_clip_to_row P_ ((struct window *, struct glyph_row *, GC, int)); @@ -505,7 +505,7 @@ XFreePixmap (display, pixmap) Pixmap pixmap; { PixMap *p = (PixMap *) pixmap; - + xfree (p->baseAddr); xfree (p); } @@ -518,12 +518,12 @@ static void mac_set_forecolor (unsigned long color) { RGBColor fg_color; - + fg_color.red = RED_FROM_ULONG (color) * 256; fg_color.green = GREEN_FROM_ULONG (color) * 256; fg_color.blue = BLUE_FROM_ULONG (color) * 256; - - RGBForeColor (&fg_color); + + RGBForeColor (&fg_color); } @@ -534,12 +534,12 @@ static void mac_set_backcolor (unsigned long color) { RGBColor bg_color; - + bg_color.red = RED_FROM_ULONG (color) * 256; bg_color.green = GREEN_FROM_ULONG (color) * 256; bg_color.blue = BLUE_FROM_ULONG (color) * 256; - - RGBBackColor (&bg_color); + + RGBBackColor (&bg_color); } /* Set foreground and background color for subsequent QuickDraw @@ -626,7 +626,7 @@ XClearWindow (display, w) #if TARGET_API_MAC_CARBON { Rect r; - + GetWindowPortBounds (w, &r); EraseRect (&r); } @@ -667,7 +667,7 @@ mac_draw_bitmap (display, w, gc, x, y, bitmap) UnlockPortBits (GetWindowPort (w)); } #else /* not TARGET_API_MAC_CARBON */ - CopyBits (bitmap, &(w->portBits), &(bitmap->bounds), &r, srcCopy, 0); + CopyBits (bitmap, &(w->portBits), &(bitmap->bounds), &r, srcCopy, 0); #endif /* not TARGET_API_MAC_CARBON */ } @@ -698,7 +698,7 @@ mac_reset_clipping (display, w) WindowPtr w; { Rect r; - + #if TARGET_API_MAC_CARBON SetPort (GetWindowPort (w)); #else @@ -957,12 +957,12 @@ static void local_to_global_coord (short *h, short *v) { Point p; - + p.h = *h; p.v = *v; - + LocalToGlobal (&p); - + *h = p.h; *v = p.v; } @@ -1023,7 +1023,7 @@ mac_scroll_area (display, w, gc, src_x, src_y, width, height, dest_x, dest_y) ForeColor (blackColor); BackColor (whiteColor); CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0); - + mac_set_colors (gc); #endif #endif /* not TARGET_API_MAC_CARBON */ @@ -1033,7 +1033,7 @@ mac_scroll_area (display, w, gc, src_x, src_y, width, height, dest_x, dest_y) /* Mac replacement for XCopyArea: dest must be Pixmap. */ static void -mac_copy_area_to_pixmap (display, src, dest, gc, src_x, src_y, width, height, +mac_copy_area_to_pixmap (display, src, dest, gc, src_x, src_y, width, height, dest_x, dest_y) Display *display; Pixmap src; @@ -1050,7 +1050,7 @@ mac_copy_area_to_pixmap (display, src, dest, gc, src_x, src_y, width, height, int h = src_bottom - src_y; mac_set_colors (gc); - + SetRect (&src_r, src_x, src_y, src_right, src_bottom); SetRect (&dest_r, dest_x, dest_y, dest_x + w, dest_y + h); @@ -1160,7 +1160,7 @@ x_sync (f) #if TARGET_API_MAC_CARBON #define XFlush(DISPLAY) QDFlushPortBuffer (GetQDGlobalsThePort (), NULL) #else -#define XFlush(DISPLAY) (void) 0 +#define XFlush(DISPLAY) (void) 0 #endif /* Flush display of frame F, or of all frames if F is null. */ @@ -1200,7 +1200,7 @@ mac_display_info_for_display (dpy) /*********************************************************************** Starting and ending an update ***********************************************************************/ - + /* Start an update of frame F. This function is installed as a hook for update_begin, i.e. it is called when update_begin is called. This function is called prior to calls to x_update_window_begin for @@ -1224,7 +1224,7 @@ x_update_window_begin (w) { struct frame *f = XFRAME (WINDOW_FRAME (w)); struct mac_display_info *display_info = FRAME_MAC_DISPLAY_INFO (f); - + updated_window = w; set_output_cursor (&w->cursor); @@ -1246,7 +1246,7 @@ x_update_window_begin (w) flag set. So, rows containing mouse-face glyphs are never scrolled, and we don't have to switch the mouse highlight off here to prevent it from being scrolled. */ - + /* Can we tell that this update does not affect the window where the mouse highlight is? If so, no need to turn off. Likewise, don't do anything if the frame is garbaged; @@ -1279,7 +1279,7 @@ x_draw_vertical_border (w) struct window *w; { struct frame *f = XFRAME (WINDOW_FRAME (w)); - + /* Redraw borders between horizontally adjacent windows. Don't do it for frames with vertical scroll bars because either the right scroll bar of a window, or the left scroll bar of its @@ -1292,13 +1292,13 @@ x_draw_vertical_border (w) window_box_edges (w, -1, &x0, &y0, &x1, &y1); x1 += FRAME_X_RIGHT_FRINGE_WIDTH (f); y1 -= 1; - - XDrawLine (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), + + XDrawLine (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), f->output_data.mac->normal_gc, x1, y0, x1, y1); } } - + /* End update of window W (which is equal to updated_window). Draw vertical borders between horizontally adjacent windows, and @@ -1328,7 +1328,7 @@ x_update_window_end (w, cursor_on_p, mouse_face_overwritten_p) x_display_and_set_cursor (w, 1, output_cursor.hpos, output_cursor.vpos, output_cursor.x, output_cursor.y); - + x_draw_vertical_border (w); UNBLOCK_INPUT; } @@ -1371,7 +1371,7 @@ x_update_end (f) #endif mac_set_backcolor (FRAME_BACKGROUND_PIXEL (f)); - + /* Mouse highlight may be displayed again. */ FRAME_MAC_DISPLAY_INFO (f)->mouse_face_defer = 0; @@ -1424,7 +1424,7 @@ x_after_update_window_line (desired_row) int width, height; xassert (w); - + if (!desired_row->mode_line_p && !w->pseudo_window_p) { BLOCK_INPUT; @@ -1459,7 +1459,7 @@ x_after_update_window_line (desired_row) XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), f->output_data.mac->pixel_width - width, y, width, height, 0); - + UNBLOCK_INPUT; } } @@ -1506,13 +1506,13 @@ x_draw_fringe_bitmap (w, row, which, left_p) h = left_height; bits = left_bits; break; - + case OVERLAY_ARROW_BITMAP: wd = ov_width; h = ov_height; bits = ov_bits; break; - + case RIGHT_TRUNCATION_BITMAP: wd = right_width; h = right_height; @@ -1524,7 +1524,7 @@ x_draw_fringe_bitmap (w, row, which, left_p) h = continued_height; bits = continued_bits; break; - + case CONTINUATION_LINE_BITMAP: wd = continuation_width; h = continuation_height; @@ -1731,7 +1731,7 @@ set_output_cursor (cursor) HPOS and VPOS are column/row positions in a window glyph matrix. X and Y are window text area relative pixel positions. - + If this is done during an update, updated_window will contain the window that is being updated and the position is the future output cursor position for that window. If updated_window is null, use @@ -1905,9 +1905,9 @@ x_encode_char (c, char2b, font_info) ccl->reg[1] = char2b->byte1; ccl->reg[2] = char2b->byte2; } - + ccl_driver (ccl, NULL, NULL, 0, 0, NULL); - + /* We assume that MSBs are appropriately set/reset by CCL program. */ if (font->max_byte1 == 0) /* 1-byte font */ @@ -1920,11 +1920,11 @@ x_encode_char (c, char2b, font_info) /* Fixed encoding scheme. See fontset.h for the meaning of the encoding numbers. */ int enc = font_info->encoding[charset]; - + if ((enc == 1 || enc == 2) && CHARSET_DIMENSION (charset) == 2) char2b->byte1 |= 0x80; - + if (enc == 1 || enc == 3) char2b->byte2 |= 0x80; @@ -1972,7 +1972,7 @@ x_get_char_face_and_encoding (f, c, face_id, char2b, multibyte_p) else { int c1, c2, charset; - + /* Split characters into bytes. If c2 is -1 afterwards, C is really a one-byte character so that byte1 is zero. */ SPLIT_CHAR (c, charset, c1, c2); @@ -1994,7 +1994,7 @@ x_get_char_face_and_encoding (f, c, face_id, char2b, multibyte_p) /* Make sure X resources of the face are allocated. */ xassert (face != NULL); PREPARE_FACE_FOR_DISPLAY (f, face); - + return face; } @@ -2035,7 +2035,7 @@ x_get_glyph_face_and_encoding (f, glyph, char2b, two_byte_p) else { int c1, c2, charset; - + /* Split characters into bytes. If c2 is -1 afterwards, C is really a one-byte character so that byte1 is zero. */ SPLIT_CHAR (glyph->u.ch, charset, c1, c2); @@ -2066,7 +2066,7 @@ x_get_glyph_face_and_encoding (f, glyph, char2b, two_byte_p) } -/* Store one glyph for IT->char_to_display in IT->glyph_row. +/* Store one glyph for IT->char_to_display in IT->glyph_row. Called from x_produce_glyphs when IT->glyph_row is non-null. */ static INLINE void @@ -2075,10 +2075,10 @@ x_append_glyph (it) { struct glyph *glyph; enum glyph_row_area area = it->area; - + xassert (it->glyph_row); xassert (it->char_to_display != '\n' && it->char_to_display != '\t'); - + glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area]; if (glyph < it->glyph_row->glyphs[area + 1]) { @@ -2100,7 +2100,7 @@ x_append_glyph (it) } } -/* Store one glyph for the composition IT->cmp_id in IT->glyph_row. +/* Store one glyph for the composition IT->cmp_id in IT->glyph_row. Called from x_produce_glyphs when IT->glyph_row is non-null. */ static INLINE void @@ -2109,9 +2109,9 @@ x_append_composite_glyph (it) { struct glyph *glyph; enum glyph_row_area area = it->area; - + xassert (it->glyph_row); - + glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area]; if (glyph < it->glyph_row->glyphs[area + 1]) { @@ -2181,7 +2181,7 @@ x_produce_image_glyph (it) it->pixel_width = img->width + 2 * img->hmargin; it->nglyphs = 1; - + if (face->box != FACE_NO_BOX) { if (face->box_line_width > 0) @@ -2189,7 +2189,7 @@ x_produce_image_glyph (it) it->ascent += face->box_line_width; it->descent += face->box_line_width; } - + if (it->start_of_box_run_p) it->pixel_width += abs (face->box_line_width); if (it->end_of_box_run_p) @@ -2197,12 +2197,12 @@ x_produce_image_glyph (it) } take_vertical_position_into_account (it); - + if (it->glyph_row) { struct glyph *glyph; enum glyph_row_area area = it->area; - + glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area]; if (glyph < it->glyph_row->glyphs[area + 1]) { @@ -2226,10 +2226,10 @@ x_produce_image_glyph (it) /* Append a stretch glyph to IT->glyph_row. OBJECT is the source - of the glyph, WIDTH and HEIGHT are the width and height of the - stretch. ASCENT is the percentage/100 of HEIGHT to use for the + of the glyph, WIDTH and HEIGHT are the width and height of the + stretch. ASCENT is the percentage/100 of HEIGHT to use for the ascent of the glyph (0 <= ASCENT <= 1). */ - + static void x_append_stretch_glyph (it, object, width, height, ascent) struct it *it; @@ -2241,7 +2241,7 @@ x_append_stretch_glyph (it, object, width, height, ascent) enum glyph_row_area area = it->area; xassert (ascent >= 0 && ascent <= 1); - + glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area]; if (glyph < it->glyph_row->glyphs[area + 1]) { @@ -2270,7 +2270,7 @@ x_append_stretch_glyph (it, object, width, height, ascent) being recognized: 1. `:width WIDTH' specifies that the space should be WIDTH * - canonical char width wide. WIDTH may be an integer or floating + canonical char width wide. WIDTH may be an integer or floating point number. 2. `:relative-width FACTOR' specifies that the width of the stretch @@ -2280,7 +2280,7 @@ x_append_stretch_glyph (it, object, width, height, ascent) 3. `:align-to HPOS' specifies that the space should be wide enough to reach HPOS, a value in canonical character units. - Exactly one of the above pairs must be present. + Exactly one of the above pairs must be present. 4. `:height HEIGHT' specifies that the height of the stretch produced should be HEIGHT, measured in canonical character units. @@ -2318,7 +2318,7 @@ x_produce_stretch_glyph (it) XFontStruct *font = face->font ? face->font : FRAME_FONT (it->f); PREPARE_FACE_FOR_DISPLAY (it->f, face); - + /* List should start with `space'. */ xassert (CONSP (it->object) && EQ (XCAR (it->object), Qspace)); plist = XCDR (it->object); @@ -2336,7 +2336,7 @@ x_produce_stretch_glyph (it) property. */ struct it it2; unsigned char *p = BYTE_POS_ADDR (IT_BYTEPOS (*it)); - + it2 = *it; if (it->multibyte_p) { @@ -2358,7 +2358,7 @@ x_produce_stretch_glyph (it) else /* Nothing specified -> width defaults to canonical char width. */ width = CANON_X_UNIT (it->f); - + /* Compute height. */ if (prop = Fplist_get (plist, QCheight), NUMVAL (prop) > 0) @@ -2369,7 +2369,7 @@ x_produce_stretch_glyph (it) else height = FONT_HEIGHT (font); - /* Compute percentage of height used for ascent. If + /* Compute percentage of height used for ascent. If `:ascent ASCENT' is present and valid, use that. Otherwise, derive the ascent from the font in use. */ if (prop = Fplist_get (plist, QCascent), @@ -2403,13 +2403,13 @@ x_produce_stretch_glyph (it) it->ascent += face->box_line_width; it->descent += face->box_line_width; } - + if (it->start_of_box_run_p) it->pixel_width += abs (face->box_line_width); if (it->end_of_box_run_p) it->pixel_width += abs (face->box_line_width); } - + take_vertical_position_into_account (it); } @@ -2501,7 +2501,7 @@ x_produce_glyphs (it) face = FACE_FROM_ID (it->f, it->face_id); } } - + /* Get font to use. Encode IT->char_to_display. */ x_get_char_face_and_encoding (it->f, it->char_to_display, it->face_id, &char2b, @@ -2549,7 +2549,7 @@ x_produce_glyphs (it) it->phys_descent = FONT_DESCENT (font) - boff; it->pixel_width = FONT_WIDTH (font); } - + /* If this is a space inside a region of text with `space-width' property, change its width. */ stretched_p = it->char_to_display == ' ' && !NILP (it->space_width); @@ -2562,7 +2562,7 @@ x_produce_glyphs (it) if (face->box != FACE_NO_BOX) { int thick = face->box_line_width; - + if (thick > 0) { it->ascent += thick; @@ -2570,7 +2570,7 @@ x_produce_glyphs (it) } else thick = -thick; - + if (it->start_of_box_run_p) it->pixel_width += thick; if (it->end_of_box_run_p) @@ -2583,7 +2583,7 @@ x_produce_glyphs (it) it->ascent += 2; take_vertical_position_into_account (it); - + /* If we have to actually produce glyphs, do it. */ if (it->glyph_row) { @@ -2593,7 +2593,7 @@ x_produce_glyphs (it) into a stretch glyph. */ double ascent = (double) FONT_BASE (font) / FONT_HEIGHT (font); - x_append_stretch_glyph (it, it->object, it->pixel_width, + x_append_stretch_glyph (it, it->object, it->pixel_width, it->ascent + it->descent, ascent); } else @@ -2613,7 +2613,7 @@ x_produce_glyphs (it) it->nglyphs = 0; it->ascent = it->phys_ascent = FONT_BASE (font) + boff; it->descent = it->phys_descent = FONT_DESCENT (font) - boff; - + if (face->box != FACE_NO_BOX && face->box_line_width > 0) { @@ -2626,7 +2626,7 @@ x_produce_glyphs (it) int tab_width = it->tab_width * CANON_X_UNIT (it->f); int x = it->current_x + it->continuation_lines_width; int next_tab_x = ((1 + x + tab_width - 1) / tab_width) * tab_width; - + /* If the distance from the current position to the next tab stop is less than a canonical character width, use the tab stop after that. */ @@ -2637,15 +2637,15 @@ x_produce_glyphs (it) it->nglyphs = 1; it->ascent = it->phys_ascent = FONT_BASE (font) + boff; it->descent = it->phys_descent = FONT_DESCENT (font) - boff; - + if (it->glyph_row) { double ascent = (double) it->ascent / (it->ascent + it->descent); - x_append_stretch_glyph (it, it->object, it->pixel_width, + x_append_stretch_glyph (it, it->object, it->pixel_width, it->ascent + it->descent, ascent); } } - else + else { /* A multi-byte character. Assume that the display width of the character is the width of the character multiplied by the @@ -2691,20 +2691,20 @@ x_produce_glyphs (it) } else thick = - thick; - + if (it->start_of_box_run_p) it->pixel_width += thick; if (it->end_of_box_run_p) it->pixel_width += thick; } - + /* If face has an overline, add the height of the overline (1 pixel) and a 1 pixel margin to the character height. */ if (face->overline_p) it->ascent += 2; take_vertical_position_into_account (it); - + if (it->glyph_row) x_append_glyph (it); } @@ -2798,12 +2798,12 @@ x_produce_glyphs (it) ascent = FONT_BASE (font); descent = FONT_DESCENT (font); } - + rightmost = width; lowest = - descent + boff; highest = ascent + boff; leftmost = 0; - + if (font_info && font_info->default_ascent && CHAR_TABLE_P (Vuse_default_ascent) @@ -2964,20 +2964,20 @@ x_produce_glyphs (it) } else thick = - thick; - + if (it->start_of_box_run_p) it->pixel_width += thick; if (it->end_of_box_run_p) it->pixel_width += thick; } - + /* If face has an overline, add the height of the overline (1 pixel) and a 1 pixel margin to the character height. */ if (face->overline_p) it->ascent += 2; take_vertical_position_into_account (it); - + if (it->glyph_row) x_append_composite_glyph (it); } @@ -3024,7 +3024,7 @@ x_estimate_mode_line_height (f, face_id) height += 2 * face->box_line_width; } } - + return height; } @@ -3194,7 +3194,7 @@ static int x_fill_glyph_string P_ ((struct glyph_string *, int, int, int, static void x_init_glyph_string P_ ((struct glyph_string *, XChar2b *, struct window *, struct glyph_row *, - enum glyph_row_area, int, + enum glyph_row_area, int, enum draw_glyphs_face)); static int x_draw_glyphs P_ ((struct window *, int , struct glyph_row *, enum glyph_row_area, int, int, @@ -3240,7 +3240,7 @@ static int x_fill_stretch_glyph_string P_ ((struct glyph_string *, static void x_check_font P_ ((struct frame *, XFontStruct *)); #endif - + /* Append the list of glyph strings with head H and tail T to the list with head *HEAD and tail *TAIL. Set *HEAD and *TAIL to the result. */ @@ -3349,11 +3349,11 @@ x_set_cursor_gc (s) /* Set up S->gc of glyph string S for drawing text in mouse face. */ - + static void x_set_mouse_face_gc (s) struct glyph_string *s; -{ +{ int face_id; struct face *face; @@ -3362,7 +3362,7 @@ x_set_mouse_face_gc (s) face = FACE_FROM_ID (s->f, face_id); if (face == NULL) face = FACE_FROM_ID (s->f, MOUSE_FACE_ID); - + if (s->first_glyph->type == CHAR_GLYPH) face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch); else @@ -3379,20 +3379,20 @@ x_set_mouse_face_gc (s) but font FONT. */ XGCValues xgcv; unsigned long mask; - + xgcv.background = s->face->background; xgcv.foreground = s->face->foreground; IF_DEBUG (x_check_font (s->f, s->font)); xgcv.font = s->font; mask = GCForeground | GCBackground | GCFont; - + if (FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc) XChangeGC (s->display, FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc, mask, &xgcv); else FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc = XCreateGC (s->display, s->window, mask, &xgcv); - + s->gc = FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc; } @@ -3407,7 +3407,7 @@ x_set_mouse_face_gc (s) static INLINE void x_set_mode_line_face_gc (s) struct glyph_string *s; -{ +{ s->gc = s->face->gc; } @@ -3421,7 +3421,7 @@ x_set_glyph_string_gc (s) struct glyph_string *s; { PREPARE_FACE_FOR_DISPLAY (s->f, s->face); - + if (s->hl == DRAW_NORMAL_TEXT) { s->gc = s->face->gc; @@ -3472,7 +3472,7 @@ x_get_glyph_string_clip_rect (s, r) { /* Draw full-width. X coordinates are relative to S->w->left. */ int canon_x = CANON_X_UNIT (s->f); - + r->left = WINDOW_LEFT_MARGIN (s->w) * canon_x; r_width = XFASTINT (s->w->width) * canon_x; @@ -3482,7 +3482,7 @@ x_get_glyph_string_clip_rect (s, r) if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (s->f)) r->left -= width; } - + r->left += FRAME_INTERNAL_BORDER_WIDTH (s->f); /* Unless displaying a mode or menu bar line, which are always @@ -3568,7 +3568,7 @@ x_compute_glyph_string_overhangs (s) /* Compute overhangs and x-positions for glyph string S and its predecessors, or successors. X is the starting x-position for S. BACKWARD_P non-zero means process predecessors. */ - + static void x_compute_overhangs_and_x (s, x, backward_p) struct glyph_string *s; @@ -3609,7 +3609,7 @@ x_get_glyph_overhangs (glyph, f, left, right) int *left, *right; { *left = *right = 0; - + if (glyph->type == CHAR_GLYPH) { XFontStruct *font; @@ -3642,7 +3642,7 @@ x_left_overwritten (s) struct glyph_string *s; { int k; - + if (s->left_overhang) { int x = 0, i; @@ -3704,7 +3704,7 @@ x_right_overwritten (s) struct glyph *glyphs = s->row->glyphs[s->area]; int first = (s->first_glyph - glyphs) + (s->cmp ? 1 : s->nchars); int end = s->row->used[s->area]; - + for (i = first; i < end && s->right_overhang > x; ++i) x += glyphs[i].pixel_width; @@ -3927,9 +3927,9 @@ x_frame_of_widget (widget) struct x_display_info *dpyinfo; Lisp_Object tail; struct frame *f; - + dpyinfo = x_display_info_for_display (XtDisplay (widget)); - + /* Find the top-level shell of the widget. Note that this function can be called when the widget is not yet realized, so XtWindow (widget) == 0. That's the reason we can't simply use @@ -4016,7 +4016,7 @@ x_alloc_nearest_color (f, cmap, color) nearest_delta = delta; } } - + color->red = cells[nearest].red; color->green = cells[nearest].green; color->blue = cells[nearest].blue; @@ -4027,7 +4027,7 @@ x_alloc_nearest_color (f, cmap, color) if (rc) register_color (color->pixel); #endif /* DEBUG_X_COLORS */ - + return rc; } @@ -4124,7 +4124,7 @@ mac_alloc_lighter_color (f, color, factor, delta) DELTA lighter or darker than the relief's background which is found in S->f->output_data.x->relief_background. If such a color cannot be allocated, use DEFAULT_PIXEL, instead. */ - + static void x_setup_relief_color (f, relief, factor, delta, default_pixel) struct frame *f; @@ -4150,7 +4150,7 @@ x_setup_relief_color (f, relief, factor, delta, default_pixel) relief->allocated_p = 1; xgcv.foreground = relief->pixel = pixel; } - + if (relief->gc == 0) { #if 0 /* MAC_TODO: stipple */ @@ -4178,7 +4178,7 @@ x_setup_relief_colors (s) else { XGCValues xgcv; - + /* Get the background color of the face. */ XGetGCValues (s->display, s->gc, GCBackground, &xgcv); color = xgcv.background; @@ -4213,7 +4213,7 @@ x_draw_relief_rect (f, left_x, top_y, right_x, bottom_y, width, { int i; GC gc; - + if (raised_p) gc = f->output_data.mac->white_relief.gc; else @@ -4239,13 +4239,13 @@ x_draw_relief_rect (f, left_x, top_y, right_x, bottom_y, width, gc = f->output_data.mac->white_relief.gc; mac_set_clip_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), clip_rect); - + /* Bottom. */ for (i = 0; i < width; ++i) XDrawLine (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), gc, left_x + i * left_p, bottom_y - i, right_x + 1 - i * right_p, bottom_y - i); - + /* Right. */ if (right_p) for (i = 0; i < width; ++i) @@ -4271,10 +4271,10 @@ x_draw_box_rect (s, left_x, top_y, right_x, bottom_y, width, Rect *clip_rect; { XGCValues xgcv; - + xgcv.foreground = s->face->box_color; mac_set_clip_rectangle (s->display, s->window, clip_rect); - + /* Top. */ XFillRectangle (s->display, s->window, &xgcv, left_x, top_y, right_x - left_x, width); @@ -4287,7 +4287,7 @@ x_draw_box_rect (s, left_x, top_y, right_x, bottom_y, width, /* Bottom. */ XFillRectangle (s->display, s->window, &xgcv, left_x, bottom_y - width, right_x - left_x, width); - + /* Right. */ if (right_p) XFillRectangle (s->display, s->window, &xgcv, @@ -4316,7 +4316,7 @@ x_draw_glyph_string_box (s) if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (s->f)) last_x += FRAME_SCROLL_BAR_WIDTH (s->f) * CANON_X_UNIT (s->f); } - + /* The glyph that may have a right box line. */ last_glyph = (s->cmp || s->img ? s->first_glyph @@ -4339,7 +4339,7 @@ x_draw_glyph_string_box (s) || (s->hl == DRAW_MOUSE_FACE && (s->next == NULL || s->next->hl != s->hl))); - + x_get_glyph_string_clip_rect (s, &clip_rect); if (s->face->box == FACE_SIMPLE_BOX) @@ -4396,7 +4396,7 @@ x_draw_image_foreground (s) xgcv.clip_y_origin = y; xgcv.function = GXcopy; XChangeGC (s->display, s->gc, mask, &xgcv); - + x_get_glyph_string_clip_rect (s, &clip_rect); image_rect.x = x; image_rect.y = y; @@ -4411,7 +4411,7 @@ x_draw_image_foreground (s) { mac_copy_area (s->display, s->img->pixmap, s->window, s->gc, 0, 0, s->img->width, s->img->height, x, y); - + /* When the image has a mask, we can expect that at least part of a mouse highlight or a block cursor will be visible. If the image doesn't have a mask, make @@ -4445,7 +4445,7 @@ x_draw_image_relief (s) Rect r; int x; int y = s->ybase - image_ascent (s->img, s->face); - + /* If first glyph of S has a left box line, start drawing it to the right of that line. */ if (s->face->box != FACE_NO_BOX @@ -4453,12 +4453,12 @@ x_draw_image_relief (s) x = s->x + abs (s->face->box_line_width); else x = s->x; - + /* If there is a margin around the image, adjust x- and y-position by that margin. */ x += s->img->hmargin; y += s->img->vmargin; - + if (s->hl == DRAW_IMAGE_SUNKEN || s->hl == DRAW_IMAGE_RAISED) { @@ -4470,12 +4470,12 @@ x_draw_image_relief (s) thick = abs (s->img->relief); raised_p = s->img->relief > 0; } - + x0 = x - thick; y0 = y - thick; x1 = x + s->img->width + thick - 1; y1 = y + s->img->height + thick - 1; - + x_setup_relief_colors (s); x_get_glyph_string_clip_rect (s, &r); x_draw_relief_rect (s->f, x0, y0, x1, y1, thick, raised_p, 1, 1, &r); @@ -4534,7 +4534,7 @@ x_draw_image_foreground_1 (s, pixmap) { mac_copy_area_to_pixmap (s->display, s->img->pixmap, pixmap, s->gc, 0, 0, s->img->width, s->img->height, x, y); - + /* When the image has a mask, we can expect that at least part of a mouse highlight or a block cursor will be visible. If the image doesn't have a mask, make @@ -4579,7 +4579,7 @@ x_draw_glyph_string_bg_rect (s, x, y, w, h) } -/* Draw image glyph string S. +/* Draw image glyph string S. s->y s->x +------------------------- @@ -4622,7 +4622,7 @@ x_draw_image_glyph_string (s) x = s->x + box_line_hwidth; else x = s->x; - + y = s->y + box_line_vwidth; #if 0 /* TODO: image mask */ if (s->img->mask) @@ -4637,7 +4637,7 @@ x_draw_image_glyph_string (s) pixmap = XCreatePixmap (s->display, s->window, s->background_width, s->height, depth); - + /* Don't clip in the following because we're working on the pixmap. */ XSetClipMask (s->display, s->gc, None); @@ -4665,7 +4665,7 @@ x_draw_image_glyph_string (s) else #endif x_draw_glyph_string_bg_rect (s, x, y, s->background_width, height); - + s->background_filled_p = 1; } @@ -4725,7 +4725,7 @@ x_draw_stretch_glyph_string (s) } else gc = s->face->gc; - + x_get_glyph_string_clip_rect (s, &r); mac_set_clip_rectangle (s->display, s->window, &r); @@ -4753,7 +4753,7 @@ x_draw_stretch_glyph_string (s) else if (!s->background_filled_p) x_draw_glyph_string_bg_rect (s, s->x, s->y, s->background_width, s->height); - + s->background_filled_p = 1; } @@ -4835,7 +4835,7 @@ x_draw_glyph_string (s) { unsigned long h = 1; unsigned long dy = s->height - h; - + if (s->face->underline_defaulted_p) XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy, s->width, h); @@ -4868,7 +4868,7 @@ x_draw_glyph_string (s) XSetForeground (s->display, s->gc, xgcv.foreground); } } - + /* Draw strike-through. */ if (s->face->strike_through_p) { @@ -4888,7 +4888,7 @@ x_draw_glyph_string (s) XSetForeground (s->display, s->gc, xgcv.foreground); } } - + /* Draw relief. */ if (!relief_drawn_p && s->face->box != FACE_NO_BOX) x_draw_glyph_string_box (s); @@ -4904,7 +4904,7 @@ static int x_fill_composite_glyph_string P_ ((struct glyph_string *, /* Fill glyph string S with composition components specified by S->cmp. - + FACES is an array of faces for all components of this composition. S->gidx is the index of the first component for S. OVERLAPS_P non-zero means S should draw the foreground only, and @@ -4952,7 +4952,7 @@ x_fill_composite_glyph_string (s, faces, overlaps_p) /* Adjust base line for subscript/superscript text. */ s->ybase += s->first_glyph->voffset; - + xassert (s->face && s->face->gc); /* This glyph string must always be drawn with 16-bit functions. */ @@ -4963,7 +4963,7 @@ x_fill_composite_glyph_string (s, faces, overlaps_p) /* Fill glyph string S from a sequence of character glyphs. - + FACE_ID is the face id of the string. START is the index of the first glyph to consider, END is the index of the last + 1. OVERLAPS_P non-zero means S should draw the foreground only, and @@ -5013,7 +5013,7 @@ x_fill_glyph_string (s, face_id, start, end, overlaps_p) s->font = s->face->font; s->font_info = FONT_INFO_FROM_ID (s->f, s->face->font_info_id); - + /* If the specified font could not be loaded, use the frame's font, but record the fact that we couldn't load it in S->font_not_found_p so that we can draw rectangles for the @@ -5026,7 +5026,7 @@ x_fill_glyph_string (s, face_id, start, end, overlaps_p) /* Adjust base line for subscript/superscript text. */ s->ybase += voffset; - + xassert (s->face && s->face->gc); return glyph - s->row->glyphs[s->area]; } @@ -5044,7 +5044,7 @@ x_fill_image_glyph_string (s) s->face = FACE_FROM_ID (s->f, s->first_glyph->face_id); s->font = s->face->font; s->width = s->first_glyph->pixel_width; - + /* Adjust base line for subscript/superscript text. */ s->ybase += s->first_glyph->voffset; } @@ -5067,9 +5067,9 @@ x_fill_stretch_glyph_string (s, row, area, start, end) { struct glyph *glyph, *last; int voffset, face_id; - + xassert (s->first_glyph->type == STRETCH_GLYPH); - + glyph = s->row->glyphs[s->area] + start; last = s->row->glyphs[s->area] + end; face_id = glyph->face_id; @@ -5086,7 +5086,7 @@ x_fill_stretch_glyph_string (s, row, area, start, end) && glyph->face_id == face_id); ++glyph) s->width += glyph->pixel_width; - + /* Adjust base line for subscript/superscript text. */ s->ybase += voffset; @@ -5102,7 +5102,7 @@ x_fill_stretch_glyph_string (s, row, area, start, end) and area within the row from which S is constructed. START is the index of the first glyph structure covered by S. HL is a face-override for drawing S. */ - + static void x_init_glyph_string (s, char2b, w, row, area, start, hl) struct glyph_string *s; @@ -5129,7 +5129,7 @@ x_init_glyph_string (s, char2b, w, row, area, start, hl) /* Display the internal border below the tool-bar window. */ if (s->w == XWINDOW (s->f->tool_bar_window)) s->y -= s->f->output_data.mac->internal_border_width; - + s->ybase = s->y + row->ascent; } @@ -5147,7 +5147,7 @@ x_set_glyph_string_background_width (s, start, last_x) /* If the face of this glyph string has to be drawn to the end of the drawing area, set S->extends_to_end_of_line_p. */ struct face *default_face = FACE_FROM_ID (s->f, DEFAULT_FACE_ID); - + if (start == s->row->used[s->area] && s->area == TEXT_AREA && ((s->hl == DRAW_NORMAL_TEXT @@ -5159,7 +5159,7 @@ x_set_glyph_string_background_width (s, start, last_x) || ((s->hl == DRAW_IMAGE_RAISED || s->hl == DRAW_IMAGE_SUNKEN) && s->row->fill_line_p))) s->extends_to_end_of_line_p = 1; - + /* If S extends its face to the end of the line, set its background_width to the distance to the right edge of the drawing area. */ @@ -5240,7 +5240,7 @@ x_set_glyph_string_background_width (s, start, last_x) OVERLAPS_P); \ } \ while (0) - + /* Add a glyph string for a composite sequence to the list of strings between HEAD and TAIL. START is the index of the first glyph in @@ -5296,7 +5296,7 @@ x_set_glyph_string_background_width (s, start, last_x) ++START; \ s = first_s; \ } while (0) - + /* Build a list of glyph strings between HEAD and TAIL for the glyphs of AREA of glyph row ROW on window W between indices START and END. @@ -5365,7 +5365,7 @@ x_set_glyph_string_background_width (s, start, last_x) and clip to the physical height of ROW. Value is the x-position reached, relative to AREA of W. */ - + static int x_draw_glyphs (w, x, row, area, start, end, hl, overlaps_p) struct window *w; @@ -5446,7 +5446,7 @@ x_draw_glyphs (w, x, row, area, start, end, hl, overlaps_p) /* Prepend glyph strings for glyphs in front of the first glyph string that are overwritten because of the first glyph string's left overhang. The background of all strings - prepended must be drawn because the first glyph string + prepended must be drawn because the first glyph string draws over it. */ i = x_left_overwritten (head); if (i >= 0) @@ -5524,10 +5524,10 @@ x_draw_glyphs (w, x, row, area, start, end, hl, overlaps_p) { int x0 = head ? head->x : x; int x1 = tail ? tail->x + tail->background_width : x; - + x0 = FRAME_TO_WINDOW_PIXEL_X (w, x0); x1 = FRAME_TO_WINDOW_PIXEL_X (w, x1); - + if (!row->full_width_p && XFASTINT (w->left_margin_width) != 0) { int left_area_width = window_box_width (w, LEFT_MARGIN_AREA); @@ -5563,9 +5563,9 @@ x_fix_overlapping_area (w, row, area) enum glyph_row_area area; { int i, x; - + BLOCK_INPUT; - + if (area == LEFT_MARGIN_AREA) x = 0; else if (area == TEXT_AREA) @@ -5597,7 +5597,7 @@ x_fix_overlapping_area (w, row, area) ++i; } } - + UNBLOCK_INPUT; } @@ -5617,7 +5617,7 @@ x_write_glyphs (start, len) xassert (updated_window && updated_row); BLOCK_INPUT; - + /* Write glyphs. */ hpos = start - updated_row->glyphs[updated_area]; @@ -5627,7 +5627,7 @@ x_write_glyphs (start, len) DRAW_NORMAL_TEXT, 0); UNBLOCK_INPUT; - + /* Advance the output cursor. */ output_cursor.hpos += len; output_cursor.x = x; @@ -5715,10 +5715,10 @@ x_clear_end_of_line (to_x) struct window *w = updated_window; int max_x, min_y, max_y; int from_x, from_y, to_y; - + xassert (updated_window && updated_row); f = XFRAME (w->frame); - + if (updated_row->full_width_p) { max_x = XFASTINT (w->width) * CANON_X_UNIT (f); @@ -5740,7 +5740,7 @@ x_clear_end_of_line (to_x) to_x = min (to_x, max_x); to_y = min (max_y, output_cursor.y + updated_row->height); - + /* Notice if the cursor will be cleared by this operation. */ if (!updated_row->full_width_p) notice_overwritten_cursor (w, updated_area, @@ -5761,11 +5761,11 @@ x_clear_end_of_line (to_x) from_x = WINDOW_AREA_TO_FRAME_PIXEL_X (w, updated_area, from_x); to_x = WINDOW_AREA_TO_FRAME_PIXEL_X (w, updated_area, to_x); } - + min_y = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w); from_y = WINDOW_TO_FRAME_PIXEL_Y (w, max (min_y, output_cursor.y)); to_y = WINDOW_TO_FRAME_PIXEL_Y (w, to_y); - + /* Prevent inadvertently clearing to end of the X window. */ if (to_x > from_x && to_y > from_y) { @@ -5836,7 +5836,7 @@ timeval_subtract (result, x, y) y.tv_usec -= 1000000 * nsec; y.tv_sec += nsec; } - + if (x.tv_usec - y.tv_usec > 1000000) { int nsec = (y.tv_usec - x.tv_usec) / 1000000; @@ -5888,7 +5888,7 @@ XTflash (f) select (0, NULL, NULL, NULL, &timeout); } } - + FlashMenuBar (0); UNBLOCK_INPUT; @@ -5903,7 +5903,7 @@ void XTring_bell () { struct frame *f = SELECTED_FRAME (); - + #if defined (HAVE_TIMEVAL) && defined (HAVE_SELECT) if (visible_bell) XTflash (f); @@ -5989,7 +5989,7 @@ x_scroll_run (w, run) } BLOCK_INPUT; - + /* Cursor off. Will be switched on again in x_update_window_end. */ updated_window = w; x_clear_cursor (w); @@ -5999,7 +5999,7 @@ x_scroll_run (w, run) x, from_y, width, height, x, to_y); - + UNBLOCK_INPUT; } @@ -6008,7 +6008,7 @@ x_scroll_run (w, run) /*********************************************************************** Exposure Events ***********************************************************************/ - + /* Redisplay an exposed area of frame F. X and Y are the upper-left corner of the exposed rectangle. W and H are width and height of the exposed area. All are pixel values. W or H zero means redraw @@ -6167,7 +6167,7 @@ expose_area (w, row, r, area) x += first->pixel_width; ++first; } - + /* Find the last one. */ last = first; first_x = x; @@ -6199,7 +6199,7 @@ expose_line (w, row, r) Rect *r; { xassert (row->enabled_p); - + if (row->mode_line_p || w->pseudo_window_p) x_draw_glyphs (w, 0, row, TEXT_AREA, 0, row->used[TEXT_AREA], DRAW_NORMAL_TEXT, 0); @@ -6257,18 +6257,18 @@ expose_overlaps (w, first_overlapping_row, last_overlapping_row) struct glyph_row *last_overlapping_row; { struct glyph_row *row; - + for (row = first_overlapping_row; row <= last_overlapping_row; ++row) if (row->overlapping_p) { xassert (row->enabled_p && !row->mode_line_p); - + if (row->used[LEFT_MARGIN_AREA]) x_fix_overlapping_area (w, row, LEFT_MARGIN_AREA); - + if (row->used[TEXT_AREA]) x_fix_overlapping_area (w, row, TEXT_AREA); - + if (row->used[RIGHT_MARGIN_AREA]) x_fix_overlapping_area (w, row, RIGHT_MARGIN_AREA); } @@ -6317,7 +6317,7 @@ expose_window (w, fr) struct glyph_row *row; int cursor_cleared_p; struct glyph_row *first_overlapping_row, *last_overlapping_row; - + TRACE ((stderr, "expose_window (%d, %d, %d, %d)\n", r.left, r.top, r.right, r.bottom)); @@ -6357,11 +6357,11 @@ expose_window (w, fr) first_overlapping_row = row; last_overlapping_row = row; } - + if (expose_line (w, row, &r)) mouse_face_overwritten_p = 1; } - + if (y1 >= yb) break; } @@ -6381,10 +6381,10 @@ expose_window (w, fr) /* Fix the display of overlapping rows. */ if (first_overlapping_row) expose_overlaps (w, first_overlapping_row, last_overlapping_row); - + /* Draw border between windows. */ x_draw_vertical_border (w); - + /* Turn the cursor on again. */ if (cursor_cleared_p) x_update_window_cursor (w, 1); @@ -6410,7 +6410,7 @@ x_intersect_rectangles (r1, r2, result) Rect *left, *right; Rect *upper, *lower; int intersection_p = 0; - + /* Rerrange so that R1 is the left-most rectangle. */ if (r1->left < r2->left) left = r1, right = r2; @@ -6422,7 +6422,7 @@ x_intersect_rectangles (r1, r2, result) if (right->left <= left->right) { result->left = right->left; - + /* The right end of the intersection is the minimum of the the right ends of left and right. */ result->right = min (left->right, right->right); @@ -6438,7 +6438,7 @@ x_intersect_rectangles (r1, r2, result) if (lower->top <= upper->bottom) { result->top = lower->top; - + /* The lower end of the intersection is the minimum of the lower ends of upper and lower. */ result->bottom = min (lower->bottom, upper->bottom); @@ -6989,7 +6989,7 @@ x_y_to_hpos_vpos (w, x, y, hpos, vpos, area, buffer_only_p) else if (!buffer_only_p || BUFFERP (glyph->object)) break; } - + x0 += glyph->pixel_width; ++glyph; } @@ -7052,13 +7052,13 @@ note_mode_line_highlight (w, x, mode_line_p) struct glyph *glyph, *end; Lisp_Object help, map; int x0; - + /* Find the glyph under X. */ glyph = row->glyphs[TEXT_AREA]; end = glyph + row->used[TEXT_AREA]; x0 = - (FRAME_LEFT_SCROLL_BAR_WIDTH (f) * CANON_X_UNIT (f) + FRAME_X_LEFT_FRINGE_WIDTH (f)); - + while (glyph < end && x >= x0 + glyph->pixel_width) { @@ -7418,7 +7418,7 @@ note_mouse_highlight (f, x, y) the text ``under'' it might have. */ struct glyph_row *r = MATRIX_ROW (w->current_matrix, vpos); int start = MATRIX_ROW_START_CHARPOS (r); - + pos = string_buffer_position (w, object, start); if (pos > 0) mouse_face = get_char_property_and_overlay (make_number (pos), @@ -7442,7 +7442,7 @@ note_mouse_highlight (f, x, y) &dpyinfo->mouse_face_beg_x, &dpyinfo->mouse_face_beg_y, object); - + dpyinfo->mouse_face_past_end = !fast_find_position (w, XFASTINT (after), &dpyinfo->mouse_face_end_col, @@ -7474,7 +7474,7 @@ note_mouse_highlight (f, x, y) for (i = noverlays - 1; i >= 0 && NILP (help); --i) { overlay = overlay_vec[i]; - help = Foverlay_get (overlay, Qhelp_echo); + help = Foverlay_get (overlay, Qhelp_echo); } if (!NILP (help)) @@ -7521,7 +7521,7 @@ note_mouse_highlight (f, x, y) && charpos < ZV) help = Fget_text_property (make_number (charpos), Qhelp_echo, object); - + if (!NILP (help)) { help_echo = help; @@ -7608,7 +7608,7 @@ x_tool_bar_item (f, x, y, glyph, hpos, vpos, prop_idx) || *hpos < dpyinfo->mouse_face_end_col || dpyinfo->mouse_face_past_end)) return 0; - + return 1; } @@ -7629,7 +7629,7 @@ x_handle_tool_bar_click (f, button_event) Lisp_Object enabled_p; int x = button_event->where.h; int y = button_event->where.v; - + /* If not on the highlighted tool-bar item, return. */ frame_to_window_pixel_xy (w, &x, &y); if (x_tool_bar_item (f, x, y, &glyph, &hpos, &vpos, &prop_idx) != 0) @@ -7639,7 +7639,7 @@ x_handle_tool_bar_click (f, button_event) enabled_p = AREF (f->tool_bar_items, prop_idx + TOOL_BAR_ITEM_ENABLED_P); if (NILP (enabled_p)) return; - + if (button_event->what == mouseDown) { /* Show item in pressed state. */ @@ -7716,7 +7716,7 @@ note_tool_bar_highlight (f, x, y) goto set_help_echo; clear_mouse_face (dpyinfo); - + /* Mouse is down, but on different tool-bar item? */ mouse_down_p = (dpyinfo->grabbed && f == last_mouse_frame @@ -7727,7 +7727,7 @@ note_tool_bar_highlight (f, x, y) dpyinfo->mouse_face_image_state = DRAW_NORMAL_TEXT; draw = mouse_down_p ? DRAW_IMAGE_SUNKEN : DRAW_IMAGE_RAISED; - + /* If tool-bar item is not enabled, don't highlight it. */ enabled_p = AREF (f->tool_bar_items, prop_idx + TOOL_BAR_ITEM_ENABLED_P); if (!NILP (enabled_p)) @@ -7737,28 +7737,28 @@ note_tool_bar_highlight (f, x, y) row = MATRIX_ROW (w->current_matrix, vpos); for (i = x = 0; i < hpos; ++i) x += row->glyphs[TEXT_AREA][i].pixel_width; - + /* Record this as the current active region. */ dpyinfo->mouse_face_beg_col = hpos; dpyinfo->mouse_face_beg_row = vpos; dpyinfo->mouse_face_beg_x = x; dpyinfo->mouse_face_beg_y = row->y; dpyinfo->mouse_face_past_end = 0; - + dpyinfo->mouse_face_end_col = hpos + 1; dpyinfo->mouse_face_end_row = vpos; dpyinfo->mouse_face_end_x = x + glyph->pixel_width; dpyinfo->mouse_face_end_y = row->y; dpyinfo->mouse_face_window = window; dpyinfo->mouse_face_face_id = TOOL_BAR_FACE_ID; - + /* Display it as active. */ show_mouse_face (dpyinfo, draw); dpyinfo->mouse_face_image_state = draw; } - + set_help_echo: - + /* Set help_echo to a help string.to display for this tool-bar item. XTread_socket does the rest. */ help_echo_object = help_echo_window = Qnil; @@ -7780,7 +7780,7 @@ note_tool_bar_highlight (f, x, y) #if 0 /* This is a version of fast_find_position that's more correct in the presence of hscrolling, for example. I didn't install it right away because the problem fixed is minor, it failed - in 20.x as well, and I think it's too risky to install + in 20.x as well, and I think it's too risky to install so near the release of 21.1. 2001-09-25 gerd. */ static int @@ -7813,10 +7813,10 @@ fast_find_position (w, charpos, hpos, vpos, x, y, stop) *x = row->x; *y = row->y; *vpos = MATRIX_ROW_VPOS (row, w->current_matrix); - + glyph = row->glyphs[TEXT_AREA]; end = glyph + row->used[TEXT_AREA]; - + /* Skip over glyphs not having an object at the start of the row. These are special glyphs like truncation marks on terminal frames. */ @@ -8018,7 +8018,7 @@ fast_find_string_pos (w, pos, object, hpos, vpos, x, y, right_p) *x += best_glyph->pixel_width; ++*hpos; } - + *y = best_row->y; *vpos = best_row - w->current_matrix->rows; } @@ -8037,7 +8037,7 @@ show_mouse_face (dpyinfo, draw) { struct window *w = XWINDOW (dpyinfo->mouse_face_window); struct frame *f = XFRAME (WINDOW_FRAME (w)); - + if (/* If window is in the process of being destroyed, don't bother to do anything. */ w->current_matrix != NULL @@ -8052,7 +8052,7 @@ show_mouse_face (dpyinfo, draw) first = MATRIX_ROW (w->current_matrix, dpyinfo->mouse_face_beg_row); last = MATRIX_ROW (w->current_matrix, dpyinfo->mouse_face_end_row); - + for (row = first; row <= last && row->enabled_p; ++row) { int start_hpos, end_hpos, start_x; @@ -8076,7 +8076,7 @@ show_mouse_face (dpyinfo, draw) if (end_hpos > start_hpos) { - x_draw_glyphs (w, start_x, row, TEXT_AREA, + x_draw_glyphs (w, start_x, row, TEXT_AREA, start_hpos, end_hpos, draw, 0); row->mouse_face_p @@ -8307,7 +8307,7 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time) Lisp_Object frame, tail; if (is_emacs_window(wp)) - f = ((mac_output *) GetWRefCon (wp))->mFP; + f = ((mac_output *) GetWRefCon (wp))->mFP; BLOCK_INPUT; @@ -8339,7 +8339,7 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time) XSETINT (*y, mouse_pos.v); *time = last_mouse_movement_time; } - + UNBLOCK_INPUT; } @@ -8347,7 +8347,7 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time) /************************************************************************ Scroll bars, general ************************************************************************/ - + /* Create a scroll bar and return the scroll bar vector for it. W is the Emacs window on which to create the scroll bar. TOP, LEFT, WIDTH and HEIGHT are the pixel coordinates and dimensions of the @@ -8370,7 +8370,7 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height) r.top = disp_top; r.right = left + width; r.bottom = disp_top + disp_height; - + #ifdef TARGET_API_MAC_CARBON ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", 1, 0, 0, 0, kControlScrollBarProc, 0L); @@ -8403,7 +8403,7 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height) /* Draw BAR's handle in the proper position. - + If the handle is already drawn from START to END, don't bother redrawing it, unless REBUILD is non-zero; in that case, always redraw it. (REBUILD is handy for drawing the handle after expose @@ -8442,7 +8442,7 @@ x_scroll_bar_set_handle (bar, start, end, rebuild) else if (start > top_range) start = top_range; end = start + length; - + if (end < start) end = start; else if (end > top_range && ! dragging) @@ -8536,10 +8536,10 @@ XTset_vertical_scroll_bar (w, portion, whole, position) /* Compute the left edge of the scroll bar. */ if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (f)) - sb_left = left + width - sb_width - (width - sb_width) / 2; + sb_left = left + width - sb_width - (width - sb_width) / 2; else sb_left = left + (width - sb_width) / 2; - + /* Adjustments according to Inside Macintosh to make it look nice */ disp_top = top; disp_height = height; @@ -8553,10 +8553,10 @@ XTset_vertical_scroll_bar (w, portion, whole, position) disp_top++; disp_height--; } - + if (sb_left + sb_width == PIXEL_WIDTH (f)) sb_left++; - + /* Does the scroll bar exist yet? */ if (NILP (w->vertical_scroll_bar)) { @@ -8572,7 +8572,7 @@ XTset_vertical_scroll_bar (w, portion, whole, position) { /* It may just need to be moved and resized. */ ControlHandle ch; - + bar = XSCROLL_BAR (w->vertical_scroll_bar); ch = SCROLL_BAR_CONTROL_HANDLE (bar); @@ -8605,7 +8605,7 @@ XTset_vertical_scroll_bar (w, portion, whole, position) SizeControl (ch, sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2, disp_height); ShowControl (ch); - + /* Remember new settings. */ XSETINT (bar->left, sb_left); XSETINT (bar->top, top); @@ -8749,7 +8749,7 @@ activate_scroll_bars (frame) { Lisp_Object bar; ControlHandle ch; - + bar = FRAME_SCROLL_BARS (frame); while (! NILP (bar)) { @@ -8773,7 +8773,7 @@ deactivate_scroll_bars (frame) { Lisp_Object bar; ControlHandle ch; - + bar = FRAME_SCROLL_BARS (frame); while (! NILP (bar)) { @@ -8782,7 +8782,7 @@ deactivate_scroll_bars (frame) DeactivateControl (ch); #else SetControlMaximum (ch, XINT (-1)); -#endif +#endif bar = XSCROLL_BAR (bar)->next; } } @@ -8808,7 +8808,7 @@ x_scroll_bar_handle_click (bar, part_code, er, bufp) bufp->arg = Qnil; bar->dragging = Qnil; - + switch (part_code) { case kControlUpButtonPart: @@ -9034,7 +9034,7 @@ x_draw_hollow_cursor (w, row) if (cursor_glyph->type == STRETCH_GLYPH && !x_stretch_cursor_p) wd = min (CANON_X_UNIT (f), wd); - + /* The foreground of cursor_gc is typically the same as the normal background color, which can cause the cursor box to be invisible. */ xgcv.foreground = f->output_data.mac->cursor_pixel; @@ -9078,7 +9078,7 @@ x_draw_bar_cursor (w, row, width) XGCValues xgcv; Display *dpy; Window window; - + cursor_glyph = get_phys_cursor_glyph (w); if (cursor_glyph == NULL) return; @@ -9089,7 +9089,7 @@ x_draw_bar_cursor (w, row, width) dpy = FRAME_MAC_DISPLAY (f); window = FRAME_MAC_WINDOW (f); gc = FRAME_X_DISPLAY_INFO (f)->scratch_cursor_gc; - + if (gc) XChangeGC (dpy, gc, mask, &xgcv); else @@ -9183,7 +9183,7 @@ x_erase_phys_cursor (w) screen. */ if (w->phys_cursor_type == NO_CURSOR) goto mark_cursor_off; - + /* VPOS >= active_glyphs->nrows means that window has been resized. Don't bother to erase the cursor. */ if (vpos >= active_glyphs->nrows) @@ -9194,13 +9194,13 @@ x_erase_phys_cursor (w) cursor_row = MATRIX_ROW (active_glyphs, vpos); if (!cursor_row->enabled_p) goto mark_cursor_off; - + /* If row is completely invisible, don't attempt to delete a cursor which isn't there. This may happen if cursor is at top of window, and we switch to a buffer with a header line in that window. */ if (cursor_row->visible_height <= 0) goto mark_cursor_off; - + /* This can happen when the new row is shorter than the old one. In this case, either x_draw_glyphs or clear_end_of_line should have cleared the cursor. Note that we wouldn't be @@ -9208,7 +9208,7 @@ x_erase_phys_cursor (w) cursor glyph at hand. */ if (w->phys_cursor.hpos >= cursor_row->used[TEXT_AREA]) goto mark_cursor_off; - + /* If the cursor is in the mouse face area, redisplay that when we clear the cursor. */ if (! NILP (dpyinfo->mouse_face_window) @@ -9236,7 +9236,7 @@ x_erase_phys_cursor (w) goto mark_cursor_off; x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x), - + XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), x, WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, @@ -9245,7 +9245,7 @@ x_erase_phys_cursor (w) cursor_row->visible_height, 0); } - + /* Erase the cursor by redrawing the character underneath it. */ if (mouse_face_here_p) hl = DRAW_MOUSE_FACE; @@ -9268,7 +9268,7 @@ cursor_in_mouse_face_p (w) struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (XFRAME (w->frame)); int in_mouse_face = 0; - + if (WINDOWP (dpyinfo->mouse_face_window) && XWINDOW (dpyinfo->mouse_face_window) == w) { @@ -9323,8 +9323,8 @@ x_display_and_set_cursor (w, on, hpos, vpos, x, y) current_glyphs = w->current_matrix; glyph_row = MATRIX_ROW (current_glyphs, vpos); glyph = glyph_row->glyphs[TEXT_AREA] + hpos; - - /* If cursor row is not enabled, we don't really know where to + + /* If cursor row is not enabled, we don't really know where to display the cursor. */ if (!glyph_row->enabled_p) { @@ -9356,7 +9356,7 @@ x_display_and_set_cursor (w, on, hpos, vpos, x, y) { w->phys_cursor_ascent = glyph_row->ascent; w->phys_cursor_height = glyph_row->height; - + /* Set phys_cursor_.* before x_draw_.* is called because some of them may need the information. */ w->phys_cursor.x = x; @@ -9760,7 +9760,7 @@ x_calc_absolute_position (f) #if TARGET_API_MAC_CARBON { Rect r; - + GetWindowPortBounds (FRAME_MAC_WINDOW (f), &r); SetPt(&pt, r.left, r.top); } @@ -9841,9 +9841,9 @@ x_set_window_size (f, change_gravity, cols, rows) int cols, rows; { int pixelwidth, pixelheight; - + BLOCK_INPUT; - + check_frame_size (f, &rows, &cols); f->output_data.mac->vertical_scroll_bar_extra = (!FRAME_HAS_VERTICAL_SCROLL_BARS (f) @@ -9864,7 +9864,7 @@ x_set_window_size (f, change_gravity, cols, rows) but the window manager will get around to dealing with the size change request eventually, and we'll hear how it went when the ConfigureNotify event gets here. - + We could just not bother storing any of this information here, and let the ConfigureNotify event set everything up, but that might be kind of confusing to the Lisp code, since size changes @@ -9889,7 +9889,7 @@ x_set_window_size (f, change_gravity, cols, rows) mark_window_cursors_off (XWINDOW (f->root_window)); /* Clear out any recollection of where the mouse highlighting was, - since it might be in a place that's outside the new frame size. + since it might be in a place that's outside the new frame size. Actually checking whether it is outside is a pain in the neck, so don't try--just let the highlighting be done afresh with new size. */ cancel_mouse_face (f); @@ -10018,7 +10018,7 @@ x_make_frame_visible (f) f->output_data.mac->top_pos, 0); f->output_data.mac->asked_for_visible = 1; - + ShowWindow (FRAME_MAC_WINDOW (f)); } @@ -10082,11 +10082,11 @@ x_make_frame_invisible (f) /* Don't keep the highlight on an invisible frame. */ if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f) FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame = 0; - + BLOCK_INPUT; - + HideWindow (FRAME_MAC_WINDOW (f)); - + /* We can't distinguish this from iconification just by the event that we get from the server. So we can't win using the usual strategy of letting @@ -10096,7 +10096,7 @@ x_make_frame_invisible (f) FRAME_ICONIFIED_P (f) = 0; f->async_visible = 0; f->async_iconified = 0; - + UNBLOCK_INPUT; } @@ -10119,7 +10119,7 @@ x_iconify_frame (f) BLOCK_INPUT; CollapseWindow (FRAME_MAC_WINDOW (f), true); - + UNBLOCK_INPUT; } @@ -10380,7 +10380,7 @@ x_wm_set_icon_pixmap (f, pixmap_id) } #else /* not USE_X_TOOLKIT */ - + f->output_data.x->wm_hints.flags |= IconPixmapHint; XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints); @@ -10450,7 +10450,7 @@ wildstrieq (char *s1, char *s2) } /* Assume parameter 1 is fully qualified, no wildcards. */ -static int +static int mac_font_pattern_match (fontname, pattern) char * fontname; char * pattern; @@ -10487,7 +10487,7 @@ mac_font_pattern_match (fontname, pattern) /* Two font specs are considered to match if their foundry, family, weight, slant, and charset match. */ -static int +static int mac_font_match (char *mf, char *xf) { char m_foundry[50], m_family[50], m_weight[20], m_slant[2], m_charset[20]; @@ -10543,7 +10543,7 @@ mac_to_x_fontname (char *name, int size, Style style, short scriptcode) break; case smKorean: strcpy(cs, "ksc5601.1989-0"); - break; + break; default: strcpy(cs, "mac-roman"); break; @@ -10553,14 +10553,14 @@ mac_to_x_fontname (char *name, int size, Style style, short scriptcode) sprintf(xf, "-%s-%s-%s-%c-normal--%d-%d-75-75-m-%d-%s", foundry, family, style & bold ? "bold" : "medium", style & italic ? 'i' : 'r', size, size * 10, size * 10, cs); - + result = (char *) xmalloc (strlen (xf) + 1); strcpy (result, xf); for (p = result; *p; p++) *p = tolower(*p); return result; } - + /* Convert an X font spec to the corresponding mac font name, which can then be passed to GetFNum after conversion to a Pascal string. @@ -10622,7 +10622,7 @@ init_font_name_table () { #if TARGET_API_MAC_CARBON SInt32 sv; - + if (Gestalt (gestaltSystemVersion, &sv) == noErr && sv >= 0x1000) { FMFontFamilyIterator ffi; @@ -10648,17 +10648,17 @@ init_font_name_table () FMFontStyle style; FMFontSize size; SInt16 sc; - + if (FMGetFontFamilyName (ff, name) != noErr) break; p2cstr (name); - + sc = FontToScript (ff); - + /* Point the instance iterator at the current font family. */ if (FMResetFontFamilyInstanceIterator(ff, &ffii) != noErr) break; - + while (FMGetNextFontFamilyInstance (&ffii, &font, &style, &size) == noErr) if (size == 0) @@ -10683,7 +10683,7 @@ init_font_name_table () -smJapanese)); } } - + /* Dispose of the iterators. */ FMDisposeFontFamilyIterator (&ffi); FMDisposeFontFamilyInstanceIterator (&ffii); @@ -10701,7 +10701,7 @@ init_font_name_table () Str32 name; struct FontAssoc *fat; struct AsscEntry *assc_entry; - + GetPort (&port); /* save the current font number used */ #if TARGET_API_MAC_CARBON old_fontnum = GetPortTextFont (port); @@ -10714,19 +10714,19 @@ init_font_name_table () font_handle = GetIndResource ('FOND', i); if (!font_handle) continue; - + GetResInfo (font_handle, &id, &type, name); GetFNum (name, &fontnum); p2cstr (name); if (fontnum == 0) continue; - + TextFont (fontnum); scriptcode = FontToScript (fontnum); do { HLock (font_handle); - + if (GetResourceSizeOnDisk (font_handle) >= sizeof (struct FamRec)) { @@ -10736,7 +10736,7 @@ init_font_name_table () = (struct AsscEntry *) (*font_handle + sizeof (struct FamRec) + sizeof (struct FontAssoc)); - + for (j = 0; j <= fat->numAssoc; j++, assc_entry++) { if (font_name_table_size == 0) @@ -10770,7 +10770,7 @@ init_font_name_table () } } } - + HUnlock (font_handle); font_handle_2 = GetNextFOND (font_handle); ReleaseResource (font_handle); @@ -10778,7 +10778,7 @@ init_font_name_table () } while (ResError () == noErr && font_handle); } - + TextFont (old_fontnum); #if TARGET_API_MAC_CARBON } @@ -10836,7 +10836,7 @@ x_list_fonts (struct frame *f, break; } } - + /* MAC_TODO: add code for matching outline fonts here */ UNGCPRO; @@ -10848,7 +10848,7 @@ x_list_fonts (struct frame *f, XCDR (dpyinfo->name_list_element))); } label_cached: - + return newlist; } @@ -10869,7 +10869,7 @@ x_check_font (f, font) xassert (font != NULL); for (i = 0; i < dpyinfo->n_fonts; i++) - if (dpyinfo->font_table[i].name + if (dpyinfo->font_table[i].name && font == dpyinfo->font_table[i].font) break; @@ -10913,20 +10913,20 @@ x_compute_min_glyph_bounds (f) MacFontStruct *font; int old_width = dpyinfo->smallest_char_width; int old_height = dpyinfo->smallest_font_height; - + dpyinfo->smallest_font_height = 100000; dpyinfo->smallest_char_width = 100000; - + for (i = 0; i < dpyinfo->n_fonts; ++i) if (dpyinfo->font_table[i].name) { struct font_info *fontp = dpyinfo->font_table + i; int w, h; - + font = (MacFontStruct *) fontp->font; xassert (font != (MacFontStruct *) ~0); x_font_min_bounds (font, &w, &h); - + dpyinfo->smallest_font_height = min (dpyinfo->smallest_font_height, h); dpyinfo->smallest_char_width = min (dpyinfo->smallest_char_width, w); } @@ -10951,7 +10951,7 @@ is_fully_specified_xlfd (char *p) if (*p != '-') return 0; - + for (i = 0; i < 13; i++) { q = strchr (p + 1, '-'); @@ -10964,7 +10964,7 @@ is_fully_specified_xlfd (char *p) if (strchr (p + 1, '-') != NULL) return 0; - + if (*(p + 1) == '*' && *(p + 2) == '\0') return 0; @@ -11006,7 +11006,7 @@ XLoadQueryFont (Display *dpy, char *fontname) if (i >= font_name_count) return NULL; - + name = font_name_table[i]; } @@ -11037,9 +11037,9 @@ XLoadQueryFont (Display *dpy, char *fontname) GetFNum (mfontname, &fontnum); if (fontnum == 0) return NULL; - + font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct)); - + font->fontname = (char *) xmalloc (strlen (name) + 1); bcopy (name, font->fontname, strlen (name) + 1); @@ -11055,13 +11055,13 @@ XLoadQueryFont (Display *dpy, char *fontname) { char cs[32]; - if (sscanf (name, + if (sscanf (name, "-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]--%*[^-]-%*[^-]-%*[^-]-%*[^-]-%*c-%*[^-]-%31s", cs) == 1 - && 0 == strcmp (cs, "jisx0201.1976-0")) + && 0 == strcmp (cs, "jisx0201.1976-0")) font->mac_scriptcode = smRoman; } - + is_two_byte_font = font->mac_scriptcode == smJapanese || font->mac_scriptcode == smTradChinese || font->mac_scriptcode == smSimpChinese || @@ -11070,7 +11070,7 @@ XLoadQueryFont (Display *dpy, char *fontname) TextFont (fontnum); TextSize (size); TextFace (fontface); - + GetFontInfo (&the_fontinfo); font->ascent = the_fontinfo.ascent; @@ -11083,7 +11083,7 @@ XLoadQueryFont (Display *dpy, char *fontname) font->max_byte1 = 0; font->min_char_or_byte2 = 0x20; font->max_char_or_byte2 = 0xff; - + if (is_two_byte_font) { /* Use the width of an "ideographic space" of that font because @@ -11125,7 +11125,7 @@ XLoadQueryFont (Display *dpy, char *fontname) xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1)); { int c; - + for (c = 0x20; c <= 0xff; c++) { font->per_char[c - 0x20] = font->max_bounds; @@ -11133,11 +11133,11 @@ XLoadQueryFont (Display *dpy, char *fontname) } } } - + TextFont (old_fontnum); /* restore previous font number, size and face */ TextSize (old_fontsize); TextFace (old_fontface); - + return font; } @@ -11531,7 +11531,7 @@ static pascal OSErr do_ae_quit_application (AppleEvent *, AppleEvent *, long); /* Drag and Drop */ static OSErr init_mac_drag_n_drop (); -static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference); +static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference); #if USE_CARBON_EVENTS /* Preliminary Support for the OSX Services Menu */ @@ -11546,7 +11546,7 @@ extern void check_alarm (); extern void initialize_applescript(); extern void terminate_applescript(); -static unsigned int +static unsigned int #if USE_CARBON_EVENTS mac_to_emacs_modifiers (UInt32 mods) #else @@ -11568,8 +11568,8 @@ mac_to_emacs_modifiers (EventModifiers mods) #if USE_CARBON_EVENTS /* Obtains the event modifiers from the event ref and then calls mac_to_emacs_modifiers. */ -static int -mac_event_to_emacs_modifiers (EventRef eventRef) +static int +mac_event_to_emacs_modifiers (EventRef eventRef) { UInt32 mods = 0; GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL, @@ -11580,20 +11580,20 @@ mac_event_to_emacs_modifiers (EventRef eventRef) /* Given an event ref, return the code to use for the mouse button code in the emacs input_event. */ static int -mac_get_mouse_btn (EventRef ref) +mac_get_mouse_btn (EventRef ref) { EventMouseButton result = kEventMouseButtonPrimary; GetEventParameter (ref, kEventParamMouseButton, typeMouseButton, NULL, sizeof (EventMouseButton), NULL, &result); - switch (result) + switch (result) { case kEventMouseButtonPrimary: return 0; case kEventMouseButtonSecondary: - return NILP (Vmac_wheel_button_is_mouse_2) ? 1 : 2; + return NILP (Vmac_wheel_button_is_mouse_2) ? 1 : 2; case kEventMouseButtonTertiary: case 4: /* 4 is the number for the mouse wheel button */ - return NILP (Vmac_wheel_button_is_mouse_2) ? 2 : 1; + return NILP (Vmac_wheel_button_is_mouse_2) ? 2 : 1; default: return 0; } @@ -11605,24 +11605,24 @@ mac_get_mouse_btn (EventRef ref) checks to see if it is a mouse up or down carbon event that has not been converted, and if so, converts it by hand (to be picked up in the XTread_socket loop). */ -static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec) +static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec) { Boolean result = ConvertEventRefToEventRecord (eventRef, eventRec); /* Do special case for mouse wheel button. */ - if (!result && GetEventClass (eventRef) == kEventClassMouse) - { + if (!result && GetEventClass (eventRef) == kEventClassMouse) + { UInt32 kind = GetEventKind (eventRef); - if (kind == kEventMouseDown && !(eventRec->what == mouseDown)) + if (kind == kEventMouseDown && !(eventRec->what == mouseDown)) { eventRec->what = mouseDown; result=1; } - if (kind == kEventMouseUp && !(eventRec->what == mouseUp)) + if (kind == kEventMouseUp && !(eventRec->what == mouseUp)) { eventRec->what = mouseUp; result=1; } - if (result) + if (result) { /* Need where and when. */ UInt32 mods; @@ -11636,7 +11636,7 @@ static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec) typeUInt32, NULL, sizeof (UInt32), NULL, &mods); eventRec->modifiers = mods; - + eventRec->when = EventTimeToTicks (GetEventTime (eventRef)); } } @@ -11650,7 +11650,7 @@ do_get_menus (void) { Handle menubar_handle; MenuHandle menu_handle; - + menubar_handle = GetNewMBar (128); if(menubar_handle == NULL) abort (); @@ -11678,7 +11678,7 @@ do_init_managers (void) InitDialogs (NULL); #endif /* !TARGET_API_MAC_CARBON */ InitCursor (); - + #if !TARGET_API_MAC_CARBON /* set up some extra stack space for use by emacs */ SetApplLimit ((Ptr) ((long) GetApplLimit () - EXTRA_STACK_ALLOC)); @@ -11694,7 +11694,7 @@ static void do_check_ram_size (void) { SInt32 physical_ram_size, logical_ram_size; - + if (Gestalt (gestaltPhysicalRAMSize, &physical_ram_size) != noErr || Gestalt (gestaltLogicalRAMSize, &logical_ram_size) != noErr || physical_ram_size > 256 * 1024 * 1024 @@ -11718,7 +11718,7 @@ do_window_update (WindowPtr win) f->async_visible = 1; f->async_iconified = 0; SET_FRAME_GARBAGED (f); - + /* An update event is equivalent to MapNotify on X, so report visibility changes properly. */ if (! NILP(Vframe_list) && ! NILP (XCDR (Vframe_list))) @@ -11767,7 +11767,7 @@ do_window_activate (WindowPtr win) { mwp = (mac_output *) GetWRefCon (win); f = mwp->mFP; - + if (f) { x_new_focus_frame (FRAME_MAC_DISPLAY_INFO (f), f); @@ -11786,7 +11786,7 @@ do_window_deactivate (WindowPtr win) { mwp = (mac_output *) GetWRefCon (win); f = mwp->mFP; - + if (f == FRAME_MAC_DISPLAY_INFO (f)->x_focus_frame) { x_new_focus_frame (FRAME_MAC_DISPLAY_INFO (f), 0); @@ -11850,10 +11850,10 @@ do_mouse_moved (Point mouse_pos) WindowPtr wp = FrontWindow (); struct frame *f; - if (is_emacs_window (wp)) + if (is_emacs_window (wp)) { - f = ((mac_output *) GetWRefCon (wp))->mFP; - + f = ((mac_output *) GetWRefCon (wp))->mFP; + #if TARGET_API_MAC_CARBON SetPort (GetWindowPort (wp)); #else @@ -11861,7 +11861,7 @@ do_mouse_moved (Point mouse_pos) #endif GlobalToLocal (&mouse_pos); - + note_mouse_movement (f, &mouse_pos); } } @@ -11878,7 +11878,7 @@ do_os_event (EventRecord *erp) else do_app_suspend (); break; - + case mouseMovedMessage: do_mouse_moved (erp->where); break; @@ -11913,7 +11913,7 @@ do_apple_menu (SInt16 menu_item) #if !TARGET_API_MAC_CARBON Str255 item_name; SInt16 da_driver_refnum; - + if (menu_item == I_ABOUT) NoteAlert (ABOUT_ALERT_ID, NULL); else @@ -11928,13 +11928,13 @@ void do_menu_choice (SInt32 menu_choice) { SInt16 menu_id, menu_item; - + menu_id = HiWord (menu_choice); menu_item = LoWord (menu_choice); - + if (menu_id == 0) return; - + switch (menu_id) { case M_APPLE: @@ -11944,18 +11944,18 @@ do_menu_choice (SInt32 menu_choice) default: { WindowPtr wp = FrontWindow (); - struct frame *f = ((mac_output *) GetWRefCon (wp))->mFP; + struct frame *f = ((mac_output *) GetWRefCon (wp))->mFP; MenuHandle menu = GetMenuHandle (menu_id); if (menu) { UInt32 refcon; - + GetMenuItemRefCon (menu, menu_item, &refcon); menubar_selection_callback (f, refcon); } } } - + HiliteMenu (0); } @@ -11971,17 +11971,17 @@ do_grow_window (WindowPtr w, EventRecord *e) int rows, columns; mac_output *mwp = (mac_output *) GetWRefCon (w); struct frame *f = mwp->mFP; - + SetRect(&limit_rect, MIN_DOC_SIZE, MIN_DOC_SIZE, MAX_DOC_SIZE, MAX_DOC_SIZE); - + grow_size = GrowWindow (w, e->where, &limit_rect); - + /* see if it really changed size */ if (grow_size != 0) { rows = PIXEL_TO_CHAR_HEIGHT (f, HiWord (grow_size)); columns = PIXEL_TO_CHAR_WIDTH (f, LoWord (grow_size)); - + x_set_window_size (f, 0, columns, rows); } } @@ -12001,7 +12001,7 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out) int w_title_height, columns, rows, width, height, dummy, x, y; mac_output *mwp = (mac_output *) GetWRefCon (w); struct frame *f = mwp->mFP; - + GetPort (&save_port); #if TARGET_API_MAC_CARBON @@ -12015,7 +12015,7 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out) { Rect r; BitMap bm; - + GetWindowPortBounds (w, &r); EraseRect (&r); @@ -12030,7 +12030,7 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out) zoom_rect = bm.bounds; zoom_rect.top += w_title_height; InsetRect (&zoom_rect, 8, 4); /* not too tight */ - + zoom_rect.right = zoom_rect.left + CHAR_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS); @@ -12052,7 +12052,7 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out) zoom_rect = qd.screenBits.bounds; zoom_rect.top += w_title_height; InsetRect (&zoom_rect, 8, 4); /* not too tight */ - + zoom_rect.right = zoom_rect.left + CHAR_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS); @@ -12098,7 +12098,7 @@ init_required_apple_events () if (!(result & (1 << gestaltAppleEventsPresent))) abort (); - + #if TARGET_API_MAC_CARBON err = AEInstallEventHandler(kCoreEventClass, kAEOpenApplication, NewAEEventHandlerUPP @@ -12175,10 +12175,10 @@ OSStatus mac_handle_service_event (EventHandlerCallRef callRef, EventRef event, void *data) { - OSStatus err = noErr; + OSStatus err = noErr; switch (GetEventKind (event)) { - case kEventServiceGetTypes: + case kEventServiceGetTypes: { CFMutableArrayRef copyTypes, pasteTypes; CFStringRef type; @@ -12214,14 +12214,14 @@ mac_handle_service_event (EventHandlerCallRef callRef, { GetEventParameter (event, kEventParamScrapRef, typeScrapRef, NULL, sizeof (ScrapRef), NULL, &specificScrap); - + err = GetScrapFlavorData (currentScrap, kScrapFlavorTypeText, &byteCount, buffer); if (err == noErr) PutScrapFlavor (specificScrap, kScrapFlavorTypeText, kScrapFlavorMaskNone, byteCount, buffer); xfree (buffer); - } + } } err = noErr; } @@ -12237,7 +12237,7 @@ mac_handle_service_event (EventHandlerCallRef callRef, if (err == noErr) { void * buffer = xmalloc(byteCount); if (buffer != NULL ) { - err = GetScrapFlavorData(specificScrap, kScrapFlavorTypeText, + err = GetScrapFlavorData(specificScrap, kScrapFlavorTypeText, &byteCount, buffer); if (err == noErr) { // Actually place in the buffer @@ -12249,7 +12249,7 @@ mac_handle_service_event (EventHandlerCallRef callRef, xfree(buffer); } */ - } + } } return err; } @@ -12271,7 +12271,7 @@ path_from_vol_dir_name (char *, int, short, long, char *); /* Called when we receive an AppleEvent with an ID of "kAEOpenDocuments". This routine gets the direct parameter, extracts the FSSpecs in it, and puts their names on a list. */ -static pascal OSErr +static pascal OSErr do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon) { OSErr err, err2; @@ -12287,7 +12287,7 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon) /* Check to see that we got all of the required parameters from the event descriptor. For an 'odoc' event this should just be the file list. */ - err = AEGetAttributePtr(message, keyMissedKeywordAttr, typeWildCard, + err = AEGetAttributePtr(message, keyMissedKeywordAttr, typeWildCard, &actual_type, (Ptr) &keyword, sizeof (keyword), &actual_size); /* No error means that we found some unused parameters. @@ -12309,7 +12309,7 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon) if (err == noErr) { int i; - + /* AE file list is one based so just use that for indexing here. */ for (i = 1; (err == noErr) && (i <= num_files_to_open); i++) { @@ -12366,7 +12366,7 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon, drag_and_drop_file_list = Qnil; GetDragMouse (theDrag, &mouse, 0L); CountDragItems (theDrag, &items); - for (index = 1; index <= items; index++) + for (index = 1; index <= items; index++) { /* Only handle file references. */ GetDragItemReferenceNumber (theDrag, index, &theItem); @@ -12398,7 +12398,7 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon, } /* If there are items in the list, construct an event and post it to the queue like an interrupt using kbd_buffer_store_event. */ - if (!NILP (drag_and_drop_file_list)) + if (!NILP (drag_and_drop_file_list)) { struct input_event event; Lisp_Object frame; @@ -12479,7 +12479,7 @@ profiler_exit_proc () #if !TARGET_API_MAC_CARBON #undef main -int +int main (void) { #if __profile__ /* is the profiler on? */ @@ -12494,9 +12494,9 @@ main (void) #endif do_init_managers (); - + do_get_menus (); - + do_check_ram_size (); init_emacs_passwd_dir (); @@ -12506,7 +12506,7 @@ main (void) initialize_applescript (); init_required_apple_events (); - + { char **argv; int argc = 0; @@ -12544,7 +12544,7 @@ static unsigned char keycode_to_xkeysym_table[] = { /*0x38*/ 0, 0, 0, 0, /*0x3C*/ 0, 0, 0, 0, - /*0x40*/ 0, 0xae /*kp-.*/, 0, 0xaa /*kp-**/, + /*0x40*/ 0, 0xae /*kp-.*/, 0, 0xaa /*kp-**/, /*0x44*/ 0, 0xab /*kp-+*/, 0, 0x7f /*kp-clear*/, /*0x48*/ 0, 0, 0, 0xaf /*kp-/*/, /*0x4C*/ 0x8d /*kp-enter*/, 0, 0xad /*kp--*/, 0, @@ -12555,8 +12555,8 @@ static unsigned char keycode_to_xkeysym_table[] = { /*0x5C*/ 0xb9 /*kp-9*/, 0, 0, 0, /*0x60*/ 0xc2 /*f5*/, 0xc3 /*f6*/, 0xc4 /*f7*/, 0xc0 /*f3*/, - /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/, - /*0x68*/ 0, 0xca /*f13*/, 0, 0xcb /*f14*/, + /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/, + /*0x68*/ 0, 0xca /*f13*/, 0, 0xcb /*f14*/, /*0x6C*/ 0, 0xc7 /*f10*/, 0, 0xc9 /*f12*/, /*0x70*/ 0, 0xcc /*f15*/, 0x9e /*insert (or 0x6a==help)*/, 0x95 /*home*/, @@ -12577,7 +12577,7 @@ keycode_to_xkeysym (int keyCode, int *xKeySym) int XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) { - int count = 0; + int count = 0; #if USE_CARBON_EVENTS OSStatus rneResult; EventRef eventRef; @@ -12629,7 +12629,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) event_mask -= highLevelEventMask; #if USE_CARBON_EVENTS - rneResult = ReceiveNextEvent (0, NULL, + rneResult = ReceiveNextEvent (0, NULL, expected ? TicksToEventTime (app_sleep_time) : 0, @@ -12637,11 +12637,11 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) if (!rneResult) { /* Handle new events */ - if (!mac_convert_event_ref (eventRef, &er)) - switch (GetEventClass (eventRef)) + if (!mac_convert_event_ref (eventRef, &er)) + switch (GetEventClass (eventRef)) { case kEventClassMouse: - if (GetEventKind (eventRef) == kEventMouseWheelMoved) + if (GetEventKind (eventRef) == kEventMouseWheelMoved) { SInt32 delta; Point point; @@ -12671,7 +12671,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) bufp->timestamp = EventTimeToTicks (GetEventTime (eventRef))*(1000/60); count++; } - else + else SendEventToEventTarget (eventRef, GetEventDispatcherTarget ()); break; @@ -12707,7 +12707,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) { struct mac_output *mwp = (mac_output *) GetWRefCon (window_ptr); Point mouse_loc = er.where; - + /* Convert to local coordinates of new window. */ #if TARGET_API_MAC_CARBON SetPort (GetWindowPort (window_ptr)); @@ -12716,7 +12716,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) #endif GlobalToLocal (&mouse_loc); - + #if USE_CARBON_EVENTS bufp->code = mac_get_mouse_btn (eventRef); #else @@ -12736,7 +12736,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) XSETINT (bufp->x, tracked_scroll_bar->left + 2); XSETINT (bufp->y, mouse_loc.v - 24); - tracked_scroll_bar->dragging = Qnil; + tracked_scroll_bar->dragging = Qnil; mouse_tracking_in_progress = mouse_tracking_none; tracked_scroll_bar = NULL; count++; @@ -12744,7 +12744,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) } part_code = FindWindow (er.where, &window_ptr); - + switch (part_code) { case inMenuBar: @@ -12768,7 +12768,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) struct mac_output *mwp = (mac_output *) GetWRefCon (window_ptr); Point mouse_loc = er.where; - + /* convert to local coordinates of new window */ #if TARGET_API_MAC_CARBON SetPort (GetWindowPort (window_ptr)); @@ -12782,11 +12782,11 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) &control_part_code); #else control_part_code = FindControl (mouse_loc, window_ptr, &ch); -#endif +#endif #if USE_CARBON_EVENTS bufp->code = mac_get_mouse_btn (eventRef); -#else +#else bufp->code = 0; /* only one mouse button */ #endif XSETINT (bufp->x, mouse_loc.h); @@ -12794,7 +12794,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) bufp->timestamp = er.when * (1000 / 60); /* ticks to milliseconds */ -#if TARGET_API_MAC_CARBON +#if TARGET_API_MAC_CARBON if (ch != 0) #else if (control_part_code != 0) @@ -12827,7 +12827,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) else mouse_tracking_in_progress = mouse_tracking_none; } - + #if USE_CARBON_EVENTS bufp->modifiers = mac_event_to_emacs_modifiers (eventRef); #else @@ -12843,7 +12843,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) bufp->modifiers |= up_modifier; break; } - + count++; } break; @@ -12852,7 +12852,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) #if TARGET_API_MAC_CARBON { BitMap bm; - + GetQDGlobalsScreenBits (&bm); DragWindow (window_ptr, er.where, &bm.bounds); } @@ -12875,7 +12875,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) case inGrow: do_grow_window(window_ptr, &er); break; - + /* window zoom handling added --ben */ case inZoomIn: case inZoomOut: @@ -12888,22 +12888,22 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) } } break; - + case updateEvt: case osEvt: case activateEvt: #if USE_CARBON_EVENTS if (eventNotHandledErr == SendEventToEventTarget (eventRef, GetEventDispatcherTarget ())) -#endif +#endif do_events (&er); break; - + case keyDown: case autoKey: { int keycode = (er.message & keyCodeMask) >> 8; int xkeysym; - + #if USE_CARBON_EVENTS /* When using Carbon Events, we need to pass raw keyboard events to the TSM ourselves. If TSM handles it, it will pass back @@ -12921,31 +12921,31 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) break; } #endif - + if (!IsValidWindowPtr (FrontNonFloatingWindow ())) { SysBeep (1); UNBLOCK_INPUT; return 0; } - + ObscureCursor (); - + if (keycode_to_xkeysym (keycode, &xkeysym)) { bufp->code = 0xff00 | xkeysym; bufp->kind = NON_ASCII_KEYSTROKE_EVENT; - } + } else { - if (er.modifiers & (controlKey | - (NILP (Vmac_command_key_is_meta) ? optionKey + if (er.modifiers & (controlKey | + (NILP (Vmac_command_key_is_meta) ? optionKey : cmdKey))) { /* This code comes from Keyboard Resource, Appendix C of IM - Text. This is necessary since shift is ignored in KCHR table translation when option or - command is pressed. It also does not translate + command is pressed. It also does not translate correctly control-shift chars like C-% so mask off shift here also */ int new_modifiers = er.modifiers & 0xe600; @@ -12961,7 +12961,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) bufp->kind = ASCII_KEYSTROKE_EVENT; } } - + /* If variable mac-convert-keyboard-input-to-latin-1 is non-nil, convert non-ASCII characters typed at the Mac keyboard (presumed to be in the Mac Roman encoding) to iso-latin-1 @@ -12974,7 +12974,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) static TECObjectRef converter = NULL; OSStatus the_err = noErr; OSStatus convert_status = noErr; - + if (converter == NULL) { the_err = TECCreateConverter (&converter, @@ -12994,14 +12994,14 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) mac_keyboard_text_encoding); current_mac_keyboard_text_encoding = mac_keyboard_text_encoding; - } - + } + if (the_err == noErr) { unsigned char ch = bufp->code; ByteCount actual_input_length, actual_output_length; unsigned char outch; - + convert_status = TECConvertText (converter, &ch, 1, &actual_input_length, &outch, 1, @@ -13012,19 +13012,19 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) bufp->code = outch; } } - + #if USE_CARBON_EVENTS bufp->modifiers = mac_event_to_emacs_modifiers (eventRef); #else bufp->modifiers = mac_to_emacs_modifiers (er.modifiers); #endif - + { mac_output *mwp = (mac_output *) GetWRefCon (FrontNonFloatingWindow ()); XSETFRAME (bufp->frame_or_window, mwp->mFP); } - + bufp->timestamp = er.when * (1000 / 60); /* ticks to milliseconds */ count++; @@ -13034,7 +13034,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) drag_and_drop_file_list = Qnil; AEProcessAppleEvent(&er); - + /* Build a DRAG_N_DROP_EVENT type event as is done in constuct_drag_n_drop in w32term.c. */ if (!NILP (drag_and_drop_file_list)) @@ -13044,7 +13044,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) Lisp_Object frame; wp = FrontNonFloatingWindow (); - + if (!wp) { struct frame *f = XFRAME (XCAR (Vframe_list)); @@ -13053,7 +13053,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) } if (wp && is_emacs_window(wp)) - f = ((mac_output *) GetWRefCon (wp))->mFP; + f = ((mac_output *) GetWRefCon (wp))->mFP; bufp->kind = DRAG_N_DROP_EVENT; bufp->code = 0; @@ -13079,14 +13079,14 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) #if TARGET_API_MAC_CARBON { Rect r; - + GetWindowPortBounds (wp, &r); InvalWindowRect (wp, &r); } #else /* not TARGET_API_MAC_CARBON */ InvalRect (&(wp->portRect)); #endif /* not TARGET_API_MAC_CARBON */ - + count++; } default: @@ -13112,7 +13112,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) { static Point old_mouse_pos = { -1, -1 }; - + if (app_is_suspended) { old_mouse_pos.h = -1; @@ -13124,7 +13124,7 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) WindowPtr wp; struct frame *f; Lisp_Object bar; - struct scroll_bar *sb; + struct scroll_bar *sb; wp = FrontWindow (); if (is_emacs_window (wp)) @@ -13149,15 +13149,15 @@ XTread_socket (int sd, struct input_event *bufp, int numchars, int expected) TickCount() * (1000 / 60)); else note_mouse_movement (f, &mouse_pos); - - old_mouse_pos = mouse_pos; + + old_mouse_pos = mouse_pos; } } } } - + UNBLOCK_INPUT; - + return count; } @@ -13206,7 +13206,7 @@ NewMacWindow (FRAME_PTR fp) else if (!(mwp->mWP = GetNewCWindow (WINDOW_RESOURCE, NULL, (WindowPtr) -1))) abort (); - + SetWRefCon (mwp->mWP, (long) mwp); /* so that update events can find this mac_output struct */ mwp->mFP = fp; /* point back to emacs frame */ @@ -13218,10 +13218,10 @@ NewMacWindow (FRAME_PTR fp) #endif mwp->fontset = -1; - + SizeWindow (mwp->mWP, mwp->pixel_width, mwp->pixel_height, false); ShowWindow (mwp->mWP); - + } @@ -13232,7 +13232,7 @@ make_mac_frame (struct frame *f) FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_right; FRAME_DESIRED_CURSOR (f) = FILLED_BOX_CURSOR; - + NewMacWindow(f); f->output_data.mac->cursor_pixel = 0; @@ -13247,14 +13247,14 @@ make_mac_frame (struct frame *f) f->output_data.mac->top_pos = 4; f->output_data.mac->border_width = 0; f->output_data.mac->explicit_parent = 0; - + f->output_data.mac->internal_border_width = 0; f->output_method = output_mac; f->auto_raise = 1; f->auto_lower = 1; - + f->new_width = 0; f->new_height = 0; } @@ -13273,7 +13273,7 @@ make_mac_terminal_frame (struct frame *f) f->output_data.mac->fontset = -1; f->output_data.mac->scroll_bar_foreground_pixel = -1; f->output_data.mac->scroll_bar_background_pixel = -1; - + XSETFRAME (FRAME_KBOARD (f)->Vdefault_minibuffer_frame, f); f->width = 96; @@ -13282,7 +13282,7 @@ make_mac_terminal_frame (struct frame *f) make_mac_frame (f); x_make_gc (f); - + /* Need to be initialized for unshow_buffer in window.c. */ selected_window = f->selected_window; @@ -13384,7 +13384,7 @@ mac_initialize_display_info () x_display_name_list = Fcons (Fcons (build_string ("Mac"), Qnil), x_display_name_list); dpyinfo->name_list_element = XCAR (x_display_name_list); - + #if 0 dpyinfo->mac_id_name = (char *) xmalloc (SCHARS (Vinvocation_name) @@ -13478,7 +13478,7 @@ MakeMeTheFrontProcess () { ProcessSerialNumber psn; OSErr err; - + err = GetCurrentProcess (&psn); if (err == noErr) (void) SetFrontProcess (&psn); @@ -13512,7 +13512,7 @@ init_quit_char_handler () mac_quit_char_keycode = 5; /* Look at <architecture/adb_kb_map.h> for details */ /* http://gemma.apple.com/techpubs/mac/Toolbox/Toolbox-40.html#MARKER-9-184*/ - + mac_determine_quit_char_modifiers(); } @@ -13526,11 +13526,11 @@ quit_char_comp (EventRef inEvent, void *inCompData) { UInt32 keyCode; UInt32 keyModifiers; - GetEventParameter(inEvent, kEventParamKeyCode, + GetEventParameter(inEvent, kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode); if (keyCode != mac_quit_char_keycode) return false; - GetEventParameter(inEvent, kEventParamKeyModifiers, + GetEventParameter(inEvent, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &keyModifiers); if (keyModifiers != mac_quit_char_modifiers) return false; @@ -13552,7 +13552,7 @@ mac_check_for_quit_char() /* Fill the queue with events */ ReceiveNextEvent (0, NULL, kEventDurationNoWait, false, &event); event = FindSpecificEventInQueue (GetMainEventQueue(), quit_char_comp, NULL); - if (event) + if (event) { struct input_event e; struct mac_output *mwp = (mac_output*) GetWRefCon (FrontNonFloatingWindow ()); @@ -13629,7 +13629,7 @@ mac_initialize () x_noop_count = 0; 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); @@ -13649,7 +13649,7 @@ mac_initialize () start_atimer (ATIMER_CONTINUOUS, interval, x_process_timeouts, 0); } #endif - + #if USE_TOOLKIT_SCROLL_BARS xaw3d_arrow_scroll = False; xaw3d_pick_top = True; @@ -13751,7 +13751,7 @@ to 4.1, set this to nil. */); staticpro (&last_mouse_motion_frame); last_mouse_motion_frame = Qnil; - + DEFVAR_LISP ("mac-command-key-is-meta", &Vmac_command_key_is_meta, doc: /* Non-nil means that the command key is used as the Emacs meta key. Otherwise the option key is used. */); diff --git a/src/macterm.h b/src/macterm.h index c5d3e174120..615666e0483 100644 --- a/src/macterm.h +++ b/src/macterm.h @@ -45,7 +45,7 @@ Boston, MA 02111-1307, USA. */ /* Structure recording bitmaps and reference count. If REFCOUNT is 0 then this record is free to be reused. */ -struct mac_bitmap_record +struct mac_bitmap_record { char *bitmap_data; int refcount; @@ -321,7 +321,7 @@ struct mac_output { /* Foreground color for scroll bars. A value of -1 means use the default (black for non-toolkit scroll bars). */ unsigned long scroll_bar_foreground_pixel; - + /* Background color for scroll bars. A value of -1 means use the default (background color of the frame for non-toolkit scroll bars). */ @@ -337,7 +337,7 @@ struct mac_output { /* Window whose cursor is hourglass_cursor. This window is temporarily mapped to display a hourglass-cursor. */ Window hourglass_window; - + /* Non-zero means hourglass cursor is currently displayed. */ unsigned hourglass_p : 1; @@ -558,7 +558,7 @@ struct scroll_bar { /* Return the length of the rectangle within which the top of the handle must stay. This isn't equivalent to the inside height, - because the scroll bar handle has a minimum height. + because the scroll bar handle has a minimum height. This is the real range of motion for the scroll bar, so when we're scaling buffer positions to scroll bar positions, we use this, not @@ -626,7 +626,7 @@ struct scroll_bar { + (f)->output_data.mac->internal_border_width) -/* Return the row/column (zero-based) of the character cell containing +/* Return the row/column (zero-based) of the character cell containing the pixel on FRAME at ROW/COL. */ #define PIXEL_TO_CHAR_ROW(f, row) \ (((row) - (f)->output_data.mac->internal_border_width) \ diff --git a/src/marker.c b/src/marker.c index c59f9a9ccb0..0c1635fd2cb 100644 --- a/src/marker.c +++ b/src/marker.c @@ -531,14 +531,14 @@ Returns MARKER. */) m->chain = BUF_MARKERS (b); BUF_MARKERS (b) = marker; } - + return marker; } /* This version of Fset_marker won't let the position be outside the visible part. */ -Lisp_Object +Lisp_Object set_marker_restricted (marker, pos, buffer) Lisp_Object marker, pos, buffer; { @@ -607,14 +607,14 @@ set_marker_restricted (marker, pos, buffer) m->chain = BUF_MARKERS (b); BUF_MARKERS (b) = marker; } - + return marker; } /* Set the position of MARKER, specifying both the character position and the corresponding byte position. */ -Lisp_Object +Lisp_Object set_marker_both (marker, buffer, charpos, bytepos) Lisp_Object marker, buffer; int charpos, bytepos; @@ -658,14 +658,14 @@ set_marker_both (marker, buffer, charpos, bytepos) m->chain = BUF_MARKERS (b); BUF_MARKERS (b) = marker; } - + return marker; } /* This version of set_marker_both won't let the position be outside the visible part. */ -Lisp_Object +Lisp_Object set_marker_restricted_both (marker, buffer, charpos, bytepos) Lisp_Object marker, buffer; int charpos, bytepos; @@ -718,7 +718,7 @@ set_marker_restricted_both (marker, buffer, charpos, bytepos) m->chain = BUF_MARKERS (b); BUF_MARKERS (b) = marker; } - + return marker; } diff --git a/src/msdos.c b/src/msdos.c index 6dc235e67ba..6b56cf72deb 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -4929,7 +4929,7 @@ gethostname (p, size) /* When time zones are set from Ms-Dos too many C-libraries are playing tricks with time values. We solve this by defining our own version of `gettimeofday' bypassing GO32. Our version needs to be initialized - once and after each call to `tzset' with TZ changed. That is + once and after each call to `tzset' with TZ changed. That is accomplished by aliasing tzset to init_gettimeofday. */ static struct tm time_rec; @@ -5092,7 +5092,7 @@ sigprocmask (how, new_set, old_set) #else /* not POSIX_SIGNALS */ sigsetmask (x) int x; { return 0; } -sigblock (mask) int mask; { return 0; } +sigblock (mask) int mask; { return 0; } #endif /* not POSIX_SIGNALS */ #endif /* not __DJGPP_MINOR__ < 2 */ diff --git a/src/print.c b/src/print.c index 6c85c24cbe5..151a193076d 100644 --- a/src/print.c +++ b/src/print.c @@ -189,7 +189,7 @@ void print_interval (); and must start with PRINTPREPARE, end with PRINTFINISH, and use PRINTDECLARE to declare common variables. Use PRINTCHAR to output one character, - or call strout to output a block of characters. */ + or call strout to output a block of characters. */ #define PRINTDECLARE \ struct buffer *old = current_buffer; \ @@ -321,7 +321,7 @@ printchar (ch, fun) int len = CHAR_STRING (ch, str); QUIT; - + if (NILP (fun)) { if (print_buffer_pos_byte + len >= print_buffer_size) @@ -340,7 +340,7 @@ printchar (ch, fun) { int multibyte_p = !NILP (current_buffer->enable_multibyte_characters); - + setup_echo_area_for_printing (multibyte_p); insert_char (ch); message_dolog (str, len, 0, multibyte_p); @@ -397,10 +397,10 @@ strout (ptr, size, size_byte, printcharfun, multibyte) int i; int multibyte_p = !NILP (current_buffer->enable_multibyte_characters); - + setup_echo_area_for_printing (multibyte_p); message_dolog (ptr, size_byte, 0, multibyte_p); - + if (size == size_byte) { for (i = 0; i < size; ++i) @@ -415,7 +415,7 @@ strout (ptr, size, size_byte, printcharfun, multibyte) insert_char (ch); } } - + #ifdef MAX_PRINT_CHARS if (max_print) print_chars += size; @@ -653,7 +653,7 @@ to display it temporarily selected. If variable `temp-buffer-show-function' is non-nil, call it at the end to get the buffer displayed instead of just displaying the non-selected -buffer and calling the hook. It gets one argument, the buffer to display. +buffer and calling the hook. It gets one argument, the buffer to display. usage: (with-output-to-temp-buffer BUFFNAME BODY ...) */) (args) @@ -1005,7 +1005,7 @@ print_error_message (data, stream, context, caller) else Fprin1 (obj, stream); } - + UNGCPRO; } @@ -1016,9 +1016,9 @@ print_error_message (data, stream, context, caller) * largest float, printed in the biggest notation. This is undoubtedly * 20d float_output_format, with the negative of the C-constant "HUGE" * from <math.h>. - * + * * On the vax the worst case is -1e38 in 20d format which takes 61 bytes. - * + * * I assume that IEEE-754 format numbers can take 329 bytes for the worst * case of -1e307 in 20d float_output_format. What is one to do (short of * re-writing _doprnt to be more sane)? @@ -1032,7 +1032,7 @@ float_to_string (buf, data) { unsigned char *cp; int width; - + /* Check for plus infinity in a way that won't lose if there is no plus infinity. */ if (data == data / 2 && data > 1.0) @@ -1061,7 +1061,7 @@ float_to_string (buf, data) *buf++ = '-'; break; } - + strcpy (buf, "0.0e+NaN"); return; } @@ -1598,7 +1598,7 @@ print_object (obj, printcharfun, escapeflag) else { PRINTCHAR ('('); - + /* If the first element is a backquote form, print it old-style so it won't be misunderstood. */ if (print_quoted && CONSP (XCAR (obj)) @@ -1670,18 +1670,18 @@ print_object (obj, printcharfun, escapeflag) } } } - + if (i++) PRINTCHAR (' '); - + if (print_length && i > print_length) { strout ("...", 3, 3, printcharfun, 0); goto end_of_list; } - + print_object (XCAR (obj), printcharfun, escapeflag); - + obj = XCDR (obj); if (!(i & 1)) halftail = XCDR (halftail); @@ -1694,7 +1694,7 @@ print_object (obj, printcharfun, escapeflag) strout (" . ", 3, 3, printcharfun, 0); print_object (obj, printcharfun, escapeflag); } - + end_of_list: PRINTCHAR (')'); } diff --git a/src/process.c b/src/process.c index 1998e845421..775415ac1a6 100644 --- a/src/process.c +++ b/src/process.c @@ -101,7 +101,7 @@ Boston, MA 02111-1307, USA. */ #ifdef IRIS #include <sys/sysmacros.h> /* for "minor" */ #endif /* not IRIS */ - + #ifdef HAVE_SYS_WAIT #include <sys/wait.h> #endif @@ -357,7 +357,7 @@ update_status (p) p->raw_status_high = Qnil; } -/* Convert a process status word in Unix format to +/* Convert a process status word in Unix format to the list that we use internally. */ Lisp_Object @@ -406,7 +406,7 @@ decode_status (l, symbol, code, coredump) /* Return a string describing a process status list. */ -Lisp_Object +Lisp_Object status_message (status) Lisp_Object status; { @@ -685,7 +685,7 @@ nil, indicating the current buffer's process. */) { Fkill_process (process, Qnil); /* Do this now, since remove_process will make sigchld_handler do nothing. */ - XPROCESS (process)->status + XPROCESS (process)->status = Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil)); XSETINT (XPROCESS (process)->tick, ++process_tick); status_notify (); @@ -847,7 +847,7 @@ t means stop accepting output from the process. When a process has a filter, its buffer is not used for output. Instead, each time it does output, the entire string of output is -passed to the filter. +passed to the filter. The filter gets two arguments: the process and the string of output. The string argument is normally a multibyte string, except: @@ -860,7 +860,7 @@ The string argument is normally a multibyte string, except: register Lisp_Object process, filter; { struct Lisp_Process *p; - + CHECK_PROCESS (process); p = XPROCESS (process); @@ -871,7 +871,7 @@ The string argument is normally a multibyte string, except: (setq process (start-process ...)) (debug) (set-process-filter process ...) */ - + if (XINT (p->infd) >= 0) { if (EQ (filter, Qt) && !EQ (p->status, Qlisten)) @@ -886,7 +886,7 @@ The string argument is normally a multibyte string, except: FD_SET (XINT (p->infd), &non_keyboard_wait_mask); } } - + p->filter = filter; if (NETCONN1_P (p)) p->childp = Fplist_put (p->childp, QCfilter, filter); @@ -937,7 +937,7 @@ DEFUN ("set-process-window-size", Fset_process_window_size, CHECK_PROCESS (process); CHECK_NATNUM (height); CHECK_NATNUM (width); - + if (XINT (XPROCESS (process)->infd) < 0 || set_window_size (XINT (XPROCESS (process)->infd), XINT (height), XINT (width)) <= 0) @@ -1033,7 +1033,7 @@ See `make-network-process' for a list of keywords. */) #ifdef DATAGRAM_SOCKETS if (DATAGRAM_CONN_P (process) && (EQ (key, Qt) || EQ (key, QCremote))) - contact = Fplist_put (contact, QCremote, + contact = Fplist_put (contact, QCremote, Fprocess_datagram_address (process)); #endif @@ -1127,7 +1127,7 @@ IP address. Returns nil if format of ADDRESS is invalid. */) args[0] = build_string ("<Family %d>"); args[1] = Fcar (address); return Fformat (2, args); - + } return Qnil; @@ -1232,7 +1232,7 @@ list_processes_1 (query_only) if (CONSP (p->status)) symbol = XCAR (p->status); - + if (EQ (symbol, Qsignal)) { Lisp_Object tem; @@ -1319,7 +1319,7 @@ list_processes_1 (query_only) (STRINGP (host) ? (char *)SDATA (host) : "?")); insert_string (tembuf); } - else + else { tem = p->command; while (1) @@ -1408,7 +1408,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) GCPRO2 (buffer, current_dir); - current_dir + current_dir = expand_and_dir_to_file (Funhandled_file_name_directory (current_dir), Qnil); if (NILP (Ffile_accessible_directory_p (current_dir))) @@ -1512,7 +1512,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) strcat (new_argv, SDATA (tem)); } /* Need to add code here to check for program existence on VMS */ - + #else /* not VMS */ new_argv = (unsigned char **) alloca ((nargs - 1) * sizeof (char *)); @@ -1809,7 +1809,7 @@ create_process (process, new_argv, current_dir) XSETINT (XPROCESS (process)->pid, -1); BLOCK_INPUT; - + { /* child_setup must clobber environ on systems with true vfork. Protect it from permanent change. */ @@ -1874,12 +1874,12 @@ create_process (process, new_argv, current_dir) } #endif #endif -#ifdef TIOCNOTTY +#ifdef TIOCNOTTY /* In 4.3BSD, the TIOCSPGRP bug has been fixed, and now you can do TIOCSPGRP only to the process's controlling tty. */ if (pty_flag) { - /* I wonder: would just ioctl (0, TIOCNOTTY, 0) work here? + /* I wonder: would just ioctl (0, TIOCNOTTY, 0) work here? I can't test it since I don't have 4.3. */ int j = emacs_open ("/dev/tty", O_RDWR, 0); ioctl (j, TIOCNOTTY, 0); @@ -1974,7 +1974,7 @@ create_process (process, new_argv, current_dir) #ifdef WINDOWSNT pid = child_setup (xforkin, xforkout, xforkout, new_argv, 1, current_dir); -#else /* not WINDOWSNT */ +#else /* not WINDOWSNT */ child_setup (xforkin, xforkout, xforkout, new_argv, 1, current_dir); #endif /* not WINDOWSNT */ @@ -2007,11 +2007,11 @@ create_process (process, new_argv, current_dir) { struct atimer *timer; EMACS_TIME offset; - + stop_polling (); EMACS_SET_SECS_USECS (offset, 1, 0); timer = start_atimer (ATIMER_RELATIVE, offset, create_process_1, 0); - + XPROCESS (process)->subtty = Qnil; if (forkin >= 0) emacs_close (forkin); @@ -2019,7 +2019,7 @@ create_process (process, new_argv, current_dir) cancel_atimer (timer); start_polling (); } - + if (forkin != forkout && forkout >= 0) emacs_close (forkout); @@ -2260,7 +2260,7 @@ Returns nil upon error setting address, ADDRESS otherwise. */) static struct socket_options { /* The name of this option. Should be lowercase version of option - name without SO_ prefix. */ + name without SO_ prefix. */ char *name; /* Length of name. */ int nlen; @@ -2406,14 +2406,14 @@ set_socket_options (s, opts, no_error) arg = (char *) SDATA (val); else if (XSYMBOL (val)) arg = (char *) SDATA (SYMBOL_NAME (val)); - else + else error ("Invalid argument to %s option", name); } ret = setsockopt (s, sopt->optlevel, sopt->optnum, arg, strlen (arg)); } -#ifdef SO_LINGER +#ifdef SO_LINGER case SOPT_LINGER: { struct linger linger; @@ -2455,7 +2455,7 @@ set_socket_options (s, opts, no_error) DEFUN ("set-network-process-options", Fset_network_process_options, Sset_network_process_options, - 1, MANY, 0, + 1, MANY, 0, doc: /* Set one or more options for network process PROCESS. Each option is either a string "OPT=VALUE" or a cons (OPT . VALUE). A boolean value is false if it either zero or nil, true otherwise. @@ -2466,9 +2466,9 @@ pages for more information. bindtodevice=NAME -- bind to interface NAME, or remove binding if nil. broadcast=BOOL -- Allow send and receive of datagram broadcasts. dontroute=BOOL -- Only send to directly connected hosts. -keepalive=BOOL -- Send keep-alive messages on network stream. +keepalive=BOOL -- Send keep-alive messages on network stream. linger=BOOL or TIMEOUT -- Send queued messages before closing. -oobinline=BOOL -- Place out-of-band data in receive data stream. +oobinline=BOOL -- Place out-of-band data in receive data stream. priority=INT -- Set protocol defined priority for sent packets. reuseaddr=BOOL -- Allow reusing a recently used address. @@ -2507,8 +2507,8 @@ unwind_request_sigio (dummy) connection has no PID; you cannot signal it. All you can do is stop/continue it and deactivate/close it via delete-process */ -DEFUN ("make-network-process", Fmake_network_process, Smake_network_process, - 0, MANY, 0, +DEFUN ("make-network-process", Fmake_network_process, Smake_network_process, + 0, MANY, 0, doc: /* Create and return a network server or client process. In Emacs, network connections are represented by process objects, so @@ -2599,20 +2599,20 @@ is the server process, CLIENT is the new process for the connection, and MESSAGE is a string. :plist PLIST -- Install PLIST as the new process' initial plist. - + :server BOOL -- if BOOL is non-nil, create a server process for the specified FAMILY, SERVICE, and connection type (stream or datagram). Default is a client process. A server process will listen for and accept connections from clients. When a client connection is accepted, a new network process -is created for the connection with the following parameters: +is created for the connection with the following parameters: - The client's process name is constructed by concatenating the server process' NAME and a client identification string. - If the FILTER argument is non-nil, the client process will not get a separate process buffer; otherwise, the client's process buffer is a newly created buffer named after the server process' BUFFER name or process -NAME concatenated with the client identification string. +NAME concatenated with the client identification string. - The connection type and the process filter and sentinel parameters are inherited from the server process' TYPE, FILTER and SENTINEL. - The client process' contact info is set according to the client's @@ -2732,7 +2732,7 @@ usage: (make-network-process &rest ARGS) */) /* Let's handle TERM before things get complicated ... */ host = Fplist_get (contact, QChost); CHECK_STRING (host); - + service = Fplist_get (contact, QCservice); if (INTEGERP (service)) port = htons ((unsigned short) XINT (service)); @@ -2881,7 +2881,7 @@ usage: (make-network-process &rest ARGS) */) { struct servent *svc_info; CHECK_STRING (service); - svc_info = getservbyname (SDATA (service), + svc_info = getservbyname (SDATA (service), (socktype == SOCK_DGRAM ? "udp" : "tcp")); if (svc_info == 0) error ("Unknown service: %s", SDATA (service)); @@ -2904,7 +2904,7 @@ usage: (make-network-process &rest ARGS) */) QUIT; host_info_ptr = gethostbyname (SDATA (host)); immediate_quit = 0; - + if (host_info_ptr) { bcopy (host_info_ptr->h_addr, (char *) &address_in.sin_addr, @@ -2985,7 +2985,7 @@ usage: (make-network-process &rest ARGS) */) } } #endif - + /* Make us close S if quit. */ record_unwind_protect (close_file_unwind, make_number (s)); @@ -3000,7 +3000,7 @@ usage: (make-network-process &rest ARGS) */) if (setsockopt (s, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval)) report_file_error ("Cannot set reuse option on server socket.", Qnil); } - + if (bind (s, lres->ai_addr, lres->ai_addrlen)) report_file_error ("Cannot bind server socket", Qnil); @@ -3035,7 +3035,7 @@ usage: (make-network-process &rest ARGS) */) set. It'd be nice to be able to control the connect timeout - though. Would non-blocking connect calls be portable? + though. Would non-blocking connect calls be portable? This used to be conditioned by HAVE_GETADDRINFO. Why? */ @@ -3111,7 +3111,7 @@ usage: (make-network-process &rest ARGS) */) bcopy (lres->ai_addr, datagram_address[s].sa, lres->ai_addrlen); } #endif - contact = Fplist_put (contact, QCaddress, + contact = Fplist_put (contact, QCaddress, conv_sockaddr_to_lisp (lres->ai_addr, lres->ai_addrlen)); #ifdef HAVE_GETSOCKNAME if (!is_server) @@ -3181,7 +3181,7 @@ usage: (make-network-process &rest ARGS) */) p->childp = contact; p->plist = Fcopy_sequence (Fplist_get (contact, QCplist)); - + p->buffer = buffer; p->sentinel = sentinel; p->filter = filter; @@ -3603,12 +3603,12 @@ server_accept_connection (server, channel) contact = Fplist_put (contact, QChost, host); if (!NILP (service)) contact = Fplist_put (contact, QCservice, service); - contact = Fplist_put (contact, QCremote, + contact = Fplist_put (contact, QCremote, conv_sockaddr_to_lisp (&saddr.sa, len)); #ifdef HAVE_GETSOCKNAME len = sizeof saddr; if (getsockname (s, &saddr.sa, &len) == 0) - contact = Fplist_put (contact, QClocal, + contact = Fplist_put (contact, QClocal, conv_sockaddr_to_lisp (&saddr.sa, len)); #endif @@ -3634,7 +3634,7 @@ server_accept_connection (server, channel) if (s > max_process_desc) max_process_desc = s; - /* Setup coding system for new process based on server process. + /* Setup coding system for new process based on server process. This seems to be the proper thing to do, as the coding system of the new process should reflect the settings at the time the server socket was opened; not the current settings. */ @@ -3668,7 +3668,7 @@ server_accept_connection (server, channel) build_string ("\n"))); if (!NILP (p->sentinel)) - exec_sentinel (proc, + exec_sentinel (proc, concat3 (build_string ("open from "), (STRINGP (host) ? host : build_string ("-")), build_string ("\n"))); @@ -3831,7 +3831,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) { int old_timers_run = timers_run; struct buffer *old_buffer = current_buffer; - + timer_delay = timer_check (1); /* If a timer has run, this might have changed buffers @@ -3840,7 +3840,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) && old_buffer != current_buffer && waiting_for_user_input_p == -1) record_asynch_buffer_change (); - + if (timers_run != old_timers_run && do_display) /* We must retry, since a timer may have requeued itself and that could alter the time_delay. */ @@ -3902,7 +3902,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) Ctemp = connect_wait_mask; EMACS_SET_SECS_USECS (timeout, 0, 0); if ((select (max (max_process_desc, max_keyboard_desc) + 1, - &Atemp, + &Atemp, (num_pending_connects > 0 ? &Ctemp : (SELECT_TYPE *)0), (SELECT_TYPE *)0, &timeout) <= 0)) @@ -3935,7 +3935,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) if (nread == 0) break; - if (0 < nread) + if (0 < nread) total_nread += nread; #ifdef EIO else if (nread == -1 && EIO == errno) @@ -3996,7 +3996,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) if (check_connect) Connecting = connect_wait_mask; nfds = select (max (max_process_desc, max_keyboard_desc) + 1, - &Available, + &Available, (check_connect ? &Connecting : (SELECT_TYPE *)0), (SELECT_TYPE *)0, &timeout); } @@ -4093,7 +4093,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) int old_timers_run = timers_run; struct buffer *old_buffer = current_buffer; int leave = 0; - + if (detect_input_pending_run_timers (do_display)) { swallow_events (do_display); @@ -4110,8 +4110,8 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) if (leave) break; - } - + } + /* If there is unread keyboard input, also return. */ if (XINT (read_kbd) != 0 && requeued_events_pending_p ()) @@ -4258,7 +4258,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) = Fcons (Qexit, Fcons (make_number (256), Qnil)); } } -#ifdef NON_BLOCKING_CONNECT +#ifdef NON_BLOCKING_CONNECT if (check_connect && FD_ISSET (channel, &Connecting)) { struct Lisp_Process *p; @@ -4479,7 +4479,7 @@ read_process_output (proc, channel) outstream = p->filter; if (!NILP (outstream)) { - /* We inhibit quit here instead of just catching it so that + /* We inhibit quit here instead of just catching it so that hitting ^G when a filter happens to be running won't screw it up. */ int count = SPECPDL_INDEX (); @@ -4945,7 +4945,7 @@ send_process (proc, buf, len, object) || errno == EAGAIN #endif ) - /* Buffer is full. Wait, accepting input; + /* Buffer is full. Wait, accepting input; that may allow the program to finish doing output and read more. */ { @@ -4969,7 +4969,7 @@ send_process (proc, buf, len, object) the terminal is set up that way which it is here). The same bytes will be seen again in a later read(2), without the CRs. */ - + if (errno == EAGAIN) { int flags = FWRITE; @@ -4977,7 +4977,7 @@ send_process (proc, buf, len, object) &flags); } #endif /* BROKEN_PTY_READ_AFTER_EAGAIN */ - + /* Running filters might relocate buffers or strings. Arrange to relocate BUF. */ if (BUFFERP (object)) @@ -5026,7 +5026,7 @@ send_process (proc, buf, len, object) XSETINT (XPROCESS (proc)->tick, ++process_tick); deactivate_process (proc); #ifdef VMS - error ("Error writing to process %s; closed it", + error ("Error writing to process %s; closed it", SDATA (XPROCESS (proc)->name)); #else error ("SIGPIPE raised on process %s; closed it", @@ -5109,7 +5109,7 @@ return t unconditionally. */) error ("Process %s is not active", SDATA (p->name)); -#ifdef TIOCGPGRP +#ifdef TIOCGPGRP if (!NILP (p->subtty)) ioctl (XFASTINT (p->subtty), TIOCGPGRP, &gid); else @@ -5258,7 +5258,7 @@ process_send_signal (process, signo, current_group, nomsg) /* The code above always returns from the function. */ #endif /* defined (SIGNALS_VIA_CHARACTERS) */ -#ifdef TIOCGPGRP +#ifdef TIOCGPGRP /* Get the current pgrp using the tty itself, if we have that. Otherwise, use the pty to get the pgrp. On pfa systems, saka@pfu.fujitsu.co.JP writes: @@ -5392,7 +5392,7 @@ See function `interrupt-process' for more details on usage. */) DEFUN ("stop-process", Fstop_process, Sstop_process, 0, 2, 0, doc: /* Stop process PROCESS. May be process or name of one. -See function `interrupt-process' for more details on usage. +See function `interrupt-process' for more details on usage. If PROCESS is a network process, inhibit handling of incoming traffic. */) (process, current_group) Lisp_Object process, current_group; @@ -5401,7 +5401,7 @@ If PROCESS is a network process, inhibit handling of incoming traffic. */) if (PROCESSP (process) && NETCONN_P (process)) { struct Lisp_Process *p; - + p = XPROCESS (process); if (NILP (p->command) && XINT (p->infd) >= 0) @@ -5423,7 +5423,7 @@ If PROCESS is a network process, inhibit handling of incoming traffic. */) DEFUN ("continue-process", Fcontinue_process, Scontinue_process, 0, 2, 0, doc: /* Continue process PROCESS. May be process or name of one. -See function `interrupt-process' for more details on usage. +See function `interrupt-process' for more details on usage. If PROCESS is a network process, resume handling of incoming traffic. */) (process, current_group) Lisp_Object process, current_group; @@ -5484,7 +5484,7 @@ SIGCODE may be an integer, or a symbol whose name is a signal name. */) } else process = get_process (process); - + if (NILP (process)) return process; @@ -5708,7 +5708,7 @@ kill_buffer_processes (buffer) /* On receipt of a signal that a child status has changed, loop asking about children with changed statuses until the system says there are no more. - + All we do is change the status; we do not run sentinels or print notifications. That is saved for the next time keyboard input is done, in order to avoid timing errors. @@ -5752,7 +5752,7 @@ sigchld_handler (signo) #define WUNTRACED 0 #endif /* no WUNTRACED */ /* Keep trying to get a status until we get a definitive result. */ - do + do { errno = 0; pid = wait3 (&w, WNOHANG | WUNTRACED, 0); @@ -5803,18 +5803,18 @@ sigchld_handler (signo) break; p = 0; } - + /* Change the status of the process that was found. */ if (p != 0) { union { int i; WAITTYPE wt; } u; int clear_desc_flag = 0; - + XSETINT (p->tick, ++process_tick); u.wt = w; XSETINT (p->raw_status_low, u.i & 0xffff); XSETINT (p->raw_status_high, u.i >> 16); - + /* If process has terminated, stop waiting for its output. */ if ((WIFSIGNALED (w) || WIFEXITED (w)) && XINT (p->infd) >= 0) @@ -6342,7 +6342,7 @@ syms_of_process () staticpro (&QCoptions); QCplist = intern (":plist"); staticpro (&QCplist); - + Qlast_nonmenu_event = intern ("last-nonmenu-event"); staticpro (&Qlast_nonmenu_event); @@ -6472,7 +6472,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) int xerrno; /* Either nil or a cons cell, the car of which is of interest and may be changed outside of this routine. */ - Lisp_Object wait_for_cell; + Lisp_Object wait_for_cell; wait_for_cell = Qnil; diff --git a/src/puresize.h b/src/puresize.h index 891dde40d77..fd5bf1829a9 100644 --- a/src/puresize.h +++ b/src/puresize.h @@ -90,7 +90,7 @@ extern char my_edata[]; #else /* not VIRT_ADDRESS_VARIES, not PNTR_COMPARISON_TYPE */ extern char my_edata[]; - + #define PURE_P(obj) \ (XPNTR (obj) < (unsigned int) my_edata) diff --git a/src/ralloc.c b/src/ralloc.c index 9d31320bfcf..f710cfdc2b7 100644 --- a/src/ralloc.c +++ b/src/ralloc.c @@ -1,4 +1,4 @@ -/* Block-relocating memory allocator. +/* Block-relocating memory allocator. Copyright (C) 1993, 1995, 2000 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -42,7 +42,7 @@ typedef size_t SIZE; extern void safe_bcopy (); #ifdef DOUG_LEA_MALLOC -#define M_TOP_PAD -2 +#define M_TOP_PAD -2 extern int mallopt (); #else /* not DOUG_LEA_MALLOC */ #ifndef SYSTEM_MALLOC @@ -98,7 +98,7 @@ static POINTER break_value; /* This is the size of a page. We round memory requests to this boundary. */ static int page_size; -/* Whenever we get memory from the system, get this many extra bytes. This +/* Whenever we get memory from the system, get this many extra bytes. This must be a multiple of page_size. */ static int extra_bytes; @@ -141,7 +141,7 @@ extern POINTER (*__morecore) (); We try to make just one heap and make it larger as necessary. But sometimes we can't do that, because we can't get contiguous space to add onto the heap. When that happens, we start a new heap. */ - + typedef struct heap { struct heap *next; @@ -174,7 +174,7 @@ static heap_ptr first_heap, last_heap; /* These structures are allocated in the malloc arena. The linked list is kept in order of increasing '.data' members. The data blocks abut each other; if b->next is non-nil, then - b->data + b->size == b->next->data. + b->data + b->size == b->next->data. An element with variable==NIL denotes a freed block, which has not yet been collected. They may only appear while r_alloc_freeze > 0, and will be @@ -467,8 +467,8 @@ get_bloc (size) /* Calculate new locations of blocs in the list beginning with BLOC, relocating it to start at ADDRESS, in heap HEAP. If enough space is not presently available in our reserve, call obtain for - more space. - + more space. + Store the new location of each bloc in its new_data field. Do not touch the contents of blocs or break_value. */ @@ -481,7 +481,7 @@ relocate_blocs (bloc, heap, address) register bloc_ptr b = bloc; /* No need to ever call this if arena is frozen, bug somewhere! */ - if (r_alloc_freeze_level) + if (r_alloc_freeze_level) abort(); while (b) @@ -506,7 +506,7 @@ relocate_blocs (bloc, heap, address) /* Add up the size of all the following blocs. */ while (tb != NIL_BLOC) { - if (tb->variable) + if (tb->variable) s += tb->size; tb = tb->next; @@ -523,7 +523,7 @@ relocate_blocs (bloc, heap, address) /* Record the new address of this bloc and update where the next bloc can start. */ b->new_data = address; - if (b->variable) + if (b->variable) address = (char *) address + b->size; b = b->next; } @@ -639,7 +639,7 @@ resize_bloc (bloc, size) SIZE old_size; /* No need to ever call this if arena is frozen, bug somewhere! */ - if (r_alloc_freeze_level) + if (r_alloc_freeze_level) abort(); if (bloc == NIL_BLOC || size == bloc->size) @@ -681,8 +681,8 @@ resize_bloc (bloc, size) { b->size = 0; b->data = b->new_data; - } - else + } + else { safe_bcopy (b->data, b->new_data, b->size); *b->variable = b->data = b->new_data; @@ -708,8 +708,8 @@ resize_bloc (bloc, size) { b->size = 0; b->data = b->new_data; - } - else + } + else { safe_bcopy (b->data, b->new_data, b->size); *b->variable = b->data = b->new_data; @@ -738,7 +738,7 @@ free_bloc (bloc) bloc->variable = (POINTER *) NIL; return; } - + resize_bloc (bloc, 0); if (bloc == first_bloc && bloc == last_bloc) @@ -794,7 +794,7 @@ free_bloc (bloc) __morecore hook values - in particular, __default_morecore in the GNU malloc package. */ -POINTER +POINTER r_alloc_sbrk (size) long size; { @@ -850,7 +850,7 @@ r_alloc_sbrk (size) if (first_heap->bloc_start < new_bloc_start) { /* This is no clean solution - no idea how to do it better. */ - if (r_alloc_freeze_level) + if (r_alloc_freeze_level) return NIL; /* There is a bug here: if the above obtain call succeeded, but the @@ -1018,7 +1018,7 @@ r_re_alloc (ptr, size) if (!*ptr) return r_alloc (ptr, size); - if (!size) + if (!size) { r_alloc_free (ptr); return r_alloc (ptr, 0); @@ -1028,12 +1028,12 @@ r_re_alloc (ptr, size) if (bloc == NIL_BLOC) abort (); - if (size < bloc->size) + if (size < bloc->size) { /* Wouldn't it be useful to actually resize the bloc here? */ /* I think so too, but not if it's too expensive... */ - if ((bloc->size - MEM_ROUNDUP (size) >= page_size) - && r_alloc_freeze_level == 0) + if ((bloc->size - MEM_ROUNDUP (size) >= page_size) + && r_alloc_freeze_level == 0) { resize_bloc (bloc, MEM_ROUNDUP (size)); /* Never mind if this fails, just do nothing... */ @@ -1055,7 +1055,7 @@ r_re_alloc (ptr, size) else return NIL; } - else + else { if (! resize_bloc (bloc, MEM_ROUNDUP (size))) return NIL; @@ -1091,22 +1091,22 @@ void r_alloc_thaw () { - if (! r_alloc_initialized) + if (! r_alloc_initialized) r_alloc_init (); if (--r_alloc_freeze_level < 0) abort (); - /* This frees all unused blocs. It is not too inefficient, as the resize - and bcopy is done only once. Afterwards, all unreferenced blocs are + /* This frees all unused blocs. It is not too inefficient, as the resize + and bcopy is done only once. Afterwards, all unreferenced blocs are already shrunk to zero size. */ - if (!r_alloc_freeze_level) + if (!r_alloc_freeze_level) { bloc_ptr *b = &first_bloc; - while (*b) - if (!(*b)->variable) - free_bloc (*b); - else + while (*b) + if (!(*b)->variable) + free_bloc (*b); + else b = &(*b)->next; } } @@ -1238,7 +1238,7 @@ r_alloc_init () if (r_alloc_initialized) return; r_alloc_initialized = 1; - + page_size = PAGE; #ifndef SYSTEM_MALLOC real_morecore = __morecore; @@ -1283,6 +1283,6 @@ r_alloc_init () (char *) first_heap->end - (char *) first_heap->start); virtual_break_value = break_value = first_heap->bloc_start = first_heap->end; #endif - + use_relocatable_buffers = 1; } diff --git a/src/regex.c b/src/regex.c index 148100805eb..5b1b391dab7 100644 --- a/src/regex.c +++ b/src/regex.c @@ -2065,7 +2065,7 @@ re_wctype_to_bit (cc) static void extend_range_table_work_area (work_area) struct range_table_work_area *work_area; -{ +{ work_area->allocated += 16 * sizeof (int); if (work_area->table) work_area->table @@ -2104,7 +2104,7 @@ set_image_of_range_1 (work_area, start, end, translate) `strange' indicates a character that has more than one case-equivalent. */ - + enum case_type {one_case, two_case, strange}; /* Describe the run that is in progress, @@ -2174,7 +2174,7 @@ set_image_of_range_1 (work_area, start, end, translate) } run_type = strange; } - + if (this_type == strange) { /* For a strange character, add each of its equivalents, one @@ -2624,7 +2624,7 @@ regex_compile (pattern, size, syntax, bufp) (simple || !analyse_first (laststart, b, NULL, 0)) ? on_failure_jump : on_failure_jump_loop; assert (skip_one_char (laststart) <= b); - + if (!zero_times_ok && simple) { /* Since simple * loops can be made faster by using on_failure_keep_string_jump, we turn simple P+ @@ -3941,7 +3941,7 @@ analyse_first (p, pend, fastmap, multibyte) case has already been handled, so we only need to look at the fallthrough case. */ continue; - + case succeed_n: /* If N == 0, it should be an on_failure_jump_loop instead. */ DEBUG_STATEMENT (EXTRACT_NUMBER (j, p + 2); assert (j > 0)); @@ -4424,7 +4424,7 @@ skip_one_char (p) { case anychar: break; - + case exactn: p += *p + 1; break; @@ -4441,7 +4441,7 @@ skip_one_char (p) else p += 1 + CHARSET_BITMAP_SIZE (p - 1); break; - + case syntaxspec: case notsyntaxspec: #ifdef emacs @@ -4524,7 +4524,7 @@ mutually_exclusive_p (bufp, p1, p2) return 1; } break; - + case endline: case exactn: { @@ -4634,7 +4634,7 @@ mutually_exclusive_p (bufp, p1, p2) } } break; - + case charset_not: switch (SWITCH_ENUM_CAST (*p1)) { @@ -5318,7 +5318,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop) assert (!REG_UNSET (regstart[*p])); /* Strictly speaking, there should be code such as: - + assert (REG_UNSET (regend[*p])); PUSH_FAILURE_REGSTOP ((unsigned int)*p); @@ -5735,7 +5735,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop) PREFETCH (); c2 = RE_STRING_CHAR (d, dend - d); s2 = SYNTAX (c2); - + /* Case 2: S2 is not Sword. */ if (s2 != Sword) goto fail; diff --git a/src/region-cache.c b/src/region-cache.c index d7094cda26c..b5b5202653f 100644 --- a/src/region-cache.c +++ b/src/region-cache.c @@ -131,7 +131,7 @@ static void revalidate_region_cache (); struct region_cache * new_region_cache () { - struct region_cache *c + struct region_cache *c = (struct region_cache *) xmalloc (sizeof (struct region_cache)); c->gap_start = 0; @@ -385,7 +385,7 @@ delete_cache_boundaries (c, start, end) c->cache_len -= len; } - + /* Set the value for a region. */ @@ -407,12 +407,12 @@ set_cache_region (c, start, end, value) both the locations of real characters in the buffer. */ if (start == end) return; - + { /* We need to make sure that there are no boundaries in the area between start to end; the whole area will have the same value, so those boundaries will not be necessary. - + Let start_ix be the cache index of the boundary governing the first character of start..end, and let end_ix be the cache index of the earliest boundary after the last character in @@ -456,7 +456,7 @@ set_cache_region (c, start, end, value) start_ix++; } } - + /* This is equivalent to letting end_ix float (like a buffer marker does) with the insertions and deletions we may have done. */ @@ -553,7 +553,7 @@ invalidate_region_cache (buf, c, head, tail) } -/* Clean out any cache entries applying to the modified region, and +/* Clean out any cache entries applying to the modified region, and make the positions of the remaining entries accurate again. After calling this function, the mess described in the comment in @@ -606,7 +606,7 @@ revalidate_region_cache (buf, c) (which will give the modified region the same size in the cache as it has in the buffer), and then invalidate the modified region. */ - if (c->buffer_beg + c->beg_unchanged + if (c->buffer_beg + c->beg_unchanged == c->buffer_end - c->end_unchanged) { /* Move the gap so that all the boundaries in the unchanged head @@ -721,7 +721,7 @@ know_region_cache (buf, c, start, end) /* Interface: using the cache. */ /* Return true if the text immediately after POS in BUF is known, for - the purposes of CACHE. If NEXT is non-zero, set *NEXT to the nearest + the purposes of CACHE. If NEXT is non-zero, set *NEXT to the nearest position after POS where the knownness changes. */ int region_cache_forward (buf, c, pos, next) diff --git a/src/region-cache.h b/src/region-cache.h index b4a0b646a34..073d26b6bf3 100644 --- a/src/region-cache.h +++ b/src/region-cache.h @@ -86,7 +86,7 @@ extern void invalidate_region_cache P_ ((struct buffer *BUF, struct region_cache *CACHE, int HEAD, int TAIL)); -/* The scanning functions. +/* The scanning functions. Basically, if you're scanning forward/backward from position POS, and region_cache_forward/backward returns true, you can skip all @@ -96,7 +96,7 @@ extern void invalidate_region_cache P_ ((struct buffer *BUF, might be able to avoid scanning it again. */ /* Return true if the text immediately after POS in BUF is known, for - the purposes of CACHE. If NEXT is non-zero, set *NEXT to the nearest + the purposes of CACHE. If NEXT is non-zero, set *NEXT to the nearest position after POS where the knownness changes. */ extern int region_cache_forward P_ ((struct buffer *BUF, struct region_cache *CACHE, diff --git a/src/s/386bsd.h b/src/s/386bsd.h index f9f4a6a5ff2..427dc2003de 100644 --- a/src/s/386bsd.h +++ b/src/s/386bsd.h @@ -6,7 +6,7 @@ #undef LIB_STANDARD #define LIB_STANDARD -lc $(GNULIB_VAR) -/* The following should be set to /netbsd if you are running netbsd > 0.8 +/* The following should be set to /netbsd if you are running netbsd > 0.8 Or just link /netbsd -> /386bsd */ #undef KERNEL_FILE #define KERNEL_FILE "/386bsd" diff --git a/src/s/aix4-1.h b/src/s/aix4-1.h index c365bc7d102..e179684f3b6 100644 --- a/src/s/aix4-1.h +++ b/src/s/aix4-1.h @@ -1,4 +1,4 @@ -#define AIX4_1 +#define AIX4_1 #include "aix4.h" diff --git a/src/s/bsd4-1.h b/src/s/bsd4-1.h index d0dd9a29485..fc797755c08 100644 --- a/src/s/bsd4-1.h +++ b/src/s/bsd4-1.h @@ -46,7 +46,7 @@ Boston, MA 02111-1307, USA. */ /* First pty name is /dev/ptyp0. */ #define FIRST_PTY_LETTER 'p' - + /* * Define HAVE_PTYS if the system supports pty devices. */ diff --git a/src/s/cygwin.h b/src/s/cygwin.h index fe292305465..d10a7264053 100644 --- a/src/s/cygwin.h +++ b/src/s/cygwin.h @@ -103,7 +103,7 @@ Boston, MA 02111-1307, USA. */ /* If the system's imake configuration file defines `NeedWidePrototypes' as `NO', we must define NARROWPROTO manually. Such a define is - generated in the Makefile generated by `xmkmf'. If we don't + generated in the Makefile generated by `xmkmf'. If we don't define NARROWPROTO, we will see the wrong function prototypes for X functions taking float or double parameters. */ diff --git a/src/s/darwin.h b/src/s/darwin.h index 21b11d9554a..e9faa6605ce 100644 --- a/src/s/darwin.h +++ b/src/s/darwin.h @@ -178,7 +178,7 @@ Boston, MA 02111-1307, USA. */ /* If the system's imake configuration file defines `NeedWidePrototypes' as `NO', we must define NARROWPROTO manually. Such a define is - generated in the Makefile generated by `xmkmf'. If we don't + generated in the Makefile generated by `xmkmf'. If we don't define NARROWPROTO, we will see the wrong function prototypes for X functions taking float or double parameters. */ diff --git a/src/s/freebsd.h b/src/s/freebsd.h index b42930b7aa2..94336835f50 100644 --- a/src/s/freebsd.h +++ b/src/s/freebsd.h @@ -23,7 +23,7 @@ Boston, MA 02111-1307, USA. */ /* Get the correct __FreeBSD_version, even if this is before that was defined. */ -#ifndef __FreeBSD_version +#ifndef __FreeBSD_version #ifndef __FreeBSD__ #define __FreeBSD_version 199401 #elif __FreeBSD__ == 1 @@ -144,7 +144,7 @@ Boston, MA 02111-1307, USA. */ #define BSD_SYSTEM 199506 #endif -#if 0 /* Shouldn't be necessary and produces warnings with the +#if 0 /* Shouldn't be necessary and produces warnings with the experimental Autoconf test. */ #define WAITTYPE int /* get this since it won't be included if WAITTYPE is defined */ @@ -167,7 +167,7 @@ Boston, MA 02111-1307, USA. */ /* If the system's imake configuration file defines `NeedWidePrototypes' as `NO', we must define NARROWPROTO manually. Such a define is - generated in the Makefile generated by `xmkmf'. If we don't + generated in the Makefile generated by `xmkmf'. If we don't define NARROWPROTO, we will see the wrong function prototypes for X functions taking float or double parameters. */ diff --git a/src/s/hiuxmpp.h b/src/s/hiuxmpp.h index 2ad57403fb7..5175bd10bfe 100644 --- a/src/s/hiuxmpp.h +++ b/src/s/hiuxmpp.h @@ -14,9 +14,9 @@ #define BSD4_2 /* Define _BSD to tell the include files we're running under - the BSD universe and not the SYSV universe. - Define HITACHI and OSF for Xt's Boolean type as int intead of char. - (But for these defines, /usr/include/X11/Intrinsic.h defines + the BSD universe and not the SYSV universe. + Define HITACHI and OSF for Xt's Boolean type as int intead of char. + (But for these defines, /usr/include/X11/Intrinsic.h defines Boolean as char, but libXt.a on HI-UX/MPP requires it as int.) */ #define C_SWITCH_SYSTEM -D_BSD -DHITACHI -DOSF @@ -34,7 +34,7 @@ /* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option says where to find X windows at run time. We convert it to a -rpath option which is what OSF1 uses. */ -#define LD_SWITCH_SYSTEM +#define LD_SWITCH_SYSTEM #undef KERNEL_FILE #define KERNEL_FILE "/mach_kernel" diff --git a/src/s/hiuxwe2.h b/src/s/hiuxwe2.h index 2ad57403fb7..5175bd10bfe 100644 --- a/src/s/hiuxwe2.h +++ b/src/s/hiuxwe2.h @@ -14,9 +14,9 @@ #define BSD4_2 /* Define _BSD to tell the include files we're running under - the BSD universe and not the SYSV universe. - Define HITACHI and OSF for Xt's Boolean type as int intead of char. - (But for these defines, /usr/include/X11/Intrinsic.h defines + the BSD universe and not the SYSV universe. + Define HITACHI and OSF for Xt's Boolean type as int intead of char. + (But for these defines, /usr/include/X11/Intrinsic.h defines Boolean as char, but libXt.a on HI-UX/MPP requires it as int.) */ #define C_SWITCH_SYSTEM -D_BSD -DHITACHI -DOSF @@ -34,7 +34,7 @@ /* Here is how to find X Windows. LD_SWITCH_X_SITE_AUX gives an -R option says where to find X windows at run time. We convert it to a -rpath option which is what OSF1 uses. */ -#define LD_SWITCH_SYSTEM +#define LD_SWITCH_SYSTEM #undef KERNEL_FILE #define KERNEL_FILE "/mach_kernel" diff --git a/src/s/hpux8.h b/src/s/hpux8.h index c06675301f0..a151769fcf9 100644 --- a/src/s/hpux8.h +++ b/src/s/hpux8.h @@ -52,7 +52,7 @@ and none have sioctl.h, so might as well define this. */ #define NO_SIOCTL_H -#if 0 /* autoconf should be detecting the presence or absence of +#if 0 /* autoconf should be detecting the presence or absence of random and srandom now. */ /* If you use X11R4 you must define this. If you use X11R5 you must comment this out */ diff --git a/src/s/irix5-0.h b/src/s/irix5-0.h index a83d3fcb417..1bdd479eb9f 100644 --- a/src/s/irix5-0.h +++ b/src/s/irix5-0.h @@ -4,7 +4,7 @@ #undef sigsetmask /* use sys_sigsetmask */ #undef _longjmp /* use system versions, not conservative aliases */ -#undef _setjmp +#undef _setjmp #define SETPGRP_RELEASES_CTTY @@ -73,7 +73,7 @@ char *_getpty(); /* Since we use POSIX constructs in PTY_OPEN, we must force POSIX throughout. */ -#define POSIX_SIGNALS +#define POSIX_SIGNALS /* Info from simon@lia.di.epfl.ch (Simon Leinen) suggests this is needed. */ #define GETPGRP_NO_ARG diff --git a/src/s/irix5-2.h b/src/s/irix5-2.h index 4d7509f8d54..a9056fae8c1 100644 --- a/src/s/irix5-2.h +++ b/src/s/irix5-2.h @@ -1,8 +1,8 @@ #include "irix5-0.h" -/* as of version 5.2, irix no longer uses flock, +/* as of version 5.2, irix no longer uses flock, according to jackr@wpd.sgi.com. */ -#undef MAIL_USE_FLOCK +#undef MAIL_USE_FLOCK /* C-g in select is not handled properly with restartable system calls. So don't use them. */ diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h index 51f3e9ddb25..6d38d4fa592 100644 --- a/src/s/ms-w32.h +++ b/src/s/ms-w32.h @@ -440,7 +440,7 @@ extern char *get_emacs_configuration_options (void); #include <sys/stat.h> -/* Define for those source files that do not include enough NT +/* Define for those source files that do not include enough NT system files. */ #ifndef NULL #ifdef __cplusplus diff --git a/src/s/netbsd.h b/src/s/netbsd.h index 7ed08ec05e3..b4ac9a55195 100644 --- a/src/s/netbsd.h +++ b/src/s/netbsd.h @@ -112,13 +112,13 @@ ioctl TIOCSCTTY. */ #define DONT_REOPEN_PTY - + /* Tell that garbage collector that setjmp is known to save all registers relevant for conservative garbage collection in the jmp_buf. */ #define GC_SETJMP_WORKS 1 - + /* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method. */ #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS diff --git a/src/s/ptx.h b/src/s/ptx.h index 6fff6de543c..ae76c35f3e6 100644 --- a/src/s/ptx.h +++ b/src/s/ptx.h @@ -41,8 +41,8 @@ Boston, MA 02111-1307, USA. */ /* PTX has System V streams. */ #define SYSV_STREAMS - -/* Leave out -lPW since it conflicts with term.o and because we're not sure + +/* Leave out -lPW since it conflicts with term.o and because we're not sure if the alloca found there by autoconf should be trusted on PTX. */ #define LIB_STANDARD -lc @@ -159,7 +159,7 @@ struct timezone } \ strcpy (pty_name, slavename); -/* Define these to prevent the default logic in process.c:allocate_pty +/* Define these to prevent the default logic in process.c:allocate_pty from being used. */ #define PTY_NAME_SPRINTF #define PTY_TTY_NAME_SPRINTF diff --git a/src/s/sco4.h b/src/s/sco4.h index 6015ec66385..67b96eee59a 100644 --- a/src/s/sco4.h +++ b/src/s/sco4.h @@ -86,7 +86,7 @@ Boston, MA 02111-1307, USA. */ #define LIBS_SYSTEM -lsocket -lPW /* SCO has gettimeofday in socket library */ -/* Autoconf should determine this, but for now, +/* Autoconf should determine this, but for now, play safe to avoid error rather than deleting this and risking the wrong result. */ #ifndef HAVE_GETTIMEOFDAY diff --git a/src/s/sco5.h b/src/s/sco5.h index 04bfd7c181e..8b091f63b53 100644 --- a/src/s/sco5.h +++ b/src/s/sco5.h @@ -150,7 +150,7 @@ extern SIGMASKTYPE sigprocmask_set; #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base) #endif -/* Use ELF and get real shared libraries */ +/* Use ELF and get real shared libraries */ #undef COFF #define ELF diff --git a/src/s/template.h b/src/s/template.h index b018afa8ce1..f4d806de146 100644 --- a/src/s/template.h +++ b/src/s/template.h @@ -168,7 +168,7 @@ Boston, MA 02111-1307, USA. */ /* If the system's imake configuration file defines `NeedWidePrototypes' as `NO', we must define NARROWPROTO manually. Such a define is - generated in the Makefile generated by `xmkmf'. If we don't + generated in the Makefile generated by `xmkmf'. If we don't define NARROWPROTO, we will see the wrong function prototypes for X functions taking float or double parameters. */ diff --git a/src/s/umax.h b/src/s/umax.h index 25d3d70dbfa..eaa9b6c4bbc 100644 --- a/src/s/umax.h +++ b/src/s/umax.h @@ -147,7 +147,7 @@ Boston, MA 02111-1307, USA. */ #define SEGMENT_MASK (64 * 1024 - 1) -/* crt0.c needs this for compilation because it uses asm. */ +/* crt0.c needs this for compilation because it uses asm. */ #define C_SWITCH_ASM -q nodirect_code diff --git a/src/s/vms.h b/src/s/vms.h index e95212c5624..9f718099eef 100644 --- a/src/s/vms.h +++ b/src/s/vms.h @@ -130,7 +130,7 @@ Boston, MA 02111-1307, USA. */ #define LINK_CRTL_SHARE /* Define this if you want to read the file SYS$SYSTEM:SYSUAF.DAT for user - information. If you do use this, you must either make SYSUAF.DAT world + information. If you do use this, you must either make SYSUAF.DAT world readable or install Emacs with SYSPRV. */ /* #define READ_SYSUAF */ @@ -192,7 +192,7 @@ extern double mth$dmod(double, double); /* If user asks for TERM, check first for EMACS_TERM. */ #define getenv sys_getenv - + /* Standard C abort is less useful than it should be. */ #define abort sys_abort diff --git a/src/scroll.c b/src/scroll.c index e6929113e8a..ccbc85ac8b2 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -232,13 +232,13 @@ calculate_scrolling (frame, matrix, window_size, lines_below, /* Perform insert-lines and delete-lines operations on CURRENT_MATRIX according to the costs in MATRIX, using the general scrolling method that is used if the terminal does not support the setting of - scroll windows (scroll_region_ok == 0). + scroll windows (scroll_region_ok == 0). WINDOW_SIZE is the number of lines being considered for scrolling and UNCHANGED_AT_TOP is the vpos of the first line being considered. These two arguments can specify any contiguous range of lines. */ - + static void do_scrolling (current_matrix, matrix, window_size, unchanged_at_top) struct glyph_matrix *current_matrix; @@ -258,7 +258,7 @@ do_scrolling (current_matrix, matrix, window_size, unchanged_at_top) struct queue *queue_start = (struct queue *) alloca (current_matrix->nrows * sizeof (struct queue)); struct queue *queue = queue_start; - + char *retained_p = (char *) alloca (window_size * sizeof (char)); int *copy_from = (int *) alloca (window_size * sizeof (int)); @@ -283,7 +283,7 @@ do_scrolling (current_matrix, matrix, window_size, unchanged_at_top) while (i > 0 || j > 0) { p = matrix + i * (window_size + 1) + j; - + if (p->insertcost < p->writecost && p->insertcost < p->deletecost) { /* Insert should be done at vpos i-1, plus maybe some before. @@ -365,7 +365,7 @@ do_scrolling (current_matrix, matrix, window_size, unchanged_at_top) } } while (queue > queue_start); - + } for (k = 0; k < window_size; ++k) @@ -377,7 +377,7 @@ do_scrolling (current_matrix, matrix, window_size, unchanged_at_top) /* Some sanity checks if GLYPH_DEBUG != 0. */ CHECK_MATRIX (current_matrix); - + if (terminal_window_p) set_terminal_window (0); } @@ -562,7 +562,7 @@ calculate_direct_scrolling (frame, matrix, window_size, lines_below, To reduce the cumulative effects of rounding error, we vary the position at which the difference is computed. */ cost1 += first_insert_cost[-j] - first_insert_cost[1-j] + - (delta-1) * (next_insert_cost[-j] - next_insert_cost[1-j]); + (delta-1) * (next_insert_cost[-j] - next_insert_cost[1-j]); } else { @@ -570,7 +570,7 @@ calculate_direct_scrolling (frame, matrix, window_size, lines_below, cost += scroll_overhead + first_delete_cost[-delta] + (delta-1) * (next_delete_cost[-delta] + extra_cost); cost1 += first_delete_cost[-i] - first_delete_cost[1-i] + - (delta-1) * ( next_delete_cost[-i] - next_delete_cost[1-i]); + (delta-1) * ( next_delete_cost[-i] - next_delete_cost[1-i]); } if (cost1 < cost) { @@ -641,7 +641,7 @@ calculate_direct_scrolling (frame, matrix, window_size, lines_below, and UNCHANGED_AT_TOP is the vpos of the first line being considered. These two arguments can specify any contiguous range of lines. - + In the direct scrolling method, a new scroll window is selected before each insertion or deletion, so that groups of lines can be scrolled directly to their final vertical positions. This method @@ -701,11 +701,11 @@ do_direct_scrolling (current_matrix, cost_matrix, window_size, without also decrementing i, this corresponds to omitting these lines in the new rows, i.e. rows are deleted. */ i = j = window_size; - + while (i > 0 || j > 0) { p = cost_matrix + i * (window_size + 1) + j; - + if (p->insertcost < p->writecost && p->insertcost < p->deletecost && (write_follows_p || i < j)) @@ -717,7 +717,7 @@ do_direct_scrolling (current_matrix, cost_matrix, window_size, queue->window = i; queue->pos = i - p->insertcount; ++queue; - + i -= p->insertcount; write_follows_p = 0; } @@ -736,7 +736,7 @@ do_direct_scrolling (current_matrix, cost_matrix, window_size, place they belong. */ int n_to_write = p->writecount; write_follows_p = 1; - xassert (n_to_write > 0); + xassert (n_to_write > 0); if (i > j) { @@ -822,7 +822,7 @@ scrolling_1 (frame, window_size, unchanged_at_top, unchanged_at_bottom, { calculate_direct_scrolling (frame, matrix, window_size, unchanged_at_bottom, - draw_cost, old_draw_cost, + draw_cost, old_draw_cost, old_hash, new_hash, free_at_end); do_direct_scrolling (frame->current_matrix, matrix, window_size, unchanged_at_top); @@ -1054,7 +1054,7 @@ do_line_insertion_deletion_costs (frame, (int *) xmalloc (FRAME_HEIGHT (frame) * sizeof (int)); FRAME_INSERTN_COST (frame) = (int *) xmalloc (FRAME_HEIGHT (frame) * sizeof (int)); - FRAME_DELETE_COST (frame) = + FRAME_DELETE_COST (frame) = (int *) xmalloc (FRAME_HEIGHT (frame) * sizeof (int)); } diff --git a/src/search.c b/src/search.c index cae2783c117..a9544a2db39 100644 --- a/src/search.c +++ b/src/search.c @@ -306,12 +306,12 @@ looking_at_1 (string, posix) } re_match_object = Qnil; - + i = re_match_2 (bufp, (char *) p1, s1, (char *) p2, s2, PT_BYTE - BEGV_BYTE, &search_regs, ZV_BYTE - BEGV_BYTE); immediate_quit = 0; - + if (i == -2) matcher_overflow (); @@ -390,7 +390,7 @@ string_match_1 (regexp, string, start, posix) STRING_MULTIBYTE (string)); immediate_quit = 1; re_match_object = string; - + val = re_search (bufp, (char *) SDATA (string), SBYTES (string), pos_byte, SBYTES (string) - pos_byte, @@ -458,7 +458,7 @@ fast_string_match (regexp, string) 0, STRING_MULTIBYTE (string)); immediate_quit = 1; re_match_object = string; - + val = re_search (bufp, (char *) SDATA (string), SBYTES (string), 0, SBYTES (string), 0); @@ -550,7 +550,7 @@ scan_buffer (target, start, end, count, shortage, allow_quit) int allow_quit; { struct region_cache *newline_cache; - int direction; + int direction; if (count > 0) { @@ -611,7 +611,7 @@ scan_buffer (target, start, end, count, shortage, allow_quit) ceiling_byte = min (tem, ceiling_byte); { - /* The termination address of the dumb loop. */ + /* The termination address of the dumb loop. */ register unsigned char *ceiling_addr = BYTE_POS_ADDR (ceiling_byte) + 1; register unsigned char *cursor @@ -856,7 +856,7 @@ find_before_next_newline (from, to, cnt) if (shortage == 0) pos--; - + return pos; } @@ -1062,7 +1062,7 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n, s2 = 0; } re_match_object = Qnil; - + while (n < 0) { int val; @@ -1528,7 +1528,7 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt, int infinity, limit, stride_for_teases = 0; register int *BM_tab; int *BM_tab_base; - register unsigned char *cursor, *p_limit; + register unsigned char *cursor, *p_limit; register int i, j; unsigned char *pat, *pat_end; int multibyte = ! NILP (current_buffer->enable_multibyte_characters); @@ -1561,14 +1561,14 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt, /* a single test, a test for having gone past the end of the */ /* permissible match region, to test for both possible matches (when */ /* the stride goes past the end immediately) and failure to */ - /* match (where you get nudged past the end one stride at a time). */ + /* match (where you get nudged past the end one stride at a time). */ /* Here we make a "mickey mouse" BM table. The stride of the search */ /* is determined only by the last character of the putative match. */ /* If that character does not match, we will stride the proper */ /* distance to propose a match that superimposes it on the last */ /* instance of a character that matches it (per trt), or misses */ - /* it entirely if there is none. */ + /* it entirely if there is none. */ dirlen = len_byte * direction; infinity = dirlen - (lim_byte + pos_byte + len_byte + len_byte) * direction; @@ -1656,7 +1656,7 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt, BM_tab[j] = dirlen - i; /* A translation table is accompanied by its inverse -- see */ - /* comment following downcase_table for details */ + /* comment following downcase_table for details */ if (this_translated) { int starting_ch = ch; @@ -1844,7 +1844,7 @@ boyer_moore (n, base_pat, len, len_byte, trt, inverse_trt, /* This loop can be coded for space rather than */ /* speed because it will usually run only once. */ /* (the reach is at most len + 21, and typically */ - /* does not exceed len) */ + /* does not exceed len) */ while ((limit - pos_byte) * direction >= 0) pos_byte += BM_tab[FETCH_BYTE (pos_byte)]; /* now run the same tests to distinguish going off the */ @@ -1957,7 +1957,7 @@ wordify (string) for (i = 0, i_byte = 0; i < len; ) { int c; - + FETCH_STRING_CHAR_ADVANCE (c, string, i, i_byte); if (SYNTAX (c) != Sword) @@ -1992,7 +1992,7 @@ wordify (string) { int c; int i_byte_orig = i_byte; - + FETCH_STRING_CHAR_ADVANCE (c, string, i, i_byte); if (SYNTAX (c) == Sword) @@ -2360,7 +2360,7 @@ since only regular expressions have distinguished subexpressions. */) if (c == '\\') { FETCH_STRING_CHAR_ADVANCE (c, newtext, pos, pos_byte); - + if (c == '&') { substart = search_regs.start[sub]; @@ -2593,7 +2593,7 @@ since only regular expressions have distinguished subexpressions. */) /* Now move point "officially" to the start of the inserted replacement. */ move_if_not_intangible (newpoint); - + return Qnil; } @@ -2639,7 +2639,7 @@ Zero means the entire text matched by the whole regexp or whole string. */) Lisp_Object subexp; { return match_limit (subexp, 0); -} +} DEFUN ("match-data", Fmatch_data, Smatch_data, 0, 2, 0, doc: /* Return a list containing all info on what the last search matched. @@ -2687,7 +2687,7 @@ to hold all the values, and if INTEGERS is non-nil, no consing is done. */) last_thing_searched); data[2 * i + 1] = Fmake_marker (); Fset_marker (data[2 * i + 1], - make_number (search_regs.end[i]), + make_number (search_regs.end[i]), last_thing_searched); } else @@ -2740,7 +2740,7 @@ LIST should have been created by calling `match-data' previously. */) if (!CONSP (list) && !NILP (list)) list = wrong_type_argument (Qconsp, list); - /* Unless we find a marker with a buffer in LIST, assume that this + /* Unless we find a marker with a buffer in LIST, assume that this match data came from a string. */ last_thing_searched = Qt; @@ -2809,7 +2809,7 @@ LIST should have been created by calling `match-data' previously. */) list = Fcdr (list); } - return Qnil; + return Qnil; } /* If non-zero the match data have been saved in saved_search_regs @@ -2873,7 +2873,7 @@ DEFUN ("regexp-quote", Fregexp_quote, Sregexp_quote, 1, 1, 0, in = SDATA (string); end = in + SBYTES (string); - out = temp; + out = temp; for (; in != end; in++) { @@ -2890,7 +2890,7 @@ DEFUN ("regexp-quote", Fregexp_quote, Sregexp_quote, 1, 1, 0, out - temp, STRING_MULTIBYTE (string)); } - + void syms_of_search () { diff --git a/src/sunfns.c b/src/sunfns.c index e4e2e84da45..c1bae41c470 100644 --- a/src/sunfns.c +++ b/src/sunfns.c @@ -158,7 +158,7 @@ Redisplay does not happen if input is available before it starts. */) { struct timeval Timeout; int waitmask = 1; - + CHECK_NUMBER (n); Timeout.tv_sec = XINT(n) / 1000; Timeout.tv_usec = (XINT(n) - (Timeout.tv_sec * 1000)) * 1000; @@ -178,7 +178,7 @@ Redisplay does not happen if input is available before it starts. */) /* * Sun sleep-for (allows a shorter interval than the regular sleep-for) */ -DEFUN ("sleep-for-millisecs", +DEFUN ("sleep-for-millisecs", Fsleep_for_millisecs, Ssleep_for_millisecs, 1, 1, 0, doc: /* Pause, without updating display, for ARG milliseconds. */) @@ -220,12 +220,12 @@ expressed as a string. If ICON is nil then the original arrow cursor is used. register short *p; register int i; Lisp_Object X_Hot, Y_Hot, Data; - + CHECK_GFX (Qnil); /* * If the icon is null, we just restore the DefaultCursor */ - if (NILP(Icon)) + if (NILP(Icon)) CurrentCursor = DefaultCursor; else { /* @@ -236,7 +236,7 @@ expressed as a string. If ICON is nil then the original arrow cursor is used. X_Hot = XVECTOR(Icon)->contents[0]; Y_Hot = XVECTOR(Icon)->contents[1]; Data = XVECTOR(Icon)->contents[2]; - + CHECK_NUMBER (X_Hot); CHECK_NUMBER (Y_Hot); CHECK_STRING (Data); @@ -267,7 +267,7 @@ sel_write (sel, file) struct selection *sel; FILE *file; { - fwrite (SDATA (Current_Selection), sizeof (char), + fwrite (SDATA (Current_Selection), sizeof (char), sel->sel_items, file); } @@ -285,7 +285,7 @@ sel_read (sel, file) { register int i, n; register char *cp; - + Current_Selection = make_string ("", 0); if (sel->sel_items <= 0) return (0); @@ -306,7 +306,7 @@ sel_read (sel, file) * The shelltool select saves newlines as carriage returns, * but emacs wants newlines. */ - for (i = 0; i < n; i++) + for (i = 0; i < n; i++) if (cp[i] == '\r') cp[i] = '\n'; Current_Selection = make_string (cp, n); @@ -379,16 +379,16 @@ sun_item_create (Pair) return menu_item; } -Menu +Menu sun_menu_create (Vector) Lisp_Object Vector; { Menu menu; int i; CHECK_VECTOR(Vector); - menu=menu_create(0); + menu=menu_create(0); for(i = 0; i < XVECTOR(Vector)->size; i++) { - menu_set (menu, MENU_APPEND_ITEM, + menu_set (menu, MENU_APPEND_ITEM, sun_item_create(XVECTOR(Vector)->contents[i]), 0); } return menu; @@ -445,7 +445,7 @@ as a menu label. */) Event event0; Event *event = &event0; Lisp_Object Value, Pair; - + CHECK_NUMBER(X_Position); CHECK_NUMBER(Y_Position); CHECK_LIVE_WINDOW(window); diff --git a/src/syntax.c b/src/syntax.c index 116249fe283..799f44d3c2f 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -1774,7 +1774,7 @@ forw_comment (from, from_byte, stop, nesting, style, prev_syntax, } DEFUN ("forward-comment", Fforward_comment, Sforward_comment, 1, 1, 0, - doc: /* + doc: /* Move forward across up to COUNT comments. If COUNT is negative, move backward. Stop scanning if we find something other than a comment or whitespace. Set point to where scanning stops. diff --git a/src/syntax.h b/src/syntax.h index 4cbd2e2edf9..6d8f201baeb 100644 --- a/src/syntax.h +++ b/src/syntax.h @@ -90,7 +90,7 @@ extern Lisp_Object syntax_parent_lookup P_ ((Lisp_Object, int)); #endif /* SYNTAX_ENTRY fetches the information from the entry for character C - in syntax table TABLE, or from globally kept data (gl_state). + in syntax table TABLE, or from globally kept data (gl_state). Does inheritance. */ /* CURRENT_SYNTAX_TABLE gives the syntax table valid for current position, it is either the buffer's syntax table, or syntax table @@ -277,7 +277,7 @@ extern char syntax_code_spec[16]; search, or after the last position of the backward search. It makes sure that the first char is picked up with correct table, so one does not need to call UPDATE_SYNTAX_TABLE immediately after the - call. + call. Sign of COUNT gives the direction of the search. */ diff --git a/src/sysdep.c b/src/sysdep.c index 265cb61f393..1e4ed7576dd 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -391,7 +391,7 @@ init_baud_rate () emacs_ospeed = sg.c_cflag & CBAUD; #else /* neither VMS nor TERMIOS nor TERMIO */ struct sgttyb sg; - + sg.sg_ospeed = B9600; if (ioctl (input_fd, TIOCGETP, &sg) < 0) abort (); @@ -402,7 +402,7 @@ init_baud_rate () #endif /* not DOS_NT */ #endif /* not INIT_BAUD_RATE */ } - + baud_rate = (emacs_ospeed < sizeof baud_convert / sizeof baud_convert[0] ? baud_convert[emacs_ospeed] : 9600); if (baud_rate == 0) @@ -543,7 +543,7 @@ wait_for_termination (pid) * flush any pending output * (may flush input as well; it does not matter the way we use it) */ - + void flush_pending_output (channel) int channel; @@ -812,7 +812,7 @@ sys_subshell () save_signal_handlers (saved_handlers); synch_process_alive = 1; #endif /* __DJGPP__ > 1 */ -#else +#else pid = vfork (); if (pid == -1) error ("Can't spawn subshell"); @@ -1002,7 +1002,7 @@ unrequest_sigio () } #else /* not FASYNC, not STRIDE */ - + #ifdef _CX_UX #include <termios.h> @@ -1046,7 +1046,7 @@ request_sigio () croak ("request_sigio"); } - + void unrequest_sigio () { @@ -1258,7 +1258,7 @@ emacs_set_tty (fd, settings, flushp) || ioctl (fd, TIOCLSET, &settings->lmode) < 0) return -1; #endif - + /* We have survived the tempest. */ return 0; } @@ -1298,13 +1298,13 @@ unsigned char _sobuf[BUFSIZ+8]; char _sobuf[BUFSIZ]; #endif #endif - + #ifdef HAVE_LTCHARS static struct ltchars new_ltchars = {-1,-1,-1,-1,-1,-1}; #endif #ifdef HAVE_TCHARS static struct tchars new_tchars = {-1,-1,-1,-1,-1,-1}; -#endif +#endif void init_sys_modes () @@ -1413,7 +1413,7 @@ nil means don't delete them until `list-processes' is run. */); } else tty.main.c_iflag &= ~IXON; /* Disable start/stop output control */ - tty.main.c_oflag &= ~ONLCR; /* Disable map of NL to CR-NL + tty.main.c_oflag &= ~ONLCR; /* Disable map of NL to CR-NL on output */ tty.main.c_oflag &= ~TAB3; /* Disable tab expansion */ #ifdef CS8 @@ -1554,7 +1554,7 @@ nil means don't delete them until `list-processes' is run. */); anything, and leaving it in breaks the meta key. Go figure. */ tty.lmode &= ~LLITOUT; #endif - + #ifdef BSD4_1 lmode = tty.lmode; #endif @@ -1679,7 +1679,7 @@ nil means don't delete them until `list-processes' is run. */); /* Return nonzero if safe to use tabs in output. At the time this is called, init_sys_modes has not been done yet. */ - + int tabs_safe_p () { @@ -1715,7 +1715,7 @@ get_frame_size (widthp, heightp) #ifdef TIOCGSIZE /* SunOS - style. */ - struct ttysize size; + struct ttysize size; if (ioctl (input_fd, TIOCGSIZE, &size) == -1) *widthp = *heightp = 0; @@ -1729,7 +1729,7 @@ get_frame_size (widthp, heightp) #ifdef VMS struct sensemode tty; - + SYS$QIOW (0, input_fd, IO$_SENSEMODE, &tty, 0, 0, &tty.class, 12, 0, 0, 0, 0); *widthp = tty.scr_wid; @@ -1772,7 +1772,7 @@ set_window_size (fd, height, width) #ifdef TIOCSSIZE /* SunOS - style. */ - struct ttysize size; + struct ttysize size; size.ts_lines = height; size.ts_cols = width; @@ -1793,7 +1793,7 @@ void reset_sys_modes () { struct frame *sf; - + if (noninteractive) { fflush (stdout); @@ -1820,7 +1820,7 @@ reset_sys_modes () cursor_to (FRAME_HEIGHT (sf) - 1, 0); #if defined (IBMR2AIX) && defined (AIXHFT) { - /* HFT devices normally use ^J as a LF/CR. We forced it to + /* HFT devices normally use ^J as a LF/CR. We forced it to do the LF only. Now, we need to reset it. */ struct termio tty; @@ -1903,13 +1903,13 @@ setup_pty (fd) does this. Also it is known that telnet mode will hang in such a way that Emacs must be stopped (perhaps this is the same problem). - + If TIOCREMOTE is turned off, then there is a bug in hp-ux which sometimes loses data. Apparently the code which blocks the master process when the internal buffer fills up does not work. Other than this, though, everything else seems to work fine. - + Since the latter lossage is more benign, we may as well lose that way. -- cph */ #ifdef FIONBIO @@ -1941,7 +1941,7 @@ void init_vms_input () { int status; - + if (input_fd == 0) { status = SYS$ASSIGN (&input_dsc, &input_fd, 0, 0); @@ -2142,7 +2142,7 @@ sys_sleep (timeval) int time [2]; static int zero = 0; static int large = -10000000; - + LIB$EMUL (&timeval, &large, &zero, time); /* Convert to VMS format */ SYS$CANTIM (1, 0); @@ -2242,7 +2242,7 @@ start_of_text () * will be patched by unexec to the correct value. * */ - + #ifndef start_of_data char * start_of_data () @@ -2542,7 +2542,7 @@ sys_select (nfds, rfds, wfds, efds, timeout) /* Once a second, till the timer expires, check all the flagged read * descriptors to see if any input is available. If there is some then * set the corresponding bit in the return copy of rfds. - */ + */ while (1) { register int to_check, fd; @@ -2589,7 +2589,7 @@ sys_select (nfds, rfds, wfds, efds, timeout) signal (SIGALRM, select_alarm); select_alarmed = 0; alarm (SELECT_PAUSE); - + /* Wait for a SIGALRM (or maybe a SIGTINT) */ while (select_alarmed == 0 && *local_timeout != 0 && process_tick == update_tick) @@ -2607,10 +2607,10 @@ sys_select (nfds, rfds, wfds, efds, timeout) pause (); } (*local_timeout) -= SELECT_PAUSE; - + /* Reset the old alarm if there was one. */ turn_on_atimers (1); - + if (*local_timeout == 0) /* Stop on timer being cleared */ break; } @@ -3239,10 +3239,10 @@ emacs_open (path, oflag, mode) register int rtnval; #ifdef BSD4_1 - if (oflag & O_CREAT) + if (oflag & O_CREAT) return creat (path, mode); #endif - + while ((rtnval = open (path, oflag, mode)) == -1 && (errno == EINTR)); return (rtnval); @@ -3275,7 +3275,7 @@ emacs_read (fildes, buf, nbyte) unsigned int nbyte; { register int rtnval; - + while ((rtnval = read (fildes, buf, nbyte)) == -1 && (errno == EINTR)); return (rtnval); @@ -3415,7 +3415,7 @@ dup2 (oldd, newd) int newd; { register int fd, ret; - + emacs_close (newd); #ifdef F_DUPFD @@ -3444,7 +3444,7 @@ dup2 (oldd, newd) #ifndef VMS #ifndef HAVE_GETTIMEOFDAY #ifdef HAVE_TIMEVAL - + /* ARGSUSED */ int gettimeofday (tp, tzp) @@ -3453,18 +3453,18 @@ gettimeofday (tp, tzp) { extern long time (); - tp->tv_sec = time ((long *)0); + tp->tv_sec = time ((long *)0); tp->tv_usec = 0; if (tzp != 0) tzp->tz_minuteswest = -1; return 0; } - + #endif #endif #endif #endif /* subprocess && !HAVE_GETTIMEOFDAY && HAVE_TIMEVAL && !VMS */ - + /* * This function will go away as soon as all the stubs fixed. (fnf) */ @@ -3831,7 +3831,7 @@ vmserrstr (status) #ifdef access #undef access - + /* The following is necessary because 'access' emulation by VMS C (2.0) does * not work correctly. (It also doesn't work well in version 2.3.) */ @@ -3872,7 +3872,7 @@ sys_access (path, mode) * access can treat the directory like a file. */ if (directory_file_name (path, dir_fn)) path = dir_fn; - + if (mode == F_OK) return access (path, mode); if (user == NULL && (user = (char *) getenv ("USER")) == NULL) @@ -3886,7 +3886,7 @@ sys_access (path, mode) static int constant = ACL$C_FILE; DESCRIPTOR (path_desc, path); DESCRIPTOR (user_desc, user); - + flags = 0; acces = 0; if ((mode & X_OK) && ((stat = access (path, mode)) < 0 || mode == X_OK)) @@ -3951,7 +3951,7 @@ sys_access (filename, type) return access (filename, type); /* Check write protection. */ - + #define CHECKPRIV(bit) (prvmask.bit) #define WRITABLE(field) (! ((xab.xab$w_pro >> field) & XAB$M_NOWRITE)) @@ -4013,7 +4013,7 @@ sys_access (filename, type) } #endif /* not VMS4_4 */ #endif /* access */ - + static char vtbuf[NAM$C_MAXRSS+1]; /* translate a vms file spec to a unix path */ @@ -4054,7 +4054,7 @@ sys_translate_vms (vfile) *targ++ = '.'; *targ++ = '.'; break; - + default: *targ++ = *vfile; break; @@ -4147,7 +4147,7 @@ sys_translate_unix (ufile) ufile++; } *targ = '\0'; - + return utbuf; } @@ -4169,7 +4169,7 @@ getwd (pathname) } strcpy (pathname, ptr); xfree (ptr); - + return pathname; } @@ -4506,7 +4506,7 @@ sys_fwrite (ptr, size, num, fp) * when this is not the desired behavior, for instance, when writing an * auto save file (you only want one version), or when you don't have * write permission in the directory containing the file (but the file - * itself is writable). Hence this routine, which is equivalent to + * itself is writable). Hence this routine, which is equivalent to * "close (creat (fn, 0));" on Unix if fn already exists. */ int @@ -4563,7 +4563,7 @@ get_uaf_name (uname) register status; struct FAB uaf_fab; struct RAB uaf_rab; - + uaf_fab = cc$rms_fab; uaf_rab = cc$rms_rab; /* initialize fab fields */ @@ -4627,7 +4627,7 @@ get_uaf_uic (uic) register status; struct FAB uaf_fab; struct RAB uaf_rab; - + uaf_fab = cc$rms_fab; uaf_rab = cc$rms_rab; /* initialize fab fields */ @@ -4920,7 +4920,7 @@ rename (from, to) bits). To maintain portability, the VMS implementation of `chmod' wires the W and D bits together. */ - + static struct fibdef fib; /* We need this initialized to zero */ char vms_file_written[NAM$C_MAXRSS]; @@ -5088,7 +5088,7 @@ hft_init () /* If we're not on an HFT we shouldn't do any of this. We determine if we are on an HFT by trying to get an HFT error code. If this - call fails, we're not on an HFT. */ + call fails, we're not on an HFT. */ #ifdef IBMR2AIX if (ioctl (0, HFQERROR, &junk) < 0) return; diff --git a/src/syssignal.h b/src/syssignal.h index 2ea83b68b90..2a579f3ba45 100644 --- a/src/syssignal.h +++ b/src/syssignal.h @@ -96,7 +96,7 @@ extern SIGMASKTYPE sigprocmask_set; #ifdef USG #ifndef sigunblock -#define sigunblock(sig) +#define sigunblock(sig) #endif #else diff --git a/src/systime.h b/src/systime.h index 12c66b48605..d05b5a7de9a 100644 --- a/src/systime.h +++ b/src/systime.h @@ -81,7 +81,7 @@ extern time_t timezone; result in DEST. SRC should not be negative. EMACS_SUB_TIME (DEST, SRC1, SRC2) subtracts SRC2 from SRC1 and - stores the result in DEST. SRC should not be negative. + stores the result in DEST. SRC should not be negative. EMACS_TIME_NEG_P (TIME) is true iff TIME is negative. */ diff --git a/src/systty.h b/src/systty.h index fdd1f70f4c1..39ae61be1c9 100644 --- a/src/systty.h +++ b/src/systty.h @@ -112,7 +112,7 @@ static struct sensemode { #ifdef NEED_BSDTTY #include <sys/bsdtty.h> -#endif +#endif #if defined (HPUX) && defined (HAVE_PTYS) #include <sys/ptyio.h> diff --git a/src/syswait.h b/src/syswait.h index f317227b7ab..9b0a6899f87 100644 --- a/src/syswait.h +++ b/src/syswait.h @@ -90,7 +90,7 @@ Boston, MA 02111-1307, USA. */ #define WCOREDUMP(w) ((w&0200) != 0) #endif -#else +#else #ifdef BSD4_1 #include <wait.h> diff --git a/src/term.c b/src/term.c index 3add820421e..9fe490786ea 100644 --- a/src/term.c +++ b/src/term.c @@ -76,7 +76,7 @@ static void tty_hide_cursor P_ ((void)); tputs (a, (int) (FRAME_HEIGHT (XFRAME (selected_frame)) \ - curY), cmputc); \ } while (0) - + #define OUTPUT1_IF(a) do { if (a) tputs (a, 1, cmputc); } while (0) /* Function to use to ring the bell. */ @@ -203,7 +203,7 @@ void (*set_vertical_scroll_bar_hook) /* Arrange for all scroll bars on FRAME to be removed at the next call to `*judge_scroll_bars_hook'. A scroll bar may be spared if - `*redeem_scroll_bar_hook' is applied to its window before the judgment. + `*redeem_scroll_bar_hook' is applied to its window before the judgment. This should be applied to each frame each time its window tree is redisplayed, even if it is not displaying scroll bars at the moment; @@ -222,7 +222,7 @@ void (*condemn_scroll_bars_hook) P_ ((FRAME_PTR frame)); void (*redeem_scroll_bar_hook) P_ ((struct window *window)); /* Remove all scroll bars on FRAME that haven't been saved since the - last call to `*condemn_scroll_bars_hook'. + last call to `*condemn_scroll_bars_hook'. This should be applied to each frame after each time its window tree is redisplayed, even if it is not displaying scroll bars at the @@ -431,7 +431,7 @@ ring_bell () We don't specbind it, because that would carefully restore the bad value if there's an error and make the loop of errors happen anyway. */ - + function = Vring_bell_function; Vring_bell_function = Qnil; @@ -499,7 +499,7 @@ update_end (f) } else update_end_hook (f); - + updating_frame = NULL; } @@ -523,7 +523,7 @@ set_scroll_region (start, stop) { char *buf; struct frame *sf = XFRAME (selected_frame); - + if (TS_set_scroll_region) buf = tparam (TS_set_scroll_region, 0, 0, start, stop - 1); else if (TS_set_scroll_region_1) @@ -533,7 +533,7 @@ set_scroll_region (start, stop) FRAME_HEIGHT (sf)); else buf = tparam (TS_set_window, 0, 0, start, 0, stop, FRAME_WIDTH (sf)); - + OUTPUT (buf); xfree (buf); losecursor (); @@ -644,7 +644,7 @@ cursor_to (vpos, hpos) int vpos, hpos; { struct frame *f = updating_frame ? updating_frame : XFRAME (selected_frame); - + if (! FRAME_TERMCAP_P (f) && cursor_to_hook) { (*cursor_to_hook) (vpos, hpos); @@ -720,7 +720,7 @@ void clear_frame () { struct frame *sf = XFRAME (selected_frame); - + if (clear_frame_hook && ! FRAME_TERMCAP_P ((updating_frame ? updating_frame : sf))) { @@ -872,7 +872,7 @@ encode_terminal_code (src, dst, src_len, dst_len, consumed) coding->src_multibyte = STRING_MULTIBYTE (tbase[g]); } } - + result = encode_coding (coding, buf, dst, len, dst_end - dst); len -= coding->consumed; dst += coding->produced; @@ -895,7 +895,7 @@ encode_terminal_code (src, dst, src_len, dst_len, consumed) } src++; } - + *consumed = src - src_start; return (dst - dst_start); } @@ -933,17 +933,17 @@ write_glyphs (string, len) return; cmplus (len); - + /* The mode bit CODING_MODE_LAST_BLOCK should be set to 1 only at the tail. */ terminal_coding.mode &= ~CODING_MODE_LAST_BLOCK; - + while (len > 0) { /* Identify a run of glyphs with the same face. */ int face_id = string->face_id; int n; - + for (n = 1; n < len; ++n) if (string[n].face_id != face_id) break; @@ -977,7 +977,7 @@ write_glyphs (string, len) turn_off_face (f, face_id); turn_off_highlight (); } - + /* We may have to output some codes to terminate the writing. */ if (CODING_REQUIRE_FLUSHING (&terminal_coding)) { @@ -994,12 +994,12 @@ write_glyphs (string, len) termscript); } } - + cmcheckmagic (); } /* If start is zero, insert blanks instead of a string at start */ - + void insert_glyphs (start, len) register struct glyph *start; @@ -1087,7 +1087,7 @@ insert_glyphs (start, len) turn_off_highlight (); } } - + cmcheckmagic (); } @@ -1148,7 +1148,7 @@ ins_del_lines (vpos, n) } sf = XFRAME (selected_frame); - + /* If the lines below the insertion are being pushed into the end of the window, this is the same as clearing; and we know the lines are already clear, since the matching @@ -1462,7 +1462,7 @@ static char **term_get_fkeys_arg; static Lisp_Object term_get_fkeys_1 (); /* Find the escape codes sent by the function keys for Vfunction_key_map. - This function scans the termcap function key sequence entries, and + This function scans the termcap function key sequence entries, and adds entries to Vfunction_key_map for each function key it finds. */ void @@ -1567,7 +1567,7 @@ term_get_fkeys_1 () Fmake_vector (make_number (1), \ intern (sym))); \ } - + /* if there's no key_next keycap, map key_npage to `next' keysym */ CONDITIONAL_REASSIGN ("%5", "kN", "next"); /* if there's no key_prev keycap, map key_ppage to `previous' keysym */ @@ -1607,7 +1607,7 @@ static void append_glyph P_ ((struct it *)); for which to produce glyphs; IT->face_id contains the character's face. Padding glyphs are appended if IT->c has a IT->pixel_width > 1. */ - + static void append_glyph (it) struct it *it; @@ -1620,8 +1620,8 @@ append_glyph (it) + it->glyph_row->used[it->area]); end = it->glyph_row->glyphs[1 + it->area]; - for (i = 0; - i < it->pixel_width && glyph < end; + for (i = 0; + i < it->pixel_width && glyph < end; ++i) { glyph->type = CHAR_GLYPH; @@ -1631,7 +1631,7 @@ append_glyph (it) glyph->padding_p = i > 0; glyph->charpos = CHARPOS (it->position); glyph->object = it->object; - + ++it->glyph_row->used[it->area]; ++glyph; } @@ -1656,7 +1656,7 @@ append_glyph (it) Callers usually don't call produce_glyphs directly; instead they use the macro PRODUCE_GLYPHS. */ -void +void produce_glyphs (it) struct it *it; { @@ -1665,7 +1665,7 @@ produce_glyphs (it) || it->what == IT_COMPOSITION || it->what == IT_IMAGE || it->what == IT_STRETCH); - + /* Nothing but characters are supported on terminal frames. For a composition sequence, it->c is the first character of the sequence. */ @@ -1684,8 +1684,8 @@ produce_glyphs (it) { int absolute_x = (it->current_x + it->continuation_lines_width); - int next_tab_x - = (((1 + absolute_x + it->tab_width - 1) + int next_tab_x + = (((1 + absolute_x + it->tab_width - 1) / it->tab_width) * it->tab_width); int nspaces; @@ -1696,17 +1696,17 @@ produce_glyphs (it) continued line. So, we will get the right number of spaces here. */ nspaces = next_tab_x - absolute_x; - + if (it->glyph_row) { int n = nspaces; - + it->c = ' '; it->pixel_width = it->len = 1; - + while (n--) append_glyph (it); - + it->c = '\t'; } @@ -1734,12 +1734,12 @@ produce_glyphs (it) it->pixel_width = CHARSET_WIDTH (charset); it->nglyphs = it->pixel_width; - + if (it->glyph_row) append_glyph (it); } - /* Advance current_x by the pixel width as a convenience for + /* Advance current_x by the pixel width as a convenience for the caller. */ if (it->area == TEXT_AREA) it->current_x += it->pixel_width; @@ -1760,7 +1760,7 @@ produce_special_glyphs (it, what) enum display_element_type what; { struct it temp_it; - + temp_it = *it; temp_it.dp = NULL; temp_it.what = IT_CHARACTER; @@ -1780,7 +1780,7 @@ produce_special_glyphs (it, what) } else temp_it.c = '\\'; - + produce_glyphs (&temp_it); it->pixel_width = temp_it.pixel_width; it->nglyphs = temp_it.pixel_width; @@ -1797,7 +1797,7 @@ produce_special_glyphs (it, what) } else temp_it.c = '$'; - + produce_glyphs (&temp_it); it->pixel_width = temp_it.pixel_width; it->nglyphs = temp_it.pixel_width; @@ -1918,7 +1918,7 @@ turn_on_face (f, face_id) if (TN_max_colors > 0) { char *p; - + if (fg >= 0 && TS_set_foreground) { p = tparam (TS_set_foreground, NULL, 0, (int) fg); @@ -1934,7 +1934,7 @@ turn_on_face (f, face_id) } } } - + /* Turn off appearances of face FACE_ID on tty frame F. */ @@ -1986,8 +1986,8 @@ turn_off_face (f, face_id) && face->background != FACE_TTY_DEFAULT_BG_COLOR))) OUTPUT1_IF (TS_orig_pair); } - - + + /* Return non-zero if the terminal on frame F supports all of the capabilities in CAPS simultaneously, with foreground and background colors FG and BG. */ @@ -2316,7 +2316,7 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.", TS_cursor_visible = tgetstr ("vs", address); TS_cursor_invisible = tgetstr ("vi", address); TS_set_window = tgetstr ("wi", address); - + TS_enter_underline_mode = tgetstr ("us", address); TS_exit_underline_mode = tgetstr ("ue", address); TS_enter_bold_mode = tgetstr ("md", address); @@ -2326,7 +2326,7 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.", TS_enter_alt_charset_mode = tgetstr ("as", address); TS_exit_alt_charset_mode = tgetstr ("ae", address); TS_exit_attribute_mode = tgetstr ("me", address); - + MultiUp = tgetstr ("UP", address); MultiDown = tgetstr ("DO", address); MultiLeft = tgetstr ("LE", address); @@ -2346,10 +2346,10 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.", TS_set_foreground = tgetstr ("Sf", address); TS_set_background = tgetstr ("Sb", address); } - + TN_max_colors = tgetnum ("Co"); TN_max_pairs = tgetnum ("pa"); - + TN_no_color_video = tgetnum ("NC"); if (TN_no_color_video == -1) TN_no_color_video = 0; @@ -2387,7 +2387,7 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.", SET_FRAME_WIDTH (sf, FRAME_WIDTH (sf)); if (FRAME_HEIGHT (sf) <= 0) FRAME_HEIGHT (sf) = tgetnum ("li"); - + if (FRAME_HEIGHT (sf) < 3 || FRAME_WIDTH (sf) < 3) fatal ("Screen size %dx%d is too small", FRAME_HEIGHT (sf), FRAME_WIDTH (sf)); @@ -2414,7 +2414,7 @@ to do `unset TERMCAP' (C-shell: `unsetenv TERMCAP') as well.", if (TabWidth < 0) TabWidth = 8; - + /* Turned off since /etc/termcap seems to have :ta= for most terminals and newer termcap doc does not seem to say there is a default. if (!Wcm.cm_tab) diff --git a/src/termhooks.h b/src/termhooks.h index 443e4c69331..5a5dc7cdaf7 100644 --- a/src/termhooks.h +++ b/src/termhooks.h @@ -162,7 +162,7 @@ extern void (*set_vertical_scroll_bar_hook) /* Arrange for all scroll bars on FRAME to be removed at the next call to `*judge_scroll_bars_hook'. A scroll bar may be spared if - `*redeem_scroll_bar_hook' is applied to its window before the judgement. + `*redeem_scroll_bar_hook' is applied to its window before the judgement. This should be applied to each frame each time its window tree is redisplayed, even if it is not displaying scroll bars at the moment; @@ -179,7 +179,7 @@ extern void (*condemn_scroll_bars_hook) P_ ((struct frame *frame)); extern void (*redeem_scroll_bar_hook) P_ ((struct window *window)); /* Remove all scroll bars on FRAME that haven't been saved since the - last call to `*condemn_scroll_bars_hook'. + last call to `*condemn_scroll_bars_hook'. This should be applied to each frame after each time its window tree is redisplayed, even if it is not displaying scroll bars at the @@ -241,8 +241,8 @@ enum event_kind .timestamp gives a timestamp (in milliseconds) for the click. */ #if defined(WINDOWSNT) || defined(MAC_OSX) - MOUSE_WHEEL_EVENT, /* A mouse-wheel event is generated - on WINDOWSNT or MAC_OSX by a + MOUSE_WHEEL_EVENT, /* A mouse-wheel event is generated + on WINDOWSNT or MAC_OSX by a wheel on a mouse (e.g., MS Intellimouse). The event contains a delta that corresponds to the amount and direction that the wheel @@ -298,7 +298,7 @@ enum event_kind files selected outside of Emacs are dropped onto an Emacs window. Currently used only on Windows NT. - .modifiers holds the state of the + .modifiers holds the state of the modifier keys. .x and .y give the mouse position, in characters, within the window. @@ -346,7 +346,7 @@ struct input_event { /* What kind of event was this? */ enum event_kind kind; - + /* For an ASCII_KEYSTROKE_EVENT and MULTIBYTE_CHAR_KEYSTROKE_EVENT, this is the character. For a NON_ASCII_KEYSTROKE_EVENT, this is the keysym code. @@ -386,7 +386,7 @@ extern void (*frame_up_to_date_hook) P_ ((struct frame *)); /* Bits in the modifiers member of the input_event structure. Note that reorder_modifiers assumes that the bits are in canonical - order. + order. The modifiers applied to mouse clicks are rather ornate. The window-system-specific code should store mouse clicks with diff --git a/src/tparam.c b/src/tparam.c index 844e5f6f175..fb71e05b3e4 100644 --- a/src/tparam.c +++ b/src/tparam.c @@ -169,7 +169,7 @@ tparam1 (string, outstring, len, up, left, argp) outlen *= 2; new = (char *) xrealloc (outstring, outlen); } - + op = new + offset; outend = new + outlen; outstring = new; diff --git a/src/undo.c b/src/undo.c index f378ce8aae7..fa802fe205a 100644 --- a/src/undo.c +++ b/src/undo.c @@ -81,7 +81,7 @@ record_point (pt) if (MODIFF <= SAVE_MODIFF) record_first_change (); - /* If we are just after an undo boundary, and + /* If we are just after an undo boundary, and point wasn't at start of deleted range, record where it was. */ if (at_boundary && last_point_position != pt @@ -175,7 +175,7 @@ record_marker_adjustment (marker, adjustment) if (NILP (pending_boundary)) pending_boundary = Fcons (Qnil, Qnil); - if (!BUFFERP (last_undo_buffer) + if (!BUFFERP (last_undo_buffer) || current_buffer != XBUFFER (last_undo_buffer)) Fundo_boundary (); XSETBUFFER (last_undo_buffer, current_buffer); @@ -312,7 +312,7 @@ truncate_undo_list (list, minsize, maxsize) If the first element is an undo boundary, skip past it. Skip, skip, skip the undo, skip, skip, skip the undo, - Skip, skip, skip the undo, skip to the undo bound'ry. + Skip, skip, skip the undo, skip to the undo bound'ry. (Get it? "Skip to my Loo?") */ if (CONSP (next) && NILP (XCAR (next))) { @@ -402,7 +402,7 @@ Return what remains of the list. */) Lisp_Object next; int count = SPECPDL_INDEX (); register int arg; - + #if 0 /* This is a good feature, but would make undo-start unable to do what is expected. */ Lisp_Object tem; diff --git a/src/unexaix.c b/src/unexaix.c index 17df5b5174b..3c629346bc0 100644 --- a/src/unexaix.c +++ b/src/unexaix.c @@ -175,7 +175,7 @@ int unexec (char *new_name, char *a_name, || unrelocate_symbols (new, a_out, a_name, new_name) < 0) { close (new); - return -1; + return -1; } close (new); @@ -358,7 +358,7 @@ make_hdr (int new, int a_out, s->s_scnptr += bias; ptr = s->s_scnptr; } - + ptr = ptr + s->s_size; } } @@ -413,7 +413,7 @@ make_hdr (int new, int a_out, } /* **************************************************************** - + * * Copy the text and data segments from memory to the new a.out */ @@ -589,7 +589,7 @@ unrelocate_symbols (int new, int a_out, char *a_name, char *new_name) #ifndef ALIGN_DATA_RELOC ulong d_reloc = (ulong) &_data - f_ohdr.data_start; #else - /* This worked (and was needed) before AIX 4.2. + /* This worked (and was needed) before AIX 4.2. I have no idea why. -- Mike */ ulong d_reloc = (ulong) &_data - ALIGN(f_ohdr.data_start, 2); #endif diff --git a/src/unexalpha.c b/src/unexalpha.c index e4eed3922bd..5eada5e0d0f 100644 --- a/src/unexalpha.c +++ b/src/unexalpha.c @@ -486,9 +486,9 @@ update_dynamic_symbols (old, new_name, new, aout) fprintf (stderr, "...relocated\n"); #endif - if (rd_base[i].type == R_REFLONG) + if (rd_base[i].type == R_REFLONG) len = 4; - else if (rd_base[i].type == R_REFQUAD) + else if (rd_base[i].type == R_REFQUAD) len = 8; else fatal_unexec ("unrecognized relocation type in .dyn.rel section (symbol #%d)", (char *) i); diff --git a/src/unexconvex.c b/src/unexconvex.c index 3197e21a6ef..a040add1224 100644 --- a/src/unexconvex.c +++ b/src/unexconvex.c @@ -137,7 +137,7 @@ before writing it (above and beyond the number of bytes of actual program text). HDR's standard fields are already correct, except that this adjustment to the `a_text' field has not yet been made; thus, the amount of offset can depend on the data in the file. - + * A_TEXT_SEEK(HDR) If defined, this macro specifies the number of bytes to seek into the @@ -244,7 +244,7 @@ unsigned data_start, bss_start, entry_address; || copy_text_and_data (new) < 0 || copy_sym (new, a_out, a_name, new_name) < 0 ) { close (new); - return -1; + return -1; } close (new); diff --git a/src/unexec.c b/src/unexec.c index 82427568595..e6bcb635faa 100644 --- a/src/unexec.c +++ b/src/unexec.c @@ -134,7 +134,7 @@ before writing it (above and beyond the number of bytes of actual program text). HDR's standard fields are already correct, except that this adjustment to the `a_text' field has not yet been made; thus, the amount of offset can depend on the data in the file. - + * A_TEXT_SEEK(HDR) If defined, this macro specifies the number of bytes to seek into the @@ -399,7 +399,7 @@ unexec (new_name, a_name, data_start, bss_start, entry_address) { close (new); /* unlink (new_name); /* Failed, unlink new a.out */ - return -1; + return -1; } close (new); @@ -992,7 +992,7 @@ copy_text_and_data (new, a_out) char c; int mcount_address, mcount_offset, count; extern char *_execname; - + /* The use of _execname is incompatible with RISCiX 1.1 */ sprintf (command, "nm %s | fgrep mcount", _execname); @@ -1012,7 +1012,7 @@ copy_text_and_data (new, a_out) { sprintf (errbuf, "Failed to execute the command '%s'\n", command); PERROR (errbuf); - } + } sscanf(address_text, "%x", &mcount_address); ptr = (char *) unexec_text_start; diff --git a/src/unexenix.c b/src/unexenix.c index 10413bd65a0..2121c26839f 100644 --- a/src/unexenix.c +++ b/src/unexenix.c @@ -187,7 +187,7 @@ unexec (new_name, a_name, data_start, bss_start, entry_address) WRITE (outfd, data_org, datalen, "write error on %s", new_name); - for (i = 2, segpos += (2 * sizeof (struct xseg)); + for (i = 2, segpos += (2 * sizeof (struct xseg)); i < nsegs; i++, segpos += sizeof (struct xseg)) { diff --git a/src/unexhp9k800.c b/src/unexhp9k800.c index 686a1ed1ebb..0948ccf9a18 100644 --- a/src/unexhp9k800.c +++ b/src/unexhp9k800.c @@ -13,25 +13,25 @@ area with the current data area. When the new file is executed, the process will see the same data structures and data values that the original process had when unexec was called. - + Unlike other versions of unexec, this one copies symbol table and debug information to the new a.out file. Thus, the new a.out file may be debugged with symbolic debuggers. - + If you fix any bugs in this, I'd like to incorporate your fixes. Send them to uunet!hpda!hpsemc!jmorris or jmorris%hpsemc@hplabs.HP.COM. - + CAVEATS: This routine saves the current value of all static and external variables. This means that any data structure that needs to be initialized must be explicitly reset. Variables will not have their expected default values. - + Unfortunately, the HP-UX signal handler has internal initialization flags which are not explicitly reset. Thus, for signals to work in conjunction with this routine, the following code must executed when the new process starts up. - + void _sigreturn (); ... sigsetreturn (_sigreturn); @@ -54,7 +54,7 @@ /* brk value to restore, stored as a global. This is really used only if we used shared libraries. */ static long brk_on_dump = 0; - + /* Called from main, if we use shared libraries. */ int run_time_remap (ignored) @@ -81,14 +81,14 @@ unexec (new_name, old_name, new_end_of_text, dummy1, dummy2) struct header hdr; struct som_exec_auxhdr auxhdr; long i; - + /* For the greatest flexibility, should create a temporary file in the same directory as the new file. When everything is complete, rename the temp file to the new name. This way, a program could update its own a.out file even while it is still executing. If problems occur, everything is still intact. NOT implemented. */ - + /* Open the input and output a.out files */ old = open (old_name, O_RDONLY); if (old < 0) @@ -96,36 +96,36 @@ unexec (new_name, old_name, new_end_of_text, dummy1, dummy2) new = open (new_name, O_CREAT|O_RDWR|O_TRUNC, 0777); if (new < 0) { perror (new_name); exit (1); } - + /* Read the old headers */ read_header (old, &hdr, &auxhdr); brk_on_dump = (long) sbrk (0); - + /* Decide how large the new and old data areas are */ old_size = auxhdr.exec_dsize; /* I suspect these two statements are separate to avoid a compiler bug in hpux version 8. */ i = (long) sbrk (0); new_size = i - auxhdr.exec_dmem; - + /* Copy the old file to the new, up to the data space */ lseek (old, 0, 0); copy_file (old, new, auxhdr.exec_dfile); - + /* Skip the old data segment and write a new one */ lseek (old, old_size, 1); save_data_space (new, &hdr, &auxhdr, new_size); - + /* Copy the rest of the file */ copy_rest (old, new); - + /* Update file pointers since we probably changed size of data area */ update_file_ptrs (new, &hdr, &auxhdr, auxhdr.exec_dfile, new_size-old_size); - + /* Save the modified header */ write_header (new, &hdr, &auxhdr); - + /* Close the binary file */ close (old); close (new); @@ -143,7 +143,7 @@ save_data_space (file, hdr, auxhdr, size) /* Write the entire data space out to the file */ if (write (file, auxhdr->exec_dmem, size) != size) { perror ("Can't save new data space"); exit (1); } - + /* Update the header to reflect the new data size */ auxhdr->exec_dsize = size; auxhdr->exec_bsize = 0; @@ -160,10 +160,10 @@ update_file_ptrs (file, hdr, auxhdr, location, offset) { struct subspace_dictionary_record subspace; int i; - + /* Increase the overall size of the module */ hdr->som_length += offset; - + /* Update the various file pointers in the header */ #define update(ptr) if (ptr > location) ptr = ptr + offset update (hdr->aux_header_location); @@ -176,16 +176,16 @@ update_file_ptrs (file, hdr, auxhdr, location, offset) update (hdr->unloadable_sp_location); update (auxhdr->exec_tfile); update (auxhdr->exec_dfile); - + /* Do for each subspace dictionary entry */ lseek (file, hdr->subspace_location, 0); for (i = 0; i < hdr->subspace_total; i++) { if (read (file, &subspace, sizeof (subspace)) != sizeof (subspace)) { perror ("Can't read subspace record"); exit (1); } - + /* If subspace has a file location, update it */ - if (subspace.initialization_length > 0 + if (subspace.initialization_length > 0 && subspace.file_loc_init_value > location) { subspace.file_loc_init_value += offset; @@ -193,8 +193,8 @@ update_file_ptrs (file, hdr, auxhdr, location, offset) if (write (file, &subspace, sizeof (subspace)) != sizeof (subspace)) { perror ("Can't update subspace record"); exit (1); } } - } - + } + /* Do for each initialization pointer record */ /* (I don't think it applies to executable files, only relocatables) */ #undef update @@ -207,25 +207,25 @@ read_header (file, hdr, auxhdr) struct header *hdr; struct som_exec_auxhdr *auxhdr; { - + /* Read the header in */ lseek (file, 0, 0); if (read (file, hdr, sizeof (*hdr)) != sizeof (*hdr)) { perror ("Couldn't read header from a.out file"); exit (1); } - + if (hdr->a_magic != EXEC_MAGIC && hdr->a_magic != SHARE_MAGIC && hdr->a_magic != DEMAND_MAGIC) { - fprintf (stderr, "a.out file doesn't have legal magic number\n"); - exit (1); + fprintf (stderr, "a.out file doesn't have legal magic number\n"); + exit (1); } - + lseek (file, hdr->aux_header_location, 0); if (read (file, auxhdr, sizeof (*auxhdr)) != sizeof (*auxhdr)) { perror ("Couldn't read auxiliary header from a.out file"); exit (1); - } + } } /* Write out the header records into an a.out file. */ @@ -237,7 +237,7 @@ write_header (file, hdr, auxhdr) { /* Update the checksum */ hdr->checksum = calculate_checksum (hdr); - + /* Write the header back into the a.out file */ lseek (file, 0, 0); if (write (file, hdr, sizeof (*hdr)) != sizeof (*hdr)) @@ -253,12 +253,12 @@ calculate_checksum (hdr) struct header *hdr; { int checksum, i, *ptr; - + checksum = 0; ptr = (int *) hdr; - + for (i = 0; i < sizeof (*hdr) / sizeof (int) - 1; i++) checksum ^= ptr[i]; - + return (checksum); } @@ -270,7 +270,7 @@ copy_file (old, new, size) { int len; int buffer[8192]; /* word aligned will be faster */ - + for (; size > 0; size -= len) { len = min (size, sizeof (buffer)); @@ -288,11 +288,11 @@ copy_rest (old, new) { int buffer[4096]; int len; - + /* Copy bytes until end of file or error */ while ((len = read (old, buffer, sizeof (buffer))) > 0) if (write (new, buffer, len) != len) break; - + if (len != 0) { perror ("Unable to copy the rest of the file"); exit (1); } } @@ -304,7 +304,7 @@ display_header (hdr, auxhdr) { /* Display the header information (debug) */ printf ("\n\nFILE HEADER\n"); - printf ("magic number %d \n", hdr->a_magic); + printf ("magic number %d \n", hdr->a_magic); printf ("text loc %.8x size %d \n", auxhdr->exec_tmem, auxhdr->exec_tsize); printf ("data loc %.8x size %d \n", auxhdr->exec_dmem, auxhdr->exec_dsize); printf ("entry %x \n", auxhdr->exec_entry); diff --git a/src/unexmacosx.c b/src/unexmacosx.c index 03aafd2912a..4f1c29b1ef8 100644 --- a/src/unexmacosx.c +++ b/src/unexmacosx.c @@ -276,7 +276,7 @@ print_regions () if (object_name != MACH_PORT_NULL) mach_port_deallocate (target_task, object_name); - + address += size; } } @@ -329,15 +329,15 @@ build_region_list () else { r = (struct region_t *) malloc (sizeof (struct region_t)); - + if (!r) unexec_error ("cannot allocate region structure"); - + r->address = address; r->size = size; r->protection = info.protection; r->max_protection = info.max_protection; - + r->next = 0; if (region_list_head == 0) { @@ -349,13 +349,13 @@ build_region_list () region_list_tail->next = r; region_list_tail = r; } - + /* Deallocate (unused) object name returned by vm_region. */ if (object_name != MACH_PORT_NULL) mach_port_deallocate (target_task, object_name); } - + address += size; } @@ -498,7 +498,7 @@ read_load_commands () nlc = mh.ncmds; lca = (struct load_command **) malloc (nlc * sizeof (struct load_command *)); - + for (i = 0; i < nlc; i++) { struct load_command lc; @@ -513,7 +513,7 @@ read_load_commands () if (lc.cmd == LC_SEGMENT) { struct segment_command *scp = (struct segment_command *) lca[i]; - + if (scp->vmaddr + scp->vmsize > infile_lc_highest_addr) infile_lc_highest_addr = scp->vmaddr + scp->vmsize; @@ -647,7 +647,7 @@ copy_data_segment (struct load_command *lc) } else unexec_error ("unrecognized section name in __DATA segment"); - + printf (" section %-16.16s at %#8x - %#8x (sz: %#8x)\n", sectp->sectname, sectp->offset, sectp->offset + sectp->size, sectp->size); @@ -675,7 +675,7 @@ copy_data_segment (struct load_command *lc) for (j = 0; j < num_unexec_regions; j++) { struct segment_command sc; - + sc.cmd = LC_SEGMENT; sc.cmdsize = sizeof (struct segment_command); strncpy (sc.segname, SEG_DATA, 16); @@ -687,7 +687,7 @@ copy_data_segment (struct load_command *lc) sc.initprot = VM_PROT_READ | VM_PROT_WRITE; sc.nsects = 0; sc.flags = 0; - + printf ("Writing segment %-16.16s at %#8x - %#8x (sz: %#8x)\n", sc.segname, sc.fileoff, sc.fileoff + sc.filesize, sc.filesize); @@ -696,7 +696,7 @@ copy_data_segment (struct load_command *lc) unexec_error ("cannot write new __DATA segment"); delta += sc.filesize; file_offset += sc.filesize; - + if (!unexec_write (curr_header_offset, &sc, sc.cmdsize)) unexec_error ("cannot write new __DATA segment's header"); curr_header_offset += sc.cmdsize; @@ -850,7 +850,7 @@ unexec (char *outfile, char *infile, void *start_data, void *start_bss, { unexec_error ("cannot open input file `%s'", infile); } - + outfd = open (outfile, O_WRONLY | O_TRUNC | O_CREAT, 0755); if (outfd < 0) { diff --git a/src/unexnext.c b/src/unexnext.c index f17dd8e9ee7..649d0e0226f 100644 --- a/src/unexnext.c +++ b/src/unexnext.c @@ -44,7 +44,7 @@ int malloc_cookie; * pages it vm_allocated and write only those out into the data segment. * * This kludge may break when we stop using fixed virtual address - * shared libraries. Actually, emacs will probably continue working, but be + * shared libraries. Actually, emacs will probably continue working, but be * much larger on disk than it needs to be (because non-malloced data will * be in the file). */ @@ -73,7 +73,7 @@ grow( *the_commands = malloc(sizeof(*the_commands)); } else { (*the_commands_len)++; - *the_commands = realloc(*the_commands, + *the_commands = realloc(*the_commands, (*the_commands_len * sizeof(**the_commands))); } @@ -125,7 +125,7 @@ read_macho( return (0); } for (i = 0; i < the_header->ncmds; i++) { - if (read(fd, &command, sizeof(struct load_command)) != + if (read(fd, &command, sizeof(struct load_command)) != sizeof(struct load_command)) { fatal_unexec("cannot read macho load command header"); return (0); @@ -138,8 +138,8 @@ read_macho( buf = malloc(command.cmdsize); buf->cmd = command.cmd; buf->cmdsize = command.cmdsize; - if (read(fd, ((char *)buf + - sizeof(struct load_command)), + if (read(fd, ((char *)buf + + sizeof(struct load_command)), size) != size) { fatal_unexec("cannot read load command data"); return (0); @@ -184,31 +184,31 @@ get_data_region( region.address = 0; *address = 0; for (;;) { - ret = vm_region(task_self(), - ®ion.address, - ®ion.size, - ®ion.protection, - ®ion.max_protection, + ret = vm_region(task_self(), + ®ion.address, + ®ion.size, + ®ion.protection, + ®ion.max_protection, ®ion.inheritance, - ®ion.shared, - ®ion.object_name, + ®ion.shared, + ®ion.object_name, ®ion.offset); if (ret != KERN_SUCCESS || region.address >= VM_HIGHDATA) { break; } if (*address != 0) { if (region.address > *address + *size) { - if (!filldatagap(*address, size, + if (!filldatagap(*address, size, region.address)) { return (0); } - } + } *size += region.size; } else { if (region.address == sect->addr) { *address = region.address; *size = region.size; - } + } } region.address += region.size; } @@ -293,7 +293,7 @@ unexec_doit( if (strcmp(segment->segname, SEG_DATA) == 0) { fdatastart = segment->fileoff; fdatasize = segment->filesize; - fgrowth = (data_size - + fgrowth = (data_size - segment->filesize); segment->vmsize = data_size; segment->filesize = data_size; @@ -332,37 +332,37 @@ unexec_doit( break; } } - + /* * Write header */ - if (write(outfd, &the_header, + if (write(outfd, &the_header, sizeof(the_header)) != sizeof(the_header)) { fatal_unexec("cannot write output file"); return (0); } - + /* * Write commands */ for (i = 0; i < the_commands_len; i++) { - if (write(outfd, the_commands[i], - the_commands[i]->cmdsize) != + if (write(outfd, the_commands[i], + the_commands[i]->cmdsize) != the_commands[i]->cmdsize) { fatal_unexec("cannot write output file"); return (0); } } - + /* * Write original text */ - if (lseek(infd, the_header.sizeofcmds + sizeof(the_header), + if (lseek(infd, the_header.sizeofcmds + sizeof(the_header), L_SET) < 0) { fatal_unexec("cannot seek input file"); return (0); } - size = fdatastart - (sizeof(the_header) + + size = fdatastart - (sizeof(the_header) + the_header.sizeofcmds); buf = my_malloc(size); if (read(infd, buf, size) != size) { @@ -375,17 +375,17 @@ unexec_doit( return (0); } my_free(buf, size); - - + + /* * Write new data */ - if (write(outfd, (char *)data_address, + if (write(outfd, (char *)data_address, data_size) != data_size) { fatal_unexec("cannot write output file"); return (0); } - + } /* @@ -424,7 +424,7 @@ unexec_doit( fatal_unexec("cannot seek input file"); return (0); } - + for (i = 0; i < nextrel; i++) { long zeroval = 0; @@ -482,7 +482,7 @@ unexec( fatal_unexec("cannot open input file `%s'", infile); exit(1); } - + tmpnam(tmpbuf); tmpfile = rindex(tmpbuf, '/'); if (tmpfile == NULL) { diff --git a/src/unexsni.c b/src/unexsni.c index c819b0b7938..c9abec07e17 100644 --- a/src/unexsni.c +++ b/src/unexsni.c @@ -90,24 +90,24 @@ what you give them. Help stamp out software-hoarding! */ * is made the last in the table to avoid changing any existing index. */ -/* Modified by wtien@urbana.mcd.mot.com of Motorola Inc. - * +/* Modified by wtien@urbana.mcd.mot.com of Motorola Inc. + * * The above mechanism does not work if the unexeced ELF file is being - * re-layout by other applications (such as `strip'). All the applications + * re-layout by other applications (such as `strip'). All the applications * that re-layout the internal of ELF will layout all sections in ascending - * order of their file offsets. After the re-layout, the data2 section will - * still be the LAST section in the section header vector, but its file offset + * order of their file offsets. After the re-layout, the data2 section will + * still be the LAST section in the section header vector, but its file offset * is now being pushed far away down, and causes part of it not to be mapped - * in (ie. not covered by the load segment entry in PHDR vector), therefore + * in (ie. not covered by the load segment entry in PHDR vector), therefore * causes the new binary to fail. * * The solution is to modify the unexec algorithm to insert the new data2 * section header right before the new bss section header, so their file - * offsets will be in the ascending order. Since some of the section's (all - * sections AFTER the bss section) indexes are now changed, we also need to - * modify some fields to make them point to the right sections. This is done + * offsets will be in the ascending order. Since some of the section's (all + * sections AFTER the bss section) indexes are now changed, we also need to + * modify some fields to make them point to the right sections. This is done * by macro PATCH_INDEX. All the fields that need to be patched are: - * + * * 1. ELF header e_shstrndx field. * 2. section header sh_link and sh_info field. * 3. symbol table entry st_shndx field. @@ -124,7 +124,7 @@ what you give them. Help stamp out software-hoarding! */ * * /home1/marco/emacs/emacs-19.22/src * dump -hv temacs - * + * * temacs: * * **** SECTION HEADER TABLE **** @@ -132,83 +132,83 @@ what you give them. Help stamp out software-hoarding! */ * Link Info Adralgn Entsize * * [1] PBIT -A-- 0x4000f4 0xf4 0x13 .interp - * 0 0 0x1 0 + * 0 0 0x1 0 * * [2] REGI -A-- 0x400108 0x108 0x18 .reginfo - * 0 0 0x4 0x18 + * 0 0 0x4 0x18 * * [3] DYNM -A-- 0x400120 0x120 0xb8 .dynamic - * 6 0 0x4 0x8 + * 6 0 0x4 0x8 * * [4] HASH -A-- 0x4001d8 0x1d8 0x8a0 .hash - * 5 0 0x4 0x4 + * 5 0 0x4 0x4 * * [5] DYNS -A-- 0x400a78 0xa78 0x11f0 .dynsym - * 6 2 0x4 0x10 + * 6 2 0x4 0x10 * * [6] STRT -A-- 0x401c68 0x1c68 0xbf9 .dynstr - * 0 0 0x1 0 + * 0 0 0x1 0 * * [7] REL -A-- 0x402864 0x2864 0x18 .rel.dyn - * 5 14 0x4 0x8 + * 5 14 0x4 0x8 * * [8] PBIT -AI- 0x402880 0x2880 0x60 .init - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [9] PBIT -AI- 0x4028e0 0x28e0 0x1234 .plt - * 0 0 0x4 0x4 + * 0 0 0x4 0x4 * * [10] PBIT -AI- 0x403b20 0x3b20 0xee400 .text - * 0 0 0x20 0x1 + * 0 0 0x20 0x1 * * [11] PBIT -AI- 0x4f1f20 0xf1f20 0x60 .fini - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [12] PBIT -A-- 0x4f1f80 0xf1f80 0xd90 .rdata - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [13] PBIT -A-- 0x4f2d10 0xf2d10 0x17e0 .rodata - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [14] PBIT WA-- 0x5344f0 0xf44f0 0x4b3e4 .data <<<<< - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [15] PBIT WA-G 0x57f8d4 0x13f8d4 0x2a84 .got - * 0 0 0x4 0x4 + * 0 0 0x4 0x4 * * [16] PBIT WA-G 0x582360 0x142360 0x10 .sdata <<<<< - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [17] NOBI WA-G 0x582370 0x142370 0xb84 .sbss <<<<< - * 0 0 0x4 0 + * 0 0 0x4 0 * * [18] NOBI WA-- 0x582f00 0x142370 0x27ec0 .bss <<<<< - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [19] SYMT ---- 0 0x142370 0x10e40 .symtab - * 20 1108 0x4 0x10 + * 20 1108 0x4 0x10 * * [20] STRT ---- 0 0x1531b0 0xed9e .strtab - * 0 0 0x1 0 + * 0 0 0x1 0 * * [21] STRT ---- 0 0x161f4e 0xb5 .shstrtab - * 0 0 0x1 0 + * 0 0 0x1 0 * * [22] PBIT ---- 0 0x162003 0x28e2a .comment - * 0 0 0x1 0x1 + * 0 0 0x1 0x1 * * [23] PBIT ---- 0 0x18ae2d 0x592 .debug - * 0 0 0x1 0 + * 0 0 0x1 0 * * [24] PBIT ---- 0 0x18b3bf 0x80 .line - * 0 0 0x1 0 + * 0 0 0x1 0 * * [25] MDBG ---- 0 0x18b440 0x60 .mdebug - * 0 0 0x4 0 + * 0 0 0x4 0 * * * dump -hv emacs - * + * * emacs: * * **** SECTION HEADER TABLE **** @@ -216,82 +216,82 @@ what you give them. Help stamp out software-hoarding! */ * Link Info Adralgn Entsize * * [1] PBIT -A-- 0x4000f4 0xf4 0x13 .interp - * 0 0 0x1 0 + * 0 0 0x1 0 * * [2] REGI -A-- 0x400108 0x108 0x18 .reginfo - * 0 0 0x4 0x18 + * 0 0 0x4 0x18 * * [3] DYNM -A-- 0x400120 0x120 0xb8 .dynamic - * 6 0 0x4 0x8 + * 6 0 0x4 0x8 * * [4] HASH -A-- 0x4001d8 0x1d8 0x8a0 .hash - * 5 0 0x4 0x4 + * 5 0 0x4 0x4 * * [5] DYNS -A-- 0x400a78 0xa78 0x11f0 .dynsym - * 6 2 0x4 0x10 + * 6 2 0x4 0x10 * * [6] STRT -A-- 0x401c68 0x1c68 0xbf9 .dynstr - * 0 0 0x1 0 + * 0 0 0x1 0 * * [7] REL -A-- 0x402864 0x2864 0x18 .rel.dyn - * 5 14 0x4 0x8 + * 5 14 0x4 0x8 * * [8] PBIT -AI- 0x402880 0x2880 0x60 .init - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [9] PBIT -AI- 0x4028e0 0x28e0 0x1234 .plt - * 0 0 0x4 0x4 + * 0 0 0x4 0x4 * * [10] PBIT -AI- 0x403b20 0x3b20 0xee400 .text - * 0 0 0x20 0x1 + * 0 0 0x20 0x1 * * [11] PBIT -AI- 0x4f1f20 0xf1f20 0x60 .fini - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [12] PBIT -A-- 0x4f1f80 0xf1f80 0xd90 .rdata - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [13] PBIT -A-- 0x4f2d10 0xf2d10 0x17e0 .rodata - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [14] PBIT WA-- 0x5344f0 0xf44f0 0x4b3e4 .data <<<<< - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [15] PBIT WA-G 0x57f8d4 0x13f8d4 0x2a84 .got - * 0 0 0x4 0x4 + * 0 0 0x4 0x4 * * [16] PBIT WA-G 0x582360 0x142360 0xb94 .sdata <<<<< - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [17] PBIT WA-- 0x582f00 0x142f00 0x94100 .data <<<<< - * 0 0 0x10 0x1 + * 0 0 0x10 0x1 * * [18] NOBI WA-G 0x617000 0x1d7000 0 .sbss <<<<< - * 0 0 0x4 0 + * 0 0 0x4 0 * * [19] NOBI WA-- 0x617000 0x1d7000 0 .bss <<<<< - * 0 0 0x4 0x1 + * 0 0 0x4 0x1 * * [20] SYMT ---- 0 0x1d7000 0x10e40 .symtab - * 21 1109 0x4 0x10 + * 21 1109 0x4 0x10 * * [21] STRT ---- 0 0x1e7e40 0xed9e .strtab - * 0 0 0x1 0 + * 0 0 0x1 0 * * [22] STRT ---- 0 0x1f6bde 0xb5 .shstrtab - * 0 0 0x1 0 + * 0 0 0x1 0 * * [23] PBIT ---- 0 0x1f6c93 0x28e2a .comment - * 0 0 0x1 0x1 + * 0 0 0x1 0x1 * * [24] PBIT ---- 0 0x21fabd 0x592 .debug - * 0 0 0x1 0 + * 0 0 0x1 0 * * [25] PBIT ---- 0 0x22004f 0x80 .line - * 0 0 0x1 0 + * 0 0 0x1 0 * * [26] MDBG ---- 0 0x2200d0 0x60 .mdebug - * 0 0 0x4 0 + * 0 0 0x4 0 * */ @@ -450,7 +450,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) { old_sdata_index = old_sbss_index - 1; } - + /* Find the old .bss section. */ @@ -683,7 +683,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) if (old_data_index == old_file_h->e_shnum) fatal ("Can't find .data in %s.\n", old_name, 0); - /* Walk through all section headers, insert the new data2 section right + /* Walk through all section headers, insert the new data2 section right before the new bss section. */ for (n = 1, nn = 1; n < old_file_h->e_shnum; n++, nn++) { @@ -698,7 +698,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) { memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(old_data_index), new_file_h->e_shentsize); - + NEW_SECTION_H(nn).sh_addr = new_data3_addr; NEW_SECTION_H(nn).sh_offset = new_data3_offset; NEW_SECTION_H(nn).sh_size = new_data3_size; @@ -709,8 +709,8 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) NEW_SECTION_H(nn).sh_addralign = OLD_SECTION_H(n).sh_addralign; /* Now copy over what we have in the memory now. */ - memcpy (NEW_SECTION_H(nn).sh_offset + new_base, - (caddr_t) OLD_SECTION_H(n).sh_addr, + memcpy (NEW_SECTION_H(nn).sh_offset + new_base, + (caddr_t) OLD_SECTION_H(n).sh_addr, new_data3_size); /* the new .data2 section should also come before the * new .sbss section */ @@ -721,14 +721,14 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) /* We always have a .sdata section: append the contents of the * old .sbss section. */ - memcpy (new_data3_offset + new_base, - (caddr_t) OLD_SECTION_H(n).sh_addr, + memcpy (new_data3_offset + new_base, + (caddr_t) OLD_SECTION_H(n).sh_addr, new_data3_size); nn ++; } } else if (n == old_bss_index) - + /* If it is bss section, insert the new data2 section before it. */ { Elf32_Word tmp_align; @@ -741,7 +741,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) /* Steal the data section header for this data2 section. */ memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(old_data_index), new_file_h->e_shentsize); - + NEW_SECTION_H(nn).sh_addr = new_data2_addr; NEW_SECTION_H(nn).sh_offset = new_data2_offset; NEW_SECTION_H(nn).sh_size = new_data2_size; @@ -751,14 +751,14 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) NEW_SECTION_H(nn).sh_addralign = tmp_align; /* Now copy over what we have in the memory now. */ - memcpy (NEW_SECTION_H(nn).sh_offset + new_base, + memcpy (NEW_SECTION_H(nn).sh_offset + new_base, (caddr_t) tmp_addr, new_data2_size); nn += 2; } - - memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(n), + + memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(n), old_file_h->e_shentsize); - + if (old_sdata_index && n == old_sdata_index) /* The old .sdata section has now a new size */ NEW_SECTION_H(nn).sh_size = new_sdata_size; @@ -773,7 +773,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) NEW_SECTION_H(nn).sh_addr += new_data2_size + new_data2_align + new_data3_size; /* Let the new bss section address alignment be the same as the - section address alignment followed the old bss section, so + section address alignment followed the old bss section, so this section will be placed in exactly the same place. */ NEW_SECTION_H(nn).sh_addralign = OLD_SECTION_H(nn + (old_sdata_index ? 1 : 0)).sh_addralign; @@ -786,7 +786,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) new_data3_size - old_bss_padding; NEW_SECTION_H(nn).sh_addr += new_data2_size; /* Let the new bss section address alignment be the same as the - section address alignment followed the old bss section, so + section address alignment followed the old bss section, so this section will be placed in exactly the same place. */ NEW_SECTION_H(nn).sh_addralign = OLD_SECTION_H((nn - (old_sdata_index ? 0 : 1))).sh_addralign; @@ -799,19 +799,19 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) new_data2_align + new_data3_size - old_bss_padding; - + /* If any section hdr refers to the section after the new .data - section, make it refer to next one because we have inserted + section, make it refer to next one because we have inserted a new section in between. */ - + PATCH_INDEX(NEW_SECTION_H(nn).sh_link); PATCH_INDEX(NEW_SECTION_H(nn).sh_info); - + /* Now, start to copy the content of sections. */ if (NEW_SECTION_H(nn).sh_type == SHT_NULL || NEW_SECTION_H(nn).sh_type == SHT_NOBITS) continue; - + /* Write out the sections. .data, .data1 and .sdata get copied from * the current process instead of the old file. */ @@ -821,7 +821,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) src = (caddr_t) OLD_SECTION_H(n).sh_addr; else src = old_base + OLD_SECTION_H(n).sh_offset; - + memcpy (NEW_SECTION_H(nn).sh_offset + new_base, src, ((n == old_sdata_index) ? old_sdata_size : @@ -833,7 +833,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) { Elf32_Shdr *spt = &NEW_SECTION_H(nn); unsigned int num = spt->sh_size / spt->sh_entsize; - Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H(nn).sh_offset + + Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H(nn).sh_offset + new_base); for (; num--; sym++) { @@ -841,7 +841,7 @@ unexec (new_name, old_name, data_start, bss_start, entry_address) || (sym->st_shndx == SHN_ABS) || (sym->st_shndx == SHN_COMMON)) continue; - + PATCH_INDEX(sym->st_shndx); } } diff --git a/src/unexsunos4.c b/src/unexsunos4.c index 76480db9b33..6ceab884a99 100644 --- a/src/unexsunos4.c +++ b/src/unexsunos4.c @@ -98,7 +98,7 @@ static int rd_only_len; static long cookie; -unexec (new_name, a_name, bndry, bss_start, entry) +unexec (new_name, a_name, bndry, bss_start, entry) char *new_name, *a_name; unsigned bndry, bss_start, entry; { @@ -163,7 +163,7 @@ unexec (new_name, a_name, bndry, bss_start, entry) /* Have to do this some time before dumping the data */ initialized = 1; #endif - + /* Handle new data and bss sizes and optional new entry point. No one actually uses bss_start and entry, but tradition compels one to support them. @@ -171,7 +171,7 @@ unexec (new_name, a_name, bndry, bss_start, entry) but the caller is *supposed* to know what she is doing. */ nhdr.a_data = (bss_start ? bss_start : brk_value) - N_DATADDR (nhdr); nhdr.a_bss = bss_start ? brk_value - bss_start : 0; - if (entry) + if (entry) nhdr.a_entry = entry; /* @@ -296,14 +296,14 @@ run_time_remap (progname) * First try argv[0], will almost always succeed as shells tend to give * the full path from the hash list rather than using execvp () */ - if (is_it (progname)) + if (is_it (progname)) return; /* * If argv[0] is a full path and does not exist, not much sense in * searching further */ - if (strchr (progname, '/')) + if (strchr (progname, '/')) return; /* diff --git a/src/unexw32.c b/src/unexw32.c index 7b907beda6e..60cd9517027 100644 --- a/src/unexw32.c +++ b/src/unexw32.c @@ -148,17 +148,17 @@ open_input_file (file_data *p_file, char *filename) file = CreateFile (filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - if (file == INVALID_HANDLE_VALUE) + if (file == INVALID_HANDLE_VALUE) return FALSE; size = GetFileSize (file, &upper_size); - file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, + file_mapping = CreateFileMapping (file, NULL, PAGE_READONLY, 0, size, NULL); - if (!file_mapping) + if (!file_mapping) return FALSE; file_base = MapViewOfFile (file_mapping, FILE_MAP_READ, 0, 0, size); - if (file_base == 0) + if (file_base == 0) return FALSE; p_file->name = filename; @@ -179,18 +179,18 @@ open_output_file (file_data *p_file, char *filename, unsigned long size) file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); - if (file == INVALID_HANDLE_VALUE) + if (file == INVALID_HANDLE_VALUE) return FALSE; - file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, + file_mapping = CreateFileMapping (file, NULL, PAGE_READWRITE, 0, size, NULL); - if (!file_mapping) + if (!file_mapping) return FALSE; - + file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size); - if (file_base == 0) + if (file_base == 0) return FALSE; - + p_file->name = filename; p_file->size = size; p_file->file = file; @@ -345,24 +345,24 @@ get_section_info (file_data *p_infile) PIMAGE_NT_HEADERS nt_header; PIMAGE_SECTION_HEADER section; int overlap; - + dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base; - if (dos_header->e_magic != IMAGE_DOS_SIGNATURE) + if (dos_header->e_magic != IMAGE_DOS_SIGNATURE) { printf ("Unknown EXE header in %s...bailing.\n", p_infile->name); exit (1); } - nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + + nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + dos_header->e_lfanew); - if (nt_header == NULL) + if (nt_header == NULL) { - printf ("Failed to find IMAGE_NT_HEADER in %s...bailing.\n", + printf ("Failed to find IMAGE_NT_HEADER in %s...bailing.\n", p_infile->name); exit (1); } /* Check the NT header signature ... */ - if (nt_header->Signature != IMAGE_NT_SIGNATURE) + if (nt_header->Signature != IMAGE_NT_SIGNATURE) { printf ("Invalid IMAGE_NT_SIGNATURE 0x%x in %s...bailing.\n", nt_header->Signature, p_infile->name); @@ -482,7 +482,7 @@ get_section_info (file_data *p_infile) /* The dump routines. */ void -copy_executable_and_dump_data (file_data *p_infile, +copy_executable_and_dump_data (file_data *p_infile, file_data *p_outfile) { unsigned char *dst, *dst_save; @@ -537,10 +537,10 @@ copy_executable_and_dump_data (file_data *p_infile, Note that dst is updated implicitly by each COPY_CHUNK. */ dos_header = (PIMAGE_DOS_HEADER) p_infile->file_base; - nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + + nt_header = (PIMAGE_NT_HEADERS) (((unsigned long) dos_header) + dos_header->e_lfanew); section = IMAGE_FIRST_SECTION (nt_header); - + dst = (unsigned char *) p_outfile->file_base; COPY_CHUNK ("Copying DOS header...", dos_header, @@ -736,7 +736,7 @@ unexec (char *new_name, char *old_name, void *start_data, void *start_bss, if ((q = strrchr (new_name, '/')) == NULL) abort (); strcpy (p, q); - + /* Make sure that the output filename has the ".exe" extension...patch it up if not. */ p = out_filename + strlen (out_filename) - 4; @@ -752,7 +752,7 @@ unexec (char *new_name, char *old_name, void *start_data, void *start_bss, /* Open the undumped executable file. */ if (!open_input_file (&in_file, in_filename)) { - printf ("Failed to open %s (%d)...bailing.\n", + printf ("Failed to open %s (%d)...bailing.\n", in_filename, GetLastError ()); exit (1); } @@ -768,7 +768,7 @@ unexec (char *new_name, char *old_name, void *start_data, void *start_bss, extra_bss_size_static; if (!open_output_file (&out_file, out_filename, size)) { - printf ("Failed to open %s (%d)...bailing.\n", + printf ("Failed to open %s (%d)...bailing.\n", out_filename, GetLastError ()); exit (1); } diff --git a/src/vm-limit.c b/src/vm-limit.c index 721e740bd02..c0bab2e48a4 100644 --- a/src/vm-limit.c +++ b/src/vm-limit.c @@ -76,7 +76,7 @@ check_memory_limits () if (warn_function) switch (warnlevel) { - case 0: + case 0: if (data_size > five_percent * 15) { warnlevel++; @@ -84,7 +84,7 @@ check_memory_limits () } break; - case 1: + case 1: if (data_size > five_percent * 17) { warnlevel++; @@ -92,7 +92,7 @@ check_memory_limits () } break; - case 2: + case 2: if (data_size > five_percent * 19) { warnlevel++; diff --git a/src/w32.c b/src/w32.c index 57b0e28d0ca..744cc593133 100644 --- a/src/w32.c +++ b/src/w32.c @@ -343,7 +343,7 @@ getwd (char *dir) int gethostname (char *buffer, int size) { - /* NT only allows small host names, so the buffer is + /* NT only allows small host names, so the buffer is certainly large enough. */ return !GetComputerName (buffer, &size); } @@ -356,7 +356,7 @@ getloadavg (double loadavg[], int nelem) int i; /* A faithful emulation is going to have to be saved for a rainy day. */ - for (i = 0; i < nelem; i++) + for (i = 0; i < nelem; i++) { loadavg[i] = 0.0; } @@ -373,7 +373,7 @@ static char the_passwd_gecos[PASSWD_FIELD_SIZE]; static char the_passwd_dir[PASSWD_FIELD_SIZE]; static char the_passwd_shell[PASSWD_FIELD_SIZE]; -static struct passwd the_passwd = +static struct passwd the_passwd = { the_passwd_name, the_passwd_passwd, @@ -385,30 +385,30 @@ static struct passwd the_passwd = the_passwd_shell, }; -int -getuid () -{ +int +getuid () +{ return the_passwd.pw_uid; } -int -geteuid () -{ +int +geteuid () +{ /* I could imagine arguing for checking to see whether the user is in the Administrators group and returning a UID of 0 for that case, but I don't know how wise that would be in the long run. */ - return getuid (); + return getuid (); } -int -getgid () -{ +int +getgid () +{ return the_passwd.pw_gid; } -int -getegid () -{ +int +getegid () +{ return getgid (); } @@ -424,7 +424,7 @@ struct passwd * getpwnam (char *name) { struct passwd *pw; - + pw = getpwuid (getuid ()); if (!pw) return pw; @@ -782,57 +782,57 @@ is_unc_volume (const char *filename) /* Routines that are no-ops on NT but are defined to get Emacs to compile. */ -int -sigsetmask (int signal_mask) -{ +int +sigsetmask (int signal_mask) +{ return 0; } -int -sigmask (int sig) -{ +int +sigmask (int sig) +{ return 0; } -int -sigblock (int sig) -{ +int +sigblock (int sig) +{ return 0; } -int -sigunblock (int sig) -{ +int +sigunblock (int sig) +{ return 0; } -int -setpgrp (int pid, int gid) -{ +int +setpgrp (int pid, int gid) +{ return 0; } -int -alarm (int seconds) -{ +int +alarm (int seconds) +{ return 0; } -void -unrequest_sigio (void) -{ +void +unrequest_sigio (void) +{ return; } void -request_sigio (void) -{ +request_sigio (void) +{ return; } #define REG_ROOT "SOFTWARE\\GNU\\Emacs" -LPBYTE +LPBYTE w32_get_resource (key, lpdwtype) char *key; LPDWORD lpdwtype; @@ -841,42 +841,42 @@ w32_get_resource (key, lpdwtype) HKEY hrootkey = NULL; DWORD cbData; BOOL ok = FALSE; - - /* Check both the current user and the local machine to see if + + /* Check both the current user and the local machine to see if we have any resources. */ - + if (RegOpenKeyEx (HKEY_CURRENT_USER, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS) { lpvalue = NULL; - if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) == ERROR_SUCCESS - && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL + if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) == ERROR_SUCCESS + && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL && RegQueryValueEx (hrootkey, key, NULL, lpdwtype, lpvalue, &cbData) == ERROR_SUCCESS) { return (lpvalue); } if (lpvalue) xfree (lpvalue); - + RegCloseKey (hrootkey); - } - + } + if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS) { lpvalue = NULL; - + if (RegQueryValueEx (hrootkey, key, NULL, NULL, NULL, &cbData) == ERROR_SUCCESS && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL && RegQueryValueEx (hrootkey, key, NULL, lpdwtype, lpvalue, &cbData) == ERROR_SUCCESS) { return (lpvalue); } - + if (lpvalue) xfree (lpvalue); - + RegCloseKey (hrootkey); - } - + } + return (NULL); } @@ -933,7 +933,7 @@ init_environment (char ** argv) { char * name; char * def_value; - } env_vars[] = + } env_vars[] = { {"HOME", "C:/"}, {"PRELOAD_WINSOCK", NULL}, @@ -987,7 +987,7 @@ init_environment (char ** argv) *p = 0; for (p = modname; *p; p++) if (*p == '\\') *p = '/'; - + _snprintf (buf, sizeof(buf)-1, "emacs_dir=%s", modname); _putenv (strdup (buf)); } @@ -1019,7 +1019,7 @@ init_environment (char ** argv) else if (dwType == REG_SZ) { char buf[SET_ENV_BUF_SIZE]; - + _snprintf (buf, sizeof(buf)-1, "%s=%s", env_vars[i].name, lpval); _putenv (strdup (buf)); } @@ -1113,7 +1113,7 @@ get_emacs_configuration (void) static char configuration_buffer[32]; /* Determine the processor type. */ - switch (get_processor_type ()) + switch (get_processor_type ()) { #ifdef PROCESSOR_INTEL_386 @@ -1230,7 +1230,7 @@ get_emacs_configuration_options (void) #include <sys/timeb.h> /* Emulate gettimeofday (Ulrich Leodolter, 1/11/95). */ -void +void gettimeofday (struct timeval *tv, struct timezone *tz) { struct timeb tb; @@ -1238,7 +1238,7 @@ gettimeofday (struct timeval *tv, struct timezone *tz) tv->tv_sec = tb.time; tv->tv_usec = tb.millitm * 1000L; - if (tz) + if (tz) { tz->tz_minuteswest = tb.timezone; /* minutes west of Greenwich */ tz->tz_dsttime = tb.dstflag; /* type of dst correction */ @@ -1250,7 +1250,7 @@ gettimeofday (struct timeval *tv, struct timezone *tz) /* ------------------------------------------------------------------------- */ /* Place a wrapper around the MSVC version of ctime. It returns NULL - on network directories, so we handle that case here. + on network directories, so we handle that case here. (Ulrich Leodolter, 1/11/95). */ char * sys_ctime (const time_t *t) @@ -1356,7 +1356,7 @@ GetCachedVolumeInformation (char * root_dir) tell whether they are or not. Also, the UNC association of drive letters mapped to remote volumes can be changed at any time (even by other processes) without notice. - + As a compromise, so we can benefit from caching info for remote volumes, we use a simple expiry mechanism to invalidate cache entries that are more than ten seconds old. */ @@ -1462,7 +1462,7 @@ get_volume_info (const char * name, const char ** pPath) if (pPath) *pPath = name; - + info = GetCachedVolumeInformation (rootname); if (info != NULL) { @@ -1600,7 +1600,7 @@ is_exec (const char * name) stricmp (p, ".cmd") == 0)); } -/* Emulate the Unix directory procedures opendir, closedir, +/* Emulate the Unix directory procedures opendir, closedir, and readdir. We can't use the procedures supplied in sysdep.c, so we provide them here. */ @@ -1673,8 +1673,8 @@ readdir (DIR *dirp) { if (wnet_enum_handle != INVALID_HANDLE_VALUE) { - if (!read_unc_volume (wnet_enum_handle, - dir_find_data.cFileName, + if (!read_unc_volume (wnet_enum_handle, + dir_find_data.cFileName, MAX_PATH)) return NULL; } @@ -1700,14 +1700,14 @@ readdir (DIR *dirp) if (!FindNextFile (dir_find_handle, &dir_find_data)) return NULL; } - + /* Emacs never uses this value, so don't bother making it match value returned by stat(). */ dir_static.d_ino = 1; - + dir_static.d_reclen = sizeof (struct direct) - MAXNAMLEN + 3 + dir_static.d_namlen - dir_static.d_namlen % 4; - + dir_static.d_namlen = strlen (dir_find_data.cFileName); strcpy (dir_static.d_name, dir_find_data.cFileName); if (dir_is_fat) @@ -1721,27 +1721,27 @@ readdir (DIR *dirp) if (!*p) _strlwr (dir_static.d_name); } - + return &dir_static; } HANDLE open_unc_volume (char *path) { - NETRESOURCE nr; + NETRESOURCE nr; HANDLE henum; int result; - nr.dwScope = RESOURCE_GLOBALNET; - nr.dwType = RESOURCETYPE_DISK; - nr.dwDisplayType = RESOURCEDISPLAYTYPE_SERVER; - nr.dwUsage = RESOURCEUSAGE_CONTAINER; - nr.lpLocalName = NULL; + nr.dwScope = RESOURCE_GLOBALNET; + nr.dwType = RESOURCETYPE_DISK; + nr.dwDisplayType = RESOURCEDISPLAYTYPE_SERVER; + nr.dwUsage = RESOURCEUSAGE_CONTAINER; + nr.lpLocalName = NULL; nr.lpRemoteName = map_w32_filename (path, NULL); - nr.lpComment = NULL; - nr.lpProvider = NULL; + nr.lpComment = NULL; + nr.lpProvider = NULL; - result = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, + result = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONNECTABLE, &nr, &henum); if (result == NO_ERROR) @@ -1802,7 +1802,7 @@ unc_volume_file_attributes (char *path) /* Shadow some MSVC runtime functions to map requests for long filenames to reasonable short names if necessary. This was originally added to - permit running Emacs on NT 3.1 on a FAT partition, which doesn't support + permit running Emacs on NT 3.1 on a FAT partition, which doesn't support long file names. */ int @@ -2452,7 +2452,7 @@ stat (const char * path, struct stat * buf) permission = _S_IREAD; else permission = _S_IREAD | _S_IWRITE; - + if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) permission |= _S_IEXEC; else if (is_exec (name)) @@ -2536,7 +2536,7 @@ fstat (int desc, struct stat * buf) permission = _S_IREAD; else permission = _S_IREAD | _S_IWRITE; - + if (info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) permission |= _S_IEXEC; else @@ -2788,7 +2788,7 @@ struct { WSAEFAULT , "Bad address", WSAEINVAL , "Invalid argument", WSAEMFILE , "Too many open files", - + WSAEWOULDBLOCK , "Resource temporarily unavailable", WSAEINPROGRESS , "Operation now in progress", WSAEALREADY , "Operation already in progress", @@ -2826,7 +2826,7 @@ struct { WSAEDQUOT , "Double quote in host name", /* really not sure */ WSAESTALE , "Data is stale", /* not sure */ WSAEREMOTE , "Remote error", /* not sure */ - + WSASYSNOTREADY , "Network subsystem is unavailable", WSAVERNOTSUPPORTED , "WINSOCK.DLL version out of range", WSANOTINITIALISED , "Winsock not initialized successfully", @@ -2844,7 +2844,7 @@ struct { WSA_E_CANCELLED , "Operation already cancelled", /* really not sure */ WSAEREFUSED , "Operation refused", /* not sure */ #endif - + WSAHOST_NOT_FOUND , "Host not found", WSATRY_AGAIN , "Authoritative host not found during name lookup", WSANO_RECOVERY , "Non-recoverable error during name lookup", @@ -2899,7 +2899,7 @@ sys_socket(int af, int type, int protocol) /* call the real socket function */ s = pfn_socket (af, type, protocol); - + if (s != INVALID_SOCKET) return socket_to_fd (s); @@ -2972,7 +2972,7 @@ socket_to_fd (SOCKET s) { CloseHandle (new_s); } - } + } } } fd_info[fd].hnd = (HANDLE) s; @@ -3185,7 +3185,7 @@ sys_setsockopt (int s, int level, int optname, const char * optval, int optlen) return rc; } h_errno = ENOTSOCK; - return SOCKET_ERROR; + return SOCKET_ERROR; } int @@ -3206,7 +3206,7 @@ sys_listen (int s, int backlog) return rc; } h_errno = ENOTSOCK; - return SOCKET_ERROR; + return SOCKET_ERROR; } int @@ -3227,7 +3227,7 @@ sys_getsockname (int s, struct sockaddr * name, int * namelen) return rc; } h_errno = ENOTSOCK; - return SOCKET_ERROR; + return SOCKET_ERROR; } int @@ -3425,7 +3425,7 @@ sys_dup2 (int src, int dst) /* make sure we close the destination first if it's a pipe or socket */ if (src != dst && fd_info[dst].flags != 0) sys_close (dst); - + rc = _dup2 (src, dst); if (rc == 0) { @@ -3485,9 +3485,9 @@ _sys_read_ahead (int fd) DebPrint (("_sys_read_ahead: internal error: fd %d is not a pipe or socket!\n", fd)); abort (); } - + cp->status = STATUS_READ_IN_PROGRESS; - + if (fd_info[fd].flags & FILE_PIPE) { rc = _read (fd, &cp->chr, sizeof (char)); @@ -3529,7 +3529,7 @@ _sys_read_ahead (int fd) } } #endif - + if (rc == sizeof (char)) cp->status = STATUS_READ_SUCCEEDED; else @@ -3728,7 +3728,7 @@ sys_write (int fd, const void * buffer, unsigned int count) next[0] = '\n'; dst = next + 1; count++; - } + } else /* copied remaining partial line -> now finished */ break; @@ -3781,7 +3781,7 @@ check_windows_init_file () it cannot find the Windows installation file. If this file does not exist in the expected place, tell the user. */ - if (!noninteractive && !inhibit_window_system) + if (!noninteractive && !inhibit_window_system) { extern Lisp_Object Vwindow_system, Vload_path, Qfile_exists_p; Lisp_Object objs[2]; @@ -3794,14 +3794,14 @@ check_windows_init_file () full_load_path = Fappend (2, objs); init_file = build_string ("term/w32-win"); fd = openp (full_load_path, init_file, Vload_suffixes, NULL, Qnil); - if (fd < 0) + if (fd < 0) { Lisp_Object load_path_print = Fprin1_to_string (full_load_path, Qnil); char *init_file_name = SDATA (init_file); char *load_path = SDATA (load_path_print); char *buffer = alloca (1024); - sprintf (buffer, + sprintf (buffer, "The Emacs Windows initialization file \"%s.el\" " "could not be found in your Emacs installation. " "Emacs checked the following directories for this file:\n" @@ -3866,14 +3866,14 @@ init_ntproc () /* ignore errors when duplicating and closing; typically the handles will be invalid when running as a gui program. */ - DuplicateHandle (parent, - GetStdHandle (STD_INPUT_HANDLE), + DuplicateHandle (parent, + GetStdHandle (STD_INPUT_HANDLE), parent, - &stdin_save, - 0, - FALSE, + &stdin_save, + 0, + FALSE, DUPLICATE_SAME_ACCESS); - + DuplicateHandle (parent, GetStdHandle (STD_OUTPUT_HANDLE), parent, @@ -3881,7 +3881,7 @@ init_ntproc () 0, FALSE, DUPLICATE_SAME_ACCESS); - + DuplicateHandle (parent, GetStdHandle (STD_ERROR_HANDLE), parent, @@ -3889,7 +3889,7 @@ init_ntproc () 0, FALSE, DUPLICATE_SAME_ACCESS); - + fclose (stdin); fclose (stdout); fclose (stderr); @@ -3926,7 +3926,7 @@ init_ntproc () while (*drive <= 'Z') { /* Record if this drive letter refers to a fixed drive. */ - fixed_drives[DRIVE_INDEX (*drive)] = + fixed_drives[DRIVE_INDEX (*drive)] = (GetDriveType (drive) == DRIVE_FIXED); (*drive)++; @@ -3935,7 +3935,7 @@ init_ntproc () /* Reset the volume info cache. */ volume_cache = NULL; } - + /* Check to see if Emacs has been installed correctly. */ check_windows_init_file (); } diff --git a/src/w32.h b/src/w32.h index c8733c41a26..845aca26e30 100644 --- a/src/w32.h +++ b/src/w32.h @@ -112,11 +112,11 @@ extern char * w32_strerror (int error_no); extern BOOL w32_get_long_filename (char * name, char * buf, int size); /* Prepare our standard handles for proper inheritance by child processes. */ -extern void prepare_standard_handles (int in, int out, +extern void prepare_standard_handles (int in, int out, int err, HANDLE handles[4]); /* Reset our standard handles to their original state. */ -extern void reset_standard_handles (int in, int out, +extern void reset_standard_handles (int in, int out, int err, HANDLE handles[4]); /* Return the string resource associated with KEY of type TYPE. */ diff --git a/src/w32bdf.c b/src/w32bdf.c index 5bb5ba72bba..73f40a22df6 100644 --- a/src/w32bdf.c +++ b/src/w32bdf.c @@ -54,7 +54,7 @@ cache_bitmap *pcached_bitmap_latest = cached_bitmap_slots; #define FONT_CACHE_SLOT_OVER_P(p) ((p) >= cached_bitmap_slots + BDF_FONT_CACHE_SIZE) -static int +static int search_file_line(char *key, char *start, int len, char **val, char **next) { unsigned int linelen; @@ -73,7 +73,7 @@ search_file_line(char *key, char *start, int len, char **val, char **next) *val = start + strlen(key); return 1; } - + return 0; } @@ -276,7 +276,7 @@ w32_init_bdf_font(char *filename) } bdffontp = (bdffont *) xmalloc(sizeof(bdffont)); - + for(i = 0;i < BDF_FIRST_OFFSET_TABLE;i++) bdffontp->chtbl[i] = NULL; bdffontp->size = fileinfo.nFileSizeLow; @@ -285,7 +285,7 @@ w32_init_bdf_font(char *filename) bdffontp->hfilemap = hfilemap; bdffontp->filename = (char*) xmalloc(strlen(filename) + 1); strcpy(bdffontp->filename, filename); - + if (!set_bdf_font_info(bdffontp)) { w32_free_bdf_font(bdffontp); @@ -364,7 +364,7 @@ cache_char_offset(bdffont *fontp, int index, unsigned char *offset) { pch = fontp->chtbl[BDF_FIRST_OFFSET(index)] = (font_char*) HeapAlloc(hbdf_cp_heap, - HEAP_ZERO_MEMORY, + HEAP_ZERO_MEMORY, sizeof(font_char) * BDF_SECOND_OFFSET_TABLE); if (!pch) return NULL; @@ -578,7 +578,7 @@ get_bitmap_with_cache(bdffont *fontp, int index) pcb->row_byte_size = glyph.row_byte_size; pch->pcbmp = pcb; - + pcached_bitmap_latest++; if (FONT_CACHE_SLOT_OVER_P(pcached_bitmap_latest)) pcached_bitmap_latest = cached_bitmap_slots; @@ -649,7 +649,7 @@ w32_BDF_TextOut(bdffont *fontp, HDC hdc, int left, return 0; textalign = GetTextAlign(hdc); - + hFgBrush = CreateSolidBrush(GetTextColor(hdc)); hOrgBrush = SelectObject(hdc, hFgBrush); @@ -679,7 +679,7 @@ w32_BDF_TextOut(bdffont *fontp, HDC hdc, int left, { width = pcb->metric.bbw; height = pcb->metric.bbh; - + if (!(hBMP && (DIBsection_hdc == hdc) && (DIBsection_width == width) diff --git a/src/w32bdf.h b/src/w32bdf.h index df0976bb1fa..1786786b90b 100644 --- a/src/w32bdf.h +++ b/src/w32bdf.h @@ -34,7 +34,7 @@ Boston, MA 02111-1307, USA. */ #define BDF_FONT_CACHE_SIZE 3000 #define BDF_FONT_CLEAR_SIZE 600 -/* +/* GLYPH METRIC (# ... character's reference point) ^ y | (urx, ury) diff --git a/src/w32console.c b/src/w32console.c index 490c1e10373..775630b8b0e 100644 --- a/src/w32console.c +++ b/src/w32console.c @@ -108,7 +108,7 @@ move_cursor (int row, int col) { cursor_coords.X = col; cursor_coords.Y = row; - + if (updating_frame == (struct frame *) NULL) { SetConsoleCursorPosition (cur_screen, cursor_coords); @@ -120,7 +120,7 @@ void clear_to_end (void) { struct frame * f = PICK_FRAME (); - + clear_end_of_line (FRAME_WIDTH (f) - 1); ins_del_lines (cursor_coords.Y, FRAME_HEIGHT (f) - cursor_coords.Y - 1); } @@ -191,12 +191,12 @@ ins_del_lines (int vpos, int n) } scroll.Left = 0; scroll.Right = FRAME_WIDTH (f); - + dest.X = 0; - + fill.Char.AsciiChar = 0x20; fill.Attributes = char_attr_normal; - + ScrollConsoleScreenBuffer (cur_screen, &scroll, NULL, dest, &fill); /* Here we have to deal with a w32 console flake: If the scroll @@ -222,7 +222,7 @@ ins_del_lines (int vpos, int n) nb = dest.Y + (scroll.Bottom - scroll.Top) + 1; if (nb < scroll.Top) - { + { for (i = nb; i < scroll.Top; i++) { move_cursor (i, 0); @@ -230,7 +230,7 @@ ins_del_lines (int vpos, int n) } } } - + cursor_coords.X = 0; cursor_coords.Y = vpos; } @@ -249,10 +249,10 @@ scroll_line (int dist, int direction) COORD dest; CHAR_INFO fill; struct frame * f = PICK_FRAME (); - + scroll.Top = cursor_coords.Y; scroll.Bottom = cursor_coords.Y; - + if (direction == LEFT) { scroll.Left = cursor_coords.X + dist; @@ -263,10 +263,10 @@ scroll_line (int dist, int direction) scroll.Left = cursor_coords.X; scroll.Right = FRAME_WIDTH (f) - dist - 1; } - + dest.X = cursor_coords.X; dest.Y = cursor_coords.Y; - + fill.Char.AsciiChar = 0x20; fill.Attributes = char_attr_normal; @@ -285,7 +285,7 @@ insert_glyphs (register struct glyph *start, register int len) { /* Print the first len characters of start, cursor_coords.X adjusted by write_glyphs. */ - + write_glyphs (start, len); } else @@ -316,7 +316,7 @@ write_glyphs (register struct glyph *string, register int len) /* Identify a run of glyphs with the same face. */ int face_id = string->face_id; int n; - + for (n = 1; n < len; ++n) if (string[n].face_id != face_id) break; @@ -336,7 +336,7 @@ write_glyphs (register struct glyph *string, register int len) { /* Set the attribute for these characters. */ if (!FillConsoleOutputAttribute (cur_screen, char_attr, - produced, cursor_coords, &r)) + produced, cursor_coords, &r)) { printf ("Failed writing console attributes: %d\n", GetLastError ()); @@ -354,7 +354,7 @@ write_glyphs (register struct glyph *string, register int len) cursor_coords.X += produced; move_cursor (cursor_coords.Y, cursor_coords.X); - } + } len -= consumed; n -= consumed; string += consumed; @@ -371,7 +371,7 @@ write_glyphs (register struct glyph *string, register int len) { if (!FillConsoleOutputAttribute (cur_screen, char_attr_normal, terminal_coding.produced, - cursor_coords, &r)) + cursor_coords, &r)) { printf ("Failed writing console attributes: %d\n", GetLastError ()); @@ -394,8 +394,8 @@ write_glyphs (register struct glyph *string, register int len) void delete_glyphs (int n) { - /* delete chars means scroll chars from cursor_coords.X + n to - cursor_coords.X, anything beyond the edge of the screen should + /* delete chars means scroll chars from cursor_coords.X + n to + cursor_coords.X, anything beyond the edge of the screen should come out empty... */ scroll_line (n, LEFT); @@ -407,7 +407,7 @@ static unsigned int sound_type = 0xFFFFFFFF; void w32_sys_ring_bell (void) { - if (sound_type == 0xFFFFFFFF) + if (sound_type == 0xFFFFFFFF) { Beep (666, 100); } @@ -430,17 +430,17 @@ SOUND is nil to use the normal beep. */) { CHECK_SYMBOL (sound); - if (NILP (sound)) + if (NILP (sound)) sound_type = 0xFFFFFFFF; else if (EQ (sound, intern ("asterisk"))) sound_type = MB_ICONASTERISK; - else if (EQ (sound, intern ("exclamation"))) + else if (EQ (sound, intern ("exclamation"))) sound_type = MB_ICONEXCLAMATION; - else if (EQ (sound, intern ("hand"))) + else if (EQ (sound, intern ("hand"))) sound_type = MB_ICONHAND; - else if (EQ (sound, intern ("question"))) + else if (EQ (sound, intern ("question"))) sound_type = MB_ICONQUESTION; - else if (EQ (sound, intern ("ok"))) + else if (EQ (sound, intern ("ok"))) sound_type = MB_OK; else if (EQ (sound, intern ("silent"))) sound_type = MB_EMACS_SILENT; @@ -449,7 +449,7 @@ SOUND is nil to use the normal beep. */) return sound; } - + void reset_terminal_modes (void) { @@ -482,7 +482,7 @@ set_terminal_modes (void) /* hmmm... perhaps these let us bracket screen changes so that we can flush clumps rather than one-character-at-a-time... - + we'll start with not moving the cursor while an update is in progress. */ void update_begin (struct frame * f) @@ -525,7 +525,7 @@ w32_face_attributes (f, face_id) if (face->background != FACE_TTY_DEFAULT_BG_COLOR && face->background != FACE_TTY_DEFAULT_COLOR) - char_attr = (char_attr & 0xff0f) + ((face->background % 16) << 4); + char_attr = (char_attr & 0xff0f) + ((face->background % 16) << 4); /* NTEMACS_TODO: Faces defined during startup get both foreground @@ -573,7 +573,7 @@ void initialize_w32_display (void) { CONSOLE_SCREEN_BUFFER_INFO info; - + cursor_to_hook = move_cursor; raw_cursor_to_hook = move_cursor; clear_to_end_hook = clear_to_end; @@ -589,7 +589,7 @@ initialize_w32_display (void) set_terminal_window_hook = set_terminal_window; update_begin_hook = update_begin; update_end_hook = update_end; - + read_socket_hook = w32_console_read_socket; mouse_position_hook = w32_console_mouse_position; estimate_mode_line_height_hook = 0; @@ -602,7 +602,7 @@ initialize_w32_display (void) GetConsoleMode (keyboard_handle, &prev_console_mode); prev_screen = GetStdHandle (STD_OUTPUT_HANDLE); - + #ifdef USE_SEPARATE_SCREEN cur_screen = CreateConsoleScreenBuffer (GENERIC_READ | GENERIC_WRITE, 0, NULL, @@ -656,7 +656,7 @@ initialize_w32_display (void) } GetConsoleScreenBufferInfo (cur_screen, &info); - + meta_key = 1; char_attr_normal = info.wAttributes; @@ -668,10 +668,10 @@ initialize_w32_display (void) else { /* Lines per page. Use buffer coords instead of buffer size. */ - FRAME_HEIGHT (SELECTED_FRAME ()) = 1 + info.srWindow.Bottom - - info.srWindow.Top; + FRAME_HEIGHT (SELECTED_FRAME ()) = 1 + info.srWindow.Bottom - + info.srWindow.Top; /* Characters per line. Use buffer coords instead of buffer size. */ - SET_FRAME_WIDTH (SELECTED_FRAME (), 1 + info.srWindow.Right - + SET_FRAME_WIDTH (SELECTED_FRAME (), 1 + info.srWindow.Right - info.srWindow.Left); } @@ -702,7 +702,7 @@ DEFUN ("set-cursor-size", Fset_cursor_size, Sset_cursor_size, 1, 1, 0, cci.dwSize = XFASTINT (size); cci.bVisible = TRUE; (void) SetConsoleCursorInfo (cur_screen, &cci); - + return Qt; } diff --git a/src/w32fns.c b/src/w32fns.c index feed88096f7..658a256ed63 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -10489,7 +10489,7 @@ xpm_load (f, img) string buffer containing data in the same format as an XPM file. */ specified_file = image_spec_value (img->spec, QCfile, NULL); - + { HDC frame_dc = get_frame_dc (f); hdc = CreateCompatibleDC (frame_dc); @@ -10535,7 +10535,7 @@ xpm_load (f, img) fn_XImageFree (xpm_image); } if (xpm_mask && xpm_mask->bitmap) - { + { /* The mask appears to be inverted compared with what we expect. TODO: invert our expectations. See other places where we have to invert bits because our idea of masks is backwards. */ @@ -10546,7 +10546,7 @@ xpm_load (f, img) SelectObject (hdc, old_obj); img->mask = xpm_mask->bitmap; - fn_XImageFree (xpm_mask); + fn_XImageFree (xpm_mask); DeleteDC (hdc); } diff --git a/src/w32inevt.c b/src/w32inevt.c index 6a0b5e5f1a2..f602f8b820b 100644 --- a/src/w32inevt.c +++ b/src/w32inevt.c @@ -82,15 +82,15 @@ extern unsigned int w32_key_to_modifier (int key); static INPUT_RECORD event_queue[EVENT_QUEUE_SIZE]; static INPUT_RECORD *queue_ptr = event_queue, *queue_end = event_queue; -static int +static int fill_queue (BOOL block) { BOOL rc; DWORD events_waiting; - + if (queue_ptr < queue_end) return queue_end-queue_ptr; - + if (!block) { /* Check to see if there are some events to read before we try @@ -100,7 +100,7 @@ fill_queue (BOOL block) if (events_waiting == 0) return 0; } - + rc = ReadConsoleInput (keyboard_handle, event_queue, EVENT_QUEUE_SIZE, &events_waiting); if (!rc) @@ -114,13 +114,13 @@ fill_queue (BOOL block) and return the frame for it Right now, there's only one frame so return it. */ -static FRAME_PTR +static FRAME_PTR get_frame (void) { return SELECTED_FRAME (); } -/* Translate console modifiers to emacs modifiers. +/* Translate console modifiers to emacs modifiers. German keyboard support (Kai Morgan Zeise 2/18/95). */ int w32_kbd_mods_to_emacs (DWORD mods, WORD key) @@ -129,18 +129,18 @@ w32_kbd_mods_to_emacs (DWORD mods, WORD key) /* If we recognize right-alt and left-ctrl as AltGr, and it has been pressed, first remove those modifiers. */ - if (!NILP (Vw32_recognize_altgr) - && (mods & (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED)) + if (!NILP (Vw32_recognize_altgr) + && (mods & (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED)) == (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED)) mods &= ~ (RIGHT_ALT_PRESSED | LEFT_CTRL_PRESSED); if (mods & (RIGHT_ALT_PRESSED | LEFT_ALT_PRESSED)) retval = ((NILP (Vw32_alt_is_meta)) ? alt_modifier : meta_modifier); - + if (mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) { retval |= ctrl_modifier; - if ((mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) + if ((mods & (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) == (RIGHT_CTRL_PRESSED | LEFT_CTRL_PRESSED)) retval |= meta_modifier; } @@ -212,14 +212,14 @@ w32_kbd_patch_key (KEY_EVENT_RECORD *event) isdead = 0; return 1; } - if (event->uChar.AsciiChar != 0) + if (event->uChar.AsciiChar != 0) return 1; memset (keystate, 0, sizeof (keystate)); keystate[key_code] = 0x80; - if (mods & SHIFT_PRESSED) + if (mods & SHIFT_PRESSED) keystate[VK_SHIFT] = 0x80; - if (mods & CAPSLOCK_ON) + if (mods & CAPSLOCK_ON) keystate[VK_CAPITAL] = 1; /* If we recognize right-alt and left-ctrl as AltGr, set the key states accordingly before invoking ToAscii. */ @@ -272,7 +272,7 @@ w32_kbd_patch_key (KEY_EVENT_RECORD *event) keystate, (LPWORD) ansi_code, 0); } - if (isdead == 0) + if (isdead == 0) return 0; event->uChar.AsciiChar = ansi_code[0]; return isdead; @@ -283,9 +283,9 @@ extern char *lispy_function_keys[]; static int faked_key = 0; -/* return code -1 means that event_queue_ptr won't be incremented. +/* return code -1 means that event_queue_ptr won't be incremented. In other word, this event makes two key codes. (by himi) */ -int +int key_event (KEY_EVENT_RECORD *event, struct input_event *emacs_ev, int *isdead) { static int mod_key_state = 0; @@ -506,7 +506,7 @@ w32_console_toggle_lock_key (int vk_code, Lisp_Object new_state) } /* Mouse position hook. */ -void +void w32_console_mouse_position (FRAME_PTR *f, int insist, Lisp_Object *bar_window, @@ -523,16 +523,16 @@ w32_console_mouse_position (FRAME_PTR *f, *bar_window = Qnil; *part = 0; SELECTED_FRAME ()->mouse_moved = 0; - + *x = movement_pos.X; *y = movement_pos.Y; *time = movement_time; - + UNBLOCK_INPUT; } /* Remember mouse motion and notify emacs. */ -static void +static void mouse_moved_to (int x, int y) { /* If we're in the same place, ignore it */ @@ -563,14 +563,14 @@ static int emacs_button_translation[NUM_TRANSLATED_MOUSE_BUTTONS] = 0, 2, 1 }; -static int +static int do_mouse_event (MOUSE_EVENT_RECORD *event, struct input_event *emacs_ev) { static DWORD button_state = 0; DWORD but_change, mask; int i; - + if (event->dwEventFlags == MOUSE_MOVED) { /* For movement events we just note that the mouse has moved @@ -578,14 +578,14 @@ do_mouse_event (MOUSE_EVENT_RECORD *event, mouse_moved_to (event->dwMousePosition.X, event->dwMousePosition.Y); return 0; } - + /* It looks like the console code sends us a mouse event with dwButtonState == 0 when a window is activated. Ignore this case. */ if (event->dwButtonState == button_state) return 0; - + emacs_ev->kind = MOUSE_CLICK_EVENT; - + /* Find out what button has changed state since the last button event. */ but_change = button_state ^ event->dwButtonState; mask = 1; @@ -603,7 +603,7 @@ do_mouse_event (MOUSE_EVENT_RECORD *event, emacs_ev->timestamp = GetTickCount (); emacs_ev->modifiers = w32_kbd_mods_to_emacs (event->dwControlKeyState, 0) | ((event->dwButtonState & mask) ? down_modifier : up_modifier); - + XSETFASTINT (emacs_ev->x, event->dwMousePosition.X); XSETFASTINT (emacs_ev->y, event->dwMousePosition.Y); /* for Mule 2.2 (Based on Emacs 19.28 */ @@ -612,15 +612,15 @@ do_mouse_event (MOUSE_EVENT_RECORD *event, #else XSETFRAME (emacs_ev->frame_or_window, get_frame ()); #endif - + return 1; } -static void +static void resize_event (WINDOW_BUFFER_SIZE_RECORD *event) { FRAME_PTR f = get_frame (); - + change_frame_size (f, event->dwSize.Y, event->dwSize.X, 0, 1); SET_FRAME_GARBAGED (f); } @@ -641,7 +641,7 @@ maybe_generate_resize_event () 0, 0); } -int +int w32_console_read_socket (int sd, struct input_event *bufp, int numchars, int expected) { @@ -654,10 +654,10 @@ w32_console_read_socket (int sd, struct input_event *bufp, int numchars, interrupt_input_pending = 1; return -1; } - + interrupt_input_pending = 0; BLOCK_INPUT; - + for (;;) { nev = fill_queue (0); @@ -677,7 +677,7 @@ w32_console_read_socket (int sd, struct input_event *bufp, int numchars, case KEY_EVENT: add = key_event (&queue_ptr->Event.KeyEvent, bufp, &isdead); if (add == -1) /* 95.7.25 by himi */ - { + { queue_ptr--; add = 1; } @@ -697,13 +697,13 @@ w32_console_read_socket (int sd, struct input_event *bufp, int numchars, if (w32_use_full_screen_buffer) resize_event (&queue_ptr->Event.WindowBufferSizeEvent); break; - + case MENU_EVENT: case FOCUS_EVENT: /* Internal event types, ignored. */ break; } - + queue_ptr++; nev--; } diff --git a/src/w32inevt.h b/src/w32inevt.h index 6ac5ea303e5..7df989bffdc 100644 --- a/src/w32inevt.h +++ b/src/w32inevt.h @@ -21,12 +21,12 @@ Boston, MA 02111-1307, USA. */ #ifndef EMACS_W32INEVT_H #define EMACS_W32INEVT_H -extern int w32_console_read_socket (int sd, struct input_event *bufp, +extern int w32_console_read_socket (int sd, struct input_event *bufp, int numchars, int expected); -extern void w32_console_mouse_position (FRAME_PTR *f, int insist, - Lisp_Object *bar_window, - enum scroll_bar_part *part, - Lisp_Object *x, Lisp_Object *y, +extern void w32_console_mouse_position (FRAME_PTR *f, int insist, + Lisp_Object *bar_window, + enum scroll_bar_part *part, + Lisp_Object *x, Lisp_Object *y, unsigned long *time); #endif /* EMACS_W32INEVT_H */ diff --git a/src/w32menu.c b/src/w32menu.c index 632685c337d..dbf14aaeeb8 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -69,7 +69,7 @@ typedef struct _widget_value char* name; /* value (meaning depend on widget type) */ char* value; - /* keyboard equivalent. no implications for XtTranslations */ + /* keyboard equivalent. no implications for XtTranslations */ char* key; /* Help string or nil if none. GC finds this string through the frame's menu_bar_vector @@ -500,7 +500,7 @@ single_keymap_panes (keymap, pane_name, prefix, notreal, maxdepth) /* This is a subroutine of single_keymap_panes that handles one keymap entry. - KEY is a key in a keymap and ITEM is its binding. + KEY is a key in a keymap and ITEM is its binding. PENDING_MAPS_PTR points to a list of keymaps waiting to be made into separate panes. If NOTREAL is nonzero, only check for equivalent key bindings, don't @@ -516,7 +516,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth) Lisp_Object map, item_string, enabled; struct gcpro gcpro1, gcpro2; int res; - + /* Parse the menu item and leave the result in item_properties. */ GCPRO2 (key, item); res = parse_menu_item (item, notreal, 0); @@ -525,7 +525,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth) return; /* Not a menu item. */ map = AREF (item_properties, ITEM_PROPERTY_MAP); - + if (notreal) { /* We don't want to make a menu, just traverse the keymaps to @@ -536,7 +536,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth) } enabled = AREF (item_properties, ITEM_PROPERTY_ENABLE); - item_string = AREF (item_properties, ITEM_PROPERTY_NAME); + item_string = AREF (item_properties, ITEM_PROPERTY_NAME); if (!NILP (map) && SREF (item_string, 0) == '@') { @@ -811,7 +811,7 @@ cached information about equivalent key sequences. */) keymaps = 0; } - + if (NILP (position)) { discard_menu_items (); @@ -828,8 +828,8 @@ cached information about equivalent key sequences. */) discard_menu_items (); UNGCPRO; return Qnil; - } - + } + /* Display them in a menu. */ BLOCK_INPUT; @@ -974,7 +974,7 @@ on the left of the dialog box and all following items on the right. But first we recompute the menu bar contents (the whole tree). This way we can safely execute Lisp code. */ - + void x_activate_menubar (f) FRAME_PTR f; @@ -1105,7 +1105,7 @@ free_menubar_widget_value_tree (wv) widget_value *wv; { if (! wv) return; - + wv->name = wv->value = wv->key = (char *) 0xDEADBEEF; if (wv->contents && (wv->contents != (widget_value*)1)) @@ -1171,7 +1171,7 @@ parse_single_submenu (item_key, item_name, maps) item_key, 0, 10); } } - + return top_level_items; } @@ -1200,7 +1200,7 @@ digest_single_submenu (start, end, top_level_items) first_wv = wv; save_wv = 0; prev_wv = 0; - + /* Loop over all panes and items made by the preceding call to parse_single_submenu and construct a tree of widget_value objects. Ignore the panes and items used by previous calls to @@ -1304,7 +1304,7 @@ digest_single_submenu (start, end, top_level_items) #endif /* not HAVE_MULTILINGUAL_MENU */ wv = xmalloc_widget_value (); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else save_wv->contents = wv; @@ -1477,7 +1477,7 @@ set_frame_menubar (f, first_time, deep_p) menu_items_n_panes = submenu_n_panes[i]; wv = digest_single_submenu (submenu_start[i], submenu_end[i], submenu_top_level_items[i]); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else first_wv->contents = wv; @@ -1559,7 +1559,7 @@ set_frame_menubar (f, first_time, deep_p) This value just has to be different from small integers. */ wv->call_data = (void *) (EMACS_INT) (-1); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else first_wv->contents = wv; @@ -1595,7 +1595,7 @@ set_frame_menubar (f, first_time, deep_p) f->output_data.w32->menubar_widget = menubar_widget; SetMenu (FRAME_W32_WINDOW (f), f->output_data.w32->menubar_widget); - /* Causes flicker when menu bar is updated + /* Causes flicker when menu bar is updated DrawMenuBar (FRAME_W32_WINDOW (f)); */ /* Force the window size to be recomputed so that the frame's text @@ -1697,7 +1697,7 @@ w32_menu_show (f, x, y, for_click, keymaps, title, error) wv->help = Qnil; first_wv = wv; first_pane = 1; - + /* Loop over all panes and items, filling in the tree. */ i = 0; while (i < menu_items_used) @@ -1800,9 +1800,9 @@ w32_menu_show (f, x, y, for_click, keymaps, title, error) #endif /* not HAVE_MULTILINGUAL_MENU */ wv = xmalloc_widget_value (); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; - else + else save_wv->contents = wv; wv->name = (char *) SDATA (item_name); if (!NILP (descrip)) @@ -1872,7 +1872,7 @@ w32_menu_show (f, x, y, for_click, keymaps, title, error) menu_item_selection = 0; /* Display the menu. */ - menu_item_selection = SendMessage (FRAME_W32_WINDOW (f), + menu_item_selection = SendMessage (FRAME_W32_WINDOW (f), WM_EMACS_TRACKPOPUPMENU, (WPARAM)menu, (LPARAM)&pos); @@ -1981,7 +1981,7 @@ w32_dialog_show (f, keymaps, title, error) pane_name = AREF (menu_items, MENU_ITEMS_PANE_NAME); prefix = AREF (menu_items, MENU_ITEMS_PANE_PREFIX); pane_string = (NILP (pane_name) - ? "" : (char *) SDATA (pane_name)); + ? "" : (char *) SDATA (pane_name)); prev_wv = xmalloc_widget_value (); prev_wv->value = pane_string; if (keymaps && !NILP (prefix)) @@ -1990,12 +1990,12 @@ w32_dialog_show (f, keymaps, title, error) prev_wv->name = "message"; prev_wv->help = Qnil; first_wv = prev_wv; - + /* Loop over all panes and items, filling in the tree. */ i = MENU_ITEMS_PANE_LENGTH; while (i < menu_items_used) { - + /* Create a new item within current pane. */ Lisp_Object item_name, enable, descrip, help; @@ -2003,7 +2003,7 @@ w32_dialog_show (f, keymaps, title, error) enable = AREF (menu_items, i + MENU_ITEMS_ITEM_ENABLE); descrip = AREF (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY); help = AREF (menu_items, i + MENU_ITEMS_ITEM_HELP); - + if (NILP (item_name)) { free_menubar_widget_value_tree (first_wv); @@ -2087,7 +2087,7 @@ w32_dialog_show (f, keymaps, title, error) /* Process events that apply to the menu. */ popup_get_selection ((XEvent *) 0, FRAME_X_DISPLAY_INFO (f), dialog_id); - lw_destroy_all_widgets (dialog_id); + lw_destroy_all_widgets (dialog_id); /* Find the selected item, and its pane, to return the proper value. */ @@ -2164,7 +2164,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) fuFlags = MF_SEPARATOR; out_string = NULL; } - else + else { if (wv->enabled) fuFlags = MF_STRING; diff --git a/src/w32proc.c b/src/w32proc.c index c009582b1c7..7241784925c 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -120,11 +120,11 @@ typedef void (_CALLBACK_ *signal_handler)(int); static signal_handler sig_handlers[NSIG]; /* Fake signal implementation to record the SIGCHLD handler. */ -signal_handler +signal_handler sys_signal (int sig, signal_handler handler) { signal_handler old; - + if (sig != SIGCHLD) { errno = EINVAL; @@ -151,7 +151,7 @@ new_child (void) { child_process *cp; DWORD id; - + for (cp = child_procs+(child_proc_count-1); cp >= child_procs; cp--) if (!CHILD_ACTIVE (cp)) goto Initialise; @@ -182,7 +182,7 @@ new_child (void) return NULL; } -void +void delete_child (child_process *cp) { int i; @@ -257,14 +257,14 @@ find_child_pid (DWORD pid) is normally blocked until woken by select() to check for input by reading one char. When the read completes, char_avail is signalled to wake up the select emulator and the thread blocks itself again. */ -DWORD WINAPI +DWORD WINAPI reader_thread (void *arg) { child_process *cp; - + /* Our identity */ cp = (child_process *)arg; - + /* We have to wait for the go-ahead before we can start */ if (cp == NULL || WaitForSingleObject (cp->char_consumed, INFINITE) != WAIT_OBJECT_0) @@ -287,11 +287,11 @@ reader_thread (void *arg) if (rc == STATUS_READ_ERROR) return 1; - + /* If the read died, the child has died so let the thread die */ if (rc == STATUS_READ_FAILED) break; - + /* Wait until our input is acknowledged before reading again */ if (WaitForSingleObject (cp->char_consumed, INFINITE) != WAIT_OBJECT_0) { @@ -308,7 +308,7 @@ reader_thread (void *arg) sys_spawnve, and is not generally valid at any other time. */ static char * process_dir; -static BOOL +static BOOL create_child (char *exe, char *cmdline, char *env, int is_gui_app, int * pPid, child_process *cp) { @@ -319,12 +319,12 @@ create_child (char *exe, char *cmdline, char *env, int is_gui_app, #endif DWORD flags; char dir[ MAXPATHLEN ]; - + if (cp == NULL) abort (); - + memset (&start, 0, sizeof (start)); start.cb = sizeof (start); - + #ifdef HAVE_NTGUI if (NILP (Vw32_start_process_show_window) && !is_gui_app) start.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; @@ -347,7 +347,7 @@ create_child (char *exe, char *cmdline, char *env, int is_gui_app, sec_attrs.nLength = sizeof (sec_attrs); sec_attrs.lpSecurityDescriptor = NULL /* &sec_desc */; sec_attrs.bInheritHandle = FALSE; - + strcpy (dir, process_dir); unixtodos_filename (dir); @@ -383,22 +383,22 @@ create_child (char *exe, char *cmdline, char *env, int is_gui_app, to register the handle with the process This way the select emulator knows how to match file handles with entries in child_procs. */ -void +void register_child (int pid, int fd) { child_process *cp; - + cp = find_child_pid (pid); if (cp == NULL) { DebPrint (("register_child unable to find pid %lu\n", pid)); return; } - + #ifdef FULL_DEBUG DebPrint (("register_child registered fd %d with pid %lu\n", fd, pid)); #endif - + cp->fd = fd; /* thread is initially blocked until select is called; set status so @@ -419,7 +419,7 @@ register_child (int pid, int fd) signal failure to the select emulator. The select emulator then calls this routine to clean up. Since the thread signaled failure we can assume it is exiting. */ -static void +static void reap_subprocess (child_process *cp) { if (cp->procinfo.hProcess) @@ -448,7 +448,7 @@ reap_subprocess (child_process *cp) When it does, close its handle Return the pid and fill in the status if non-NULL. */ -int +int sys_wait (int *status) { DWORD active, retval; @@ -456,7 +456,7 @@ sys_wait (int *status) int pid; child_process *cp, *cps[MAX_CHILDREN]; HANDLE wait_hnd[MAX_CHILDREN]; - + nh = 0; if (dead_child != NULL) { @@ -479,7 +479,7 @@ sys_wait (int *status) nh++; } } - + if (nh == 0) { /* Nothing to wait on, so fail */ @@ -535,7 +535,7 @@ get_result: retval = SIGINT; else retval <<= 8; - + cp = cps[active]; pid = cp->pid; #ifdef FULL_DEBUG @@ -571,7 +571,7 @@ get_result: } reap_subprocess (cp); - + return pid; } @@ -580,7 +580,7 @@ w32_executable_type (char * filename, int * is_dos_app, int * is_cygnus_app, int { file_data executable; char * p; - + /* Default values in case we can't tell for sure. */ *is_dos_app = FALSE; *is_cygnus_app = FALSE; @@ -590,7 +590,7 @@ w32_executable_type (char * filename, int * is_dos_app, int * is_cygnus_app, int return; p = strrchr (filename, '.'); - + /* We can only identify DOS .com programs from the extension. */ if (p && stricmp (p, ".com") == 0) *is_dos_app = TRUE; @@ -623,11 +623,11 @@ w32_executable_type (char * filename, int * is_dos_app, int * is_cygnus_app, int nt_header = (PIMAGE_NT_HEADERS) ((char *) dos_header + dos_header->e_lfanew); - if ((char *) nt_header > (char *) dos_header + executable.size) + if ((char *) nt_header > (char *) dos_header + executable.size) { /* Some dos headers (pkunzip) have bogus e_lfanew fields. */ *is_dos_app = TRUE; - } + } else if (nt_header->Signature != IMAGE_NT_SIGNATURE && LOWORD (nt_header->Signature) != IMAGE_OS2_SIGNATURE) { @@ -664,7 +664,7 @@ w32_executable_type (char * filename, int * is_dos_app, int * is_cygnus_app, int *is_gui_app = (nt_header->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_GUI); } } - + unwind: close_file_data (&executable); } @@ -717,7 +717,7 @@ merge_and_sort_env (char **envp1, char **envp2, char **new_envp) /* When a new child process is created we need to register it in our list, so intercept spawn requests. */ -int +int sys_spawnve (int mode, char *cmdname, char **argv, char **envp) { Lisp_Object program, full; @@ -746,7 +746,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) if (NILP (Ffile_executable_p (program))) { struct gcpro gcpro1; - + full = Qnil; GCPRO1 (program); openp (Vexec_path, program, Vexec_suffixes, &full, make_number (X_OK)); @@ -789,7 +789,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) } unixtodos_filename (cmdname); } - + /* we have to do some conjuring here to put argv and envp into the form CreateProcess wants... argv needs to be a space separated/null terminated list of parameters, and envp is a null @@ -830,8 +830,8 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) else escape_char = is_cygnus_app ? '"' : '\\'; } - - /* Cygwin apps needs quoting a bit more often */ + + /* Cygwin apps needs quoting a bit more often */ if (escape_char == '"') sepchars = "\r\n\t\f '"; @@ -966,7 +966,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) targ++; } *--parg = '\0'; - + /* and envp... */ arglen = 1; targ = envp; @@ -977,7 +977,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) numenv++; } /* extra env vars... */ - sprintf (ppid_env_var_buffer, "EM_PARENT_PROCESS_ID=%d", + sprintf (ppid_env_var_buffer, "EM_PARENT_PROCESS_ID=%d", GetCurrentProcessId ()); arglen += strlen (ppid_env_var_buffer) + 1; numenv++; @@ -1004,7 +1004,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) errno = EAGAIN; return -1; } - + /* Now create the process. */ if (!create_child (cmdname, cmdline, env, is_gui_app, &pid, cp)) { @@ -1012,7 +1012,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) errno = ENOEXEC; return -1; } - + return pid; } @@ -1043,7 +1043,7 @@ extern HANDLE interrupt_handle; /* From process.c */ extern int proc_buffered_char[]; -int +int sys_select (int nfds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds, EMACS_TIME *timeout) { @@ -1054,11 +1054,11 @@ sys_select (int nfds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds, child_process *cp, *cps[MAX_CHILDREN]; HANDLE wait_hnd[MAXDESC + MAX_CHILDREN]; int fdindex[MAXDESC]; /* mapping from wait handles back to descriptors */ - + timeout_ms = timeout ? (timeout->tv_sec * 1000 + timeout->tv_usec / 1000) : INFINITE; /* If the descriptor sets are NULL but timeout isn't, then just Sleep. */ - if (rfds == NULL && wfds == NULL && efds == NULL && timeout != NULL) + if (rfds == NULL && wfds == NULL && efds == NULL && timeout != NULL) { Sleep (timeout_ms); return 0; @@ -1070,7 +1070,7 @@ sys_select (int nfds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds, errno = EINVAL; return -1; } - + orfds = *rfds; FD_ZERO (rfds); nr = 0; @@ -1078,7 +1078,7 @@ sys_select (int nfds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds, /* Always wait on interrupt_handle, to detect C-g (quit). */ wait_hnd[0] = interrupt_handle; fdindex[0] = -1; - + /* Build a list of pipe handles to wait on. */ nh = 1; for (i = 0; i < nfds; i++) @@ -1195,15 +1195,15 @@ count_children: cps[nc] = cp; nc++; } - + /* Nothing to look for, so we didn't find anything */ - if (nh + nc == 0) + if (nh + nc == 0) { if (timeout) Sleep (timeout_ms); return 0; } - + start_time = GetTickCount (); /* Wait for input or child death to be signalled. If user input is @@ -1362,14 +1362,14 @@ find_child_console (HWND hwnd, LPARAM arg) return TRUE; } -int +int sys_kill (int pid, int sig) { child_process *cp; HANDLE proc_hand; int need_to_free = 0; int rc = 0; - + /* Only handle signals that will result in the process dying */ if (sig != SIGINT && sig != SIGKILL && sig != SIGQUIT && sig != SIGHUP) { @@ -1396,7 +1396,7 @@ sys_kill (int pid, int sig) /* Try to locate console window for process. */ EnumWindows (find_child_console, (LPARAM) cp); } - + if (sig == SIGINT || sig == SIGQUIT) { if (NILP (Vw32_start_process_share_console) && cp && cp->hwnd) @@ -1572,15 +1572,15 @@ prepare_standard_handles (int in, int out, int err, HANDLE handles[3]) handles[2] = GetStdHandle (STD_ERROR_HANDLE); /* make inheritable copies of the new handles */ - if (!DuplicateHandle (parent, + if (!DuplicateHandle (parent, (HANDLE) _get_osfhandle (in), parent, - &newstdin, - 0, - TRUE, + &newstdin, + 0, + TRUE, DUPLICATE_SAME_ACCESS)) report_file_error ("Duplicating input handle for child", Qnil); - + if (!DuplicateHandle (parent, (HANDLE) _get_osfhandle (out), parent, @@ -1589,7 +1589,7 @@ prepare_standard_handles (int in, int out, int err, HANDLE handles[3]) TRUE, DUPLICATE_SAME_ACCESS)) report_file_error ("Duplicating output handle for child", Qnil); - + if (!DuplicateHandle (parent, (HANDLE) _get_osfhandle (err), parent, @@ -1602,7 +1602,7 @@ prepare_standard_handles (int in, int out, int err, HANDLE handles[3]) /* and store them as our std handles */ if (!SetStdHandle (STD_INPUT_HANDLE, newstdin)) report_file_error ("Changing stdin handle", Qnil); - + if (!SetStdHandle (STD_OUTPUT_HANDLE, newstdout)) report_file_error ("Changing stdout handle", Qnil); @@ -1933,7 +1933,7 @@ human-readable form. */) return make_number (GetUserDefaultLCID ()); } - + DEFUN ("w32-set-current-locale", Fw32_set_current_locale, Sw32_set_current_locale, 1, 1, 0, doc: /* Make Windows locale LCID be the current locale setting for Emacs. If successful, the new locale id is returned, otherwise nil. */) @@ -1990,7 +1990,7 @@ DEFUN ("w32-get-console-codepage", Fw32_get_console_codepage, return make_number (GetConsoleCP ()); } - + DEFUN ("w32-set-console-codepage", Fw32_set_console_codepage, Sw32_set_console_codepage, 1, 1, 0, doc: /* Make Windows codepage CP be the current codepage setting for Emacs. @@ -2019,7 +2019,7 @@ DEFUN ("w32-get-console-output-codepage", Fw32_get_console_output_codepage, return make_number (GetConsoleOutputCP ()); } - + DEFUN ("w32-set-console-output-codepage", Fw32_set_console_output_codepage, Sw32_set_console_output_codepage, 1, 1, 0, doc: /* Make Windows codepage CP be the current codepage setting for Emacs. @@ -2099,7 +2099,7 @@ The return value is the cons of the language id and the layout id. */) make_number ((kl >> 16) & 0xffff)); } - + DEFUN ("w32-set-keyboard-layout", Fw32_set_keyboard_layout, Sw32_set_keyboard_layout, 1, 1, 0, doc: /* Make LAYOUT be the current keyboard layout for Emacs. @@ -2218,7 +2218,7 @@ process temporarily). A value of zero disables waiting entirely. */); This applies when performing completions and file name expansion. Note that the value of this setting also affects remote file names, so you probably don't want to set to non-nil if you use case-sensitive -filesystems via ange-ftp. */); +filesystems via ange-ftp. */); Vw32_downcase_file_names = Qnil; #if 0 diff --git a/src/w32reg.c b/src/w32reg.c index 6a8413fdc08..3a2bd1b68d9 100644 --- a/src/w32reg.c +++ b/src/w32reg.c @@ -30,7 +30,7 @@ Boston, MA 02111-1307, USA. */ #define REG_ROOT "SOFTWARE\\GNU\\Emacs" -LPBYTE +LPBYTE w32_get_string_resource (name, class, dwexptype) char *name, *class; DWORD dwexptype; @@ -41,23 +41,23 @@ w32_get_string_resource (name, class, dwexptype) DWORD cbData; BOOL ok = FALSE; HKEY hive = HKEY_CURRENT_USER; - + trykey: BLOCK_INPUT; - + /* Check both the current user and the local machine to see if we have any resources */ if (RegOpenKeyEx (hive, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS) { char *keyname; - + if (RegQueryValueEx (hrootkey, name, NULL, &dwType, NULL, &cbData) == ERROR_SUCCESS && dwType == dwexptype) { keyname = name; - } + } else if (RegQueryValueEx (hrootkey, class, NULL, &dwType, NULL, &cbData) == ERROR_SUCCESS && dwType == dwexptype) { @@ -67,17 +67,17 @@ w32_get_string_resource (name, class, dwexptype) { keyname = NULL; } - + ok = (keyname && (lpvalue = (LPBYTE) xmalloc (cbData)) != NULL && RegQueryValueEx (hrootkey, keyname, NULL, NULL, lpvalue, &cbData) == ERROR_SUCCESS); - + RegCloseKey (hrootkey); } - + UNBLOCK_INPUT; - - if (!ok) + + if (!ok) { if (lpvalue) { @@ -90,7 +90,7 @@ w32_get_string_resource (name, class, dwexptype) goto trykey; } return (NULL); - } + } return (lpvalue); } diff --git a/src/w32term.h b/src/w32term.h index bc99e0f36f2..667bf9a5b45 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -66,7 +66,7 @@ extern struct frame *x_window_to_frame (); /* Structure recording bitmaps and reference count. If REFCOUNT is 0 then this record is free to be reused. */ -struct w32_bitmap_record +struct w32_bitmap_record { Pixmap pixmap; char *file; @@ -337,7 +337,7 @@ struct w32_output /* Foreground color for scroll bars. A value of -1 means use the default (black for non-toolkit scroll bars). */ COLORREF scroll_bar_foreground_pixel; - + /* Background color for scroll bars. A value of -1 means use the default (background color of the frame for non-toolkit scroll bars). */ @@ -355,7 +355,7 @@ struct w32_output /* Window whose cursor is hourglass_cursor. This window is temporarily mapped to display an hourglass cursor. */ Window hourglass_window; - + /* Non-zero means hourglass cursor is currently displayed. */ unsigned hourglass_p : 1; @@ -595,7 +595,7 @@ struct scroll_bar { /* Return the length of the rectangle within which the top of the handle must stay. This isn't equivalent to the inside height, - because the scroll bar handle has a minimum height. + because the scroll bar handle has a minimum height. This is the real range of motion for the scroll bar, so when we're scaling buffer positions to scroll bar positions, we use this, not @@ -658,7 +658,7 @@ struct scroll_bar { + (f)->output_data.w32->internal_border_width) -/* Return the row/column (zero-based) of the character cell containing +/* Return the row/column (zero-based) of the character cell containing the pixel on FRAME at ROW/COL. */ #define PIXEL_TO_CHAR_ROW(f, row) \ (((row) - (f)->output_data.w32->internal_border_width) \ @@ -739,11 +739,11 @@ extern void x_fullscreen_adjust P_ ((struct frame *f, int *, int *, #define WM_EMACS_SETCURSOR (WM_EMACS_START + 19) #define WM_EMACS_END (WM_EMACS_START + 20) -#define WND_FONTWIDTH_INDEX (0) -#define WND_LINEHEIGHT_INDEX (4) -#define WND_BORDER_INDEX (8) -#define WND_SCROLLBAR_INDEX (12) -#define WND_BACKGROUND_INDEX (16) +#define WND_FONTWIDTH_INDEX (0) +#define WND_LINEHEIGHT_INDEX (4) +#define WND_BORDER_INDEX (8) +#define WND_SCROLLBAR_INDEX (12) +#define WND_BACKGROUND_INDEX (16) #define WND_LAST_INDEX (20) #define WND_EXTRA_BYTES (WND_LAST_INDEX) @@ -831,7 +831,7 @@ extern BOOL parse_button (); #define WM_MOUSELEAVE 0x02A3 #define TME_LEAVE 0x00000002; -typedef struct tagTRACKMOUSEEVENT +typedef struct tagTRACKMOUSEEVENT { DWORD cbSize; DWORD dwFlags; diff --git a/src/w32xfns.c b/src/w32xfns.c index 689a2829eb3..887320aa746 100644 --- a/src/w32xfns.c +++ b/src/w32xfns.c @@ -38,7 +38,7 @@ extern HANDLE keyboard_handle; HANDLE input_available = NULL; HANDLE interrupt_handle = NULL; -void +void init_crit () { InitializeCriticalSection (&critsect); @@ -56,7 +56,7 @@ init_crit () interrupt_handle = CreateEvent (NULL, TRUE, FALSE, NULL); } -void +void delete_crit () { DeleteCriticalSection (&critsect); @@ -160,33 +160,33 @@ int_msg *lpHead = NULL; int_msg *lpTail = NULL; int nQueue = 0; -BOOL +BOOL get_next_msg (lpmsg, bWait) W32Msg * lpmsg; BOOL bWait; { BOOL bRet = FALSE; - + enter_crit (); - + /* The while loop takes care of multiple sets */ - + while (!nQueue && bWait) { leave_crit (); WaitForSingleObject (input_available, INFINITE); enter_crit (); } - + if (nQueue) { bcopy (&(lpHead->w32msg), lpmsg, sizeof (W32Msg)); { int_msg * lpCur = lpHead; - + lpHead = lpHead->lpNext; - + myfree (lpCur); } @@ -197,13 +197,13 @@ get_next_msg (lpmsg, bWait) if (nQueue == 0) ResetEvent (input_available); - + leave_crit (); - + return (bRet); } -BOOL +BOOL post_msg (lpmsg) W32Msg * lpmsg; { @@ -221,14 +221,14 @@ post_msg (lpmsg) { lpTail->lpNext = lpNew; } - else + else { lpHead = lpNew; } lpTail = lpNew; SetEvent (input_available); - + leave_crit (); return (TRUE); @@ -277,7 +277,7 @@ drain_message_queue () * It returns a bitmask that indicates which of the four values * were actually found in the string. For each value found, * the corresponding argument is updated; for each value - * not found, the corresponding argument is left unchanged. + * not found, the corresponding argument is left unchanged. */ static int @@ -287,7 +287,7 @@ read_integer (string, NextString) { register int Result = 0; int Sign = 1; - + if (*string == '+') string++; else if (*string == '-') @@ -306,7 +306,7 @@ read_integer (string, NextString) return (-Result); } -int +int XParseGeometry (string, x, y, width, height) char *string; int *x, *y; @@ -317,23 +317,23 @@ XParseGeometry (string, x, y, width, height) unsigned int tempWidth, tempHeight; int tempX, tempY; char *nextCharacter; - + if ((string == NULL) || (*string == '\0')) return (mask); if (*string == '=') string++; /* ignore possible '=' at beg of geometry spec */ - + strind = (char *)string; - if (*strind != '+' && *strind != '-' && *strind != 'x') + if (*strind != '+' && *strind != '-' && *strind != 'x') { tempWidth = read_integer (strind, &nextCharacter); - if (strind == nextCharacter) + if (strind == nextCharacter) return (0); strind = nextCharacter; mask |= WidthValue; } - - if (*strind == 'x' || *strind == 'X') - { + + if (*strind == 'x' || *strind == 'X') + { strind++; tempHeight = read_integer (strind, &nextCharacter); if (strind == nextCharacter) @@ -341,10 +341,10 @@ XParseGeometry (string, x, y, width, height) strind = nextCharacter; mask |= HeightValue; } - - if ((*strind == '+') || (*strind == '-')) + + if ((*strind == '+') || (*strind == '-')) { - if (*strind == '-') + if (*strind == '-') { strind++; tempX = -read_integer (strind, &nextCharacter); @@ -355,7 +355,7 @@ XParseGeometry (string, x, y, width, height) } else - { + { strind++; tempX = read_integer (strind, &nextCharacter); if (strind == nextCharacter) @@ -363,9 +363,9 @@ XParseGeometry (string, x, y, width, height) strind = nextCharacter; } mask |= XValue; - if ((*strind == '+') || (*strind == '-')) + if ((*strind == '+') || (*strind == '-')) { - if (*strind == '-') + if (*strind == '-') { strind++; tempY = -read_integer (strind, &nextCharacter); @@ -386,12 +386,12 @@ XParseGeometry (string, x, y, width, height) mask |= YValue; } } - + /* If strind isn't at the end of the string the it's an invalid geometry specification. */ - + if (*strind != '\0') return (0); - + if (mask & XValue) *x = tempX; if (mask & YValue) diff --git a/src/widget.c b/src/widget.c index f71193585e6..0bdac7b0bff 100644 --- a/src/widget.c +++ b/src/widget.c @@ -296,7 +296,7 @@ set_frame_size (ew) (the menubar and the parent of the menubar and all that sort of thing are managed by lwlib.) - The EmacsShell widget is simply a replacement for the Shell widget + The EmacsShell widget is simply a replacement for the Shell widget which is able to deal with using an externally-supplied window instead of always creating its own. It is not actually emacs specific, and should possibly have class "Shell" instead of "EmacsShell" to simplify @@ -307,13 +307,13 @@ set_frame_size (ew) /* Hairily merged geometry */ unsigned int w = ew->emacs_frame.frame->width; unsigned int h = ew->emacs_frame.frame->height; - + Widget wmshell = get_wm_shell ((Widget) ew); /* Each Emacs shell is now independent and top-level. */ - + if (! XtIsSubclass (wmshell, shellWidgetClass)) abort (); - /* We don't need this for the moment. The geometry is computed in + /* We don't need this for the moment. The geometry is computed in xfns.c. */ #if 0 /* If the EmacsFrame doesn't have a geometry but the shell does, @@ -326,20 +326,20 @@ set_frame_size (ew) this bogus? I'm not sure.) */ if (!ew->emacs_frame.iconic) XtVaGetValues (wmshell, XtNiconic, &ew->emacs_frame.iconic, NULL); - - + + { char *geom = 0; XtVaGetValues (app_shell, XtNgeometry, &geom, NULL); if (geom) app_flags = XParseGeometry (geom, &app_x, &app_y, &app_w, &app_h); } - + if (ew->emacs_frame.geometry) frame_flags = XParseGeometry (ew->emacs_frame.geometry, &frame_x, &frame_y, &frame_w, &frame_h); - + if (first_frame_p) { /* If this is the first frame created: @@ -516,7 +516,7 @@ update_wm_hints (ew) &char_width, &char_height); char_to_pixel_size (ew, char_width, char_height, &rounded_width, &rounded_height); - get_default_char_pixel_size (ew, &cw, &ch); + get_default_char_pixel_size (ew, &cw, &ch); base_width = (wmshell->core.width - ew->core.width + (rounded_width - (char_width * cw))); @@ -531,7 +531,7 @@ update_wm_hints (ew) XtVaSetValues (wmshell, XtNbaseWidth, (XtArgVal) base_width, XtNbaseHeight, (XtArgVal) base_height, - XtNwidthInc, (XtArgVal) cw, + XtNwidthInc, (XtArgVal) cw, XtNheightInc, (XtArgVal) ch, XtNminWidth, (XtArgVal) (base_width + min_cols * cw), XtNminHeight, (XtArgVal) (base_height + min_rows * ch), @@ -667,7 +667,7 @@ update_from_various_frame_slots (ew) ew->core.border_pixel = x->border_pixel; } -static void +static void EmacsFrameInitialize (request, new, dum1, dum2) Widget request; Widget new; @@ -706,7 +706,7 @@ EmacsFrameInitialize (request, new, dum1, dum2) face_res.default_addr = 0; XtGetSubresources ((Widget) ew, (XtPointer) &f, "default", "Face", &face_res, 1, NULL, 0); - + if (f) ew->emacs_frame.font = f; else if (! ew->emacs_frame.font) @@ -721,7 +721,7 @@ EmacsFrameInitialize (request, new, dum1, dum2) #endif update_from_various_frame_slots (ew); - set_frame_size (ew); + set_frame_size (ew); /*create_frame_gcs (ew); setup_frame_gcs (ew); update_various_frame_slots (ew); */ @@ -745,7 +745,7 @@ EmacsFrameRealize (widget, mask, attrs) *mask |= CWEventMask; XtCreateWindow (widget, InputOutput, (Visual *)CopyFromParent, *mask, attrs); - update_wm_hints (ew); + update_wm_hints (ew); } extern void free_frame_faces (/* struct frame * */); @@ -781,7 +781,7 @@ EmacsFrameResize (widget) pixel_to_char_size (ew, ew->core.width, ew->core.height, &columns, &rows); change_frame_size (f, rows, columns, 0, 1, 0); - update_wm_hints (ew); + update_wm_hints (ew); update_various_frame_slots (ew); cancel_mouse_face (f); @@ -806,14 +806,14 @@ EmacsFrameSetValues (cur_widget, req_widget, new_widget, dum1, dum2) int char_width, char_height; Dimension pixel_width; Dimension pixel_height; - + has_to_recompute_gcs = (cur->emacs_frame.font != new->emacs_frame.font || (cur->emacs_frame.foreground_pixel != new->emacs_frame.foreground_pixel) || (cur->core.background_pixel != new->core.background_pixel) ); - + has_to_recompute_size = (cur->emacs_frame.font != new->emacs_frame.font && cur->core.width == new->core.width && cur->core.height == new->core.height); @@ -825,7 +825,7 @@ EmacsFrameSetValues (cur_widget, req_widget, new_widget, dum1, dum2) setup_frame_gcs (new); needs_a_refresh = True; } - + if (has_to_recompute_size) { pixel_width = new->core.width; @@ -906,7 +906,7 @@ EmacsFrameSetCharSize (widget, columns, rows) EmacsFrame ew = (EmacsFrame) widget; Dimension pixel_width, pixel_height; struct frame *f = ew->emacs_frame.frame; - + if (columns < 3) columns = 3; /* no way buddy */ check_frame_size (f, &rows, &columns); @@ -968,7 +968,7 @@ EmacsFrameSetCharSize (widget, columns, rows) #ifdef SIGIO sigblock (sigmask (SIGIO)); #endif - + /* Do parents first, otherwise LessTif's geometry management enters an infinite loop (as of 2000-01-15). This is fixed in later versions of LessTif (as of 2001-03-13); I'll leave it @@ -991,7 +991,7 @@ EmacsFrameSetCharSize (widget, columns, rows) sigunblock (sigmask (SIGIO)); #endif turn_on_atimers (1); - + lw_refigure_widget (f->output_data.x->column_widget, True); update_hints_inhibit = 0; diff --git a/src/widgetprv.h b/src/widgetprv.h index 91a64c16025..d7bec41289c 100644 --- a/src/widgetprv.h +++ b/src/widgetprv.h @@ -38,7 +38,7 @@ typedef struct { /* The rest of this is crap and should be deleted. */ int minibuffer; /* 0: normal frames with minibuffers. - * 1: frames without minibuffers + * 1: frames without minibuffers * 2: minibuffer only. */ Boolean unsplittable; /* frame can only have one window */ diff --git a/src/window.c b/src/window.c index 83440f440cc..302eef2414d 100644 --- a/src/window.c +++ b/src/window.c @@ -451,11 +451,11 @@ window so that the location of point becomes invisible. */) CHECK_NUMBER (ncol); hscroll = max (0, XINT (ncol)); - + /* Prevent redisplay shortcuts when changing the hscroll. */ if (XINT (w->hscroll) != hscroll) XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1; - + w->hscroll = make_number (hscroll); return ncol; } @@ -543,7 +543,7 @@ coordinates_in_window (w, x, y) if (*x < x0 || *x >= x1) return ON_NOTHING; - + /* In what's below, we subtract 1 when computing right_x because we want the rightmost pixel, which is given by left_pixel+width-1. */ if (w->pseudo_window_p) @@ -578,7 +578,7 @@ coordinates_in_window (w, x, y) as the vertical border. If scroll bars on the left, return the right window. */ part = ON_MODE_LINE; - + if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)) { if (abs (*x - x0) < grabbable_width) @@ -592,7 +592,7 @@ coordinates_in_window (w, x, y) && *y >= top_y) { part = ON_HEADER_LINE; - + if (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)) { if (abs (*x - x0) < grabbable_width) @@ -626,7 +626,7 @@ coordinates_in_window (w, x, y) { /* Other lines than the mode line don't include fringes and scroll bars on the left. */ - + /* Convert X and Y to window-relative pixel coordinates. */ *x -= left_x; *y -= top_y; @@ -659,7 +659,7 @@ coordinates_in_window (w, x, y) { /* Other lines than the mode line don't include fringes and scroll bars on the left. */ - + /* Convert X and Y to window-relative pixel coordinates. */ *x -= left_x; *y -= top_y; @@ -744,7 +744,7 @@ If they are in the windows's left or right marginal areas, `left-margin'\n\ case ON_TEXT: /* X and Y are now window relative pixel coordinates. Convert them to canonical char units before returning them. */ - return Fcons (CANON_X_FROM_PIXEL_X (f, x), + return Fcons (CANON_X_FROM_PIXEL_X (f, x), CANON_Y_FROM_PIXEL_Y (f, y)); case ON_MODE_LINE: @@ -758,13 +758,13 @@ If they are in the windows's left or right marginal areas, `left-margin'\n\ case ON_LEFT_FRINGE: return Qleft_fringe; - + case ON_RIGHT_FRINGE: return Qright_fringe; case ON_LEFT_MARGIN: return Qleft_margin; - + case ON_RIGHT_MARGIN: return Qright_margin; @@ -805,7 +805,7 @@ check_window_containing (w, user_data) XSETWINDOW (*cw->window, w); continue_p = 0; } - + return continue_p; } @@ -839,7 +839,7 @@ window_from_coordinates (f, x, y, part, tool_bar_p) window = Qnil; cw.window = &window, cw.x = &x, cw.y = &y; cw.part = part; foreach_window (f, check_window_containing, &cw); - + /* If not found above, see if it's in the tool bar window, if a tool bar exists. */ if (NILP (window) @@ -876,7 +876,7 @@ column 0. */) CHECK_NUMBER_OR_FLOAT (x); CHECK_NUMBER_OR_FLOAT (y); - return window_from_coordinates (f, + return window_from_coordinates (f, PIXEL_X_FROM_CANON_X (f, x), PIXEL_Y_FROM_CANON_Y (f, y), &part, 0); @@ -976,13 +976,13 @@ if it isn't already recorded. */) old_buffer = current_buffer; set_buffer_internal (b); } - + start_display (&it, w, startp); move_it_vertically (&it, window_box_height (w)); if (it.current_y < it.last_visible_y) move_it_past_eol (&it); value = make_number (IT_CHARPOS (it)); - + if (old_buffer) set_buffer_internal (old_buffer); } @@ -1010,7 +1010,7 @@ DEFUN ("set-window-point", Fset_window_point, Sset_window_point, 2, 2, 0, the new value of point. */ if (!EQ (window, selected_window)) ++windows_or_buffers_changed; - + return pos; } @@ -1093,7 +1093,7 @@ window_display_table (w) else if (BUFFERP (w->buffer)) { struct buffer *b = XBUFFER (w->buffer); - + if (DISP_TABLE_P (b->display_table)) dp = XCHAR_TABLE (b->display_table); else if (DISP_TABLE_P (Vstandard_display_table)) @@ -1159,7 +1159,7 @@ unshow_buffer (w) clip_to_bounds (BUF_BEGV_BYTE (b), marker_byte_position (w->pointm), BUF_ZV_BYTE (b))); - + if (WINDOWP (b->last_selected_window) && w == XWINDOW (b->last_selected_window)) b->last_selected_window = Qnil; @@ -1441,7 +1441,7 @@ window_list () Vwindow_list = Fnconc (2, args); } } - + return Vwindow_list; } @@ -1518,14 +1518,14 @@ decode_next_window_args (window, minibuf, all_frames) *window = selected_window; else CHECK_LIVE_WINDOW (*window); - + /* MINIBUF nil may or may not include minibuffers. Decide if it does. */ if (NILP (*minibuf)) *minibuf = minibuf_level ? minibuf_window : Qlambda; else if (!EQ (*minibuf, Qt)) *minibuf = Qlambda; - + /* Now *MINIBUF can be t => count all minibuffer windows, `lambda' => count none of them, or a specific minibuffer window (the active one) to count. */ @@ -1543,7 +1543,7 @@ decode_next_window_args (window, minibuf, all_frames) ; else if (!EQ (*all_frames, Qt)) *all_frames = Qnil; - + /* Now *ALL_FRAMES is t meaning search all frames, nil meaning search just current frame, `visible' meaning search just visible frames, 0 meaning search visible and iconified frames, or a @@ -1563,17 +1563,17 @@ next_window (window, minibuf, all_frames, next_p) int next_p; { decode_next_window_args (&window, &minibuf, &all_frames); - + /* If ALL_FRAMES is a frame, and WINDOW isn't on that frame, just return the first window on the frame. */ if (FRAMEP (all_frames) && !EQ (all_frames, XWINDOW (window)->frame)) return Fframe_first_window (all_frames); - + if (next_p) { Lisp_Object list; - + /* Find WINDOW in the list of all windows. */ list = Fmemq (window, window_list ()); @@ -1597,7 +1597,7 @@ next_window (window, minibuf, all_frames, next_p) else { Lisp_Object candidate, list; - + /* Scan through the list of windows for candidates. If there are candidate windows in front of WINDOW, the last one of these is the one we want. If there are candidates following WINDOW @@ -1703,7 +1703,7 @@ argument ALL_FRAMES is non-nil, cycle through all frames. */) CHECK_NUMBER (arg); window = selected_window; - + for (i = XINT (arg); i > 0; --i) window = Fnext_window (window, Qnil, all_frames); for (; i < 0; ++i) @@ -1748,11 +1748,11 @@ window_list_1 (window, minibuf, all_frames) decode_next_window_args (&window, &minibuf, &all_frames); list = Qnil; - + for (tail = window_list (); CONSP (tail); tail = XCDR (tail)) if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) list = Fcons (XCAR (tail), list); - + return Fnreverse (list); } @@ -1787,7 +1787,7 @@ window_loop (type, obj, mini, frames) Lisp_Object window, windows, best_window, frame_arg; struct frame *f; struct gcpro gcpro1; - + /* If we're only looping through windows on a particular frame, frame points to that frame. If we're looping through windows on all frames, frame is 0. */ @@ -1797,7 +1797,7 @@ window_loop (type, obj, mini, frames) f = SELECTED_FRAME (); else f = NULL; - + if (f) frame_arg = Qlambda; else if (XFASTINT (frames) == 0) @@ -1826,10 +1826,10 @@ window_loop (type, obj, mini, frames) for (; CONSP (windows); windows = CDR (windows)) { struct window *w; - + window = XCAR (windows); w = XWINDOW (window); - + /* Note that we do not pay attention here to whether the frame is visible, since Fwindow_list skips non-visible frames if that is desired, under the control of frame_arg. */ @@ -1891,7 +1891,7 @@ window_loop (type, obj, mini, frames) && EQ (XWINDOW (XCAR (windows))->frame, XWINDOW (XCAR (XCDR (windows)))->frame)) windows = XCDR (windows); - + /* Now we can safely delete the frame. */ Fdelete_frame (w->frame, Qnil); } @@ -1916,7 +1916,7 @@ window_loop (type, obj, mini, frames) /* Ignore dedicated windows and minibuffers. */ if (MINI_WINDOW_P (w) || EQ (w->dedicated, Qt)) break; - + if (NILP (best_window)) best_window = window; else @@ -1934,10 +1934,10 @@ window_loop (type, obj, mini, frames) { Lisp_Object buffer; struct frame *f = XFRAME (w->frame); - + /* Find another buffer to show in this window. */ buffer = Fother_buffer (obj, Qnil, w->frame); - + /* If this window is dedicated, and in a frame of its own, kill the frame. */ if (EQ (window, FRAME_ROOT_WINDOW (f)) @@ -1950,7 +1950,7 @@ window_loop (type, obj, mini, frames) && EQ (XWINDOW (XCAR (windows))->frame, XWINDOW (XCAR (XCDR (windows)))->frame)) windows = XCDR (windows); - + /* Now we can safely delete the frame. */ Fdelete_frame (w->frame, Qnil); } @@ -2136,7 +2136,7 @@ If FRAME is a frame, search only that frame. */) CHECK_BUFFER (buffer); window_loop (DELETE_BUFFER_WINDOWS, buffer, 0, frame); } - + return Qnil; } @@ -2212,7 +2212,7 @@ check_frame_size (frame, rows, cols) = ((FRAME_MINIBUF_ONLY_P (frame) || ! FRAME_HAS_MINIBUF_P (frame)) ? MIN_SAFE_WINDOW_HEIGHT : 2 * MIN_SAFE_WINDOW_HEIGHT); - + if (FRAME_TOP_MARGIN (frame) > 0) min_height += FRAME_TOP_MARGIN (frame); @@ -2236,11 +2236,11 @@ window_fixed_size_p (w, width_p, check_siblings_p) { int fixed_p; struct window *c; - + if (!NILP (w->hchild)) { c = XWINDOW (w->hchild); - + if (width_p) { /* A horiz. combination is fixed-width if all of if its @@ -2261,7 +2261,7 @@ window_fixed_size_p (w, width_p, check_siblings_p) else if (!NILP (w->vchild)) { c = XWINDOW (w->vchild); - + if (width_p) { /* A vert. combination is fixed-width if one of if its @@ -2287,7 +2287,7 @@ window_fixed_size_p (w, width_p, check_siblings_p) { struct buffer *old = current_buffer; Lisp_Object val; - + current_buffer = XBUFFER (w->buffer); val = find_symbol_value (Qwindow_size_fixed); current_buffer = old; @@ -2296,7 +2296,7 @@ window_fixed_size_p (w, width_p, check_siblings_p) if (!EQ (val, Qunbound)) { fixed_p = !NILP (val); - + if (fixed_p && ((EQ (val, Qheight) && width_p) || (EQ (val, Qwidth) && !width_p))) @@ -2309,7 +2309,7 @@ window_fixed_size_p (w, width_p, check_siblings_p) if (!fixed_p && check_siblings_p && WINDOWP (w->parent)) { Lisp_Object child; - + for (child = w->prev; !NILP (child); child = XWINDOW (child)->prev) if (!window_fixed_size_p (XWINDOW (child), width_p, 0)) break; @@ -2328,7 +2328,7 @@ window_fixed_size_p (w, width_p, check_siblings_p) return fixed_p; } - + /* Return the minimum size of window W, not taking fixed-width windows into account. WIDTH_P non-zero means return the minimum width, @@ -2342,12 +2342,12 @@ window_min_size_1 (w, width_p) { struct window *c; int size; - + if (!NILP (w->hchild)) { c = XWINDOW (w->hchild); size = 0; - + if (width_p) { /* The min width of a horizontal combination is @@ -2374,7 +2374,7 @@ window_min_size_1 (w, width_p) { c = XWINDOW (w->vchild); size = 0; - + if (width_p) { /* The min width of a vertical combination is @@ -2433,15 +2433,15 @@ window_min_size (w, width_p, ignore_fixed_p, fixed) fixed_p = 0; else fixed_p = window_fixed_size_p (w, width_p, 1); - + if (fixed) *fixed = fixed_p; - + if (fixed_p) size = width_p ? XFASTINT (w->width) : XFASTINT (w->height); else size = window_min_size_1 (w, width_p); - + return size; } @@ -2470,7 +2470,7 @@ size_window (window, size, width_p, nodelete_p) check_min_window_sizes (); size = max (0, size); - + /* If the window has been "too small" at one point, don't delete it for being "too small" in the future. Preserve it as long as that is at all possible. */ @@ -2495,7 +2495,7 @@ size_window (window, size, width_p, nodelete_p) min_size = width_p ? MIN_SAFE_WINDOW_WIDTH : MIN_SAFE_WINDOW_HEIGHT; else min_size = width_p ? window_min_width : window_min_height; - + if (size < min_size) { delete_window (window); @@ -2547,11 +2547,11 @@ size_window (window, size, width_p, nodelete_p) for (child = *forward; !NILP (child); child = c->next, ++nchildren) { int child_size; - + c = XWINDOW (child); child_size = width_p ? XINT (c->width) : XINT (c->height); total += child_size; - + if (window_fixed_size_p (c, width_p, 0)) { fixed_size += child_size; @@ -2576,7 +2576,7 @@ size_window (window, size, width_p, nodelete_p) for (child = *forward; !NILP (child); child = c->next) { int new_size, old_size; - + c = XWINDOW (child); old_size = width_p ? XFASTINT (c->width) : XFASTINT (c->height); new_size = old_size; @@ -2594,7 +2594,7 @@ size_window (window, size, width_p, nodelete_p) new_size = old_size + each + extra; extra = 0; } - + /* Set new height. Note that size_window also propagates edge positions to children, so it's not a no-op if we didn't change the child's size. */ @@ -2607,7 +2607,7 @@ size_window (window, size, width_p, nodelete_p) /* We should have covered the parent exactly with child windows. */ xassert (size == last_pos - first_pos); - + /* Now delete any children that became too small. */ if (!nodelete_p) for (child = *forward; !NILP (child); child = c->next) @@ -2779,7 +2779,7 @@ selects the buffer of the selected window before each command. */) /* Note that selected_window can be nil when this is called from Fset_window_configuration. */ - + static Lisp_Object select_window_1 (window, recordflag) register Lisp_Object window; @@ -2862,9 +2862,9 @@ display_buffer_1 (window) { Lisp_Object frame = XWINDOW (window)->frame; FRAME_PTR f = XFRAME (frame); - + FRAME_SAMPLE_VISIBILITY (f); - + if (!EQ (frame, selected_frame)) { if (FRAME_ICONIFIED_P (f)) @@ -2872,7 +2872,7 @@ display_buffer_1 (window) else if (FRAME_VISIBLE_P (f)) Fraise_frame (frame); } - + return window; } @@ -2908,7 +2908,7 @@ See `special-display-buffer-names', and `special-display-regexps'. */) return XCDR (car); } return Qnil; -} +} DEFUN ("same-window-p", Fsame_window_p, Ssame_window_p, 1, 1, 0, doc: /* Returns non-nil if a new buffer named BUFFER-NAME would use the same window. @@ -3011,7 +3011,7 @@ displayed. */) XSETFASTINT (tem, 0); else XSETFRAME (tem, last_nonminibuf_frame); - + window = Fget_buffer_window (buffer, tem); if (!NILP (window) && (NILP (not_this_window) || !EQ (window, selected_window))) @@ -3418,7 +3418,7 @@ window_width (window) return XFASTINT (p->width); } - + #define CURBEG(w) \ *(widthflag ? &(XWINDOW (w)->left) : &(XWINDOW (w)->top)) @@ -3461,19 +3461,19 @@ enlarge_window (window, delta, widthflag, preserve_before) { p = XWINDOW (window); parent = p->parent; - + if (NILP (parent)) { if (widthflag) error ("No other window to side of this one"); break; } - + if (widthflag ? !NILP (XWINDOW (parent)->hchild) : !NILP (XWINDOW (parent)->vchild)) break; - + window = parent; } @@ -3563,19 +3563,19 @@ enlarge_window (window, delta, widthflag, preserve_before) { if (this_one > delta) this_one = delta; - + (*setsizefun) (next, (*sizefun) (next) - this_one, 0); (*setsizefun) (window, XINT (*sizep) + this_one, 0); delta -= this_one; } - + next = XWINDOW (next)->next; } - + if (delta == 0) break; - + if (!preserve_before && ! NILP (prev)) { int this_one = ((*sizefun) (prev) @@ -3585,15 +3585,15 @@ enlarge_window (window, delta, widthflag, preserve_before) { if (this_one > delta) this_one = delta; - + first_affected = prev; - + (*setsizefun) (prev, (*sizefun) (prev) - this_one, 0); (*setsizefun) (window, XINT (*sizep) + this_one, 0); delta -= this_one; } - + prev = XWINDOW (prev)->prev; } } @@ -3657,7 +3657,7 @@ enlarge_window (window, delta, widthflag, preserve_before) The function size_window will compute the new height h' of the window from delta1 as: - + e = delta1/n x = delta1 - delta1/n * n for the 1st resizable child h' = h + e + x @@ -3665,11 +3665,11 @@ enlarge_window (window, delta, widthflag, preserve_before) where n is the number of children that can be resized. We can ignore x by choosing a delta1 that is a multiple of n. We want the height of this window to come out as - + h' = h + delta So, delta1 must be - + h + e = h + delta delta1/n = delta delta1 = n * delta. @@ -3731,7 +3731,7 @@ enum save_restore_action RESTORE_ORIG_SIZES }; -static int save_restore_orig_size P_ ((struct window *, +static int save_restore_orig_size P_ ((struct window *, enum save_restore_action)); /* Shrink windows rooted in window W to HEIGHT. Take the space needed @@ -3773,7 +3773,7 @@ shrink_window_lowest_first (w, height) int last_top; last_child = Qnil; - + /* Find the last child. We are taking space from lowest windows first, so we iterate over children from the last child backwards. */ @@ -3784,7 +3784,7 @@ shrink_window_lowest_first (w, height) for (child = last_child; delta && !NILP (child); child = c->prev) { int this_one; - + c = XWINDOW (child); this_one = XFASTINT (c->height) - MIN_SAFE_WINDOW_HEIGHT; @@ -3814,7 +3814,7 @@ shrink_window_lowest_first (w, height) If ACTION is CHECK_ORIG_SIZES, check if orig_top and orig_height members are valid for all windows in the window tree. Value is non-zero if they are valid. - + If ACTION is SAVE_ORIG_SIZES, save members top and height in orig_top and orig_height for all windows in the tree. @@ -3840,7 +3840,7 @@ save_restore_orig_size (w, action) if (!save_restore_orig_size (XWINDOW (w->vchild), action)) success_p = 0; } - + switch (action) { case CHECK_ORIG_SIZES: @@ -3885,10 +3885,10 @@ grow_mini_window (w, delta) { struct frame *f = XFRAME (w->frame); struct window *root; - + xassert (MINI_WINDOW_P (w)); xassert (delta >= 0); - + /* Check values of window_min_width and window_min_height for validity. */ check_min_window_sizes (); @@ -3904,7 +3904,7 @@ grow_mini_window (w, delta) min_height. */ delta = max (0, XFASTINT (root->height) - min_height); } - + if (delta) { /* Save original window sizes and positions, if not already done. */ @@ -3919,7 +3919,7 @@ grow_mini_window (w, delta) w->height = make_number (XFASTINT (w->height) + delta); XSETFASTINT (w->last_modified, 0); XSETFASTINT (w->last_overlay_modified, 0); - + adjust_glyphs (f); } } @@ -4085,7 +4085,7 @@ window_scroll_pixel_based (window, n, whole, noerror) int vscrolled = 0; SET_TEXT_POS_FROM_MARKER (start, w->start); - + /* If PT is not visible in WINDOW, move back one half of the screen. Allow PT to be partially visible, otherwise something like (scroll-down 1) with PT in the line before @@ -4099,7 +4099,7 @@ window_scroll_pixel_based (window, n, whole, noerror) init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID); it.current_y = it.last_visible_y; move_it_vertically (&it, - window_box_height (w) / 2); - + /* The function move_iterator_vertically may move over more than the specified y-distance. If it->w is small, e.g. a mini-buffer window, we may end up in front of the window's @@ -4207,9 +4207,9 @@ window_scroll_pixel_based (window, n, whole, noerror) window-scroll-functions. */ w->force_start = Qt; } - + it.current_y = it.vpos = 0; - + /* Preserve the screen position if we must. */ if (preserve_y >= 0) { @@ -4250,7 +4250,7 @@ window_scroll_pixel_based (window, n, whole, noerror) /* Save our position, in case it's correct. */ charpos = IT_CHARPOS (it); bytepos = IT_BYTEPOS (it); - + /* See if point is on a partially visible line at the end. */ move_it_by_lines (&it, 1, 1); if (it.current_y > it.last_visible_y) @@ -4584,7 +4584,7 @@ by this function. */) Lisp_Object result; int hscroll; struct window *w = XWINDOW (selected_window); - + if (NILP (arg)) XSETFASTINT (arg, window_internal_width (w) - 2); else @@ -4614,7 +4614,7 @@ by this function. */) Lisp_Object result; int hscroll; struct window *w = XWINDOW (selected_window); - + if (NILP (arg)) XSETFASTINT (arg, window_internal_width (w) - 2); else @@ -4622,7 +4622,7 @@ by this function. */) hscroll = XINT (w->hscroll) - XINT (arg); result = Fset_window_hscroll (selected_window, make_number (hscroll)); - + if (interactive_p (0)) w->min_hscroll = w->hscroll; @@ -4754,7 +4754,7 @@ and redisplay normally--don't erase and redraw the frame. */) { struct it it; struct text_pos pt; - + SET_TEXT_POS (pt, PT, PT_BYTE); start_display (&it, w, pt); move_it_vertically (&it, - window_box_height (w) / 2); @@ -4766,7 +4766,7 @@ and redisplay normally--don't erase and redraw the frame. */) struct it it; struct text_pos pt; int y0, y1, h, nlines; - + SET_TEXT_POS (pt, PT, PT_BYTE); start_display (&it, w, pt); y0 = it.current_y; @@ -4783,7 +4783,7 @@ and redisplay normally--don't erase and redraw the frame. */) the end of the buffer, count in some empty lines. */ if (it.vpos < nlines) y1 += (nlines - it.vpos) * CANON_Y_UNIT (it.f); - + h = window_box_height (w) - (y1 - y0); start_display (&it, w, pt); @@ -4808,7 +4808,7 @@ and redisplay normally--don't erase and redraw the frame. */) arg = make_number (ht / 2); else if (XINT (arg) < 0) arg = make_number (XINT (arg) + ht); - + pos = *vmotion (PT, - XINT (arg), w); charpos = pos.bufpos; bytepos = pos.bytepos; @@ -4817,14 +4817,14 @@ and redisplay normally--don't erase and redraw the frame. */) /* Set the new window start. */ set_marker_both (w->start, w->buffer, charpos, bytepos); w->window_end_valid = Qnil; - + w->optional_new_start = Qt; if (bytepos == BEGV_BYTE || FETCH_BYTE (bytepos - 1) == '\n') w->start_at_line_beg = Qt; else w->start_at_line_beg = Qnil; - + set_buffer_internal (obuf); return Qnil; } @@ -5000,7 +5000,7 @@ the return value is nil. Otherwise the value is t. */) frame = XWINDOW (SAVED_WINDOW_N (saved_windows, 0)->window)->frame; f = XFRAME (frame); - + /* If f is a dead frame, don't bother rebuilding its window tree. However, there is other stuff we should still try to do below. */ if (FRAME_LIVE_P (f)) @@ -5057,7 +5057,7 @@ the return value is nil. Otherwise the value is t. */) FRAME_WINDOW_SIZES_CHANGED (f) = 1; /* Problem: Freeing all matrices and later allocating them again - is a serious redisplay flickering problem. What we would + is a serious redisplay flickering problem. What we would really like to do is to free only those matrices not reused below. */ root_window = XWINDOW (FRAME_ROOT_WINDOW (f)); @@ -5192,7 +5192,7 @@ the return value is nil. Otherwise the value is t. */) set_marker_restricted (XWINDOW (data->current_window)->pointm, make_number (old_point), XWINDOW (data->current_window)->buffer); - + Fselect_window (data->current_window); XBUFFER (XWINDOW (selected_window)->buffer)->last_selected_window = selected_window; @@ -5231,14 +5231,14 @@ the return value is nil. Otherwise the value is t. */) if (NILP (leaf_windows[i]->buffer)) { /* Assert it's not reused as a combination. */ - xassert (NILP (leaf_windows[i]->hchild) + xassert (NILP (leaf_windows[i]->hchild) && NILP (leaf_windows[i]->vchild)); free_window_matrices (leaf_windows[i]); } else if (EQ (leaf_windows[i]->buffer, new_current_buffer)) ++n; } - + adjust_glyphs (f); UNBLOCK_INPUT; @@ -5314,7 +5314,7 @@ count_windows (window) } -/* Fill vector FLAT with leaf windows under W, starting at index I. +/* Fill vector FLAT with leaf windows under W, starting at index I. Value is last index + 1. */ static int @@ -5329,7 +5329,7 @@ get_leaf_windows (w, flat, i) i = get_leaf_windows (XWINDOW (w->hchild), flat, i); else if (!NILP (w->vchild)) i = get_leaf_windows (XWINDOW (w->vchild), flat, i); - else + else flat[i++] = w; w = NILP (w->next) ? 0 : XWINDOW (w->next); @@ -5541,7 +5541,7 @@ A nil width parameter means no margin. */) XSETFASTINT (left, 0); if (INTEGERP (left) && XFASTINT (left) == 0) left = Qnil; - + if ((INTEGERP (right) && XINT (right) < 0) || (FLOATP (right) && XFLOAT_DATA (right) <= 0)) XSETFASTINT (right, 0); @@ -5587,14 +5587,14 @@ Value is a multiple of the canonical character height of WINDOW. */) Lisp_Object result; struct frame *f; struct window *w; - + if (NILP (window)) window = selected_window; else CHECK_WINDOW (window); w = XWINDOW (window); f = XFRAME (w->frame); - + if (FRAME_WINDOW_P (f)) result = CANON_Y_FROM_PIXEL_Y (f, -w->vscroll); else @@ -5613,20 +5613,20 @@ multiple of the canonical character height of WINDOW. */) { struct window *w; struct frame *f; - + if (NILP (window)) window = selected_window; else CHECK_WINDOW (window); CHECK_NUMBER_OR_FLOAT (vscroll); - + w = XWINDOW (window); f = XFRAME (w->frame); if (FRAME_WINDOW_P (f)) { int old_dy = w->vscroll; - + w->vscroll = - CANON_Y_UNIT (f) * XFLOATINT (vscroll); w->vscroll = min (w->vscroll, 0); @@ -5634,14 +5634,14 @@ multiple of the canonical character height of WINDOW. */) area becomes larger than before. */ if (w->vscroll < 0 && w->vscroll < old_dy) adjust_glyphs (f); - + /* Prevent redisplay shortcuts. */ XBUFFER (w->buffer)->prevent_redisplay_optimizations_p = 1; } - + return Fwindow_vscroll (window); } - + /* Call FN for all leaf windows on frame F. FN is called with the first argument being a pointer to the leaf window, and with @@ -5669,16 +5669,16 @@ foreach_window_1 (w, fn, user_data) void *user_data; { int cont; - + for (cont = 1; w && cont;) { if (!NILP (w->hchild)) cont = foreach_window_1 (XWINDOW (w->hchild), fn, user_data); else if (!NILP (w->vchild)) cont = foreach_window_1 (XWINDOW (w->vchild), fn, user_data); - else + else cont = fn (w, user_data); - + w = NILP (w->next) ? 0 : XWINDOW (w->next); } @@ -5701,7 +5701,7 @@ freeze_window_start (w, freeze_p) && ! NILP (Vminibuf_scroll_window) && w == XWINDOW (Vminibuf_scroll_window))) freeze_p = NULL; - + w->frozen_window_start_p = freeze_p != NULL; return 1; } @@ -5740,7 +5740,7 @@ compare_window_configurations (c1, c2, ignore_positions) wrong_type_argument (Qwindow_configuration_p, c1); if (!WINDOW_CONFIGURATIONP (c2)) wrong_type_argument (Qwindow_configuration_p, c2); - + d1 = (struct save_window_data *) XVECTOR (c1); d2 = (struct save_window_data *) XVECTOR (c2); sw1 = XVECTOR (d1->saved_windows); @@ -5871,7 +5871,7 @@ syms_of_window () { Qwindow_size_fixed = intern ("window-size-fixed"); staticpro (&Qwindow_size_fixed); - + staticpro (&Qwindow_configuration_change_hook); Qwindow_configuration_change_hook = intern ("window-configuration-change-hook"); diff --git a/src/window.h b/src/window.h index 141d482bb60..5f76163231a 100644 --- a/src/window.h +++ b/src/window.h @@ -212,7 +212,7 @@ struct window /* Original window height and top before mini-window was enlarged. */ Lisp_Object orig_height, orig_top; - + /* No Lisp data may follow below this point without changing mark_object in alloc.c. The member current_matrix must be the first non-Lisp member. */ @@ -228,17 +228,17 @@ struct window /* Intended cursor position. This is a position within the glyph matrix. */ struct cursor_pos cursor; - + /* Where the cursor actually is. */ struct cursor_pos phys_cursor; - - /* Cursor type and width of last cursor drawn on the window. + + /* Cursor type and width of last cursor drawn on the window. Used for X and w32 frames; -1 initially. */ int phys_cursor_type, phys_cursor_width; /* This is handy for undrawing the cursor. */ int phys_cursor_ascent, phys_cursor_height; - + /* Non-zero means the cursor is currently displayed. This can be set to zero by functions overpainting the cursor image. */ unsigned phys_cursor_on_p : 1; @@ -261,7 +261,7 @@ struct window /* Amount by which lines of this window are scrolled in y-direction (smooth scrolling). */ int vscroll; - + /* Z_BYTE - the buffer position of the last glyph in the current matrix of W. Only valid if WINDOW_END_VALID is not nil. */ int window_end_bytepos; @@ -284,7 +284,7 @@ struct window /* Return the window column at which the text in window W starts. This is different from the `left' field because it does not include a left-hand scroll bar if any. */ - + #define WINDOW_LEFT_MARGIN(W) \ (XFASTINT ((W)->left) \ + FRAME_LEFT_SCROLL_BAR_WIDTH (XFRAME (WINDOW_FRAME (W)))) @@ -305,16 +305,16 @@ struct window ? FRAME_SCROLL_BAR_COLS (XFRAME (WINDOW_FRAME (W))) \ : 0)) -/* 1 if window W takes up the full width of its frame. */ +/* 1 if window W takes up the full width of its frame. */ #define WINDOW_FULL_WIDTH_P(W) \ (XFASTINT ((W)->width) == FRAME_WINDOW_WIDTH (XFRAME (WINDOW_FRAME (W)))) -/* 1 if window W's has no other windows to its right in its frame. */ +/* 1 if window W's has no other windows to its right in its frame. */ #define WINDOW_RIGHTMOST_P(W) \ (WINDOW_RIGHT_EDGE (W) == FRAME_WINDOW_WIDTH (XFRAME (WINDOW_FRAME (W)))) - + /* This is the window in which the terminal's cursor should be left when nothing is being done with it. This must diff --git a/src/xdisp.c b/src/xdisp.c index edbf69dfe78..5d3602366da 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8001,7 +8001,7 @@ redisplay_tool_bar (f) struct it it; struct glyph_row *row; int change_height_p = 0; - + #ifdef USE_GTK if (FRAME_EXTERNAL_TOOL_BAR(f)) update_frame_tool_bar (f); @@ -10908,7 +10908,7 @@ redisplay_window (window, just_this_one_p) redisplay_tool_bar_p = WINDOWP (f->tool_bar_window) && (FRAME_TOOL_BAR_LINES (f) > 0 || auto_resize_tool_bars_p); - + #endif if (redisplay_tool_bar_p) diff --git a/src/xfaces.c b/src/xfaces.c index 4dd0d76155f..bf942be245f 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -494,7 +494,7 @@ static int font_list_1 P_ ((struct frame *, Lisp_Object, Lisp_Object, Lisp_Object, struct font_name **)); static int font_list P_ ((struct frame *, Lisp_Object, Lisp_Object, Lisp_Object, struct font_name **)); -static int try_font_list P_ ((struct frame *, Lisp_Object *, +static int try_font_list P_ ((struct frame *, Lisp_Object *, Lisp_Object, Lisp_Object, struct font_name **, int)); static int try_alternative_families P_ ((struct frame *f, Lisp_Object, @@ -974,13 +974,13 @@ clear_face_cache (clear_fonts_p) || ++clear_font_table_count == CLEAR_FONT_TABLE_COUNT) { struct x_display_info *dpyinfo; - + /* Fonts are common for frames on one display, i.e. on one X screen. */ for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next) if (dpyinfo->n_fonts > CLEAR_FONT_TABLE_NFONTS) clear_font_table (dpyinfo); - + /* From time to time see if we can unload some fonts. This also frees all realized faces on all frames. Fonts needed by faces will be loaded again when faces are realized again. */ @@ -1401,7 +1401,7 @@ tty_defined_color (f, color_name, color_def, alloc) int status = 1; /* Defaults. */ - color_def->pixel = FACE_TTY_DEFAULT_COLOR; + color_def->pixel = FACE_TTY_DEFAULT_COLOR; color_def->red = 0; color_def->blue = 0; color_def->green = 0; @@ -2238,7 +2238,7 @@ xlfd_point_size (f, font) } else pixel = atoi (pixel_field); - + if (pixel == 0) real_pt = 0; else @@ -2306,7 +2306,7 @@ split_font_name (f, font, numeric_p) { char *start, *end; int j; - + for (++p; *p && *p != ']'; ++p) if (*p == '~') *p = '-'; @@ -2689,7 +2689,7 @@ concat_font_list (fonts1, nfonts1, fonts2, nfonts2) If REGISTRY is non-nil, return fonts with that registry and the alternative registries from Vface_alternative_font_registry_alist. - + If REGISTRY is nil return fonts of any registry. Set *FONTS to a vector of font_name structures allocated from the @@ -2703,7 +2703,7 @@ font_list (f, pattern, family, registry, fonts) struct font_name **fonts; { int nfonts = font_list_1 (f, pattern, family, registry, fonts); - + if (!NILP (registry) && CONSP (Vface_alternative_font_registry_alist)) { @@ -3167,7 +3167,7 @@ lface_fully_specified_p (attrs) for (i = 1; i < LFACE_VECTOR_SIZE; ++i) if (i != LFACE_FONT_INDEX && i != LFACE_INHERIT_INDEX && i != LFACE_AVGWIDTH_INDEX) - if (UNSPECIFIEDP (attrs[i])) + if (UNSPECIFIEDP (attrs[i])) break; return i == LFACE_VECTOR_SIZE; @@ -4308,7 +4308,7 @@ set_font_frame_param (frame, lface) { Lisp_Object font_name; char *font; - + if (STRINGP (LFACE_FONT (lface))) font_name = LFACE_FONT (lface); else @@ -4322,7 +4322,7 @@ set_font_frame_param (frame, lface) font_name = build_string (font); xfree (font); } - + Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, font_name), Qnil)); } } @@ -4524,7 +4524,7 @@ x_update_menu_appearance (f) #else const char *popup_path = "menu.popup"; #endif - + if (STRINGP (LFACE_FOREGROUND (lface))) { sprintf (line, "%s.%s*foreground: %s", @@ -4548,7 +4548,7 @@ x_update_menu_appearance (f) XrmPutLineResource (&rdb, line); changed_p = 1; } - + if (face->font_name && (!UNSPECIFIEDP (LFACE_FAMILY (lface)) || !UNSPECIFIEDP (LFACE_SWIDTH (lface)) @@ -4579,7 +4579,7 @@ x_update_menu_appearance (f) #endif /* HAVE_X_WINDOWS && USE_X_TOOLKIT */ -DEFUN ("face-attribute-relative-p", Fface_attribute_relative_p, +DEFUN ("face-attribute-relative-p", Fface_attribute_relative_p, Sface_attribute_relative_p, 2, 2, 0, doc: /* Return non-nil if face ATTRIBUTE VALUE is relative. */) @@ -5252,7 +5252,7 @@ substitution of a `dim' face for italic. */) else if (weight < XLFD_WEIGHT_MEDIUM) test_caps = TTY_CAP_DIM; } - + /* underlining */ val = attrs[LFACE_UNDERLINE_INDEX]; if (!UNSPECIFIEDP (val) && !NILP (val)) @@ -6286,7 +6286,7 @@ best_matching_font (f, attrs, fonts, nfonts, width_ratio, needs_overstrike) REGISTRY, if a string, specifies a font registry and encoding to match. A value of nil means include fonts of any registry and encoding. - + Return in *FONTS a pointer to a vector of font_name structures for the fonts matched. Value is the number of fonts found. */ @@ -6314,7 +6314,7 @@ try_alternative_families (f, family, registry, fonts) nfonts = font_list (f, Qnil, XCAR (alter), registry, fonts); } } - + /* Try scalable fonts before giving up. */ if (nfonts == 0 && NILP (Vscalable_fonts_allowed)) { @@ -6337,7 +6337,7 @@ try_alternative_families (f, family, registry, fonts) REGISTRY, if a string, specifies a font registry and encoding to match. A value of nil means include fonts of any registry and encoding. - + If PREFER_FACE_FAMILY is nonzero, perfer face's family to FAMILY. Otherwise, prefer FAMILY. @@ -6388,7 +6388,7 @@ try_font_list (f, attrs, family, registry, fonts, prefer_face_family) family = build_string ("fixed"); nfonts = font_list (f, Qnil, family, registry, fonts); } - + /* Try any family with the given registry. */ if (nfonts == 0) nfonts = font_list (f, Qnil, Qnil, registry, fonts); @@ -6447,7 +6447,7 @@ choose_face_font (f, attrs, fontset, c, needs_overstrike) xassert (!SINGLE_BYTE_CHAR_P (c)); return NULL; } - + /* If what we got is a name pattern, return it. */ if (STRINGP (pattern)) return xstrdup (SDATA (pattern)); @@ -6510,7 +6510,7 @@ realize_basic_faces (f) x_update_menu_appearance (f); #endif } - + success_p = 1; } @@ -6954,10 +6954,10 @@ map_tty_color (f, face, idx, defaulted) pixel = default_pixel = FACE_TTY_DEFAULT_BG_COLOR; default_other_pixel = FACE_TTY_DEFAULT_FG_COLOR; } - + XSETFRAME (frame, f); color = face->lface[idx]; - + if (STRINGP (color) && SCHARS (color) && CONSP (Vtty_defined_color_alist) @@ -7052,7 +7052,7 @@ realize_tty_face (cache, attrs, c) /* Map color names to color indices. */ map_tty_color (f, face, LFACE_FOREGROUND_INDEX, &face_colors_defaulted); map_tty_color (f, face, LFACE_BACKGROUND_INDEX, &face_colors_defaulted); - + /* Swap colors if face is inverse-video. If the colors are taken from the frame colors, they are already inverted, since the frame-creation function calls x-handle-reverse-video. */ diff --git a/src/xfns.c b/src/xfns.c index 9612d1c80ce..44a54dafe2c 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -288,11 +288,11 @@ check_x_display_info (frame) Lisp_Object frame; { struct x_display_info *dpyinfo = NULL; - + if (NILP (frame)) { struct frame *sf = XFRAME (selected_frame); - + if (FRAME_X_P (sf) && FRAME_LIVE_P (sf)) dpyinfo = FRAME_X_DISPLAY_INFO (sf); else if (x_display_list != 0) @@ -336,7 +336,7 @@ x_window_to_frame (dpyinfo, wdesc) if (f->output_data.x->hourglass_window == wdesc) return f; #ifdef USE_X_TOOLKIT - if ((f->output_data.x->edit_widget + if ((f->output_data.x->edit_widget && XtWindow (f->output_data.x->edit_widget) == wdesc) /* A tooltip frame? */ || (!f->output_data.x->edit_widget @@ -380,7 +380,7 @@ x_any_window_to_frame (dpyinfo, wdesc) frame = XCAR (tail); if (!GC_FRAMEP (frame)) continue; - + f = XFRAME (frame); if (FRAME_X_P (f) && FRAME_X_DISPLAY_INFO (f) == dpyinfo) { @@ -399,8 +399,8 @@ x_any_window_to_frame (dpyinfo, wdesc) || gwdesc == x->menubar_widget)) found = f; #else - if (wdesc == XtWindow (x->widget) - || wdesc == XtWindow (x->column_widget) + if (wdesc == XtWindow (x->widget) + || wdesc == XtWindow (x->column_widget) || wdesc == XtWindow (x->edit_widget)) found = f; /* Match if the window is this frame's menubar. */ @@ -413,7 +413,7 @@ x_any_window_to_frame (dpyinfo, wdesc) found = f; } } - + return found; } @@ -450,8 +450,8 @@ x_non_menubar_window_to_frame (dpyinfo, wdesc) || gwdesc == x->vbox_widget)) return f; #else - if (wdesc == XtWindow (x->widget) - || wdesc == XtWindow (x->column_widget) + if (wdesc == XtWindow (x->widget) + || wdesc == XtWindow (x->column_widget) || wdesc == XtWindow (x->edit_widget)) return f; #endif @@ -489,7 +489,7 @@ x_menubar_window_to_frame (dpyinfo, wdesc) { GtkWidget *gwdesc = xg_win_to_widget (wdesc); int found = 0; - + BLOCK_INPUT; if (gwdesc != 0 && (gwdesc == x->menubar_widget @@ -543,7 +543,7 @@ x_top_window_to_frame (dpyinfo, wdesc) but it seems logically wrong, and it causes trouble for MapNotify events. */ /* Match if the window is this frame's menubar. */ - if (x->menubar_widget + if (x->menubar_widget && wdesc == XtWindow (x->menubar_widget)) return f; #endif @@ -860,7 +860,7 @@ static struct x_frame_parm_table x_frame_parms[] = {"right-fringe", x_set_fringe_width}, {"wait-for-wm", x_set_wait_for_wm}, {"fullscreen", x_set_fullscreen}, - + }; /* Attach the `x-frame-parameter' properties to @@ -979,7 +979,7 @@ x_set_frame_parameters (f, alist) cursor_color) are dependent upon them. */ /* Process default font as well, since fringe widths depends on it. */ /* Also, process fullscreen, width and height depend upon that */ - for (p = 0; p < i; p++) + for (p = 0; p < i; p++) { Lisp_Object prop, val; @@ -994,7 +994,7 @@ x_set_frame_parameters (f, alist) old_value = get_frame_param (f, prop); fullscreen_is_being_set |= EQ (prop, Qfullscreen); - + if (NILP (Fequal (val, old_value))) { store_frame_param (f, prop, val); @@ -1094,11 +1094,11 @@ x_set_frame_parameters (f, alist) position. Resize of the frame is taken care of in the code after this if-statement. */ int new_left, new_top; - + x_fullscreen_adjust (f, &width, &height, &new_top, &new_left); x_fullscreen_move (f, new_top, new_left); } - + /* Don't set these parameters unless they've been explicitly specified. The window might be mapped or resized while we're in this function, and we don't want to override that unless the lisp @@ -1242,12 +1242,12 @@ x_real_positions (f, xptr, yptr) win = wm_window; } - + if (! had_errors) { int ign; Window child, rootw; - + /* Get the real coordinates for the WM window upper left corner */ XGetGeometry (FRAME_X_DISPLAY (f), win, &rootw, &real_x, &real_y, &ign, &ign, &ign, &ign); @@ -1286,23 +1286,23 @@ x_real_positions (f, xptr, yptr) /* From-window, to-window. */ FRAME_X_DISPLAY_INFO (f)->root_window, FRAME_OUTER_WINDOW (f), - + /* From-position, to-position. */ real_x, real_y, &outer_x, &outer_y, - + /* Child of win. */ &child); } had_errors = x_had_errors_p (FRAME_X_DISPLAY (f)); } - + x_uncatch_errors (FRAME_X_DISPLAY (f), count); - + UNBLOCK_INPUT; if (had_errors) return; - + f->output_data.x->x_pixels_diff = -win_x; f->output_data.x->y_pixels_diff = -win_y; f->output_data.x->x_pixels_outer_diff = -outer_x; @@ -1562,7 +1562,7 @@ x_set_foreground_color (f, arg, oldval) if (FRAME_X_WINDOW (f) != 0) { Display *dpy = FRAME_X_DISPLAY (f); - + BLOCK_INPUT; XSetForeground (dpy, x->normal_gc, fg); XSetBackground (dpy, x->reverse_gc, fg); @@ -1573,15 +1573,15 @@ x_set_foreground_color (f, arg, oldval) x->cursor_pixel = x_copy_color (f, fg); XSetBackground (dpy, x->cursor_gc, x->cursor_pixel); } - + UNBLOCK_INPUT; - + update_face_from_frame_parameter (f, Qforeground_color, arg); - + if (FRAME_VISIBLE_P (f)) redraw_frame (f); } - + unload_color (f, old_fg); } @@ -1600,7 +1600,7 @@ x_set_background_color (f, arg, oldval) if (FRAME_X_WINDOW (f) != 0) { Display *dpy = FRAME_X_DISPLAY (f); - + BLOCK_INPUT; XSetBackground (dpy, x->normal_gc, bg); XSetForeground (dpy, x->reverse_gc, bg); @@ -1689,7 +1689,7 @@ x_set_mouse_color (f, arg, oldval) else hourglass_cursor = XCreateFontCursor (dpy, XC_watch); x_check_errors (dpy, "bad hourglass pointer cursor: %s"); - + x_check_errors (dpy, "bad nontext pointer cursor: %s"); if (!NILP (Vx_mode_pointer_shape)) { @@ -1730,7 +1730,7 @@ x_set_mouse_color (f, arg, oldval) x_query_color (f, &fore_color); back_color.pixel = mask_color; x_query_color (f, &back_color); - + XRecolorCursor (dpy, cursor, &fore_color, &back_color); XRecolorCursor (dpy, nontext_cursor, &fore_color, &back_color); XRecolorCursor (dpy, mode_cursor, &fore_color, &back_color); @@ -1761,7 +1761,7 @@ x_set_mouse_color (f, arg, oldval) && x->modeline_cursor != 0) XFreeCursor (dpy, f->output_data.x->modeline_cursor); x->modeline_cursor = mode_cursor; - + if (cross_cursor != x->cross_cursor && x->cross_cursor != 0) XFreeCursor (dpy, x->cross_cursor); @@ -1795,7 +1795,7 @@ x_set_cursor_color (f, arg, oldval) } else fore_pixel = x->background_pixel; - + pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); pixel_allocated_p = 1; @@ -1807,7 +1807,7 @@ x_set_cursor_color (f, arg, oldval) x_free_colors (f, &pixel, 1); pixel_allocated_p = 0; } - + pixel = x->mouse_pixel; if (pixel == fore_pixel) { @@ -2015,7 +2015,7 @@ x_set_font (f, arg, oldval) ? x_new_fontset (f, SDATA (fontset_name)) : x_new_font (f, SDATA (arg))); UNBLOCK_INPUT; - + if (EQ (result, Qnil)) error ("Font `%s' is not defined", SDATA (arg)); else if (EQ (result, Qt)) @@ -2031,7 +2031,7 @@ x_set_font (f, arg, oldval) } else if (!NILP (Fequal (result, oldval))) return; - + store_frame_param (f, Qfont, result); recompute_basic_faces (f); } @@ -2245,7 +2245,7 @@ x_set_tool_bar_lines (f, value, oldval) return; #endif - + /* Make sure we redisplay all windows in this frame. */ ++windows_or_buffers_changed; @@ -2263,7 +2263,7 @@ x_set_tool_bar_lines (f, value, oldval) FRAME_TOOL_BAR_LINES (f) = nlines; x_change_window_heights (root_window, delta); adjust_glyphs (f); - + /* We also have to make sure that the internal border at the top of the frame, below the menu bar or tool bar, is redrawn when the tool bar disappears. This is so because the internal border is @@ -2309,7 +2309,7 @@ x_set_scroll_bar_foreground (f, value, oldval) Lisp_Object value, oldval; { unsigned long pixel; - + if (STRINGP (value)) pixel = x_decode_color (f, value, BLACK_PIX_DEFAULT (f)); else @@ -2317,7 +2317,7 @@ x_set_scroll_bar_foreground (f, value, oldval) if (f->output_data.x->scroll_bar_foreground_pixel != -1) unload_color (f, f->output_data.x->scroll_bar_foreground_pixel); - + f->output_data.x->scroll_bar_foreground_pixel = pixel; if (FRAME_X_WINDOW (f) && FRAME_VISIBLE_P (f)) { @@ -2349,10 +2349,10 @@ x_set_scroll_bar_background (f, value, oldval) pixel = x_decode_color (f, value, WHITE_PIX_DEFAULT (f)); else pixel = -1; - + if (f->output_data.x->scroll_bar_background_pixel != -1) unload_color (f, f->output_data.x->scroll_bar_background_pixel); - + #ifdef USE_TOOLKIT_SCROLL_BARS /* Scrollbar shadow colors. */ if (f->output_data.x->scroll_bar_top_shadow_pixel != -1) @@ -2375,7 +2375,7 @@ x_set_scroll_bar_background (f, value, oldval) (*condemn_scroll_bars_hook) (f); if (judge_scroll_bars_hook) (*judge_scroll_bars_hook) (f); - + update_face_from_frame_parameter (f, Qscroll_bar_background, value); redraw_frame (f); } @@ -2470,7 +2470,7 @@ x_set_name (f, name, explicit) Lisp_Object name; int explicit; { - /* Make sure that requests from lisp code override requests from + /* Make sure that requests from lisp code override requests from Emacs redisplay code. */ if (explicit) { @@ -2736,7 +2736,7 @@ x_set_vertical_scroll_bars (f, arg, oldval) = (NILP (arg) ? vertical_scroll_bar_none : EQ (Qright, arg) - ? vertical_scroll_bar_right + ? vertical_scroll_bar_right : vertical_scroll_bar_left); /* We set this parameter before creating the X window for the @@ -2767,7 +2767,7 @@ x_set_scroll_bar_width (f, arg, oldval) /* Make the actual width at least 14 pixels and a multiple of a character width. */ FRAME_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid; - + /* Use all of that space (aside from required margins) for the scroll bar. */ FRAME_SCROLL_BAR_PIXEL_WIDTH (f) = 0; @@ -3096,7 +3096,7 @@ x_get_arg (dpyinfo, alist, param, attribute, class, type) if (!strcmp (SDATA (tem), "on") || !strcmp (SDATA (tem), "true")) return Qt; - else + else return Qnil; case RES_TYPE_STRING: @@ -3215,11 +3215,11 @@ x_default_scroll_bar_color_parameter (f, alist, prop, xprop, xclass, specified. */ tem = Qnil; } - + #else /* not USE_TOOLKIT_SCROLL_BARS */ - + tem = Qnil; - + #endif /* not USE_TOOLKIT_SCROLL_BARS */ } @@ -3417,7 +3417,7 @@ x_figure_window_size (f, parms) { int left, top; int width, height; - + /* It takes both for some WM:s to place it where we want */ window_prompting = USPosition | PPosition; x_fullscreen_adjust (f, &width, &height, &top, &left); @@ -3428,7 +3428,7 @@ x_figure_window_size (f, parms) f->output_data.x->left_pos = left; f->output_data.x->top_pos = top; } - + return window_prompting; } @@ -3551,13 +3551,13 @@ xic_create_xfontset (f, base_fontname) char **missing_list; int missing_count; char *def_string; - + xfs = XCreateFontSet (FRAME_X_DISPLAY (f), base_fontname, &missing_list, &missing_count, &def_string); if (missing_list) XFreeStringList (missing_list); - + /* No need to free def_string. */ return xfs; } @@ -3597,7 +3597,7 @@ create_frame_xic (f) if (FRAME_XIC (f)) return; - + xim = FRAME_X_XIM (f); if (xim) { @@ -3695,7 +3695,7 @@ create_frame_xic (f) XFree (preedit_attr); XFree (status_attr); } - + FRAME_XIC (f) = xic; FRAME_XIC_STYLE (f) = xic_style; FRAME_XIC_FONTSET (f) = xfs; @@ -3710,7 +3710,7 @@ free_frame_xic (f) { if (FRAME_XIC (f) == NULL) return; - + XDestroyIC (FRAME_XIC (f)); if (FRAME_XIC_FONTSET (f)) XFreeFontSet (FRAME_X_DISPLAY (f), FRAME_XIC_FONTSET (f)); @@ -3731,7 +3731,7 @@ xic_set_preeditarea (w, x, y) struct frame *f = XFRAME (w->frame); XVaNestedList attr; XPoint spot; - + spot.x = WINDOW_TO_FRAME_PIXEL_X (w, x); spot.y = WINDOW_TO_FRAME_PIXEL_Y (w, y) + FONT_BASE (FRAME_FONT (f)); attr = XVaCreateNestedList (0, XNSpotLocation, &spot, NULL); @@ -3757,7 +3757,7 @@ xic_set_statusarea (f) attr = XVaCreateNestedList (0, XNAreaNeeded, &area, NULL); XSetICValues (xic, XNStatusAttributes, attr, NULL); XFree (attr); - + attr = XVaCreateNestedList (0, XNAreaNeeded, &needed, NULL); XGetICValues (xic, XNStatusAttributes, attr, NULL); XFree (attr); @@ -3803,7 +3803,7 @@ xic_set_xfontset (f, base_fontname) if (FRAME_XIC_STYLE (f) & XIMStatusArea) XSetICValues (FRAME_XIC (f), XNStatusAttributes, attr, NULL); XFree (attr); - + if (FRAME_XIC_FONTSET (f)) XFreeFontSet (FRAME_X_DISPLAY (f), FRAME_XIC_FONTSET (f)); FRAME_XIC_FONTSET (f) = xfs; @@ -3839,7 +3839,7 @@ x_window (f, window_prompting, minibuffer_only) for the window manager, so GC relocation won't bother it. Elsewhere we specify the window name for the window manager. */ - + { char *str = (char *) SDATA (Vx_resource_name); f->namebuf = (char *) xmalloc (strlen (str) + 1); @@ -3876,7 +3876,7 @@ x_window (f, window_prompting, minibuffer_only) XtSetValues (pane_widget, al, ac); f->output_data.x->column_widget = pane_widget; - /* mappedWhenManaged to false tells to the paned window to not map/unmap + /* mappedWhenManaged to false tells to the paned window to not map/unmap the emacs screen when changing menubar. This reduces flickering. */ ac = 0; @@ -3890,10 +3890,10 @@ x_window (f, window_prompting, minibuffer_only) XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++; frame_widget = XtCreateWidget (f->namebuf, emacsFrameClass, pane_widget, al, ac); - + f->output_data.x->edit_widget = frame_widget; - - XtManageChild (frame_widget); + + XtManageChild (frame_widget); /* Do some needed geometry management. */ { @@ -3902,7 +3902,7 @@ x_window (f, window_prompting, minibuffer_only) Arg al[2]; int ac = 0; int extra_borders = 0; - int menubar_size + int menubar_size = (f->output_data.x->menubar_widget ? (f->output_data.x->menubar_widget->core.height + f->output_data.x->menubar_widget->core.border_width) @@ -3946,13 +3946,13 @@ x_window (f, window_prompting, minibuffer_only) if (window_prompting & USPosition) sprintf (shell_position, "=%dx%d%c%d%c%d", - PIXEL_WIDTH (f) + extra_borders, + PIXEL_WIDTH (f) + extra_borders, PIXEL_HEIGHT (f) + menubar_size + extra_borders, (xneg ? '-' : '+'), left, (yneg ? '-' : '+'), top); else sprintf (shell_position, "=%dx%d", - PIXEL_WIDTH (f) + extra_borders, + PIXEL_WIDTH (f) + extra_borders, PIXEL_HEIGHT (f) + menubar_size + extra_borders); } @@ -3970,7 +3970,7 @@ x_window (f, window_prompting, minibuffer_only) XtManageChild (pane_widget); XtRealizeWidget (shell_widget); - FRAME_X_WINDOW (f) = XtWindow (frame_widget); + FRAME_X_WINDOW (f) = XtWindow (frame_widget); validate_x_resource_name (); @@ -4017,7 +4017,7 @@ x_window (f, window_prompting, minibuffer_only) attributes.event_mask |= fevent; } #endif /* HAVE_X_I18N */ - + attribute_mask = CWEventMask; XChangeWindowAttributes (XtDisplay (shell_widget), XtWindow (shell_widget), attribute_mask, &attributes); @@ -4137,7 +4137,7 @@ x_window (f) } #endif #endif /* HAVE_X_I18N */ - + validate_x_resource_name (); class_hints.res_name = (char *) SDATA (Vx_resource_name); @@ -4302,7 +4302,7 @@ x_make_gc (f) this must be done on a per-frame basis. */ f->output_data.x->border_tile = (XCreatePixmapFromBitmapData - (FRAME_X_DISPLAY (f), FRAME_X_DISPLAY_INFO (f)->root_window, + (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, @@ -4321,7 +4321,7 @@ x_free_gcs (f) Display *dpy = FRAME_X_DISPLAY (f); BLOCK_INPUT; - + if (f->output_data.x->normal_gc) { XFreeGC (dpy, f->output_data.x->normal_gc); @@ -4333,7 +4333,7 @@ x_free_gcs (f) XFreeGC (dpy, f->output_data.x->reverse_gc); f->output_data.x->reverse_gc = 0; } - + if (f->output_data.x->cursor_gc) { XFreeGC (dpy, f->output_data.x->cursor_gc); @@ -4366,7 +4366,7 @@ unwind_create_frame (frame) #if GLYPH_DEBUG struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); #endif - + x_free_frame_resources (f); /* Check that reference counts are indeed correct. */ @@ -4374,7 +4374,7 @@ unwind_create_frame (frame) xassert (dpyinfo->image_cache->refcount == image_cache_refcount); return Qt; } - + return Qnil; } @@ -4505,7 +4505,7 @@ This function is an internal primitive--use `make-frame' instead. */) f->output_data.x->cursor_foreground_pixel = -1; f->output_data.x->border_pixel = -1; f->output_data.x->mouse_pixel = -1; - + black = build_string ("black"); GCPRO1 (black); f->output_data.x->foreground_pixel @@ -4568,7 +4568,7 @@ This function is an internal primitive--use `make-frame' instead. */) else font = x_new_font (f, SDATA (font)); } - + /* Try out a font which we hope has bold and italic variations. */ if (!STRINGP (font)) font = x_new_font (f, "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1"); @@ -4599,7 +4599,7 @@ This function is an internal primitive--use `make-frame' instead. */) x_default_parameter (f, parms, Qborder_width, make_number (2), "borderWidth", "BorderWidth", RES_TYPE_NUMBER); - + /* This defaults to 1 in order to match xterm. We recognize either internalBorderWidth or internalBorder (which is what xterm calls it). */ @@ -4654,7 +4654,7 @@ This function is an internal primitive--use `make-frame' instead. */) end up in init_iterator with a null face cache, which should not happen. */ init_frame_faces (f); - + x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1), "menuBar", "MenuBar", RES_TYPE_NUMBER); x_default_parameter (f, parms, Qtool_bar_lines, make_number (1), @@ -4680,7 +4680,7 @@ This function is an internal primitive--use `make-frame' instead. */) if (FRAME_TOOL_BAR_LINES (f)) { int margin, relief, bar_height; - + relief = (tool_bar_button_relief >= 0 ? tool_bar_button_relief : DEFAULT_TOOL_BAR_BUTTON_RELIEF); @@ -4694,7 +4694,7 @@ This function is an internal primitive--use `make-frame' instead. */) margin = XFASTINT (XCDR (Vtool_bar_button_margin)); else margin = 0; - + bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief; f->height += (bar_height + CANON_Y_UNIT (f) - 1) / CANON_Y_UNIT (f); } @@ -4728,7 +4728,7 @@ This function is an internal primitive--use `make-frame' instead. */) #else x_window (f); #endif - + x_icon (f, parms); x_make_gc (f); @@ -4756,7 +4756,7 @@ This function is an internal primitive--use `make-frame' instead. */) f->height. */ width = f->width; height = f->height; - + f->height = 0; SET_FRAME_WIDTH (f, 0); change_frame_size (f, height, width, 1, 0, 0); @@ -4819,7 +4819,7 @@ This function is an internal primitive--use `make-frame' instead. */) /* Make sure windows on this frame appear in calls to next-window and similar functions. */ Vwindow_list = Qnil; - + return unbind_to (count, frame); } @@ -4867,7 +4867,7 @@ FRAME nil means use the selected frame. */) RevertToParent, CurrentTime); x_uncatch_errors (dpy, count); UNBLOCK_INPUT; - + return Qnil; } @@ -5184,7 +5184,7 @@ If omitted or nil, that stands for the selected frame's display. */) error ("Display has an unknown visual class"); result = Qnil; } - + return result; } @@ -5339,14 +5339,14 @@ select_visual (dpyinfo) || !XMatchVisualInfo (dpy, XScreenNumberOfScreen (screen), dpyinfo->n_planes, class, &vinfo)) fatal ("Invalid visual specification `%s'", SDATA (value)); - + dpyinfo->visual = vinfo.visual; } else { int n_visuals; XVisualInfo *vinfo, vinfo_template; - + dpyinfo->visual = DefaultVisualOfScreen (screen); #ifdef HAVE_X11R4 @@ -5640,7 +5640,7 @@ valid_image_p (object) Lisp_Object object; { int valid_p = 0; - + if (CONSP (object) && EQ (XCAR (object), Qimage)) { Lisp_Object tem; @@ -5656,7 +5656,7 @@ valid_image_p (object) if (type) valid_p = type->valid_p (object); } - + break; } } @@ -5775,7 +5775,7 @@ parse_image_spec (spec, keywords, nkeywords, type) was found more than once, it's an error. */ keywords[i].value = value; ++keywords[i].count; - + if (keywords[i].count > 1) return 0; @@ -5819,7 +5819,7 @@ parse_image_spec (spec, keywords, nkeywords, type) && XINT (value) <= 100) break; return 0; - + case IMAGE_NON_NEGATIVE_INTEGER_VALUE: if (!INTEGERP (value) || XINT (value) < 0) return 0; @@ -5830,7 +5830,7 @@ parse_image_spec (spec, keywords, nkeywords, type) case IMAGE_FUNCTION_VALUE: value = indirect_function (value); - if (SUBRP (value) + if (SUBRP (value) || COMPILEDP (value) || (CONSP (value) && EQ (XCAR (value), Qlambda))) break; @@ -5879,7 +5879,7 @@ image_spec_value (spec, key, found) int *found; { Lisp_Object tail; - + xassert (valid_image_p (spec)); for (tail = XCDR (spec); @@ -5893,12 +5893,12 @@ image_spec_value (spec, key, found) return XCAR (XCDR (tail)); } } - + if (found) *found = 0; return Qnil; } - + DEFUN ("image-size", Fimage_size, Simage_size, 1, 3, 0, doc: /* Return the size of image SPEC as pair (WIDTH . HEIGHT). @@ -5919,7 +5919,7 @@ or omitted means use the selected frame. */) struct image *img = IMAGE_FROM_ID (f, id); int width = img->width + 2 * img->hmargin; int height = img->height + 2 * img->vmargin; - + if (NILP (pixels)) size = Fcons (make_float ((double) width / CANON_X_UNIT (f)), make_float ((double) height / CANON_Y_UNIT (f))); @@ -5976,7 +5976,7 @@ make_image (spec, hash) unsigned hash; { struct image *img = (struct image *) xmalloc (sizeof *img); - + xassert (valid_image_p (spec)); bzero (img, sizeof *img); img->type = lookup_image_type (image_spec_value (spec, QCtype, NULL)); @@ -6037,7 +6037,7 @@ prepare_image_for_display (f, img) if (img->pixmap == None && !img->load_failed_p) img->load_failed_p = img->type->load (f, img) == 0; } - + /* Value is the number of pixels for the ascent of image IMG when drawn in face FACE. */ @@ -6089,7 +6089,7 @@ four_corners_best (ximg, width, height) for (i = best_count = 0; i < 4; ++i) { int j, n; - + for (j = n = 0; j < 4; ++j) if (corners[i] == corners[j]) ++n; @@ -6205,7 +6205,7 @@ x_clear_image_1 (f, img, pixmap_p, mask_p, colors_p) img->mask = None; img->background_transparent_valid = 0; } - + if (colors_p && img->ncolors) { x_free_colors (f, img->colors, img->ncolors); @@ -6280,7 +6280,7 @@ make_image_cache () { struct image_cache *c = (struct image_cache *) xmalloc (sizeof *c); int size; - + bzero (c, sizeof *c); c->size = 50; c->images = (struct image **) xmalloc (c->size * sizeof *c->images); @@ -6305,7 +6305,7 @@ free_image_cache (f) /* Cache should not be referenced by any frame when freed. */ xassert (c->refcount == 0); - + for (i = 0; i < c->used; ++i) free_image (f, c->images[i]); xfree (c->images); @@ -6342,7 +6342,7 @@ clear_image_cache (f, force_p) /* Block input so that we won't be interrupted by a SIGIO while being in an inconsistent state. */ BLOCK_INPUT; - + for (i = nfreed = 0; i < c->used; ++i) { struct image *img = c->images[i]; @@ -6361,7 +6361,7 @@ clear_image_cache (f, force_p) if (nfreed) { Lisp_Object tail, frame; - + FOR_EACH_FRAME (tail, frame) { struct frame *f = XFRAME (frame); @@ -6389,7 +6389,7 @@ FRAME t means clear the image caches of all frames. */) if (EQ (frame, Qt)) { Lisp_Object tail; - + FOR_EACH_FRAME (tail, frame) if (FRAME_X_P (XFRAME (frame))) clear_image_cache (XFRAME (frame), 1); @@ -6416,7 +6416,7 @@ postprocess_image (f, img) Lisp_Object mask; spec = img->spec; - + /* `:heuristic-mask t' `:mask heuristic' means build a mask heuristically. @@ -6426,16 +6426,16 @@ postprocess_image (f, img) image. `:mask nil' means remove a mask, if any. */ - + mask = image_spec_value (spec, QCheuristic_mask, NULL); if (!NILP (mask)) x_build_heuristic_mask (f, img, mask); else { int found_p; - + mask = image_spec_value (spec, QCmask, &found_p); - + if (EQ (mask, Qheuristic)) x_build_heuristic_mask (f, img, Qt); else if (CONSP (mask) @@ -6452,8 +6452,8 @@ postprocess_image (f, img) img->mask = None; } } - - + + /* Should we apply an image transformation algorithm? */ conversion = image_spec_value (spec, QCconversion, NULL); if (EQ (conversion, Qdisabled)) @@ -6495,7 +6495,7 @@ lookup_image (f, spec) specification. */ xassert (FRAME_WINDOW_P (f)); xassert (valid_image_p (spec)); - + GCPRO1 (spec); /* Look up SPEC in the hash table of the image cache. */ @@ -6510,7 +6510,7 @@ lookup_image (f, spec) if (img == NULL) { extern Lisp_Object Qpostscript; - + BLOCK_INPUT; img = make_image (spec, hash); cache_image (f, img); @@ -6542,7 +6542,7 @@ lookup_image (f, spec) img->ascent = XFASTINT (ascent); else if (EQ (ascent, Qcenter)) img->ascent = CENTERED_IMAGE_ASCENT; - + margin = image_spec_value (spec, QCmargin, NULL); if (INTEGERP (margin) && XINT (margin) >= 0) img->vmargin = img->hmargin = XFASTINT (margin); @@ -6554,7 +6554,7 @@ lookup_image (f, spec) if (XINT (XCDR (margin)) > 0) img->vmargin = XFASTINT (XCDR (margin)); } - + relief = image_spec_value (spec, QCrelief, NULL); if (INTEGERP (relief)) { @@ -6588,9 +6588,9 @@ lookup_image (f, spec) /* We're using IMG, so set its timestamp to `now'. */ EMACS_GET_TIME (now); img->timestamp = EMACS_SECS (now); - + UNGCPRO; - + /* Value is the image id. */ return img->id; } @@ -6742,7 +6742,7 @@ x_put_x_image (f, ximg, pixmap, width, height) int width, height; { GC gc; - + xassert (interrupt_input_blocked); gc = XCreateGC (FRAME_X_DISPLAY (f), pixmap, 0, NULL); XPutImage (FRAME_X_DISPLAY (f), pixmap, gc, ximg, 0, 0, 0, 0, width, height); @@ -6777,7 +6777,7 @@ x_find_image_file (file) /* Try to find FILE in data-directory, then x-bitmap-file-path. */ fd = openp (search_path, file, Qnil, &file_found, Qnil); - + if (fd == -1) file_found = Qnil; else @@ -6819,7 +6819,7 @@ slurp_file (file, size) buf = NULL; } } - + return buf; } @@ -6898,7 +6898,7 @@ enum xbm_token XBM_TK_NUMBER }; - + /* Return non-zero if OBJECT is a valid XBM-type image specification. A valid specification is a list starting with the symbol `image' The rest of the list is a property list which must contain an @@ -6933,7 +6933,7 @@ xbm_image_p (object) Lisp_Object object; { struct image_keyword kw[XBM_LAST]; - + bcopy (xbm_format, kw, sizeof kw); if (!parse_image_spec (object, kw, XBM_LAST, Qxbm)) return 0; @@ -6965,13 +6965,13 @@ xbm_image_p (object) data = kw[XBM_DATA].value; width = XFASTINT (kw[XBM_WIDTH].value); height = XFASTINT (kw[XBM_HEIGHT].value); - + /* Check type of data, and width and height against contents of data. */ if (VECTORP (data)) { int i; - + /* Number of elements of the vector must be >= height. */ if (XVECTOR (data)->size < height) return 0; @@ -7031,7 +7031,7 @@ xbm_scan (s, end, sval, ival) int c; loop: - + /* Skip white space. */ while (*s < end && (c = *(*s)++, isspace (c))) ; @@ -7041,7 +7041,7 @@ xbm_scan (s, end, sval, ival) else if (isdigit (c)) { int value = 0, digit; - + if (c == '0' && *s < end) { c = *(*s)++; @@ -7139,7 +7139,7 @@ xbm_read_bitmap_data (contents, end, width, height, data) if (LA1 != (TOKEN)) \ goto failure; \ else \ - match () + match () #define expect_ident(IDENT) \ if (LA1 == XBM_TK_IDENT && strcmp (buffer, (IDENT)) == 0) \ @@ -7182,7 +7182,7 @@ xbm_read_bitmap_data (contents, end, width, height, data) { if (strcmp (buffer, "unsigned") == 0) { - match (); + match (); expect_ident ("char"); } else if (strcmp (buffer, "short") == 0) @@ -7197,7 +7197,7 @@ xbm_read_bitmap_data (contents, end, width, height, data) else goto failure; } - else + else goto failure; expect (XBM_TK_IDENT); @@ -7220,7 +7220,7 @@ xbm_read_bitmap_data (contents, end, width, height, data) *p++ = val; if (!padding_p || ((i + 2) % bytes_per_line)) *p++ = value >> 8; - + if (LA1 == ',' || LA1 == '}') match (); else @@ -7233,9 +7233,9 @@ xbm_read_bitmap_data (contents, end, width, height, data) { int val = value; expect (XBM_TK_NUMBER); - + *p++ = val; - + if (LA1 == ',' || LA1 == '}') match (); else @@ -7247,7 +7247,7 @@ xbm_read_bitmap_data (contents, end, width, height, data) return 1; failure: - + if (data && *data) { xfree (*data); @@ -7274,7 +7274,7 @@ xbm_load_image (f, img, contents, end) int rc; unsigned char *data; int success_p = 0; - + rc = xbm_read_bitmap_data (contents, end, &img->width, &img->height, &data); if (rc) { @@ -7282,7 +7282,7 @@ xbm_load_image (f, img, contents, end) unsigned long foreground = FRAME_FOREGROUND_PIXEL (f); unsigned long background = FRAME_BACKGROUND_PIXEL (f); Lisp_Object value; - + xassert (img->width > 0 && img->height > 0); /* Get foreground and background colors, maybe allocate colors. */ @@ -7335,7 +7335,7 @@ xbm_file_p (data) &w, &h, NULL)); } - + /* Fill image IMG which is used on frame F with pixmap data. Value is non-zero if successful. */ @@ -7357,7 +7357,7 @@ xbm_load (f, img) char *contents; int size; struct gcpro gcpro1; - + file = x_find_image_file (file_name); GCPRO1 (file); if (!STRINGP (file)) @@ -7427,7 +7427,7 @@ xbm_load (f, img) int i; char *p; int nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR; - + p = bits = (char *) alloca (nbytes * img->height); for (i = 0; i < img->height; ++i, p += nbytes) { @@ -7465,14 +7465,14 @@ xbm_load (f, img) return success_p; } - + /*********************************************************************** XPM images ***********************************************************************/ -#if HAVE_XPM +#if HAVE_XPM static int xpm_image_p P_ ((Lisp_Object object)); static int xpm_load P_ ((struct frame *f, struct image *img)); @@ -7589,7 +7589,7 @@ xpm_init_color_cache (f, attrs) { int i; XColor color; - + for (i = 0; i < attrs->numsymbols; ++i) if (XParseColor (FRAME_X_DISPLAY (f), FRAME_X_COLORMAP (f), attrs->colorsymbols[i].value, &color)) @@ -7632,7 +7632,7 @@ xpm_color_bucket (color_name) { unsigned h = 0; char *s; - + for (s = color_name; *s; ++s) h = (h << 2) ^ *s; return h %= XPM_COLOR_CACHE_BUCKETS; @@ -7652,10 +7652,10 @@ xpm_cache_color (f, color_name, color, bucket) { size_t nbytes; struct xpm_cached_color *p; - + if (bucket < 0) bucket = xpm_color_bucket (color_name); - + nbytes = sizeof *p + strlen (color_name); p = (struct xpm_cached_color *) xmalloc (nbytes); strcpy (p->name, color_name); @@ -7693,7 +7693,7 @@ xpm_lookup_color (f, color_name, color) color->blue); p = xpm_cache_color (f, color_name, color, h); } - + return p != NULL; } @@ -7820,7 +7820,7 @@ xpm_load (f, img) Lisp_Object tail; XpmColorSymbol *xpm_syms; int i, size; - + attrs.valuemask |= XpmColorSymbols; /* Count number of symbols. */ @@ -7853,7 +7853,7 @@ xpm_load (f, img) #ifdef ALLOC_XPM_COLORS xpm_init_color_cache (f, &attrs); #endif - + specified_file = image_spec_value (img->spec, QCfile, NULL); if (STRINGP (specified_file)) { @@ -7863,7 +7863,7 @@ xpm_load (f, img) image_error ("Cannot find image file `%s'", specified_file, Qnil); return 0; } - + rc = XpmReadFileToPixmap (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), SDATA (file), &img->pixmap, &img->mask, &attrs); @@ -7910,19 +7910,19 @@ xpm_load (f, img) case XpmOpenFailed: image_error ("Error opening XPM file (%s)", img->spec, Qnil); break; - + case XpmFileInvalid: image_error ("Invalid XPM file (%s)", img->spec, Qnil); break; - + case XpmNoMemory: image_error ("Out of memory (%s)", img->spec, Qnil); break; - + case XpmColorFailed: image_error ("Color allocation error (%s)", img->spec, Qnil); break; - + default: image_error ("Unknown error (%s)", img->spec, Qnil); break; @@ -8028,14 +8028,14 @@ lookup_rgb_color (f, r, g, b) color.red = r; color.green = g; color.blue = b; - + cmap = FRAME_X_COLORMAP (f); rc = x_alloc_nearest_color (f, cmap, &color); if (rc) { ++ct_colors_allocated; - + p = (struct ct_color *) xmalloc (sizeof *p); p->r = r; p->g = g; @@ -8081,7 +8081,7 @@ lookup_pixel_color (f, pixel) if (rc) { ++ct_colors_allocated; - + p = (struct ct_color *) xmalloc (sizeof *p); p->r = color.red; p->g = color.green; @@ -8093,7 +8093,7 @@ lookup_pixel_color (f, pixel) else return FRAME_FOREGROUND_PIXEL (f); } - + return p->pixel; } @@ -8119,7 +8119,7 @@ colors_in_color_table (n) colors = (unsigned long *) xmalloc (ct_colors_allocated * sizeof *colors); *n = ct_colors_allocated; - + for (i = j = 0; i < CT_SIZE; ++i) for (p = ct_table[i]; p; p = p->next) colors[j++] = p->pixel; @@ -8194,7 +8194,7 @@ x_to_xcolors (f, img, rgb_p) for (y = 0; y < img->height; ++y) { XColor *row = p; - + for (x = 0; x < img->width; ++x, ++p) p->pixel = XGetPixel (ximg, x, y); @@ -8221,9 +8221,9 @@ x_from_xcolors (f, img, colors) XImage *oimg; Pixmap pixmap; XColor *p; - + init_color_table (); - + x_create_x_image_and_pixmap (f, img->width, img->height, 0, &oimg, &pixmap); p = colors; @@ -8250,7 +8250,7 @@ x_from_xcolors (f, img, colors) MATRIX is a nine-element array specifying the transformation matrix. See emboss_matrix for an example. - + COLOR_ADJUST is a color adjustment added to each pixel of the outgoing image. */ @@ -8278,7 +8278,7 @@ x_detect_edges (f, img, matrix, color_adjust) p = COLOR (new, img->width - 1, y); p->red = p->green = p->blue = 0xffff/2; } - + for (x = 1; x < img->width - 1; ++x) { p = COLOR (new, x, 0); @@ -8290,7 +8290,7 @@ x_detect_edges (f, img, matrix, color_adjust) for (y = 1; y < img->height - 1; ++y) { p = COLOR (new, 1, y); - + for (x = 1; x < img->width - 1; ++x, ++p) { int r, g, b, y1, x1; @@ -8363,7 +8363,7 @@ x_edge_detection (f, img, matrix, color_adjust) { int i = 0; int trans[9]; - + if (CONSP (matrix)) { for (i = 0; @@ -8483,7 +8483,7 @@ x_build_heuristic_mask (f, img, how) /* Determine the background color of ximg. If HOW is `(R G B)' take that as color. Otherwise, use the image's background color. */ use_img_background = 1; - + if (CONSP (how)) { int rgb[3], i; @@ -8502,7 +8502,7 @@ x_build_heuristic_mask (f, img, how) use_img_background = 0; } } - + if (use_img_background) bg = four_corners_best (ximg, img->width, img->height); @@ -8519,7 +8519,7 @@ x_build_heuristic_mask (f, img, how) x_put_x_image (f, mask_img, img->mask, img->width, img->height); x_destroy_x_image (mask_img); XDestroyImage (ximg); - + return 1; } @@ -8592,9 +8592,9 @@ pbm_image_p (object) Lisp_Object object; { struct image_keyword fmt[PBM_LAST]; - + bcopy (pbm_format, fmt, sizeof fmt); - + if (!parse_image_spec (object, fmt, PBM_LAST, Qpbm)) return 0; @@ -8643,7 +8643,7 @@ pbm_scan_number (s, end) /* Load PBM image IMG for use on frame F. */ -static int +static int pbm_load (f, img) struct frame *f; struct image *img; @@ -8706,7 +8706,7 @@ pbm_load (f, img) case '1': raw_p = 0, type = PBM_MONO; break; - + case '2': raw_p = 0, type = PBM_GRAY; break; @@ -8718,11 +8718,11 @@ pbm_load (f, img) case '4': raw_p = 1, type = PBM_MONO; break; - + case '5': raw_p = 1, type = PBM_GRAY; break; - + case '6': raw_p = 1, type = PBM_COLOR; break; @@ -8743,7 +8743,7 @@ pbm_load (f, img) if (raw_p && max_color_idx > 255) max_color_idx = 255; } - + if (width < 0 || height < 0 || (type != PBM_MONO && max_color_idx < 0)) @@ -8752,7 +8752,7 @@ pbm_load (f, img) if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap)) goto error; - + /* Initialize the color hash table. */ init_color_table (); @@ -8766,7 +8766,7 @@ pbm_load (f, img) /* Parse the image specification. */ bcopy (pbm_format, fmt, sizeof fmt); parse_image_spec (img->spec, fmt, PBM_LAST, Qpbm); - + /* Get foreground and background colors, maybe allocate colors. */ if (fmt[PBM_FOREGROUND].count && STRINGP (fmt[PBM_FOREGROUND].value)) @@ -8778,7 +8778,7 @@ pbm_load (f, img) img->background = bg; img->background_valid = 1; } - + for (y = 0; y < height; ++y) for (x = 0; x < width; ++x) { @@ -8801,7 +8801,7 @@ pbm_load (f, img) for (x = 0; x < width; ++x) { int r, g, b; - + if (type == PBM_GRAY) r = g = b = raw_p ? *p++ : pbm_scan_number (&p, end); else if (raw_p) @@ -8816,7 +8816,7 @@ pbm_load (f, img) g = pbm_scan_number (&p, end); b = pbm_scan_number (&p, end); } - + if (r < 0 || g < 0 || b < 0) { xfree (ximg->data); @@ -8826,7 +8826,7 @@ pbm_load (f, img) img->spec, Qnil); goto error; } - + /* RGB values are now in the range 0..max_color_idx. Scale this to the range 0..0xffff supported by X. */ r = (double) r * 65535 / max_color_idx; @@ -8835,7 +8835,7 @@ pbm_load (f, img) XPutPixel (ximg, x, y, lookup_rgb_color (f, r, g, b)); } } - + /* Store in IMG->colors the colors allocated for the image, and free the color table. */ img->colors = colors_in_color_table (&img->ncolors); @@ -8844,11 +8844,11 @@ pbm_load (f, img) /* Maybe fill in the background field while we have ximg handy. */ if (NILP (image_spec_value (img->spec, QCbackground, NULL))) IMAGE_BACKGROUND (img, f, ximg); - + /* Put the image into a pixmap. */ x_put_x_image (f, ximg, img->pixmap, width, height); x_destroy_x_image (ximg); - + img->width = width; img->height = height; @@ -8930,7 +8930,7 @@ png_image_p (object) { struct image_keyword fmt[PNG_LAST]; bcopy (png_format, fmt, sizeof fmt); - + if (!parse_image_spec (object, fmt, PNG_LAST, Qpng)) return 0; @@ -8987,7 +8987,7 @@ png_read_from_memory (png_ptr, data, length) if (length > tbr->len - tbr->index) png_error (png_ptr, "Read error"); - + bcopy (tbr->bytes + tbr->index, data, length); tbr->index = tbr->index + length; } @@ -9129,14 +9129,14 @@ png_load (f, img) png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); - /* If image contains simply transparency data, we prefer to + /* If image contains simply transparency data, we prefer to construct a clipping mask. */ if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) transparent_p = 1; else transparent_p = 0; - /* This function is easier to write if we only have to handle + /* This function is easier to write if we only have to handle one data format: RGB or RGBA with 8 bits per channel. Let's transform other formats into that format. */ @@ -9149,7 +9149,7 @@ png_load (f, img) png_set_expand (png_ptr); /* Convert grayscale images to RGB. */ - if (color_type == PNG_COLOR_TYPE_GRAY + if (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) png_set_gray_to_rgb (png_ptr); @@ -9198,14 +9198,14 @@ png_load (f, img) } } else if (png_get_bKGD (png_ptr, info_ptr, &image_bg)) - /* Image contains a background color with which to + /* Image contains a background color with which to combine the image. */ png_set_background (png_ptr, image_bg, PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); else { /* Image does not contain a background color with which - to combine the image data via an alpha channel. Use + to combine the image data via an alpha channel. Use the frame's background instead. */ XColor color; Colormap cmap; @@ -9253,12 +9253,12 @@ png_load (f, img) fclose (fp); fp = NULL; } - + /* Create the X image and pixmap. */ if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap)) goto error; - + /* Create an image and pixmap serving as mask if the PNG image contains an alpha channel. */ if (channels == 4 @@ -9289,16 +9289,16 @@ png_load (f, img) XPutPixel (ximg, x, y, lookup_rgb_color (f, r, g, b)); /* An alpha channel, aka mask channel, associates variable - transparency with an image. Where other image formats - support binary transparency---fully transparent or fully + transparency with an image. Where other image formats + support binary transparency---fully transparent or fully opaque---PNG allows up to 254 levels of partial transparency. The PNG library implements partial transparency by combining the image with a specified background color. I'm not sure how to handle this here nicely: because the background on which the image is displayed may change, for - real alpha channel support, it would be necessary to create - a new image for each possible background. + real alpha channel support, it would be necessary to create + a new image for each possible background. What I'm doing now is that a mask is created if we have boolean transparency information. Otherwise I'm using @@ -9444,9 +9444,9 @@ jpeg_image_p (object) Lisp_Object object; { struct image_keyword fmt[JPEG_LAST]; - + bcopy (jpeg_format, fmt, sizeof fmt); - + if (!parse_image_spec (object, fmt, JPEG_LAST, Qjpeg)) return 0; @@ -9517,7 +9517,7 @@ our_skip_input_data (cinfo, num_bytes) { if (num_bytes > src->bytes_in_buffer) ERREXIT (cinfo, JERR_INPUT_EOF); - + src->bytes_in_buffer -= num_bytes; src->next_input_byte += num_bytes; } @@ -9555,7 +9555,7 @@ jpeg_memory_src (cinfo, data, len) src = (struct jpeg_source_mgr *) cinfo->src; src->next_input_byte = data; } - + src = (struct jpeg_source_mgr *) cinfo->src; src->init_source = our_init_source; src->fill_input_buffer = our_fill_input_buffer; @@ -9570,7 +9570,7 @@ jpeg_memory_src (cinfo, data, len) /* Load image IMG for use on frame F. Patterned after example.c from the JPEG lib. */ -static int +static int jpeg_load (f, img) struct frame *f; struct image *img; @@ -9603,7 +9603,7 @@ jpeg_load (f, img) UNGCPRO; return 0; } - + fp = fopen (SDATA (file), "r"); if (fp == NULL) { @@ -9617,7 +9617,7 @@ jpeg_load (f, img) error is detected. This function will perform a longjmp. */ cinfo.err = jpeg_std_error (&mgr.pub); mgr.pub.error_exit = my_error_exit; - + if ((rc = setjmp (mgr.setjmp_buffer)) != 0) { if (rc == 1) @@ -9628,7 +9628,7 @@ jpeg_load (f, img) image_error ("Error reading JPEG image `%s': %s", img->spec, build_string (buffer)); } - + /* Close the input file and destroy the JPEG object. */ if (fp) fclose ((FILE *) fp); @@ -9639,7 +9639,7 @@ jpeg_load (f, img) /* Free pixmap and colors. */ x_clear_image (f, img); - + UNGCPRO; return 0; } @@ -9689,7 +9689,7 @@ jpeg_load (f, img) init_color_table (); colors = (unsigned long *) alloca (cinfo.actual_number_of_colors * sizeof *colors); - + for (i = 0; i < cinfo.actual_number_of_colors; ++i) { /* Multiply RGB values with 255 because X expects RGB values @@ -9725,7 +9725,7 @@ jpeg_load (f, img) /* Maybe fill in the background field while we have ximg handy. */ if (NILP (image_spec_value (img->spec, QCbackground, NULL))) IMAGE_BACKGROUND (img, f, ximg); - + /* Put the image into the pixmap. */ x_put_x_image (f, ximg, img->pixmap, width, height); x_destroy_x_image (ximg); @@ -9806,10 +9806,10 @@ tiff_image_p (object) { struct image_keyword fmt[TIFF_LAST]; bcopy (tiff_format, fmt, sizeof fmt); - + if (!parse_image_spec (object, fmt, TIFF_LAST, Qtiff)) return 0; - + /* Must specify either the :data or :file keyword. */ return fmt[TIFF_FILE].count + fmt[TIFF_DATA].count == 1; } @@ -9873,22 +9873,22 @@ tiff_seek_in_memory (data, off, whence) case SEEK_SET: /* Go from beginning of source. */ idx = off; break; - + case SEEK_END: /* Go from end of source. */ idx = src->len + off; break; - + case SEEK_CUR: /* Go from current position. */ idx = src->index + off; break; - + default: /* Invalid `whence'. */ return -1; } - + if (idx > src->len || idx < 0) return -1; - + src->index = idx; return src->index; } @@ -9939,7 +9939,7 @@ tiff_error_handler (title, format, ap) { char buf[512]; int len; - + len = sprintf (buf, "TIFF error: %s ", title); vsprintf (buf + len, format, ap); add_to_log (buf, Qnil, Qnil); @@ -9953,7 +9953,7 @@ tiff_warning_handler (title, format, ap) { char buf[512]; int len; - + len = sprintf (buf, "TIFF warning: %s ", title); vsprintf (buf + len, format, ap); add_to_log (buf, Qnil, Qnil); @@ -9996,7 +9996,7 @@ tiff_load (f, img) UNGCPRO; return 0; } - + /* Try to open the image file. */ tiff = TIFFOpen (SDATA (file), "r"); if (tiff == NULL) @@ -10035,7 +10035,7 @@ tiff_load (f, img) TIFFGetField (tiff, TIFFTAG_IMAGEWIDTH, &width); TIFFGetField (tiff, TIFFTAG_IMAGELENGTH, &height); buf = (uint32 *) xmalloc (width * height * sizeof *buf); - + rc = TIFFReadRGBAImage (tiff, width, height, buf, 0); TIFFClose (tiff); if (!rc) @@ -10061,21 +10061,21 @@ tiff_load (f, img) for (y = 0; y < height; ++y) { uint32 *row = buf + y * width; - + for (x = 0; x < width; ++x) { uint32 abgr = row[x]; int r = TIFFGetR (abgr) << 8; int g = TIFFGetG (abgr) << 8; int b = TIFFGetB (abgr) << 8; - XPutPixel (ximg, x, height - 1 - y, lookup_rgb_color (f, r, g, b)); + XPutPixel (ximg, x, height - 1 - y, lookup_rgb_color (f, r, g, b)); } } /* Remember the colors allocated for the image. Free the color table. */ img->colors = colors_in_color_table (&img->ncolors); free_color_table (); - + img->width = width; img->height = height; @@ -10167,10 +10167,10 @@ gif_image_p (object) { struct image_keyword fmt[GIF_LAST]; bcopy (gif_format, fmt, sizeof fmt); - + if (!parse_image_spec (object, fmt, GIF_LAST, Qgif)) return 0; - + /* Must specify either the :data or :file keyword. */ return fmt[GIF_FILE].count + fmt[GIF_DATA].count == 1; } @@ -10245,7 +10245,7 @@ gif_load (f, img) UNGCPRO; return 0; } - + /* Open the GIF file. */ gif = DGifOpenFileName (SDATA (file)); if (gif == NULL) @@ -10303,14 +10303,14 @@ gif_load (f, img) UNGCPRO; return 0; } - + /* Allocate colors. */ gif_color_map = gif->SavedImages[ino].ImageDesc.ColorMap; if (!gif_color_map) gif_color_map = gif->SColorMap; init_color_table (); bzero (pixel_colors, sizeof pixel_colors); - + for (i = 0; i < gif_color_map->ColorCount; ++i) { int r = gif_color_map->Colors[i].Red << 8; @@ -10323,7 +10323,7 @@ gif_load (f, img) free_color_table (); /* Clear the part of the screen image that are not covered by - the image from the GIF file. Full animated GIF support + the image from the GIF file. Full animated GIF support requires more than can be done here (see the gif89 spec, disposal methods). Let's simply assume that the part not covered by a sub-image is in the frame's background color. */ @@ -10352,7 +10352,7 @@ gif_load (f, img) `raster' here because RasterBits below is a char *, and invites problems with bytes >= 0x80. */ raster = (unsigned char *) gif->SavedImages[ino].RasterBits; - + if (gif->SavedImages[ino].ImageDesc.Interlace) { static int interlace_start[] = {0, 4, 2, 1}; @@ -10370,14 +10370,14 @@ gif_load (f, img) while (row >= image_height) row = interlace_start[++pass]; } - + for (x = 0; x < image_width; x++) { int i = raster[(y * image_width) + x]; XPutPixel (ximg, x + image_left, row + image_top, pixel_colors[i]); } - + row += interlace_increment[pass]; } } @@ -10390,17 +10390,17 @@ gif_load (f, img) XPutPixel (ximg, x + image_left, y + image_top, pixel_colors[i]); } } - + DGifCloseFile (gif); /* Maybe fill in the background field while we have ximg handy. */ if (NILP (image_spec_value (img->spec, QCbackground, NULL))) IMAGE_BACKGROUND (img, f, ximg); - + /* Put the image into the pixmap, then free the X image and its buffer. */ x_put_x_image (f, ximg, img->pixmap, width, height); x_destroy_x_image (ximg); - + UNGCPRO; return 1; } @@ -10500,9 +10500,9 @@ gs_image_p (object) struct image_keyword fmt[GS_LAST]; Lisp_Object tem; int i; - + bcopy (gs_format, fmt, sizeof fmt); - + if (!parse_image_spec (object, fmt, GS_LAST, Qpostscript)) return 0; @@ -10568,7 +10568,7 @@ gs_load (f, img) image_error ("Unable to create pixmap for `%s'", img->spec, Qnil); return 0; } - + /* Call the loader to fill the pixmap. It returns a process object if successful. We do not record_unwind_protect here because other places in redisplay like calling window scroll functions @@ -10579,12 +10579,12 @@ gs_load (f, img) (unsigned long) FRAME_X_WINDOW (f), (unsigned long) img->pixmap); window_and_pixmap_id = build_string (buffer); - + sprintf (buffer, "%lu %lu", FRAME_FOREGROUND_PIXEL (f), FRAME_BACKGROUND_PIXEL (f)); pixel_colors = build_string (buffer); - + XSETFRAME (frame, f); loader = image_spec_value (img->spec, QCloader, NULL); if (NILP (loader)) @@ -10622,7 +10622,7 @@ x_kill_gs_process (pixmap, f) instance, give up. */ if (i == c->used) return; - + /* Kill the GS process. We should have found PIXMAP in the image cache and its image should contain a process object. */ img = c->images[i]; @@ -10646,10 +10646,10 @@ x_kill_gs_process (pixmap, f) if (ximg) { int x, y; - + /* Initialize the color table. */ init_color_table (); - + /* For each pixel of the image, look its color up in the color table. After having done so, the color table will contain an entry for each color used by the image. */ @@ -10678,7 +10678,7 @@ x_kill_gs_process (pixmap, f) else image_error ("Cannot get X image of `%s'; colors will not be freed", img->spec, Qnil); - + UNBLOCK_INPUT; } @@ -10781,8 +10781,8 @@ value. */) rc = XGetWindowProperty (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), prop_atom, 0, bytes_remaining, False, XA_STRING, - &actual_type, &actual_format, - &actual_size, &bytes_remaining, + &actual_type, &actual_format, + &actual_size, &bytes_remaining, (unsigned char **) &tmp_data); if (rc == Success && tmp_data) prop_value = make_string (tmp_data, size); @@ -10831,7 +10831,7 @@ start_hourglass () { EMACS_TIME delay; int secs, usecs = 0; - + cancel_hourglass (); if (INTEGERP (Vhourglass_delay) @@ -10847,7 +10847,7 @@ start_hourglass () } else secs = DEFAULT_HOURGLASS_DELAY; - + EMACS_SET_SECS_USECS (delay, secs, usecs); hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay, show_hourglass, NULL); @@ -10865,7 +10865,7 @@ cancel_hourglass () cancel_atimer (hourglass_atimer); hourglass_atimer = NULL; } - + if (hourglass_shown_p) hide_hourglass (); } @@ -10891,17 +10891,17 @@ show_hourglass (timer) if (!hourglass_shown_p) { Lisp_Object rest, frame; - + BLOCK_INPUT; - + FOR_EACH_FRAME (rest, frame) { struct frame *f = XFRAME (frame); - + if (FRAME_LIVE_P (f) && FRAME_X_P (f) && FRAME_X_DISPLAY (f)) { Display *dpy = FRAME_X_DISPLAY (f); - + #ifdef USE_X_TOOLKIT if (f->output_data.x->widget) #else @@ -10909,14 +10909,14 @@ show_hourglass (timer) #endif { f->output_data.x->hourglass_p = 1; - + if (!f->output_data.x->hourglass_window) { unsigned long mask = CWCursor; XSetWindowAttributes attrs; - + attrs.cursor = f->output_data.x->hourglass_cursor; - + f->output_data.x->hourglass_window = XCreateWindow (dpy, FRAME_OUTER_WINDOW (f), 0, 0, 32000, 32000, 0, 0, @@ -10924,7 +10924,7 @@ show_hourglass (timer) CopyFromParent, mask, &attrs); } - + XMapRaised (dpy, f->output_data.x->hourglass_window); XFlush (dpy); } @@ -10951,7 +10951,7 @@ hide_hourglass () FOR_EACH_FRAME (rest, frame) { struct frame *f = XFRAME (frame); - + if (FRAME_X_P (f) /* Watch out for newly created frames. */ && f->output_data.x->hourglass_window) @@ -10980,7 +10980,7 @@ static Lisp_Object x_create_tip_frame P_ ((struct x_display_info *, Lisp_Object, Lisp_Object)); static void compute_tip_xy P_ ((struct frame *, Lisp_Object, Lisp_Object, Lisp_Object, int, int, int *, int *)); - + /* The frame of a currently visible tooltip. */ Lisp_Object tip_frame; @@ -11013,7 +11013,7 @@ unwind_create_tip_frame (frame) tip_window = None; tip_frame = Qnil; } - + return deleted; } @@ -11077,7 +11077,7 @@ x_create_tip_frame (dpyinfo, parms, text) Ferase_buffer (); Finsert (1, &text); set_buffer_internal_1 (old_buffer); - + FRAME_CAN_HAVE_SCROLL_BARS (f) = 0; record_unwind_protect (unwind_create_tip_frame, frame); @@ -11113,7 +11113,7 @@ x_create_tip_frame (dpyinfo, parms, text) { Lisp_Object black; struct gcpro gcpro1; - + black = build_string ("black"); GCPRO1 (black); f->output_data.x->foreground_pixel @@ -11163,7 +11163,7 @@ x_create_tip_frame (dpyinfo, parms, text) else font = x_new_font (f, SDATA (font)); } - + /* Try out a font which we hope has bold and italic variations. */ if (!STRINGP (font)) font = x_new_font (f, "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1"); @@ -11188,7 +11188,7 @@ x_create_tip_frame (dpyinfo, parms, text) x_default_parameter (f, parms, Qborder_width, make_number (2), "borderWidth", "BorderWidth", RES_TYPE_NUMBER); - + /* This defaults to 2 in order to match xterm. We recognize either internalBorderWidth or internalBorder (which is what xterm calls it). */ @@ -11226,7 +11226,7 @@ x_create_tip_frame (dpyinfo, parms, text) end up in init_iterator with a null face cache, which should not happen. */ init_frame_faces (f); - + f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window; window_prompting = x_figure_window_size (f, parms); @@ -11249,12 +11249,12 @@ x_create_tip_frame (dpyinfo, parms, text) { XSetWindowAttributes attrs; unsigned long mask; - + BLOCK_INPUT; mask = CWBackPixel | CWOverrideRedirect | CWEventMask; if (DoesSaveUnders (dpyinfo->screen)) mask |= CWSaveUnder; - + /* Window managers look at the override-redirect flag to determine whether or net to give windows a decoration (Xlib spec, chapter 3.2.8). */ @@ -11293,12 +11293,12 @@ x_create_tip_frame (dpyinfo, parms, text) f->height = 0; SET_FRAME_WIDTH (f, 0); change_frame_size (f, height, width, 1, 0, 0); - + /* Add `tooltip' frame parameter's default value. */ if (NILP (Fframe_parameter (frame, intern ("tooltip")))) Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), Qnil)); - + /* Set up faces after all frame parameters are known. This call also merges in face attributes specified for new frames. @@ -11313,12 +11313,12 @@ x_create_tip_frame (dpyinfo, parms, text) /* Set tip_frame here, so that */ tip_frame = frame; call1 (Qface_set_after_frame_default, frame); - + if (!EQ (bg, Fframe_parameter (frame, Qbackground_color))) Fmodify_frame_parameters (frame, Fcons (Fcons (Qbackground_color, bg), Qnil)); } - + f->no_split = 1; UNGCPRO; @@ -11361,11 +11361,11 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y) int win_x, win_y; Window root, child; unsigned pmask; - + /* User-specified position? */ left = Fcdr (Fassq (Qleft, parms)); top = Fcdr (Fassq (Qtop, parms)); - + /* Move the tooltip window where the mouse pointer is. Resize and show it. */ if (!INTEGERP (left) || !INTEGERP (top)) @@ -11434,7 +11434,7 @@ Text larger than the specified size is clipped. */) struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; int old_windows_or_buffers_changed = windows_or_buffers_changed; int count = SPECPDL_INDEX (); - + specbind (Qinhibit_redisplay, Qt); GCPRO4 (string, parms, frame, timeout); @@ -11445,12 +11445,12 @@ Text larger than the specified size is clipped. */) timeout = make_number (5); else CHECK_NATNUM (timeout); - + if (NILP (dx)) dx = make_number (5); else CHECK_NUMBER (dx); - + if (NILP (dy)) dy = make_number (-10); else @@ -11470,7 +11470,7 @@ Text larger than the specified size is clipped. */) && !NILP (Fequal (last_parms, parms))) { struct frame *f = XFRAME (tip_frame); - + /* Only DX and DY have changed. */ if (!NILP (tip_timer)) { @@ -11517,7 +11517,7 @@ Text larger than the specified size is clipped. */) /* Set up the frame's root window. */ w = XWINDOW (FRAME_ROOT_WINDOW (f)); w->left = w->top = make_number (0); - + if (CONSP (Vx_max_tooltip_size) && INTEGERP (XCAR (Vx_max_tooltip_size)) && XINT (XCAR (Vx_max_tooltip_size)) > 0 @@ -11532,7 +11532,7 @@ Text larger than the specified size is clipped. */) w->width = make_number (80); w->height = make_number (40); } - + f->window_width = XINT (w->width); adjust_glyphs (f); w->pseudo_window_p = 1; @@ -11570,7 +11570,7 @@ Text larger than the specified size is clipped. */) } else row_width = row->pixel_width; - + height += row->height; width = max (width, row_width); } @@ -11589,7 +11589,7 @@ Text larger than the specified size is clipped. */) root_x, root_y, width, height); XMapRaised (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f)); UNBLOCK_INPUT; - + /* Draw into the window. */ w->must_be_updated_p = 1; update_single_window (w, 1); @@ -11620,16 +11620,16 @@ Value is t if tooltip was open, nil otherwise. */) /* Return quickly if nothing to do. */ if (NILP (tip_timer) && NILP (tip_frame)) return Qnil; - + frame = tip_frame; timer = tip_timer; GCPRO2 (frame, timer); tip_frame = tip_timer = deleted = Qnil; - + count = SPECPDL_INDEX (); specbind (Qinhibit_redisplay, Qt); specbind (Qinhibit_quit, Qt); - + if (!NILP (timer)) call1 (Qcancel_timer, timer); @@ -11732,7 +11732,7 @@ selection dialog's entry field, if MUSTMATCH is non-nil. */) dir = Fexpand_file_name (dir, Qnil); dir_xmstring = XmStringCreateLocalized (SDATA (dir)); pattern_xmstring = XmStringCreateLocalized ("*"); - + XtSetArg (al[ac], XmNtitle, SDATA (prompt)); ++ac; XtSetArg (al[ac], XmNdirectory, dir_xmstring); ++ac; XtSetArg (al[ac], XmNpattern, pattern_xmstring); ++ac; @@ -11755,7 +11755,7 @@ selection dialog's entry field, if MUSTMATCH is non-nil. */) help = XmFileSelectionBoxGetChild (dialog, XmDIALOG_HELP_BUTTON); XtSetSensitive (help, False); - /* Mark OK button as default. */ + /* Mark OK button as default. */ XtVaSetValues (XmFileSelectionBoxGetChild (dialog, XmDIALOG_OK_BUTTON), XmNshowAsDefault, True, NULL); @@ -11815,7 +11815,7 @@ selection dialog's entry field, if MUSTMATCH is non-nil. */) { XmString text; String data; - + XtVaGetValues (dialog, XmNtextString, &text, NULL); XmStringGetLtoR (text, XmFONTLIST_DEFAULT_TAG, &data); XmStringFree (text); @@ -11834,7 +11834,7 @@ selection dialog's entry field, if MUSTMATCH is non-nil. */) /* Make "Cancel" equivalent to C-g. */ if (NILP (file)) Fsignal (Qquit, Qnil); - + return unbind_to (count, file); } @@ -11858,7 +11858,7 @@ selection dialog's entry field, if MUSTMATCH is non-nil.") struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; char *cdef_file; char *cprompt; - + GCPRO5 (prompt, dir, default_filename, mustmatch, file); CHECK_STRING (prompt); CHECK_STRING (dir); @@ -11874,7 +11874,7 @@ selection dialog's entry field, if MUSTMATCH is non-nil.") cdef_file = SDATA (dir); fn = xg_get_file_name (f, SDATA (prompt), cdef_file, ! NILP (mustmatch)); - + if (fn) { file = build_string (fn); @@ -11887,7 +11887,7 @@ selection dialog's entry field, if MUSTMATCH is non-nil.") /* Make "Cancel" equivalent to C-g. */ if (NILP (file)) Fsignal (Qquit, Qnil); - + return unbind_to (count, file); } @@ -11938,7 +11938,7 @@ usual X keysyms. */) UNBLOCK_INPUT; return Qnil; } - + have_keys = Qnil; kb = XkbGetMap (dpy, XkbAllMapComponentsMask, XkbUseCoreKbd); if (kb) @@ -11965,7 +11965,7 @@ usual X keysyms. */) } XkbFreeClientMap (kb, 0, True); - + if (delete_keycode && backspace_keycode && XKeysymToKeycode (dpy, XK_Delete) == delete_keycode @@ -12095,7 +12095,7 @@ syms_of_xfns () staticpro (&QCcolor_adjustment); QCmask = intern (":mask"); staticpro (&QCmask); - + Qface_set_after_frame_default = intern ("face-set-after-frame-default"); staticpro (&Qface_set_after_frame_default); @@ -12163,7 +12163,7 @@ or when you set the mouse color. */); DEFVAR_BOOL ("display-hourglass", &display_hourglass_p, doc: /* Non-zero means Emacs displays an hourglass pointer on window systems. */); display_hourglass_p = 1; - + DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay, doc: /* *Seconds to wait before displaying an hourglass pointer. Value must be an integer or float. */); @@ -12199,7 +12199,7 @@ or when you set the mouse color. */); doc: /* Maximum size for tooltips. Value is a pair (COLUMNS . ROWS). Text larger than this is clipped. */); Vx_max_tooltip_size = Fcons (make_number (80), make_number (40)); - + DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager, doc: /* Non-nil if no X window manager is in use. Emacs doesn't try to figure this out; this is always nil @@ -12268,7 +12268,7 @@ meaning don't clear the cache. */); defsubr (&Sx_synchronize); defsubr (&Sx_focus_frame); defsubr (&Sx_backspace_delete_keys_p); - + /* Setting callback functions for fontset handler. */ get_font_info_func = x_get_font_info; @@ -12276,7 +12276,7 @@ meaning don't clear the cache. */); And the pointer assigned has the wrong type, anyway. */ list_fonts_func = x_list_fonts; #endif - + load_font_func = x_load_font; find_ccl_program_func = x_find_ccl_program; query_font_func = x_query_font; @@ -12317,16 +12317,16 @@ meaning don't clear the cache. */); Qxpm = intern ("xpm"); staticpro (&Qxpm); #endif - + #if HAVE_JPEG Qjpeg = intern ("jpeg"); staticpro (&Qjpeg); -#endif +#endif #if HAVE_TIFF Qtiff = intern ("tiff"); staticpro (&Qtiff); -#endif +#endif #if HAVE_GIF Qgif = intern ("gif"); @@ -12366,27 +12366,27 @@ init_xfns () { image_types = NULL; Vimage_types = Qnil; - + define_image_type (&xbm_type); define_image_type (&gs_type); define_image_type (&pbm_type); - + #if HAVE_XPM define_image_type (&xpm_type); #endif - + #if HAVE_JPEG define_image_type (&jpeg_type); #endif - + #if HAVE_TIFF define_image_type (&tiff_type); #endif - + #if HAVE_GIF define_image_type (&gif_type); #endif - + #if HAVE_PNG define_image_type (&png_type); #endif diff --git a/src/xmenu.c b/src/xmenu.c index bc3e22e3e16..2709a7641dd 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -487,7 +487,7 @@ single_keymap_panes (keymap, pane_name, prefix, notreal, maxdepth) /* This is a subroutine of single_keymap_panes that handles one keymap entry. - KEY is a key in a keymap and ITEM is its binding. + KEY is a key in a keymap and ITEM is its binding. PENDING_MAPS_PTR points to a list of keymaps waiting to be made into separate panes. If NOTREAL is nonzero, only check for equivalent key bindings, don't @@ -508,7 +508,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth, Lisp_Object map, item_string, enabled; struct gcpro gcpro1, gcpro2; int res; - + /* Parse the menu item and leave the result in item_properties. */ GCPRO2 (key, item); res = parse_menu_item (item, notreal, 0); @@ -517,7 +517,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth, return; /* Not a menu item. */ map = XVECTOR (item_properties)->contents[ITEM_PROPERTY_MAP]; - + if (notreal) { /* We don't want to make a menu, just traverse the keymaps to @@ -528,7 +528,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth, } enabled = XVECTOR (item_properties)->contents[ITEM_PROPERTY_ENABLE]; - item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME]; + item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME]; if (!NILP (map) && SREF (item_string, 0) == '@') { @@ -601,7 +601,7 @@ single_menu_item (key, item, pending_maps_ptr, notreal, maxdepth, item_string = concat2 (prefix, item_string); } #endif /* not HAVE_BOXES */ - + #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK) if (!NILP(map)) /* Indicate visually that this is a submenu. */ @@ -696,7 +696,7 @@ mouse_position_for_popup(f, x, y) int dummy; BLOCK_INPUT; - + XQueryPointer (FRAME_X_DISPLAY (f), DefaultRootWindow (FRAME_X_DISPLAY (f)), @@ -835,7 +835,7 @@ cached information about equivalent key sequences. */) x = make_number (cur_x); y = make_number (cur_y); } - + #else /* not HAVE_X_WINDOWS */ Lisp_Object bar_window; enum scroll_bar_part part; @@ -957,7 +957,7 @@ cached information about equivalent key sequences. */) keymaps = 0; } - + unbind_to (specpdl_count, Qnil); if (NILP (position)) @@ -1146,7 +1146,7 @@ popup_get_selection (initial_event, dpyinfo, id, do_timers) && dpyinfo->display == event.xbutton.display) { dpyinfo->grabbed &= ~(1 << event.xbutton.button); -#ifdef USE_MOTIF /* Pretending that the event came from a +#ifdef USE_MOTIF /* Pretending that the event came from a Btn1Down seems the only way to convince Motif to activate its callbacks; setting the XmNmenuPost isn't working. --marcus@sysc.pdx.edu. */ @@ -1167,7 +1167,7 @@ popup_get_selection (initial_event, dpyinfo, id, do_timers) if (!IsModifierKey (keysym)) popup_activated_flag = 0; } - + x_dispatch_event (&event, event.xany.display); } } @@ -1203,7 +1203,7 @@ popup_widget_loop () The reason for saving the button event until here, instead of passing it to the toolkit right away, is that we can safely execute Lisp code. */ - + void x_activate_menubar (f) FRAME_PTR f; @@ -1211,11 +1211,11 @@ x_activate_menubar (f) if (!f->output_data.x->saved_menu_event->type) return; -#ifdef USE_GTK +#ifdef USE_GTK if (! xg_win_to_widget (f->output_data.x->saved_menu_event->xany.window)) return; #endif - + set_frame_menubar (f, 0, 1); BLOCK_INPUT; #ifdef USE_GTK @@ -1230,7 +1230,7 @@ x_activate_menubar (f) if (f->output_data.x->saved_menu_event->type == ButtonRelease) pending_menu_activation = 1; #endif - + /* Ignore this if we get it a second time. */ f->output_data.x->saved_menu_event->type = 0; } @@ -1298,7 +1298,7 @@ show_help_event (f, widget, help) } else { - /* WIDGET is the popup menu. It's parent is the frame's + /* WIDGET is the popup menu. It's parent is the frame's widget. See which frame that is. */ xt_or_gtk_widget frame_widget = XtParent (widget); Lisp_Object tail; @@ -1330,7 +1330,7 @@ menu_highlight_callback (widget, call_data) { xg_menu_item_cb_data *cb_data; Lisp_Object help; - + cb_data = (xg_menu_item_cb_data*) g_object_get_data (G_OBJECT (widget), XG_ITEM_DATA); if (! cb_data) return; @@ -1356,7 +1356,7 @@ menu_highlight_callback (widget, id, call_data) widget_value *wv = (widget_value *) call_data; help = wv ? wv->help : Qnil; - + /* Determine the frame for the help event. */ f = menubar_id_to_frame (id); @@ -1620,7 +1620,7 @@ digest_single_submenu (start, end, top_level_items) first_wv = wv; save_wv = 0; prev_wv = 0; - + /* Loop over all panes and items made by the preceding call to parse_single_submenu and construct a tree of widget_value objects. Ignore the panes and items used by previous calls to @@ -1653,10 +1653,10 @@ digest_single_submenu (start, end, top_level_items) /* Create a new pane. */ Lisp_Object pane_name, prefix; char *pane_string; - + pane_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_NAME]; prefix = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX]; - + #ifndef HAVE_MULTILINGUAL_MENU if (STRINGP (pane_name) && STRING_MULTIBYTE (pane_name)) { @@ -1700,7 +1700,7 @@ digest_single_submenu (start, end, top_level_items) /* Create a new item within current pane. */ Lisp_Object item_name, enable, descrip, def, type, selected; Lisp_Object help; - + item_name = AREF (menu_items, i + MENU_ITEMS_ITEM_NAME); enable = AREF (menu_items, i + MENU_ITEMS_ITEM_ENABLE); descrip = AREF (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY); @@ -1715,7 +1715,7 @@ digest_single_submenu (start, end, top_level_items) item_name = ENCODE_SYSTEM (item_name); AREF (menu_items, i + MENU_ITEMS_ITEM_NAME) = item_name; } - + if (STRINGP (descrip) && STRING_MULTIBYTE (descrip)) { descrip = ENCODE_SYSTEM (descrip); @@ -1724,7 +1724,7 @@ digest_single_submenu (start, end, top_level_items) #endif /* not HAVE_MULTILINGUAL_MENU */ wv = xmalloc_widget_value (); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else save_wv->contents = wv; @@ -1737,7 +1737,7 @@ digest_single_submenu (start, end, top_level_items) as long as pointers have enough bits to hold small integers. */ wv->call_data = (!NILP (def) ? (void *) (EMACS_INT) i : 0); wv->enabled = !NILP (enable); - + if (NILP (type)) wv->button_type = BUTTON_TYPE_NONE; else if (EQ (type, QCradio)) @@ -1783,7 +1783,7 @@ update_frame_menubar (f) #else struct x_output *x = f->output_data.x; int columns, rows; - + if (!x->menubar_widget || XtIsManaged (x->menubar_widget)) return 0; @@ -1847,7 +1847,7 @@ set_frame_menubar (f, first_time, deep_p) f->output_data.x->id = next_menubar_widget_id++; id = f->output_data.x->id; #endif - + if (! menubar_widget) deep_p = 1; else if (pending_menu_activation && !deep_p) @@ -1895,7 +1895,7 @@ set_frame_menubar (f, first_time, deep_p) /* Run the Lucid hook. */ safe_run_hooks (Qactivate_menubar_hook); - + /* If it has changed current-menubar from previous value, really recompute the menubar from the value. */ if (! NILP (Vlucid_menu_bar_dirty_flag)) @@ -1960,7 +1960,7 @@ set_frame_menubar (f, first_time, deep_p) menu_items_n_panes = submenu_n_panes[i]; wv = digest_single_submenu (submenu_start[i], submenu_end[i], submenu_top_level_items[i]); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else first_wv->contents = wv; @@ -2039,7 +2039,7 @@ set_frame_menubar (f, first_time, deep_p) This value just has to be different from small integers. */ wv->call_data = (void *) (EMACS_INT) (-1); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; else first_wv->contents = wv; @@ -2073,9 +2073,9 @@ set_frame_menubar (f, first_time, deep_p) else { GtkWidget *wvbox = f->output_data.x->vbox_widget; - + menubar_widget - = xg_create_widget ("menubar", "menubar", f, first_wv, + = xg_create_widget ("menubar", "menubar", f, first_wv, G_CALLBACK (menubar_selection_callback), G_CALLBACK (popup_deactivate_callback), G_CALLBACK (menu_highlight_callback)); @@ -2083,7 +2083,7 @@ set_frame_menubar (f, first_time, deep_p) f->output_data.x->menubar_widget = menubar_widget; } - + #else /* not USE_GTK */ if (menubar_widget) { @@ -2099,7 +2099,7 @@ set_frame_menubar (f, first_time, deep_p) } else { - menubar_widget = lw_create_widget ("menubar", "menubar", id, first_wv, + menubar_widget = lw_create_widget ("menubar", "menubar", id, first_wv, f->output_data.x->column_widget, 0, popup_activate_callback, @@ -2110,7 +2110,7 @@ set_frame_menubar (f, first_time, deep_p) } { - int menubar_size + int menubar_size = (f->output_data.x->menubar_widget ? (f->output_data.x->menubar_widget->core.height + f->output_data.x->menubar_widget->core.border_width) @@ -2132,7 +2132,7 @@ set_frame_menubar (f, first_time, deep_p) f->output_data.x->menubar_height = menubar_size; } #endif /* not USE_GTK */ - + free_menubar_widget_value_tree (first_wv); update_frame_menubar (f); @@ -2173,7 +2173,7 @@ free_frame_menubar (f) menubar_widget = f->output_data.x->menubar_widget; f->output_data.x->menubar_height = 0; - + if (menubar_widget) { #ifdef USE_MOTIF @@ -2187,14 +2187,14 @@ free_frame_menubar (f) is switched off, which fixes the shell position. */ Position x0, y0, x1, y1; #endif - + BLOCK_INPUT; #ifdef USE_MOTIF if (f->output_data.x->widget) XtVaGetValues (f->output_data.x->widget, XtNx, &x0, XtNy, &y0, NULL); #endif - + lw_destroy_all_widgets ((LWLIB_ID) f->output_data.x->id); f->output_data.x->menubar_widget = NULL; @@ -2206,7 +2206,7 @@ free_frame_menubar (f) XtVaSetValues (f->output_data.x->widget, XtNx, x0, XtNy, y0, NULL); } #endif - + UNBLOCK_INPUT; } } @@ -2300,7 +2300,7 @@ create_and_show_popup_menu (f, first_wv, x, y, for_click) G_CALLBACK (popup_deactivate_callback), G_CALLBACK (menu_highlight_callback)); xg_crazy_callback_abort = 0; - + for (i = 0; i < 5; i++) if (FRAME_X_DISPLAY_INFO (f)->grabbed & (1 << i)) break; @@ -2321,7 +2321,7 @@ create_and_show_popup_menu (f, first_wv, x, y, for_click) /* Display the menu. */ gtk_widget_show_all (menu); gtk_menu_popup (GTK_MENU (menu), 0, 0, pos_func, &popup_x_y, i, 0); - + xg_did_tearoff = 0; /* Set this to one. popup_widget_loop increases it by one, so it becomes two. show_help_echo uses this to detect popup menus. */ @@ -2333,7 +2333,7 @@ create_and_show_popup_menu (f, first_wv, x, y, for_click) xg_keep_popup (menu, xg_did_tearoff); else gtk_widget_destroy (menu); - + /* Must reset this manually because the button release event is not passed to Emacs event loop. */ FRAME_X_DISPLAY_INFO (f)->grabbed = 0; @@ -2425,7 +2425,7 @@ create_and_show_popup_menu (f, first_wv, x, y, for_click) that it is unnecessary--that the menu has already disappeared. Nowadays the menu disappears ok, all right, but we need to delete the widgets or multiple ones will pile up. */ - lw_destroy_all_widgets (menu_id); + lw_destroy_all_widgets (menu_id); } #endif /* not USE_GTK */ @@ -2468,7 +2468,7 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) wv->help =Qnil; first_wv = wv; first_pane = 1; - + /* Loop over all panes and items, filling in the tree. */ i = 0; while (i < menu_items_used) @@ -2500,10 +2500,10 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) /* Create a new pane. */ Lisp_Object pane_name, prefix; char *pane_string; - + pane_name = AREF (menu_items, i + MENU_ITEMS_PANE_NAME); prefix = AREF (menu_items, i + MENU_ITEMS_PANE_PREFIX); - + #ifndef HAVE_MULTILINGUAL_MENU if (STRINGP (pane_name) && STRING_MULTIBYTE (pane_name)) { @@ -2564,18 +2564,18 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) item_name = ENCODE_SYSTEM (item_name); AREF (menu_items, i + MENU_ITEMS_ITEM_NAME) = item_name; } - + if (STRINGP (descrip) && STRING_MULTIBYTE (descrip)) { descrip = ENCODE_SYSTEM (descrip); AREF (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY) = descrip; } #endif /* not HAVE_MULTILINGUAL_MENU */ - + wv = xmalloc_widget_value (); - if (prev_wv) + if (prev_wv) prev_wv->next = wv; - else + else save_wv->contents = wv; wv->name = (char *) SDATA (item_name); if (!NILP (descrip)) @@ -2629,7 +2629,7 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) if (STRING_MULTIBYTE (title)) title = ENCODE_SYSTEM (title); #endif - + wv_title->name = (char *) SDATA (title); wv_title->enabled = TRUE; wv_title->button_type = BUTTON_TYPE_NONE; @@ -2741,7 +2741,7 @@ create_and_show_dialog (f, first_wv) /* Process events that apply to the menu. */ popup_widget_loop (); - + gtk_widget_destroy (menu); } } @@ -2807,7 +2807,7 @@ create_and_show_dialog (f, first_wv) { int count = SPECPDL_INDEX (); int fact = 4 * sizeof (LWLIB_ID); - + /* xdialog_show_unwind is responsible for popping the dialog box down. */ record_unwind_protect (xdialog_show_unwind, Fcons (make_number (dialog_id >> (fact)), @@ -2858,7 +2858,7 @@ xdialog_show (f, keymaps, title, error) pane_name = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_NAME]; prefix = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_PREFIX]; pane_string = (NILP (pane_name) - ? "" : (char *) SDATA (pane_name)); + ? "" : (char *) SDATA (pane_name)); prev_wv = xmalloc_widget_value (); prev_wv->value = pane_string; if (keymaps && !NILP (prefix)) @@ -2867,19 +2867,19 @@ xdialog_show (f, keymaps, title, error) prev_wv->name = "message"; prev_wv->help = Qnil; first_wv = prev_wv; - + /* Loop over all panes and items, filling in the tree. */ i = MENU_ITEMS_PANE_LENGTH; while (i < menu_items_used) { - + /* Create a new item within current pane. */ Lisp_Object item_name, enable, descrip; item_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_NAME]; enable = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_ENABLE]; descrip = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY]; - + if (NILP (item_name)) { free_menubar_widget_value_tree (first_wv); @@ -2950,7 +2950,7 @@ xdialog_show (f, keymaps, title, error) /* Free the widget_value objects we used to specify the contents. */ free_menubar_widget_value_tree (first_wv); - + /* Find the selected item, and its pane, to return the proper value. */ if (menu_item_selection != 0) @@ -3009,7 +3009,7 @@ static struct frame *menu_help_frame; PANE is the pane number, and ITEM is the menu item number in the menu (currently not used). - + This cannot be done with generating a HELP_EVENT because XMenuActivate contains a loop that doesn't let Emacs process keyboard events. */ @@ -3023,7 +3023,7 @@ menu_help_callback (help_string, pane, item) Lisp_Object *first_item; Lisp_Object pane_name; Lisp_Object menu_object; - + first_item = XVECTOR (menu_items)->contents; if (EQ (first_item[0], Qt)) pane_name = first_item[MENU_ITEMS_PANE_NAME]; @@ -3032,7 +3032,7 @@ menu_help_callback (help_string, pane, item) pane_name = empty_string; else pane_name = first_item[MENU_ITEMS_ITEM_NAME]; - + /* (menu-item MENU-NAME PANE-NUMBER) */ menu_object = Fcons (Qmenu_item, Fcons (pane_name, @@ -3040,7 +3040,7 @@ menu_help_callback (help_string, pane, item) show_help_echo (help_string ? build_string (help_string) : Qnil, Qnil, menu_object, make_number (item), 1); } - + static Lisp_Object xmenu_show (f, x, y, for_click, keymaps, title, error) @@ -3051,7 +3051,7 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) Lisp_Object title; char **error; { - Window root; + Window root; XMenu *menu; int pane, selidx, lpane, status; Lisp_Object entry, pane_prefix; @@ -3118,7 +3118,7 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) /* Adjust coordinates to be root-window-relative. */ x += f->output_data.x->left_pos; y += f->output_data.x->top_pos; - + /* Create all the necessary panes and their items. */ i = 0; while (i < menu_items_used) @@ -3183,7 +3183,7 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY]; help = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_HELP]; help_string = STRINGP (help) ? SDATA (help) : NULL; - + if (!NILP (descrip)) { int gap = maxwidth - SBYTES (item_name); @@ -3347,7 +3347,7 @@ The enable predicate for a menu command should check this variable. */); Vmenu_updating_frame = Qnil; #ifdef USE_X_TOOLKIT - widget_id_tick = (1<<16); + widget_id_tick = (1<<16); next_menubar_widget_id = 1; #endif diff --git a/src/xterm.c b/src/xterm.c index 4fa0e8bb49b..43075c9d5b3 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -8783,12 +8783,12 @@ xg_scroll_callback (widget, data) gdouble position; gdouble *p; int diff; - + int part = -1, whole = 0, portion = 0; GtkAdjustment *adj = GTK_ADJUSTMENT (widget); - + if (xg_ignore_gtk_scrollbar) return; - + position = gtk_adjustment_get_value (adj); p = g_object_get_data (G_OBJECT (widget), XG_LAST_SB_DATA); @@ -8803,7 +8803,7 @@ xg_scroll_callback (widget, data) *p = position; diff = (int) (position - previous); - + if (diff == (int) adj->step_increment) { part = scroll_bar_down_arrow; @@ -8831,7 +8831,7 @@ xg_scroll_callback (widget, data) portion = min (position, whole); bar->dragging = make_number (portion); } - + if (part >= 0) { xg_ignore_next_thumb = 1; @@ -10221,7 +10221,7 @@ enum Returns non-zero if the event was filtered, caller shall not process this event further. Returns zero if event is wasn't filtered. */ - + #ifdef HAVE_X_I18N static int x_filter_event (dpyinfo, event) @@ -10286,7 +10286,7 @@ event_handler_gdk (gxev, ev, data) /* Handles the XEvent EVENT on display DPYINFO. - + *FINISH is X_EVENT_GOTO_OUT if caller should stop reading events. *FINISH is zero if caller should continue reading events. *FINISH is X_EVENT_DROP if event should not be passed to the toolkit. @@ -10294,7 +10294,7 @@ event_handler_gdk (gxev, ev, data) Events representing keys are stored in buffer *BUFP_R, which can hold up to *NUMCHARSP characters. We return the number of characters stored into the buffer. */ - + static int handle_one_xevent (dpyinfo, eventp, bufp_r, numcharsp, finish) struct x_display_info *dpyinfo; @@ -10312,7 +10312,7 @@ handle_one_xevent (dpyinfo, eventp, bufp_r, numcharsp, finish) XEvent event = *eventp; *finish = X_EVENT_NORMAL; - + switch (event.type) { case ClientMessage: @@ -11541,7 +11541,7 @@ handle_one_xevent (dpyinfo, eventp, bufp_r, numcharsp, finish) } goto ret; - + out: *finish = X_EVENT_GOTO_OUT; @@ -11549,7 +11549,7 @@ handle_one_xevent (dpyinfo, eventp, bufp_r, numcharsp, finish) *bufp_r = bufp; *numcharsp = numchars; *eventp = event; - + return count; } @@ -11569,11 +11569,11 @@ x_dispatch_event (event, display) struct input_event *bufpp = bufp; int numchars = 10; int finish = X_EVENT_NORMAL; - + for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next) if (dpyinfo->display == display) break; - + if (dpyinfo) { int i, events; @@ -11681,7 +11681,7 @@ XTread_socket (sd, bufp, numchars, expected) We use a bunch of globals to communicate with our filter function, that is kind of ugly, but it works. */ current_dpyinfo = dpyinfo; - + while (gtk_events_pending ()) { static int nr = 0; @@ -11703,7 +11703,7 @@ XTread_socket (sd, bufp, numchars, expected) while (XPending (dpyinfo->display)) { int finish; - + XNextEvent (dpyinfo->display, &event); #ifdef HAVE_X_I18N @@ -14105,7 +14105,7 @@ x_free_frame_resources (f) FRAME_GTK_OUTER_WIDGET (f) = 0; } #endif /* USE_GTK */ - + if (FRAME_X_WINDOW (f)) XDestroyWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f)); #endif /* !USE_X_TOOLKIT */ @@ -14208,7 +14208,7 @@ x_wm_set_size_hint (f, flags, user_position) int ac = 0; Dimension widget_width, widget_height; #endif - + Window window = FRAME_OUTER_WINDOW (f); /* Setting PMaxSize caused various problems. */ @@ -15198,7 +15198,7 @@ x_term_init (display_name, xrm_option, resource_name) argv[argc++] = "--name"; argv[argc++] = resource_name; - + #ifdef HAVE_X11R5 XSetLocaleModifiers (""); #endif @@ -15210,7 +15210,7 @@ x_term_init (display_name, xrm_option, resource_name) xg_initialize (); dpy = GDK_DISPLAY (); - + /* NULL window -> events for all windows go to our function */ gdk_window_add_filter (NULL, event_handler_gdk, NULL); @@ -15226,10 +15226,10 @@ x_term_init (display_name, xrm_option, resource_name) if (! NILP (abs_file) && Ffile_readable_p (abs_file)) gtk_rc_parse (SDATA (abs_file)); - + UNGCPRO; } - + XSetErrorHandler (x_error_handler); XSetIOErrorHandler (x_io_error_quitter); } diff --git a/src/xterm.h b/src/xterm.h index 129dca32f5c..22b1ee257e5 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -30,7 +30,7 @@ Boston, MA 02111-1307, USA. */ #include <X11/StringDefs.h> #include <X11/IntrinsicP.h> /* CoreP.h needs this */ #include <X11/CoreP.h> /* foul, but we need this to use our own - window inside a widget instead of one + window inside a widget instead of one that Xt creates... */ #include <X11/StringDefs.h> @@ -77,7 +77,7 @@ typedef GtkWidget *xt_or_gtk_widget; #ifdef PBaseSize /* AIX 3.1's X is somewhere between X11R3 and X11R4. It has PBaseSize, but not XWithdrawWindow, XSetWMName, XSetWMNormalHints, - XSetWMIconName. + XSetWMIconName. AIX 3.2 is at least X11R4. */ #if (!defined AIX) || (defined AIX3_2) #define HAVE_X11R4 @@ -138,51 +138,51 @@ struct x_display_info { /* Chain of all x_display_info structures. */ struct x_display_info *next; - + /* Connection number (normally a file descriptor number). */ int connection; - + /* This says how to access this display in Xlib. */ Display *display; - + /* This is a cons cell of the form (NAME . FONT-LIST-CACHE). The same cons cell also appears in x_display_name_list. */ Lisp_Object name_list_element; - + /* Number of frames that are on this display. */ int reference_count; - + /* The Screen this connection is connected to. */ Screen *screen; /* Dots per inch of the screen. */ double resx, resy; - + /* The Visual being used for this display. */ Visual *visual; /* The colormap being used. */ Colormap cmap; - + /* Number of panes on this screen. */ int n_planes; - + /* Dimensions of this screen. */ int height, width; - + /* Mask of things that cause the mouse to be grabbed. */ int grabbed; - + /* Emacs bitmap-id of the default icon bitmap for this frame. Or -1 if none has been allocated yet. */ int icon_bitmap_id; - + /* The root window of this screen. */ Window root_window; - + /* The cursor to use for vertical scroll bars. */ Cursor vertical_scroll_bar_cursor; - + /* X Resource data base */ XrmDatabase xrdb; @@ -274,19 +274,19 @@ struct x_display_info /* Communication with window managers. */ Atom Xatom_wm_protocols; - + /* Kinds of protocol things we may receive. */ Atom Xatom_wm_take_focus; Atom Xatom_wm_save_yourself; Atom Xatom_wm_delete_window; - + /* Atom for indicating window state to the window manager. */ Atom Xatom_wm_change_state; - + /* Other WM communication */ Atom Xatom_wm_configure_denied; /* When our config request is denied */ Atom Xatom_wm_window_moved; /* When the WM moves us. */ - + /* EditRes protocol */ Atom Xatom_editres; @@ -476,7 +476,7 @@ struct x_output GtkWidget *toolbar_widget; /* The handle box that makes the tool bar detachable. */ GtkWidget *handlebox_widget; - + /* The last size hints set. */ GdkGeometry size_hints; long hint_flags; @@ -508,7 +508,7 @@ struct x_output /* Foreground color for scroll bars. A value of -1 means use the default (black for non-toolkit scroll bars). */ unsigned long scroll_bar_foreground_pixel; - + /* Background color for scroll bars. A value of -1 means use the default (background color of the frame for non-toolkit scroll bars). */ @@ -530,7 +530,7 @@ struct x_output /* Window whose cursor is hourglass_cursor. This window is temporarily mapped to display an hourglass cursor. */ Window hourglass_window; - + /* Non-zero means hourglass cursor is currently displayed. */ unsigned hourglass_p : 1; @@ -629,7 +629,7 @@ struct x_output /* As x_pixels_diff, but to FRAME_OUTER_WINDOW. For some reason the two might differ by a pixel, depending on WM */ int x_pixels_outer_diff; - + /* As y_pixels_diff, but to FRAME_OUTER_WINDOW. In the toolkit version, these may differ because this does not take into account possible menubar. y_pixels_diff is with menubar height included */ @@ -878,7 +878,7 @@ struct scroll_bar /* Return the length of the rectangle within which the top of the handle must stay. This isn't equivalent to the inside height, - because the scroll bar handle has a minimum height. + because the scroll bar handle has a minimum height. This is the real range of motion for the scroll bar, so when we're scaling buffer positions to scroll bar positions, we use this, not @@ -941,7 +941,7 @@ struct scroll_bar + (f)->output_data.x->internal_border_width) -/* Return the row/column (zero-based) of the character cell containing +/* Return the row/column (zero-based) of the character cell containing the pixel on FRAME at ROW/COL. */ #define PIXEL_TO_CHAR_ROW(f, row) \ (((row) - (f)->output_data.x->internal_border_width) \ diff --git a/update-subdirs b/update-subdirs index 801b15003da..9ce3a641b25 100755 --- a/update-subdirs +++ b/update-subdirs @@ -24,7 +24,7 @@ cd $1 for file in *; do case $file in *.elc | *.el | term | RCS | CVS | Old | . | .. | =* | *~ | *.orig | *.rej) - ;; + ;; *) if [ -d $file ]; then subdirs="\"$file\" $subdirs" |