diff options
| author | Paul Eggert | 2011-10-22 23:38:24 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-10-22 23:38:24 -0700 |
| commit | cfc09582247ffef6a46b6249e2fba9136a62d21e (patch) | |
| tree | 50e102f64a2b88c692d9110990abd416c78c32f0 | |
| parent | 92c938895c639463681ae1c58a944cae62b70b87 (diff) | |
| parent | 86c606818495d9411fd5d6b1477f9a097eb18020 (diff) | |
| download | emacs-cfc09582247ffef6a46b6249e2fba9136a62d21e.tar.gz emacs-cfc09582247ffef6a46b6249e2fba9136a62d21e.zip | |
Merge from trunk.
194 files changed, 3322 insertions, 3166 deletions
| @@ -1,3 +1,18 @@ | |||
| 1 | 2011-10-20 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794) | ||
| 4 | * configure.in (AC_STRUCT_TM, AC_STRUCT_TIMEZONE, HAVE_TM_GMTOFF): | ||
| 5 | Remove; no longer needed, now that we defer to strftime for time | ||
| 6 | zone names. | ||
| 7 | |||
| 8 | 2011-10-18 Jan Djärv <jan.h.d@swipnet.se> | ||
| 9 | |||
| 10 | * configure.in (GLIB_REQUIRED, GTK_REQUIRED): Set to 2.10 (Bug#9786). | ||
| 11 | |||
| 12 | 2011-10-18 Chong Yidong <cyd@gnu.org> | ||
| 13 | |||
| 14 | * make-dist: Remove Cocoa/Emacs.xcodeproj from distribution. | ||
| 15 | |||
| 1 | 2011-10-13 Glenn Morris <rgm@gnu.org> | 16 | 2011-10-13 Glenn Morris <rgm@gnu.org> |
| 2 | 17 | ||
| 3 | * configure.in: Also look for tputs in libcurses. (Bug#9736) | 18 | * configure.in: Also look for tputs in libcurses. (Bug#9736) |
| @@ -5,7 +20,7 @@ | |||
| 5 | 2011-10-12 Paul Eggert <eggert@cs.ucla.edu> | 20 | 2011-10-12 Paul Eggert <eggert@cs.ucla.edu> |
| 6 | 21 | ||
| 7 | * configure.in: Remove check for -lintl (Bug#9713). | 22 | * configure.in: Remove check for -lintl (Bug#9713). |
| 8 | The check breaks 'configure' in some CentOS 5.7 x86 configurations. | 23 | The check could break 'configure' on GNU/Linux with a (broken) libintl. |
| 9 | The check was helpful but not essential in Solaris 2.6 (1997), | 24 | The check was helpful but not essential in Solaris 2.6 (1997), |
| 10 | and is no longer needed in Solaris 8 (2000). Solaris 2.6 is | 25 | and is no longer needed in Solaris 8 (2000). Solaris 2.6 is |
| 11 | obsolete -- Sun dropped support for it in 2006 -- and without | 26 | obsolete -- Sun dropped support for it in 2006 -- and without |
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 26e3de63808..80a66be3fa4 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -151,7 +151,7 @@ TUTORIAL.zh | |||
| 151 | abbrevs.texi | 151 | abbrevs.texi |
| 152 | ack.texi | 152 | ack.texi |
| 153 | anti.texi | 153 | anti.texi |
| 154 | arevert-xtra.texi | 154 | arevert-xtra.texi cyd |
| 155 | basic.texi cyd | 155 | basic.texi cyd |
| 156 | buffers.texi | 156 | buffers.texi |
| 157 | building.texi | 157 | building.texi |
| @@ -162,12 +162,12 @@ commands.texi cyd | |||
| 162 | custom.texi | 162 | custom.texi |
| 163 | dired.texi | 163 | dired.texi |
| 164 | dired-xtra.texi | 164 | dired-xtra.texi |
| 165 | display.texi | 165 | display.texi cyd |
| 166 | emacs.texi | 166 | emacs.texi |
| 167 | emacs-xtra.texi | 167 | emacs-xtra.texi |
| 168 | emerge-xtra.texi | 168 | emerge-xtra.texi |
| 169 | entering.texi cyd | 169 | entering.texi cyd |
| 170 | files.texi | 170 | files.texi cyd |
| 171 | fixit.texi | 171 | fixit.texi |
| 172 | fortran-xtra.texi | 172 | fortran-xtra.texi |
| 173 | frames.texi | 173 | frames.texi |
| @@ -175,7 +175,7 @@ glossary.texi | |||
| 175 | help.texi cyd | 175 | help.texi cyd |
| 176 | indent.texi | 176 | indent.texi |
| 177 | killing.texi cyd | 177 | killing.texi cyd |
| 178 | kmacro.texi | 178 | kmacro.texi cyd |
| 179 | macos.texi | 179 | macos.texi |
| 180 | maintaining.texi | 180 | maintaining.texi |
| 181 | major.texi | 181 | major.texi |
| @@ -191,7 +191,7 @@ programs.texi | |||
| 191 | regs.texi cyd | 191 | regs.texi cyd |
| 192 | rmail.texi | 192 | rmail.texi |
| 193 | screen.texi cyd | 193 | screen.texi cyd |
| 194 | search.texi | 194 | search.texi cyd |
| 195 | sending.texi | 195 | sending.texi |
| 196 | text.texi | 196 | text.texi |
| 197 | trouble.texi | 197 | trouble.texi |
diff --git a/admin/notes/changelogs b/admin/notes/changelogs index 2c3749244fb..2e954570ce8 100644 --- a/admin/notes/changelogs +++ b/admin/notes/changelogs | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | If installing changes written by someone else, make the ChangeLog | ||
| 2 | entry in their name, not yours. | ||
| 3 | |||
| 4 | |||
| 1 | http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html | 5 | http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html |
| 2 | There is no need to make change log entries for files such as NEWS, | 6 | There is no need to make change log entries for files such as NEWS, |
| 3 | MAINTAINERS, and FOR-RELEASE. | 7 | MAINTAINERS, and FOR-RELEASE. |
diff --git a/admin/notes/copyright b/admin/notes/copyright index f4d22f9b270..0ad99900779 100644 --- a/admin/notes/copyright +++ b/admin/notes/copyright | |||
| @@ -24,9 +24,8 @@ the file. | |||
| 24 | 24 | ||
| 25 | 2. When installing code written by someone else, the ChangeLog entry | 25 | 2. When installing code written by someone else, the ChangeLog entry |
| 26 | should be in the name of the author of the code, not the person who | 26 | should be in the name of the author of the code, not the person who |
| 27 | installs it. I think it is helpful to put the author (if not yourself) | 27 | installs it. Also use bzr commit's "--author" option. |
| 28 | in the commit log as well (you can also use bzr commit's "--author" | 28 | Do not install any of your own changes in the same commit. |
| 29 | option); and to not install any of your own changes in the same commit. | ||
| 30 | 29 | ||
| 31 | 3. With images, add the legal info to a README file in the directory | 30 | 3. With images, add the legal info to a README file in the directory |
| 32 | containing the image. | 31 | containing the image. |
diff --git a/autogen/configure b/autogen/configure index 8f50731f3f1..fc906db6fea 100755 --- a/autogen/configure +++ b/autogen/configure | |||
| @@ -8803,116 +8803,6 @@ fi | |||
| 8803 | done | 8803 | done |
| 8804 | 8804 | ||
| 8805 | 8805 | ||
| 8806 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 | ||
| 8807 | $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } | ||
| 8808 | if test "${ac_cv_struct_tm+set}" = set; then : | ||
| 8809 | $as_echo_n "(cached) " >&6 | ||
| 8810 | else | ||
| 8811 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 8812 | /* end confdefs.h. */ | ||
| 8813 | #include <sys/types.h> | ||
| 8814 | #include <time.h> | ||
| 8815 | |||
| 8816 | int | ||
| 8817 | main () | ||
| 8818 | { | ||
| 8819 | struct tm tm; | ||
| 8820 | int *p = &tm.tm_sec; | ||
| 8821 | return !p; | ||
| 8822 | ; | ||
| 8823 | return 0; | ||
| 8824 | } | ||
| 8825 | _ACEOF | ||
| 8826 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 8827 | ac_cv_struct_tm=time.h | ||
| 8828 | else | ||
| 8829 | ac_cv_struct_tm=sys/time.h | ||
| 8830 | fi | ||
| 8831 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 8832 | fi | ||
| 8833 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 | ||
| 8834 | $as_echo "$ac_cv_struct_tm" >&6; } | ||
| 8835 | if test $ac_cv_struct_tm = sys/time.h; then | ||
| 8836 | |||
| 8837 | $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h | ||
| 8838 | |||
| 8839 | fi | ||
| 8840 | |||
| 8841 | ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h> | ||
| 8842 | #include <$ac_cv_struct_tm> | ||
| 8843 | |||
| 8844 | " | ||
| 8845 | if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then : | ||
| 8846 | |||
| 8847 | cat >>confdefs.h <<_ACEOF | ||
| 8848 | #define HAVE_STRUCT_TM_TM_ZONE 1 | ||
| 8849 | _ACEOF | ||
| 8850 | |||
| 8851 | |||
| 8852 | fi | ||
| 8853 | |||
| 8854 | if test "$ac_cv_member_struct_tm_tm_zone" = yes; then | ||
| 8855 | |||
| 8856 | $as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h | ||
| 8857 | |||
| 8858 | else | ||
| 8859 | ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h> | ||
| 8860 | " | ||
| 8861 | if test "x$ac_cv_have_decl_tzname" = x""yes; then : | ||
| 8862 | ac_have_decl=1 | ||
| 8863 | else | ||
| 8864 | ac_have_decl=0 | ||
| 8865 | fi | ||
| 8866 | |||
| 8867 | cat >>confdefs.h <<_ACEOF | ||
| 8868 | #define HAVE_DECL_TZNAME $ac_have_decl | ||
| 8869 | _ACEOF | ||
| 8870 | |||
| 8871 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 | ||
| 8872 | $as_echo_n "checking for tzname... " >&6; } | ||
| 8873 | if test "${ac_cv_var_tzname+set}" = set; then : | ||
| 8874 | $as_echo_n "(cached) " >&6 | ||
| 8875 | else | ||
| 8876 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 8877 | /* end confdefs.h. */ | ||
| 8878 | #include <time.h> | ||
| 8879 | #if !HAVE_DECL_TZNAME | ||
| 8880 | extern char *tzname[]; | ||
| 8881 | #endif | ||
| 8882 | |||
| 8883 | int | ||
| 8884 | main () | ||
| 8885 | { | ||
| 8886 | return tzname[0][0]; | ||
| 8887 | ; | ||
| 8888 | return 0; | ||
| 8889 | } | ||
| 8890 | _ACEOF | ||
| 8891 | if ac_fn_c_try_link "$LINENO"; then : | ||
| 8892 | ac_cv_var_tzname=yes | ||
| 8893 | else | ||
| 8894 | ac_cv_var_tzname=no | ||
| 8895 | fi | ||
| 8896 | rm -f core conftest.err conftest.$ac_objext \ | ||
| 8897 | conftest$ac_exeext conftest.$ac_ext | ||
| 8898 | fi | ||
| 8899 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 | ||
| 8900 | $as_echo "$ac_cv_var_tzname" >&6; } | ||
| 8901 | if test $ac_cv_var_tzname = yes; then | ||
| 8902 | |||
| 8903 | $as_echo "#define HAVE_TZNAME 1" >>confdefs.h | ||
| 8904 | |||
| 8905 | fi | ||
| 8906 | fi | ||
| 8907 | |||
| 8908 | ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h> | ||
| 8909 | " | ||
| 8910 | if test "x$ac_cv_member_struct_tm_tm_gmtoff" = x""yes; then : | ||
| 8911 | |||
| 8912 | $as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h | ||
| 8913 | |||
| 8914 | fi | ||
| 8915 | |||
| 8916 | ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_flags" "ac_cv_member_struct_ifreq_ifr_flags" "$ac_includes_default | 8806 | ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_flags" "ac_cv_member_struct_ifreq_ifr_flags" "$ac_includes_default |
| 8917 | #if HAVE_SYS_SOCKET_H | 8807 | #if HAVE_SYS_SOCKET_H |
| 8918 | #include <sys/socket.h> | 8808 | #include <sys/socket.h> |
| @@ -11140,8 +11030,8 @@ fi | |||
| 11140 | if test "$pkg_check_gtk" != "yes"; then | 11030 | if test "$pkg_check_gtk" != "yes"; then |
| 11141 | HAVE_GTK=no | 11031 | HAVE_GTK=no |
| 11142 | if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then | 11032 | if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then |
| 11143 | GLIB_REQUIRED=2.6 | 11033 | GLIB_REQUIRED=2.10 |
| 11144 | GTK_REQUIRED=2.6 | 11034 | GTK_REQUIRED=2.10 |
| 11145 | GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" | 11035 | GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" |
| 11146 | 11036 | ||
| 11147 | 11037 | ||
| @@ -18884,6 +18774,108 @@ $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h | |||
| 18884 | REPLACE_VSNPRINTF=0; | 18774 | REPLACE_VSNPRINTF=0; |
| 18885 | REPLACE_VSPRINTF=0; | 18775 | REPLACE_VSPRINTF=0; |
| 18886 | 18776 | ||
| 18777 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 | ||
| 18778 | $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } | ||
| 18779 | if test "${ac_cv_struct_tm+set}" = set; then : | ||
| 18780 | $as_echo_n "(cached) " >&6 | ||
| 18781 | else | ||
| 18782 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 18783 | /* end confdefs.h. */ | ||
| 18784 | #include <sys/types.h> | ||
| 18785 | #include <time.h> | ||
| 18786 | |||
| 18787 | int | ||
| 18788 | main () | ||
| 18789 | { | ||
| 18790 | struct tm tm; | ||
| 18791 | int *p = &tm.tm_sec; | ||
| 18792 | return !p; | ||
| 18793 | ; | ||
| 18794 | return 0; | ||
| 18795 | } | ||
| 18796 | _ACEOF | ||
| 18797 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 18798 | ac_cv_struct_tm=time.h | ||
| 18799 | else | ||
| 18800 | ac_cv_struct_tm=sys/time.h | ||
| 18801 | fi | ||
| 18802 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 18803 | fi | ||
| 18804 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 | ||
| 18805 | $as_echo "$ac_cv_struct_tm" >&6; } | ||
| 18806 | if test $ac_cv_struct_tm = sys/time.h; then | ||
| 18807 | |||
| 18808 | $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h | ||
| 18809 | |||
| 18810 | fi | ||
| 18811 | |||
| 18812 | ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h> | ||
| 18813 | #include <$ac_cv_struct_tm> | ||
| 18814 | |||
| 18815 | " | ||
| 18816 | if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then : | ||
| 18817 | |||
| 18818 | cat >>confdefs.h <<_ACEOF | ||
| 18819 | #define HAVE_STRUCT_TM_TM_ZONE 1 | ||
| 18820 | _ACEOF | ||
| 18821 | |||
| 18822 | |||
| 18823 | fi | ||
| 18824 | |||
| 18825 | if test "$ac_cv_member_struct_tm_tm_zone" = yes; then | ||
| 18826 | |||
| 18827 | $as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h | ||
| 18828 | |||
| 18829 | else | ||
| 18830 | ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h> | ||
| 18831 | " | ||
| 18832 | if test "x$ac_cv_have_decl_tzname" = x""yes; then : | ||
| 18833 | ac_have_decl=1 | ||
| 18834 | else | ||
| 18835 | ac_have_decl=0 | ||
| 18836 | fi | ||
| 18837 | |||
| 18838 | cat >>confdefs.h <<_ACEOF | ||
| 18839 | #define HAVE_DECL_TZNAME $ac_have_decl | ||
| 18840 | _ACEOF | ||
| 18841 | |||
| 18842 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 | ||
| 18843 | $as_echo_n "checking for tzname... " >&6; } | ||
| 18844 | if test "${ac_cv_var_tzname+set}" = set; then : | ||
| 18845 | $as_echo_n "(cached) " >&6 | ||
| 18846 | else | ||
| 18847 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 18848 | /* end confdefs.h. */ | ||
| 18849 | #include <time.h> | ||
| 18850 | #if !HAVE_DECL_TZNAME | ||
| 18851 | extern char *tzname[]; | ||
| 18852 | #endif | ||
| 18853 | |||
| 18854 | int | ||
| 18855 | main () | ||
| 18856 | { | ||
| 18857 | return tzname[0][0]; | ||
| 18858 | ; | ||
| 18859 | return 0; | ||
| 18860 | } | ||
| 18861 | _ACEOF | ||
| 18862 | if ac_fn_c_try_link "$LINENO"; then : | ||
| 18863 | ac_cv_var_tzname=yes | ||
| 18864 | else | ||
| 18865 | ac_cv_var_tzname=no | ||
| 18866 | fi | ||
| 18867 | rm -f core conftest.err conftest.$ac_objext \ | ||
| 18868 | conftest$ac_exeext conftest.$ac_ext | ||
| 18869 | fi | ||
| 18870 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 | ||
| 18871 | $as_echo "$ac_cv_var_tzname" >&6; } | ||
| 18872 | if test $ac_cv_var_tzname = yes; then | ||
| 18873 | |||
| 18874 | $as_echo "#define HAVE_TZNAME 1" >>confdefs.h | ||
| 18875 | |||
| 18876 | fi | ||
| 18877 | fi | ||
| 18878 | |||
| 18887 | 18879 | ||
| 18888 | ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h> | 18880 | ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h> |
| 18889 | " | 18881 | " |
diff --git a/configure.in b/configure.in index 67ab4e22d77..5b32e10853f 100644 --- a/configure.in +++ b/configure.in | |||
| @@ -1315,12 +1315,6 @@ AC_CHECK_HEADERS(net/if_dl.h, , , [AC_INCLUDES_DEFAULT | |||
| 1315 | AC_CHECK_FUNCS(getifaddrs freeifaddrs) | 1315 | AC_CHECK_FUNCS(getifaddrs freeifaddrs) |
| 1316 | 1316 | ||
| 1317 | dnl checks for structure members | 1317 | dnl checks for structure members |
| 1318 | AC_STRUCT_TM | ||
| 1319 | AC_STRUCT_TIMEZONE | ||
| 1320 | AC_CHECK_MEMBER(struct tm.tm_gmtoff, | ||
| 1321 | [AC_DEFINE(HAVE_TM_GMTOFF, 1, | ||
| 1322 | [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],, | ||
| 1323 | [#include <time.h>]) | ||
| 1324 | AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, | 1318 | AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, |
| 1325 | struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr, | 1319 | struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr, |
| 1326 | struct ifreq.ifr_addr, | 1320 | struct ifreq.ifr_addr, |
| @@ -1925,8 +1919,8 @@ fi | |||
| 1925 | if test "$pkg_check_gtk" != "yes"; then | 1919 | if test "$pkg_check_gtk" != "yes"; then |
| 1926 | HAVE_GTK=no | 1920 | HAVE_GTK=no |
| 1927 | if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then | 1921 | if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then |
| 1928 | GLIB_REQUIRED=2.6 | 1922 | GLIB_REQUIRED=2.10 |
| 1929 | GTK_REQUIRED=2.6 | 1923 | GTK_REQUIRED=2.10 |
| 1930 | GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" | 1924 | GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED" |
| 1931 | 1925 | ||
| 1932 | dnl Checks for libraries. | 1926 | dnl Checks for libraries. |
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index a39b703b4dd..726f565e83e 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,89 @@ | |||
| 1 | 2011-10-23 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * buffers.texi (Misc Buffer): Don't mention vc-toggle-read-only. | ||
| 4 | |||
| 5 | 2011-10-22 Chong Yidong <cyd@gnu.org> | ||
| 6 | |||
| 7 | * windows.texi (Displaying Buffers): Fix broken lispref link. | ||
| 8 | |||
| 9 | 2011-10-22 Chong Yidong <cyd@gnu.org> | ||
| 10 | |||
| 11 | * mini.texi (Minibuffer Exit): Rename from Strict Completion. | ||
| 12 | Move confirm-nonexistent-file-or-buffer discussion here. | ||
| 13 | |||
| 14 | * files.texi (File Names, Visiting): Move detailed discussion of | ||
| 15 | minibuffer confirmation to Minibuffer Exit. | ||
| 16 | |||
| 17 | * buffers.texi (Buffers): Tweak mention of mail buffer name. | ||
| 18 | (Select Buffer): Move confirmation discussion to Minibuffer Exit. | ||
| 19 | |||
| 20 | 2011-10-21 Chong Yidong <cyd@gnu.org> | ||
| 21 | |||
| 22 | * files.texi (File Names, Visiting, Interlocking): Copyedits. | ||
| 23 | (Backup Copying): backup-by-copying-when-mismatch is now t. | ||
| 24 | (Customize Save): Fix description of require-final-newline. | ||
| 25 | (Reverting): Note that revert-buffer can't be undone. Mention VC. | ||
| 26 | (Auto Save Control): Clarify. | ||
| 27 | (File Archives): Add 7z. | ||
| 28 | (Remote Files): ange-ftp-make-backup-files defaults to nil. | ||
| 29 | |||
| 30 | * arevert-xtra.texi (Autorevert): Copyedits. | ||
| 31 | |||
| 32 | 2011-10-20 Chong Yidong <cyd@gnu.org> | ||
| 33 | |||
| 34 | * custom.texi (Hooks, Init Examples): | ||
| 35 | * display.texi (Font Lock): | ||
| 36 | * fixit.texi (Spelling): | ||
| 37 | * rmail.texi (Rmail Display): Minor mode function with no arg now | ||
| 38 | enables it. | ||
| 39 | |||
| 40 | * fixit.texi (Spelling): Fix description of inline completion. | ||
| 41 | |||
| 42 | 2011-10-19 Chong Yidong <cyd@gnu.org> | ||
| 43 | |||
| 44 | * search.texi (Repeat Isearch, Error in Isearch): Add kindex | ||
| 45 | entries. | ||
| 46 | (Isearch Yank): Document isearch-yank-pop. | ||
| 47 | (Isearch Scroll): Refer to C-l instead of unbound `recenter'. | ||
| 48 | (Other Repeating Search): Document Occur Edit mode. | ||
| 49 | |||
| 50 | 2011-10-18 Chong Yidong <cyd@gnu.org> | ||
| 51 | |||
| 52 | * display.texi (Fringes): Move overflow-newline-into-fringe here, | ||
| 53 | from Line Truncation node. | ||
| 54 | (Standard Faces): Note that only the background of the cursor face | ||
| 55 | has an effect. | ||
| 56 | (Cursor Display): Fix descriptions of cursor face | ||
| 57 | and bar cursor blinking. | ||
| 58 | (Text Display): Document nobreak-char-display more clearly. | ||
| 59 | (Line Truncation): Add xref to Split Window node. | ||
| 60 | (Display Custom): Don't bother documenting baud-rate or | ||
| 61 | no-redraw-on-reenter. | ||
| 62 | |||
| 63 | * search.texi (Slow Isearch): Node removed. | ||
| 64 | |||
| 65 | 2011-10-18 Glenn Morris <rgm@gnu.org> | ||
| 66 | |||
| 67 | * maintaining.texi (Registering): Remove vc-initial-comment. (Bug#9745) | ||
| 68 | |||
| 69 | 2011-10-18 Chong Yidong <cyd@gnu.org> | ||
| 70 | |||
| 71 | * display.texi (Faces): Simplify discussion. Move documentation | ||
| 72 | of list-faces-display here, from Standard Faces node. Note | ||
| 73 | special role of `default' background. | ||
| 74 | (Standard Faces): Note special role of `default' background. Note | ||
| 75 | that region face may be taken fom GTK. Add xref to Text Display. | ||
| 76 | (Text Scale): Rename from "Temporary Face Changes". Callers | ||
| 77 | changed. Don't bother documenting variable-pitch-mode. | ||
| 78 | (Font Lock): Copyedits. Remove font-lock-maximum-size. | ||
| 79 | (Useless Whitespace): Simplify description of | ||
| 80 | delete-trailing-whitespace. Note active region case. | ||
| 81 | (Text Display): Fix description of escape-glyph face assignment. | ||
| 82 | Remove unibye mode discussion. Update some parts for Unicode. | ||
| 83 | Move glyphless chars documentation to Lisp manual. | ||
| 84 | |||
| 85 | * frames.texi (Tooltips): Document x-gtk-use-system-tooltips. | ||
| 86 | |||
| 1 | 2011-10-15 Chong Yidong <cyd@stupidchicken.com> | 87 | 2011-10-15 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 88 | ||
| 3 | * display.texi (Scrolling): Tweak explanation of scroll direction. | 89 | * display.texi (Scrolling): Tweak explanation of scroll direction. |
diff --git a/doc/emacs/arevert-xtra.texi b/doc/emacs/arevert-xtra.texi index 374886cd956..6a24646b5f7 100644 --- a/doc/emacs/arevert-xtra.texi +++ b/doc/emacs/arevert-xtra.texi | |||
| @@ -8,11 +8,11 @@ | |||
| 8 | @section Auto Reverting Non-File Buffers | 8 | @section Auto Reverting Non-File Buffers |
| 9 | 9 | ||
| 10 | Global Auto Revert Mode normally only reverts file buffers. There are | 10 | Global Auto Revert Mode normally only reverts file buffers. There are |
| 11 | two ways to auto-revert certain non-file buffers: enabling Auto Revert | 11 | two ways to auto-revert certain non-file buffers: by enabling Auto |
| 12 | Mode in those buffers (using @kbd{M-x auto-revert-mode}); and setting | 12 | Revert Mode in those buffers (using @kbd{M-x auto-revert-mode}); and |
| 13 | @code{global-auto-revert-non-file-buffers} non-@code{nil}. The latter | 13 | by setting @code{global-auto-revert-non-file-buffers} to a |
| 14 | enables Auto Reverting for all types of buffers for which it is | 14 | non-@code{nil} value. The latter enables Auto Reverting for all types |
| 15 | implemented (listed in the menu below). | 15 | of buffers for which it is implemented (listed in the menu below). |
| 16 | 16 | ||
| 17 | Like file buffers, non-file buffers should normally not revert while | 17 | Like file buffers, non-file buffers should normally not revert while |
| 18 | you are working on them, or while they contain information that might | 18 | you are working on them, or while they contain information that might |
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi index e4e7dadd548..abb65982873 100644 --- a/doc/emacs/basic.texi +++ b/doc/emacs/basic.texi | |||
| @@ -109,7 +109,7 @@ command provides completion (@pxref{Completion}). If you enter a | |||
| 109 | code-point, it should be a hexadecimal number (which is the convention | 109 | code-point, it should be a hexadecimal number (which is the convention |
| 110 | for Unicode). The command then inserts the corresponding character | 110 | for Unicode). The command then inserts the corresponding character |
| 111 | into the buffer. For example, both of the following insert the | 111 | into the buffer. For example, both of the following insert the |
| 112 | infinity sign (Unicode code-point @code{#x221E}): | 112 | infinity sign (Unicode code-point @code{U+221E}): |
| 113 | 113 | ||
| 114 | @example | 114 | @example |
| 115 | @kbd{C-x 8 @key{RET} infinity @key{RET}} | 115 | @kbd{C-x 8 @key{RET} infinity @key{RET}} |
| @@ -367,7 +367,7 @@ the preceding newline, joining this line to the previous one. | |||
| 367 | If, however, the region is active, @kbd{@key{DEL}} instead deletes | 367 | If, however, the region is active, @kbd{@key{DEL}} instead deletes |
| 368 | the text in the region. @xref{Mark}, for a description of the region. | 368 | the text in the region. @xref{Mark}, for a description of the region. |
| 369 | 369 | ||
| 370 | On most keyboards, @key{DEL} is labelled @key{Backspace}, but we | 370 | On most keyboards, @key{DEL} is labeled @key{Backspace}, but we |
| 371 | refer to it as @key{DEL} in this manual. (Do not confuse @key{DEL} | 371 | refer to it as @key{DEL} in this manual. (Do not confuse @key{DEL} |
| 372 | with the @key{Delete} key; we will discuss @key{Delete} momentarily.) | 372 | with the @key{Delete} key; we will discuss @key{Delete} momentarily.) |
| 373 | On some text-only terminals, Emacs may not recognize the @key{DEL} key | 373 | On some text-only terminals, Emacs may not recognize the @key{DEL} key |
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi index b82f3fac7d4..aed5473ac15 100644 --- a/doc/emacs/buffers.texi +++ b/doc/emacs/buffers.texi | |||
| @@ -7,11 +7,11 @@ | |||
| 7 | 7 | ||
| 8 | @cindex buffers | 8 | @cindex buffers |
| 9 | The text you are editing in Emacs resides in an object called a | 9 | The text you are editing in Emacs resides in an object called a |
| 10 | @dfn{buffer}. Each time you visit a file, a buffer is created to hold the | 10 | @dfn{buffer}. Each time you visit a file, a buffer is used to hold |
| 11 | file's text. Each time you invoke Dired, a buffer is created to hold the | 11 | the file's text. Each time you invoke Dired, a buffer is used to hold |
| 12 | directory listing. If you send a message with @kbd{C-x m}, a buffer named | 12 | the directory listing. If you send a message with @kbd{C-x m}, a |
| 13 | @samp{*mail*} is used to hold the text of the message. When you ask for a | 13 | buffer is used to hold the text of the message. When you ask for a |
| 14 | command's documentation, that appears in a buffer called @samp{*Help*}. | 14 | command's documentation, that appears in a buffer named @samp{*Help*}. |
| 15 | 15 | ||
| 16 | Each buffer has a unique name, which can be of any length. When a | 16 | Each buffer has a unique name, which can be of any length. When a |
| 17 | buffer is displayed in a window, its name is shown in the mode line | 17 | buffer is displayed in a window, its name is shown in the mode line |
| @@ -19,35 +19,34 @@ buffer is displayed in a window, its name is shown in the mode line | |||
| 19 | matters in buffer names. Most buffers are made by visiting files, and | 19 | matters in buffer names. Most buffers are made by visiting files, and |
| 20 | their names are derived from the files' names; however, you can also | 20 | their names are derived from the files' names; however, you can also |
| 21 | create an empty buffer with any name you want. A newly started Emacs | 21 | create an empty buffer with any name you want. A newly started Emacs |
| 22 | has a buffer named @samp{*scratch*}, which is not associated with any | 22 | has several buffers, including one named @samp{*scratch*}, which can |
| 23 | file and can be used for evaluating Lisp expressions in Emacs | 23 | be used for evaluating Lisp expressions and is not associated with any |
| 24 | (@pxref{Lisp Interaction}). | 24 | file (@pxref{Lisp Interaction}). |
| 25 | 25 | ||
| 26 | @cindex selected buffer | 26 | @cindex selected buffer |
| 27 | @cindex current buffer | 27 | @cindex current buffer |
| 28 | At any time, one and only one buffer is @dfn{current}. This is also | 28 | At any time, one and only one buffer is @dfn{selected}; we call it |
| 29 | called the @dfn{selected buffer}. We often say that a command | 29 | the @dfn{current buffer}. We sometimes say that a command operates on |
| 30 | operates on ``the buffer''; this really means that the command | 30 | ``the buffer''; this really means that it operates on the current |
| 31 | operates on the current buffer (most commands do). When there is only | 31 | buffer. When there is only one Emacs window, the buffer displayed in |
| 32 | one Emacs window, the buffer displayed in that window is current. | 32 | that window is current. When there are multiple windows, the buffer |
| 33 | When there are multiple windows present, the buffer displayed in the | 33 | displayed in the @dfn{selected window} is current. @xref{Windows}. |
| 34 | @dfn{selected window} is current. @xref{Windows}. | 34 | |
| 35 | 35 | Aside from its textual contents, each buffer records several pieces | |
| 36 | Each buffer records individually what file it is visiting (if any), | 36 | of information, such as what file it is visiting (if any), whether it |
| 37 | whether it is modified, and what major mode and minor modes are in | 37 | is modified, and what major mode and minor modes are in effect |
| 38 | effect (@pxref{Major Modes}). Any Emacs variable can be made | 38 | (@pxref{Modes}). These are stored in @dfn{buffer-local |
| 39 | @dfn{local to} a particular buffer, meaning its value in that buffer | 39 | variables}---variables that can have a different value in each buffer. |
| 40 | can be different from the value in other buffers. @xref{Locals}. | 40 | @xref{Locals}. |
| 41 | 41 | ||
| 42 | @cindex buffer size, maximum | 42 | @cindex buffer size, maximum |
| 43 | A buffer's size cannot be larger than some maximum, which is defined | 43 | A buffer's size cannot be larger than some maximum, which is defined |
| 44 | by the largest buffer position representable by the @dfn{Emacs | 44 | by the largest buffer position representable by @dfn{Emacs integers}. |
| 45 | integer} data type. This is because Emacs tracks buffer positions | 45 | This is because Emacs tracks buffer positions using that data type. |
| 46 | using that data type. For typical 64-bit machines, the maximum buffer size | 46 | For typical 64-bit machines, this maximum buffer size is @math{2^61 - |
| 47 | enforced by the data types is @math{2^61 - 2} bytes, or about 2 EiB. | 47 | 2} bytes, or about 2 EiB. For typical 32-bit machines, the maximum is |
| 48 | For typical 32-bit machines, the maximum is @math{2^29 - 2} bytes, or | 48 | usually @math{2^29 - 2} bytes, or about 512 MiB. Buffer sizes are |
| 49 | about 512 MiB. Buffer sizes are also limited by the size of Emacs's | 49 | also limited by the amount of memory present in the system. |
| 50 | virtual memory. | ||
| 51 | 50 | ||
| 52 | @menu | 51 | @menu |
| 53 | * Select Buffer:: Creating a new buffer or reselecting an old one. | 52 | * Select Buffer:: Creating a new buffer or reselecting an old one. |
| @@ -76,9 +75,9 @@ Similar, but select @var{buffer} in another window | |||
| 76 | Similar, but select @var{buffer} in a separate frame | 75 | Similar, but select @var{buffer} in a separate frame |
| 77 | (@code{switch-to-buffer-other-frame}). | 76 | (@code{switch-to-buffer-other-frame}). |
| 78 | @item C-x @key{LEFT} | 77 | @item C-x @key{LEFT} |
| 79 | Select the previous buffer in the list of existing buffers. | 78 | Select the previous buffer in the buffer list (@code{previous-buffer}). |
| 80 | @item C-x @key{RIGHT} | 79 | @item C-x @key{RIGHT} |
| 81 | Select the next buffer in the list of existing buffers. | 80 | Select the next buffer in the buffer list (@code{next-buffer}). |
| 82 | @item C-u M-g M-g | 81 | @item C-u M-g M-g |
| 83 | @itemx C-u M-g g | 82 | @itemx C-u M-g g |
| 84 | Read a number @var{n} and move to line @var{n} in the most recently | 83 | Read a number @var{n} and move to line @var{n} in the most recently |
| @@ -87,28 +86,21 @@ selected buffer other than the current buffer. | |||
| 87 | 86 | ||
| 88 | @kindex C-x b | 87 | @kindex C-x b |
| 89 | @findex switch-to-buffer | 88 | @findex switch-to-buffer |
| 90 | To select the buffer named @var{bufname}, type @kbd{C-x b | 89 | The @kbd{C-x b} (@code{switch-to-buffer}) command reads a buffer |
| 91 | @var{bufname} @key{RET}}. This runs the command | 90 | name using the minibuffer. Then it makes that buffer current, and |
| 92 | @code{switch-to-buffer} with argument @var{bufname}. While entering | 91 | displays it in the currently-selected window. An empty input |
| 93 | the buffer name, you can use the usual minibuffer completion and | 92 | specifies the buffer that was current most recently among those not |
| 94 | history commands (@pxref{Minibuffer}). An empty input specifies the | 93 | now displayed in any window. If you specify a buffer that does not |
| 95 | buffer that was current most recently among those not now displayed in | 94 | exist, @kbd{C-x b} creates a new, empty buffer that is not visiting |
| 96 | any window. | 95 | any file, and selects it for editing. |
| 97 | 96 | ||
| 98 | @cindex minibuffer confirmation | 97 | While entering the buffer name, you can use the usual completion and |
| 99 | @cindex confirming in the minibuffer | 98 | history commands (@pxref{Minibuffer}). Note that @kbd{C-x b}, and |
| 100 | If you specify a buffer that does not exist, @kbd{C-x b} creates a | 99 | related commands, use ``permissive completion with confirmation'' for |
| 101 | new, empty buffer that is not visiting any file, and selects it for | 100 | minibuffer completion: if you type @key{RET} immediately after |
| 102 | editing. First, however, Emacs might prompt you for confirmation, in | 101 | completing up to a nonexistent buffer name, Emacs prints |
| 103 | case you entered the wrong buffer name. Emacs asks for confirmation | 102 | @samp{[Confirm]} and you must type a second @key{RET} to submit that |
| 104 | only if the last key you typed, before submitting the minibuffer input | 103 | buffer name. @xref{Completion Exit}, for details. |
| 105 | with @key{RET}, was @key{TAB} (@code{minibuffer-complete}). This | ||
| 106 | catches a common mistake, in which one types @key{RET} before | ||
| 107 | realizing that @key{TAB} did not complete far enough to yield the | ||
| 108 | desired buffer name (@pxref{Completion}). Emacs asks for confirmation | ||
| 109 | by putting the message @samp{[Confirm]} in the minibuffer; type | ||
| 110 | @key{RET} again to confirm and visit the buffer. @xref{Visiting}, for | ||
| 111 | information about modifying this behavior. | ||
| 112 | 104 | ||
| 113 | One reason to create a new buffer is to use it for making temporary | 105 | One reason to create a new buffer is to use it for making temporary |
| 114 | notes. If you try to save it, Emacs asks for the file name to use. | 106 | notes. If you try to save it, Emacs asks for the file name to use. |
| @@ -239,13 +231,10 @@ whose access control says you cannot write it. | |||
| 239 | @findex toggle-read-only | 231 | @findex toggle-read-only |
| 240 | If you wish to make changes in a read-only buffer, use the command | 232 | If you wish to make changes in a read-only buffer, use the command |
| 241 | @kbd{C-x C-q} (@code{toggle-read-only}). It makes a read-only buffer | 233 | @kbd{C-x C-q} (@code{toggle-read-only}). It makes a read-only buffer |
| 242 | writable, and makes a writable buffer read-only. This | 234 | writable, and makes a writable buffer read-only. This works by |
| 243 | works by setting the variable @code{buffer-read-only}, which has a local | 235 | setting the variable @code{buffer-read-only}, which has a local value |
| 244 | value in each buffer and makes the buffer read-only if its value is | 236 | in each buffer and makes the buffer read-only if its value is |
| 245 | non-@code{nil}. If you have files under version control, you may find | 237 | non-@code{nil}. |
| 246 | it convenient to bind @kbd{C-x C-q} to @code{vc-toggle-read-only} | ||
| 247 | instead. This will guard you against an operation that will confuse | ||
| 248 | most modern version-conmtrol systems. @xref{Version Control}. | ||
| 249 | 238 | ||
| 250 | @findex rename-buffer | 239 | @findex rename-buffer |
| 251 | @kbd{M-x rename-buffer} changes the name of the current buffer. You | 240 | @kbd{M-x rename-buffer} changes the name of the current buffer. You |
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index 71a2dba7d08..4a09d6e3d9c 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi | |||
| @@ -893,11 +893,12 @@ Move to a date specified in the Ethiopic calendar | |||
| 893 | (@code{calendar-ethiopic-goto-date}). | 893 | (@code{calendar-ethiopic-goto-date}). |
| 894 | @end table | 894 | @end table |
| 895 | 895 | ||
| 896 | These commands ask you for a date on the other calendar, move point to | 896 | These commands ask you for a date on the other calendar, move point |
| 897 | the Gregorian calendar date equivalent to that date, and display the | 897 | to the Gregorian calendar date equivalent to that date, and display |
| 898 | other calendar's date in the echo area. Emacs uses strict completion | 898 | the other calendar's date in the echo area. Emacs uses strict |
| 899 | (@pxref{Strict Completion}) whenever it asks you to type a month name, so you | 899 | completion (@pxref{Completion Exit}) whenever it asks you to type a |
| 900 | don't have to worry about the spelling of Hebrew, Islamic, or French names. | 900 | month name, so you don't have to worry about the spelling of Hebrew, |
| 901 | Islamic, or French names. | ||
| 901 | 902 | ||
| 902 | @c FIXME move? | 903 | @c FIXME move? |
| 903 | @findex calendar-hebrew-list-yahrzeits | 904 | @findex calendar-hebrew-list-yahrzeits |
| @@ -993,7 +994,7 @@ occurrence of that combination. Use @kbd{g m n c} to move point to the | |||
| 993 | next occurrence of a combination. These commands signal an error if the | 994 | next occurrence of a combination. These commands signal an error if the |
| 994 | haab/tzolkin date combination you have typed is impossible. | 995 | haab/tzolkin date combination you have typed is impossible. |
| 995 | 996 | ||
| 996 | Emacs uses strict completion (@pxref{Strict Completion}) whenever it | 997 | Emacs uses strict completion (@pxref{Completion Exit}) whenever it |
| 997 | asks you to type a Mayan name, so you don't have to worry about | 998 | asks you to type a Mayan name, so you don't have to worry about |
| 998 | spelling. | 999 | spelling. |
| 999 | 1000 | ||
diff --git a/doc/emacs/commands.texi b/doc/emacs/commands.texi index de6e7539c27..817cfc369d1 100644 --- a/doc/emacs/commands.texi +++ b/doc/emacs/commands.texi | |||
| @@ -46,7 +46,7 @@ are certain characters found on non-English keyboards | |||
| 46 | @cindex M- | 46 | @cindex M- |
| 47 | Emacs also recognizes control characters that are entered using | 47 | Emacs also recognizes control characters that are entered using |
| 48 | @dfn{modifier keys}. Two commonly-used modifier keys are | 48 | @dfn{modifier keys}. Two commonly-used modifier keys are |
| 49 | @key{Control} (usually labelled @key{Ctrl}), and @key{Meta} (usually | 49 | @key{Control} (usually labeled @key{Ctrl}), and @key{Meta} (usually |
| 50 | labeled @key{Alt})@footnote{We refer to @key{Alt} as @key{Meta} for | 50 | labeled @key{Alt})@footnote{We refer to @key{Alt} as @key{Meta} for |
| 51 | historical reasons.}. For example, @kbd{Control-a} is entered by | 51 | historical reasons.}. For example, @kbd{Control-a} is entered by |
| 52 | holding down the @key{Ctrl} key while pressing @kbd{a}; we will refer | 52 | holding down the @key{Ctrl} key while pressing @kbd{a}; we will refer |
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 6af77374d07..d87c22ec28e 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi | |||
| @@ -770,7 +770,7 @@ here's how to set up a hook to turn on Auto Fill mode when entering | |||
| 770 | Text mode and other modes based on Text mode: | 770 | Text mode and other modes based on Text mode: |
| 771 | 771 | ||
| 772 | @example | 772 | @example |
| 773 | (add-hook 'text-mode-hook 'turn-on-auto-fill) | 773 | (add-hook 'text-mode-hook 'auto-fill-mode) |
| 774 | @end example | 774 | @end example |
| 775 | 775 | ||
| 776 | Here is another example, showing how to use a hook to customize the | 776 | Here is another example, showing how to use a hook to customize the |
| @@ -2174,8 +2174,7 @@ Turn off Line Number mode, a global minor mode. | |||
| 2174 | Turn on Auto Fill mode automatically in Text mode and related modes. | 2174 | Turn on Auto Fill mode automatically in Text mode and related modes. |
| 2175 | 2175 | ||
| 2176 | @example | 2176 | @example |
| 2177 | (add-hook 'text-mode-hook | 2177 | (add-hook 'text-mode-hook 'auto-fill-mode) |
| 2178 | '(lambda () (auto-fill-mode 1))) | ||
| 2179 | @end example | 2178 | @end example |
| 2180 | 2179 | ||
| 2181 | This shows how to add a hook function to a normal hook variable | 2180 | This shows how to add a hook function to a normal hook variable |
| @@ -2183,19 +2182,9 @@ This shows how to add a hook function to a normal hook variable | |||
| 2183 | @code{lambda}, with a single-quote in front of it to make it a list | 2182 | @code{lambda}, with a single-quote in front of it to make it a list |
| 2184 | constant rather than an expression. | 2183 | constant rather than an expression. |
| 2185 | 2184 | ||
| 2186 | It's beyond the scope of this manual to explain Lisp functions, but for | 2185 | It's beyond the scope of this manual to explain Lisp functions, but |
| 2187 | this example it is enough to know that the effect is to execute | 2186 | for this example it is enough to know that the effect is to execute |
| 2188 | @code{(auto-fill-mode 1)} when Text mode is entered. You can replace | 2187 | the @code{auto-fill-mode} function when Text mode is entered. |
| 2189 | that with any other expression that you like, or with several | ||
| 2190 | expressions in a row. | ||
| 2191 | |||
| 2192 | Emacs comes with a function named @code{turn-on-auto-fill} whose | ||
| 2193 | definition is @code{(lambda () (auto-fill-mode 1))}. Thus, a simpler | ||
| 2194 | way to write the above example is as follows: | ||
| 2195 | |||
| 2196 | @example | ||
| 2197 | (add-hook 'text-mode-hook 'turn-on-auto-fill) | ||
| 2198 | @end example | ||
| 2199 | 2188 | ||
| 2200 | @item | 2189 | @item |
| 2201 | Load the installed Lisp library named @file{foo} (actually a file | 2190 | Load the installed Lisp library named @file{foo} (actually a file |
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index d2f49c62e4a..b72e24bf243 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi | |||
| @@ -21,7 +21,7 @@ the text is displayed. | |||
| 21 | * Follow Mode:: Follow mode lets two windows scroll as one. | 21 | * Follow Mode:: Follow mode lets two windows scroll as one. |
| 22 | * Faces:: How to change the display style using faces. | 22 | * Faces:: How to change the display style using faces. |
| 23 | * Standard Faces:: Emacs' predefined faces. | 23 | * Standard Faces:: Emacs' predefined faces. |
| 24 | * Temporary Face Changes:: Commands to temporarily modify the default text face | 24 | * Text Scale:: Increasing or decreasing text size in a buffer. |
| 25 | * Font Lock:: Minor mode for syntactic highlighting using faces. | 25 | * Font Lock:: Minor mode for syntactic highlighting using faces. |
| 26 | * Highlight Interactively:: Tell Emacs what text to highlight. | 26 | * Highlight Interactively:: Tell Emacs what text to highlight. |
| 27 | * Fringes:: Enabling or disabling window fringes. | 27 | * Fringes:: Enabling or disabling window fringes. |
| @@ -55,7 +55,7 @@ direction that the window moves relative to the text; this terminology | |||
| 55 | was taken up by Emacs before the modern meaning of ``scrolling up'' | 55 | was taken up by Emacs before the modern meaning of ``scrolling up'' |
| 56 | and ``scrolling down'' became widely adopted. Hence the strange | 56 | and ``scrolling down'' became widely adopted. Hence the strange |
| 57 | result that @key{PageDown} scrolls ``up'' in the Emacs sense. In this | 57 | result that @key{PageDown} scrolls ``up'' in the Emacs sense. In this |
| 58 | manual, we refer to scrolling ``foward'' and ``backward'' where | 58 | manual, we refer to scrolling ``forward'' and ``backward'' where |
| 59 | possible, in order to minimize confusion. | 59 | possible, in order to minimize confusion. |
| 60 | 60 | ||
| 61 | The portion of a buffer displayed in a window always contains point. | 61 | The portion of a buffer displayed in a window always contains point. |
| @@ -439,76 +439,69 @@ one large window. | |||
| 439 | @section Faces: Controlling Text Display Style | 439 | @section Faces: Controlling Text Display Style |
| 440 | @cindex faces | 440 | @cindex faces |
| 441 | 441 | ||
| 442 | Emacs can display text in several different styles, which are called | 442 | Emacs can display text in several different styles, called |
| 443 | @dfn{faces}. Each face can specify various @dfn{face attributes}, | 443 | @dfn{faces}. Each face can specify various @dfn{face attributes}, |
| 444 | such as the font, height, weight and slant, the foreground and | 444 | such as the font, height, weight, slant, foreground and background |
| 445 | background color, and underlining or overlining. A face does not have | 445 | color, and underlining or overlining. Most major modes assign faces |
| 446 | to specify all of these attributes; often it inherits most of them | 446 | to the text automatically, via Font Lock mode. @xref{Font Lock}, for |
| 447 | from another face. | 447 | more information about how these faces are assigned. |
| 448 | 448 | ||
| 449 | On a text-only terminal, not all face attributes are meaningful. | 449 | @findex list-faces-display |
| 450 | Some text-only terminals support inverse video, bold, and underline | 450 | To see what faces are currently defined, and what they look like, |
| 451 | attributes; some support colors. Text-only terminals generally do not | 451 | type @kbd{M-x list-faces-display}. With a prefix argument, this |
| 452 | support changing the height, width or font. | 452 | prompts for a regular expression, and displays only faces with names |
| 453 | 453 | matching that regular expression (@pxref{Regexps}). | |
| 454 | Most major modes assign faces to the text automatically through the | 454 | |
| 455 | work of Font Lock mode. @xref{Font Lock}, for more information about | 455 | It's possible for a given face to look different in different |
| 456 | Font Lock mode and syntactic highlighting. You can print the current | 456 | frames. For instance, some text-only terminals do not support all |
| 457 | buffer with the highlighting that appears on your screen using the | 457 | face attributes, particularly font, height, and width, and some |
| 458 | command @code{ps-print-buffer-with-faces}. @xref{PostScript}. | 458 | support a limited range of colors. The @code{list-faces-display} |
| 459 | 459 | command shows the appearance for the selected frame. | |
| 460 | Enriched mode, the mode for editing formatted text, provides | ||
| 461 | commands and menus for specifying faces for text in the buffer. | ||
| 462 | @xref{Format Faces}. | ||
| 463 | 460 | ||
| 464 | @cindex face colors, setting | 461 | @cindex face colors, setting |
| 465 | To alter the appearance of a face, use the customization buffer. | 462 | @cindex background color |
| 466 | @xref{Face Customization}. You can also use X resources to specify | 463 | @cindex default face |
| 467 | attributes of any particular face (@pxref{Resources}). When | 464 | You can customize a face to alter its appearance, and save those |
| 468 | displaying a character, any attribute that isn't specified by its face | 465 | changes for future Emacs sessions. @xref{Face Customization}. A face |
| 469 | is taken from the @code{default} face, whose attributes reflect the | 466 | does not have to specify every single attribute; often it inherits |
| 470 | default settings of the frame itself. | 467 | most attributes from another face. Any ultimately unspecified |
| 468 | attribute is taken from a face named @code{default}, whose attributes | ||
| 469 | are all specified. The @code{default} face is the default for | ||
| 470 | displaying text, and its background color is also used as the frame's | ||
| 471 | background color. | ||
| 472 | |||
| 473 | You can also use X resources to specify attributes of any particular | ||
| 474 | face. @xref{Resources}. | ||
| 471 | 475 | ||
| 472 | @findex set-face-foreground | 476 | @findex set-face-foreground |
| 473 | @findex set-face-background | 477 | @findex set-face-background |
| 474 | You can also change the foreground and background colors of a | 478 | You can also change the foreground and background colors of a face |
| 475 | specific face with @kbd{M-x set-face-foreground} and @kbd{M-x | 479 | with @kbd{M-x set-face-foreground} and @kbd{M-x set-face-background}. |
| 476 | set-face-background}. These commands prompt in the minibuffer for a | 480 | These commands prompt in the minibuffer for a face name and a color |
| 477 | face name and a color name, with completion, and then set that face to | 481 | name, with completion, and then set that face to use the specified |
| 478 | use the specified color. @xref{Face Customization}, for information | 482 | color (@pxref{Face Customization}, for information about color names). |
| 479 | about color names. These commands affect the face colors on all | 483 | They affect the face colors on all frames, but their effects do not |
| 480 | frames, both existing and those to be created in the future. These | 484 | persist for future Emacs sessions, unlike using the customization |
| 481 | changes do not, however, persist for future Emacs sessions; to make | 485 | buffer or X resources. You can also use frame parameters to set |
| 482 | lasting changes, use the customization buffer (@pxref{Face | 486 | foreground and background colors for a specific frame; see @ref{Frame |
| 483 | Customization}). | 487 | Parameters}. |
| 484 | 488 | ||
| 485 | You can also set foreground and background colors for the current | 489 | Emacs can display variable-width fonts, but some Emacs commands, |
| 486 | frame only; see @ref{Frame Parameters}. | 490 | particularly indentation commands, do not account for variable |
| 487 | 491 | character display widths. Therefore, we recommend not using | |
| 488 | Emacs can display variable-width fonts, but some of the Emacs | 492 | variable-width fonts for most faces, particularly those assigned by |
| 489 | commands that calculate width and indentation do not know how to | 493 | Font Lock mode. |
| 490 | calculate variable widths. This can sometimes lead to incorrect | ||
| 491 | results when you use variable-width fonts. In particular, indentation | ||
| 492 | commands can give inconsistent results, so we recommend you avoid | ||
| 493 | variable-width fonts, especially for editing program source code. | ||
| 494 | 494 | ||
| 495 | @node Standard Faces | 495 | @node Standard Faces |
| 496 | @section Standard Faces | 496 | @section Standard Faces |
| 497 | 497 | ||
| 498 | @findex list-faces-display | ||
| 499 | To see what faces are currently defined, and what they look like, | ||
| 500 | type @kbd{M-x list-faces-display}. It's possible for a given face to | ||
| 501 | look different in different frames; this command shows the appearance | ||
| 502 | in the frame in which you type it. With a prefix argument, this | ||
| 503 | prompts for a regular expression, and displays only faces with names | ||
| 504 | matching that regular expression. | ||
| 505 | |||
| 506 | Here are the standard faces for specifying text appearance. You can | 498 | Here are the standard faces for specifying text appearance. You can |
| 507 | apply them to specific text when you want the effects they produce. | 499 | apply them to specific text when you want the effects they produce. |
| 508 | 500 | ||
| 509 | @table @code | 501 | @table @code |
| 510 | @item default | 502 | @item default |
| 511 | This face is used for ordinary text that doesn't specify any face. | 503 | This face is used for ordinary text that doesn't specify any face. |
| 504 | Its background color is used as the frame's background color. | ||
| 512 | @item bold | 505 | @item bold |
| 513 | This face uses a bold variant of the default font. | 506 | This face uses a bold variant of the default font. |
| 514 | @item italic | 507 | @item italic |
| @@ -535,37 +528,38 @@ their own faces for this purpose.) | |||
| 535 | 528 | ||
| 536 | @table @code | 529 | @table @code |
| 537 | @item highlight | 530 | @item highlight |
| 538 | This face is used for highlighting portions of text, in various modes. | 531 | This face is used for text highlighting in various contexts, such as |
| 539 | For example, mouse-sensitive text is highlighted using this face. | 532 | when the mouse cursor is moved over a hyperlink. |
| 540 | @item isearch | 533 | @item isearch |
| 541 | This face is used for highlighting the current Isearch match | 534 | This face is used to highlight the current Isearch match |
| 542 | (@pxref{Incremental Search}). | 535 | (@pxref{Incremental Search}). |
| 543 | @item query-replace | 536 | @item query-replace |
| 544 | This face is used for highlighting the current Query Replace match | 537 | This face is used to highlight the current Query Replace match |
| 545 | (@pxref{Replace}). | 538 | (@pxref{Replace}). |
| 546 | @item lazy-highlight | 539 | @item lazy-highlight |
| 547 | This face is used for lazy highlighting of Isearch and Query Replace | 540 | This face is used to highlight ``lazy matches'' for Isearch and Query |
| 548 | matches other than the current one. | 541 | Replace (matches other than the current one). |
| 549 | @item region | 542 | @item region |
| 550 | This face is used for displaying a selected region (@pxref{Mark}). | 543 | This face is used for displaying an active region (@pxref{Mark}). |
| 544 | When Emacs is built with GTK support, its colors are taken from the | ||
| 545 | current GTK theme. | ||
| 551 | @item secondary-selection | 546 | @item secondary-selection |
| 552 | This face is used for displaying a secondary X selection (@pxref{Secondary | 547 | This face is used for displaying a secondary X selection (@pxref{Secondary |
| 553 | Selection}). | 548 | Selection}). |
| 554 | @item trailing-whitespace | 549 | @item trailing-whitespace |
| 555 | The face for highlighting excess spaces and tabs at the end of a line | 550 | The face for highlighting excess spaces and tabs at the end of a line |
| 556 | when @code{show-trailing-whitespace} is non-@code{nil}; see | 551 | when @code{show-trailing-whitespace} is non-@code{nil} (@pxref{Useless |
| 557 | @ref{Useless Whitespace}. | 552 | Whitespace}). |
| 558 | @item nobreak-space | ||
| 559 | The face for displaying the character ``nobreak space.'' | ||
| 560 | @item escape-glyph | 553 | @item escape-glyph |
| 561 | The face for highlighting the @samp{\} or @samp{^} that indicates | 554 | The face for displaying control characters and escape sequences |
| 562 | a control character. It's also used when @samp{\} indicates a | 555 | (@pxref{Text Display}). |
| 563 | nobreak space or nobreak (soft) hyphen. | 556 | @item nobreak-space |
| 557 | The face for displaying ``no-break'' space characters (@pxref{Text | ||
| 558 | Display}). | ||
| 564 | @end table | 559 | @end table |
| 565 | 560 | ||
| 566 | These faces control the appearance of parts of the Emacs frame. | 561 | The following faces control the appearance of parts of the Emacs |
| 567 | They exist as faces to provide a consistent way to customize the | 562 | frame: |
| 568 | appearance of these parts of the frame. | ||
| 569 | 563 | ||
| 570 | @table @code | 564 | @table @code |
| 571 | @item mode-line | 565 | @item mode-line |
| @@ -588,11 +582,8 @@ at the top of a window just as the mode line appears at the bottom. | |||
| 588 | Most windows do not have a header line---only some special modes, such | 582 | Most windows do not have a header line---only some special modes, such |
| 589 | Info mode, create one. | 583 | Info mode, create one. |
| 590 | @item vertical-border | 584 | @item vertical-border |
| 591 | This face is used for the vertical divider between windows. | 585 | This face is used for the vertical divider between windows on |
| 592 | By default this face inherits from the @code{mode-line-inactive} face | 586 | text-only terminals. |
| 593 | on character terminals. On graphical displays the foreground color of | ||
| 594 | this face is used for the vertical line between windows without | ||
| 595 | scrollbars. | ||
| 596 | @item minibuffer-prompt | 587 | @item minibuffer-prompt |
| 597 | @cindex @code{minibuffer-prompt} face | 588 | @cindex @code{minibuffer-prompt} face |
| 598 | @vindex minibuffer-prompt-properties | 589 | @vindex minibuffer-prompt-properties |
| @@ -607,35 +598,38 @@ The face for the fringes to the left and right of windows on graphic | |||
| 607 | displays. (The fringes are the narrow portions of the Emacs frame | 598 | displays. (The fringes are the narrow portions of the Emacs frame |
| 608 | between the text area and the window's right and left borders.) | 599 | between the text area and the window's right and left borders.) |
| 609 | @xref{Fringes}. | 600 | @xref{Fringes}. |
| 610 | @item scroll-bar | ||
| 611 | This face determines the visual appearance of the scroll bar. | ||
| 612 | @xref{Scroll Bars}. | ||
| 613 | @item border | ||
| 614 | This face determines the color of the frame border. | ||
| 615 | @item cursor | 601 | @item cursor |
| 616 | This face determines the color of the cursor. | 602 | The @code{:background} attribute of this face specifies the color of |
| 603 | the text cursor. @xref{Cursor Display}. | ||
| 604 | @item tooltip | ||
| 605 | This face is used for tooltip text. By default, if Emacs is built | ||
| 606 | with GTK support, tooltips are drawn via GTK and this face has no | ||
| 607 | effect. @xref{Tooltips}. | ||
| 617 | @item mouse | 608 | @item mouse |
| 618 | This face determines the color of the mouse pointer. | 609 | This face determines the color of the mouse pointer. |
| 610 | @end table | ||
| 611 | |||
| 612 | The following faces likewise control the appearance of parts of the | ||
| 613 | Emacs frame, but only on text-only terminals, or when Emacs is built | ||
| 614 | on X with no toolkit support. (For all other cases, the appearance of | ||
| 615 | the respective frame elements is determined by system-wide settings.) | ||
| 616 | |||
| 617 | @table @code | ||
| 618 | @item scroll-bar | ||
| 619 | This face determines the visual appearance of the scroll bar. | ||
| 620 | @xref{Scroll Bars}. | ||
| 619 | @item tool-bar | 621 | @item tool-bar |
| 620 | This face determines the color of tool bar icons. @xref{Tool Bars}. | 622 | This face determines the color of tool bar icons. @xref{Tool Bars}. |
| 621 | @item tooltip | ||
| 622 | This face is used for tooltips. @xref{Tooltips}. | ||
| 623 | @item menu | 623 | @item menu |
| 624 | @cindex menu bar appearance | 624 | @cindex menu bar appearance |
| 625 | @cindex @code{menu} face, no effect if customized | 625 | @cindex @code{menu} face, no effect if customized |
| 626 | @cindex customization of @code{menu} face | 626 | @cindex customization of @code{menu} face |
| 627 | This face determines the colors and font of Emacs's menus. @xref{Menu | 627 | This face determines the colors and font of Emacs's menus. @xref{Menu |
| 628 | Bars}. This has no effect in Emacs built with GTK and in the | 628 | Bars}. |
| 629 | MS-Windows/Mac ports; you need to use system-wide styles and options | ||
| 630 | to change the appearance of GTK, Windows, or Mac menus. Setting the | ||
| 631 | font of LessTif/Motif menus is currently not supported; attempts to | ||
| 632 | set the font are ignored in this case. | ||
| 633 | @end table | 629 | @end table |
| 634 | 630 | ||
| 635 | @node Temporary Face Changes | 631 | @node Text Scale |
| 636 | @section Temporary Face Changes | 632 | @section Text Scale |
| 637 | |||
| 638 | The following commands change the default face within a buffer. | ||
| 639 | 633 | ||
| 640 | @cindex adjust buffer face height | 634 | @cindex adjust buffer face height |
| 641 | @findex text-scale-adjust | 635 | @findex text-scale-adjust |
| @@ -652,9 +646,11 @@ determine which action to take. | |||
| 652 | 646 | ||
| 653 | The final key of these commands may be repeated without the leading | 647 | The final key of these commands may be repeated without the leading |
| 654 | @kbd{C-x}. For instance, @kbd{C-x C-= C-= C-=} increases the face | 648 | @kbd{C-x}. For instance, @kbd{C-x C-= C-= C-=} increases the face |
| 655 | height by three steps. Each step scales the height of the default | 649 | height by three steps. Each step scales the text height by a factor |
| 656 | face by the value of the variable @code{text-scale-mode-step}. As a | 650 | of 1.2; to change this factor, customize the variable |
| 657 | special case, an argument of 0 removes any scaling currently active. | 651 | @code{text-scale-mode-step}. As an exception, a numeric argument of 0 |
| 652 | to the @code{text-scale-adjust} command restores the default height, | ||
| 653 | similar to typing @kbd{C-x C-0}. | ||
| 658 | 654 | ||
| 659 | @cindex increase buffer face height | 655 | @cindex increase buffer face height |
| 660 | @findex text-scale-increase | 656 | @findex text-scale-increase |
| @@ -668,21 +664,14 @@ You may find it convenient to bind to these commands, rather than | |||
| 668 | 664 | ||
| 669 | @cindex set buffer face height | 665 | @cindex set buffer face height |
| 670 | @findex text-scale-set | 666 | @findex text-scale-set |
| 671 | The command @code{text-scale-set} sets the height of the default face | 667 | The command @code{text-scale-set} scales the height of the default |
| 672 | in the current buffer to an absolute level specified by its prefix | 668 | face in the current buffer to an absolute level specified by its |
| 673 | argument. | 669 | prefix argument. |
| 674 | 670 | ||
| 675 | @findex text-scale-mode | 671 | @findex text-scale-mode |
| 676 | The above commands automatically enable or disable the minor mode | 672 | The above commands automatically enable the minor mode |
| 677 | @code{text-scale-mode}, depending on whether the current font scaling | 673 | @code{text-scale-mode} if the current font scaling is other than 1, |
| 678 | is other than 1 or not. | 674 | and disable it otherwise. |
| 679 | |||
| 680 | @cindex variable pitch mode | ||
| 681 | @findex variable-pitch-mode | ||
| 682 | To temporarily change the face in the current buffer to a | ||
| 683 | variable-pitch (``proportional'') font, use the command @kbd{M-x | ||
| 684 | variable-pitch-mode} to enable or disable the Variable Pitch minor | ||
| 685 | mode. | ||
| 686 | 675 | ||
| 687 | @node Font Lock | 676 | @node Font Lock |
| 688 | @section Font Lock mode | 677 | @section Font Lock mode |
| @@ -691,44 +680,37 @@ mode. | |||
| 691 | @cindex syntax highlighting and coloring | 680 | @cindex syntax highlighting and coloring |
| 692 | 681 | ||
| 693 | Font Lock mode is a minor mode, always local to a particular buffer, | 682 | Font Lock mode is a minor mode, always local to a particular buffer, |
| 694 | which highlights (or ``fontifies'') the buffer contents according to | 683 | which assigns faces to (or @dfn{fontifies}) the text in the buffer. |
| 695 | the syntax of the text you are editing. It can recognize comments and | 684 | Each buffer's major mode tells Font Lock mode which text to fontify; |
| 696 | strings in most programming languages; in several languages, it can | 685 | for instance, programming language modes fontify syntactically |
| 697 | also recognize and properly highlight various other important | 686 | relevant constructs like comments, strings, and function names. |
| 698 | constructs, such as names of functions being defined or reserved | ||
| 699 | keywords. Some special modes, such as Occur mode and Info mode, have | ||
| 700 | completely specialized ways of assigning fonts for Font Lock mode. | ||
| 701 | 687 | ||
| 702 | @findex font-lock-mode | 688 | @findex font-lock-mode |
| 703 | Font Lock mode is turned on by default in all modes which support it. | 689 | Font Lock mode is enabled by default. To toggle it in the current |
| 704 | You can toggle font-lock for each buffer with the command @kbd{M-x | 690 | buffer, type @kbd{M-x font-lock-mode}. A positive numeric argument |
| 705 | font-lock-mode}. Using a positive argument unconditionally turns Font | 691 | unconditionally enables Font Lock mode, and a negative or zero |
| 706 | Lock mode on, and a negative or zero argument turns it off. | 692 | argument disables it. |
| 707 | 693 | ||
| 708 | @findex global-font-lock-mode | 694 | @findex global-font-lock-mode |
| 709 | @vindex global-font-lock-mode | 695 | @vindex global-font-lock-mode |
| 710 | If you do not wish Font Lock mode to be turned on by default, | 696 | To toggle Font Lock mode in all buffers, type @kbd{M-x |
| 711 | customize the variable @code{global-font-lock-mode} using the Customize | 697 | global-font-lock-mode}. To impose this setting for future Emacs |
| 712 | interface (@pxref{Easy Customization}), or use the function | 698 | sessions, customize the variable @code{global-font-lock-mode} |
| 713 | @code{global-font-lock-mode} in your @file{.emacs} file, like this: | 699 | (@pxref{Easy Customization}), or add the following line to your init |
| 700 | file: | ||
| 714 | 701 | ||
| 715 | @example | 702 | @example |
| 716 | (global-font-lock-mode 0) | 703 | (global-font-lock-mode 0) |
| 717 | @end example | 704 | @end example |
| 718 | 705 | ||
| 719 | @noindent | 706 | @noindent |
| 720 | This variable, like all the variables that control Font Lock mode, | 707 | If you have disabled Global Font Lock mode, you can still enable Font |
| 721 | take effect whenever fontification is done; that is, potentially at | ||
| 722 | any time. | ||
| 723 | |||
| 724 | @findex turn-on-font-lock | ||
| 725 | If you have disabled Global Font Lock mode, you can still enable Font | ||
| 726 | Lock for specific major modes by adding the function | 708 | Lock for specific major modes by adding the function |
| 727 | @code{turn-on-font-lock} to the mode hooks (@pxref{Hooks}). For | 709 | @code{font-lock-mode} to the mode hooks (@pxref{Hooks}). For example, |
| 728 | example, to enable Font Lock mode for editing C files, you can do this: | 710 | to enable Font Lock mode for editing C files, you can do this: |
| 729 | 711 | ||
| 730 | @example | 712 | @example |
| 731 | (add-hook 'c-mode-hook 'turn-on-font-lock) | 713 | (add-hook 'c-mode-hook 'font-lock-mode) |
| 732 | @end example | 714 | @end example |
| 733 | 715 | ||
| 734 | Font Lock mode uses several specifically named faces to do its job, | 716 | Font Lock mode uses several specifically named faces to do its job, |
| @@ -739,27 +721,19 @@ use that customization buffer to customize the appearance of these | |||
| 739 | faces. @xref{Face Customization}. | 721 | faces. @xref{Face Customization}. |
| 740 | 722 | ||
| 741 | @vindex font-lock-maximum-decoration | 723 | @vindex font-lock-maximum-decoration |
| 742 | The variable @code{font-lock-maximum-decoration} specifies the | 724 | You can customize the variable @code{font-lock-maximum-decoration} |
| 743 | preferred level of fontification, for modes that provide multiple | 725 | to alter the amount of fontification applied by Font Lock mode, for |
| 744 | levels. Level 1 is the least amount of fontification; some modes | 726 | major modes that support this feature. The value should be a number |
| 745 | support levels as high as 3. The normal default is ``as high as | 727 | (with 1 representing a minimal amount of fontification; some modes |
| 746 | possible.'' You can specify an integer, which applies to all modes, or | 728 | support levels as high as 3); or @code{t}, meaning ``as high as |
| 747 | you can specify different numbers for particular major modes; for | 729 | possible'' (the default). You can also specify different numbers for |
| 748 | example, to use level 1 for C/C++ modes, and the default level | 730 | particular major modes; for example, to use level 1 for C/C++ modes, |
| 749 | otherwise, use this: | 731 | and the default level otherwise, use the value |
| 750 | 732 | ||
| 751 | @example | 733 | @example |
| 752 | (setq font-lock-maximum-decoration | 734 | '((c-mode . 1) (c++-mode . 1))) |
| 753 | '((c-mode . 1) (c++-mode . 1))) | ||
| 754 | @end example | 735 | @end example |
| 755 | 736 | ||
| 756 | @vindex font-lock-maximum-size | ||
| 757 | Fontification can be too slow for large buffers, so you can suppress | ||
| 758 | it for buffers above a certain size. The variable | ||
| 759 | @code{font-lock-maximum-size} specifies a buffer size, beyond which | ||
| 760 | buffer fontification is suppressed. | ||
| 761 | |||
| 762 | @c @w is used below to prevent a bad page-break. | ||
| 763 | @vindex font-lock-beginning-of-syntax-function | 737 | @vindex font-lock-beginning-of-syntax-function |
| 764 | @cindex incorrect fontification | 738 | @cindex incorrect fontification |
| 765 | @cindex parenthesis in column zero and fontification | 739 | @cindex parenthesis in column zero and fontification |
| @@ -768,11 +742,10 @@ buffer fontification is suppressed. | |||
| 768 | relies on analysis of the syntactic structure of the buffer text. For | 742 | relies on analysis of the syntactic structure of the buffer text. For |
| 769 | the sake of speed, some modes, including Lisp mode, rely on a special | 743 | the sake of speed, some modes, including Lisp mode, rely on a special |
| 770 | convention: an open-parenthesis or open-brace in the leftmost column | 744 | convention: an open-parenthesis or open-brace in the leftmost column |
| 771 | always defines the @w{beginning} of a defun, and is thus always | 745 | always defines the beginning of a defun, and is thus always outside |
| 772 | outside any string or comment. (@xref{Left Margin Paren}.) If you | 746 | any string or comment. Therefore, you should avoid placing a an |
| 773 | don't follow this convention, Font Lock mode can misfontify the text | 747 | open-parenthesis or open-brace in the leftmost column, if it is inside |
| 774 | that follows an open-parenthesis or open-brace in the leftmost column | 748 | a string or comment. @xref{Left Margin Paren}, for details. |
| 775 | that is inside a string or comment. | ||
| 776 | 749 | ||
| 777 | @cindex slow display during scrolling | 750 | @cindex slow display during scrolling |
| 778 | The variable @code{font-lock-beginning-of-syntax-function}, which is | 751 | The variable @code{font-lock-beginning-of-syntax-function}, which is |
| @@ -788,11 +761,11 @@ considerably slow down redisplay while scrolling, particularly if you | |||
| 788 | are close to the end of a large buffer. | 761 | are close to the end of a large buffer. |
| 789 | 762 | ||
| 790 | @findex font-lock-add-keywords | 763 | @findex font-lock-add-keywords |
| 791 | Font Lock highlighting patterns already exist for many modes, but you | 764 | Font Lock highlighting patterns already exist for most modes, but |
| 792 | may want to fontify additional patterns. You can use the function | 765 | you may want to fontify additional patterns. You can use the function |
| 793 | @code{font-lock-add-keywords}, to add your own highlighting patterns for | 766 | @code{font-lock-add-keywords}, to add your own highlighting patterns |
| 794 | a particular mode. For example, to highlight @samp{FIXME:} words in C | 767 | for a particular mode. For example, to highlight @samp{FIXME:} words |
| 795 | comments, use this: | 768 | in C comments, use this: |
| 796 | 769 | ||
| 797 | @example | 770 | @example |
| 798 | (add-hook 'c-mode-hook | 771 | (add-hook 'c-mode-hook |
| @@ -803,19 +776,20 @@ comments, use this: | |||
| 803 | @end example | 776 | @end example |
| 804 | 777 | ||
| 805 | @findex font-lock-remove-keywords | 778 | @findex font-lock-remove-keywords |
| 806 | To remove keywords from the font-lock highlighting patterns, use the | 779 | @noindent |
| 780 | To remove keywords from the font-lock highlighting patterns, use the | ||
| 807 | function @code{font-lock-remove-keywords}. @xref{Search-based | 781 | function @code{font-lock-remove-keywords}. @xref{Search-based |
| 808 | Fontification,,, elisp, The Emacs Lisp Reference Manual}. | 782 | Fontification,,, elisp, The Emacs Lisp Reference Manual}. |
| 809 | 783 | ||
| 810 | @cindex just-in-time (JIT) font-lock | 784 | @cindex just-in-time (JIT) font-lock |
| 811 | @cindex background syntax highlighting | 785 | @cindex background syntax highlighting |
| 812 | Fontifying large buffers can take a long time. To avoid large | 786 | Fontifying large buffers can take a long time. To avoid large |
| 813 | delays when a file is visited, Emacs fontifies only the visible | 787 | delays when a file is visited, Emacs initially fontifies only the |
| 814 | portion of a buffer. As you scroll through the buffer, each portion | 788 | visible portion of a buffer. As you scroll through the buffer, each |
| 815 | that becomes visible is fontified as soon as it is displayed; this | 789 | portion that becomes visible is fontified as soon as it is displayed; |
| 816 | type of Font Lock is called @dfn{Just-In-Time} (or @dfn{JIT}) Lock. | 790 | this type of Font Lock is called @dfn{Just-In-Time} (or @dfn{JIT}) |
| 817 | You can control how JIT Lock behaves, including telling it to perform | 791 | Lock. You can control how JIT Lock behaves, including telling it to |
| 818 | fontification while idle, by customizing variables in the | 792 | perform fontification while idle, by customizing variables in the |
| 819 | customization group @samp{jit-lock}. @xref{Specific Customization}. | 793 | customization group @samp{jit-lock}. @xref{Specific Customization}. |
| 820 | 794 | ||
| 821 | @node Highlight Interactively | 795 | @node Highlight Interactively |
| @@ -826,7 +800,7 @@ customization group @samp{jit-lock}. @xref{Specific Customization}. | |||
| 826 | 800 | ||
| 827 | @findex highlight-changes-mode | 801 | @findex highlight-changes-mode |
| 828 | Highlight Changes mode is a minor mode that @dfn{highlights} the parts | 802 | Highlight Changes mode is a minor mode that @dfn{highlights} the parts |
| 829 | of the buffer were changed most recently, by giving that text a | 803 | of the buffer that were changed most recently, by giving that text a |
| 830 | different face. To enable or disable Highlight Changes mode, use | 804 | different face. To enable or disable Highlight Changes mode, use |
| 831 | @kbd{M-x highlight-changes-mode}. | 805 | @kbd{M-x highlight-changes-mode}. |
| 832 | 806 | ||
| @@ -926,42 +900,50 @@ mode's symbol is a member of the list @code{hi-lock-exclude-modes}. | |||
| 926 | @section Window Fringes | 900 | @section Window Fringes |
| 927 | @cindex fringes | 901 | @cindex fringes |
| 928 | 902 | ||
| 929 | On a graphical display, each Emacs window normally has narrow | 903 | @findex set-fringe-style |
| 904 | @findex fringe-mode | ||
| 905 | On graphical displays, each Emacs window normally has narrow | ||
| 930 | @dfn{fringes} on the left and right edges. The fringes are used to | 906 | @dfn{fringes} on the left and right edges. The fringes are used to |
| 931 | display symbols that provide information about the text in the window. | 907 | display symbols that provide information about the text in the window. |
| 908 | You can type @kbd{M-x fringe-mode} to disable the fringes, or modify | ||
| 909 | their width. This command affects fringes in all frames; to modify | ||
| 910 | fringes on the selected frame only, use @kbd{M-x set-fringe-style}. | ||
| 932 | 911 | ||
| 933 | The most common use of the fringes is to indicate a continuation | 912 | The most common use of the fringes is to indicate a continuation |
| 934 | line, when one line of text is split into multiple lines on the | 913 | line (@pxref{Continuation Lines}). When one line of text is split |
| 935 | screen. The left fringe shows a curving arrow for each screen line | 914 | into multiple screen lines, the left fringe shows a curving arrow for |
| 936 | except the first, indicating that ``this is not the real beginning.'' | 915 | each screen line except the first, indicating that ``this is not the |
| 937 | The right fringe shows a curving arrow for each screen line except the | 916 | real beginning.'' The right fringe shows a curving arrow for each |
| 938 | last, indicating that ``this is not the real end.'' If the line's | 917 | screen line except the last, indicating that ``this is not the real |
| 939 | direction is right-to-left (@pxref{Bidirectional Editing}), the | 918 | end.'' If the line's direction is right-to-left (@pxref{Bidirectional |
| 940 | meaning of the curving arrows in the left and right fringes are | 919 | Editing}), the meanings of the curving arrows in the fringes are |
| 941 | swapped. | 920 | swapped. |
| 942 | 921 | ||
| 943 | The fringes indicate line truncation with short horizontal arrows | 922 | The fringes indicate line truncation with short horizontal arrows |
| 944 | meaning ``there's more text on this line which is scrolled | 923 | meaning ``there's more text on this line which is scrolled |
| 945 | horizontally out of view;'' clicking the mouse on one of the arrows | 924 | horizontally out of view.'' Clicking the mouse on one of the arrows |
| 946 | scrolls the display horizontally in the direction of the arrow. The | 925 | scrolls the display horizontally in the direction of the arrow. |
| 947 | fringes can also indicate other things, such as empty lines, or where a | ||
| 948 | program you are debugging is executing (@pxref{Debuggers}). | ||
| 949 | 926 | ||
| 950 | @findex set-fringe-style | 927 | The fringes can also indicate other things, such as buffer |
| 951 | @findex fringe-mode | 928 | boundaries (@pxref{Displaying Boundaries}), and where a program you |
| 952 | You can enable and disable the fringes for all frames using | 929 | are debugging is executing (@pxref{Debuggers}). |
| 953 | @kbd{M-x fringe-mode}. To enable and disable the fringes | 930 | |
| 954 | for the selected frame, use @kbd{M-x set-fringe-style}. | 931 | @vindex overflow-newline-into-fringe |
| 932 | The fringe is also used for drawing the cursor, if the current line | ||
| 933 | is exactly as wide as the window and point is at the end of the line. | ||
| 934 | To disable this, change the variable | ||
| 935 | @code{overflow-newline-into-fringe} to @code{nil}; this causes Emacs | ||
| 936 | to continue or truncate lines that are exactly as wide as the window. | ||
| 955 | 937 | ||
| 956 | @node Displaying Boundaries | 938 | @node Displaying Boundaries |
| 957 | @section Displaying Boundaries | 939 | @section Displaying Boundaries |
| 958 | 940 | ||
| 959 | @vindex indicate-buffer-boundaries | 941 | @vindex indicate-buffer-boundaries |
| 960 | On a graphical display, Emacs can indicate the buffer boundaries in | 942 | On graphical displays, Emacs can indicate the buffer boundaries in |
| 961 | the fringes. It indicates the first line and the last line with | 943 | the fringes. If you enable this feature, the first line and the last |
| 962 | angle images in the fringes. This can be combined with up and down | 944 | line are marked with angle images in the fringes. This can be |
| 963 | arrow images which say whether it is possible to scroll the window up | 945 | combined with up and down arrow images which say whether it is |
| 964 | and down. | 946 | possible to scroll the window. |
| 965 | 947 | ||
| 966 | The buffer-local variable @code{indicate-buffer-boundaries} controls | 948 | The buffer-local variable @code{indicate-buffer-boundaries} controls |
| 967 | how the buffer boundaries and window scrolling is indicated in the | 949 | how the buffer boundaries and window scrolling is indicated in the |
| @@ -1006,25 +988,22 @@ the location of point is enough to show you that the spaces are | |||
| 1006 | present. | 988 | present. |
| 1007 | 989 | ||
| 1008 | @findex delete-trailing-whitespace | 990 | @findex delete-trailing-whitespace |
| 1009 | Type @kbd{M-x delete-trailing-whitespace @key{RET}} to delete all | 991 | Type @kbd{M-x delete-trailing-whitespace} to delete all trailing |
| 1010 | trailing whitespace within the buffer's accessible portion | 992 | whitespace within the buffer. If the region is active, it deletes all |
| 1011 | (@pxref{Narrowing}). This command does not remove newline characters. | 993 | trailing whitespace in the region instead. |
| 1012 | 994 | ||
| 1013 | @vindex indicate-empty-lines | 995 | @vindex indicate-empty-lines |
| 1014 | @cindex unused lines | 996 | @cindex unused lines |
| 1015 | @cindex fringes, and unused line indication | 997 | @cindex fringes, and unused line indication |
| 1016 | Emacs can indicate unused lines at the end of the window with a | 998 | On graphical displays, Emacs can indicate unused lines at the end of |
| 1017 | small image in the left fringe (@pxref{Fringes}). The image appears | 999 | the window with a small image in the left fringe (@pxref{Fringes}). |
| 1018 | for window lines that do not correspond to any buffer text. Blank | 1000 | The image appears for window lines that do not correspond to any |
| 1019 | lines at the end of the buffer then stand out because they do not have | 1001 | buffer text. Blank lines at the end of the buffer then stand out |
| 1020 | this image in the fringe. | 1002 | because they do not have this image in the fringe. To enable this |
| 1021 | 1003 | feature, set the buffer-local variable @code{indicate-empty-lines} to | |
| 1022 | To enable this feature, set the buffer-local variable | 1004 | a non-@code{nil} value. You can enable or disable this feature for |
| 1023 | @code{indicate-empty-lines} to a non-@code{nil} value. You can enable | 1005 | all new buffers by setting the default value of this variable, |
| 1024 | or disable this feature for all new buffers by setting the default | 1006 | e.g.@:@code{(setq-default indicate-empty-lines t)}. |
| 1025 | value of this variable, e.g.@: @code{(setq-default | ||
| 1026 | indicate-empty-lines t)};. (This feature currently doesn't work on | ||
| 1027 | text-only terminals.) | ||
| 1028 | 1007 | ||
| 1029 | @node Selective Display | 1008 | @node Selective Display |
| 1030 | @section Selective Display | 1009 | @section Selective Display |
| @@ -1153,14 +1132,15 @@ set the variable @code{display-time-24hr-format} to @code{t}. | |||
| 1153 | @vindex display-time-mail-file | 1132 | @vindex display-time-mail-file |
| 1154 | @vindex display-time-mail-directory | 1133 | @vindex display-time-mail-directory |
| 1155 | The word @samp{Mail} appears after the load level if there is mail | 1134 | The word @samp{Mail} appears after the load level if there is mail |
| 1156 | for you that you have not read yet. On a graphical display you can use | 1135 | for you that you have not read yet. On graphical displays, you can |
| 1157 | an icon instead of @samp{Mail} by customizing | 1136 | use an icon instead of @samp{Mail} by customizing |
| 1158 | @code{display-time-use-mail-icon}; this may save some space on the mode | 1137 | @code{display-time-use-mail-icon}; this may save some space on the |
| 1159 | line. You can customize @code{display-time-mail-face} to make the mail | 1138 | mode line. You can customize @code{display-time-mail-face} to make |
| 1160 | indicator prominent. Use @code{display-time-mail-file} to specify | 1139 | the mail indicator prominent. Use @code{display-time-mail-file} to |
| 1161 | the mail file to check, or set @code{display-time-mail-directory} | 1140 | specify the mail file to check, or set |
| 1162 | to specify the directory to check for incoming mail (any nonempty regular | 1141 | @code{display-time-mail-directory} to specify the directory to check |
| 1163 | file in the directory is considered as ``newly arrived mail''). | 1142 | for incoming mail (any nonempty regular file in the directory is |
| 1143 | considered as ``newly arrived mail''). | ||
| 1164 | 1144 | ||
| 1165 | @cindex mail (on mode line) | 1145 | @cindex mail (on mode line) |
| 1166 | @findex display-battery-mode | 1146 | @findex display-battery-mode |
| @@ -1178,11 +1158,10 @@ percentage of the total charge. | |||
| 1178 | @cindex mode line, 3D appearance | 1158 | @cindex mode line, 3D appearance |
| 1179 | @cindex attributes of mode line, changing | 1159 | @cindex attributes of mode line, changing |
| 1180 | @cindex non-integral number of lines in a window | 1160 | @cindex non-integral number of lines in a window |
| 1181 | By default, the mode line is drawn on graphics displays with | 1161 | On graphical displays, the mode line is drawn as a 3D box. If you |
| 1182 | 3D-style highlighting, like that of a button when it is not being | 1162 | don't like this effect, you can disable it by customizing the |
| 1183 | pressed. If you don't like this effect, you can disable the 3D | 1163 | @code{mode-line} face and setting its @code{box} attribute to |
| 1184 | highlighting of the mode line, by customizing the attributes of the | 1164 | @code{nil}. @xref{Face Customization}. |
| 1185 | @code{mode-line} face. @xref{Face Customization}. | ||
| 1186 | 1165 | ||
| 1187 | @cindex non-selected windows, mode line appearance | 1166 | @cindex non-selected windows, mode line appearance |
| 1188 | By default, the mode line of nonselected windows is displayed in a | 1167 | By default, the mode line of nonselected windows is displayed in a |
| @@ -1210,58 +1189,58 @@ formats by setting each of the variables @code{eol-mnemonic-unix}, | |||
| 1210 | @node Text Display | 1189 | @node Text Display |
| 1211 | @section How Text Is Displayed | 1190 | @section How Text Is Displayed |
| 1212 | @cindex characters (in text) | 1191 | @cindex characters (in text) |
| 1192 | @cindex printing character | ||
| 1213 | 1193 | ||
| 1214 | @acronym{ASCII} printing characters (octal codes 040 through 0176) in Emacs | 1194 | Most characters are @dfn{printing characters}: when they appear in a |
| 1215 | buffers are displayed with their graphics, as are non-@acronym{ASCII} multibyte | 1195 | buffer, they are displayed literally on the screen. Printing |
| 1216 | printing characters (octal codes above 0400). | 1196 | characters include @acronym{ASCII} numbers, letters, and punctuation |
| 1197 | characters, as well as many non-@acronym{ASCII} characters. | ||
| 1217 | 1198 | ||
| 1218 | @vindex tab-width | 1199 | @vindex tab-width |
| 1219 | Some @acronym{ASCII} control characters are displayed in special | 1200 | @cindex control character |
| 1220 | ways. The newline character (octal code 012) is displayed by starting | 1201 | The @acronym{ASCII} character set contains non-printing @dfn{control |
| 1221 | a new line. The tab character (octal code 011) is displayed by moving | 1202 | characters}. Two of these are displayed specially: the newline |
| 1222 | to the next tab stop column (normally every 8 columns). The number of | 1203 | character (Unicode code point @code{U+000A}) is displayed by starting |
| 1223 | spaces per tab is controlled by the variable @code{tab-width}, which | 1204 | a new line, while the tab character (@code{U+0009}) is displayed as a |
| 1224 | must have an integer value between 1 and 1000, inclusive, and is made | 1205 | space that extends to the next tab stop column (normally every 8 |
| 1225 | buffer-local by changing it. Note that how the tab character in the buffer | 1206 | columns). The number of spaces per tab is controlled by the |
| 1226 | is displayed has nothing to do with the definition of @key{TAB} as a | 1207 | buffer-local variable @code{tab-width}, which must have an integer |
| 1227 | command. | 1208 | value between 1 and 1000, inclusive. Note that how the tab character |
| 1228 | 1209 | in the buffer is displayed has nothing to do with the definition of | |
| 1229 | Other @acronym{ASCII} control characters are normally displayed as a caret | 1210 | @key{TAB} as a command. |
| 1230 | (@samp{^}) followed by the non-control version of the character; thus, | 1211 | |
| 1231 | control-A is displayed as @samp{^A}. The caret appears in face | 1212 | Other @acronym{ASCII} control characters are displayed as a caret |
| 1232 | @code{escape-glyph}. | 1213 | (@samp{^}) followed by the non-control version of the character, with |
| 1233 | 1214 | the @code{escape-glyph} face. For instance, the @samp{control-A} | |
| 1234 | Non-@acronym{ASCII} characters 0200 through 0237 (octal) are | 1215 | character, @code{U+0001}, is displayed as @samp{^A}. |
| 1235 | displayed with octal escape sequences; thus, character code 0230 | ||
| 1236 | (octal) is displayed as @samp{\230}. The backslash appears in face | ||
| 1237 | @code{escape-glyph}. | ||
| 1238 | 1216 | ||
| 1239 | @vindex ctl-arrow | 1217 | @vindex ctl-arrow |
| 1240 | If the variable @code{ctl-arrow} is @code{nil}, control characters in | 1218 | The non-@acronym{ASCII}, non-printing characters @code{U+0080} |
| 1241 | the buffer are displayed with octal escape sequences, except for newline | 1219 | (octal 200) through @code{U+009F} (octal 237) are displayed as octal |
| 1242 | and tab. Altering the value of @code{ctl-arrow} makes it local to the | 1220 | escape sequences, with the @code{escape-glyph} face. For instance, |
| 1243 | current buffer; until that time, the default value is in effect. The | 1221 | character code @code{U+0098} (octal 230) is displayed as @samp{\230}. |
| 1244 | default is initially @code{t}. | 1222 | If you change the buffer-local variable @code{ctl-arrow} to |
| 1245 | 1223 | @code{nil}, @acronym{ASCII} control characters are also displayed as | |
| 1246 | The display of character codes 0240 through 0377 (octal) may be | 1224 | octal escape sequences instead of caret escape sequences. |
| 1247 | either as escape sequences or as graphics. They do not normally occur | ||
| 1248 | in multibyte buffers, but if they do, they are displayed as Latin-1 | ||
| 1249 | graphics. In unibyte mode, if you enable European display they are | ||
| 1250 | displayed using their graphics (assuming your terminal supports them), | ||
| 1251 | otherwise as escape sequences. @xref{Unibyte Mode}. | ||
| 1252 | 1225 | ||
| 1253 | @vindex nobreak-char-display | 1226 | @vindex nobreak-char-display |
| 1254 | @cindex no-break space, display | 1227 | @cindex non-breaking space |
| 1255 | @cindex no-break hyphen, display | 1228 | @cindex non-breaking hyphen |
| 1256 | @cindex soft hyphen, display | 1229 | @cindex soft hyphen |
| 1257 | Some character sets define ``no-break'' versions of the space and | 1230 | Some non-@acronym{ASCII} characters have the same appearance as an |
| 1258 | hyphen characters, which are used where a line should not be broken. | 1231 | @acronym{ASCII} space or hyphen (minus) character. Such characters |
| 1259 | Emacs normally displays these characters with special faces | 1232 | can cause problems if they are entered into a buffer without your |
| 1260 | (respectively, @code{nobreak-space} and @code{escape-glyph}) to | 1233 | realization, e.g. by yanking; for instance, source code compilers |
| 1261 | distinguish them from ordinary spaces and hyphens. You can turn off | 1234 | typically do not treat non-@acronym{ASCII} spaces as whitespace |
| 1262 | this feature by setting the variable @code{nobreak-char-display} to | 1235 | characters. To deal with this problem, Emacs displays such characters |
| 1263 | @code{nil}. If you set the variable to any other value, that means to | 1236 | specially: it displays @code{U+00A0} (no-break space) with the |
| 1264 | prefix these characters with an escape character. | 1237 | @code{nobreak-space} face, and it displays @code{U+00AD} (soft |
| 1238 | hyphen), @code{U+2010} (hyphen), and @code{U+2011} (non-breaking | ||
| 1239 | hyphen) with the @code{escape-glyph} face. To disable this, change | ||
| 1240 | the variable @code{nobreak-char-display} to @code{nil}. If you give | ||
| 1241 | this variable a non-@code{nil} and non-@code{t} value, Emacs instead | ||
| 1242 | displays such characters as a highlighted backslash followed by a | ||
| 1243 | space or hyphen. | ||
| 1265 | 1244 | ||
| 1266 | You can customize the way any particular character code is displayed | 1245 | You can customize the way any particular character code is displayed |
| 1267 | by means of a display table. @xref{Display Tables,, Display Tables, | 1246 | by means of a display table. @xref{Display Tables,, Display Tables, |
| @@ -1269,90 +1248,71 @@ elisp, The Emacs Lisp Reference Manual}. | |||
| 1269 | 1248 | ||
| 1270 | @cindex glyphless characters | 1249 | @cindex glyphless characters |
| 1271 | @cindex characters with no font glyphs | 1250 | @cindex characters with no font glyphs |
| 1272 | On graphics displays, some characters could have no glyphs in any of | 1251 | On graphical displays, some characters may have no glyphs in any of |
| 1273 | the fonts available to Emacs. On text terminals, some characters | 1252 | the fonts available to Emacs. These @dfn{glyphless characters} are |
| 1274 | could be impossible to encode with the terminal coding system | 1253 | normally displayed as boxes containing the hexadecimal character code. |
| 1275 | (@pxref{Terminal Coding}). Emacs can display such @dfn{glyphless} | 1254 | You can control the display method by customizing the variable |
| 1276 | characters using one of the following methods: | 1255 | @code{glyphless-char-display-control}. @xref{Glyphless Chars,, |
| 1277 | 1256 | Glyphless Character Display, elisp, The Emacs Lisp Reference Manual}, | |
| 1278 | @table @code | 1257 | for details. |
| 1279 | @item zero-width | ||
| 1280 | Don't display the character. | ||
| 1281 | |||
| 1282 | @item thin-space | ||
| 1283 | Display a thin space, 1-pixel wide on graphics displays or 1-character | ||
| 1284 | wide on text terminals. | ||
| 1285 | |||
| 1286 | @item empty-box | ||
| 1287 | Display an empty box. | ||
| 1288 | |||
| 1289 | @item acronym | ||
| 1290 | Display the acronym of the character's name (such as @sc{zwnj} or | ||
| 1291 | @sc{rlm}) in a box. | ||
| 1292 | |||
| 1293 | @item hex-code | ||
| 1294 | Display the Unicode codepoint of the character in hexadecimal | ||
| 1295 | notation, in a box. | ||
| 1296 | @end table | ||
| 1297 | |||
| 1298 | @noindent | ||
| 1299 | @cindex @code{glyphless-char} face | ||
| 1300 | With the exception of @code{zero-width}, all other methods draw these | ||
| 1301 | characters in a special face @code{glyphless-char}, which you can | ||
| 1302 | customize. | ||
| 1303 | |||
| 1304 | @vindex glyphless-char-display-control | ||
| 1305 | @vindex char-acronym-table | ||
| 1306 | To control what glyphless characters are displayed using which method, | ||
| 1307 | customize the variable @code{glyphless-char-display-control}; see its | ||
| 1308 | doc string for the details. For even finer control, set the elements | ||
| 1309 | of 2 char-tables: @code{glyphless-char-display} and | ||
| 1310 | @code{char-acronym-table}. | ||
| 1311 | 1258 | ||
| 1312 | @node Cursor Display | 1259 | @node Cursor Display |
| 1313 | @section Displaying the Cursor | 1260 | @section Displaying the Cursor |
| 1314 | 1261 | @cindex text cursor | |
| 1315 | @findex blink-cursor-mode | ||
| 1316 | @vindex blink-cursor-alist | ||
| 1317 | @cindex cursor, locating visually | ||
| 1318 | @cindex cursor, blinking | ||
| 1319 | You can customize the cursor's color, and whether it blinks, using | ||
| 1320 | the @code{cursor} Custom group (@pxref{Easy Customization}). On | ||
| 1321 | a graphical display, the command @kbd{M-x blink-cursor-mode} enables | ||
| 1322 | or disables the blinking of the cursor. (On text terminals, the | ||
| 1323 | terminal itself blinks the cursor, and Emacs has no control over it.) | ||
| 1324 | You can control how the cursor appears when it blinks off by setting | ||
| 1325 | the variable @code{blink-cursor-alist}. | ||
| 1326 | |||
| 1327 | @vindex cursor-type | ||
| 1328 | You can change the shape of the cursor from the default ``box'' look | ||
| 1329 | to a bar by altering the @code{cursor-type} variable. | ||
| 1330 | 1262 | ||
| 1331 | @vindex visible-cursor | 1263 | @vindex visible-cursor |
| 1332 | Some text terminals offer two different cursors: the normal cursor | 1264 | On a text terminal, the cursor's appearance is controlled by the |
| 1333 | and the very visible cursor, where the latter may be e.g. bigger or | 1265 | terminal, largely out of the control of Emacs. Some terminals offer |
| 1334 | blinking. By default Emacs uses the very visible cursor, and switches | 1266 | two different cursors: a ``visible'' static cursor, and a ``very |
| 1335 | to it when you start or resume Emacs. If the variable | 1267 | visible'' blinking cursor. By default, Emacs uses the very visible |
| 1336 | @code{visible-cursor} is @code{nil} when Emacs starts or resumes, it | 1268 | cursor, and switches to it when you start or resume Emacs. If the |
| 1337 | doesn't switch, so it uses the normal cursor. | 1269 | variable @code{visible-cursor} is @code{nil} when Emacs starts or |
| 1270 | resumes, it uses the normal cursor. | ||
| 1271 | |||
| 1272 | @cindex cursor face | ||
| 1273 | @vindex cursor-type | ||
| 1274 | On a graphical display, many more properties of the text cursor can | ||
| 1275 | be altered. To customize its color, change the @code{:background} | ||
| 1276 | attribute of the face named @code{cursor} (@pxref{Face | ||
| 1277 | Customization}). (The other attributes of this face have no effect; | ||
| 1278 | the text shown under the cursor is drawn using the frame's background | ||
| 1279 | color.) To change its shape, customize the buffer-local variable | ||
| 1280 | @code{cursor-type}; possible values are @code{box} (the default), | ||
| 1281 | @code{hollow} (a hollow box), @code{bar} (a vertical bar), @code{(bar | ||
| 1282 | . @var{n})} (a vertical bar @var{n} pixels wide), @code{hbar} (a | ||
| 1283 | horizontal bar), @code{(hbar . @var{n})} (a horizontal bar @var{n} | ||
| 1284 | pixels tall), or @code{nil} (no cursor at all). | ||
| 1338 | 1285 | ||
| 1339 | @cindex cursor in non-selected windows | 1286 | @findex blink-cursor-mode |
| 1340 | @vindex cursor-in-non-selected-windows | 1287 | @cindex cursor, blinking |
| 1341 | Normally, the cursor appears in non-selected windows without | 1288 | @cindex blinking cursor |
| 1342 | blinking, with the same appearance as when the blinking cursor blinks | 1289 | @vindex blink-cursor-alist |
| 1343 | ``off.'' For a box cursor, this is a hollow box; for a bar cursor, | 1290 | To disable cursor blinking, change the variable |
| 1344 | this is a thinner bar. To turn off cursors in non-selected windows, | 1291 | @code{blink-cursor-mode} to @code{nil} (@pxref{Easy Customization}), |
| 1345 | customize the variable @code{cursor-in-non-selected-windows} and | 1292 | or add the line @code{(blink-cursor-mode 0)} to your init file. |
| 1346 | assign it a @code{nil} value. | 1293 | Alternatively, you can change how the cursor looks when it ``blinks |
| 1294 | off'' by customizing the list variable @code{blink-cursor-alist}. | ||
| 1295 | Each element in the list should have the form @code{(@var{on-type} | ||
| 1296 | . @var{off-type})}; this means that if the cursor is displayed as | ||
| 1297 | @var{on-type} when it blinks on (where @var{on-type} is one of the | ||
| 1298 | cursor types described above), then it is displayed as @var{off-type} | ||
| 1299 | when it blinks off. | ||
| 1347 | 1300 | ||
| 1348 | @vindex x-stretch-cursor | 1301 | @vindex x-stretch-cursor |
| 1349 | @cindex wide block cursor | 1302 | @cindex wide block cursor |
| 1350 | On graphical displays, Emacs can optionally draw the block cursor | 1303 | Some characters, such as tab characters, are ``extra wide''. When |
| 1351 | as wide as the character under the cursor---for example, if the cursor | 1304 | the cursor is positioned over such a character, it is normally drawn |
| 1352 | is on a tab character, it would cover the full width occupied by that | 1305 | with the default character width. You can make the cursor stretch to |
| 1353 | tab character. To enable this feature, set the variable | 1306 | cover wide characters, by changing the variable |
| 1354 | @code{x-stretch-cursor} to a non-@code{nil} value. | 1307 | @code{x-stretch-cursor} to a non-@code{nil} value. |
| 1355 | 1308 | ||
| 1309 | @cindex cursor in non-selected windows | ||
| 1310 | @vindex cursor-in-non-selected-windows | ||
| 1311 | The cursor normally appears in non-selected windows as a | ||
| 1312 | non-blinking hollow box. (For a bar cursor, it instead appears as a | ||
| 1313 | thinner bar.) To turn off cursors in non-selected windows, change the | ||
| 1314 | variable @code{cursor-in-non-selected-windows} to @code{nil}. | ||
| 1315 | |||
| 1356 | @findex hl-line-mode | 1316 | @findex hl-line-mode |
| 1357 | @findex global-hl-line-mode | 1317 | @findex global-hl-line-mode |
| 1358 | @cindex highlight current line | 1318 | @cindex highlight current line |
| @@ -1362,18 +1322,17 @@ hl-line-mode} to enable or disable it in the current buffer. @kbd{M-x | |||
| 1362 | global-hl-line-mode} enables or disables the same mode globally. | 1322 | global-hl-line-mode} enables or disables the same mode globally. |
| 1363 | 1323 | ||
| 1364 | @node Line Truncation | 1324 | @node Line Truncation |
| 1365 | @section Truncation of Lines | 1325 | @section Line Truncation |
| 1366 | 1326 | ||
| 1367 | @cindex truncation | 1327 | @cindex truncation |
| 1368 | @cindex line truncation, and fringes | 1328 | @cindex line truncation, and fringes |
| 1369 | As an alternative to continuation (@pxref{Continuation Lines}), Emacs | 1329 | As an alternative to continuation (@pxref{Continuation Lines}), |
| 1370 | can display long lines by @dfn{truncation}. This means that all the | 1330 | Emacs can display long lines by @dfn{truncation}. This means that all |
| 1371 | characters that do not fit in the width of the screen or window do not | 1331 | the characters that do not fit in the width of the screen or window do |
| 1372 | appear at all. On graphical displays, a small straight arrow in the | 1332 | not appear at all. On graphical displays, a small straight arrow in |
| 1373 | fringe indicates truncation at either end of the line. On text-only | 1333 | the fringe indicates truncation at either end of the line. On |
| 1374 | terminals, @samp{$} appears in the leftmost column when there is text | 1334 | text-only terminals, this is indicated with @samp{$} signs in the |
| 1375 | truncated to the left, and in the rightmost column when there is text | 1335 | leftmost and/or rightmost columns. |
| 1376 | truncated to the right. | ||
| 1377 | 1336 | ||
| 1378 | @vindex truncate-lines | 1337 | @vindex truncate-lines |
| 1379 | @findex toggle-truncate-lines | 1338 | @findex toggle-truncate-lines |
| @@ -1385,21 +1344,12 @@ toggle-truncate-lines}. This works by locally changing the variable | |||
| 1385 | are truncated; if it is @code{nil}, they are continued onto multiple | 1344 | are truncated; if it is @code{nil}, they are continued onto multiple |
| 1386 | screen lines. Setting the variable @code{truncate-lines} in any way | 1345 | screen lines. Setting the variable @code{truncate-lines} in any way |
| 1387 | makes it local to the current buffer; until that time, the default | 1346 | makes it local to the current buffer; until that time, the default |
| 1388 | value is in effect. The default value is normally @code{nil}. | 1347 | value, which is normally @code{nil}, is in effect. |
| 1389 | 1348 | ||
| 1390 | @c @vindex truncate-partial-width-windows @c Idx entry is in Split Windows. | 1349 | @vindex truncate-partial-width-windows |
| 1391 | If the variable @code{truncate-partial-width-windows} is | 1350 | If a split window becomes too narrow, Emacs may automatically enable |
| 1392 | non-@code{nil}, it forces truncation rather than continuation in any | 1351 | line truncation. @xref{Split Window}, for the variable |
| 1393 | window less than the full width of the screen or frame, regardless of | 1352 | @code{truncate-partial-width-windows} which controls this. |
| 1394 | the value of @code{truncate-lines}. See also @ref{Display,, Display, | ||
| 1395 | elisp, The Emacs Lisp Reference Manual}. | ||
| 1396 | |||
| 1397 | @vindex overflow-newline-into-fringe | ||
| 1398 | If the variable @code{overflow-newline-into-fringe} is | ||
| 1399 | non-@code{nil} on a graphical display, then Emacs does not continue or | ||
| 1400 | truncate a line which is exactly as wide as the window. Instead, the | ||
| 1401 | newline overflows into the right fringe, and the cursor appears in the | ||
| 1402 | fringe when positioned on that newline. | ||
| 1403 | 1353 | ||
| 1404 | @node Visual Line Mode | 1354 | @node Visual Line Mode |
| 1405 | @section Visual Line Mode | 1355 | @section Visual Line Mode |
| @@ -1452,11 +1402,8 @@ variable @code{visual-line-fringe-indicators}. | |||
| 1452 | @node Display Custom | 1402 | @node Display Custom |
| 1453 | @section Customization of Display | 1403 | @section Customization of Display |
| 1454 | 1404 | ||
| 1455 | This section describes variables (@pxref{Variables}) that you can | 1405 | This section describes variables that control miscellaneous aspects |
| 1456 | change to customize how Emacs displays. Beginning users can skip | 1406 | of the appearance of the Emacs screen. Beginning users can skip it. |
| 1457 | it. | ||
| 1458 | @c the reason for that pxref is because an xref early in the | ||
| 1459 | @c ``echo area'' section leads here. | ||
| 1460 | 1407 | ||
| 1461 | @vindex visible-bell | 1408 | @vindex visible-bell |
| 1462 | If the variable @code{visible-bell} is non-@code{nil}, Emacs attempts | 1409 | If the variable @code{visible-bell} is non-@code{nil}, Emacs attempts |
| @@ -1468,19 +1415,7 @@ to make the screen blink. | |||
| 1468 | The variable @code{echo-keystrokes} controls the echoing of multi-character | 1415 | The variable @code{echo-keystrokes} controls the echoing of multi-character |
| 1469 | keys; its value is the number of seconds of pause required to cause echoing | 1416 | keys; its value is the number of seconds of pause required to cause echoing |
| 1470 | to start, or zero, meaning don't echo at all. The value takes effect when | 1417 | to start, or zero, meaning don't echo at all. The value takes effect when |
| 1471 | there is someting to echo. @xref{Echo Area}. | 1418 | there is something to echo. @xref{Echo Area}. |
| 1472 | |||
| 1473 | @vindex baud-rate | ||
| 1474 | The variable @anchor{baud-rate}@code{baud-rate} holds the output | ||
| 1475 | speed of the terminal. Setting this variable does not change the | ||
| 1476 | speed of actual data transmission, but the value is used for | ||
| 1477 | calculations. On text-only terminals, it affects padding, and | ||
| 1478 | decisions about whether to scroll part of the screen or redraw it | ||
| 1479 | instead. It also affects the behavior of incremental search. On | ||
| 1480 | graphical displays, @code{baud-rate} is only used to determine how | ||
| 1481 | frequently to look for pending input during display updating. A | ||
| 1482 | higher value of @code{baud-rate} means that check for pending input | ||
| 1483 | will be done less frequently. | ||
| 1484 | 1419 | ||
| 1485 | @cindex mouse pointer | 1420 | @cindex mouse pointer |
| 1486 | @cindex hourglass pointer display | 1421 | @cindex hourglass pointer display |
| @@ -1523,15 +1458,3 @@ itself, in pixels; the default is 2. | |||
| 1523 | result in text that is hard to read. Call the function | 1458 | result in text that is hard to read. Call the function |
| 1524 | @code{tty-suppress-bold-inverse-default-colors} with a non-@code{nil} | 1459 | @code{tty-suppress-bold-inverse-default-colors} with a non-@code{nil} |
| 1525 | argument to suppress the effect of bold-face in this case. | 1460 | argument to suppress the effect of bold-face in this case. |
| 1526 | |||
| 1527 | @vindex no-redraw-on-reenter | ||
| 1528 | On a text-only terminal, when you reenter Emacs after suspending, Emacs | ||
| 1529 | normally clears the screen and redraws the entire display. On some | ||
| 1530 | terminals with more than one page of memory, it is possible to arrange | ||
| 1531 | the termcap entry so that the @samp{ti} and @samp{te} strings (output | ||
| 1532 | to the terminal when Emacs is entered and exited, respectively) switch | ||
| 1533 | between pages of memory so as to use one page for Emacs and another | ||
| 1534 | page for other output. On such terminals, you might want to set the variable | ||
| 1535 | @code{no-redraw-on-reenter} non-@code{nil}; this tells Emacs to | ||
| 1536 | assume, when resumed, that the screen page it is using still contains | ||
| 1537 | what Emacs last wrote there. | ||
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 8a15c783fc0..cad0e4db3c0 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi | |||
| @@ -281,7 +281,7 @@ Completion | |||
| 281 | 281 | ||
| 282 | * Completion Example:: Examples of using completion. | 282 | * Completion Example:: Examples of using completion. |
| 283 | * Completion Commands:: A list of completion commands. | 283 | * Completion Commands:: A list of completion commands. |
| 284 | * Strict Completion:: Different types of completion. | 284 | * Completion Exit:: Completion and minibuffer text submission. |
| 285 | * Completion Styles:: How completion matches are chosen. | 285 | * Completion Styles:: How completion matches are chosen. |
| 286 | * Completion Options:: Options for completion. | 286 | * Completion Options:: Options for completion. |
| 287 | 287 | ||
| @@ -350,7 +350,7 @@ Controlling the Display | |||
| 350 | * Follow Mode:: Follow mode lets two windows scroll as one. | 350 | * Follow Mode:: Follow mode lets two windows scroll as one. |
| 351 | * Faces:: How to change the display style using faces. | 351 | * Faces:: How to change the display style using faces. |
| 352 | * Standard Faces:: Emacs' predefined faces. | 352 | * Standard Faces:: Emacs' predefined faces. |
| 353 | * Temporary Face Changes:: Commands to temporarily modify the default text face | 353 | * Text Scale:: Increasing or decreasing text size in a buffer. |
| 354 | * Font Lock:: Minor mode for syntactic highlighting using faces. | 354 | * Font Lock:: Minor mode for syntactic highlighting using faces. |
| 355 | * Highlight Interactively:: Tell Emacs what text to highlight. | 355 | * Highlight Interactively:: Tell Emacs what text to highlight. |
| 356 | * Fringes:: Enabling or disabling window fringes. | 356 | * Fringes:: Enabling or disabling window fringes. |
| @@ -388,7 +388,6 @@ Incremental Search | |||
| 388 | or else edit the search string. | 388 | or else edit the search string. |
| 389 | * Isearch Scroll:: Scrolling during an incremental search. | 389 | * Isearch Scroll:: Scrolling during an incremental search. |
| 390 | * Isearch Minibuffer:: Incremental search of the minibuffer history. | 390 | * Isearch Minibuffer:: Incremental search of the minibuffer history. |
| 391 | * Slow Isearch:: Incremental search features for slow terminals. | ||
| 392 | 391 | ||
| 393 | Replacement Commands | 392 | Replacement Commands |
| 394 | 393 | ||
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 433bf617598..2317f876b08 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi | |||
| @@ -47,58 +47,58 @@ on file directories. | |||
| 47 | @section File Names | 47 | @section File Names |
| 48 | @cindex file names | 48 | @cindex file names |
| 49 | 49 | ||
| 50 | Many Emacs commands that operate on a file require you to specify | ||
| 51 | the file name, using the minibuffer (@pxref{Minibuffer}). You can use | ||
| 52 | @dfn{completion} to specify long file names (@pxref{Completion}). | ||
| 53 | Note that file name completion ignores file names whose extensions | ||
| 54 | appear in the variable @code{completion-ignored-extensions} | ||
| 55 | (@pxref{Completion Options}). | ||
| 56 | |||
| 57 | @cindex default file name | 50 | @cindex default file name |
| 58 | For most operations, there is a @dfn{default file name} which is | 51 | Many Emacs commands that operate on a file require you to specify |
| 59 | used if you type just @key{RET} to enter an empty argument. Normally, | 52 | the file name, using the minibuffer (@pxref{Minibuffer File}). |
| 60 | the default file name is the name of the file visited in the current | 53 | |
| 61 | buffer. | 54 | While in the minibuffer, you can use the usual completion and |
| 55 | history commands (@pxref{Minibuffer}). Note that file name completion | ||
| 56 | ignores file names whose extensions appear in the variable | ||
| 57 | @code{completion-ignored-extensions} (@pxref{Completion Options}). | ||
| 58 | Note also that most commands use ``permissive completion with | ||
| 59 | confirmation'' for reading file names: you are allowed to submit a | ||
| 60 | nonexistent file name, but if you type @key{RET} immediately after | ||
| 61 | completing up to a nonexistent file name, Emacs prints | ||
| 62 | @samp{[Confirm]} and you must type a second @key{RET} to confirm. | ||
| 63 | @xref{Completion Exit}, for details. | ||
| 62 | 64 | ||
| 63 | @cindex default directory | 65 | @cindex default directory |
| 64 | @vindex default-directory | 66 | @vindex default-directory |
| 65 | @vindex insert-default-directory | 67 | @vindex insert-default-directory |
| 66 | Each buffer has a @dfn{default directory} which is normally the same | 68 | Each buffer has a @dfn{default directory}, stored in the |
| 67 | as the directory of the file visited in that buffer. For example, if | 69 | buffer-local variable @code{default-directory}. Whenever Emacs reads |
| 68 | the default file name is @file{/u/rms/gnu/gnu.tasks}, the default | 70 | a file name using the minibuffer, it usually inserts the default |
| 69 | directory is normally @file{/u/rms/gnu/}. The default directory is | 71 | directory into the minibuffer as the initial contents. You can |
| 70 | kept in the variable @code{default-directory}, which has a separate | 72 | inhibit this insertion by changing the variable |
| 71 | value in every buffer. When a command reads a file name using the | 73 | @code{insert-default-directory} to @code{nil} (@pxref{Minibuffer |
| 72 | minibuffer, the default directory usually serves as the initial | 74 | File}). Regardless, Emacs always assumes that any relative file name |
| 73 | contents of the minibuffer. To inhibit the insertion of the default | 75 | is relative to the default directory, e.g. entering a file name |
| 74 | directory, set the variable @code{insert-default-directory} to | 76 | without a directory specifies a file in the default directory. |
| 75 | @code{nil}. | ||
| 76 | 77 | ||
| 77 | If you enter a file name without a directory, that specifies a file | 78 | @findex cd |
| 78 | in the default directory. If you specify a directory in a relative | 79 | @findex pwd |
| 79 | fashion, with a name that does not start with a slash, it is | 80 | When you visit a file, Emacs sets @code{default-directory} in the |
| 80 | interpreted with respect to the default directory. For example, | 81 | visiting buffer to the directory of its file. When you create a new |
| 81 | suppose the default directory is @file{/u/rms/gnu/}. Entering just | 82 | buffer that is not visiting a file, via a command like @kbd{C-x b}, |
| 82 | @samp{foo} in the minibuffer, with a directory omitted, specifies the | 83 | its default directory is usually copied from the buffer that was |
| 83 | file @file{/u/rms/gnu/foo}; entering @samp{../.login} specifies | 84 | current at the time (@pxref{Select Buffer}). You can use the command |
| 85 | @kbd{M-x pwd} to see the value of @code{default-directory} in the | ||
| 86 | current buffer. The command @kbd{M-x cd} prompts for a directory | ||
| 87 | name, and sets the buffer's @code{default-directory} to that directory | ||
| 88 | (doing this does not change the buffer's file name, if any). | ||
| 89 | |||
| 90 | As an example, when you visit the file @file{/u/rms/gnu/gnu.tasks}, | ||
| 91 | the default directory is set to @file{/u/rms/gnu/}. If you invoke a | ||
| 92 | command that reads a file name, entering just @samp{foo} in the | ||
| 93 | minibuffer, with a directory omitted, specifies the file | ||
| 94 | @file{/u/rms/gnu/foo}; entering @samp{../.login} specifies | ||
| 84 | @file{/u/rms/.login}; and entering @samp{new/foo} specifies | 95 | @file{/u/rms/.login}; and entering @samp{new/foo} specifies |
| 85 | @file{/u/rms/gnu/new/foo}. | 96 | @file{/u/rms/gnu/new/foo}. |
| 86 | 97 | ||
| 87 | When typing a file name into the minibuffer, you can make use of a | 98 | When typing a file name into the minibuffer, you can make use of a |
| 88 | couple of shortcuts: a double slash is interpreted as ``ignore | 99 | couple of shortcuts: a double slash is interpreted as ``ignore |
| 89 | everything before the second slash in the pair,'' and @samp{~/} is | 100 | everything before the second slash in the pair,'' and @samp{~/} is |
| 90 | interpreted as your home directory. @xref{Minibuffer File}, for more | 101 | interpreted as your home directory. @xref{Minibuffer File}. |
| 91 | information about these shortcuts. | ||
| 92 | |||
| 93 | @findex cd | ||
| 94 | @findex pwd | ||
| 95 | The command @kbd{M-x pwd} displays the default directory, and the | ||
| 96 | command @kbd{M-x cd} sets it to a value read using the minibuffer. A | ||
| 97 | buffer's default directory changes only when the @code{cd} command is | ||
| 98 | used. A file-visiting buffer's default directory is initialized to | ||
| 99 | the directory of the file it visits. If you create a buffer with | ||
| 100 | @kbd{C-x b}, its default directory is copied from that of the buffer | ||
| 101 | that was current at the time (@pxref{Select Buffer}). | ||
| 102 | 102 | ||
| 103 | @cindex environment variables in file names | 103 | @cindex environment variables in file names |
| 104 | @cindex expansion of environment variables | 104 | @cindex expansion of environment variables |
| @@ -113,10 +113,8 @@ the @samp{$}; alternatively, it can be enclosed in braces after the | |||
| 113 | @file{/u/$@{FOO@}/test.c} are abbreviations for | 113 | @file{/u/$@{FOO@}/test.c} are abbreviations for |
| 114 | @file{/u/rms/hacks/test.c}. If the environment variable is not | 114 | @file{/u/rms/hacks/test.c}. If the environment variable is not |
| 115 | defined, no substitution occurs, so that the character @samp{$} stands | 115 | defined, no substitution occurs, so that the character @samp{$} stands |
| 116 | for itself. | 116 | for itself. Note that environment variables affect Emacs only if they |
| 117 | 117 | are applied before Emacs is started. | |
| 118 | Note that environment variables affect Emacs only if they are | ||
| 119 | applied before Emacs is started. | ||
| 120 | 118 | ||
| 121 | To access a file with @samp{$} in its name, if the @samp{$} causes | 119 | To access a file with @samp{$} in its name, if the @samp{$} causes |
| 122 | expansion, type @samp{$$}. This pair is converted to a single | 120 | expansion, type @samp{$$}. This pair is converted to a single |
| @@ -125,8 +123,7 @@ a single @samp{$}. Alternatively, quote the whole file name with | |||
| 125 | @samp{/:} (@pxref{Quoted File Names}). File names which begin with a | 123 | @samp{/:} (@pxref{Quoted File Names}). File names which begin with a |
| 126 | literal @samp{~} should also be quoted with @samp{/:}. | 124 | literal @samp{~} should also be quoted with @samp{/:}. |
| 127 | 125 | ||
| 128 | You can include non-@acronym{ASCII} characters in file names if you set the | 126 | You can include non-@acronym{ASCII} characters in file names. |
| 129 | variable @code{file-name-coding-system} to a non-@code{nil} value. | ||
| 130 | @xref{File Name Coding}. | 127 | @xref{File Name Coding}. |
| 131 | 128 | ||
| 132 | @node Visiting | 129 | @node Visiting |
| @@ -159,48 +156,43 @@ Visit a file with no conversion of the contents. | |||
| 159 | buffer so you can edit them. Emacs makes a new buffer for each file | 156 | buffer so you can edit them. Emacs makes a new buffer for each file |
| 160 | that you visit. | 157 | that you visit. |
| 161 | 158 | ||
| 162 | Emacs normally constructs the buffer name from the file name, | 159 | @kindex C-x C-f |
| 163 | omitting the directory name. For example, a file named | 160 | @findex find-file |
| 164 | @file{/usr/rms/emacs.tex} is visited in a buffer named | 161 | To visit a file, type @kbd{C-x C-f} (@code{find-file}) and use the |
| 165 | @samp{emacs.tex}. If there is already a buffer with that name, Emacs | 162 | minibuffer to enter the name of the desired file. While in the |
| 166 | constructs a unique name; the normal method is to append @samp{<2>}, | 163 | minibuffer, you can abort the command by typing @kbd{C-g}. @xref{File |
| 167 | @samp{<3>}, and so on, but you can select other methods. | 164 | Names}, for details about entering file names into minibuffers. |
| 165 | |||
| 166 | If the specified file exists but the system does not allow you to | ||
| 167 | read it, an error message is displayed in the echo area. Otherwise, | ||
| 168 | you can tell that @kbd{C-x C-f} has completed successfully by the | ||
| 169 | appearance of new text on the screen, and by the buffer name shown in | ||
| 170 | the mode line (@pxref{Mode Line}). Emacs normally constructs the | ||
| 171 | buffer name from the file name, omitting the directory name. For | ||
| 172 | example, a file named @file{/usr/rms/emacs.tex} is visited in a buffer | ||
| 173 | named @samp{emacs.tex}. If there is already a buffer with that name, | ||
| 174 | Emacs constructs a unique name; the normal method is to append | ||
| 175 | @samp{<2>}, @samp{<3>}, and so on, but you can select other methods. | ||
| 168 | @xref{Uniquify}. | 176 | @xref{Uniquify}. |
| 169 | 177 | ||
| 170 | Each window's mode line shows the name of the buffer that is being | 178 | @cindex creating files |
| 171 | displayed in that window, so you can always tell what buffer you are | 179 | To create a new file, just visit it using the same command, @kbd{C-x |
| 172 | editing. @pxref{Mode Line}. | 180 | C-f}. Emacs displays @samp{(New file)} in the echo area, but in other |
| 173 | 181 | respects behaves as if you had visited an existing empty file. | |
| 174 | The changes you make with editing commands are made in the Emacs | ||
| 175 | buffer. They do not take effect in the file that you visited, or any | ||
| 176 | permanent place, until you @dfn{save} the buffer (@pxref{Saving}). | ||
| 177 | 182 | ||
| 178 | @cindex modified (buffer) | 183 | @cindex modified (buffer) |
| 179 | If a buffer contains changes that have not been saved, we say the | 184 | After visiting a file, the changes you make with editing commands are |
| 180 | buffer is @dfn{modified}. This implies that some changes will be lost | 185 | made in the Emacs buffer. They do not take effect in the visited |
| 181 | if the buffer is not saved. The mode line displays two stars near the | 186 | file, until you @dfn{save} the buffer (@pxref{Saving}). If a buffer |
| 182 | left margin to indicate that the buffer is modified. | 187 | contains changes that have not been saved, we say the buffer is |
| 183 | 188 | @dfn{modified}. This implies that some changes will be lost if the | |
| 184 | @kindex C-x C-f | 189 | buffer is not saved. The mode line displays two stars near the left |
| 185 | @findex find-file | 190 | margin to indicate that the buffer is modified. |
| 186 | To visit a file, type @kbd{C-x C-f} (@code{find-file}) and use the | 191 | |
| 187 | minibuffer to enter the name of the desired file. The usual | 192 | If you visit a file that is already in Emacs, @kbd{C-x C-f} switches |
| 188 | defaulting and completion behavior is available in this minibuffer | 193 | to the existing buffer instead of making another copy. Before doing |
| 189 | (@pxref{Minibuffer File}). Note, also, that completion ignores | 194 | so, it checks whether the file has changed since you last visited or |
| 190 | certain file names (@pxref{Completion Options}). While in the | 195 | saved it. If the file has changed, Emacs offers to reread it. |
| 191 | minibuffer, you can abort @kbd{C-x C-f} by typing @kbd{C-g}. | ||
| 192 | |||
| 193 | Your can tell that @kbd{C-x C-f} has completed successfully by the | ||
| 194 | appearance of new text on the screen and a new buffer name in the mode | ||
| 195 | line. If the specified file does not exist and you could not create | ||
| 196 | it, or exists but you can't read it, an error message is displayed in | ||
| 197 | the echo area. | ||
| 198 | |||
| 199 | If you visit a file that is already in Emacs, @kbd{C-x C-f} does not make | ||
| 200 | another copy. It selects the existing buffer containing that file. | ||
| 201 | However, before doing so, it checks whether the file itself has changed | ||
| 202 | since you visited or saved it last. If the file has changed, Emacs offers | ||
| 203 | to reread it. | ||
| 204 | 196 | ||
| 205 | @vindex large-file-warning-threshold | 197 | @vindex large-file-warning-threshold |
| 206 | @cindex file, warning when size is large | 198 | @cindex file, warning when size is large |
| @@ -211,10 +203,10 @@ to reread it. | |||
| 211 | about 10 megabytes), Emacs asks you for confirmation first. You can | 203 | about 10 megabytes), Emacs asks you for confirmation first. You can |
| 212 | answer @kbd{y} to proceed with visiting the file. Note, however, that | 204 | answer @kbd{y} to proceed with visiting the file. Note, however, that |
| 213 | Emacs cannot visit files that are larger than the maximum Emacs buffer | 205 | Emacs cannot visit files that are larger than the maximum Emacs buffer |
| 214 | size, which is limited by the amount of memory Emacs can allocate | 206 | size, which is limited by the amount of memory Emacs can allocate and |
| 215 | and by the integers that Emacs can represent | 207 | by the integers that Emacs can represent (@pxref{Buffers}). If you |
| 216 | (@pxref{Buffers}). If you try, Emacs will display an error message | 208 | try, Emacs displays an error message saying that the maximum buffer |
| 217 | saying that the maximum buffer size has been exceeded. | 209 | size has been exceeded. |
| 218 | 210 | ||
| 219 | @cindex wildcard characters in file names | 211 | @cindex wildcard characters in file names |
| 220 | @vindex find-file-wildcards | 212 | @vindex find-file-wildcards |
| @@ -228,63 +220,21 @@ File Names}, for information on how to visit a file whose name | |||
| 228 | actually contains wildcard characters. You can disable the wildcard | 220 | actually contains wildcard characters. You can disable the wildcard |
| 229 | feature by customizing @code{find-file-wildcards}. | 221 | feature by customizing @code{find-file-wildcards}. |
| 230 | 222 | ||
| 231 | @cindex file selection dialog | ||
| 232 | On graphical displays, there are two additional methods for visiting | ||
| 233 | files. Firstly, when Emacs is built with a suitable GUI toolkit, | ||
| 234 | commands invoked with the mouse (by clicking on the menu bar or tool | ||
| 235 | bar) use the toolkit's standard ``File Selection'' dialog instead of | ||
| 236 | prompting for the file name in the minibuffer. On GNU/Linux and Unix | ||
| 237 | platforms, Emacs does this when built with GTK, LessTif, and Motif | ||
| 238 | toolkits; on MS-Windows and Mac, the GUI version does that by default. | ||
| 239 | For information on how to customize this, see @ref{Dialog Boxes}. | ||
| 240 | |||
| 241 | Secondly, Emacs supports ``drag and drop'': dropping a file into an | ||
| 242 | ordinary Emacs window visits the file using that window. As an | ||
| 243 | exception, dropping a file into a window displaying a Dired buffer | ||
| 244 | moves or copies the file into the displayed directory. For details, | ||
| 245 | see @ref{Drag and Drop}, and @ref{Misc Dired Features}. | ||
| 246 | |||
| 247 | @cindex creating files | ||
| 248 | What if you want to create a new file? Just visit it. Emacs | ||
| 249 | displays @samp{(New file)} in the echo area, but in other respects | ||
| 250 | behaves as if you had visited an existing empty file. If you make | ||
| 251 | changes and save them, the file is created. | ||
| 252 | |||
| 253 | @cindex minibuffer confirmation | ||
| 254 | @cindex confirming in the minibuffer | ||
| 255 | @vindex confirm-nonexistent-file-or-buffer | ||
| 256 | When @key{TAB} completion results in a nonexistent file name and you | ||
| 257 | type @key{RET} immediately to visit it, Emacs asks for confirmation; | ||
| 258 | this is because it's possible that you expected completion to go | ||
| 259 | further and give you an existing file's name. The string | ||
| 260 | @samp{[Confirm]} appears for a short time after the file name to | ||
| 261 | indicate the need to confirm in this way. Type @key{RET} to confirm | ||
| 262 | and visit the nonexistent file. The variable | ||
| 263 | @code{confirm-nonexistent-file-or-buffer} controls whether Emacs asks | ||
| 264 | for confirmation before visiting a new file. The default value, | ||
| 265 | @code{after-completion}, gives the behavior we have just described. | ||
| 266 | If the value is @code{nil}, Emacs never asks for confirmation; for any | ||
| 267 | other non-@code{nil} value, Emacs always asks for confirmation. This | ||
| 268 | variable also affects the @code{switch-to-buffer} command | ||
| 269 | (@pxref{Select Buffer}). @xref{Completion}, for more information | ||
| 270 | about completion. | ||
| 271 | |||
| 272 | @kindex C-x C-v | 223 | @kindex C-x C-v |
| 273 | @findex find-alternate-file | 224 | @findex find-alternate-file |
| 274 | If you visit a nonexistent file unintentionally (because you typed | 225 | If you visit the wrong file unintentionally by typing its name |
| 275 | the wrong file name), type @kbd{C-x C-v} (@code{find-alternate-file}) | 226 | incorrectly, type @kbd{C-x C-v} (@code{find-alternate-file}) to visit |
| 276 | to visit the file you really wanted. @kbd{C-x C-v} is similar to | 227 | the file you really wanted. @kbd{C-x C-v} is similar to @kbd{C-x |
| 277 | @kbd{C-x C-f}, but it kills the current buffer (after first offering | 228 | C-f}, but it kills the current buffer (after first offering to save it |
| 278 | to save it if it is modified). When @kbd{C-x C-v} reads the file name | 229 | if it is modified). When @kbd{C-x C-v} reads the file name to visit, |
| 279 | to visit, it inserts the entire default file name in the buffer, with | 230 | it inserts the entire default file name in the buffer, with point just |
| 280 | point just after the directory part; this is convenient if you made a | 231 | after the directory part; this is convenient if you made a slight |
| 281 | slight error in typing the name. | 232 | error in typing the name. |
| 282 | 233 | ||
| 283 | @vindex find-file-run-dired | 234 | @vindex find-file-run-dired |
| 284 | If you ``visit'' a file that is actually a directory, Emacs invokes | 235 | If you ``visit'' a file that is actually a directory, Emacs invokes |
| 285 | Dired, the Emacs directory browser; this lets you ``edit'' the | 236 | Dired, the Emacs directory browser. @xref{Dired}. You can disable |
| 286 | contents of the directory. @xref{Dired}. You can disable this | 237 | this behavior by setting the variable @code{find-file-run-dired} to |
| 287 | behavior by setting the variable @code{find-file-run-dired} to | ||
| 288 | @code{nil}; in that case, it is an error to try to visit a directory. | 238 | @code{nil}; in that case, it is an error to try to visit a directory. |
| 289 | 239 | ||
| 290 | Files which are actually collections of other files, or @dfn{file | 240 | Files which are actually collections of other files, or @dfn{file |
| @@ -321,17 +271,28 @@ new frame, or makes visible any existing frame showing the file you | |||
| 321 | seek. This feature is available only when you are using a window | 271 | seek. This feature is available only when you are using a window |
| 322 | system. @xref{Frames}. | 272 | system. @xref{Frames}. |
| 323 | 273 | ||
| 324 | Emacs recognizes from the contents of a file which end-of-line | 274 | @cindex file selection dialog |
| 325 | convention it uses to separate lines---newline (used on GNU/Linux and | 275 | On graphical displays, there are two additional methods for visiting |
| 326 | on Unix), carriage-return linefeed (used on Microsoft systems), or | 276 | files. Firstly, when Emacs is built with a suitable GUI toolkit, |
| 327 | just carriage-return (used on the Macintosh)---and automatically | 277 | commands invoked with the mouse (by clicking on the menu bar or tool |
| 328 | converts the contents to the normal Emacs convention, which is that | 278 | bar) use the toolkit's standard ``File Selection'' dialog instead of |
| 329 | the newline character separates lines. This is a part of the general | 279 | prompting for the file name in the minibuffer. On GNU/Linux and Unix |
| 330 | feature of coding system conversion (@pxref{Coding Systems}), and | 280 | platforms, Emacs does this when built with GTK, LessTif, and Motif |
| 331 | makes it possible to edit files imported from different operating | 281 | toolkits; on MS-Windows and Mac, the GUI version does that by default. |
| 332 | systems with equal convenience. If you change the text and save the | 282 | For information on how to customize this, see @ref{Dialog Boxes}. |
| 333 | file, Emacs performs the inverse conversion, changing newlines back | 283 | |
| 334 | into carriage-return linefeed or just carriage-return if appropriate. | 284 | Secondly, Emacs supports ``drag and drop'': dropping a file into an |
| 285 | ordinary Emacs window visits the file using that window. As an | ||
| 286 | exception, dropping a file into a window displaying a Dired buffer | ||
| 287 | moves or copies the file into the displayed directory. For details, | ||
| 288 | see @ref{Drag and Drop}, and @ref{Misc Dired Features}. | ||
| 289 | |||
| 290 | Each time you visit a file, Emacs automatically scans its contents | ||
| 291 | to detect what character encoding and end-of-line convention it uses, | ||
| 292 | and converts these to Emacs' internal encoding and end-of-line | ||
| 293 | convention within the buffer. When you save the buffer, Emacs | ||
| 294 | performs the inverse conversion, writing the file to disk with its | ||
| 295 | original encoding and end-of-line convention. @xref{Coding Systems}. | ||
| 335 | 296 | ||
| 336 | @findex find-file-literally | 297 | @findex find-file-literally |
| 337 | If you wish to edit a file as a sequence of @acronym{ASCII} | 298 | If you wish to edit a file as a sequence of @acronym{ASCII} |
| @@ -346,17 +307,17 @@ command asks you whether to visit it literally instead. | |||
| 346 | 307 | ||
| 347 | @vindex find-file-hook | 308 | @vindex find-file-hook |
| 348 | @vindex find-file-not-found-functions | 309 | @vindex find-file-not-found-functions |
| 349 | Two special hook variables allow extensions to modify the operation of | 310 | Two special hook variables allow extensions to modify the operation |
| 350 | visiting files. Visiting a file that does not exist runs the functions | 311 | of visiting files. Visiting a file that does not exist runs the |
| 351 | in the list @code{find-file-not-found-functions}; this variable holds a list | 312 | functions in @code{find-file-not-found-functions}; this variable holds |
| 352 | of functions, and the functions are called one by one (with no | 313 | a list of functions, which are called one by one (with no arguments) |
| 353 | arguments) until one of them returns non-@code{nil}. This is not a | 314 | until one of them returns non-@code{nil}. This is not a normal hook, |
| 354 | normal hook, and the name ends in @samp{-functions} rather than @samp{-hook} | 315 | and the name ends in @samp{-functions} rather than @samp{-hook} to |
| 355 | to indicate that fact. | 316 | indicate that fact. |
| 356 | 317 | ||
| 357 | Successful visiting of any file, whether existing or not, calls the | 318 | Successful visiting of any file, whether existing or not, calls the |
| 358 | functions in the list @code{find-file-hook}, with no arguments. | 319 | functions in @code{find-file-hook}, with no arguments. This variable |
| 359 | This variable is a normal hook. In the case of a nonexistent file, the | 320 | is a normal hook. In the case of a nonexistent file, the |
| 360 | @code{find-file-not-found-functions} are run first. @xref{Hooks}. | 321 | @code{find-file-not-found-functions} are run first. @xref{Hooks}. |
| 361 | 322 | ||
| 362 | There are several ways to specify automatically the major mode for | 323 | There are several ways to specify automatically the major mode for |
| @@ -386,9 +347,9 @@ that was visited in the buffer. | |||
| 386 | 347 | ||
| 387 | @table @kbd | 348 | @table @kbd |
| 388 | @item C-x C-s | 349 | @item C-x C-s |
| 389 | Save the current buffer in its visited file on disk (@code{save-buffer}). | 350 | Save the current buffer to its file (@code{save-buffer}). |
| 390 | @item C-x s | 351 | @item C-x s |
| 391 | Save any or all buffers in their visited files (@code{save-some-buffers}). | 352 | Save any or all buffers to their files (@code{save-some-buffers}). |
| 392 | @item M-~ | 353 | @item M-~ |
| 393 | Forget that the current buffer has been changed (@code{not-modified}). | 354 | Forget that the current buffer has been changed (@code{not-modified}). |
| 394 | With prefix argument (@kbd{C-u}), mark the current buffer as changed. | 355 | With prefix argument (@kbd{C-u}), mark the current buffer as changed. |
| @@ -409,10 +370,10 @@ Wrote /u/rms/gnu/gnu.tasks | |||
| 409 | @end example | 370 | @end example |
| 410 | 371 | ||
| 411 | @noindent | 372 | @noindent |
| 412 | If the selected buffer is not modified (no changes have been made in it | 373 | If the current buffer is not modified (no changes have been made in it |
| 413 | since the buffer was created or last saved), saving is not really done, | 374 | since the buffer was created or last saved), saving is not really |
| 414 | because it would have no effect. Instead, @kbd{C-x C-s} displays a message | 375 | done, because it would have no effect. Instead, @kbd{C-x C-s} |
| 415 | like this in the echo area: | 376 | displays a message like this in the echo area: |
| 416 | 377 | ||
| 417 | @example | 378 | @example |
| 418 | (No changes need to be saved) | 379 | (No changes need to be saved) |
| @@ -597,8 +558,8 @@ Never make numbered backups; always make single backups. | |||
| 597 | @end table | 558 | @end table |
| 598 | 559 | ||
| 599 | @noindent | 560 | @noindent |
| 600 | The usual way to set this variable is globally, through your | 561 | The usual way to set this variable is globally, through your init file |
| 601 | @file{.emacs} file or the customization buffer. However, you can set | 562 | or the customization buffer. However, you can set |
| 602 | @code{version-control} locally in an individual buffer to control the | 563 | @code{version-control} locally in an individual buffer to control the |
| 603 | making of backups for that buffer's file (@pxref{Locals}). You can | 564 | making of backups for that buffer's file (@pxref{Locals}). You can |
| 604 | have Emacs set @code{version-control} locally whenever you visit a | 565 | have Emacs set @code{version-control} locally whenever you visit a |
| @@ -679,34 +640,38 @@ and group. If copying is used, these do not change. If renaming is used, | |||
| 679 | you become the file's owner, and the file's group becomes the default | 640 | you become the file's owner, and the file's group becomes the default |
| 680 | (different operating systems have different defaults for the group). | 641 | (different operating systems have different defaults for the group). |
| 681 | 642 | ||
| 682 | Having the owner change is usually a good idea, because then the owner | ||
| 683 | always shows who last edited the file. Also, the owners of the backups | ||
| 684 | show who produced those versions. Occasionally there is a file whose | ||
| 685 | owner should not change; it is a good idea for such files to contain | ||
| 686 | local variable lists to set @code{backup-by-copying-when-mismatch} | ||
| 687 | locally (@pxref{File Variables}). | ||
| 688 | |||
| 689 | @vindex backup-by-copying | 643 | @vindex backup-by-copying |
| 690 | @vindex backup-by-copying-when-linked | 644 | @vindex backup-by-copying-when-linked |
| 691 | @vindex backup-by-copying-when-mismatch | 645 | @vindex backup-by-copying-when-mismatch |
| 692 | @vindex backup-by-copying-when-privileged-mismatch | 646 | @vindex backup-by-copying-when-privileged-mismatch |
| 693 | @cindex file ownership, and backup | 647 | @cindex file ownership, and backup |
| 694 | @cindex backup, and user-id | 648 | @cindex backup, and user-id |
| 695 | The choice of renaming or copying is controlled by four variables. | 649 | The choice of renaming or copying is made as follows: |
| 696 | Renaming is the default choice. If the variable | 650 | |
| 697 | @code{backup-by-copying} is non-@code{nil}, copying is used. Otherwise, | 651 | @itemize |
| 698 | if the variable @code{backup-by-copying-when-linked} is non-@code{nil}, | 652 | @item |
| 699 | then copying is used for files that have multiple names, but renaming | 653 | If the variable @code{backup-by-copying} is non-@code{nil} (the |
| 700 | may still be used when the file being edited has only one name. If the | 654 | default is @code{nil}), use copying. |
| 701 | variable @code{backup-by-copying-when-mismatch} is non-@code{nil}, then | 655 | |
| 702 | copying is used if renaming would cause the file's owner or group to | 656 | @item |
| 703 | change. @code{backup-by-copying-when-mismatch} is @code{t} by default | 657 | Otherwise, if the variable @code{backup-by-copying-when-linked} is |
| 704 | if you start Emacs as the superuser. The fourth variable, | 658 | non-@code{nil} (the default is @code{nil}), and the file has multiple |
| 705 | @code{backup-by-copying-when-privileged-mismatch}, gives the highest | 659 | names, use copying. |
| 706 | numeric user-id for which @code{backup-by-copying-when-mismatch} will be | 660 | |
| 707 | forced on. This is useful when low-numbered user-ids are assigned to | 661 | @item |
| 708 | special system users, such as @code{root}, @code{bin}, @code{daemon}, | 662 | Otherwise, if the variable @code{backup-by-copying-when-mismatch} is |
| 709 | etc., which must maintain ownership of files. | 663 | non-@code{nil} (the default is @code{t}), and renaming would change |
| 664 | the file's owner or group, use copying. | ||
| 665 | |||
| 666 | If you change @code{backup-by-copying-when-mismatch} to @code{nil}, | ||
| 667 | Emacs checks the numeric user-id of the file's owner. If this is | ||
| 668 | higher than @code{backup-by-copying-when-privileged-mismatch}, then it | ||
| 669 | behaves as though @code{backup-by-copying-when-mismatch} is | ||
| 670 | non-@code{nil} anyway. | ||
| 671 | |||
| 672 | @item | ||
| 673 | Otherwise, renaming is the default choice. | ||
| 674 | @end itemize | ||
| 710 | 675 | ||
| 711 | When a file is managed with a version control system (@pxref{Version | 676 | When a file is managed with a version control system (@pxref{Version |
| 712 | Control}), Emacs does not normally make backups in the usual way for | 677 | Control}), Emacs does not normally make backups in the usual way for |
| @@ -725,28 +690,28 @@ Emacs---the version control system does it. | |||
| 725 | if there isn't already one there. If the value is @code{visit}, Emacs | 690 | if there isn't already one there. If the value is @code{visit}, Emacs |
| 726 | adds a newline at the end of any file that doesn't have one, just | 691 | adds a newline at the end of any file that doesn't have one, just |
| 727 | after it visits the file. (This marks the buffer as modified, and you | 692 | after it visits the file. (This marks the buffer as modified, and you |
| 728 | can undo it.) If the value is @code{visit-save}, that means to add | 693 | can undo it.) If the value is @code{visit-save}, Emacs adds such |
| 729 | newlines both on visiting and on saving. If the value is @code{nil}, | 694 | newlines both on visiting and on saving. If the value is @code{nil}, |
| 730 | Emacs leaves the end of the file unchanged; if it's neither @code{nil} | 695 | Emacs leaves the end of the file unchanged; any other non-@code{nil} |
| 731 | nor @code{t}, Emacs asks you whether to add a newline. The default is | 696 | value means to asks you whether to add a newline. The default is |
| 732 | @code{nil}. | 697 | @code{nil}. |
| 733 | 698 | ||
| 734 | @vindex mode-require-final-newline | 699 | @vindex mode-require-final-newline |
| 735 | Many major modes are designed for specific kinds of files that are | 700 | Some major modes are designed for specific kinds of files that are |
| 736 | always supposed to end in newlines. These major modes set the | 701 | always supposed to end in newlines. Such major modes set the variable |
| 737 | variable @code{require-final-newline} according to | 702 | @code{require-final-newline} to the value of |
| 738 | @code{mode-require-final-newline}. By setting the latter variable, | 703 | @code{mode-require-final-newline}, which defaults to @code{t}. By |
| 739 | you can control how these modes handle final newlines. | 704 | setting the latter variable, you can control how these modes handle |
| 705 | final newlines. | ||
| 740 | 706 | ||
| 741 | @vindex write-region-inhibit-fsync | 707 | @vindex write-region-inhibit-fsync |
| 742 | When Emacs saves a file, it invokes the @code{fsync} system call to | 708 | When Emacs saves a file, it invokes the @code{fsync} system call to |
| 743 | force the data immediately out to disk. This is important for safety | 709 | force the data immediately out to disk. This is important for safety |
| 744 | if the system crashes or in case of power outage. However, it can be | 710 | if the system crashes or in case of power outage. However, it can be |
| 745 | disruptive on laptops using power saving, because it requires the disk | 711 | disruptive on laptops using power saving, as it may force a disk |
| 746 | to spin up each time you save a file. Setting | 712 | spin-up each time you save a file. If you accept an increased risk of |
| 747 | @code{write-region-inhibit-fsync} to a non-@code{nil} value disables | 713 | data loss, you can set @code{write-region-inhibit-fsync} to a |
| 748 | this synchronization. Be careful---this means increased risk of data | 714 | non-@code{nil} value to disable the synchronization. |
| 749 | loss. | ||
| 750 | 715 | ||
| 751 | @node Interlocking | 716 | @node Interlocking |
| 752 | @subsection Protection against Simultaneous Editing | 717 | @subsection Protection against Simultaneous Editing |
| @@ -754,9 +719,9 @@ loss. | |||
| 754 | @cindex file dates | 719 | @cindex file dates |
| 755 | @cindex simultaneous editing | 720 | @cindex simultaneous editing |
| 756 | Simultaneous editing occurs when two users visit the same file, both | 721 | Simultaneous editing occurs when two users visit the same file, both |
| 757 | make changes, and then both save them. If nobody were informed that | 722 | make changes, and then both save them. If nobody is informed that |
| 758 | this was happening, whichever user saved first would later find that his | 723 | this is happening, whichever user saves first would later find that |
| 759 | changes were lost. | 724 | his changes were lost. |
| 760 | 725 | ||
| 761 | On some systems, Emacs notices immediately when the second user starts | 726 | On some systems, Emacs notices immediately when the second user starts |
| 762 | to change the file, and issues an immediate warning. On all systems, | 727 | to change the file, and issues an immediate warning. On all systems, |
| @@ -794,38 +759,28 @@ contents remain unchanged---the modification you were trying to make | |||
| 794 | does not actually take place. | 759 | does not actually take place. |
| 795 | @end table | 760 | @end table |
| 796 | 761 | ||
| 797 | Note that locking works on the basis of a file name; if a file has | ||
| 798 | multiple names, Emacs does not realize that the two names are the same file | ||
| 799 | and cannot prevent two users from editing it simultaneously under different | ||
| 800 | names. However, basing locking on names means that Emacs can interlock the | ||
| 801 | editing of new files that will not really exist until they are saved. | ||
| 802 | |||
| 803 | Some systems are not configured to allow Emacs to make locks, and | ||
| 804 | there are cases where lock files cannot be written. In these cases, | ||
| 805 | Emacs cannot detect trouble in advance, but it still can detect the | ||
| 806 | collision when you try to save a file and overwrite someone else's | ||
| 807 | changes. Every time Emacs saves a buffer, it first checks the | ||
| 808 | last-modification date of the existing file on disk to verify that it | ||
| 809 | has not changed since the file was last visited or saved. If the date | ||
| 810 | does not match, it implies that changes were made in the file in some | ||
| 811 | other way, and these changes are about to be lost if Emacs actually | ||
| 812 | does save. To prevent this, Emacs displays a warning message and asks | ||
| 813 | for confirmation before saving. Occasionally you will know why the | ||
| 814 | file was changed and know that it does not matter; then you can answer | ||
| 815 | @kbd{yes} and proceed. Otherwise, you should cancel the save with | ||
| 816 | @kbd{C-g} and investigate the situation. | ||
| 817 | |||
| 818 | If Emacs or the operating system crashes, this may leave behind lock | 762 | If Emacs or the operating system crashes, this may leave behind lock |
| 819 | files which are stale, so you may occasionally get warnings about | 763 | files which are stale, so you may occasionally get warnings about |
| 820 | spurious collisions. When you determine that the collision is spurious, | 764 | spurious collisions. When you determine that the collision is |
| 821 | just use @kbd{p} to tell Emacs to go ahead anyway. | 765 | spurious, just use @kbd{p} to tell Emacs to go ahead anyway. |
| 822 | 766 | ||
| 823 | The first thing you should do when notified that simultaneous editing | 767 | Note that locking works on the basis of a file name; if a file has |
| 824 | has already taken place is to list the directory with @kbd{C-u C-x C-d} | 768 | multiple names, Emacs does not prevent two users from editing it |
| 825 | (@pxref{Directories}). This shows the file's current author. You | 769 | simultaneously under different names. |
| 826 | should attempt to contact him to warn him not to continue editing. | 770 | |
| 827 | Often the next step is to save the contents of your Emacs buffer under a | 771 | A lock file cannot be written in some circumstances, e.g. if Emacs |
| 828 | different name, and use @code{diff} to compare the two files.@refill | 772 | lacks the system permissions or the system does not support symbolic |
| 773 | links. In these cases, Emacs can still detect the collision when you | ||
| 774 | try to save a file, by checking the file's last-modification date. If | ||
| 775 | the file has changed since the last time Emacs visited or saved it, | ||
| 776 | that implies that changes have been made in some other way, and will | ||
| 777 | be lost if Emacs proceeds with saving. Emacs then displays a warning | ||
| 778 | message and asks for confirmation before saving; answer @kbd{yes} to | ||
| 779 | save, and @kbd{no} or @kbd{C-g} cancel the save. | ||
| 780 | |||
| 781 | If you are notified that simultaneous editing has already taken | ||
| 782 | place, one way to compare the buffer to its file is the @kbd{M-x | ||
| 783 | diff-buffer-with-file} command. @xref{Comparing Files}. | ||
| 829 | 784 | ||
| 830 | @node File Shadowing | 785 | @node File Shadowing |
| 831 | @subsection Shadowing Files | 786 | @subsection Shadowing Files |
| @@ -881,10 +836,10 @@ shadow-define-cluster}. | |||
| 881 | @cindex modification dates | 836 | @cindex modification dates |
| 882 | @cindex locale, date format | 837 | @cindex locale, date format |
| 883 | 838 | ||
| 884 | You can arrange to put a time stamp in a file, so that it will be updated | 839 | You can arrange to put a time stamp in a file, so that it is updated |
| 885 | automatically each time you edit and save the file. The time stamp | 840 | automatically each time you edit and save the file. The time stamp |
| 886 | has to be in the first eight lines of the file, and you should | 841 | must be in the first eight lines of the file, and you should insert it |
| 887 | insert it like this: | 842 | like this: |
| 888 | 843 | ||
| 889 | @example | 844 | @example |
| 890 | Time-stamp: <> | 845 | Time-stamp: <> |
| @@ -898,13 +853,13 @@ Time-stamp: " " | |||
| 898 | @end example | 853 | @end example |
| 899 | 854 | ||
| 900 | @findex time-stamp | 855 | @findex time-stamp |
| 901 | Then add the hook function @code{time-stamp} to the hook | 856 | Then add the function @code{time-stamp} to the hook |
| 902 | @code{before-save-hook}; that hook function will automatically update | 857 | @code{before-save-hook} (@pxref{Hooks}). When you save the file, this |
| 903 | the time stamp, inserting the current date and time when you save the | 858 | function then automatically updates the time stamp with the current |
| 904 | file. You can also use the command @kbd{M-x time-stamp} to update the | 859 | date and time. You can also use the command @kbd{M-x time-stamp} to |
| 905 | time stamp manually. For other customizations, see the Custom group | 860 | update the time stamp manually. For other customizations, see the |
| 906 | @code{time-stamp}. Note that non-numeric fields in the time stamp are | 861 | Custom group @code{time-stamp}. Note that the time stamp is formatted |
| 907 | formatted according to your locale setting (@pxref{Environment}). | 862 | according to your locale setting (@pxref{Environment}). |
| 908 | 863 | ||
| 909 | @node Reverting | 864 | @node Reverting |
| 910 | @section Reverting a Buffer | 865 | @section Reverting a Buffer |
| @@ -912,18 +867,21 @@ formatted according to your locale setting (@pxref{Environment}). | |||
| 912 | @cindex drastic changes | 867 | @cindex drastic changes |
| 913 | @cindex reread a file | 868 | @cindex reread a file |
| 914 | 869 | ||
| 915 | If you have made extensive changes to a file and then change your mind | 870 | If you have made extensive changes to a file-visiting buffer and |
| 916 | about them, you can get rid of them by reading in the previous version | 871 | then change your mind, you can @dfn{revert} the changes and go back to |
| 917 | of the file. To do this, use @kbd{M-x revert-buffer}, which operates on | 872 | the saved version of the file. To do this, type @kbd{M-x |
| 918 | the current buffer. Since reverting a buffer unintentionally could lose | 873 | revert-buffer}. Since reverting unintentionally could lose a lot of |
| 919 | a lot of work, you must confirm this command with @kbd{yes}. | 874 | work, Emacs asks for confirmation first. |
| 920 | 875 | ||
| 921 | @code{revert-buffer} tries to position point in such a way that, if | 876 | The @code{revert-buffer} command tries to position point in such a |
| 922 | the file was edited only slightly, you will be at approximately the | 877 | way that, if the file was edited only slightly, you will be at |
| 923 | same piece of text after reverting as before. However, if you have made | 878 | approximately the same part of the text as before. But if you have |
| 924 | drastic changes, point may wind up in a totally different piece of text. | 879 | made major changes, point may end up in a totally different location. |
| 925 | 880 | ||
| 926 | Reverting marks the buffer as ``not modified''. | 881 | Reverting marks the buffer as ``not modified''. It also clears the |
| 882 | buffer's undo history (@pxref{Undo}). Thus, the reversion cannot be | ||
| 883 | undone---if you change your mind yet again, you can't use the undo | ||
| 884 | commands to bring the reverted changes back. | ||
| 927 | 885 | ||
| 928 | Some kinds of buffers that are not associated with files, such as | 886 | Some kinds of buffers that are not associated with files, such as |
| 929 | Dired buffers, can also be reverted. For them, reverting means | 887 | Dired buffers, can also be reverted. For them, reverting means |
| @@ -950,15 +908,14 @@ discard your changes.) | |||
| 950 | @findex auto-revert-mode | 908 | @findex auto-revert-mode |
| 951 | @findex auto-revert-tail-mode | 909 | @findex auto-revert-tail-mode |
| 952 | @vindex auto-revert-interval | 910 | @vindex auto-revert-interval |
| 953 | 911 | You can also tell Emacs to revert buffers periodically. To do this | |
| 954 | In addition, you can tell Emacs to periodically revert a buffer by | 912 | for a specific buffer, enable the minor mode Auto-Revert mode by |
| 955 | typing @kbd{M-x auto-revert-mode}. This turns on Auto-Revert mode, a | 913 | typing @kbd{M-x auto-revert-mode}. This automatically reverts the |
| 956 | minor mode that makes Emacs automatically revert the current buffer | 914 | current buffer every five seconds; you can change the interval through |
| 957 | every five seconds. You can change this interval through the variable | 915 | the variable @code{auto-revert-interval}. To do the same for all file |
| 958 | @code{auto-revert-interval}. Typing @kbd{M-x global-auto-revert-mode} | 916 | buffers, type @kbd{M-x global-auto-revert-mode} to enable Global |
| 959 | enables Global Auto-Revert mode, which does the same for all file | 917 | Auto-Revert mode. These minor modes do not check or revert remote |
| 960 | buffers. Auto-Revert mode and Global Auto-Revert modes do not check | 918 | files, because that is usually too slow. |
| 961 | or revert remote files, because that is usually too slow. | ||
| 962 | 919 | ||
| 963 | One use of Auto-Revert mode is to ``tail'' a file such as a system | 920 | One use of Auto-Revert mode is to ``tail'' a file such as a system |
| 964 | log, so that changes made to that file by other programs are | 921 | log, so that changes made to that file by other programs are |
| @@ -969,8 +926,9 @@ the end, use Auto-Revert Tail mode instead | |||
| 969 | (@code{auto-revert-tail-mode}). It is more efficient for this. | 926 | (@code{auto-revert-tail-mode}). It is more efficient for this. |
| 970 | Auto-Revert Tail mode works also for remote files. | 927 | Auto-Revert Tail mode works also for remote files. |
| 971 | 928 | ||
| 972 | @xref{VC Mode Line}, for Auto Revert peculiarities in buffers that | 929 | @xref{VC Undo}, for commands to revert to earlier versions of files |
| 973 | visit files under version control. | 930 | under version control. @xref{VC Mode Line}, for Auto Revert |
| 931 | peculiarities when visiting files under version control. | ||
| 974 | 932 | ||
| 975 | @ifnottex | 933 | @ifnottex |
| 976 | @include arevert-xtra.texi | 934 | @include arevert-xtra.texi |
| @@ -1061,40 +1019,41 @@ any auto-save file to go with the new visited name. | |||
| 1061 | @vindex auto-save-default | 1019 | @vindex auto-save-default |
| 1062 | @findex auto-save-mode | 1020 | @findex auto-save-mode |
| 1063 | Each time you visit a file, auto-saving is turned on for that file's | 1021 | Each time you visit a file, auto-saving is turned on for that file's |
| 1064 | buffer if the variable @code{auto-save-default} is non-@code{nil} (but not | 1022 | buffer if the variable @code{auto-save-default} is non-@code{nil} (but |
| 1065 | in batch mode; @pxref{Entering Emacs}). The default for this variable is | 1023 | not in batch mode; @pxref{Initial Options}). The default for this |
| 1066 | @code{t}, so auto-saving is the usual practice for file-visiting buffers. | 1024 | variable is @code{t}, so auto-saving is the usual practice for |
| 1067 | Auto-saving can be turned on or off for any existing buffer with the | 1025 | file-visiting buffers. To toggle auto-saving in the current buffer, |
| 1068 | command @kbd{M-x auto-save-mode}. Like other minor mode commands, @kbd{M-x | 1026 | type @kbd{M-x auto-save-mode}. Auto Save mode acts as a buffer-local |
| 1069 | auto-save-mode} turns auto-saving on with a positive argument, off with a | 1027 | minor mode (@pxref{Minor Modes}). |
| 1070 | zero or negative argument; with no argument, it toggles. | ||
| 1071 | 1028 | ||
| 1072 | @vindex auto-save-interval | 1029 | @vindex auto-save-interval |
| 1073 | Emacs does auto-saving periodically based on counting how many characters | 1030 | Emacs auto-saves periodically based on how many characters you have |
| 1074 | you have typed since the last time auto-saving was done. The variable | 1031 | typed since the last auto-save. The variable |
| 1075 | @code{auto-save-interval} specifies how many characters there are between | 1032 | @code{auto-save-interval} specifies how many characters there are |
| 1076 | auto-saves. By default, it is 300. Emacs doesn't accept values that are | 1033 | between auto-saves. By default, it is 300. Emacs doesn't accept |
| 1077 | too small: if you customize @code{auto-save-interval} to a value less | 1034 | values that are too small: if you customize @code{auto-save-interval} |
| 1078 | than 20, Emacs will behave as if the value is 20. | 1035 | to a value less than 20, Emacs will behave as if the value is 20. |
| 1079 | 1036 | ||
| 1080 | @vindex auto-save-timeout | 1037 | @vindex auto-save-timeout |
| 1081 | Auto-saving also takes place when you stop typing for a while. The | 1038 | Auto-saving also takes place when you stop typing for a while. By |
| 1082 | variable @code{auto-save-timeout} says how many seconds Emacs should | 1039 | default, it does this after 30 seconds of idleness (at this time, |
| 1083 | wait before it does an auto save (and perhaps also a garbage | 1040 | Emacs may also perform garbage collection; @pxref{Garbage |
| 1084 | collection). (The actual time period is longer if the current buffer is | 1041 | Collection,,, elisp, The Emacs Lisp Reference Manual}). To change |
| 1085 | long; this is a heuristic which aims to keep out of your way when you | 1042 | this interval, customize the variable @code{auto-save-timeout}. The |
| 1086 | are editing long buffers, in which auto-save takes an appreciable amount | 1043 | actual time period is longer if the current buffer is long; this is a |
| 1087 | of time.) Auto-saving during idle periods accomplishes two things: | 1044 | heuristic which aims to keep out of your way when you are editing long |
| 1088 | first, it makes sure all your work is saved if you go away from the | 1045 | buffers, in which auto-save takes an appreciable amount of time. |
| 1089 | terminal for a while; second, it may avoid some auto-saving while you | 1046 | Auto-saving during idle periods accomplishes two things: first, it |
| 1090 | are actually typing. | 1047 | makes sure all your work is saved if you go away from the terminal for |
| 1048 | a while; second, it may avoid some auto-saving while you are actually | ||
| 1049 | typing. | ||
| 1091 | 1050 | ||
| 1092 | Emacs also does auto-saving whenever it gets a fatal error. This | 1051 | Emacs also does auto-saving whenever it gets a fatal error. This |
| 1093 | includes killing the Emacs job with a shell command such as @samp{kill | 1052 | includes killing the Emacs job with a shell command such as @samp{kill |
| 1094 | %emacs}, or disconnecting a phone line or network connection. | 1053 | %emacs}, or disconnecting a phone line or network connection. |
| 1095 | 1054 | ||
| 1096 | @findex do-auto-save | 1055 | @findex do-auto-save |
| 1097 | You can request an auto-save explicitly with the command @kbd{M-x | 1056 | You can perform an auto-save explicitly with the command @kbd{M-x |
| 1098 | do-auto-save}. | 1057 | do-auto-save}. |
| 1099 | 1058 | ||
| 1100 | @node Recover | 1059 | @node Recover |
| @@ -1138,13 +1097,11 @@ this---saving them---updates the files themselves. | |||
| 1138 | 1097 | ||
| 1139 | @vindex auto-save-list-file-prefix | 1098 | @vindex auto-save-list-file-prefix |
| 1140 | Emacs records information about interrupted sessions for later | 1099 | Emacs records information about interrupted sessions for later |
| 1141 | recovery in files named | 1100 | recovery in files named @file{.saves-@var{pid}-@var{hostname}} in the |
| 1142 | @file{~/.emacs.d/auto-save-list/.saves-@var{pid}-@var{hostname}}. The | 1101 | directory @file{~/.emacs.d/auto-save-list/}. This directory is |
| 1143 | directory used, @file{~/.emacs.d/auto-save-list/}, is determined by | 1102 | determined by the variable @code{auto-save-list-file-prefix}. If you |
| 1144 | the variable @code{auto-save-list-file-prefix}. You can record | 1103 | set @code{auto-save-list-file-prefix} to @code{nil}, sessions are not |
| 1145 | sessions in a different place by customizing that variable. If you | 1104 | recorded for recovery. |
| 1146 | set @code{auto-save-list-file-prefix} to @code{nil} in your | ||
| 1147 | @file{.emacs} file, sessions are not recorded for recovery. | ||
| 1148 | 1105 | ||
| 1149 | @node File Aliases | 1106 | @node File Aliases |
| 1150 | @section File Name Aliases | 1107 | @section File Name Aliases |
| @@ -1292,8 +1249,8 @@ buffer named @samp{*diff*}. This works by running the @command{diff} | |||
| 1292 | program, using options taken from the variable @code{diff-switches}. | 1249 | program, using options taken from the variable @code{diff-switches}. |
| 1293 | The value of @code{diff-switches} should be a string; the default is | 1250 | The value of @code{diff-switches} should be a string; the default is |
| 1294 | @code{"-c"} to specify a context diff. @xref{Top,, Diff, diff, | 1251 | @code{"-c"} to specify a context diff. @xref{Top,, Diff, diff, |
| 1295 | Comparing and Merging Files}, for more information about | 1252 | Comparing and Merging Files}, for more information about the |
| 1296 | @command{diff} output formats. | 1253 | @command{diff} program. |
| 1297 | 1254 | ||
| 1298 | The output of the @code{diff} command is shown using a major mode | 1255 | The output of the @code{diff} command is shown using a major mode |
| 1299 | called Diff mode. @xref{Diff Mode}. | 1256 | called Diff mode. @xref{Diff Mode}. |
| @@ -1361,11 +1318,10 @@ merging files. | |||
| 1361 | @cindex patches, editing | 1318 | @cindex patches, editing |
| 1362 | 1319 | ||
| 1363 | Diff mode is a major mode used for the output of @kbd{M-x diff} and | 1320 | Diff mode is a major mode used for the output of @kbd{M-x diff} and |
| 1364 | other similar commands, as well as the output of the @command{diff} | 1321 | other similar commands. This kind of output is called a @dfn{patch}, |
| 1365 | program. This kind of output is called a @dfn{patch}, because it can | 1322 | because it can be passed to the @command{patch} command to |
| 1366 | be passed to the @command{patch} command to automatically apply the | 1323 | automatically apply the specified changes. To select Diff mode |
| 1367 | specified changes. To select Diff mode manually, type @kbd{M-x | 1324 | manually, type @kbd{M-x diff-mode}. |
| 1368 | diff-mode}. | ||
| 1369 | 1325 | ||
| 1370 | @cindex hunk, diff | 1326 | @cindex hunk, diff |
| 1371 | The changes specified in a patch are grouped into @dfn{hunks}, which | 1327 | The changes specified in a patch are grouped into @dfn{hunks}, which |
| @@ -1659,21 +1615,18 @@ Tar mode is used also for compressed archives---files with extensions | |||
| 1659 | The keys @kbd{e}, @kbd{f} and @key{RET} all extract a component file | 1615 | The keys @kbd{e}, @kbd{f} and @key{RET} all extract a component file |
| 1660 | into its own buffer. You can edit it there, and if you save the | 1616 | into its own buffer. You can edit it there, and if you save the |
| 1661 | buffer, the edited version will replace the version in the Tar buffer. | 1617 | buffer, the edited version will replace the version in the Tar buffer. |
| 1662 | @kbd{v} extracts a file into a buffer in View mode (@pxref{View | 1618 | Clicking with the mouse on the file name in the Tar buffer does |
| 1663 | Mode}). @kbd{o} extracts the file and displays it in another window, | 1619 | likewise. @kbd{v} extracts a file into a buffer in View mode |
| 1664 | so you could edit the file and operate on the archive simultaneously. | 1620 | (@pxref{View Mode}). @kbd{o} extracts the file and displays it in |
| 1665 | @kbd{d} marks a file for deletion when you later use @kbd{x}, and | 1621 | another window, so you could edit the file and operate on the archive |
| 1622 | simultaneously. | ||
| 1623 | |||
| 1624 | @kbd{d} marks a file for deletion when you later use @kbd{x}, and | ||
| 1666 | @kbd{u} unmarks a file, as in Dired. @kbd{C} copies a file from the | 1625 | @kbd{u} unmarks a file, as in Dired. @kbd{C} copies a file from the |
| 1667 | archive to disk and @kbd{R} renames a file within the archive. | 1626 | archive to disk and @kbd{R} renames a file within the archive. |
| 1668 | @kbd{g} reverts the buffer from the archive on disk. | 1627 | @kbd{g} reverts the buffer from the archive on disk. The keys |
| 1669 | 1628 | @kbd{M}, @kbd{G}, and @kbd{O} change the file's permission bits, | |
| 1670 | The keys @kbd{M}, @kbd{G}, and @kbd{O} change the file's permission | 1629 | group, and owner, respectively. |
| 1671 | bits, group, and owner, respectively. | ||
| 1672 | |||
| 1673 | If your display supports colors and the mouse, moving the mouse | ||
| 1674 | pointer across a file name highlights that file name, indicating that | ||
| 1675 | you can click on it. Clicking @kbd{Mouse-2} on the highlighted file | ||
| 1676 | name extracts the file into a buffer and displays that buffer. | ||
| 1677 | 1630 | ||
| 1678 | Saving the Tar buffer writes a new version of the archive to disk with | 1631 | Saving the Tar buffer writes a new version of the archive to disk with |
| 1679 | the changes you made to the components. | 1632 | the changes you made to the components. |
| @@ -1690,19 +1643,20 @@ requires the appropriate uncompression program. | |||
| 1690 | @cindex @code{zip} | 1643 | @cindex @code{zip} |
| 1691 | @cindex @code{lzh} | 1644 | @cindex @code{lzh} |
| 1692 | @cindex @code{zoo} | 1645 | @cindex @code{zoo} |
| 1646 | @cindex @code{7z} | ||
| 1693 | @pindex arc | 1647 | @pindex arc |
| 1694 | @pindex jar | 1648 | @pindex jar |
| 1695 | @pindex zip | 1649 | @pindex zip |
| 1696 | @pindex rar | 1650 | @pindex rar |
| 1697 | @pindex lzh | 1651 | @pindex lzh |
| 1698 | @pindex zoo | 1652 | @pindex zoo |
| 1653 | @pindex 7z | ||
| 1699 | @cindex Java class archives | 1654 | @cindex Java class archives |
| 1700 | @cindex unzip archives | 1655 | @cindex unzip archives |
| 1701 | A separate but similar Archive mode is used for archives produced by | 1656 | A separate but similar Archive mode is used for @code{arc}, |
| 1702 | the programs @code{arc}, @code{jar}, @code{lzh}, @code{zip}, | 1657 | @code{jar}, @code{lzh}, @code{zip}, @code{rar}, @code{7z}, and |
| 1703 | @code{rar}, and @code{zoo}, which have extensions corresponding to the | 1658 | @code{zoo} archives, as well as @code{exe} files that are |
| 1704 | program names. Archive mode also works for those @code{exe} files | 1659 | self-extracting executables. |
| 1705 | that are self-extracting executables. | ||
| 1706 | 1660 | ||
| 1707 | The key bindings of Archive mode are similar to those in Tar mode, | 1661 | The key bindings of Archive mode are similar to those in Tar mode, |
| 1708 | with the addition of the @kbd{m} key which marks a file for subsequent | 1662 | with the addition of the @kbd{m} key which marks a file for subsequent |
| @@ -1712,11 +1666,11 @@ information, for those archive types where it won't fit in a single | |||
| 1712 | line. Operations such as renaming a subfile, or changing its mode or | 1666 | line. Operations such as renaming a subfile, or changing its mode or |
| 1713 | owner, are supported only for some of the archive formats. | 1667 | owner, are supported only for some of the archive formats. |
| 1714 | 1668 | ||
| 1715 | Unlike Tar mode, Archive mode runs the archiving program to unpack | 1669 | Unlike Tar mode, Archive mode runs the archiving programs to unpack |
| 1716 | and repack archives. Details of the program names and their options | 1670 | and repack archives. However, you don't need these programs to look |
| 1717 | can be set in the @samp{Archive} Customize group. However, you don't | 1671 | at the archive table of contents, only to extract or manipulate the |
| 1718 | need these programs to look at the archive table of contents, only to | 1672 | subfiles in the archive. Details of the program names and their |
| 1719 | extract or manipulate the subfiles in the archive. | 1673 | options can be set in the @samp{Archive} Customize group. |
| 1720 | 1674 | ||
| 1721 | @node Remote Files | 1675 | @node Remote Files |
| 1722 | @section Remote Files | 1676 | @section Remote Files |
| @@ -1748,16 +1702,14 @@ Emacs chooses the method as follows: | |||
| 1748 | 1702 | ||
| 1749 | @enumerate | 1703 | @enumerate |
| 1750 | @item | 1704 | @item |
| 1751 | If the host name starts with @samp{ftp.} (with dot), then Emacs uses | 1705 | If the host name starts with @samp{ftp.} (with dot), Emacs uses FTP. |
| 1752 | FTP. | ||
| 1753 | @item | 1706 | @item |
| 1754 | If the user name is @samp{ftp} or @samp{anonymous}, then Emacs uses | 1707 | If the user name is @samp{ftp} or @samp{anonymous}, Emacs uses FTP. |
| 1755 | FTP. | ||
| 1756 | @item | 1708 | @item |
| 1757 | If the variable @code{tramp-default-method} is set to @samp{ftp}, | 1709 | If the variable @code{tramp-default-method} is set to @samp{ftp}, |
| 1758 | then Emacs uses FTP. | 1710 | Emacs uses FTP. |
| 1759 | @item | 1711 | @item |
| 1760 | If @command{ssh-agent} is running, then Emacs uses @command{scp}. | 1712 | If @command{ssh-agent} is running, Emacs uses @command{scp}. |
| 1761 | @item | 1713 | @item |
| 1762 | Otherwise, Emacs uses @command{ssh}. | 1714 | Otherwise, Emacs uses @command{ssh}. |
| 1763 | @end enumerate | 1715 | @end enumerate |
| @@ -1769,32 +1721,31 @@ variable @code{tramp-mode} to @code{nil}. You can turn off the | |||
| 1769 | feature in individual cases by quoting the file name with @samp{/:} | 1721 | feature in individual cases by quoting the file name with @samp{/:} |
| 1770 | (@pxref{Quoted File Names}). | 1722 | (@pxref{Quoted File Names}). |
| 1771 | 1723 | ||
| 1724 | @cindex ange-ftp | ||
| 1772 | Remote file access through FTP is handled by the Ange-FTP package, which | 1725 | Remote file access through FTP is handled by the Ange-FTP package, which |
| 1773 | is documented in the following. Remote file access through the other | 1726 | is documented in the following. Remote file access through the other |
| 1774 | methods is handled by the Tramp package, which has its own manual. | 1727 | methods is handled by the Tramp package, which has its own manual. |
| 1775 | @xref{Top, The Tramp Manual,, tramp, The Tramp Manual}. | 1728 | @xref{Top, The Tramp Manual,, tramp, The Tramp Manual}. |
| 1776 | 1729 | ||
| 1777 | When the Ange-FTP package is used, Emacs logs in through FTP using | 1730 | @vindex ange-ftp-default-user |
| 1778 | your user name or the name @var{user}. It may ask you for a password | 1731 | @cindex user name for remote file access |
| 1779 | from time to time (@pxref{Passwords}); this is used for logging in on | 1732 | When the Ange-FTP package is used, Emacs logs in through FTP using |
| 1780 | @var{host}. The form using @var{port} allows you to access servers | 1733 | the name @var{user}, if that is specified in the remote file name. If |
| 1781 | running on a non-default TCP port. | 1734 | @var{user} is unspecified, Emacs logs in using your user name on the |
| 1735 | local system; but if you set the variable @code{ange-ftp-default-user} | ||
| 1736 | to a string, that string is used instead. When logging in, Emacs may | ||
| 1737 | also ask for a password. | ||
| 1782 | 1738 | ||
| 1783 | @cindex backups for remote files | 1739 | @cindex backups for remote files |
| 1784 | @vindex ange-ftp-make-backup-files | 1740 | @vindex ange-ftp-make-backup-files |
| 1785 | If you want to disable backups for remote files, set the variable | 1741 | For performance reasons, Emacs does not make backup files for files |
| 1786 | @code{ange-ftp-make-backup-files} to @code{nil}. | 1742 | accessed via FTP by default. To make it do so, change the variable |
| 1743 | @code{ange-ftp-make-backup-files} to a non-@code{nil} value. | ||
| 1787 | 1744 | ||
| 1788 | By default, the auto-save files (@pxref{Auto Save Files}) for remote | 1745 | By default, auto-save files for remote files are made in the |
| 1789 | files are made in the temporary file directory on the local machine. | 1746 | temporary file directory on the local machine, as specified by the |
| 1790 | This is achieved using the variable @code{auto-save-file-name-transforms}. | 1747 | variable @code{auto-save-file-name-transforms}. @xref{Auto Save |
| 1791 | 1748 | Files}. | |
| 1792 | @cindex ange-ftp | ||
| 1793 | @vindex ange-ftp-default-user | ||
| 1794 | @cindex user name for remote file access | ||
| 1795 | Normally, if you do not specify a user name in a remote file name, | ||
| 1796 | that means to use your own user name. But if you set the variable | ||
| 1797 | @code{ange-ftp-default-user} to a string, that string is used instead. | ||
| 1798 | 1749 | ||
| 1799 | @cindex anonymous FTP | 1750 | @cindex anonymous FTP |
| 1800 | @vindex ange-ftp-generate-anonymous-password | 1751 | @vindex ange-ftp-generate-anonymous-password |
| @@ -1950,10 +1901,10 @@ images as thumbnails. | |||
| 1950 | @findex filesets-init | 1901 | @findex filesets-init |
| 1951 | If you regularly edit a certain group of files, you can define them | 1902 | If you regularly edit a certain group of files, you can define them |
| 1952 | as a @dfn{fileset}. This lets you perform certain operations, such as | 1903 | as a @dfn{fileset}. This lets you perform certain operations, such as |
| 1953 | visiting, @code{query-replace}, and shell commands on all the files | 1904 | visiting, @code{query-replace}, and shell commands on all the files at |
| 1954 | at once. To make use of filesets, you must first add the expression | 1905 | once. To make use of filesets, you must first add the expression |
| 1955 | @code{(filesets-init)} to your @file{.emacs} file (@pxref{Init File}). | 1906 | @code{(filesets-init)} to your init file (@pxref{Init File}). This |
| 1956 | This adds a @samp{Filesets} menu to the menu bar. | 1907 | adds a @samp{Filesets} menu to the menu bar. |
| 1957 | 1908 | ||
| 1958 | @findex filesets-add-buffer | 1909 | @findex filesets-add-buffer |
| 1959 | @findex filesets-remove-buffer | 1910 | @findex filesets-remove-buffer |
| @@ -1980,7 +1931,7 @@ files in a fileset, and @kbd{M-x filesets-close} to close them. Use | |||
| 1980 | a fileset. These commands are also available from the @samp{Filesets} | 1931 | a fileset. These commands are also available from the @samp{Filesets} |
| 1981 | menu, where each existing fileset is represented by a submenu. | 1932 | menu, where each existing fileset is represented by a submenu. |
| 1982 | 1933 | ||
| 1983 | Emacs uses the concept of a fileset elsewhere @pxref{Version | 1934 | @xref{Version Control}, for a different concept of ``filesets'': |
| 1984 | Control} to describe sets of files to be treated as a group for | 1935 | groups of files bundled together for version control operations. |
| 1985 | purposes of version control operations. Those filesets are unnamed | 1936 | Filesets of that type are unnamed, and do not persist across Emacs |
| 1986 | and do not persist across Emacs sessions. | 1937 | sessions. |
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi index 7a605100796..bae78d94744 100644 --- a/doc/emacs/fixit.texi +++ b/doc/emacs/fixit.texi | |||
| @@ -7,17 +7,14 @@ | |||
| 7 | @cindex typos, fixing | 7 | @cindex typos, fixing |
| 8 | @cindex mistakes, correcting | 8 | @cindex mistakes, correcting |
| 9 | 9 | ||
| 10 | In this chapter we describe the commands that are especially useful | 10 | In this chapter we describe commands that are useful when you catch |
| 11 | when you catch a mistake in your text after you have made it, or | 11 | a mistake while editing. The most fundamental command for correcting |
| 12 | change your mind while composing text on the fly. | 12 | erroneous editing is the undo command @kbd{C-/} (which is also bound |
| 13 | 13 | to @kbd{C-x u} and @kbd{C-_}). This undoes a single command, or a | |
| 14 | The most fundamental command for correcting erroneous editing is the | 14 | part of a command (as in the case of @code{query-replace}), or several |
| 15 | undo command @kbd{C-/} (which is also bound to @kbd{C-x u} and | 15 | consecutive character insertions. Consecutive repetitions of |
| 16 | @kbd{C-_}). This undoes a single command, or a part of a command (as | 16 | @kbd{C-/} undo earlier and earlier changes, back to the limit of the |
| 17 | in the case of @code{query-replace}), or several consecutive | 17 | undo information available. |
| 18 | self-inserting characters. Consecutive repetitions of @kbd{C-/} undo | ||
| 19 | earlier and earlier changes, back to the limit of the undo information | ||
| 20 | available. | ||
| 21 | 18 | ||
| 22 | Aside from the commands described here, you can erase text using | 19 | Aside from the commands described here, you can erase text using |
| 23 | deletion commands such as @key{DEL} (@code{delete-backward-char}). | 20 | deletion commands such as @key{DEL} (@code{delete-backward-char}). |
| @@ -231,18 +228,19 @@ case-convert it and go on typing. @xref{Case}.@refill | |||
| 231 | This section describes the commands to check the spelling of a | 228 | This section describes the commands to check the spelling of a |
| 232 | single word or of a portion of a buffer. These commands only work if | 229 | single word or of a portion of a buffer. These commands only work if |
| 233 | the spelling checker program Aspell, Ispell or Hunspell is installed. | 230 | the spelling checker program Aspell, Ispell or Hunspell is installed. |
| 234 | Aspell, Ispell or Hunspell are not part of Emacs, but one or the other | 231 | These programs are not part of Emacs, but one of them is usually |
| 235 | is usually installed in GNU/Linux and other free operating systems. | 232 | installed in GNU/Linux and other free operating systems. |
| 236 | @ifnottex | 233 | @ifnottex |
| 237 | @xref{Top, Aspell,, aspell, The Aspell Manual}. | 234 | @xref{Top, Aspell,, aspell, The Aspell Manual}. |
| 238 | @end ifnottex | 235 | @end ifnottex |
| 239 | 236 | ||
| 240 | @table @kbd | 237 | @table @kbd |
| 241 | @item M-$ | 238 | @item M-$ |
| 242 | Check and correct spelling of the active region or the word at point | 239 | Check and correct spelling of the word at point (@code{ispell-word}). |
| 243 | (@code{ispell-word}). | 240 | If the region is active, do it for all words in the region instead. |
| 244 | @item M-x ispell | 241 | @item M-x ispell |
| 245 | Check and correct spelling in the active region or the entire buffer. | 242 | Check and correct spelling of all words in the buffer. If the region |
| 243 | is active, do it for all words in the region instead. | ||
| 246 | @item M-x ispell-buffer | 244 | @item M-x ispell-buffer |
| 247 | Check and correct spelling in the buffer. | 245 | Check and correct spelling in the buffer. |
| 248 | @item M-x ispell-region | 246 | @item M-x ispell-region |
| @@ -355,14 +353,13 @@ Show the list of options. | |||
| 355 | @end table | 353 | @end table |
| 356 | 354 | ||
| 357 | @findex ispell-complete-word | 355 | @findex ispell-complete-word |
| 358 | In Text mode and related modes, the command @kbd{M-@key{TAB}} | 356 | In Text mode and related modes, @kbd{M-@key{TAB}} |
| 359 | (@code{ispell-complete-word}) shows a list of completions based on | 357 | (@code{ispell-complete-word}) performs in-buffer completion based on |
| 360 | spelling correction. Insert the beginning of a word, and then type | 358 | spelling correction. Insert the beginning of a word, and then type |
| 361 | @kbd{M-@key{TAB}}; the command displays a completion list window. (If | 359 | @kbd{M-@key{TAB}}; this shows shows a list of completions. (If your |
| 362 | your window manager intercepts @kbd{M-@key{TAB}}, type @kbd{@key{ESC} | 360 | window manager intercepts @kbd{M-@key{TAB}}, type @kbd{@key{ESC} |
| 363 | @key{TAB}} or @kbd{C-M-i}.) To choose one of the completions listed, | 361 | @key{TAB}} or @kbd{C-M-i}.) Each completion is listed with a digit or |
| 364 | click @kbd{Mouse-2} or @kbd{Mouse-1} fast on it, or move the cursor | 362 | character; type that digit or character to choose it. |
| 365 | there in the completions window and type @key{RET}. @xref{Text Mode}. | ||
| 366 | 363 | ||
| 367 | @cindex @code{ispell} program | 364 | @cindex @code{ispell} program |
| 368 | @findex ispell-kill-ispell | 365 | @findex ispell-kill-ispell |
| @@ -370,29 +367,27 @@ there in the completions window and type @key{RET}. @xref{Text Mode}. | |||
| 370 | to run, waiting for something to do, so that subsequent spell checking | 367 | to run, waiting for something to do, so that subsequent spell checking |
| 371 | commands complete more quickly. If you want to get rid of the | 368 | commands complete more quickly. If you want to get rid of the |
| 372 | process, use @kbd{M-x ispell-kill-ispell}. This is not usually | 369 | process, use @kbd{M-x ispell-kill-ispell}. This is not usually |
| 373 | necessary, since the process uses no time except when you do spelling | 370 | necessary, since the process uses no processor time except when you do |
| 374 | correction. | 371 | spelling correction. |
| 375 | 372 | ||
| 376 | @vindex ispell-dictionary | 373 | @vindex ispell-dictionary |
| 377 | @vindex ispell-local-dictionary | 374 | @vindex ispell-local-dictionary |
| 378 | @vindex ispell-personal-dictionary | 375 | @vindex ispell-personal-dictionary |
| 379 | @vindex ispell-complete-word-dict | 376 | @findex ispell-change-dictionary |
| 380 | Ispell, Aspell and Hunspell use two dictionaries together for spell checking: | 377 | Ispell, Aspell and Hunspell look up spelling in two dictionaries: |
| 381 | the standard dictionary and your private dictionary. The standard | 378 | the standard dictionary and your personal dictionary. The standard |
| 382 | dictionary is specified by @code{ispell-local-dictionary} or, | 379 | dictionary is specified by the variable @code{ispell-local-dictionary} |
| 383 | if @code{nil}, by @code{ispell-dictionary}. If both are @code{nil} | 380 | or, if that is @code{nil}, by the variable @code{ispell-dictionary}. |
| 384 | the default dictionary is selected. The command | 381 | If both are @code{nil}, the spelling program's default dictionary is |
| 385 | @kbd{M-x ispell-change-dictionary} sets the standard dictionary for | 382 | used. The command @kbd{M-x ispell-change-dictionary} sets the |
| 386 | the buffer and then restarts the subprocess, so that it will use a | 383 | standard dictionary for the buffer and then restarts the subprocess, |
| 387 | different standard dictionary. Personal dictionary is specified by | 384 | so that it will use a different standard dictionary. Your personal |
| 388 | @code{ispell-personal-dictionary}. If @code{nil}, default value is | 385 | dictionary is specified by the variable |
| 389 | used. | 386 | @code{ispell-personal-dictionary}. If that is @code{nil}, the |
| 390 | 387 | spelling program looks for a personal dictionary in a default | |
| 391 | Set variable @code{ispell-dictionary} to select a specific default | 388 | location. |
| 392 | dictionary for all your documents. Set variable | ||
| 393 | @code{ispell-local-dictionary} in the local variables section to | ||
| 394 | select a specific dictionary for a given document. | ||
| 395 | 389 | ||
| 390 | @vindex ispell-complete-word-dict | ||
| 396 | A separate dictionary is used for word completion. The variable | 391 | A separate dictionary is used for word completion. The variable |
| 397 | @code{ispell-complete-word-dict} specifies the file name of this | 392 | @code{ispell-complete-word-dict} specifies the file name of this |
| 398 | dictionary. The completion dictionary must be different because it | 393 | dictionary. The completion dictionary must be different because it |
| @@ -400,16 +395,14 @@ cannot use root and affix information. For some languages, there | |||
| 400 | is a spell checking dictionary but no word completion dictionary. | 395 | is a spell checking dictionary but no word completion dictionary. |
| 401 | 396 | ||
| 402 | @cindex Flyspell mode | 397 | @cindex Flyspell mode |
| 398 | @cindex mode, Flyspell | ||
| 403 | @findex flyspell-mode | 399 | @findex flyspell-mode |
| 404 | @findex turn-on-flyspell | 400 | Flyspell mode is a minor mode that performs automatic spell checking |
| 405 | Flyspell mode is a fully-automatic way to check spelling as you edit | 401 | as you type. When it finds a word that it does not recognize, it |
| 406 | in Emacs. It operates by checking words as you change or insert them. | 402 | highlights that word. Type @kbd{M-x flyspell-mode} to toggle Flyspell |
| 407 | When it finds a word that it does not recognize, it highlights that | 403 | mode in the current buffer. To enable Flyspell mode in all text mode |
| 408 | word. This does not interfere with your editing, but when you see the | 404 | buffers, add @code{flyspell-mode} to @code{text-mode-hook}. |
| 409 | highlighted word, you can move to it and fix it. Type @kbd{M-x | 405 | @xref{Hooks}. |
| 410 | flyspell-mode} to enable or disable this mode in the current buffer. | ||
| 411 | To enable Flyspell mode in all text mode buffers, add | ||
| 412 | @code{turn-on-flyspell} to @code{text-mode-hook}. | ||
| 413 | 406 | ||
| 414 | When Flyspell mode highlights a word as misspelled, you can click on | 407 | When Flyspell mode highlights a word as misspelled, you can click on |
| 415 | it with @kbd{Mouse-2} to display a menu of possible corrections and | 408 | it with @kbd{Mouse-2} to display a menu of possible corrections and |
diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi index ee417624120..e5853a17dd0 100644 --- a/doc/emacs/fortran-xtra.texi +++ b/doc/emacs/fortran-xtra.texi | |||
| @@ -479,7 +479,7 @@ variable @code{fortran-break-before-delimiters} is @code{nil}. | |||
| 479 | Otherwise (and by default), the break comes before the delimiter. | 479 | Otherwise (and by default), the break comes before the delimiter. |
| 480 | 480 | ||
| 481 | To enable Auto Fill in all Fortran buffers, add | 481 | To enable Auto Fill in all Fortran buffers, add |
| 482 | @code{turn-on-auto-fill} to @code{fortran-mode-hook}. | 482 | @code{auto-fill-mode} to @code{fortran-mode-hook}. |
| 483 | @iftex | 483 | @iftex |
| 484 | @xref{Hooks,,, emacs, the Emacs Manual}. | 484 | @xref{Hooks,,, emacs, the Emacs Manual}. |
| 485 | @end iftex | 485 | @end iftex |
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index 14fdb3121a4..4c239d364f0 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi | |||
| @@ -299,7 +299,7 @@ you can access them without having to display the menu bar. | |||
| 299 | 299 | ||
| 300 | @item S-Mouse-1 | 300 | @item S-Mouse-1 |
| 301 | This menu is for changing the default face within the window's buffer. | 301 | This menu is for changing the default face within the window's buffer. |
| 302 | @xref{Temporary Face Changes}. | 302 | @xref{Text Scale}. |
| 303 | @end table | 303 | @end table |
| 304 | 304 | ||
| 305 | @node Mode Line Mouse | 305 | @node Mode Line Mouse |
| @@ -1185,6 +1185,13 @@ options for displaying tooltips, use @kbd{M-x customize-group | |||
| 1185 | @key{RET} tooltip @key{RET}}. @xref{X Resources}, for information on | 1185 | @key{RET} tooltip @key{RET}}. @xref{X Resources}, for information on |
| 1186 | customizing the windows that display tooltips. | 1186 | customizing the windows that display tooltips. |
| 1187 | 1187 | ||
| 1188 | @vindex x-gtk-use-system-tooltips | ||
| 1189 | If Emacs is built with GTK support, it displays tooltips via GTK, | ||
| 1190 | using the default appearance of GTK tooltips. To disable this, change | ||
| 1191 | the variable @code{x-gtk-use-system-tooltips} to @code{nil}. If you | ||
| 1192 | do this, or if Emacs is built without GTK support, the @code{tooltip} | ||
| 1193 | face specifies most attributes of the tooltip text. | ||
| 1194 | |||
| 1188 | @node Mouse Avoidance | 1195 | @node Mouse Avoidance |
| 1189 | @section Mouse Avoidance | 1196 | @section Mouse Avoidance |
| 1190 | @cindex avoiding mouse in the way of your typing | 1197 | @cindex avoiding mouse in the way of your typing |
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index a85edf101e5..c024d428511 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi | |||
| @@ -70,7 +70,7 @@ meanings for it, but they all support @key{F1} for help.) | |||
| 70 | * Package Keywords:: Finding Lisp libraries by keywords (topics). | 70 | * Package Keywords:: Finding Lisp libraries by keywords (topics). |
| 71 | * Language Help:: Help relating to international language support. | 71 | * Language Help:: Help relating to international language support. |
| 72 | * Misc Help:: Other help commands. | 72 | * Misc Help:: Other help commands. |
| 73 | * Help Files:: Commands to display auxilliary help files. | 73 | * Help Files:: Commands to display auxiliary help files. |
| 74 | * Help Echo:: Help on active text and tooltips (`balloon help'). | 74 | * Help Echo:: Help on active text and tooltips (`balloon help'). |
| 75 | @end menu | 75 | @end menu |
| 76 | 76 | ||
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi index 8689e9c8324..6237b00c2ee 100644 --- a/doc/emacs/killing.texi +++ b/doc/emacs/killing.texi | |||
| @@ -736,7 +736,7 @@ insert rectangles, and commands to make blank rectangles. | |||
| 736 | k} (@code{kill-rectangle}) to remove the text and and save it as the | 736 | k} (@code{kill-rectangle}) to remove the text and and save it as the |
| 737 | @dfn{last killed rectangle}. In both cases, erasing the | 737 | @dfn{last killed rectangle}. In both cases, erasing the |
| 738 | region-rectangle is like erasing the specified text on each line of | 738 | region-rectangle is like erasing the specified text on each line of |
| 739 | the rectange; if there is any following text on the line, it moves | 739 | the rectangle; if there is any following text on the line, it moves |
| 740 | backwards to fill the gap. | 740 | backwards to fill the gap. |
| 741 | 741 | ||
| 742 | ``Killing'' a rectangle is not killing in the usual sense; the | 742 | ``Killing'' a rectangle is not killing in the usual sense; the |
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi index 85d92c9fcd7..f4a5a2858cf 100644 --- a/doc/emacs/macos.texi +++ b/doc/emacs/macos.texi | |||
| @@ -54,12 +54,12 @@ to change the foreground color of the face at that position (if the | |||
| 54 | instead). To discard the settings, create a new frame and close the | 54 | instead). To discard the settings, create a new frame and close the |
| 55 | altered one. | 55 | altered one. |
| 56 | 56 | ||
| 57 | @key{S-Mouse-1} (i.e., clicking the left mouse button | 57 | @key{S-Mouse-1} (i.e., clicking the left mouse button while holding |
| 58 | while holding down the @key{Shift} key) adjusts the region to the | 58 | down the @key{Shift} key) adjusts the region to the click position, |
| 59 | click position, just like @key{Mouse-3} (@code{mouse-save-then-kill}); | 59 | just like @key{Mouse-3} (@code{mouse-save-then-kill}); it does not pop |
| 60 | it does not pop up a menu for changing the default face, as | 60 | up a menu for changing the default face, as @key{S-Mouse-1} normally |
| 61 | @key{S-Mouse-1} normally does (@pxref{Temporary Face Changes}). This | 61 | does (@pxref{Text Scale}). This change makes Emacs behave more like |
| 62 | change makes Emacs behave more like other Mac / GNUstep applications. | 62 | other Mac / GNUstep applications. |
| 63 | 63 | ||
| 64 | When you open or save files using the menus, or using the | 64 | When you open or save files using the menus, or using the |
| 65 | @key{Cmd-o} and @key{Cmd-S} bindings, Emacs uses graphical file | 65 | @key{Cmd-o} and @key{Cmd-S} bindings, Emacs uses graphical file |
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index dafc9327c74..354812edc1f 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi | |||
| @@ -898,10 +898,11 @@ You can specify a different default by setting the variable | |||
| 898 | numeric argument; then it reads the initial revision ID for this | 898 | numeric argument; then it reads the initial revision ID for this |
| 899 | particular file using the minibuffer. | 899 | particular file using the minibuffer. |
| 900 | 900 | ||
| 901 | @vindex vc-initial-comment | 901 | @c See http://debbugs.gnu.org/9745 |
| 902 | If @code{vc-initial-comment} is non-@code{nil}, @kbd{C-x v i} reads an | 902 | @c @vindex vc-initial-comment |
| 903 | initial comment to describe the purpose of this source file. Reading | 903 | @c If @code{vc-initial-comment} is non-@code{nil}, @kbd{C-x v i} reads an |
| 904 | the initial comment works like reading a log entry (@pxref{Log Buffer}). | 904 | @c initial comment to describe the purpose of this source file. Reading |
| 905 | @c the initial comment works like reading a log entry (@pxref{Log Buffer}). | ||
| 905 | 906 | ||
| 906 | @node VC Change Log | 907 | @node VC Change Log |
| 907 | @subsubsection VC Change Log | 908 | @subsubsection VC Change Log |
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index e84b4c9f080..bbe42551345 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi | |||
| @@ -219,11 +219,11 @@ is sometimes available in ordinary buffers too. @xref{Symbol | |||
| 219 | Completion}. | 219 | Completion}. |
| 220 | 220 | ||
| 221 | @menu | 221 | @menu |
| 222 | * Example: Completion Example. Examples of using completion. | 222 | * Completion Example:: Examples of using completion. |
| 223 | * Commands: Completion Commands. A list of completion commands. | 223 | * Completion Commands:: A list of completion commands. |
| 224 | * Strict Completion:: Different types of completion. | 224 | * Completion Exit:: Completion and minibuffer text submission. |
| 225 | * Completion Styles:: How completion matches are chosen. | 225 | * Completion Styles:: How completion matches are chosen. |
| 226 | * Options: Completion Options. Options for completion. | 226 | * Completion Options:: Options for completion. |
| 227 | @end menu | 227 | @end menu |
| 228 | 228 | ||
| 229 | @node Completion Example | 229 | @node Completion Example |
| @@ -274,7 +274,7 @@ Complete up to one word from the minibuffer text before point | |||
| 274 | arguments that often include spaces, such as file names. | 274 | arguments that often include spaces, such as file names. |
| 275 | @item @key{RET} | 275 | @item @key{RET} |
| 276 | Submit the text in the minibuffer as the argument, possibly completing | 276 | Submit the text in the minibuffer as the argument, possibly completing |
| 277 | first (@code{minibuffer-complete-and-exit}). @xref{Strict Completion}. | 277 | first (@code{minibuffer-complete-and-exit}). @xref{Completion Exit}. |
| 278 | @item ? | 278 | @item ? |
| 279 | Display a list of completions (@code{minibuffer-completion-help}). | 279 | Display a list of completions (@code{minibuffer-completion-help}). |
| 280 | @end table | 280 | @end table |
| @@ -337,42 +337,68 @@ While in the completion list buffer, this moves point to the previous | |||
| 337 | completion alternative (@code{previous-completion}). | 337 | completion alternative (@code{previous-completion}). |
| 338 | @end table | 338 | @end table |
| 339 | 339 | ||
| 340 | @node Strict Completion | 340 | @node Completion Exit |
| 341 | @subsection Strict Completion | 341 | @subsection Completion Exit |
| 342 | 342 | ||
| 343 | There are three ways that the @key{RET} | 343 | @kindex RET @r{(completion in minibuffer)} |
| 344 | (@code{minibuffer-complete-and-exit}) completion command can act, | 344 | @findex minibuffer-complete-and-exit |
| 345 | depending on how the argument will be used. | 345 | When a command reads an argument using the minibuffer with |
| 346 | completion, it also controls what happens when you type @key{RET} | ||
| 347 | (@code{minibuffer-complete-and-exit}) to submit the argument. There | ||
| 348 | are four types of behavior: | ||
| 346 | 349 | ||
| 347 | @itemize @bullet | 350 | @itemize @bullet |
| 348 | @item | 351 | @item |
| 349 | @dfn{Strict} completion accepts only known completion candidates. For | 352 | @dfn{Strict completion} accepts only exact completion matches. Typing |
| 350 | example, when @kbd{C-x k} reads the name of a buffer to kill, only the | 353 | @key{RET} exits the minibuffer only if the minibuffer text is an exact |
| 351 | name of an existing buffer makes sense. In strict completion, | 354 | match, or completes to one. Otherwise, Emacs refuses to exit the |
| 352 | @key{RET} refuses to exit if the text in the minibuffer does not | 355 | minibuffer; instead it tries to complete, and if no completion can be |
| 353 | complete to an exact match. | 356 | done it momentarily displays @samp{[No match]} after the minibuffer |
| 357 | text. (You can still leave the minibuffer by typing @kbd{C-g} to | ||
| 358 | cancel the command.) | ||
| 359 | |||
| 360 | An example of a command that uses this behavior is @kbd{M-x}, since it | ||
| 361 | is meaningless for it to accept a non-existent command name. | ||
| 354 | 362 | ||
| 355 | @item | 363 | @item |
| 356 | @dfn{Cautious} completion is similar to strict completion, except that | 364 | @dfn{Cautious completion} is like strict completion, except @key{RET} |
| 357 | @key{RET} exits only if the text is an already exact match. | 365 | exits only if the text is already an exact match. If the text |
| 358 | Otherwise, @key{RET} does not exit, but it does complete the text. If | 366 | completes to an exact match, @key{RET} performs that completion but |
| 359 | that completes to an exact match, a second @key{RET} will exit. | 367 | does not exit yet; you must type a second @key{RET} to exit. |
| 360 | 368 | ||
| 361 | Cautious completion is used for reading file names for files that must | 369 | Cautious completion is used for reading file names for files that must |
| 362 | already exist, for example. | 370 | already exist, for example. |
| 363 | 371 | ||
| 364 | @item | 372 | @item |
| 365 | @dfn{Permissive} completion allows any input; the completion | 373 | @dfn{Permissive completion} allows any input; the completion |
| 366 | candidates are just suggestions. For example, when @kbd{C-x C-f} | 374 | candidates are just suggestions. Typing @key{RET} does not complete, |
| 367 | reads the name of a file to visit, any file name is allowed, including | 375 | it just submits the argument as you have entered it. |
| 368 | nonexistent file (in case you want to create a file). In permissive | ||
| 369 | completion, @key{RET} does not complete, it just submits the argument | ||
| 370 | as you have entered it. | ||
| 371 | @end itemize | ||
| 372 | 376 | ||
| 373 | Like the other completion commands, @key{RET} displays a list of all | 377 | @cindex minibuffer confirmation |
| 374 | possible completions whenever it is supposed to complete but is unable | 378 | @cindex confirming in the minibuffer |
| 375 | to complete any further. | 379 | @item |
| 380 | @dfn{Permissive completion with confirmation} is like permissive | ||
| 381 | completion, with an exception: if you typed @key{TAB} and this | ||
| 382 | completed the text up to some intermediate state (i.e. one that is not | ||
| 383 | yet an exact completion match), typing @key{RET} right afterward does | ||
| 384 | not submit the argument. Instead, Emacs asks for confirmation by | ||
| 385 | momentarily displaying @samp{[Confirm]} after the text; type @key{RET} | ||
| 386 | again to confirm and submit the text. This catches a common mistake, | ||
| 387 | in which one types @key{RET} before realizing that @key{TAB} did not | ||
| 388 | complete as far as desired. | ||
| 389 | |||
| 390 | @vindex confirm-nonexistent-file-or-buffer | ||
| 391 | You can tweak the confirmation behavior by customizing the variable | ||
| 392 | @code{confirm-nonexistent-file-or-buffer}. The default value, | ||
| 393 | @code{after-completion}, gives the behavior we have just described. | ||
| 394 | If you change it to @code{nil}, Emacs does not ask for confirmation, | ||
| 395 | falling back on permissive completion. If you change it to any other | ||
| 396 | non-@code{nil} value, Emacs asks for confirmation whether or not the | ||
| 397 | preceding command was @key{TAB}. | ||
| 398 | |||
| 399 | This behavior is used by most commands that read file names, like | ||
| 400 | @kbd{C-x C-f}, and commands that read buffer names, like @kbd{C-x b}. | ||
| 401 | @end itemize | ||
| 376 | 402 | ||
| 377 | @node Completion Styles | 403 | @node Completion Styles |
| 378 | @subsection How Completion Alternatives Are Chosen | 404 | @subsection How Completion Alternatives Are Chosen |
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi index b894d01b9bb..9e30b657284 100644 --- a/doc/emacs/rmail.texi +++ b/doc/emacs/rmail.texi | |||
| @@ -1198,7 +1198,7 @@ Address mode: | |||
| 1198 | 1198 | ||
| 1199 | @c FIXME goto-addr.el commentary says to use goto-address instead. | 1199 | @c FIXME goto-addr.el commentary says to use goto-address instead. |
| 1200 | @smallexample | 1200 | @smallexample |
| 1201 | (add-hook 'rmail-show-message-hook (lambda () (goto-address-mode 1))) | 1201 | (add-hook 'rmail-show-message-hook 'goto-address-mode) |
| 1202 | @end smallexample | 1202 | @end smallexample |
| 1203 | 1203 | ||
| 1204 | @noindent | 1204 | @noindent |
diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi index 14d4c678085..fcc31e30988 100644 --- a/doc/emacs/screen.texi +++ b/doc/emacs/screen.texi | |||
| @@ -189,7 +189,7 @@ is sometimes useful to have this information. | |||
| 189 | 189 | ||
| 190 | @var{cs} describes the character set of the text in the buffer | 190 | @var{cs} describes the character set of the text in the buffer |
| 191 | (@pxref{Coding Systems}). If it is a dash (@samp{-}), that indicates | 191 | (@pxref{Coding Systems}). If it is a dash (@samp{-}), that indicates |
| 192 | no special character set handling (with the possible expection of | 192 | no special character set handling (with the possible exception of |
| 193 | end-of-line conventions, described in the next paragraph). @samp{=} | 193 | end-of-line conventions, described in the next paragraph). @samp{=} |
| 194 | means no conversion whatsoever, and is usually used for files | 194 | means no conversion whatsoever, and is usually used for files |
| 195 | containing non-textual data. Other characters represent various | 195 | containing non-textual data. Other characters represent various |
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi index caf03291fbc..31b5aa37f83 100644 --- a/doc/emacs/search.texi +++ b/doc/emacs/search.texi | |||
| @@ -60,7 +60,6 @@ Incremental search backward (@code{isearch-backward}). | |||
| 60 | or else edit the search string. | 60 | or else edit the search string. |
| 61 | * Isearch Scroll:: Scrolling during an incremental search. | 61 | * Isearch Scroll:: Scrolling during an incremental search. |
| 62 | * Isearch Minibuffer:: Incremental search of the minibuffer history. | 62 | * Isearch Minibuffer:: Incremental search of the minibuffer history. |
| 63 | * Slow Isearch:: Incremental search features for slow terminals. | ||
| 64 | @end menu | 63 | @end menu |
| 65 | 64 | ||
| 66 | @node Basic Isearch | 65 | @node Basic Isearch |
| @@ -167,23 +166,27 @@ going past the original starting point of the search, it changes to | |||
| 167 | you have already seen. | 166 | you have already seen. |
| 168 | 167 | ||
| 169 | @cindex search ring | 168 | @cindex search ring |
| 169 | @kindex M-n @r{(Incremental search)} | ||
| 170 | @kindex M-p @r{(Incremental search)} | ||
| 170 | To reuse earlier search strings, use the @dfn{search ring}. The | 171 | To reuse earlier search strings, use the @dfn{search ring}. The |
| 171 | commands @kbd{M-p} and @kbd{M-n} move through the ring to pick a | 172 | commands @kbd{M-p} and @kbd{M-n} move through the ring to pick a |
| 172 | search string to reuse. These commands leave the selected search ring | 173 | search string to reuse. These commands leave the selected search ring |
| 173 | element in the minibuffer, where you can edit it. To edit the current | 174 | element in the minibuffer, where you can edit it. |
| 174 | search string in the minibuffer without replacing it with items from | 175 | |
| 175 | the search ring, type @kbd{M-e}. Type @kbd{C-s} or @kbd{C-r} to | 176 | @kindex M-e @r{(Incremental search)} |
| 176 | terminate editing the string and search for it. | 177 | To edit the current search string in the minibuffer without |
| 178 | replacing it with items from the search ring, type @kbd{M-e}. Type | ||
| 179 | @kbd{C-s} or @kbd{C-r} to finish editing the string and search for it. | ||
| 177 | 180 | ||
| 178 | @node Error in Isearch | 181 | @node Error in Isearch |
| 179 | @subsection Errors in Incremental Search | 182 | @subsection Errors in Incremental Search |
| 180 | 183 | ||
| 181 | If your string is not found at all, the echo area says @samp{Failing | 184 | If your string is not found at all, the echo area says @samp{Failing |
| 182 | I-Search}. The cursor is after the place where Emacs found as much of | 185 | I-Search}, and the cursor moves past the place where Emacs found as |
| 183 | your string as it could. Thus, if you search for @samp{FOOT}, and | 186 | much of your string as it could. Thus, if you search for @samp{FOOT}, |
| 184 | there is no @samp{FOOT}, you might see the cursor after the @samp{FOO} | 187 | and there is no @samp{FOOT}, you might see the cursor after the |
| 185 | in @samp{FOOL}. In the echo area, the part of the search string that | 188 | @samp{FOO} in @samp{FOOL}. In the echo area, the part of the search |
| 186 | failed to match is highlighted using the customizable face | 189 | string that failed to match is highlighted using the face |
| 187 | @code{isearch-fail}. | 190 | @code{isearch-fail}. |
| 188 | 191 | ||
| 189 | At this point, there are several things you can do. If your string | 192 | At this point, there are several things you can do. If your string |
| @@ -196,6 +199,7 @@ search string the characters that could not be found (the @samp{T} in | |||
| 196 | entirely, returning point to where it was when the search started. | 199 | entirely, returning point to where it was when the search started. |
| 197 | 200 | ||
| 198 | @cindex quitting (in search) | 201 | @cindex quitting (in search) |
| 202 | @kindex C-g @r{(Incremental search)} | ||
| 199 | The quit command, @kbd{C-g}, does special things during searches; | 203 | The quit command, @kbd{C-g}, does special things during searches; |
| 200 | just what it does depends on the status of the search. If the search | 204 | just what it does depends on the status of the search. If the search |
| 201 | has found what you specified and is waiting for input, @kbd{C-g} | 205 | has found what you specified and is waiting for input, @kbd{C-g} |
| @@ -271,62 +275,70 @@ keybindings. These keybindings are part of the keymap | |||
| 271 | @node Isearch Yank | 275 | @node Isearch Yank |
| 272 | @subsection Isearch Yanking | 276 | @subsection Isearch Yanking |
| 273 | 277 | ||
| 278 | @kindex C-y @r{(Incremental search)} | ||
| 279 | @kindex M-y @r{(Incremental search)} | ||
| 280 | @findex isearch-yank-kill | ||
| 281 | @findex isearch-yank-pop | ||
| 274 | Within incremental search, @kbd{C-y} (@code{isearch-yank-kill}) | 282 | Within incremental search, @kbd{C-y} (@code{isearch-yank-kill}) |
| 275 | copies text from the kill ring into the search string. It uses the | 283 | appends the current kill to the search string. @kbd{M-y} |
| 276 | same text that @kbd{C-y}, outside of incremental search, would | 284 | (@code{isearch-yank-pop}), if called after @kbd{C-y}, replaces that |
| 277 | normally yank into the buffer. @kbd{Mouse-2} in the echo area does | 285 | appended text with an earlier kill, similar to the usual @kbd{M-y} |
| 278 | the same. @xref{Yanking}. | 286 | (@code{yank-pop}) command (@pxref{Yanking}). @kbd{Mouse-2} appends |
| 279 | 287 | the current X selection (@pxref{Primary Selection}). | |
| 280 | @kbd{C-w} (@code{isearch-yank-word-or-char}) grabs the next | 288 | |
| 281 | character or word at point, and adds it to the search string. This is | 289 | @kindex C-w @r{(Incremental search)} |
| 282 | convenient for searching for another occurrence of the text at point. | 290 | @findex isearch-yank-word-or-char |
| 283 | (The decision, whether to copy a character or a word, is heuristic.) | 291 | @kbd{C-w} (@code{isearch-yank-word-or-char}) appends the next |
| 284 | 292 | character or word at point to the search string. This is an easy way | |
| 285 | Similarly, @kbd{M-s C-e} (@code{isearch-yank-line}) grabs the rest | 293 | to search for another occurrence of the text at point. (The decision |
| 286 | of the current line, and adds it to the search string. If point is | 294 | of whether to copy a character or a word is heuristic.) |
| 287 | already at the end of a line, it grabs the entire next line. | 295 | |
| 296 | @kindex M-s C-e @r{(Incremental search)} | ||
| 297 | @findex isearch-yank-line | ||
| 298 | Similarly, @kbd{M-s C-e} (@code{isearch-yank-line}) appends the rest | ||
| 299 | of the current line to the search string. If point is already at the | ||
| 300 | end of a line, it appends the next line. | ||
| 288 | 301 | ||
| 289 | If the search is currently case-insensitive, both @kbd{C-w} and | 302 | If the search is currently case-insensitive, both @kbd{C-w} and |
| 290 | @kbd{M-s C-e} convert the text they copy to lower case, so that the | 303 | @kbd{M-s C-e} convert the text they copy to lower case, so that the |
| 291 | search remains case-insensitive. | 304 | search remains case-insensitive. |
| 292 | 305 | ||
| 293 | @kbd{C-M-w} and @kbd{C-M-y} modify the search string by only one | 306 | @kindex C-M-w @r{(Incremental search)} |
| 294 | character at a time: @kbd{C-M-w} deletes the last character from the | 307 | @kindex C-M-y @r{(Incremental search)} |
| 295 | search string and @kbd{C-M-y} copies the character after point to the | 308 | @findex isearch-del-char |
| 296 | end of the search string. An alternative method to add the character | 309 | @findex isearch-yank-char |
| 297 | after point into the search string is to enter the minibuffer by | 310 | @kbd{C-M-w} (@code{isearch-del-char}) deletes the last character |
| 298 | @kbd{M-e} and to type @kbd{C-f} at the end of the search string in the | 311 | from the search string, and @kbd{C-M-y} (@code{isearch-yank-char}) |
| 299 | minibuffer. | 312 | appends the character after point to the the search string. An |
| 313 | alternative method to add the character after point is to enter the | ||
| 314 | minibuffer with @kbd{M-e} (@pxref{Repeat Isearch}) and type @kbd{C-f} | ||
| 315 | at the end of the search string in the minibuffer. | ||
| 300 | 316 | ||
| 301 | @node Isearch Scroll | 317 | @node Isearch Scroll |
| 302 | @subsection Scrolling During Incremental Search | 318 | @subsection Scrolling During Incremental Search |
| 303 | 319 | ||
| 304 | @vindex isearch-allow-scroll | 320 | @vindex isearch-allow-scroll |
| 305 | You can enable the use of vertical scrolling during incremental | 321 | Normally, scrolling commands exit incremental search. If you change |
| 306 | search (without exiting the search) by setting the customizable | 322 | the variable @code{isearch-allow-scroll} to a non-@code{nil} value, |
| 307 | variable @code{isearch-allow-scroll} to a non-@code{nil} value. This | 323 | that enables the use of the scroll-bar, as well as keyboard scrolling |
| 308 | applies to using the vertical scroll-bar and to certain keyboard | 324 | commands like @kbd{C-v}, @kbd{M-v}, and @kbd{C-l} (@pxref{Scrolling}). |
| 309 | commands such as @code{scroll-down-command}, @code{scroll-up-command} | 325 | This applies only to calling these commands via their bound key |
| 310 | and @code{recenter} (@pxref{Scrolling}). You must run these commands | 326 | sequences---typing @kbd{M-x} will still exit the search. You can give |
| 311 | via their key sequences to stay in the search---typing @kbd{M-x} will | 327 | prefix arguments to these commands in the usual way. This feature |
| 312 | terminate the search. You can give prefix arguments to these commands | 328 | won't let you scroll the current match out of visibility, however. |
| 313 | in the usual way. | 329 | |
| 314 | 330 | The @code{isearch-allow-scroll} feature also affects some other | |
| 315 | This feature won't let you scroll the current match out of visibility, | 331 | commands, such as @kbd{C-x 2} (@code{split-window-vertically}) and |
| 316 | however. | 332 | @kbd{C-x ^} (@code{enlarge-window}), which don't exactly scroll but do |
| 317 | 333 | affect where the text appears on the screen. It applies to any | |
| 318 | The feature also affects some other commands, such as @kbd{C-x 2} | 334 | command whose name has a non-@code{nil} @code{isearch-scroll} |
| 319 | (@code{split-window-vertically}) and @kbd{C-x ^} | 335 | property. So you can control which commands are affected by changing |
| 320 | (@code{enlarge-window}) which don't exactly scroll but do affect where | 336 | these properties. |
| 321 | the text appears on the screen. In general, it applies to any command | ||
| 322 | whose name has a non-@code{nil} @code{isearch-scroll} property. So you | ||
| 323 | can control which commands are affected by changing these properties. | ||
| 324 | 337 | ||
| 325 | For example, to make @kbd{C-h l} usable within an incremental search | 338 | For example, to make @kbd{C-h l} usable within an incremental search |
| 326 | in all future Emacs sessions, use @kbd{C-h c} to find what command it | 339 | in all future Emacs sessions, use @kbd{C-h c} to find what command it |
| 327 | runs. (You type @kbd{C-h c C-h l}; it says @code{view-lossage}.) | 340 | runs (@pxref{Key Help}), which is @code{view-lossage}. Then you can |
| 328 | Then you can put the following line in your @file{.emacs} file | 341 | put the following line in your init file (@pxref{Init File}): |
| 329 | (@pxref{Init File}): | ||
| 330 | 342 | ||
| 331 | @example | 343 | @example |
| 332 | (put 'view-lossage 'isearch-scroll t) | 344 | (put 'view-lossage 'isearch-scroll t) |
| @@ -359,33 +371,9 @@ wrap around, going from the last page to the first page or vice versa. | |||
| 359 | When the current match is on a history element, that history element | 371 | When the current match is on a history element, that history element |
| 360 | is pulled into the minibuffer. If you exit the incremental search | 372 | is pulled into the minibuffer. If you exit the incremental search |
| 361 | normally (e.g. by typing @key{RET}), it remains in the minibuffer | 373 | normally (e.g. by typing @key{RET}), it remains in the minibuffer |
| 362 | afterwards. Cancelling the search, with @kbd{C-g}, restores the | 374 | afterwards. Canceling the search, with @kbd{C-g}, restores the |
| 363 | contents of the minibuffer when you began the search. | 375 | contents of the minibuffer when you began the search. |
| 364 | 376 | ||
| 365 | @node Slow Isearch | ||
| 366 | @subsection Slow Terminal Incremental Search | ||
| 367 | |||
| 368 | Incremental search on a slow terminal uses a modified style of display | ||
| 369 | that is designed to take less time. Instead of redisplaying the buffer at | ||
| 370 | each place the search gets to, it creates a new single-line window and uses | ||
| 371 | that to display the line that the search has found. The single-line window | ||
| 372 | comes into play as soon as point moves outside of the text that is already | ||
| 373 | on the screen. | ||
| 374 | |||
| 375 | When you terminate the search, the single-line window is removed. | ||
| 376 | Emacs then redisplays the window in which the search was done, to show | ||
| 377 | its new position of point. | ||
| 378 | |||
| 379 | @vindex search-slow-speed | ||
| 380 | The slow terminal style of display is used when the terminal baud rate is | ||
| 381 | less than or equal to the value of the variable @code{search-slow-speed}, | ||
| 382 | initially 1200. See also the discussion of the variable @code{baud-rate} | ||
| 383 | (@pxref{baud-rate,, Customization of Display}). | ||
| 384 | |||
| 385 | @vindex search-slow-window-lines | ||
| 386 | The number of lines to use in slow terminal search display is controlled | ||
| 387 | by the variable @code{search-slow-window-lines}. Its normal value is 1. | ||
| 388 | |||
| 389 | @node Nonincremental Search | 377 | @node Nonincremental Search |
| 390 | @section Nonincremental Search | 378 | @section Nonincremental Search |
| 391 | @cindex nonincremental search | 379 | @cindex nonincremental search |
| @@ -405,18 +393,14 @@ This enters the minibuffer to read the search string; terminate the | |||
| 405 | string with @key{RET}, and then the search takes place. If the string | 393 | string with @key{RET}, and then the search takes place. If the string |
| 406 | is not found, the search command signals an error. | 394 | is not found, the search command signals an error. |
| 407 | 395 | ||
| 408 | When you type @kbd{C-s @key{RET}}, the @kbd{C-s} invokes incremental | ||
| 409 | search as usual. That command is specially programmed to invoke | ||
| 410 | nonincremental search, @code{search-forward}, if the string you | ||
| 411 | specify is empty. (Such an empty argument would otherwise be | ||
| 412 | useless.) @kbd{C-r @key{RET}} does likewise, for a reverse | ||
| 413 | incremental search. | ||
| 414 | |||
| 415 | @findex search-forward | 396 | @findex search-forward |
| 416 | @findex search-backward | 397 | @findex search-backward |
| 417 | Forward and backward nonincremental searches are implemented by the | 398 | When you type @kbd{C-s @key{RET}}, the @kbd{C-s} invokes incremental |
| 418 | commands @code{search-forward} and @code{search-backward}. These | 399 | search as usual. That command is specially programmed to invoke the |
| 419 | commands may be bound to other keys in the usual manner. | 400 | command for nonincremental search, @code{search-forward}, if the |
| 401 | string you specify is empty. (Such an empty argument would otherwise | ||
| 402 | be useless.) @kbd{C-r @key{RET}} does likewise, invoking the command | ||
| 403 | @code{search-backward}. | ||
| 420 | 404 | ||
| 421 | @node Word Search | 405 | @node Word Search |
| 422 | @section Word Search | 406 | @section Word Search |
| @@ -476,7 +460,7 @@ apply to the lazy highlight, which always matches whole words. | |||
| 476 | that denotes a class of alternative strings to match. GNU Emacs | 460 | that denotes a class of alternative strings to match. GNU Emacs |
| 477 | provides both incremental and nonincremental ways to search for a | 461 | provides both incremental and nonincremental ways to search for a |
| 478 | match for a regexp. The syntax of regular expressions is explained in | 462 | match for a regexp. The syntax of regular expressions is explained in |
| 479 | the following section. | 463 | the next section. |
| 480 | 464 | ||
| 481 | @table @kbd | 465 | @table @kbd |
| 482 | @item C-M-s | 466 | @item C-M-s |
| @@ -531,7 +515,7 @@ starting position. These search methods are not mirror images. | |||
| 531 | 515 | ||
| 532 | @findex re-search-forward | 516 | @findex re-search-forward |
| 533 | @findex re-search-backward | 517 | @findex re-search-backward |
| 534 | Nonincremental search for a regexp is done by the functions | 518 | Nonincremental search for a regexp is done with the commands |
| 535 | @code{re-search-forward} and @code{re-search-backward}. You can | 519 | @code{re-search-forward} and @code{re-search-backward}. You can |
| 536 | invoke these with @kbd{M-x}, or by way of incremental regexp search | 520 | invoke these with @kbd{M-x}, or by way of incremental regexp search |
| 537 | with @kbd{C-M-s @key{RET}} and @kbd{C-M-r @key{RET}}. | 521 | with @kbd{C-M-s @key{RET}} and @kbd{C-M-r @key{RET}}. |
| @@ -941,9 +925,9 @@ close-brackets, quotes, or parentheses, repeated zero or more times. | |||
| 941 | Searches in Emacs normally ignore the case of the text they are | 925 | Searches in Emacs normally ignore the case of the text they are |
| 942 | searching through, if you specify the text in lower case. Thus, if | 926 | searching through, if you specify the text in lower case. Thus, if |
| 943 | you specify searching for @samp{foo}, then @samp{Foo} and @samp{foo} | 927 | you specify searching for @samp{foo}, then @samp{Foo} and @samp{foo} |
| 944 | are also considered a match. Regexps, and in particular character | 928 | also match. Regexps, and in particular character sets, behave |
| 945 | sets, are included: @samp{[ab]} would match @samp{a} or @samp{A} or | 929 | likewise: @samp{[ab]} matches @samp{a} or @samp{A} or @samp{b} or |
| 946 | @samp{b} or @samp{B}.@refill | 930 | @samp{B}.@refill |
| 947 | 931 | ||
| 948 | An upper-case letter anywhere in the incremental search string makes | 932 | An upper-case letter anywhere in the incremental search string makes |
| 949 | the search case-sensitive. Thus, searching for @samp{Foo} does not find | 933 | the search case-sensitive. Thus, searching for @samp{Foo} does not find |
| @@ -985,8 +969,8 @@ command, there is @kbd{M-%} (@code{query-replace}), which presents | |||
| 985 | each occurrence of the pattern and asks you whether to replace it. | 969 | each occurrence of the pattern and asks you whether to replace it. |
| 986 | 970 | ||
| 987 | The replace commands normally operate on the text from point to the | 971 | The replace commands normally operate on the text from point to the |
| 988 | end of the buffer. When the mark is active, they operate on the | 972 | end of the buffer. When the region is active, they operate on it |
| 989 | region instead (@pxref{Mark}). The basic replace commands replace one | 973 | instead (@pxref{Mark}). The basic replace commands replace one |
| 990 | @dfn{search string} (or regexp) with one @dfn{replacement string}. It | 974 | @dfn{search string} (or regexp) with one @dfn{replacement string}. It |
| 991 | is possible to perform several replacements in parallel, using the | 975 | is possible to perform several replacements in parallel, using the |
| 992 | command @code{expand-region-abbrevs} (@pxref{Expanding Abbrevs}). | 976 | command @code{expand-region-abbrevs} (@pxref{Expanding Abbrevs}). |
| @@ -1023,7 +1007,7 @@ activating the mark; use @kbd{C-u C-@key{SPC}} to move back there. | |||
| 1023 | @xref{Mark Ring}. | 1007 | @xref{Mark Ring}. |
| 1024 | 1008 | ||
| 1025 | A prefix argument restricts replacement to matches that are | 1009 | A prefix argument restricts replacement to matches that are |
| 1026 | surrounded by word boundaries. The argument's value doesn't matter. | 1010 | surrounded by word boundaries. |
| 1027 | 1011 | ||
| 1028 | @xref{Replacement and Case}, for details about case-sensitivity in | 1012 | @xref{Replacement and Case}, for details about case-sensitivity in |
| 1029 | replace commands. | 1013 | replace commands. |
| @@ -1153,10 +1137,8 @@ replacement is done without case conversion. | |||
| 1153 | 1137 | ||
| 1154 | @table @kbd | 1138 | @table @kbd |
| 1155 | @item M-% @var{string} @key{RET} @var{newstring} @key{RET} | 1139 | @item M-% @var{string} @key{RET} @var{newstring} @key{RET} |
| 1156 | @itemx M-x query-replace @key{RET} @var{string} @key{RET} @var{newstring} @key{RET} | ||
| 1157 | Replace some occurrences of @var{string} with @var{newstring}. | 1140 | Replace some occurrences of @var{string} with @var{newstring}. |
| 1158 | @item C-M-% @var{regexp} @key{RET} @var{newstring} @key{RET} | 1141 | @item C-M-% @var{regexp} @key{RET} @var{newstring} @key{RET} |
| 1159 | @itemx M-x query-replace-regexp @key{RET} @var{regexp} @key{RET} @var{newstring} @key{RET} | ||
| 1160 | Replace some matches for @var{regexp} with @var{newstring}. | 1142 | Replace some matches for @var{regexp} with @var{newstring}. |
| 1161 | @end table | 1143 | @end table |
| 1162 | 1144 | ||
| @@ -1169,7 +1151,7 @@ occurrence and asks you whether to replace it. Aside from querying, | |||
| 1169 | @code{query-replace} works just like @code{replace-string} | 1151 | @code{query-replace} works just like @code{replace-string} |
| 1170 | (@pxref{Unconditional Replace}). In particular, it preserves case | 1152 | (@pxref{Unconditional Replace}). In particular, it preserves case |
| 1171 | provided @code{case-replace} is non-@code{nil}, as it normally is | 1153 | provided @code{case-replace} is non-@code{nil}, as it normally is |
| 1172 | (@pxref{Replacement and Case}). A numeric argument means consider | 1154 | (@pxref{Replacement and Case}). A numeric argument means to consider |
| 1173 | only occurrences that are bounded by word-delimiter characters. | 1155 | only occurrences that are bounded by word-delimiter characters. |
| 1174 | 1156 | ||
| 1175 | @kindex C-M-% | 1157 | @kindex C-M-% |
| @@ -1182,7 +1164,7 @@ like @code{query-replace}. | |||
| 1182 | These commands highlight the current match using the face | 1164 | These commands highlight the current match using the face |
| 1183 | @code{query-replace}. They highlight other matches using | 1165 | @code{query-replace}. They highlight other matches using |
| 1184 | @code{lazy-highlight} just like incremental search (@pxref{Incremental | 1166 | @code{lazy-highlight} just like incremental search (@pxref{Incremental |
| 1185 | Search}). By default, @code{query-replace-regexp} will show | 1167 | Search}). By default, @code{query-replace-regexp} will show the |
| 1186 | substituted replacement string for the current match in the | 1168 | substituted replacement string for the current match in the |
| 1187 | minibuffer. If you want to keep special sequences @samp{\&} and | 1169 | minibuffer. If you want to keep special sequences @samp{\&} and |
| 1188 | @samp{\@var{n}} unexpanded, customize | 1170 | @samp{\@var{n}} unexpanded, customize |
| @@ -1315,6 +1297,8 @@ matching that regexp. | |||
| 1315 | This command is just like @code{multi-isearch-buffers}, except it | 1297 | This command is just like @code{multi-isearch-buffers}, except it |
| 1316 | performs an incremental regexp search. | 1298 | performs an incremental regexp search. |
| 1317 | 1299 | ||
| 1300 | @cindex Occur mode | ||
| 1301 | @cindex mode, Occur | ||
| 1318 | @item M-x occur | 1302 | @item M-x occur |
| 1319 | Prompt for a regexp, and display a list showing each line in the | 1303 | Prompt for a regexp, and display a list showing each line in the |
| 1320 | buffer that contains a match for it. To limit the search to part of | 1304 | buffer that contains a match for it. To limit the search to part of |
| @@ -1325,16 +1309,22 @@ displayed before and after each matching line. | |||
| 1325 | @kindex RET @r{(Occur mode)} | 1309 | @kindex RET @r{(Occur mode)} |
| 1326 | @kindex o @r{(Occur mode)} | 1310 | @kindex o @r{(Occur mode)} |
| 1327 | @kindex C-o @r{(Occur mode)} | 1311 | @kindex C-o @r{(Occur mode)} |
| 1328 | The buffer @samp{*Occur*} containing the output serves as a menu for | 1312 | In the @samp{*Occur*} buffer, you can click on each entry, or move |
| 1329 | finding the occurrences in their original context. Click | 1313 | point there and type @key{RET}, to visit the corresponding position in |
| 1330 | @kbd{Mouse-2} on an occurrence listed in @samp{*Occur*}, or position | 1314 | the buffer that was searched. @kbd{o} and @kbd{C-o} display the match |
| 1331 | point there and type @key{RET}; this switches to the buffer that was | 1315 | in another window; @kbd{C-o} does not select it. Alternatively, you |
| 1332 | searched and moves point to the original of the chosen occurrence. | 1316 | can use the @kbd{C-x `} (@code{next-error}) command to visit the |
| 1333 | @kbd{o} and @kbd{C-o} display the match in another window; @kbd{C-o} | 1317 | occurrences one by one (@pxref{Compilation Mode}). |
| 1334 | does not select it. | 1318 | |
| 1335 | 1319 | @cindex Occur Edit mode | |
| 1336 | After using @kbd{M-x occur}, you can use @code{next-error} to visit | 1320 | @cindex mode, Occur Edit |
| 1337 | the occurrences found, one by one. @ref{Compilation Mode}. | 1321 | Typing @kbd{e} in the @samp{*Occur*} buffer switches to Occur Edit |
| 1322 | mode, in which edits made to the entries are also applied to the text | ||
| 1323 | in the originating buffer. Type @kbd{C-c C-c} to return to Occur | ||
| 1324 | mode. | ||
| 1325 | |||
| 1326 | The command @kbd{M-x list-matching-lines} is a synonym for @kbd{M-x | ||
| 1327 | occur}. | ||
| 1338 | 1328 | ||
| 1339 | @kindex M-s o | 1329 | @kindex M-s o |
| 1340 | @item M-s o | 1330 | @item M-s o |
| @@ -1342,9 +1332,6 @@ Run @code{occur} using the search string of the last incremental | |||
| 1342 | string search. You can also run @kbd{M-s o} when an incremental | 1332 | string search. You can also run @kbd{M-s o} when an incremental |
| 1343 | search is active; this uses the current search string. | 1333 | search is active; this uses the current search string. |
| 1344 | 1334 | ||
| 1345 | @item M-x list-matching-lines | ||
| 1346 | Synonym for @kbd{M-x occur}. | ||
| 1347 | |||
| 1348 | @item M-x multi-occur | 1335 | @item M-x multi-occur |
| 1349 | This command is just like @code{occur}, except it is able to search | 1336 | This command is just like @code{occur}, except it is able to search |
| 1350 | through multiple buffers. It asks you to specify the buffer names one | 1337 | through multiple buffers. It asks you to specify the buffer names one |
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index dc92e4a519c..600d0b07818 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi | |||
| @@ -343,8 +343,8 @@ details. | |||
| 343 | additionally select the displaying window so that you can begin | 343 | additionally select the displaying window so that you can begin |
| 344 | editing its buffer. The command @kbd{C-x `} (@code{next-error}) is | 344 | editing its buffer. The command @kbd{C-x `} (@code{next-error}) is |
| 345 | one example (@pxref{Compilation Mode}). Such commands work by calling | 345 | one example (@pxref{Compilation Mode}). Such commands work by calling |
| 346 | @code{pop-to-buffer} internally. @xref{Displaying Buffers,,Displaying | 346 | @code{pop-to-buffer} internally. @xref{Switching Buffers,,Switching |
| 347 | Buffers in Windows, elisp, The Emacs Lisp Reference Manual}. | 347 | to a Buffer in a Window, elisp, The Emacs Lisp Reference Manual}. |
| 348 | 348 | ||
| 349 | Commands with names ending in @code{-other-window} behave like | 349 | Commands with names ending in @code{-other-window} behave like |
| 350 | @code{display-buffer}, except that they never display in the selected | 350 | @code{display-buffer}, except that they never display in the selected |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 345e69e6989..490280dae29 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-10-18 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * display.texi (Glyphless Chars): New node. | ||
| 4 | |||
| 1 | 2011-10-13 Chong Yidong <cyd@stupidchicken.com> | 5 | 2011-10-13 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 6 | ||
| 3 | * text.texi (Yanking): Document yank-excluded-properties. | 7 | * text.texi (Yanking): Document yank-excluded-properties. |
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 18cb93557e9..034d92f78c3 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi | |||
| @@ -36,6 +36,7 @@ that Emacs presents to the user. | |||
| 36 | * Window Systems:: Which window system is being used. | 36 | * Window Systems:: Which window system is being used. |
| 37 | * Bidirectional Display:: Display of bidirectional scripts, such as | 37 | * Bidirectional Display:: Display of bidirectional scripts, such as |
| 38 | Arabic and Farsi. | 38 | Arabic and Farsi. |
| 39 | * Glyphless Chars:: How glyphless characters are drawn. | ||
| 39 | @end menu | 40 | @end menu |
| 40 | 41 | ||
| 41 | @node Refresh Screen | 42 | @node Refresh Screen |
| @@ -6242,3 +6243,96 @@ affect all Emacs frames and windows. | |||
| 6242 | appropriate mirrored character in the reordered text. Lisp programs | 6243 | appropriate mirrored character in the reordered text. Lisp programs |
| 6243 | can affect the mirrored display by changing this property. Again, any | 6244 | can affect the mirrored display by changing this property. Again, any |
| 6244 | such changes affect all of Emacs display. | 6245 | such changes affect all of Emacs display. |
| 6246 | |||
| 6247 | @node Glyphless Chars | ||
| 6248 | @section Glyphless Character Display | ||
| 6249 | @cindex glyphless characters | ||
| 6250 | |||
| 6251 | @dfn{Glyphless characters} are not displayed in the usual way when | ||
| 6252 | they appear in a buffer, but in some special way (e.g. as a box | ||
| 6253 | containing a hexadecimal code). These include characters that cannot | ||
| 6254 | be displayed with any available font (on a graphical display), or that | ||
| 6255 | cannot be encoded by the terminal's coding system (on a text-only | ||
| 6256 | terminal). Specific characters can also be defined to be glyphless. | ||
| 6257 | |||
| 6258 | @defvar glyphless-char-display | ||
| 6259 | The value of this variable is a char-table that defines glyphless | ||
| 6260 | characters and how they are displayed. If an entry is @code{nil}, the | ||
| 6261 | corresponding character is displayed in its usual way. Otherwise, an | ||
| 6262 | entry should be one of the following display methods: | ||
| 6263 | |||
| 6264 | @table @asis | ||
| 6265 | @item @code{zero-width} | ||
| 6266 | Don't display the character. | ||
| 6267 | |||
| 6268 | @item @code{thin-space} | ||
| 6269 | Display a thin space, 1-pixel wide on graphical displays, or | ||
| 6270 | 1-character wide on text-only terminals. | ||
| 6271 | |||
| 6272 | @item @code{empty-box} | ||
| 6273 | Display an empty box. | ||
| 6274 | |||
| 6275 | @item @code{hex-code} | ||
| 6276 | Display a box containing the Unicode codepoint of the character, in | ||
| 6277 | hexadecimal notation. | ||
| 6278 | |||
| 6279 | @item an @acronym{ASCII} string | ||
| 6280 | Display a box containing that string. | ||
| 6281 | @end table | ||
| 6282 | |||
| 6283 | @noindent | ||
| 6284 | Except for @code{zero-width}, these methods display using the | ||
| 6285 | @code{glyphless-char} face. | ||
| 6286 | |||
| 6287 | An entry can also be a cons cell @code{(@var{graphical} | ||
| 6288 | . @var{text})}, where @var{graphical} and @var{text} are the display | ||
| 6289 | methods on graphical displays and text-only terminals respectively. | ||
| 6290 | |||
| 6291 | The char-table has one extra slot, which determines how to display any | ||
| 6292 | character that cannot be displayed with any available font, or cannot | ||
| 6293 | be encoded by the terminal's coding system. Its value should be one | ||
| 6294 | of the above display methods, except @code{zero-width} or a cons cell. | ||
| 6295 | @end defvar | ||
| 6296 | |||
| 6297 | @defopt glyphless-char-display-control | ||
| 6298 | This user option provides a convenient way to set | ||
| 6299 | @code{glyphless-char-display} for groups of similar characters. It | ||
| 6300 | takes effect via a custom @code{:set} function (@pxref{Variable | ||
| 6301 | Definitions}), which update @code{glyphless-char-display}. | ||
| 6302 | |||
| 6303 | Its value should be an alist of elements @code{(@var{group} | ||
| 6304 | . @var{method})}, where @var{group} is a symbol specifying a group of | ||
| 6305 | characters, and @var{method} is a symbol specifying how to display | ||
| 6306 | them. | ||
| 6307 | |||
| 6308 | @var{group} should be one of the following: | ||
| 6309 | |||
| 6310 | @table @code | ||
| 6311 | @item c0-control | ||
| 6312 | @acronym{ASCII} control characters @code{U+0000} to @code{U+001F}, | ||
| 6313 | excluding the newline and tab characters (normally displayed as escape | ||
| 6314 | sequences like @samp{^A}; @pxref{Text Display,, How Text Is Displayed, | ||
| 6315 | emacs, The GNU Emacs Manual}). | ||
| 6316 | |||
| 6317 | @item c1-control | ||
| 6318 | Non-@acronym{ASCII}, non-printing characters @code{U+0080} to | ||
| 6319 | @code{U+009F} (normally displayed as octal escape sequences like | ||
| 6320 | @samp{\230}). | ||
| 6321 | |||
| 6322 | @item format-control | ||
| 6323 | Characters of Unicode General Category `Cf', such as @samp{U+200E} | ||
| 6324 | (Left-to-Right Mark), but excluding characters that have graphic | ||
| 6325 | images, such as @samp{U+00AD} (Soft Hyphen). | ||
| 6326 | |||
| 6327 | @item no-font | ||
| 6328 | Characters for there is no suitable font, or which cannot be encoded | ||
| 6329 | by the terminal's coding system. | ||
| 6330 | @end table | ||
| 6331 | |||
| 6332 | @c FIXME: this can also be `acronym', but that's not currently | ||
| 6333 | @c completely implemented; it applies only to the format-control | ||
| 6334 | @c group, and only works if the acronym is in `char-acronym-table'. | ||
| 6335 | The @var{method} symbol should be one of @code{zero-width}, | ||
| 6336 | @code{thin-space}, @code{empty-box}, or @code{hex-code}. These have | ||
| 6337 | the same meanings as in @code{glyphless-char-display}, above. | ||
| 6338 | @end defopt | ||
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 8350c9b7080..cefa917a4e1 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi | |||
| @@ -1278,6 +1278,9 @@ Emacs Display | |||
| 1278 | * Display Tables:: How to specify other conventions. | 1278 | * Display Tables:: How to specify other conventions. |
| 1279 | * Beeping:: Audible signal to the user. | 1279 | * Beeping:: Audible signal to the user. |
| 1280 | * Window Systems:: Which window system is being used. | 1280 | * Window Systems:: Which window system is being used. |
| 1281 | * Bidirectional Display:: Display of bidirectional scripts, such as | ||
| 1282 | Arabic and Farsi. | ||
| 1283 | * Glyphless Chars:: How glyphless characters are drawn. | ||
| 1281 | 1284 | ||
| 1282 | The Echo Area | 1285 | The Echo Area |
| 1283 | 1286 | ||
diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi index 0fa23d6412c..914ba5b1fd8 100644 --- a/doc/lispref/vol1.texi +++ b/doc/lispref/vol1.texi | |||
| @@ -1299,6 +1299,9 @@ Emacs Display | |||
| 1299 | * Display Tables:: How to specify other conventions. | 1299 | * Display Tables:: How to specify other conventions. |
| 1300 | * Beeping:: Audible signal to the user. | 1300 | * Beeping:: Audible signal to the user. |
| 1301 | * Window Systems:: Which window system is being used. | 1301 | * Window Systems:: Which window system is being used. |
| 1302 | * Bidirectional Display:: Display of bidirectional scripts, such as | ||
| 1303 | Arabic and Farsi. | ||
| 1304 | * Glyphless Chars:: How glyphless characters are drawn. | ||
| 1302 | 1305 | ||
| 1303 | The Echo Area | 1306 | The Echo Area |
| 1304 | 1307 | ||
diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi index 2469a742900..1f84b267c9b 100644 --- a/doc/lispref/vol2.texi +++ b/doc/lispref/vol2.texi | |||
| @@ -1298,6 +1298,9 @@ Emacs Display | |||
| 1298 | * Display Tables:: How to specify other conventions. | 1298 | * Display Tables:: How to specify other conventions. |
| 1299 | * Beeping:: Audible signal to the user. | 1299 | * Beeping:: Audible signal to the user. |
| 1300 | * Window Systems:: Which window system is being used. | 1300 | * Window Systems:: Which window system is being used. |
| 1301 | * Bidirectional Display:: Display of bidirectional scripts, such as | ||
| 1302 | Arabic and Farsi. | ||
| 1303 | * Glyphless Chars:: How glyphless characters are drawn. | ||
| 1301 | 1304 | ||
| 1302 | The Echo Area | 1305 | The Echo Area |
| 1303 | 1306 | ||
| @@ -51,6 +51,8 @@ This is not a new feature; only the configure flag is new. | |||
| 51 | --- | 51 | --- |
| 52 | ** There is a new configure option --with-wide-int. | 52 | ** There is a new configure option --with-wide-int. |
| 53 | With it, Emacs integers typically have 62 bits, even on 32-bit machines. | 53 | With it, Emacs integers typically have 62 bits, even on 32-bit machines. |
| 54 | On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB | ||
| 55 | to about 2 GiB. | ||
| 54 | 56 | ||
| 55 | --- | 57 | --- |
| 56 | ** New translation of the Emacs Tutorial in Hebrew is available. | 58 | ** New translation of the Emacs Tutorial in Hebrew is available. |
| @@ -107,9 +109,9 @@ and pops down the *Completions* buffer accordingly. | |||
| 107 | *** Completion can cycle, depending on completion-cycle-threshold. | 109 | *** Completion can cycle, depending on completion-cycle-threshold. |
| 108 | +++ | 110 | +++ |
| 109 | *** New completion style `substring'. | 111 | *** New completion style `substring'. |
| 110 | 112 | +++ | |
| 111 | *** Completion style can be set per-category `completion-category-overrides'. | 113 | *** Completion style can be set per-category `completion-category-overrides'. |
| 112 | 114 | +++ | |
| 113 | *** Completion of buffers now uses substring completion by default. | 115 | *** Completion of buffers now uses substring completion by default. |
| 114 | 116 | ||
| 115 | ** Mail changes | 117 | ** Mail changes |
| @@ -223,6 +225,10 @@ cannot be encoded by the `terminal-coding-system'. | |||
| 223 | --- | 225 | --- |
| 224 | *** New input methods for Farsi: farsi and farsi-translit. | 226 | *** New input methods for Farsi: farsi and farsi-translit. |
| 225 | 227 | ||
| 228 | +++ | ||
| 229 | *** `nobreak-char-display' now also highlights Unicode hyphen chars | ||
| 230 | (U+2010 and U+2011). | ||
| 231 | |||
| 226 | ** Improved GTK integration | 232 | ** Improved GTK integration |
| 227 | 233 | ||
| 228 | *** GTK scroll-bars are now placed on the right by default. | 234 | *** GTK scroll-bars are now placed on the right by default. |
| @@ -236,10 +242,10 @@ is taken from the desktop settings. | |||
| 236 | The frame-parameter tool-bar-position controls this. It takes the values | 242 | The frame-parameter tool-bar-position controls this. It takes the values |
| 237 | top, left, right or bottom. The Options => Show/Hide menu has entries | 243 | top, left, right or bottom. The Options => Show/Hide menu has entries |
| 238 | for this. | 244 | for this. |
| 239 | 245 | +++ | |
| 240 | *** The colors for selected text (the region face) are taken from the GTK | 246 | *** The colors for selected text (the `region' face) are taken from |
| 241 | theme when Emacs is built with GTK. | 247 | the GTK theme when Emacs is built with GTK. |
| 242 | 248 | +++ | |
| 243 | *** Emacs uses GTK tooltips by default if built with GTK. You can turn that | 249 | *** Emacs uses GTK tooltips by default if built with GTK. You can turn that |
| 244 | off by customizing x-gtk-use-system-tooltips. | 250 | off by customizing x-gtk-use-system-tooltips. |
| 245 | 251 | ||
| @@ -266,7 +272,7 @@ context in their return values. | |||
| 266 | 272 | ||
| 267 | *** The new functions file-selinux-context and set-file-selinux-context | 273 | *** The new functions file-selinux-context and set-file-selinux-context |
| 268 | get and set the SELinux context of a file. | 274 | get and set the SELinux context of a file. |
| 269 | 275 | --- | |
| 270 | *** Tramp offers handlers for file-selinux-context and set-file-selinux-context | 276 | *** Tramp offers handlers for file-selinux-context and set-file-selinux-context |
| 271 | for remote machines which support SELinux. | 277 | for remote machines which support SELinux. |
| 272 | 278 | ||
| @@ -442,7 +448,7 @@ pops up *Messages*" feature, which can now easily be changed. | |||
| 442 | +++ | 448 | +++ |
| 443 | *** C-y in Isearch is now bound to isearch-yank-kill, instead of | 449 | *** C-y in Isearch is now bound to isearch-yank-kill, instead of |
| 444 | isearch-yank-line. | 450 | isearch-yank-line. |
| 445 | --- | 451 | +++ |
| 446 | *** M-y in Isearch is now bound to isearch-yank-pop, instead of | 452 | *** M-y in Isearch is now bound to isearch-yank-pop, instead of |
| 447 | isearch-yank-kill. | 453 | isearch-yank-kill. |
| 448 | +++ | 454 | +++ |
| @@ -454,6 +460,7 @@ isearch-yank-kill. | |||
| 454 | *** `count-lines-region' is now an alias for `count-words-region', | 460 | *** `count-lines-region' is now an alias for `count-words-region', |
| 455 | bound to M-=, which shows the number of lines, words, and characters. | 461 | bound to M-=, which shows the number of lines, words, and characters. |
| 456 | 462 | ||
| 463 | +++ | ||
| 457 | ** The default value of `backup-by-copying-when-mismatch' is now t. | 464 | ** The default value of `backup-by-copying-when-mismatch' is now t. |
| 458 | 465 | ||
| 459 | +++ | 466 | +++ |
| @@ -554,6 +561,7 @@ updates later on, and Emacs appears to be unable to keep up. | |||
| 554 | 561 | ||
| 555 | * Changes in Specialized Modes and Packages in Emacs 24.1 | 562 | * Changes in Specialized Modes and Packages in Emacs 24.1 |
| 556 | 563 | ||
| 564 | +++ | ||
| 557 | ** Archive Mode has basic support for browsing and updating 7z archives. | 565 | ** Archive Mode has basic support for browsing and updating 7z archives. |
| 558 | 566 | ||
| 559 | ** browse-url has a new variable `browse-url-mailto-function' | 567 | ** browse-url has a new variable `browse-url-mailto-function' |
| @@ -798,12 +806,12 @@ additional details about each column. | |||
| 798 | *** latex-electric-env-pair-mode keeps \begin..\end matched on the fly. | 806 | *** latex-electric-env-pair-mode keeps \begin..\end matched on the fly. |
| 799 | 807 | ||
| 800 | ** Tramp | 808 | ** Tramp |
| 801 | 809 | --- | |
| 802 | *** There exists a new inline access method "ksu" (kerberized su). | 810 | *** There exists a new inline access method "ksu" (kerberized su). |
| 803 | 811 | --- | |
| 804 | *** The following access methods are discontinued: "ssh1_old", | 812 | *** The following access methods are discontinued: "ssh1_old", |
| 805 | "ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish". | 813 | "ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish". |
| 806 | 814 | --- | |
| 807 | *** The option `ange-ftp-binary-file-name-regexp' has changed its | 815 | *** The option `ange-ftp-binary-file-name-regexp' has changed its |
| 808 | default value to "". | 816 | default value to "". |
| 809 | 817 | ||
| @@ -844,6 +852,15 @@ binding `log-view-expanded-log-entry-function' to a suitable function. | |||
| 844 | *** New command `vc-ediff' allows visual comparison of two revisions | 852 | *** New command `vc-ediff' allows visual comparison of two revisions |
| 845 | of a file similar to `vc-diff', but using ediff backend. | 853 | of a file similar to `vc-diff', but using ediff backend. |
| 846 | 854 | ||
| 855 | +++ | ||
| 856 | *** The option `vc-initial-comment' was removed in Emacs 23.2, but | ||
| 857 | this was not advertised at the time. | ||
| 858 | |||
| 859 | +++ | ||
| 860 | *** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'. | ||
| 861 | Since Emacs 23, it has done the same thing as `toggle-read-only', but | ||
| 862 | this was not advertised at the time. | ||
| 863 | |||
| 847 | ** FIXME: xdg-open for browse-url and reportbug, 2010/08. | 864 | ** FIXME: xdg-open for browse-url and reportbug, 2010/08. |
| 848 | 865 | ||
| 849 | ** Obsolete modes | 866 | ** Obsolete modes |
| @@ -873,6 +890,7 @@ They are superseded by shift-select-mode enabled by default in 23.1. | |||
| 873 | 890 | ||
| 874 | * New Modes and Packages in Emacs 24.1 | 891 | * New Modes and Packages in Emacs 24.1 |
| 875 | 892 | ||
| 893 | +++ | ||
| 876 | ** Occur Edit mode applies edits made in *Occur* buffers to the | 894 | ** Occur Edit mode applies edits made in *Occur* buffers to the |
| 877 | original buffers. It is bound to "e" in Occur mode. | 895 | original buffers. It is bound to "e" in Occur mode. |
| 878 | 896 | ||
| @@ -1146,6 +1164,7 @@ combined with minibuffer-local-must-match-map. | |||
| 1146 | *** New variable `completing-read-function' allows overriding the | 1164 | *** New variable `completing-read-function' allows overriding the |
| 1147 | behavior of `completing-read'. | 1165 | behavior of `completing-read'. |
| 1148 | 1166 | ||
| 1167 | +++ | ||
| 1149 | ** `glyphless-char-display' can now distinguish between graphical and | 1168 | ** `glyphless-char-display' can now distinguish between graphical and |
| 1150 | text terminal display, via a char-table entry that is a cons cell. | 1169 | text terminal display, via a char-table entry that is a cons cell. |
| 1151 | 1170 | ||
| @@ -1311,6 +1330,8 @@ Use `filter-buffer-substring-functions' instead. | |||
| 1311 | *** `byte-compile-disable-print-circle' is obsolete. | 1330 | *** `byte-compile-disable-print-circle' is obsolete. |
| 1312 | 1331 | ||
| 1313 | *** `deferred-action-list' and `deferred-action-function' are obsolete. | 1332 | *** `deferred-action-list' and `deferred-action-function' are obsolete. |
| 1333 | +++ | ||
| 1334 | *** `font-lock-maximum-size' is obsolete. | ||
| 1314 | 1335 | ||
| 1315 | 1336 | ||
| 1316 | * Changes in Emacs 24.1 on non-free operating systems | 1337 | * Changes in Emacs 24.1 on non-free operating systems |
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 9e473156a78..e85972f0bfd 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -171,6 +171,14 @@ optimization. To do this, configure Emacs with | |||
| 171 | 171 | ||
| 172 | CFLAGS="-g -O2 -fno-optimize-sibling-calls" ./configure | 172 | CFLAGS="-g -O2 -fno-optimize-sibling-calls" ./configure |
| 173 | 173 | ||
| 174 | ** Emacs compiled with GCC 4.6.1 crashes on MS-Windows when C-g is pressed | ||
| 175 | |||
| 176 | This is known to happen when Emacs is compiled with MinGW GCC 4.6.1 | ||
| 177 | with the -O2 option (which is the default in the Windows build). The | ||
| 178 | reason is a bug in MinGW GCC 4.6.1; to work around, either add the | ||
| 179 | `-fno-omit-frame-pointer' switch to GCC or compile without | ||
| 180 | optimizations (`--no-opt' switch to the configure.bat script). | ||
| 181 | |||
| 174 | ** Emacs crashes in x-popup-dialog. | 182 | ** Emacs crashes in x-popup-dialog. |
| 175 | 183 | ||
| 176 | This can happen if the dialog widget cannot find the font it wants to | 184 | This can happen if the dialog widget cannot find the font it wants to |
diff --git a/etc/themes/deeper-blue-theme.el b/etc/themes/deeper-blue-theme.el index 5c93e84d078..0fbd9496969 100644 --- a/etc/themes/deeper-blue-theme.el +++ b/etc/themes/deeper-blue-theme.el | |||
| @@ -37,7 +37,7 @@ | |||
| 37 | `(compilation-line-number ((,class (:foreground "LightGreen")))) | 37 | `(compilation-line-number ((,class (:foreground "LightGreen")))) |
| 38 | `(cperl-array-face ((,class (:foreground "yellow2")))) | 38 | `(cperl-array-face ((,class (:foreground "yellow2")))) |
| 39 | `(cperl-hash-face ((,class (:foreground "coral1")))) | 39 | `(cperl-hash-face ((,class (:foreground "coral1")))) |
| 40 | `(cursor ((,class (:background "green" :foreground "black")))) | 40 | `(cursor ((,class (:background "green")))) |
| 41 | `(default ((,class (:background "#181a26" :foreground "gray80")))) | 41 | `(default ((,class (:background "#181a26" :foreground "gray80")))) |
| 42 | `(diff-added ((,class (nil)))) | 42 | `(diff-added ((,class (nil)))) |
| 43 | `(diff-changed ((,class (nil)))) | 43 | `(diff-changed ((,class (nil)))) |
diff --git a/etc/themes/dichromacy-theme.el b/etc/themes/dichromacy-theme.el index 3c260118b26..80215e564f5 100644 --- a/etc/themes/dichromacy-theme.el +++ b/etc/themes/dichromacy-theme.el | |||
| @@ -42,7 +42,7 @@ Ansi-Color faces are included.") | |||
| 42 | (custom-theme-set-faces | 42 | (custom-theme-set-faces |
| 43 | 'dichromacy | 43 | 'dichromacy |
| 44 | `(default ((,class (:foreground "black" :background "white")))) | 44 | `(default ((,class (:foreground "black" :background "white")))) |
| 45 | `(cursor ((,class (:foreground "white" :background "black")))) | 45 | `(cursor ((,class (:background "black")))) |
| 46 | ;; Highlighting faces | 46 | ;; Highlighting faces |
| 47 | `(fringe ((,class (:background "#f7f7f7")))) | 47 | `(fringe ((,class (:background "#f7f7f7")))) |
| 48 | `(highlight ((,class (:foreground ,blue :background "#e5e5e5")))) | 48 | `(highlight ((,class (:foreground ,blue :background "#e5e5e5")))) |
diff --git a/etc/themes/misterioso-theme.el b/etc/themes/misterioso-theme.el index ab4b2bc6191..6e38a43a4f0 100644 --- a/etc/themes/misterioso-theme.el +++ b/etc/themes/misterioso-theme.el | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | (:background "#2d3743" :foreground "#e1e1e0")) | 33 | (:background "#2d3743" :foreground "#e1e1e0")) |
| 34 | (,class | 34 | (,class |
| 35 | (:background "#3a3a3a" :foreground "#e1e1e0")))) | 35 | (:background "#3a3a3a" :foreground "#e1e1e0")))) |
| 36 | `(cursor ((,class (:background "#415160" :foreground "#415160")))) | 36 | `(cursor ((,class (:background "#415160")))) |
| 37 | ;; Highlighting faces | 37 | ;; Highlighting faces |
| 38 | `(fringe ((,class (:background "#2e3748")))) | 38 | `(fringe ((,class (:background "#2e3748")))) |
| 39 | `(highlight ((,class (:background "#338f86" :foreground "#e1e1e0")))) | 39 | `(highlight ((,class (:background "#338f86" :foreground "#e1e1e0")))) |
diff --git a/etc/themes/tango-dark-theme.el b/etc/themes/tango-dark-theme.el index 8f91d35e6a1..ae45966b347 100644 --- a/etc/themes/tango-dark-theme.el +++ b/etc/themes/tango-dark-theme.el | |||
| @@ -56,7 +56,7 @@ Semantic, and Ansi-Color faces are included.") | |||
| 56 | (:foreground ,alum-1 :background "#222")) | 56 | (:foreground ,alum-1 :background "#222")) |
| 57 | (,class | 57 | (,class |
| 58 | (:foreground ,alum-1 :background "black")))) | 58 | (:foreground ,alum-1 :background "black")))) |
| 59 | `(cursor ((,class (:foreground ,alum-6 :background ,butter-1)))) | 59 | `(cursor ((,class (:background ,butter-1)))) |
| 60 | ;; Highlighting faces | 60 | ;; Highlighting faces |
| 61 | `(fringe ((,class (:background ,alum-7)))) | 61 | `(fringe ((,class (:background ,alum-7)))) |
| 62 | `(highlight ((,class (:foreground ,alum-6 :background ,butter-2)))) | 62 | `(highlight ((,class (:foreground ,alum-6 :background ,butter-2)))) |
diff --git a/etc/themes/tango-theme.el b/etc/themes/tango-theme.el index f504d764277..b46bd677f21 100644 --- a/etc/themes/tango-theme.el +++ b/etc/themes/tango-theme.el | |||
| @@ -49,7 +49,7 @@ Semantic, and Ansi-Color faces are included.") | |||
| 49 | (custom-theme-set-faces | 49 | (custom-theme-set-faces |
| 50 | 'tango | 50 | 'tango |
| 51 | `(default ((,class (:foreground ,alum-6 :background ,alum-1)))) | 51 | `(default ((,class (:foreground ,alum-6 :background ,alum-1)))) |
| 52 | `(cursor ((,class (:foreground ,alum-1 :background ,blue-3)))) | 52 | `(cursor ((,class (:background ,blue-3)))) |
| 53 | ;; Highlighting faces | 53 | ;; Highlighting faces |
| 54 | `(fringe ((,class (:background ,alum-2)))) | 54 | `(fringe ((,class (:background ,alum-2)))) |
| 55 | `(highlight ((,class (:background ,alum-3)))) | 55 | `(highlight ((,class (:background ,alum-3)))) |
diff --git a/etc/themes/wheatgrass-theme.el b/etc/themes/wheatgrass-theme.el index 63ebc247b9d..50db2661a99 100644 --- a/etc/themes/wheatgrass-theme.el +++ b/etc/themes/wheatgrass-theme.el | |||
| @@ -29,7 +29,7 @@ of green, brown, and blue.") | |||
| 29 | (custom-theme-set-faces | 29 | (custom-theme-set-faces |
| 30 | 'wheatgrass | 30 | 'wheatgrass |
| 31 | `(default ((,class (:foreground "wheat" :background "black")))) | 31 | `(default ((,class (:foreground "wheat" :background "black")))) |
| 32 | `(cursor ((,class (:foreground "black" :background "thistle")))) | 32 | `(cursor ((,class (:background "thistle")))) |
| 33 | `(error ((,class (:foreground "salmon1")))) | 33 | `(error ((,class (:foreground "salmon1")))) |
| 34 | `(warning ((,class (:foreground "orange")))) | 34 | `(warning ((,class (:foreground "orange")))) |
| 35 | `(success ((,class (:foreground "yellow green")))) | 35 | `(success ((,class (:foreground "yellow green")))) |
diff --git a/etc/themes/whiteboard-theme.el b/etc/themes/whiteboard-theme.el index e0fa7ff7ff7..e5c808df68d 100644 --- a/etc/themes/whiteboard-theme.el +++ b/etc/themes/whiteboard-theme.el | |||
| @@ -38,7 +38,7 @@ | |||
| 38 | `(cperl-array-face ((,class (:foreground "SlateBlue3")))) | 38 | `(cperl-array-face ((,class (:foreground "SlateBlue3")))) |
| 39 | `(cperl-hash-face ((,class (:foreground "turquoise3")))) | 39 | `(cperl-hash-face ((,class (:foreground "turquoise3")))) |
| 40 | `(cperl-nonoverridable-face ((,class (:foreground "orchid3")))) | 40 | `(cperl-nonoverridable-face ((,class (:foreground "orchid3")))) |
| 41 | `(cursor ((,class (:background "Green4" :foreground "gainsboro")))) | 41 | `(cursor ((,class (:background "Green4")))) |
| 42 | `(default ((,class (:background "whitesmoke" :foreground "black")))) | 42 | `(default ((,class (:background "whitesmoke" :foreground "black")))) |
| 43 | `(dired-marked ((,class (:background "dodgerblue3" :foreground "white")))) | 43 | `(dired-marked ((,class (:background "dodgerblue3" :foreground "white")))) |
| 44 | `(flymake-errline ((,class (:background nil :underline "red")))) | 44 | `(flymake-errline ((,class (:background nil :underline "red")))) |
diff --git a/etc/themes/wombat-theme.el b/etc/themes/wombat-theme.el index 2aa64f894bf..6691b4a4016 100644 --- a/etc/themes/wombat-theme.el +++ b/etc/themes/wombat-theme.el | |||
| @@ -31,7 +31,7 @@ are included.") | |||
| 31 | (custom-theme-set-faces | 31 | (custom-theme-set-faces |
| 32 | 'wombat | 32 | 'wombat |
| 33 | `(default ((,class (:background "#242424" :foreground "#f6f3e8")))) | 33 | `(default ((,class (:background "#242424" :foreground "#f6f3e8")))) |
| 34 | `(cursor ((,class (:background "#656565" :foreground "#f6f3e8")))) | 34 | `(cursor ((,class (:background "#656565")))) |
| 35 | ;; Highlighting faces | 35 | ;; Highlighting faces |
| 36 | `(fringe ((,class (:background "#303030")))) | 36 | `(fringe ((,class (:background "#303030")))) |
| 37 | `(highlight ((,class (:background "#454545" :foreground "#ffffff" | 37 | `(highlight ((,class (:background "#454545" :foreground "#ffffff" |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index abae693d0c8..09e2e7dc1de 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,278 @@ | |||
| 1 | 2011-10-23 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * files.el (toggle-read-only): Remove obsolete comment about | ||
| 4 | version control. | ||
| 5 | |||
| 6 | * vc/vc-hooks.el (vc-toggle-read-only): Make it an obsolete alias | ||
| 7 | for toggle-read-only. Note that this hasn't called vc-next-action | ||
| 8 | since 2008-05-02, though it wasn't documented at the time. | ||
| 9 | |||
| 10 | * vc/ediff-init.el (ediff-toggle-read-only-function): Use | ||
| 11 | toggle-read-only. | ||
| 12 | |||
| 13 | 2011-10-22 Alan Mackenzie <bug-cc-mode@gnu.org> | ||
| 14 | |||
| 15 | Fix bug #9560, sporadic wrong indentation; improve instrumentation | ||
| 16 | of c-parse-state. | ||
| 17 | |||
| 18 | * cc-engine.el (c-append-lower-brace-pair-to-state-cache): correct | ||
| 19 | faulty logical expression. | ||
| 20 | (c-parse-state-state, c-record-parse-state-state): | ||
| 21 | (c-replay-parse-state-state): New defvar/defuns. | ||
| 22 | (c-debug-parse-state): Use new functions. | ||
| 23 | |||
| 24 | 2011-10-22 Martin Rudalics <rudalics@gmx.at> | ||
| 25 | |||
| 26 | * mouse.el (mouse-drag-line): Fix minibuffer resizing broken by | ||
| 27 | last fix. Use window-in-direction correctly. | ||
| 28 | |||
| 29 | 2011-10-21 Chong Yidong <cyd@gnu.org> | ||
| 30 | |||
| 31 | * progmodes/idlwave.el (idlwave-mode): | ||
| 32 | * progmodes/vera-mode.el (vera-mode): No need to set | ||
| 33 | require-final-newline; that's done in prog-mode. Suggested by | ||
| 34 | Stefan Monnier. | ||
| 35 | |||
| 36 | 2011-10-21 Martin Rudalics <rudalics@gmx.at> | ||
| 37 | |||
| 38 | * mouse.el (mouse-drag-window-above) | ||
| 39 | (mouse-drag-move-window-bottom, mouse-drag-move-window-top) | ||
| 40 | (mouse-drag-mode-line-1, mouse-drag-header-line) | ||
| 41 | (mouse-drag-vertical-line-rightward-window): Remove. | ||
| 42 | (mouse-drag-line): New function. | ||
| 43 | (mouse-drag-mode-line, mouse-drag-header-line) | ||
| 44 | (mouse-drag-vertical-line): Call mouse-drag-line. | ||
| 45 | * window.el (window-at-side-p, windows-at-side): New functions. | ||
| 46 | |||
| 47 | 2011-10-21 Ulrich Mueller <ulm@gentoo.org> | ||
| 48 | |||
| 49 | * tar-mode.el (tar-grind-file-mode): | ||
| 50 | Fix handling of setuid/setgid, handle sticky bit. (Bug#9817) | ||
| 51 | |||
| 52 | 2011-10-21 Chong Yidong <cyd@gnu.org> | ||
| 53 | |||
| 54 | * progmodes/idlwave.el (idlwave-mode): | ||
| 55 | * progmodes/vera-mode.el (vera-mode): Use | ||
| 56 | mode-require-final-newline. | ||
| 57 | |||
| 58 | 2011-10-20 Glenn Morris <rgm@gnu.org> | ||
| 59 | |||
| 60 | * vc/vc.el (vc-next-action): Handle removed directories. (Bug#9781) | ||
| 61 | |||
| 62 | 2011-10-20 Christoph Scholtes <cschol2112@googlemail.com> | ||
| 63 | |||
| 64 | * emulation/cua-base.el (cua-set-mark): Fix case of string. | ||
| 65 | |||
| 66 | 2011-10-20 Chong Yidong <cyd@gnu.org> | ||
| 67 | |||
| 68 | * emulation/cua-base.el (cua-mode): | ||
| 69 | * mail/footnote.el (footnote-mode): | ||
| 70 | * mail/mailabbrev.el (mail-abbrevs-mode): | ||
| 71 | * net/xesam.el (xesam-minor-mode): | ||
| 72 | * progmodes/bug-reference.el (bug-reference-mode): | ||
| 73 | * progmodes/cap-words.el (capitalized-words-mode): | ||
| 74 | * progmodes/compile.el (compilation-minor-mode) | ||
| 75 | (compilation-shell-minor-mode): | ||
| 76 | * progmodes/gud.el (gud-tooltip-mode): | ||
| 77 | * progmodes/hideif.el (hide-ifdef-mode): | ||
| 78 | * progmodes/idlw-shell.el (idlwave-shell-electric-debug-mode): | ||
| 79 | * progmodes/subword.el (subword-mode): | ||
| 80 | * progmodes/vhdl-mode.el (vhdl-electric-mode, vhdl-stutter-mode): | ||
| 81 | * progmodes/which-func.el (which-function-mode): | ||
| 82 | * term/tvi970.el (tvi970-set-keypad-mode): | ||
| 83 | * term/vt100.el (vt100-wide-mode): | ||
| 84 | * textmodes/flyspell.el (flyspell-mode): | ||
| 85 | * textmodes/ispell.el (ispell-minor-mode): | ||
| 86 | * textmodes/nroff-mode.el (nroff-electric-mode): | ||
| 87 | * textmodes/paragraphs.el (use-hard-newlines): | ||
| 88 | * textmodes/refill.el (refill-mode): | ||
| 89 | * textmodes/reftex.el (reftex-mode): | ||
| 90 | * textmodes/rst.el (rst-minor-mode): | ||
| 91 | * textmodes/sgml-mode.el (html-autoview-mode) | ||
| 92 | (sgml-electric-tag-pair-mode): | ||
| 93 | * textmodes/tex-mode.el (latex-electric-env-pair-mode): | ||
| 94 | * vc/diff-mode.el (diff-auto-refine-mode, diff-minor-mode): | ||
| 95 | * emulation/crisp.el (crisp-mode): | ||
| 96 | * emacs-lisp/eldoc.el (eldoc-mode): | ||
| 97 | * emacs-lisp/checkdoc.el (checkdoc-minor-mode): Doc fixes for new | ||
| 98 | minor mode behavior. | ||
| 99 | |||
| 100 | 2011-10-19 Juri Linkov <juri@jurta.org> | ||
| 101 | |||
| 102 | * descr-text.el (describe-char): Add #x2010 and #x2011 to | ||
| 103 | the list of hard-coded chars with escape-glyph face. | ||
| 104 | |||
| 105 | 2011-10-19 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 106 | |||
| 107 | * vc/log-edit.el (log-edit-empty-buffer-p): Ignore empty headers. | ||
| 108 | |||
| 109 | 2011-10-19 Michael Albinus <michael.albinus@gmx.de> | ||
| 110 | |||
| 111 | * net/tramp.el (tramp-connectable-p): Make a stronger check on a | ||
| 112 | running process. | ||
| 113 | |||
| 114 | 2011-10-19 Glenn Morris <rgm@gnu.org> | ||
| 115 | |||
| 116 | * vc/vc-bzr.el (vc-bzr-after-dir-status): | ||
| 117 | Ignore ignored files. (Bug#9726) | ||
| 118 | |||
| 119 | 2011-10-19 Chong Yidong <cyd@gnu.org> | ||
| 120 | |||
| 121 | Doc fix for minor modes, stating that an omitted argument enables | ||
| 122 | the mode unconditionally when called from Lisp. | ||
| 123 | |||
| 124 | * abbrev.el (abbrev-mode): | ||
| 125 | * allout.el (allout-mode): | ||
| 126 | * autoinsert.el (auto-insert-mode): | ||
| 127 | * autoarg.el (autoarg-mode, autoarg-kp-mode): | ||
| 128 | * autorevert.el (auto-revert-mode, auto-revert-tail-mode) | ||
| 129 | (global-auto-revert-mode): | ||
| 130 | * battery.el (display-battery-mode): | ||
| 131 | * composite.el (global-auto-composition-mode) | ||
| 132 | (auto-composition-mode): | ||
| 133 | * delsel.el (delete-selection-mode): | ||
| 134 | * desktop.el (desktop-save-mode): | ||
| 135 | * dired-x.el (dired-omit-mode): | ||
| 136 | * dirtrack.el (dirtrack-mode): | ||
| 137 | * doc-view.el (doc-view-minor-mode): | ||
| 138 | * double.el (double-mode): | ||
| 139 | * electric.el (electric-indent-mode, electric-pair-mode): | ||
| 140 | * emacs-lock.el (emacs-lock-mode): | ||
| 141 | * epa-hook.el (auto-encryption-mode): | ||
| 142 | * follow.el (follow-mode): | ||
| 143 | * font-core.el (font-lock-mode): | ||
| 144 | * frame.el (auto-raise-mode, auto-lower-mode, blink-cursor-mode): | ||
| 145 | * help.el (temp-buffer-resize-mode): | ||
| 146 | * hilit-chg.el (highlight-changes-mode) | ||
| 147 | (highlight-changes-visible-mode): | ||
| 148 | * hi-lock.el (hi-lock-mode): | ||
| 149 | * hl-line.el (hl-line-mode, global-hl-line-mode): | ||
| 150 | * icomplete.el (icomplete-mode): | ||
| 151 | * ido.el (ido-everywhere): | ||
| 152 | * image-file.el (auto-image-file-mode): | ||
| 153 | * image-mode.el (image-minor-mode): | ||
| 154 | * iswitchb.el (iswitchb-mode): | ||
| 155 | * jka-cmpr-hook.el (auto-compression-mode): | ||
| 156 | * linum.el (linum-mode): | ||
| 157 | * longlines.el (longlines-mode): | ||
| 158 | * master.el (master-mode): | ||
| 159 | * mb-depth.el (minibuffer-depth-indicate-mode): | ||
| 160 | * menu-bar.el (menu-bar-mode): | ||
| 161 | * minibuf-eldef.el (minibuffer-electric-default-mode): | ||
| 162 | * mouse-sel.el (mouse-sel-mode): | ||
| 163 | * msb.el (msb-mode): | ||
| 164 | * mwheel.el (mouse-wheel-mode): | ||
| 165 | * outline.el (outline-minor-mode): | ||
| 166 | * paren.el (show-paren-mode): | ||
| 167 | * recentf.el (recentf-mode): | ||
| 168 | * reveal.el (reveal-mode, global-reveal-mode): | ||
| 169 | * rfn-eshadow.el (file-name-shadow-mode): | ||
| 170 | * ruler-mode.el (ruler-mode): | ||
| 171 | * savehist.el (savehist-mode): | ||
| 172 | * scroll-all.el (scroll-all-mode): | ||
| 173 | * scroll-bar.el (scroll-bar-mode): | ||
| 174 | * server.el (server-mode): | ||
| 175 | * shell.el (shell-dirtrack-mode): | ||
| 176 | * simple.el (auto-fill-mode, transient-mark-mode) | ||
| 177 | (visual-line-mode, overwrite-mode, binary-overwrite-mode) | ||
| 178 | (line-number-mode, column-number-mode, size-indication-mode) | ||
| 179 | (auto-save-mode, normal-erase-is-backspace-mode, visible-mode): | ||
| 180 | * strokes.el (strokes-mode): | ||
| 181 | * time.el (display-time-mode): | ||
| 182 | * t-mouse.el (gpm-mouse-mode): | ||
| 183 | * tool-bar.el (tool-bar-mode): | ||
| 184 | * tooltip.el (tooltip-mode): | ||
| 185 | * type-break.el (type-break-mode-line-message-mode) | ||
| 186 | (type-break-query-mode): | ||
| 187 | * view.el (view-mode): | ||
| 188 | * whitespace.el (whitespace-mode, whitespace-newline-mode) | ||
| 189 | (global-whitespace-mode, global-whitespace-newline-mode): | ||
| 190 | * xt-mouse.el (xterm-mouse-mode): Doc fix. | ||
| 191 | |||
| 192 | * emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Fix | ||
| 193 | autogenerated docstring. | ||
| 194 | |||
| 195 | 2011-10-19 Juri Linkov <juri@jurta.org> | ||
| 196 | |||
| 197 | * net/browse-url.el (browse-url-can-use-xdg-open): Support LXDE | ||
| 198 | by checking environment variables "DESKTOP_SESSION" and | ||
| 199 | "XDG_CURRENT_DESKTOP". (Bug#9779) | ||
| 200 | |||
| 201 | 2011-10-19 Juri Linkov <juri@jurta.org> | ||
| 202 | |||
| 203 | * net/browse-url.el (browse-url-browser-function): Add "Chromium". | ||
| 204 | (browse-url-chromium-program, browse-url-chromium-arguments): | ||
| 205 | New defcustoms. | ||
| 206 | (browse-url-default-browser): Check for `browse-url-chromium' and | ||
| 207 | call `browse-url-chromium-program'. | ||
| 208 | (browse-url-chromium): New command. (Bug#9779) | ||
| 209 | |||
| 210 | 2011-10-18 Juanma Barranquero <lekktu@gmail.com> | ||
| 211 | |||
| 212 | * facemenu.el (list-colors-duplicates): On Windows, detect more | ||
| 213 | duplicates by assuming that only colors matching "^System" are | ||
| 214 | special "system colors". (Bug#9722) | ||
| 215 | |||
| 216 | 2011-10-18 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 217 | |||
| 218 | * vc/log-edit.el (log-edit): Add "Author:" header to encourage people | ||
| 219 | to distinguish the author from the committer. | ||
| 220 | |||
| 221 | 2011-10-18 Michael Albinus <michael.albinus@gmx.de> | ||
| 222 | |||
| 223 | * net/tramp.el (tramp-file-name-handler): Load Tramp packages silently. | ||
| 224 | |||
| 225 | 2011-10-18 Jirka Kosek <jirka@kosek.cz> (tiny change) | ||
| 226 | |||
| 227 | * international/mule.el (sgml-html-meta-auto-coding-function): | ||
| 228 | Add support for detecting encoding in HTML5 specified only as | ||
| 229 | <meta charset="UTF-8">. Implementation just makes http-equiv and | ||
| 230 | content-type parts from HTML4 encoding string optional. (Bug#9716) | ||
| 231 | |||
| 232 | 2011-10-18 Glenn Morris <rgm@gnu.org> | ||
| 233 | |||
| 234 | * vc/vc.el (vc-initial-comment): Mark as obsolete. (Bug#9745) | ||
| 235 | |||
| 236 | 2011-10-18 Chong Yidong <cyd@gnu.org> | ||
| 237 | |||
| 238 | * faces.el (cursor): Doc fix. | ||
| 239 | |||
| 240 | 2011-10-17 Chong Yidong <cyd@gnu.org> | ||
| 241 | |||
| 242 | * font-lock.el (font-lock-maximum-size): Mark as obsolete. | ||
| 243 | |||
| 244 | 2011-10-17 Ryan Barrett <emacs@ryanb.org> (tiny change) | ||
| 245 | |||
| 246 | * dirtrack.el (dirtrack): Support shell buffers with path | ||
| 247 | prefixes, e.g. tramp-based remote shells. (Bug#9647) | ||
| 248 | |||
| 249 | 2011-10-17 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 250 | |||
| 251 | * json.el: Bump version to 1.3 and note change in History. | ||
| 252 | (json-alist-p, json-plist-p): Rewrite to avoid recursion. | ||
| 253 | |||
| 254 | 2011-10-17 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 255 | |||
| 256 | * comint.el (comint-insert-input, comint-send-input) | ||
| 257 | (comint-get-old-input-default, comint-backward-matching-input) | ||
| 258 | (comint-next-prompt): Use nil instead of `input' for field property of | ||
| 259 | past user input (bug#114). | ||
| 260 | |||
| 261 | * minibuffer.el (completion--replace): Inherit surrounding properties | ||
| 262 | (bug#114). | ||
| 263 | (minibuffer-complete-and-exit): Use it. | ||
| 264 | |||
| 265 | * comint.el (comint--table-subvert): Quote the all-completions output | ||
| 266 | (bug#9160). | ||
| 267 | |||
| 268 | 2011-10-17 Martin Rudalics <rudalics@gmx.at> | ||
| 269 | |||
| 270 | * ido.el (ido-default-buffer-method): Remove redundant :type entry. | ||
| 271 | |||
| 272 | * menu-bar.el (menu-bar-file-menu): Add entry for making new | ||
| 273 | window on right of selected. (Bug#9350) Reword other window | ||
| 274 | entries and separate them from frame entries. | ||
| 275 | |||
| 1 | 2011-10-15 Glenn Morris <rgm@gnu.org> | 276 | 2011-10-15 Glenn Morris <rgm@gnu.org> |
| 2 | 277 | ||
| 3 | * emacs-lisp/ert.el (ert--explain-equal-rec, ert-select-tests): | 278 | * emacs-lisp/ert.el (ert--explain-equal-rec, ert-select-tests): |
| @@ -5,8 +280,8 @@ | |||
| 5 | 280 | ||
| 6 | 2011-10-15 Chong Yidong <cyd@stupidchicken.com> | 281 | 2011-10-15 Chong Yidong <cyd@stupidchicken.com> |
| 7 | 282 | ||
| 8 | * net/network-stream.el (network-stream-open-starttls): Improve | 283 | * net/network-stream.el (network-stream-open-starttls): |
| 9 | detection of failure due to lack of TLS support. | 284 | Improve detection of failure due to lack of TLS support. |
| 10 | 285 | ||
| 11 | * mail/sendmail.el (sendmail-query-once): Tweak prompt message, | 286 | * mail/sendmail.el (sendmail-query-once): Tweak prompt message, |
| 12 | putting the input text in front and in bold. | 287 | putting the input text in front and in bold. |
| @@ -405,8 +680,8 @@ | |||
| 405 | 680 | ||
| 406 | * net/newst-reader.el (newsticker-html-renderer) | 681 | * net/newst-reader.el (newsticker-html-renderer) |
| 407 | (newsticker-show-news): Automatically | 682 | (newsticker-show-news): Automatically |
| 408 | load html rendering package if newsticker-html-renderer is | 683 | load html rendering package if newsticker-html-renderer is set. |
| 409 | set. Fixes "Warning: defvar ignored because w3m-fill-column is | 684 | Fixes "Warning: defvar ignored because w3m-fill-column is |
| 410 | let-bound" and the error "Symbol's value as variable is void: | 685 | let-bound" and the error "Symbol's value as variable is void: |
| 411 | w3m-fill-column". | 686 | w3m-fill-column". |
| 412 | 687 | ||
diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15 index 2acf847cddc..9cb24baeb1f 100644 --- a/lisp/ChangeLog.15 +++ b/lisp/ChangeLog.15 | |||
| @@ -22676,7 +22676,7 @@ | |||
| 22676 | (vc-next-action, vc-transfer-file, vc-rename-file): Also pass the | 22676 | (vc-next-action, vc-transfer-file, vc-rename-file): Also pass the |
| 22677 | backend when calling vc-mode-line. | 22677 | backend when calling vc-mode-line. |
| 22678 | (vc-register): Do not create a closure for calling the vc register | 22678 | (vc-register): Do not create a closure for calling the vc register |
| 22679 | function, call it directly. | 22679 | function, call it directly. No longer obey vc-initial-comment. |
| 22680 | 22680 | ||
| 22681 | 2009-06-23 Dan Nicolaescu <dann@ics.uci.edu> | 22681 | 2009-06-23 Dan Nicolaescu <dann@ics.uci.edu> |
| 22682 | 22682 | ||
diff --git a/lisp/abbrev.el b/lisp/abbrev.el index 5a7a741a3a6..395810772c5 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el | |||
| @@ -54,9 +54,12 @@ define global abbrevs instead." | |||
| 54 | 54 | ||
| 55 | (define-minor-mode abbrev-mode | 55 | (define-minor-mode abbrev-mode |
| 56 | "Toggle Abbrev mode in the current buffer. | 56 | "Toggle Abbrev mode in the current buffer. |
| 57 | With optional argument ARG, turn abbrev mode on if ARG is | 57 | With a prefix argument ARG, enable Abbrev mode if ARG is |
| 58 | positive, otherwise turn it off. In Abbrev mode, inserting an | 58 | positive, and disable it otherwise. If called from Lisp, enable |
| 59 | abbreviation causes it to expand and be replaced by its expansion." | 59 | Abbrev mode if ARG is omitted or nil. |
| 60 | |||
| 61 | In Abbrev mode, inserting an abbreviation causes it to expand and | ||
| 62 | be replaced by its expansion." | ||
| 60 | ;; It's defined in C, this stops the d-m-m macro defining it again. | 63 | ;; It's defined in C, this stops the d-m-m macro defining it again. |
| 61 | :variable abbrev-mode) | 64 | :variable abbrev-mode) |
| 62 | 65 | ||
diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el index ef75e7157e6..162da1f4815 100644 --- a/lisp/allout-widgets.el +++ b/lisp/allout-widgets.el | |||
| @@ -486,13 +486,14 @@ happens in the buffer.") | |||
| 486 | ;;;_ > define-minor-mode allout-widgets-mode (arg) | 486 | ;;;_ > define-minor-mode allout-widgets-mode (arg) |
| 487 | ;;;###autoload | 487 | ;;;###autoload |
| 488 | (define-minor-mode allout-widgets-mode | 488 | (define-minor-mode allout-widgets-mode |
| 489 | "Allout-mode extension, providing graphical decoration of outline structure. | 489 | "Toggle Allout Widgets mode. |
| 490 | 490 | With a prefix argument ARG, enable Allout Widgets mode if ARG is | |
| 491 | This is meant to operate along with allout-mode, via `allout-mode-hook'. | 491 | positive, and disable it otherwise. If called from Lisp, enable |
| 492 | 492 | the mode if ARG is omitted or nil. | |
| 493 | If optional argument ARG is greater than 0, enable. | 493 | |
| 494 | If optional argument ARG is less than 0, disable. | 494 | Allout Widgets mode is an extension of Allout mode that provides |
| 495 | Anything else, toggle between active and inactive. | 495 | graphical decoration of outline structure. It is meant to |
| 496 | operate along with `allout-mode', via `allout-mode-hook'. | ||
| 496 | 497 | ||
| 497 | The graphics include: | 498 | The graphics include: |
| 498 | 499 | ||
diff --git a/lisp/allout.el b/lisp/allout.el index 4002f12e264..18cc3c80dc6 100644 --- a/lisp/allout.el +++ b/lisp/allout.el | |||
| @@ -1702,17 +1702,19 @@ valid values." | |||
| 1702 | ;;;###autoload | 1702 | ;;;###autoload |
| 1703 | (define-minor-mode allout-mode | 1703 | (define-minor-mode allout-mode |
| 1704 | ;;;_ . Doc string: | 1704 | ;;;_ . Doc string: |
| 1705 | "Toggle minor mode for controlling exposure and editing of text outlines. | 1705 | "Toggle Allout outline mode. |
| 1706 | \\<allout-mode-map-value> | 1706 | With a prefix argument ARG, enable Allout outline mode if ARG is |
| 1707 | 1707 | positive, and disable it otherwise. If called from Lisp, enable | |
| 1708 | Allout outline mode always runs as a minor mode. | 1708 | the mode if ARG is omitted or nil. |
| 1709 | 1709 | ||
| 1710 | Allout outline mode provides extensive outline oriented | 1710 | \\<allout-mode-map-value> |
| 1711 | formatting and manipulation. It enables structural editing of | 1711 | Allout outline mode is a minor mode that provides extensive |
| 1712 | outlines, as well as navigation and exposure. It also is | 1712 | outline oriented formatting and manipulation. It enables |
| 1713 | specifically aimed at accommodating syntax-sensitive text like | 1713 | structural editing of outlines, as well as navigation and |
| 1714 | programming languages. \(For example, see the allout code itself, | 1714 | exposure. It also is specifically aimed at accommodating |
| 1715 | which is organized as an allout outline.) | 1715 | syntax-sensitive text like programming languages. \(For example, |
| 1716 | see the allout code itself, which is organized as an allout | ||
| 1717 | outline.) | ||
| 1716 | 1718 | ||
| 1717 | In addition to typical outline navigation and exposure, allout includes: | 1719 | In addition to typical outline navigation and exposure, allout includes: |
| 1718 | 1720 | ||
diff --git a/lisp/autoarg.el b/lisp/autoarg.el index 378ec1318b1..57f5bcd809c 100644 --- a/lisp/autoarg.el +++ b/lisp/autoarg.el | |||
| @@ -90,15 +90,19 @@ | |||
| 90 | 90 | ||
| 91 | ;;;###autoload | 91 | ;;;###autoload |
| 92 | (define-minor-mode autoarg-mode | 92 | (define-minor-mode autoarg-mode |
| 93 | "Toggle Autoarg minor mode globally. | 93 | "Toggle Autoarg mode, a global minor mode. |
| 94 | With ARG, turn Autoarg mode on if ARG is positive, off otherwise. | 94 | With a prefix argument ARG, enable Autoarg mode if ARG is |
| 95 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 96 | the mode if ARG is omitted or nil. | ||
| 97 | |||
| 95 | \\<autoarg-mode-map> | 98 | \\<autoarg-mode-map> |
| 96 | In Autoarg mode digits are bound to `digit-argument' -- i.e. they | 99 | In Autoarg mode, digits are bound to `digit-argument', i.e. they |
| 97 | supply prefix arguments as C-DIGIT and M-DIGIT normally do -- and | 100 | supply prefix arguments as C-DIGIT and M-DIGIT normally do. |
| 98 | C-DIGIT inserts DIGIT. \\[autoarg-terminate] terminates the prefix sequence | 101 | Furthermore, C-DIGIT inserts DIGIT. |
| 99 | and inserts the digits of the autoarg sequence into the buffer. | 102 | \\[autoarg-terminate] terminates the prefix sequence and inserts |
| 100 | Without a numeric prefix arg the normal binding of \\[autoarg-terminate] is | 103 | the digits of the autoarg sequence into the buffer. |
| 101 | invoked, i.e. what it would be with Autoarg mode off. | 104 | Without a numeric prefix arg, the normal binding of \\[autoarg-terminate] |
| 105 | is invoked, i.e. what it would be with Autoarg mode off. | ||
| 102 | 106 | ||
| 103 | For example: | 107 | For example: |
| 104 | `6 9 \\[autoarg-terminate]' inserts `69' into the buffer, as does `C-6 C-9'. | 108 | `6 9 \\[autoarg-terminate]' inserts `69' into the buffer, as does `C-6 C-9'. |
| @@ -112,11 +116,14 @@ then invokes the normal binding of \\[autoarg-terminate]. | |||
| 112 | 116 | ||
| 113 | ;;;###autoload | 117 | ;;;###autoload |
| 114 | (define-minor-mode autoarg-kp-mode | 118 | (define-minor-mode autoarg-kp-mode |
| 115 | "Toggle Autoarg-KP minor mode globally. | 119 | "Toggle Autoarg-KP mode, a global minor mode. |
| 116 | With ARG, turn Autoarg mode on if ARG is positive, off otherwise. | 120 | With a prefix argument ARG, enable Autoarg-KP mode if ARG is |
| 121 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 122 | the mode if ARG is omitted or nil. | ||
| 123 | |||
| 117 | \\<autoarg-kp-mode-map> | 124 | \\<autoarg-kp-mode-map> |
| 118 | This is similar to \\[autoarg-mode] but rebinds the keypad keys `kp-1' | 125 | This is similar to `autoarg-mode' but rebinds the keypad keys |
| 119 | etc. to supply digit arguments. | 126 | `kp-1' etc. to supply digit arguments. |
| 120 | 127 | ||
| 121 | \\{autoarg-kp-mode-map}" | 128 | \\{autoarg-kp-mode-map}" |
| 122 | nil " Aakp" autoarg-kp-mode-map :global t :group 'keyboard | 129 | nil " Aakp" autoarg-kp-mode-map :global t :group 'keyboard |
diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index 5793c3180be..6d002f4a217 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el | |||
| @@ -397,9 +397,10 @@ or if CONDITION had no actions, after all other CONDITIONs." | |||
| 397 | 397 | ||
| 398 | ;;;###autoload | 398 | ;;;###autoload |
| 399 | (define-minor-mode auto-insert-mode | 399 | (define-minor-mode auto-insert-mode |
| 400 | "Toggle Auto-insert mode. | 400 | "Toggle Auto-insert mode, a global minor mode. |
| 401 | With prefix ARG, turn Auto-insert mode on if and only if ARG is positive. | 401 | With a prefix argument ARG, enable Auto-insert mode if ARG is |
| 402 | Returns the new status of Auto-insert mode (non-nil means on). | 402 | positive, and disable it otherwise. If called from Lisp, enable |
| 403 | the mode if ARG is omitted or nil. | ||
| 403 | 404 | ||
| 404 | When Auto-insert mode is enabled, when new files are created you can | 405 | When Auto-insert mode is enabled, when new files are created you can |
| 405 | insert a template for the file depending on the mode of the buffer." | 406 | insert a template for the file depending on the mode of the buffer." |
diff --git a/lisp/autorevert.el b/lisp/autorevert.el index c67b6663bd0..817aaff55ca 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el | |||
| @@ -284,10 +284,15 @@ the list of old buffers.") | |||
| 284 | 284 | ||
| 285 | ;;;###autoload | 285 | ;;;###autoload |
| 286 | (define-minor-mode auto-revert-mode | 286 | (define-minor-mode auto-revert-mode |
| 287 | "Toggle reverting buffer when file on disk changes. | 287 | "Toggle reverting buffer when the file changes (Auto Revert mode). |
| 288 | With a prefix argument ARG, enable Auto Revert mode if ARG is | ||
| 289 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 290 | the mode if ARG is omitted or nil. | ||
| 291 | |||
| 292 | Auto Revert mode is a minor mode that affects only the current | ||
| 293 | buffer. When enabled, it reverts the buffer when the file on | ||
| 294 | disk changes. | ||
| 288 | 295 | ||
| 289 | With arg, turn Auto Revert mode on if and only if arg is positive. | ||
| 290 | This is a minor mode that affects only the current buffer. | ||
| 291 | Use `global-auto-revert-mode' to automatically revert all buffers. | 296 | Use `global-auto-revert-mode' to automatically revert all buffers. |
| 292 | Use `auto-revert-tail-mode' if you know that the file will only grow | 297 | Use `auto-revert-tail-mode' if you know that the file will only grow |
| 293 | without being changed in the part that is already in the buffer." | 298 | without being changed in the part that is already in the buffer." |
| @@ -314,14 +319,16 @@ This function is designed to be added to hooks, for example: | |||
| 314 | 319 | ||
| 315 | ;;;###autoload | 320 | ;;;###autoload |
| 316 | (define-minor-mode auto-revert-tail-mode | 321 | (define-minor-mode auto-revert-tail-mode |
| 317 | "Toggle reverting tail of buffer when file on disk grows. | 322 | "Toggle reverting tail of buffer when the file grows. |
| 318 | With arg, turn Tail mode on if arg is positive, otherwise turn it off. | 323 | With a prefix argument ARG, enable Auto-Revert Tail mode if ARG |
| 324 | is positive, and disable it otherwise. If called from Lisp, | ||
| 325 | enable the mode if ARG is omitted or nil. | ||
| 319 | 326 | ||
| 320 | When Tail mode is enabled, the tail of the file is constantly | 327 | When Auto Revert Tail mode is enabled, the tail of the file is |
| 321 | followed, as with the shell command `tail -f'. This means that | 328 | constantly followed, as with the shell command `tail -f'. This |
| 322 | whenever the file grows on disk (presumably because some | 329 | means that whenever the file grows on disk (presumably because |
| 323 | background process is appending to it from time to time), this is | 330 | some background process is appending to it from time to time), |
| 324 | reflected in the current buffer. | 331 | this is reflected in the current buffer. |
| 325 | 332 | ||
| 326 | You can edit the buffer and turn this mode off and on again as | 333 | You can edit the buffer and turn this mode off and on again as |
| 327 | you please. But make sure the background process has stopped | 334 | you please. But make sure the background process has stopped |
| @@ -367,7 +374,7 @@ Perform a full revert? ") | |||
| 367 | 374 | ||
| 368 | ;;;###autoload | 375 | ;;;###autoload |
| 369 | (defun turn-on-auto-revert-tail-mode () | 376 | (defun turn-on-auto-revert-tail-mode () |
| 370 | "Turn on Auto-Revert Tail Mode. | 377 | "Turn on Auto-Revert Tail mode. |
| 371 | 378 | ||
| 372 | This function is designed to be added to hooks, for example: | 379 | This function is designed to be added to hooks, for example: |
| 373 | (add-hook 'my-logfile-mode-hook 'turn-on-auto-revert-tail-mode)" | 380 | (add-hook 'my-logfile-mode-hook 'turn-on-auto-revert-tail-mode)" |
| @@ -377,12 +384,13 @@ This function is designed to be added to hooks, for example: | |||
| 377 | ;;;###autoload | 384 | ;;;###autoload |
| 378 | (define-minor-mode global-auto-revert-mode | 385 | (define-minor-mode global-auto-revert-mode |
| 379 | "Toggle Global Auto Revert mode. | 386 | "Toggle Global Auto Revert mode. |
| 380 | With optional prefix argument ARG, enable Global Auto Revert Mode | 387 | With a prefix argument ARG, enable Global Auto Revert mode if ARG |
| 381 | if ARG > 0, else disable it. | 388 | is positive, and disable it otherwise. If called from Lisp, |
| 389 | enable the mode if ARG is omitted or nil. | ||
| 382 | 390 | ||
| 383 | This is a global minor mode that reverts any buffer associated | 391 | Global Auto Revert mode is a global minor mode that reverts any |
| 384 | with a file when the file changes on disk. Use `auto-revert-mode' | 392 | buffer associated with a file when the file changes on disk. Use |
| 385 | to revert a particular buffer. | 393 | `auto-revert-mode' to revert a particular buffer. |
| 386 | 394 | ||
| 387 | If `global-auto-revert-non-file-buffers' is non-nil, this mode | 395 | If `global-auto-revert-non-file-buffers' is non-nil, this mode |
| 388 | may also revert some non-file buffers, as described in the | 396 | may also revert some non-file buffers, as described in the |
diff --git a/lisp/battery.el b/lisp/battery.el index f5c01fbef58..3b245ed644d 100644 --- a/lisp/battery.el +++ b/lisp/battery.el | |||
| @@ -164,10 +164,14 @@ The text being displayed in the echo area is controlled by the variables | |||
| 164 | 164 | ||
| 165 | ;;;###autoload | 165 | ;;;###autoload |
| 166 | (define-minor-mode display-battery-mode | 166 | (define-minor-mode display-battery-mode |
| 167 | "Display battery status information in the mode line. | 167 | "Toggle battery status display in mode line (Display Battery mode). |
| 168 | The text being displayed in the mode line is controlled by the variables | 168 | With a prefix argument ARG, enable Display Battery mode if ARG is |
| 169 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 170 | the mode if ARG is omitted or nil. | ||
| 171 | |||
| 172 | The text displayed in the mode line is controlled by | ||
| 169 | `battery-mode-line-format' and `battery-status-function'. | 173 | `battery-mode-line-format' and `battery-status-function'. |
| 170 | The mode line will be updated automatically every `battery-update-interval' | 174 | The mode line is be updated every `battery-update-interval' |
| 171 | seconds." | 175 | seconds." |
| 172 | :global t :group 'battery | 176 | :global t :group 'battery |
| 173 | (setq battery-mode-line-string "") | 177 | (setq battery-mode-line-string "") |
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 093e592c475..3dd0e6f78fd 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog | |||
| @@ -1,3 +1,20 @@ | |||
| 1 | 2011-10-23 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * ede.el (ede-maybe-checkout): Function deleted; | ||
| 4 | vc-toggle-read-only does not do version control now. | ||
| 5 | |||
| 6 | * ede/util.el (ede-make-buffer-writable): Don't use | ||
| 7 | vc-toggle-read-only. | ||
| 8 | |||
| 9 | * ede/project-am.el (project-remove-file, project-add-file) | ||
| 10 | (project-new-target): Don't call ede-maybe-checkout. | ||
| 11 | |||
| 12 | 2011-10-19 Chong Yidong <cyd@gnu.org> | ||
| 13 | |||
| 14 | * ede.el (ede-minor-mode,global-ede-mode): | ||
| 15 | * semantic.el (semantic-mode): Doc fix to reflect new | ||
| 16 | define-minor-mode calling behavior. | ||
| 17 | |||
| 1 | 2011-07-30 Chong Yidong <cyd@stupidchicken.com> | 18 | 2011-07-30 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 19 | ||
| 3 | * semantic/grammar.el (semantic-grammar-insert-defanalyzers): Fix | 20 | * semantic/grammar.el (semantic-grammar-insert-defanalyzers): Fix |
diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el index 307ccfdadd7..14f09517b1d 100644 --- a/lisp/cedet/ede.el +++ b/lisp/cedet/ede.el | |||
| @@ -398,8 +398,9 @@ To be used in hook functions." | |||
| 398 | 398 | ||
| 399 | (define-minor-mode ede-minor-mode | 399 | (define-minor-mode ede-minor-mode |
| 400 | "Toggle EDE (Emacs Development Environment) minor mode. | 400 | "Toggle EDE (Emacs Development Environment) minor mode. |
| 401 | With non-nil argument ARG, enable EDE minor mode if ARG is | 401 | With a prefix argument ARG, enable EDE minor mode if ARG is |
| 402 | positive; otherwise, disable it. | 402 | positive, and disable it otherwise. If called from Lisp, enable |
| 403 | EDE minor mode if ARG is omitted or nil. | ||
| 403 | 404 | ||
| 404 | If this file is contained, or could be contained in an EDE | 405 | If this file is contained, or could be contained in an EDE |
| 405 | controlled project, then this mode is activated automatically | 406 | controlled project, then this mode is activated automatically |
| @@ -458,8 +459,9 @@ ONOFF indicates enabling or disabling the mode." | |||
| 458 | ;;;###autoload | 459 | ;;;###autoload |
| 459 | (define-minor-mode global-ede-mode | 460 | (define-minor-mode global-ede-mode |
| 460 | "Toggle global EDE (Emacs Development Environment) mode. | 461 | "Toggle global EDE (Emacs Development Environment) mode. |
| 461 | With non-nil argument ARG, enable global EDE mode if ARG is | 462 | With a prefix argument ARG, enable global EDE mode if ARG is |
| 462 | positive; otherwise, disable it. | 463 | positive, and disable it otherwise. If called from Lisp, enable |
| 464 | the mode if ARG is omitted or nil. | ||
| 463 | 465 | ||
| 464 | This global minor mode enables `ede-minor-mode' in all buffers in | 466 | This global minor mode enables `ede-minor-mode' in all buffers in |
| 465 | an EDE controlled project." | 467 | an EDE controlled project." |
| @@ -1177,16 +1179,6 @@ See also `ede-map-subprojects'." | |||
| 1177 | Return the first non-nil value returned by PROC." | 1179 | Return the first non-nil value returned by PROC." |
| 1178 | (eval (cons 'or (ede-map-targets this proc)))) | 1180 | (eval (cons 'or (ede-map-targets this proc)))) |
| 1179 | 1181 | ||
| 1180 | ;;; VC Handling | ||
| 1181 | ;; | ||
| 1182 | (defun ede-maybe-checkout (&optional buffer) | ||
| 1183 | "Check BUFFER out of VC if necessary." | ||
| 1184 | (save-excursion | ||
| 1185 | (if buffer (set-buffer buffer)) | ||
| 1186 | (if (and buffer-read-only vc-mode | ||
| 1187 | (y-or-n-p "Checkout Makefile.am from VC? ")) | ||
| 1188 | (vc-toggle-read-only)))) | ||
| 1189 | |||
| 1190 | 1182 | ||
| 1191 | ;;; Some language specific methods. | 1183 | ;;; Some language specific methods. |
| 1192 | ;; | 1184 | ;; |
diff --git a/lisp/cedet/ede/project-am.el b/lisp/cedet/ede/project-am.el index 88cf67e22ed..ec54d8151bc 100644 --- a/lisp/cedet/ede/project-am.el +++ b/lisp/cedet/ede/project-am.el | |||
| @@ -214,7 +214,6 @@ OT is the object target. DIR is the directory to start in." | |||
| 214 | target (project-am-preferred-target-type (buffer-file-name))))) | 214 | target (project-am-preferred-target-type (buffer-file-name))))) |
| 215 | (ede-with-projectfile ot | 215 | (ede-with-projectfile ot |
| 216 | (makefile-move-to-macro (project-am-macro ot)) | 216 | (makefile-move-to-macro (project-am-macro ot)) |
| 217 | (ede-maybe-checkout) | ||
| 218 | (makefile-end-of-command) | 217 | (makefile-end-of-command) |
| 219 | (insert " " ofn) | 218 | (insert " " ofn) |
| 220 | (makefile-fill-paragraph nil) | 219 | (makefile-fill-paragraph nil) |
| @@ -226,10 +225,6 @@ OT is the object target. DIR is the directory to start in." | |||
| 226 | "Remove the current buffer from any project targets." | 225 | "Remove the current buffer from any project targets." |
| 227 | (ede-with-projectfile ot | 226 | (ede-with-projectfile ot |
| 228 | (makefile-move-to-macro (project-am-macro ot)) | 227 | (makefile-move-to-macro (project-am-macro ot)) |
| 229 | (if (and buffer-read-only vc-mode | ||
| 230 | (y-or-n-p "Checkout Makefile.am from VC? ")) | ||
| 231 | (vc-toggle-read-only t)) | ||
| 232 | (ede-maybe-checkout) | ||
| 233 | (makefile-navigate-macro (concat " *" (regexp-quote (ede-name fnnd)))) | 228 | (makefile-navigate-macro (concat " *" (regexp-quote (ede-name fnnd)))) |
| 234 | (replace-match "" t t nil 0) | 229 | (replace-match "" t t nil 0) |
| 235 | (makefile-fill-paragraph nil) | 230 | (makefile-fill-paragraph nil) |
| @@ -271,7 +266,6 @@ buffer being in order to provide a smart default target type." | |||
| 271 | (if (not ot) (error "Error creating target object %S" ntype)) | 266 | (if (not ot) (error "Error creating target object %S" ntype)) |
| 272 | (ede-with-projectfile ot | 267 | (ede-with-projectfile ot |
| 273 | (goto-char (point-min)) | 268 | (goto-char (point-min)) |
| 274 | (ede-maybe-checkout) | ||
| 275 | (makefile-next-dependency) | 269 | (makefile-next-dependency) |
| 276 | (if (= (point) (point-min)) | 270 | (if (= (point) (point-min)) |
| 277 | (goto-char (point-max)) | 271 | (goto-char (point-max)) |
diff --git a/lisp/cedet/ede/util.el b/lisp/cedet/ede/util.el index fc4536ba88a..053180d4a8b 100644 --- a/lisp/cedet/ede/util.el +++ b/lisp/cedet/ede/util.el | |||
| @@ -87,12 +87,7 @@ their sources to VERSION." | |||
| 87 | If BUFFER isn't specified, use the current buffer." | 87 | If BUFFER isn't specified, use the current buffer." |
| 88 | (save-excursion | 88 | (save-excursion |
| 89 | (if buffer (set-buffer buffer)) | 89 | (if buffer (set-buffer buffer)) |
| 90 | (if buffer-read-only | 90 | (toggle-read-only -1))) |
| 91 | (if (and vc-mode | ||
| 92 | (y-or-n-p (format "Check out %s? " (buffer-file-name)))) | ||
| 93 | (vc-toggle-read-only) | ||
| 94 | (if (not vc-mode) | ||
| 95 | (toggle-read-only -1)))))) | ||
| 96 | 91 | ||
| 97 | (provide 'ede/util) | 92 | (provide 'ede/util) |
| 98 | 93 | ||
diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el index ce9af0e12b5..34d886b6807 100644 --- a/lisp/cedet/semantic.el +++ b/lisp/cedet/semantic.el | |||
| @@ -1055,8 +1055,10 @@ The possible elements of this list include the following: | |||
| 1055 | 1055 | ||
| 1056 | ;;;###autoload | 1056 | ;;;###autoload |
| 1057 | (define-minor-mode semantic-mode | 1057 | (define-minor-mode semantic-mode |
| 1058 | "Toggle Semantic mode. | 1058 | "Toggle parser features (Semantic mode). |
| 1059 | With ARG, turn Semantic mode on if ARG is positive, off otherwise. | 1059 | With a prefix argument ARG, enable Semantic mode if ARG is |
| 1060 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 1061 | Semantic mode if ARG is omitted or nil. | ||
| 1060 | 1062 | ||
| 1061 | In Semantic mode, Emacs parses the buffers you visit for their | 1063 | In Semantic mode, Emacs parses the buffers you visit for their |
| 1062 | semantic content. This information is used by a variety of | 1064 | semantic content. This information is used by a variety of |
diff --git a/lisp/comint.el b/lisp/comint.el index 52580db6186..591be5e2d9d 100644 --- a/lisp/comint.el +++ b/lisp/comint.el | |||
| @@ -847,10 +847,10 @@ by the global keymap (usually `mouse-yank-at-click')." | |||
| 847 | ;; If pos is at the very end of a field, the mouse-click was | 847 | ;; If pos is at the very end of a field, the mouse-click was |
| 848 | ;; probably outside (to the right) of the field. | 848 | ;; probably outside (to the right) of the field. |
| 849 | (and (< pos (field-end pos)) | 849 | (and (< pos (field-end pos)) |
| 850 | (setq field (field-at-pos pos)) | 850 | (< (field-end pos) (point-max)) |
| 851 | (setq input (field-string-no-properties pos)))) | 851 | (progn (setq field (field-at-pos pos)) |
| 852 | (if (or (null comint-accum-marker) | 852 | (setq input (field-string-no-properties pos))))) |
| 853 | (not (eq field 'input))) | 853 | (if (or (null input) (null comint-accum-marker) field) |
| 854 | ;; Fall back to the global definition if (i) the selected | 854 | ;; Fall back to the global definition if (i) the selected |
| 855 | ;; buffer is not a comint buffer (which can happen if a | 855 | ;; buffer is not a comint buffer (which can happen if a |
| 856 | ;; non-comint window was selected and we clicked in a comint | 856 | ;; non-comint window was selected and we clicked in a comint |
| @@ -1803,8 +1803,7 @@ Similarly for Soar, Scheme, etc." | |||
| 1803 | (add-text-properties | 1803 | (add-text-properties |
| 1804 | beg end | 1804 | beg end |
| 1805 | '(mouse-face highlight | 1805 | '(mouse-face highlight |
| 1806 | help-echo "mouse-2: insert after prompt as new input" | 1806 | help-echo "mouse-2: insert after prompt as new input")))) |
| 1807 | field input)))) | ||
| 1808 | (unless (or no-newline comint-use-prompt-regexp) | 1807 | (unless (or no-newline comint-use-prompt-regexp) |
| 1809 | ;; Cover the terminating newline | 1808 | ;; Cover the terminating newline |
| 1810 | (add-text-properties end (1+ end) | 1809 | (add-text-properties end (1+ end) |
| @@ -2153,7 +2152,7 @@ If `comint-use-prompt-regexp' is non-nil, then return | |||
| 2153 | the current line with any initial string matching the regexp | 2152 | the current line with any initial string matching the regexp |
| 2154 | `comint-prompt-regexp' removed." | 2153 | `comint-prompt-regexp' removed." |
| 2155 | (let ((bof (field-beginning))) | 2154 | (let ((bof (field-beginning))) |
| 2156 | (if (eq (get-char-property bof 'field) 'input) | 2155 | (if (null (get-char-property bof 'field)) ;Not `output'. |
| 2157 | (field-string-no-properties bof) | 2156 | (field-string-no-properties bof) |
| 2158 | (comint-bol) | 2157 | (comint-bol) |
| 2159 | (buffer-substring-no-properties (point) (line-end-position))))) | 2158 | (buffer-substring-no-properties (point) (line-end-position))))) |
| @@ -2473,7 +2472,7 @@ If N is negative, find the next or Nth next match." | |||
| 2473 | (while (/= n 0) | 2472 | (while (/= n 0) |
| 2474 | (unless (re-search-backward regexp nil t dir) | 2473 | (unless (re-search-backward regexp nil t dir) |
| 2475 | (error "Not found")) | 2474 | (error "Not found")) |
| 2476 | (when (eq (get-char-property (point) 'field) 'input) | 2475 | (unless (get-char-property (point) 'field) |
| 2477 | (setq n (- n dir)))) | 2476 | (setq n (- n dir)))) |
| 2478 | (field-beginning)))) | 2477 | (field-beginning)))) |
| 2479 | (goto-char pos)))) | 2478 | (goto-char pos)))) |
| @@ -2520,7 +2519,7 @@ text matching `comint-prompt-regexp'." | |||
| 2520 | (setq input-pos (point-max))) | 2519 | (setq input-pos (point-max))) |
| 2521 | ;; stop iterating | 2520 | ;; stop iterating |
| 2522 | (setq n 0)) | 2521 | (setq n 0)) |
| 2523 | ((eq (get-char-property pos 'field) 'input) | 2522 | ((null (get-char-property pos 'field)) |
| 2524 | (setq n (if (< n 0) (1+ n) (1- n))) | 2523 | (setq n (if (< n 0) (1+ n) (1- n))) |
| 2525 | (setq input-pos pos)))) | 2524 | (setq input-pos pos)))) |
| 2526 | (when input-pos | 2525 | (when input-pos |
| @@ -3079,9 +3078,9 @@ SS1 = (unquote SS2)." | |||
| 3079 | 3078 | ||
| 3080 | (defun comint--table-subvert (table s1 s2 &optional quote-fun unquote-fun) | 3079 | (defun comint--table-subvert (table s1 s2 &optional quote-fun unquote-fun) |
| 3081 | "Completion table that replaces the prefix S1 with S2 in STRING. | 3080 | "Completion table that replaces the prefix S1 with S2 in STRING. |
| 3082 | When TABLE, S1 and S2 are provided by `apply-partially', the result | 3081 | The result is a completion table which completes strings of the |
| 3083 | is a completion table which completes strings of the form (concat S1 S) | 3082 | form (concat S1 S) in the same way as TABLE completes strings of |
| 3084 | in the same way as TABLE completes strings of the form (concat S2 S)." | 3083 | the form (concat S2 S)." |
| 3085 | (lambda (string pred action) | 3084 | (lambda (string pred action) |
| 3086 | (let* ((str (if (eq t (compare-strings string 0 (length s1) s1 nil nil | 3085 | (let* ((str (if (eq t (compare-strings string 0 (length s1) s1 nil nil |
| 3087 | completion-ignore-case)) | 3086 | completion-ignore-case)) |
| @@ -3106,13 +3105,15 @@ in the same way as TABLE completes strings of the form (concat S2 S)." | |||
| 3106 | ((eq action t) | 3105 | ((eq action t) |
| 3107 | (let ((bounds (completion-boundaries str table pred ""))) | 3106 | (let ((bounds (completion-boundaries str table pred ""))) |
| 3108 | (if (>= (car bounds) (length s2)) | 3107 | (if (>= (car bounds) (length s2)) |
| 3109 | res | 3108 | (if quote-fun (mapcar quote-fun res) res) |
| 3110 | (let ((re (concat "\\`" | 3109 | (let ((re (concat "\\`" |
| 3111 | (regexp-quote (substring s2 (car bounds)))))) | 3110 | (regexp-quote (substring s2 (car bounds)))))) |
| 3112 | (delq nil | 3111 | (delq nil |
| 3113 | (mapcar (lambda (c) | 3112 | (mapcar (lambda (c) |
| 3114 | (if (string-match re c) | 3113 | (if (string-match re c) |
| 3115 | (substring c (match-end 0)))) | 3114 | (let ((str (substring c (match-end 0)))) |
| 3115 | (if quote-fun | ||
| 3116 | (funcall quote-fun str) str)))) | ||
| 3116 | res)))))) | 3117 | res)))))) |
| 3117 | ;; E.g. action=nil and it's the only completion. | 3118 | ;; E.g. action=nil and it's the only completion. |
| 3118 | (res)))))) | 3119 | (res)))))) |
diff --git a/lisp/composite.el b/lisp/composite.el index 11a3d5ba388..487962ee07c 100644 --- a/lisp/composite.el +++ b/lisp/composite.el | |||
| @@ -728,12 +728,13 @@ This function is the default value of `auto-composition-function' (which see)." | |||
| 728 | ;;;###autoload | 728 | ;;;###autoload |
| 729 | (define-minor-mode auto-composition-mode | 729 | (define-minor-mode auto-composition-mode |
| 730 | "Toggle Auto Composition mode. | 730 | "Toggle Auto Composition mode. |
| 731 | With ARG, turn Auto Composition mode off if and only if ARG is a non-positive | 731 | With a prefix argument ARG, enable Auto Composition mode if ARG |
| 732 | number; if ARG is nil, toggle Auto Composition mode; anything else turns Auto | 732 | is positive, and disable it otherwise. If called from Lisp, |
| 733 | Composition on. | 733 | enable the mode if ARG is omitted or nil. |
| 734 | 734 | ||
| 735 | When Auto Composition is enabled, text characters are automatically composed | 735 | When Auto Composition mode is enabled, text characters are |
| 736 | by functions registered in `composition-function-table' (which see). | 736 | automatically composed by functions registered in |
| 737 | `composition-function-table'. | ||
| 737 | 738 | ||
| 738 | You can use `global-auto-composition-mode' to turn on | 739 | You can use `global-auto-composition-mode' to turn on |
| 739 | Auto Composition mode in all buffers (this is the default)." | 740 | Auto Composition mode in all buffers (this is the default)." |
| @@ -744,10 +745,13 @@ Auto Composition mode in all buffers (this is the default)." | |||
| 744 | 745 | ||
| 745 | ;;;###autoload | 746 | ;;;###autoload |
| 746 | (define-minor-mode global-auto-composition-mode | 747 | (define-minor-mode global-auto-composition-mode |
| 747 | "Toggle Auto-Composition mode in every possible buffer. | 748 | "Toggle Auto Composition mode in all buffers. |
| 748 | With prefix arg, turn Global-Auto-Composition mode on if and only if arg | 749 | With a prefix argument ARG, enable it if ARG is positive, and |
| 749 | is positive. | 750 | disable it otherwise. If called from Lisp, enable it if ARG is |
| 750 | See `auto-composition-mode' for more information on Auto-Composition mode." | 751 | omitted or nil. |
| 752 | |||
| 753 | For more information on Auto Composition mode, see | ||
| 754 | `auto-composition-mode' ." | ||
| 751 | :variable (default-value 'auto-composition-mode)) | 755 | :variable (default-value 'auto-composition-mode)) |
| 752 | 756 | ||
| 753 | (defalias 'toggle-auto-composition 'auto-composition-mode) | 757 | (defalias 'toggle-auto-composition 'auto-composition-mode) |
diff --git a/lisp/delsel.el b/lisp/delsel.el index 705b64be89d..6d2c47f3957 100644 --- a/lisp/delsel.el +++ b/lisp/delsel.el | |||
| @@ -56,8 +56,9 @@ | |||
| 56 | ;;;###autoload | 56 | ;;;###autoload |
| 57 | (define-minor-mode delete-selection-mode | 57 | (define-minor-mode delete-selection-mode |
| 58 | "Toggle Delete Selection mode. | 58 | "Toggle Delete Selection mode. |
| 59 | With prefix ARG, turn Delete Selection mode on if ARG is | 59 | With a prefix argument ARG, enable Delete Selection mode if ARG |
| 60 | positive, off if ARG is not positive. | 60 | is positive, and disable it otherwise. If called from Lisp, |
| 61 | enable the mode if ARG is omitted or nil. | ||
| 61 | 62 | ||
| 62 | When Delete Selection mode is enabled, Transient Mark mode is also | 63 | When Delete Selection mode is enabled, Transient Mark mode is also |
| 63 | enabled and typed text replaces the selection if the selection is | 64 | enabled and typed text replaces the selection if the selection is |
diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 7d267cec480..c175bd7c3c7 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el | |||
| @@ -606,7 +606,8 @@ as well as widgets, buttons, overlays, and text properties." | |||
| 606 | 'trailing-whitespace) | 606 | 'trailing-whitespace) |
| 607 | ((and nobreak-char-display char (eq char '#xa0)) | 607 | ((and nobreak-char-display char (eq char '#xa0)) |
| 608 | 'nobreak-space) | 608 | 'nobreak-space) |
| 609 | ((and nobreak-char-display char (eq char '#xad)) | 609 | ((and nobreak-char-display char |
| 610 | (memq char '(#xad #x2010 #x2011))) | ||
| 610 | 'escape-glyph) | 611 | 'escape-glyph) |
| 611 | ((and (< char 32) (not (memq char '(9 10)))) | 612 | ((and (< char 32) (not (memq char '(9 10)))) |
| 612 | 'escape-glyph))))) | 613 | 'escape-glyph))))) |
diff --git a/lisp/desktop.el b/lisp/desktop.el index c60745a6b16..cdc787dfde9 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -147,11 +147,14 @@ backward compatibility.") | |||
| 147 | 147 | ||
| 148 | ;;;###autoload | 148 | ;;;###autoload |
| 149 | (define-minor-mode desktop-save-mode | 149 | (define-minor-mode desktop-save-mode |
| 150 | "Toggle desktop saving mode. | 150 | "Toggle desktop saving (Desktop Save mode). |
| 151 | With numeric ARG, turn desktop saving on if ARG is positive, off | 151 | With a prefix argument ARG, enable Desktop Save mode if ARG is |
| 152 | otherwise. If desktop saving is turned on, the state of Emacs is | 152 | positive, and disable it otherwise. If called from Lisp, enable |
| 153 | saved from one session to another. See variable `desktop-save' | 153 | the mode if ARG is omitted or nil. |
| 154 | and function `desktop-read' for details." | 154 | |
| 155 | If Desktop Save mode is enabled, the state of Emacs is saved from | ||
| 156 | one session to another. See variable `desktop-save' and function | ||
| 157 | `desktop-read' for details." | ||
| 155 | :global t | 158 | :global t |
| 156 | :group 'desktop) | 159 | :group 'desktop) |
| 157 | 160 | ||
diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 0f2cfd4973f..aaddc479b2a 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el | |||
| @@ -133,16 +133,20 @@ If nil, there is no maximum size." | |||
| 133 | :group 'dired-x) | 133 | :group 'dired-x) |
| 134 | 134 | ||
| 135 | (define-minor-mode dired-omit-mode | 135 | (define-minor-mode dired-omit-mode |
| 136 | "Toggle Dired-Omit mode. | 136 | "Toggle omission of uninteresting files in Dired (Dired-Omit mode). |
| 137 | With numeric ARG, enable Dired-Omit mode if ARG is positive, disable | 137 | With a prefix argument ARG, enable Dired-Omit mode if ARG is |
| 138 | otherwise. Enabling and disabling is buffer-local. | 138 | positive, and disable it otherwise. If called from Lisp, enable |
| 139 | If enabled, \"uninteresting\" files are not listed. | 139 | the mode if ARG is omitted or nil. |
| 140 | Uninteresting files are those whose filenames match regexp `dired-omit-files', | ||
| 141 | plus those ending with extensions in `dired-omit-extensions'. | ||
| 142 | 140 | ||
| 143 | To enable omitting in every Dired buffer, you can put in your ~/.emacs | 141 | Dired-Omit mode is a buffer-local minor mode. When enabled in a |
| 142 | Dired buffer, Dired does not list files whose filenames match | ||
| 143 | regexp `dired-omit-files', nor files ending with extensions in | ||
| 144 | `dired-omit-extensions'. | ||
| 144 | 145 | ||
| 145 | (add-hook 'dired-mode-hook (lambda () (dired-omit-mode 1))) | 146 | To enable omitting in every Dired buffer, you can put this in |
| 147 | your init file: | ||
| 148 | |||
| 149 | (add-hook 'dired-mode-hook (lambda () (dired-omit-mode))) | ||
| 146 | 150 | ||
| 147 | See Info node `(dired-x) Omitting Variables' for more information." | 151 | See Info node `(dired-x) Omitting Variables' for more information." |
| 148 | :group 'dired-x | 152 | :group 'dired-x |
diff --git a/lisp/dired.el b/lisp/dired.el index 60ba14ade84..3ff86869a78 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -4128,7 +4128,7 @@ instead. | |||
| 4128 | ;;;*** | 4128 | ;;;*** |
| 4129 | 4129 | ||
| 4130 | ;;;### (autoloads (dired-do-relsymlink dired-jump-other-window dired-jump) | 4130 | ;;;### (autoloads (dired-do-relsymlink dired-jump-other-window dired-jump) |
| 4131 | ;;;;;; "dired-x" "dired-x.el" "219648338c42c7912fa336680b434db0") | 4131 | ;;;;;; "dired-x" "dired-x.el" "0a19e4cb2cadf007be715af1035c9c36") |
| 4132 | ;;; Generated autoloads from dired-x.el | 4132 | ;;; Generated autoloads from dired-x.el |
| 4133 | 4133 | ||
| 4134 | (autoload 'dired-jump "dired-x" "\ | 4134 | (autoload 'dired-jump "dired-x" "\ |
diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el index c3dfc747772..eef8c111da5 100644 --- a/lisp/dirtrack.el +++ b/lisp/dirtrack.el | |||
| @@ -183,7 +183,11 @@ and ends with a forward slash." | |||
| 183 | 183 | ||
| 184 | ;;;###autoload | 184 | ;;;###autoload |
| 185 | (define-minor-mode dirtrack-mode | 185 | (define-minor-mode dirtrack-mode |
| 186 | "Enable or disable Dirtrack directory tracking in a shell buffer. | 186 | "Toggle directory tracking in shell buffers (Dirtrack mode). |
| 187 | With a prefix argument ARG, enable Dirtrack mode if ARG is | ||
| 188 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 189 | the mode if ARG is omitted or nil. | ||
| 190 | |||
| 187 | This method requires that your shell prompt contain the full | 191 | This method requires that your shell prompt contain the full |
| 188 | current working directory at all times, and that `dirtrack-list' | 192 | current working directory at all times, and that `dirtrack-list' |
| 189 | is set to match the prompt. This is an alternative to | 193 | is set to match the prompt. This is an alternative to |
| @@ -199,7 +203,7 @@ and similar commands which change the shell working directory." | |||
| 199 | 203 | ||
| 200 | 204 | ||
| 201 | (define-minor-mode dirtrack-debug-mode | 205 | (define-minor-mode dirtrack-debug-mode |
| 202 | "Enable or disable Dirtrack debugging." | 206 | "Toggle Dirtrack debugging." |
| 203 | nil nil nil | 207 | nil nil nil |
| 204 | (if dirtrack-debug-mode | 208 | (if dirtrack-debug-mode |
| 205 | (display-buffer (get-buffer-create dirtrack-debug-buffer)))) | 209 | (display-buffer (get-buffer-create dirtrack-debug-buffer)))) |
| @@ -227,7 +231,7 @@ If directory tracking does not seem to be working, you can use the | |||
| 227 | function `dirtrack-debug-mode' to turn on debugging output." | 231 | function `dirtrack-debug-mode' to turn on debugging output." |
| 228 | (unless (or (null dirtrack-mode) | 232 | (unless (or (null dirtrack-mode) |
| 229 | (eq (point) (point-min))) ; no output? | 233 | (eq (point) (point-min))) ; no output? |
| 230 | (let (prompt-path | 234 | (let (prompt-path orig-prompt-path |
| 231 | (current-dir default-directory) | 235 | (current-dir default-directory) |
| 232 | (dirtrack-regexp (nth 0 dirtrack-list)) | 236 | (dirtrack-regexp (nth 0 dirtrack-list)) |
| 233 | (match-num (nth 1 dirtrack-list))) | 237 | (match-num (nth 1 dirtrack-list))) |
| @@ -243,8 +247,9 @@ function `dirtrack-debug-mode' to turn on debugging output." | |||
| 243 | (if (not (> (length prompt-path) 0)) | 247 | (if (not (> (length prompt-path) 0)) |
| 244 | (dirtrack-debug-message "Match is empty string") | 248 | (dirtrack-debug-message "Match is empty string") |
| 245 | ;; Transform prompts into canonical forms | 249 | ;; Transform prompts into canonical forms |
| 246 | (setq prompt-path (funcall dirtrack-directory-function | 250 | (setq orig-prompt-path (funcall dirtrack-directory-function |
| 247 | prompt-path) | 251 | prompt-path) |
| 252 | prompt-path (shell-prefixed-directory-name orig-prompt-path) | ||
| 248 | current-dir (funcall dirtrack-canonicalize-function | 253 | current-dir (funcall dirtrack-canonicalize-function |
| 249 | current-dir)) | 254 | current-dir)) |
| 250 | (dirtrack-debug-message | 255 | (dirtrack-debug-message |
| @@ -257,8 +262,9 @@ function `dirtrack-debug-mode' to turn on debugging output." | |||
| 257 | ;; It's possible that Emacs will think the directory | 262 | ;; It's possible that Emacs will think the directory |
| 258 | ;; won't exist (eg, rlogin buffers) | 263 | ;; won't exist (eg, rlogin buffers) |
| 259 | (if (file-accessible-directory-p prompt-path) | 264 | (if (file-accessible-directory-p prompt-path) |
| 260 | ;; Change directory | 265 | ;; Change directory. shell-process-cd adds the prefix, so we |
| 261 | (and (shell-process-cd prompt-path) | 266 | ;; need to give it the original (un-prefixed) path. |
| 267 | (and (shell-process-cd orig-prompt-path) | ||
| 262 | (run-hooks 'dirtrack-directory-change-hook) | 268 | (run-hooks 'dirtrack-directory-change-hook) |
| 263 | (dirtrack-debug-message | 269 | (dirtrack-debug-message |
| 264 | (format "Changing directory to %s" prompt-path))) | 270 | (format "Changing directory to %s" prompt-path))) |
diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 872b2172c7e..ceaad83cd7c 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el | |||
| @@ -1502,8 +1502,11 @@ to the next best mode." | |||
| 1502 | 1502 | ||
| 1503 | ;;;###autoload | 1503 | ;;;###autoload |
| 1504 | (define-minor-mode doc-view-minor-mode | 1504 | (define-minor-mode doc-view-minor-mode |
| 1505 | "Toggle Doc view minor mode. | 1505 | "Toggle displaying buffer via Doc View (Doc View minor mode). |
| 1506 | With arg, turn Doc view minor mode on if arg is positive, off otherwise. | 1506 | With a prefix argument ARG, enable Doc View minor mode if ARG is |
| 1507 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 1508 | the mode if ARG is omitted or nil. | ||
| 1509 | |||
| 1507 | See the command `doc-view-mode' for more information on this mode." | 1510 | See the command `doc-view-mode' for more information on this mode." |
| 1508 | nil " DocView" doc-view-minor-mode-map | 1511 | nil " DocView" doc-view-minor-mode-map |
| 1509 | :group 'doc-view | 1512 | :group 'doc-view |
diff --git a/lisp/double.el b/lisp/double.el index 4aa8da72af7..2a845f61942 100644 --- a/lisp/double.el +++ b/lisp/double.el | |||
| @@ -146,12 +146,13 @@ but not `C-u X' or `ESC X' since the X is not the prefix key." | |||
| 146 | 146 | ||
| 147 | ;;;###autoload | 147 | ;;;###autoload |
| 148 | (define-minor-mode double-mode | 148 | (define-minor-mode double-mode |
| 149 | "Toggle Double mode. | 149 | "Toggle special insertion on double keypresses (Double mode). |
| 150 | With prefix argument ARG, turn Double mode on if ARG is positive, otherwise | 150 | With a prefix argument ARG, enable Double mode if ARG is |
| 151 | turn it off. | 151 | positive, and disable it otherwise. If called from Lisp, enable |
| 152 | the mode if ARG is omitted or nil. | ||
| 152 | 153 | ||
| 153 | When Double mode is on, some keys will insert different strings | 154 | When Double mode is enabled, some keys will insert different |
| 154 | when pressed twice. See variable `double-map' for details." | 155 | strings when pressed twice. See `double-map' for details." |
| 155 | :lighter " Double" | 156 | :lighter " Double" |
| 156 | :link '(emacs-commentary-link "double") | 157 | :link '(emacs-commentary-link "double") |
| 157 | (kill-local-variable 'key-translation-map) | 158 | (kill-local-variable 'key-translation-map) |
diff --git a/lisp/electric.el b/lisp/electric.el index 17c33c7d5cd..26fba20ea12 100644 --- a/lisp/electric.el +++ b/lisp/electric.el | |||
| @@ -241,8 +241,14 @@ Returns nil when we can't find this char." | |||
| 241 | 241 | ||
| 242 | ;;;###autoload | 242 | ;;;###autoload |
| 243 | (define-minor-mode electric-indent-mode | 243 | (define-minor-mode electric-indent-mode |
| 244 | "Automatically reindent lines of code when inserting particular chars. | 244 | "Toggle on-the-fly reindentation (Electric Indent mode). |
| 245 | `electric-indent-chars' specifies the set of chars that should cause reindentation." | 245 | With a prefix argument ARG, enable Electric Indent mode if ARG is |
| 246 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 247 | the mode if ARG is omitted or nil. | ||
| 248 | |||
| 249 | Electric Indent mode is a global minor mode. When enabled, | ||
| 250 | reindentation is triggered whenever you insert a character listed | ||
| 251 | in `electric-indent-chars'." | ||
| 246 | :global t | 252 | :global t |
| 247 | :group 'electricity | 253 | :group 'electricity |
| 248 | (if electric-indent-mode | 254 | (if electric-indent-mode |
| @@ -330,7 +336,14 @@ This can be convenient for people who find it easier to hit ) than C-f." | |||
| 330 | 336 | ||
| 331 | ;;;###autoload | 337 | ;;;###autoload |
| 332 | (define-minor-mode electric-pair-mode | 338 | (define-minor-mode electric-pair-mode |
| 333 | "Automatically pair-up parens when inserting an open paren." | 339 | "Toggle automatic parens pairing (Electric Pair mode). |
| 340 | With a prefix argument ARG, enable Electric Pair mode if ARG is | ||
| 341 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 342 | the mode if ARG is omitted or nil. | ||
| 343 | |||
| 344 | Electric Pair mode is a global minor mode. When enabled, typing | ||
| 345 | an open parenthesis automatically inserts the corresponding | ||
| 346 | closing parenthesis. \(Likewise for brackets, etc.)" | ||
| 334 | :global t | 347 | :global t |
| 335 | :group 'electricity | 348 | :group 'electricity |
| 336 | (if electric-pair-mode | 349 | (if electric-pair-mode |
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index 7eb6e6ef765..c9e32023187 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el | |||
| @@ -1237,9 +1237,10 @@ generating a buffered list of errors." | |||
| 1237 | 1237 | ||
| 1238 | ;;;###autoload | 1238 | ;;;###autoload |
| 1239 | (define-minor-mode checkdoc-minor-mode | 1239 | (define-minor-mode checkdoc-minor-mode |
| 1240 | "Toggle Checkdoc minor mode, a mode for checking Lisp doc strings. | 1240 | "Toggle automatic docstring checking (Checkdoc minor mode). |
| 1241 | With prefix ARG, turn Checkdoc minor mode on if ARG is positive, otherwise | 1241 | With a prefix argument ARG, enable Checkdoc minor mode if ARG is |
| 1242 | turn it off. | 1242 | positive, and disable it otherwise. If called from Lisp, enable |
| 1243 | the mode if ARG is omitted or nil. | ||
| 1243 | 1244 | ||
| 1244 | In Checkdoc minor mode, the usual bindings for `eval-defun' which is | 1245 | In Checkdoc minor mode, the usual bindings for `eval-defun' which is |
| 1245 | bound to \\<checkdoc-minor-mode-map>\\[checkdoc-eval-defun] and `checkdoc-eval-current-buffer' are overridden to include | 1246 | bound to \\<checkdoc-minor-mode-map>\\[checkdoc-eval-defun] and `checkdoc-eval-current-buffer' are overridden to include |
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 46dc1f162ba..b1cb0615e43 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el | |||
| @@ -350,14 +350,16 @@ call another major mode in their body." | |||
| 350 | (define-minor-mode ,global-mode | 350 | (define-minor-mode ,global-mode |
| 351 | ;; Very short lines to avoid too long lines in the generated | 351 | ;; Very short lines to avoid too long lines in the generated |
| 352 | ;; doc string. | 352 | ;; doc string. |
| 353 | ,(format "Toggle %s in every possible buffer. | 353 | ,(format "Toggle %s in all buffers. |
| 354 | With prefix ARG, turn %s on if and only if | 354 | With prefix ARG, enable %s if ARG is positive; |
| 355 | ARG is positive. | 355 | otherwise, disable it. If called from Lisp, enable the mode if |
| 356 | ARG is omitted or nil. | ||
| 357 | |||
| 356 | %s is enabled in all buffers where | 358 | %s is enabled in all buffers where |
| 357 | \`%s' would do it. | 359 | \`%s' would do it. |
| 358 | See `%s' for more information on %s." | 360 | See `%s' for more information on %s." |
| 359 | pretty-name pretty-global-name pretty-name turn-on | 361 | pretty-name pretty-global-name |
| 360 | mode pretty-name) | 362 | pretty-name turn-on mode pretty-name) |
| 361 | :global t ,@group ,@(nreverse extra-keywords) | 363 | :global t ,@group ,@(nreverse extra-keywords) |
| 362 | 364 | ||
| 363 | ;; Setup hook to handle future mode changes and new buffers. | 365 | ;; Setup hook to handle future mode changes and new buffers. |
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el index cd9b779bee9..901b6d1bf6a 100644 --- a/lisp/emacs-lisp/eldoc.el +++ b/lisp/emacs-lisp/eldoc.el | |||
| @@ -149,14 +149,17 @@ This is used to determine if `eldoc-idle-delay' is changed by the user.") | |||
| 149 | 149 | ||
| 150 | ;;;###autoload | 150 | ;;;###autoload |
| 151 | (define-minor-mode eldoc-mode | 151 | (define-minor-mode eldoc-mode |
| 152 | "Toggle ElDoc mode on or off. | 152 | "Toggle echo area display of Lisp objects at point (ElDoc mode). |
| 153 | In ElDoc mode, the echo area displays information about a | 153 | With a prefix argument ARG, enable ElDoc mode if ARG is positive, |
| 154 | function or variable in the text where point is. If point is | 154 | and disable it otherwise. If called from Lisp, enable ElDoc mode |
| 155 | on a documented variable, it displays the first line of that | 155 | if ARG is omitted or nil. |
| 156 | variable's doc string. Otherwise it displays the argument list | 156 | |
| 157 | of the function called in the expression point is on. | 157 | ElDoc mode is a buffer-local minor mode. When enabled, the echo |
| 158 | 158 | area displays information about a function or variable in the | |
| 159 | With prefix ARG, turn ElDoc mode on if and only if ARG is positive." | 159 | text where point is. If point is on a documented variable, it |
| 160 | displays the first line of that variable's doc string. Otherwise | ||
| 161 | it displays the argument list of the function called in the | ||
| 162 | expression point is on." | ||
| 160 | :group 'eldoc :lighter eldoc-minor-mode-string | 163 | :group 'eldoc :lighter eldoc-minor-mode-string |
| 161 | (setq eldoc-last-message nil) | 164 | (setq eldoc-last-message nil) |
| 162 | (if eldoc-mode | 165 | (if eldoc-mode |
diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el index 18411f7d2ef..f2c93473015 100644 --- a/lisp/emacs-lock.el +++ b/lisp/emacs-lock.el | |||
| @@ -176,14 +176,16 @@ Return a value appropriate for `kill-buffer-query-functions' (which see)." | |||
| 176 | 176 | ||
| 177 | ;;;###autoload | 177 | ;;;###autoload |
| 178 | (define-minor-mode emacs-lock-mode | 178 | (define-minor-mode emacs-lock-mode |
| 179 | "Toggle Emacs Lock mode in the current buffer. | 179 | "Toggle Emacs Lock mode in the current buffer. |
| 180 | 180 | If called with a plain prefix argument, ask for the locking mode | |
| 181 | With \\[universal-argument], ask for the locking mode to be used. | 181 | to be used. With any other prefix ARG, turn mode on if ARG is |
| 182 | With other prefix ARG, turn mode on if ARG is positive, off otherwise. | 182 | positive, off otherwise. If called from Lisp, enable the mode if |
| 183 | 183 | ARG is omitted or nil. | |
| 184 | Initially, if the user does not pass an explicit locking mode, it defaults | 184 | |
| 185 | to `emacs-lock-default-locking-mode' (which see); afterwards, the locking | 185 | Initially, if the user does not pass an explicit locking mode, it |
| 186 | mode most recently set on the buffer is used instead. | 186 | defaults to `emacs-lock-default-locking-mode' (which see); |
| 187 | afterwards, the locking mode most recently set on the buffer is | ||
| 188 | used instead. | ||
| 187 | 189 | ||
| 188 | When called from Elisp code, ARG can be any locking mode: | 190 | When called from Elisp code, ARG can be any locking mode: |
| 189 | 191 | ||
diff --git a/lisp/emulation/crisp.el b/lisp/emulation/crisp.el index b2806e8f8eb..567a57949b3 100644 --- a/lisp/emulation/crisp.el +++ b/lisp/emulation/crisp.el | |||
| @@ -349,8 +349,10 @@ normal CRiSP binding) and when it is nil M-x will run | |||
| 349 | 349 | ||
| 350 | ;;;###autoload | 350 | ;;;###autoload |
| 351 | (define-minor-mode crisp-mode | 351 | (define-minor-mode crisp-mode |
| 352 | "Toggle CRiSP/Brief emulation minor mode. | 352 | "Toggle CRiSP/Brief emulation (CRiSP mode). |
| 353 | With ARG, turn CRiSP mode on if ARG is positive, off otherwise." | 353 | With a prefix argument ARG, enable CRiSP mode if ARG is positive, |
| 354 | and disable it otherwise. If called from Lisp, enable the mode | ||
| 355 | if ARG is omitted or nil." | ||
| 354 | :keymap crisp-mode-map | 356 | :keymap crisp-mode-map |
| 355 | :lighter crisp-mode-modeline-string | 357 | :lighter crisp-mode-modeline-string |
| 356 | (when crisp-mode | 358 | (when crisp-mode |
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el index b643d521ad6..9a50352d507 100644 --- a/lisp/emulation/cua-base.el +++ b/lisp/emulation/cua-base.el | |||
| @@ -1121,7 +1121,7 @@ With a double \\[universal-argument] prefix argument, unconditionally set mark." | |||
| 1121 | (pop-to-mark-command))) | 1121 | (pop-to-mark-command))) |
| 1122 | ((and cua-toggle-set-mark mark-active) | 1122 | ((and cua-toggle-set-mark mark-active) |
| 1123 | (cua--deactivate) | 1123 | (cua--deactivate) |
| 1124 | (message "Mark Cleared")) | 1124 | (message "Mark cleared")) |
| 1125 | (t | 1125 | (t |
| 1126 | (push-mark-command nil nil) | 1126 | (push-mark-command nil nil) |
| 1127 | (setq cua--explicit-region-start t) | 1127 | (setq cua--explicit-region-start t) |
| @@ -1531,16 +1531,17 @@ If ARG is the atom `-', scroll upward by nearly full screen." | |||
| 1531 | 1531 | ||
| 1532 | ;;;###autoload | 1532 | ;;;###autoload |
| 1533 | (define-minor-mode cua-mode | 1533 | (define-minor-mode cua-mode |
| 1534 | "Toggle CUA key-binding mode. | 1534 | "Toggle Common User Access style editing (CUA mode). |
| 1535 | When enabled, using shifted movement keys will activate the | 1535 | With a prefix argument ARG, enable CUA mode if ARG is positive, |
| 1536 | region (and highlight the region using `transient-mark-mode'), | 1536 | and disable it otherwise. If called from Lisp, enable the mode |
| 1537 | and typed text replaces the active selection. | 1537 | if ARG is omitted or nil. |
| 1538 | 1538 | ||
| 1539 | Also when enabled, you can use C-z, C-x, C-c, and C-v to undo, | 1539 | CUA mode is a global minor mode. When enabled, typed text |
| 1540 | cut, copy, and paste in addition to the normal Emacs bindings. | 1540 | replaces the active selection, and you can use C-z, C-x, C-c, and |
| 1541 | The C-x and C-c keys only do cut and copy when the region is | 1541 | C-v to undo, cut, copy, and paste in addition to the normal Emacs |
| 1542 | active, so in most cases, they do not conflict with the normal | 1542 | bindings. The C-x and C-c keys only do cut and copy when the |
| 1543 | function of these prefix keys. | 1543 | region is active, so in most cases, they do not conflict with the |
| 1544 | normal function of these prefix keys. | ||
| 1544 | 1545 | ||
| 1545 | If you really need to perform a command which starts with one of | 1546 | If you really need to perform a command which starts with one of |
| 1546 | the prefix keys even when the region is active, you have three | 1547 | the prefix keys even when the region is active, you have three |
diff --git a/lisp/epa-hook.el b/lisp/epa-hook.el index 652ab19ba65..ea036e836e4 100644 --- a/lisp/epa-hook.el +++ b/lisp/epa-hook.el | |||
| @@ -49,7 +49,7 @@ does that automatically." | |||
| 49 | :group 'epa-file) | 49 | :group 'epa-file) |
| 50 | 50 | ||
| 51 | (defvar epa-file-encrypt-to nil | 51 | (defvar epa-file-encrypt-to nil |
| 52 | "*Recipient(s) used for encrypting files. | 52 | "Recipient(s) used for encrypting files. |
| 53 | May either be a string or a list of strings.") | 53 | May either be a string or a list of strings.") |
| 54 | 54 | ||
| 55 | (put 'epa-file-encrypt-to 'safe-local-variable | 55 | (put 'epa-file-encrypt-to 'safe-local-variable |
| @@ -83,9 +83,10 @@ May either be a string or a list of strings.") | |||
| 83 | (auto-save-mode 0))) | 83 | (auto-save-mode 0))) |
| 84 | 84 | ||
| 85 | (define-minor-mode auto-encryption-mode | 85 | (define-minor-mode auto-encryption-mode |
| 86 | "Toggle automatic file encryption and decryption. | 86 | "Toggle automatic file encryption/decryption (Auto Encryption mode). |
| 87 | With prefix argument ARG, turn auto encryption on if positive, else off. | 87 | With a prefix argument ARG, enable Auto Encryption mode if ARG is |
| 88 | Return the new status of auto encryption (non-nil means on)." | 88 | positive, and disable it otherwise. If called from Lisp, enable |
| 89 | the mode if ARG is omitted or nil." | ||
| 89 | :global t :init-value t :group 'epa-file :version "23.1" | 90 | :global t :init-value t :group 'epa-file :version "23.1" |
| 90 | ;; We'd like to use custom-initialize-set here so the setup is done | 91 | ;; We'd like to use custom-initialize-set here so the setup is done |
| 91 | ;; before dumping, but at the point where the defcustom is evaluated, | 92 | ;; before dumping, but at the point where the defcustom is evaluated, |
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 7c7f10de2c8..d72d3f51bb1 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2011-10-20 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * erc.el (define-erc-module): Fix autogenerated docstring to | ||
| 4 | reflect Emacs 24 minor mode changes. | ||
| 5 | |||
| 6 | * erc-fill.el (erc-fill-mode): | ||
| 7 | * erc-track.el (erc-track-minor-mode): Doc fix. | ||
| 8 | |||
| 1 | 2011-09-23 Antoine Levitt <antoine.levitt@gmail.com> | 9 | 2011-09-23 Antoine Levitt <antoine.levitt@gmail.com> |
| 2 | 10 | ||
| 3 | * erc-button.el (erc-button-next-function): Scoping fix | 11 | * erc-button.el (erc-button-next-function): Scoping fix |
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el index 0b9a4051d65..3940cfbc9a4 100644 --- a/lisp/erc/erc-fill.el +++ b/lisp/erc/erc-fill.el | |||
| @@ -39,9 +39,12 @@ | |||
| 39 | ;;;###autoload (autoload 'erc-fill-mode "erc-fill" nil t) | 39 | ;;;###autoload (autoload 'erc-fill-mode "erc-fill" nil t) |
| 40 | (erc-define-minor-mode erc-fill-mode | 40 | (erc-define-minor-mode erc-fill-mode |
| 41 | "Toggle ERC fill mode. | 41 | "Toggle ERC fill mode. |
| 42 | With numeric arg, turn ERC fill mode on if and only if arg is | 42 | With a prefix argument ARG, enable ERC fill mode if ARG is |
| 43 | positive. In ERC fill mode, messages in the channel buffers are | 43 | positive, and disable it otherwise. If called from Lisp, enable |
| 44 | filled." | 44 | the mode if ARG is omitted or nil. |
| 45 | |||
| 46 | ERC fill mode is a global minor mode. When enabled, messages in | ||
| 47 | the channel buffers are filled." | ||
| 45 | nil nil nil | 48 | nil nil nil |
| 46 | :global t :group 'erc-fill | 49 | :global t :group 'erc-fill |
| 47 | (if erc-fill-mode | 50 | (if erc-fill-mode |
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index 28c1ced91c6..b663aeed423 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el | |||
| @@ -588,12 +588,15 @@ START is the minimum length of the name used." | |||
| 588 | 588 | ||
| 589 | ;;;###autoload | 589 | ;;;###autoload |
| 590 | (define-minor-mode erc-track-minor-mode | 590 | (define-minor-mode erc-track-minor-mode |
| 591 | "Global minor mode for tracking ERC buffers and showing activity in the | 591 | "Toggle mode line display of ERC activity (ERC Track minor mode). |
| 592 | mode line. | 592 | With a prefix argument ARG, enable ERC Track minor mode if ARG is |
| 593 | 593 | positive, and disable it otherwise. If called from Lisp, enable | |
| 594 | This exists for the sole purpose of providing the C-c C-SPC and | 594 | the mode if ARG is omitted or nil. |
| 595 | C-c C-@ keybindings. Make sure that you have enabled the track | 595 | |
| 596 | module, otherwise the keybindings will not do anything useful." | 596 | ERC Track minor mode is a global minor mode. It exists for the |
| 597 | sole purpose of providing the C-c C-SPC and C-c C-@ keybindings. | ||
| 598 | Make sure that you have enabled the track module, otherwise the | ||
| 599 | keybindings will not do anything useful." | ||
| 597 | :init-value nil | 600 | :init-value nil |
| 598 | :lighter "" | 601 | :lighter "" |
| 599 | :keymap erc-track-minor-mode-map | 602 | :keymap erc-track-minor-mode-map |
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index a4040b239c1..2d8c2565f69 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el | |||
| @@ -1242,7 +1242,9 @@ Example: | |||
| 1242 | (erc-define-minor-mode | 1242 | (erc-define-minor-mode |
| 1243 | ,mode | 1243 | ,mode |
| 1244 | ,(format "Toggle ERC %S mode. | 1244 | ,(format "Toggle ERC %S mode. |
| 1245 | With arg, turn ERC %S mode on if and only if arg is positive. | 1245 | With a prefix argument ARG, enable %s if ARG is positive, |
| 1246 | and disable it otherwise. If called from Lisp, enable the mode | ||
| 1247 | if ARG is omitted or nil. | ||
| 1246 | %s" name name doc) | 1248 | %s" name name doc) |
| 1247 | nil nil nil | 1249 | nil nil nil |
| 1248 | :global ,(not local-p) :group (quote ,group) | 1250 | :global ,(not local-p) :group (quote ,group) |
diff --git a/lisp/face-remap.el b/lisp/face-remap.el index 9e5ab58636b..bfd973a299f 100644 --- a/lisp/face-remap.el +++ b/lisp/face-remap.el | |||
| @@ -204,7 +204,7 @@ Each positive or negative step scales the default face height by this amount." | |||
| 204 | (make-variable-buffer-local 'text-scale-mode-amount) | 204 | (make-variable-buffer-local 'text-scale-mode-amount) |
| 205 | 205 | ||
| 206 | (define-minor-mode text-scale-mode | 206 | (define-minor-mode text-scale-mode |
| 207 | "Minor mode for displaying buffer text in a larger/smaller font than usual. | 207 | "Minor mode for displaying buffer text in a larger/smaller font. |
| 208 | 208 | ||
| 209 | The amount of scaling is determined by the variable | 209 | The amount of scaling is determined by the variable |
| 210 | `text-scale-mode-amount': one step scales the global default | 210 | `text-scale-mode-amount': one step scales the global default |
diff --git a/lisp/facemenu.el b/lisp/facemenu.el index a18b892efe8..54b17d58f33 100644 --- a/lisp/facemenu.el +++ b/lisp/facemenu.el | |||
| @@ -639,8 +639,15 @@ a list of colors that the current display can handle." | |||
| 639 | (l list)) | 639 | (l list)) |
| 640 | (while (cdr l) | 640 | (while (cdr l) |
| 641 | (if (and (facemenu-color-equal (car (car l)) (car (car (cdr l)))) | 641 | (if (and (facemenu-color-equal (car (car l)) (car (car (cdr l)))) |
| 642 | (not (if (fboundp 'w32-default-color-map) | 642 | ;; On MS-Windows, there are logical colors that might have |
| 643 | (not (assoc (car (car l)) (w32-default-color-map)))))) | 643 | ;; the same value but different names and meanings. For |
| 644 | ;; example, `SystemMenuText' (the color w32 uses for the | ||
| 645 | ;; text in menu entries) and `SystemWindowText' (the default | ||
| 646 | ;; color w32 uses for the text in windows and dialogs) may | ||
| 647 | ;; be the same display color and be adjacent in the list. | ||
| 648 | ;; This makes them different to any other color. Bug#9722 | ||
| 649 | (not (and (eq system-type 'windows-nt) | ||
| 650 | (string-match-p "^System" (car (car l)))))) | ||
| 644 | (progn | 651 | (progn |
| 645 | (setcdr (car l) (cons (car (car (cdr l))) (cdr (car l)))) | 652 | (setcdr (car l) (cons (car (car (cdr l))) (cdr (car l)))) |
| 646 | (setcdr l (cdr (cdr l)))) | 653 | (setcdr l (cdr (cdr l)))) |
diff --git a/lisp/faces.el b/lisp/faces.el index d5f0ef90ee0..45173eb35da 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -2366,6 +2366,10 @@ used to display the prompt text." | |||
| 2366 | '((((background light)) :background "black") | 2366 | '((((background light)) :background "black") |
| 2367 | (((background dark)) :background "white")) | 2367 | (((background dark)) :background "white")) |
| 2368 | "Basic face for the cursor color under X. | 2368 | "Basic face for the cursor color under X. |
| 2369 | Currently, only the `:background' attribute is meaningful; all | ||
| 2370 | other attributes are ignored. The cursor foreground color is | ||
| 2371 | taken from the background color of the underlying text. | ||
| 2372 | |||
| 2369 | Note: Other faces cannot inherit from the cursor face." | 2373 | Note: Other faces cannot inherit from the cursor face." |
| 2370 | :version "21.1" | 2374 | :version "21.1" |
| 2371 | :group 'cursor | 2375 | :group 'cursor |
diff --git a/lisp/files.el b/lisp/files.el index 6321cff91fd..3ed9bd5a272 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -4700,11 +4700,7 @@ and `view-read-only' is non-nil, enter view mode." | |||
| 4700 | (not (eq (get major-mode 'mode-class) 'special))) | 4700 | (not (eq (get major-mode 'mode-class) 'special))) |
| 4701 | (view-mode-enter)) | 4701 | (view-mode-enter)) |
| 4702 | (t (setq buffer-read-only (not buffer-read-only)) | 4702 | (t (setq buffer-read-only (not buffer-read-only)) |
| 4703 | (force-mode-line-update))) | 4703 | (force-mode-line-update))))) |
| 4704 | (if (memq (vc-backend buffer-file-name) '(RCS SCCS)) | ||
| 4705 | (message "%s" (substitute-command-keys | ||
| 4706 | (concat "File is under version-control; " | ||
| 4707 | "use \\[vc-next-action] to check in/out")))))) | ||
| 4708 | 4704 | ||
| 4709 | (defun insert-file (filename) | 4705 | (defun insert-file (filename) |
| 4710 | "Insert contents of file FILENAME into buffer after point. | 4706 | "Insert contents of file FILENAME into buffer after point. |
diff --git a/lisp/follow.el b/lisp/follow.el index 94a542f1016..37295cc533b 100644 --- a/lisp/follow.el +++ b/lisp/follow.el | |||
| @@ -484,10 +484,13 @@ Used by `follow-window-size-change'.") | |||
| 484 | (put 'follow-mode 'permanent-local t) | 484 | (put 'follow-mode 'permanent-local t) |
| 485 | ;;;###autoload | 485 | ;;;###autoload |
| 486 | (define-minor-mode follow-mode | 486 | (define-minor-mode follow-mode |
| 487 | "Minor mode that combines windows into one tall virtual window. | 487 | "Toggle Follow mode. |
| 488 | With a prefix argument ARG, enable Follow mode if ARG is | ||
| 489 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 490 | the mode if ARG is omitted or nil. | ||
| 488 | 491 | ||
| 489 | The feeling of a \"virtual window\" has been accomplished by the use | 492 | Follow mode is a minor mode that combines windows into one tall |
| 490 | of two major techniques: | 493 | virtual window. This is accomplished by two main techniques: |
| 491 | 494 | ||
| 492 | * The windows always displays adjacent sections of the buffer. | 495 | * The windows always displays adjacent sections of the buffer. |
| 493 | This means that whenever one window is moved, all the | 496 | This means that whenever one window is moved, all the |
diff --git a/lisp/font-core.el b/lisp/font-core.el index fcaaf33b718..0db17efd7b7 100644 --- a/lisp/font-core.el +++ b/lisp/font-core.el | |||
| @@ -86,12 +86,12 @@ It will be passed one argument, which is the current value of | |||
| 86 | 86 | ||
| 87 | ;; The mode for which font-lock was initialized, or nil if none. | 87 | ;; The mode for which font-lock was initialized, or nil if none. |
| 88 | (defvar font-lock-major-mode) | 88 | (defvar font-lock-major-mode) |
| 89 | |||
| 89 | (define-minor-mode font-lock-mode | 90 | (define-minor-mode font-lock-mode |
| 90 | "Toggle Font Lock mode. | 91 | "Toggle syntax highlighting in this buffer (Font Lock mode). |
| 91 | With arg, turn Font Lock mode off if and only if arg is a non-positive | 92 | With a prefix argument ARG, enable Font Lock mode if ARG is |
| 92 | number; if arg is nil, toggle Font Lock mode; anything else turns Font | 93 | positive, and disable it otherwise. If called from Lisp, enable |
| 93 | Lock on. | 94 | the mode if ARG is omitted or nil. |
| 94 | \(Font Lock is also known as \"syntax highlighting\".) | ||
| 95 | 95 | ||
| 96 | When Font Lock mode is enabled, text is fontified as you type it: | 96 | When Font Lock mode is enabled, text is fontified as you type it: |
| 97 | 97 | ||
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index c37a9ae916e..2f4b7413dcc 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -228,8 +228,11 @@ | |||
| 228 | ;; User variables. | 228 | ;; User variables. |
| 229 | 229 | ||
| 230 | (defcustom font-lock-maximum-size 256000 | 230 | (defcustom font-lock-maximum-size 256000 |
| 231 | "Maximum size of a buffer for buffer fontification. | 231 | "Maximum buffer size for unsupported buffer fontification. |
| 232 | Only buffers less than this can be fontified when Font Lock mode is turned on. | 232 | When `font-lock-support-mode' is nil, only buffers smaller than |
| 233 | this are fontified. This variable has no effect if a Font Lock | ||
| 234 | support mode (usually `jit-lock-mode') is enabled. | ||
| 235 | |||
| 233 | If nil, means size is irrelevant. | 236 | If nil, means size is irrelevant. |
| 234 | If a list, each element should be a cons pair of the form (MAJOR-MODE . SIZE), | 237 | If a list, each element should be a cons pair of the form (MAJOR-MODE . SIZE), |
| 235 | where MAJOR-MODE is a symbol or t (meaning the default). For example: | 238 | where MAJOR-MODE is a symbol or t (meaning the default). For example: |
| @@ -248,6 +251,7 @@ for buffers in Rmail mode, and size is irrelevant otherwise." | |||
| 248 | (const :tag "none" nil) | 251 | (const :tag "none" nil) |
| 249 | (integer :tag "size"))))) | 252 | (integer :tag "size"))))) |
| 250 | :group 'font-lock) | 253 | :group 'font-lock) |
| 254 | (make-obsolete-variable 'font-lock-maximum-size nil "24.1") | ||
| 251 | 255 | ||
| 252 | (defcustom font-lock-maximum-decoration t | 256 | (defcustom font-lock-maximum-decoration t |
| 253 | "Maximum decoration level for fontification. | 257 | "Maximum decoration level for fontification. |
diff --git a/lisp/frame.el b/lisp/frame.el index ab9b085f1d9..8359fed14a4 100644 --- a/lisp/frame.el +++ b/lisp/frame.el | |||
| @@ -1134,7 +1134,10 @@ To get the frame's current border color, use `frame-parameters'." | |||
| 1134 | 1134 | ||
| 1135 | (define-minor-mode auto-raise-mode | 1135 | (define-minor-mode auto-raise-mode |
| 1136 | "Toggle whether or not the selected frame should auto-raise. | 1136 | "Toggle whether or not the selected frame should auto-raise. |
| 1137 | With ARG, turn auto-raise mode on if and only if ARG is positive. | 1137 | With a prefix argument ARG, enable Auto Raise mode if ARG is |
| 1138 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 1139 | the mode if ARG is omitted or nil. | ||
| 1140 | |||
| 1138 | Note that this controls Emacs's own auto-raise feature. | 1141 | Note that this controls Emacs's own auto-raise feature. |
| 1139 | Some window managers allow you to enable auto-raise for certain windows. | 1142 | Some window managers allow you to enable auto-raise for certain windows. |
| 1140 | You can use that for Emacs windows if you wish, but if you do, | 1143 | You can use that for Emacs windows if you wish, but if you do, |
| @@ -1145,7 +1148,10 @@ that is beyond the control of Emacs and this command has no effect on it." | |||
| 1145 | 1148 | ||
| 1146 | (define-minor-mode auto-lower-mode | 1149 | (define-minor-mode auto-lower-mode |
| 1147 | "Toggle whether or not the selected frame should auto-lower. | 1150 | "Toggle whether or not the selected frame should auto-lower. |
| 1148 | With ARG, turn auto-lower mode on if and only if ARG is positive. | 1151 | With a prefix argument ARG, enable Auto Lower mode if ARG is |
| 1152 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 1153 | the mode if ARG is omitted or nil. | ||
| 1154 | |||
| 1149 | Note that this controls Emacs's own auto-lower feature. | 1155 | Note that this controls Emacs's own auto-lower feature. |
| 1150 | Some window managers allow you to enable auto-lower for certain windows. | 1156 | Some window managers allow you to enable auto-lower for certain windows. |
| 1151 | You can use that for Emacs windows if you wish, but if you do, | 1157 | You can use that for Emacs windows if you wish, but if you do, |
| @@ -1556,14 +1562,13 @@ itself as a pre-command hook." | |||
| 1556 | (setq blink-cursor-timer nil))) | 1562 | (setq blink-cursor-timer nil))) |
| 1557 | 1563 | ||
| 1558 | (define-minor-mode blink-cursor-mode | 1564 | (define-minor-mode blink-cursor-mode |
| 1559 | "Toggle blinking cursor mode. | 1565 | "Toggle cursor blinking (Blink Cursor mode). |
| 1560 | With a numeric argument, turn blinking cursor mode on if ARG is positive, | 1566 | With a prefix argument ARG, enable Blink Cursor mode if ARG is |
| 1561 | otherwise turn it off. When blinking cursor mode is enabled, the | 1567 | positive, and disable it otherwise. If called from Lisp, enable |
| 1562 | cursor of the selected window blinks. | 1568 | the mode if ARG is omitted or nil. |
| 1563 | 1569 | ||
| 1564 | Note that this command is effective only when Emacs | 1570 | This command is effective only on graphical frames. On text-only |
| 1565 | displays through a window system, because then Emacs does its own | 1571 | terminals, cursor blinking is controlled by the terminal." |
| 1566 | cursor display. On a text-only terminal, this is not implemented." | ||
| 1567 | :init-value (not (or noninteractive | 1572 | :init-value (not (or noninteractive |
| 1568 | no-blinking-cursor | 1573 | no-blinking-cursor |
| 1569 | (eq system-type 'ms-dos) | 1574 | (eq system-type 'ms-dos) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index cc2568a3647..592d0671c26 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,9 +1,47 @@ | |||
| 1 | 2011-10-20 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * gnus-cite.el (gnus-message-citation-mode): Doc fix (in Emacs 24, | ||
| 4 | calling a minor mode from Lisp with nil arg enables it, so we have to | ||
| 5 | make the working a bit ambiguous here). | ||
| 6 | |||
| 7 | 2011-10-18 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 8 | |||
| 9 | * gnus-util.el (gnus-bound-and-true-p): Macro for XEmacs compatibility. | ||
| 10 | * nnir.el (nnir-mode): Use it. | ||
| 11 | * nnmairix.el (nnmairix-determine-original-group-from-registry): | ||
| 12 | Use it. | ||
| 13 | |||
| 14 | * nnir.el (gnus-registry-enabled): Defvar to keep the compiler happy. | ||
| 15 | * nnmairix.el (gnus-registry-enabled): Ditto. | ||
| 16 | |||
| 17 | 2011-10-17 Dave Abrahams <dave@boostpro.com> | ||
| 18 | |||
| 19 | * gnus-registry.el (gnus-registry-enabled): Add new variable. (Bug#9691) | ||
| 20 | (gnus-registry-install-shortcuts): Set `gnus-registry-install' to 'ask | ||
| 21 | only while we need to find out if it should be t or nil. | ||
| 22 | (gnus-registry-initialize): Don't set `gnus-registry-install' to t. | ||
| 23 | (gnus-registry-install-hooks): Set `gnus-registry-enabled' to t when | ||
| 24 | the registry is installed. Set it to nil when it's unloaded. | ||
| 25 | (gnus-registry-install-p): Provide user guidance for the initial value | ||
| 26 | of `gnus-registry-install' when it's 'ask, otherwise return its value. | ||
| 27 | * nnregistry.el (nnregistry-open-server, nnregistry-server-opened): | ||
| 28 | Use `gnus-registry-enabled' instead of `gnus-registry-install'. | ||
| 29 | * nnmairix.el (nnmairix-determine-original-group-from-registry): | ||
| 30 | Use `gnus-registry-enabled' instead of `gnus-registry-install'. | ||
| 31 | * nnir.el (nnir-mode): Use `gnus-registry-enabled' instead of | ||
| 32 | `gnus-registry-install'. | ||
| 33 | |||
| 1 | 2011-10-17 Daiki Ueno <ueno@unixuser.org> | 34 | 2011-10-17 Daiki Ueno <ueno@unixuser.org> |
| 2 | 35 | ||
| 36 | * mml2015.el (mml2015-epg-find-usable-key): Add comment about the | ||
| 37 | previous change. | ||
| 38 | * mml1991.el (mml1991-epg-find-usable-key): Skip the whole key if the | ||
| 39 | primary key is marked as disabled. | ||
| 40 | |||
| 41 | 2011-10-17 Christian von Roques <roques@mti.ag> (tiny change) | ||
| 42 | |||
| 3 | * mml2015.el (mml2015-epg-find-usable-key): Skip the whole key if the | 43 | * mml2015.el (mml2015-epg-find-usable-key): Skip the whole key if the |
| 4 | primary key is marked as disabled. | 44 | primary key is marked as disabled. |
| 5 | * mml1991.el (mml1991-epg-find-usable-key): Ditto. | ||
| 6 | Thanks to Christian von Roques <roques@mti.ag>. | ||
| 7 | 45 | ||
| 8 | 2011-10-11 Andreas Schwab <schwab@linux-m68k.org> | 46 | 2011-10-11 Andreas Schwab <schwab@linux-m68k.org> |
| 9 | 47 | ||
| @@ -13071,13 +13109,11 @@ | |||
| 13071 | (mml-secure-cache-passphrase): New user option. | 13109 | (mml-secure-cache-passphrase): New user option. |
| 13072 | (mml-secure-passphrase-cache-expiry): New user option. | 13110 | (mml-secure-passphrase-cache-expiry): New user option. |
| 13073 | 13111 | ||
| 13074 | 2006-07-24 Daiki Ueno <ueno@unixuser.org> | 13112 | 2006-07-24 David Smith <davidsmith@acm.org> (tiny change) |
| 13113 | Andreas Vögele <andreas@altroot.de> (tiny change) | ||
| 13075 | 13114 | ||
| 13076 | * pgg-def.el (pgg-truncate-key-identifier): Truncate the key ID to 8 | 13115 | * pgg-def.el (pgg-truncate-key-identifier): |
| 13077 | letters from the end. Thanks to "David Smith" <davidsmith@acm.org> and | 13116 | Truncate the key ID to 8 letters from the end. |
| 13078 | andreas@altroot.de (Andreas Vögele). | ||
| 13079 | |||
| 13080 | FIXME: Use `tiny change'? | ||
| 13081 | 13117 | ||
| 13082 | 2006-07-19 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> | 13118 | 2006-07-19 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> |
| 13083 | 13119 | ||
| @@ -19773,7 +19809,7 @@ | |||
| 19773 | 19809 | ||
| 19774 | * dns.el (dns-read-type): Add support for SVR. (small patch) | 19810 | * dns.el (dns-read-type): Add support for SVR. (small patch) |
| 19775 | 19811 | ||
| 19776 | 2004-05-20 Teodor Zlatanov <tzz@lifelogs.com> | 19812 | 2004-05-20 Adam Sjøgren <asjo@koldfront.dk> |
| 19777 | 19813 | ||
| 19778 | * spam.el (spam-use-crm114, spam-crm114, spam-crm114-program) | 19814 | * spam.el (spam-use-crm114, spam-crm114, spam-crm114-program) |
| 19779 | (spam-crm114-header, spam-crm114-spam-switch) | 19815 | (spam-crm114-header, spam-crm114-spam-switch) |
| @@ -19790,7 +19826,8 @@ | |||
| 19790 | (spam-crm114-unregister-spam-routine) | 19826 | (spam-crm114-unregister-spam-routine) |
| 19791 | (spam-crm114-register-ham-routine) | 19827 | (spam-crm114-register-ham-routine) |
| 19792 | (spam-crm114-unregister-ham-routine): Add CRM114 support. | 19828 | (spam-crm114-unregister-ham-routine): Add CRM114 support. |
| 19793 | From asjo@koldfront.dk (Adam Sjøgren). | 19829 | |
| 19830 | 2004-05-20 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 19794 | 19831 | ||
| 19795 | * gnus.el: Add spam-use-crm114. | 19832 | * gnus.el: Add spam-use-crm114. |
| 19796 | 19833 | ||
| @@ -19927,10 +19964,13 @@ | |||
| 19927 | 19964 | ||
| 19928 | 2004-05-18 Reiner Steib <Reiner.Steib@gmx.de> | 19965 | 2004-05-18 Reiner Steib <Reiner.Steib@gmx.de> |
| 19929 | 19966 | ||
| 19967 | * gnus-picon.el (gnus-picon-insert-glyph): | ||
| 19968 | Add optional `nostring' argument. | ||
| 19969 | |||
| 19970 | 2004-05-18 Jesper Harder <harder@ifa.au.dk> | ||
| 19971 | |||
| 19930 | * gnus-picon.el (gnus-picon-style): New variable. | 19972 | * gnus-picon.el (gnus-picon-style): New variable. |
| 19931 | (gnus-picon-insert-glyph): Add optional `nostring' argument. | ||
| 19932 | (gnus-picon-transform-address): Support `gnus-picon-style'. | 19973 | (gnus-picon-transform-address): Support `gnus-picon-style'. |
| 19933 | From Jesper Harder <harder@ifa.au.dk>. | ||
| 19934 | 19974 | ||
| 19935 | 2004-05-18 Lars Magne Ingebrigtsen <larsi@gnus.org> | 19975 | 2004-05-18 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 19936 | 19976 | ||
| @@ -20189,13 +20229,10 @@ | |||
| 20189 | * spam-stat.el (spam-stat-score-buffer): Simplify mapcar usage. | 20229 | * spam-stat.el (spam-stat-score-buffer): Simplify mapcar usage. |
| 20190 | Use mapc when appropriate. | 20230 | Use mapc when appropriate. |
| 20191 | 20231 | ||
| 20192 | 2004-04-22 Teodor Zlatanov <tzz@lifelogs.com> | 20232 | 2004-04-22 Dan Christensen <jdc@uwo.ca> |
| 20193 | 20233 | Adam Sjøgren <asjo@koldfront.dk> | |
| 20194 | FIXME: Make separate entries for each person. | 20234 | Wes Hardaker <wes@hardakers.net> |
| 20195 | 20235 | Michael Shields <shields@msrl.com> | |
| 20196 | From Dan Christensen <jdc@uwo.ca>, asjo@koldfront.dk (Adam | ||
| 20197 | Sjøgren), Wes Hardaker <wes@hardakers.net>, and Michael Shields | ||
| 20198 | <shields@msrl.com>: | ||
| 20199 | 20236 | ||
| 20200 | * spam.el (spam-necessary-extra-headers): Get the extra headers we | 20237 | * spam.el (spam-necessary-extra-headers): Get the extra headers we |
| 20201 | may need for spam sorting and scoring. | 20238 | may need for spam sorting and scoring. |
| @@ -20205,7 +20242,7 @@ | |||
| 20205 | sorting. | 20242 | sorting. |
| 20206 | (spam-extra-header-to-number): Add function to get a score from a | 20243 | (spam-extra-header-to-number): Add function to get a score from a |
| 20207 | header. | 20244 | header. |
| 20208 | (spam-summary-score): Add function to get a numeric score from the | 20245 | (spam-summary-score): Add function to get a numeric score from the |
| 20209 | headers. | 20246 | headers. |
| 20210 | (spam-generic-score): Fix function doc, was in wrong place. | 20247 | (spam-generic-score): Fix function doc, was in wrong place. |
| 20211 | (spam-initialize): Take symbols when it's run, and install the | 20248 | (spam-initialize): Take symbols when it's run, and install the |
diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el index d205437b811..7c36311356f 100644 --- a/lisp/gnus/gnus-cite.el +++ b/lisp/gnus/gnus-cite.el | |||
| @@ -1224,13 +1224,8 @@ Returns nil if there is no such line before LIMIT, t otherwise." | |||
| 1224 | (autoload 'font-lock-set-defaults "font-lock"))) | 1224 | (autoload 'font-lock-set-defaults "font-lock"))) |
| 1225 | 1225 | ||
| 1226 | (define-minor-mode gnus-message-citation-mode | 1226 | (define-minor-mode gnus-message-citation-mode |
| 1227 | "Toggle `gnus-message-citation-mode' in current buffer. | 1227 | "Minor mode providing more font-lock support for nested citations. |
| 1228 | This buffer local minor mode provides additional font-lock support for | 1228 | When enabled, it automatically turns on `font-lock-mode'." |
| 1229 | nested citations. | ||
| 1230 | With prefix ARG, turn `gnus-message-citation-mode' on if and only if ARG | ||
| 1231 | is positive. | ||
| 1232 | Automatically turn `font-lock-mode' on when `gnus-message-citation-mode' | ||
| 1233 | is turned on." | ||
| 1234 | nil ;; init-value | 1229 | nil ;; init-value |
| 1235 | "" ;; lighter | 1230 | "" ;; lighter |
| 1236 | nil ;; keymap | 1231 | nil ;; keymap |
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index f8ff52f128f..652e816e56a 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el | |||
| @@ -164,6 +164,8 @@ nnmairix groups are specifically excluded because they are ephemeral." | |||
| 164 | (const :tag "Always Install" t) | 164 | (const :tag "Always Install" t) |
| 165 | (const :tag "Ask Me" ask))) | 165 | (const :tag "Ask Me" ask))) |
| 166 | 166 | ||
| 167 | (defvar gnus-registry-enabled) | ||
| 168 | |||
| 167 | (defvar gnus-summary-misc-menu) ;; Avoid byte compiler warning. | 169 | (defvar gnus-summary-misc-menu) ;; Avoid byte compiler warning. |
| 168 | 170 | ||
| 169 | (defvar gnus-registry-misc-menus nil) ; ugly way to keep the menus | 171 | (defvar gnus-registry-misc-menus nil) ; ugly way to keep the menus |
| @@ -873,8 +875,9 @@ Uses `gnus-registry-marks' to find what shortcuts to install." | |||
| 873 | 875 | ||
| 874 | ;; if this is called and the user doesn't want the | 876 | ;; if this is called and the user doesn't want the |
| 875 | ;; registry enabled, we'll ask anyhow | 877 | ;; registry enabled, we'll ask anyhow |
| 876 | (when (eq gnus-registry-install nil) | 878 | (unless gnus-registry-install |
| 877 | (setq gnus-registry-install 'ask)) | 879 | (let ((gnus-registry-install 'ask)) |
| 880 | (gnus-registry-install-p))) | ||
| 878 | 881 | ||
| 879 | ;; now the user is asked if gnus-registry-install is 'ask | 882 | ;; now the user is asked if gnus-registry-install is 'ask |
| 880 | (when (gnus-registry-install-p) | 883 | (when (gnus-registry-install-p) |
| @@ -1151,7 +1154,6 @@ only the last one's marks are returned." | |||
| 1151 | "Initialize the Gnus registry." | 1154 | "Initialize the Gnus registry." |
| 1152 | (interactive) | 1155 | (interactive) |
| 1153 | (gnus-message 5 "Initializing the registry") | 1156 | (gnus-message 5 "Initializing the registry") |
| 1154 | (setq gnus-registry-install t) ; in case it was 'ask or nil | ||
| 1155 | (gnus-registry-install-hooks) | 1157 | (gnus-registry-install-hooks) |
| 1156 | (gnus-registry-install-shortcuts) | 1158 | (gnus-registry-install-shortcuts) |
| 1157 | (gnus-registry-read)) | 1159 | (gnus-registry-read)) |
| @@ -1160,6 +1162,7 @@ only the last one's marks are returned." | |||
| 1160 | (defun gnus-registry-install-hooks () | 1162 | (defun gnus-registry-install-hooks () |
| 1161 | "Install the registry hooks." | 1163 | "Install the registry hooks." |
| 1162 | (interactive) | 1164 | (interactive) |
| 1165 | (setq gnus-registry-enabled t) | ||
| 1163 | (add-hook 'gnus-summary-article-move-hook 'gnus-registry-action) | 1166 | (add-hook 'gnus-summary-article-move-hook 'gnus-registry-action) |
| 1164 | (add-hook 'gnus-summary-article-delete-hook 'gnus-registry-action) | 1167 | (add-hook 'gnus-summary-article-delete-hook 'gnus-registry-action) |
| 1165 | (add-hook 'gnus-summary-article-expire-hook 'gnus-registry-action) | 1168 | (add-hook 'gnus-summary-article-expire-hook 'gnus-registry-action) |
| @@ -1181,23 +1184,25 @@ only the last one's marks are returned." | |||
| 1181 | (remove-hook 'gnus-save-newsrc-hook 'gnus-registry-save) | 1184 | (remove-hook 'gnus-save-newsrc-hook 'gnus-registry-save) |
| 1182 | (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read) | 1185 | (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read) |
| 1183 | 1186 | ||
| 1184 | (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)) | 1187 | (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids) |
| 1188 | (setq gnus-registry-enabled nil)) | ||
| 1185 | 1189 | ||
| 1186 | (add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook) | 1190 | (add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook) |
| 1187 | 1191 | ||
| 1188 | (defun gnus-registry-install-p () | 1192 | (defun gnus-registry-install-p () |
| 1193 | "If the registry is not already enabled, and `gnus-registry-install' is t, | ||
| 1194 | the registry is enabled. If `gnus-registry-install' is `ask', | ||
| 1195 | the user is asked first. Returns non-nil iff the registry is enabled." | ||
| 1189 | (interactive) | 1196 | (interactive) |
| 1190 | (when (eq gnus-registry-install 'ask) | 1197 | (unless gnus-registry-enabled |
| 1191 | (setq gnus-registry-install | 1198 | (when (if (eq gnus-registry-install 'ask) |
| 1192 | (gnus-y-or-n-p | 1199 | (gnus-y-or-n-p |
| 1193 | (concat "Enable the Gnus registry? " | 1200 | (concat "Enable the Gnus registry? " |
| 1194 | "See the variable `gnus-registry-install' " | 1201 | "See the variable `gnus-registry-install' " |
| 1195 | "to get rid of this query permanently. "))) | 1202 | "to get rid of this query permanently. ")) |
| 1196 | (when gnus-registry-install | 1203 | gnus-registry-install) |
| 1197 | ;; we just set gnus-registry-install to t, so initialize the registry! | ||
| 1198 | (gnus-registry-initialize))) | 1204 | (gnus-registry-initialize))) |
| 1199 | ;;; we could call it here: (customize-variable 'gnus-registry-install) | 1205 | gnus-registry-enabled) |
| 1200 | gnus-registry-install) | ||
| 1201 | 1206 | ||
| 1202 | ;; TODO: a few things | 1207 | ;; TODO: a few things |
| 1203 | 1208 | ||
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index e9d6ba423fd..9c5e6e8312b 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el | |||
| @@ -1986,6 +1986,14 @@ definitions to shadow the loaded ones for use in file byte-compilation." | |||
| 1986 | (gnus-macroexpand-all expanded environment))) | 1986 | (gnus-macroexpand-all expanded environment))) |
| 1987 | form)))) | 1987 | form)))) |
| 1988 | 1988 | ||
| 1989 | (eval-when-compile | ||
| 1990 | ;; This is unnecessary in the compiled version as it is a macro. | ||
| 1991 | (if (fboundp 'bound-and-true-p) | ||
| 1992 | (defalias 'gnus-bound-and-true-p 'bound-and-true-p) | ||
| 1993 | (defmacro gnus-bound-and-true-p (var) | ||
| 1994 | "Return the value of symbol VAR if it is bound, else nil." | ||
| 1995 | `(and (boundp (quote ,var)) ,var)))) | ||
| 1996 | |||
| 1989 | (provide 'gnus-util) | 1997 | (provide 'gnus-util) |
| 1990 | 1998 | ||
| 1991 | ;;; gnus-util.el ends here | 1999 | ;;; gnus-util.el ends here |
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el index 0be6a17d50e..2d3c05864e8 100644 --- a/lisp/gnus/nnir.el +++ b/lisp/gnus/nnir.el | |||
| @@ -290,9 +290,10 @@ is `(valuefunc member)'." | |||
| 290 | (autoload 'nnimap-command "nnimap") | 290 | (autoload 'nnimap-command "nnimap") |
| 291 | (autoload 'nnimap-possibly-change-group "nnimap") | 291 | (autoload 'nnimap-possibly-change-group "nnimap") |
| 292 | (autoload 'nnimap-make-thread-query "nnimap") | 292 | (autoload 'nnimap-make-thread-query "nnimap") |
| 293 | (autoload 'gnus-registry-action "gnus-registry") | 293 | (autoload 'gnus-registry-action "gnus-registry")) |
| 294 | (defvar gnus-registry-install)) | ||
| 295 | 294 | ||
| 295 | ;; Suppress byte-compiler warning `reference to free variable' | ||
| 296 | (defvar gnus-registry-enabled) | ||
| 296 | 297 | ||
| 297 | (nnoo-declare nnir) | 298 | (nnoo-declare nnir) |
| 298 | (nnoo-define-basics nnir) | 299 | (nnoo-define-basics nnir) |
| @@ -1741,8 +1742,7 @@ environment unless `not-global' is non-nil." | |||
| 1741 | (when (eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnir) | 1742 | (when (eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnir) |
| 1742 | (setq gnus-summary-line-format | 1743 | (setq gnus-summary-line-format |
| 1743 | (or nnir-summary-line-format gnus-summary-line-format)) | 1744 | (or nnir-summary-line-format gnus-summary-line-format)) |
| 1744 | (when (and (boundp 'gnus-registry-install) | 1745 | (when (gnus-bound-and-true-p gnus-registry-enabled) |
| 1745 | (eq gnus-registry-install t)) | ||
| 1746 | (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t) | 1746 | (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t) |
| 1747 | (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t) | 1747 | (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t) |
| 1748 | (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t) | 1748 | (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t) |
diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el index 3d1ac02b6aa..1bf28c5d32f 100644 --- a/lisp/gnus/nnmairix.el +++ b/lisp/gnus/nnmairix.el | |||
| @@ -603,9 +603,11 @@ Other back ends might or might not work.") | |||
| 603 | nil)) | 603 | nil)) |
| 604 | 604 | ||
| 605 | ;; Silence byte-compiler. | 605 | ;; Silence byte-compiler. |
| 606 | (defvar gnus-registry-install) | ||
| 607 | (autoload 'gnus-registry-get-id-key "gnus-registry") | 606 | (autoload 'gnus-registry-get-id-key "gnus-registry") |
| 608 | 607 | ||
| 608 | ;; Suppress byte-compiler warning `reference to free variable' | ||
| 609 | (defvar gnus-registry-enabled) | ||
| 610 | |||
| 609 | (deffoo nnmairix-request-set-mark (group actions &optional server) | 611 | (deffoo nnmairix-request-set-mark (group actions &optional server) |
| 610 | (when server | 612 | (when server |
| 611 | (nnmairix-open-server server)) | 613 | (nnmairix-open-server server)) |
| @@ -1636,8 +1638,7 @@ search in raw mode." | |||
| 1636 | 1638 | ||
| 1637 | (defun nnmairix-determine-original-group-from-registry (mid) | 1639 | (defun nnmairix-determine-original-group-from-registry (mid) |
| 1638 | "Try to determinale original group for message-id MID from the registry." | 1640 | "Try to determinale original group for message-id MID from the registry." |
| 1639 | (when (and (boundp 'gnus-registry-install) | 1641 | (when (gnus-bound-and-true-p gnus-registry-enabled) |
| 1640 | gnus-registry-install) | ||
| 1641 | (unless (string-match "^<" mid) | 1642 | (unless (string-match "^<" mid) |
| 1642 | (set mid (concat "<" mid))) | 1643 | (set mid (concat "<" mid))) |
| 1643 | (unless (string-match ">$" mid) | 1644 | (unless (string-match ">$" mid) |
diff --git a/lisp/gnus/nnregistry.el b/lisp/gnus/nnregistry.el index 359050c356c..75a640a428a 100644 --- a/lisp/gnus/nnregistry.el +++ b/lisp/gnus/nnregistry.el | |||
| @@ -36,8 +36,11 @@ | |||
| 36 | 36 | ||
| 37 | (nnoo-declare nnregistry) | 37 | (nnoo-declare nnregistry) |
| 38 | 38 | ||
| 39 | ;; Suppress byte-compiler warning `reference to free variable' | ||
| 40 | (defvar gnus-registry-enabled) | ||
| 41 | |||
| 39 | (deffoo nnregistry-server-opened (server) | 42 | (deffoo nnregistry-server-opened (server) |
| 40 | (eq gnus-registry-install t)) | 43 | gnus-registry-enabled) |
| 41 | 44 | ||
| 42 | (deffoo nnregistry-close-server (server) | 45 | (deffoo nnregistry-close-server (server) |
| 43 | t) | 46 | t) |
| @@ -46,7 +49,7 @@ | |||
| 46 | nil) | 49 | nil) |
| 47 | 50 | ||
| 48 | (deffoo nnregistry-open-server (server &optional defs) | 51 | (deffoo nnregistry-open-server (server &optional defs) |
| 49 | (eq gnus-registry-install t)) | 52 | gnus-registry-enabled) |
| 50 | 53 | ||
| 51 | (defvar nnregistry-within-nnregistry nil) | 54 | (defvar nnregistry-within-nnregistry nil) |
| 52 | 55 | ||
diff --git a/lisp/help.el b/lisp/help.el index e2af0759a65..508a4e3262c 100644 --- a/lisp/help.el +++ b/lisp/help.el | |||
| @@ -977,13 +977,15 @@ function is called, the window to be resized is selected." | |||
| 977 | :version "20.4") | 977 | :version "20.4") |
| 978 | 978 | ||
| 979 | (define-minor-mode temp-buffer-resize-mode | 979 | (define-minor-mode temp-buffer-resize-mode |
| 980 | "Toggle mode which makes windows smaller for temporary buffers. | 980 | "Toggle auto-shrinking temp buffer windows (Temp Buffer Resize mode). |
| 981 | With prefix argument ARG, turn the resizing of windows displaying | 981 | With a prefix argument ARG, enable Temp Buffer Resize mode if ARG |
| 982 | temporary buffers on if ARG is positive or off otherwise. | 982 | is positive, and disable it otherwise. If called from Lisp, |
| 983 | 983 | enable the mode if ARG is omitted or nil. | |
| 984 | This mode makes a window the right height for its contents, but | 984 | |
| 985 | never more than `temp-buffer-max-height' nor less than | 985 | When Temp Buffer Resize mode is enabled, the windows in which we |
| 986 | `window-min-height'. | 986 | show a temporary buffer are automatically reduced in height to |
| 987 | fit the buffer's contents, but never more than | ||
| 988 | `temp-buffer-max-height' nor less than `window-min-height'. | ||
| 987 | 989 | ||
| 988 | This mode is used by `help', `apropos' and `completion' buffers, | 990 | This mode is used by `help', `apropos' and `completion' buffers, |
| 989 | and some others." | 991 | and some others." |
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index a254abe33ac..f659a7e8eef 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el | |||
| @@ -283,14 +283,17 @@ a library is being loaded.") | |||
| 283 | 283 | ||
| 284 | ;;;###autoload | 284 | ;;;###autoload |
| 285 | (define-minor-mode hi-lock-mode | 285 | (define-minor-mode hi-lock-mode |
| 286 | "Toggle minor mode for interactively adding font-lock highlighting patterns. | 286 | "Toggle selective highlighting of patterns (Hi Lock mode). |
| 287 | 287 | With a prefix argument ARG, enable Hi Lock mode if ARG is | |
| 288 | If ARG positive, turn hi-lock on. Issuing a hi-lock command will also | 288 | positive, and disable it otherwise. If called from Lisp, enable |
| 289 | turn hi-lock on. To turn hi-lock on in all buffers use | 289 | the mode if ARG is omitted or nil. |
| 290 | `global-hi-lock-mode' or in your .emacs file (global-hi-lock-mode 1). | 290 | |
| 291 | When hi-lock is turned on, a \"Regexp Highlighting\" submenu is added | 291 | Issuing one the highlighting commands listed below will |
| 292 | to the \"Edit\" menu. The commands in the submenu, which can be | 292 | automatically enable Hi Lock mode. To enable Hi Lock mode in all |
| 293 | called interactively, are: | 293 | buffers, use `global-hi-lock-mode' or add (global-hi-lock-mode 1) |
| 294 | to your init file. When Hi Lock mode is enabled, a \"Regexp | ||
| 295 | Highlighting\" submenu is added to the \"Edit\" menu. The | ||
| 296 | commands in the submenu, which can be called interactively, are: | ||
| 294 | 297 | ||
| 295 | \\[highlight-regexp] REGEXP FACE | 298 | \\[highlight-regexp] REGEXP FACE |
| 296 | Highlight matches of pattern REGEXP in current buffer with FACE. | 299 | Highlight matches of pattern REGEXP in current buffer with FACE. |
diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el index 041c1ee938b..46db4280688 100644 --- a/lisp/hilit-chg.el +++ b/lisp/hilit-chg.el | |||
| @@ -326,14 +326,15 @@ remove it from existing buffers." | |||
| 326 | 326 | ||
| 327 | ;;;###autoload | 327 | ;;;###autoload |
| 328 | (define-minor-mode highlight-changes-mode | 328 | (define-minor-mode highlight-changes-mode |
| 329 | "Toggle Highlight Changes mode. | 329 | "Toggle highlighting changes in this buffer (Highlight Changes mode). |
| 330 | With a prefix argument ARG, enable Highlight Changes mode if ARG | ||
| 331 | is positive, and disable it otherwise. If called from Lisp, | ||
| 332 | enable the mode if ARG is omitted or nil. | ||
| 330 | 333 | ||
| 331 | With ARG, turn Highlight Changes mode on if and only if arg is positive. | 334 | When Highlight Changes is enabled, changes are marked with a text |
| 332 | 335 | property. Normally they are displayed in a distinctive face, but | |
| 333 | In Highlight Changes mode changes are recorded with a text property. | 336 | command \\[highlight-changes-visible-mode] can be used to toggles |
| 334 | Normally they are displayed in a distinctive face, but command | 337 | this on and off. |
| 335 | \\[highlight-changes-visible-mode] can be used to toggles this | ||
| 336 | on and off. | ||
| 337 | 338 | ||
| 338 | Other functions for buffers in this mode include: | 339 | Other functions for buffers in this mode include: |
| 339 | \\[highlight-changes-next-change] - move point to beginning of next change | 340 | \\[highlight-changes-next-change] - move point to beginning of next change |
| @@ -366,14 +367,17 @@ buffer with the contents of a file | |||
| 366 | 367 | ||
| 367 | ;;;###autoload | 368 | ;;;###autoload |
| 368 | (define-minor-mode highlight-changes-visible-mode | 369 | (define-minor-mode highlight-changes-visible-mode |
| 369 | "Toggle visiblility of changes when buffer is in Highlight Changes mode. | 370 | "Toggle visiblility of highlighting due to Highlight Changes mode. |
| 371 | With a prefix argument ARG, enable Highlight Changes Visible mode | ||
| 372 | if ARG is positive, and disable it otherwise. If called from | ||
| 373 | Lisp, enable the mode if ARG is omitted or nil. | ||
| 370 | 374 | ||
| 371 | This mode only has an effect when Highlight Changes mode is on. | 375 | Highlight Changes Visible mode only has an effect when Highlight |
| 372 | It allows toggling between whether or not the changed text is displayed | 376 | Changes mode is on. When enabled, the changed text is displayed |
| 373 | in a distinctive face. | 377 | in a distinctive face. |
| 374 | 378 | ||
| 375 | The default value can be customized with variable | 379 | The default value can be customized with variable |
| 376 | `highlight-changes-visibility-initial-state' | 380 | `highlight-changes-visibility-initial-state'. |
| 377 | 381 | ||
| 378 | This command does not itself set highlight-changes mode." | 382 | This command does not itself set highlight-changes mode." |
| 379 | 383 | ||
diff --git a/lisp/hl-line.el b/lisp/hl-line.el index 846f5f95187..b535398f107 100644 --- a/lisp/hl-line.el +++ b/lisp/hl-line.el | |||
| @@ -124,10 +124,13 @@ This variable is expected to be made buffer-local by modes.") | |||
| 124 | 124 | ||
| 125 | ;;;###autoload | 125 | ;;;###autoload |
| 126 | (define-minor-mode hl-line-mode | 126 | (define-minor-mode hl-line-mode |
| 127 | "Buffer-local minor mode to highlight the line about point. | 127 | "Toggle highlighting of the current line (Hl-Line mode). |
| 128 | With ARG, turn Hl-Line mode on if ARG is positive, off otherwise. | 128 | With a prefix argument ARG, enable Hl-Line mode if ARG is |
| 129 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 130 | the mode if ARG is omitted or nil. | ||
| 129 | 131 | ||
| 130 | If `hl-line-sticky-flag' is non-nil, Hl-Line mode highlights the | 132 | Hl-Line mode is a buffer-local minor mode. If |
| 133 | `hl-line-sticky-flag' is non-nil, Hl-Line mode highlights the | ||
| 131 | line about the buffer's point in all windows. Caveat: the | 134 | line about the buffer's point in all windows. Caveat: the |
| 132 | buffer's point might be different from the point of a | 135 | buffer's point might be different from the point of a |
| 133 | non-selected window. Hl-Line mode uses the function | 136 | non-selected window. Hl-Line mode uses the function |
| @@ -171,8 +174,10 @@ addition to `hl-line-highlight' on `post-command-hook'." | |||
| 171 | 174 | ||
| 172 | ;;;###autoload | 175 | ;;;###autoload |
| 173 | (define-minor-mode global-hl-line-mode | 176 | (define-minor-mode global-hl-line-mode |
| 174 | "Global minor mode to highlight the line about point in the current window. | 177 | "Toggle line highlighting in all buffers (Global Hl-Line mode). |
| 175 | With ARG, turn Global-Hl-Line mode on if ARG is positive, off otherwise. | 178 | With a prefix argument ARG, enable Global Hl-Line mode if ARG is |
| 179 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 180 | the mode if ARG is omitted or nil. | ||
| 176 | 181 | ||
| 177 | If `global-hl-line-sticky-flag' is non-nil, Global Hl-Line mode | 182 | If `global-hl-line-sticky-flag' is non-nil, Global Hl-Line mode |
| 178 | highlights the line about the current buffer's point in all | 183 | highlights the line about the current buffer's point in all |
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index 073efaeee2a..6c8db872c0b 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el | |||
| @@ -217,8 +217,10 @@ Currently, this only applies to `ibuffer-saved-filters' and | |||
| 217 | 217 | ||
| 218 | ;;;###autoload | 218 | ;;;###autoload |
| 219 | (define-minor-mode ibuffer-auto-mode | 219 | (define-minor-mode ibuffer-auto-mode |
| 220 | "Toggle use of Ibuffer's auto-update facility. | 220 | "Toggle use of Ibuffer's auto-update facility (Ibuffer Auto mode). |
| 221 | With numeric ARG, enable auto-update if and only if ARG is positive." | 221 | With a prefix argument ARG, enable Ibuffer Auto mode if ARG is |
| 222 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 223 | the mode if ARG is omitted or nil." | ||
| 222 | nil nil nil | 224 | nil nil nil |
| 223 | (unless (derived-mode-p 'ibuffer-mode) | 225 | (unless (derived-mode-p 'ibuffer-mode) |
| 224 | (error "This buffer is not in Ibuffer mode")) | 226 | (error "This buffer is not in Ibuffer mode")) |
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index 5a86508e144..17ddddbd17a 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el | |||
| @@ -2648,12 +2648,14 @@ will be inserted before the group at point." | |||
| 2648 | ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group | 2648 | ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group |
| 2649 | ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group | 2649 | ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group |
| 2650 | ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode | 2650 | ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode |
| 2651 | ;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "617b36fc8479547d679cf0103f82e3ff") | 2651 | ;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "25e69a1e030791b3a3e7d91d4377173a") |
| 2652 | ;;; Generated autoloads from ibuf-ext.el | 2652 | ;;; Generated autoloads from ibuf-ext.el |
| 2653 | 2653 | ||
| 2654 | (autoload 'ibuffer-auto-mode "ibuf-ext" "\ | 2654 | (autoload 'ibuffer-auto-mode "ibuf-ext" "\ |
| 2655 | Toggle use of Ibuffer's auto-update facility. | 2655 | Toggle use of Ibuffer's auto-update facility (Ibuffer Auto mode). |
| 2656 | With numeric ARG, enable auto-update if and only if ARG is positive. | 2656 | With a prefix argument ARG, enable Ibuffer Auto mode if ARG is |
| 2657 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 2658 | the mode if ARG is omitted or nil. | ||
| 2657 | 2659 | ||
| 2658 | \(fn &optional ARG)" t nil) | 2660 | \(fn &optional ARG)" t nil) |
| 2659 | 2661 | ||
diff --git a/lisp/icomplete.el b/lisp/icomplete.el index bdd19194c22..53876f48a06 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el | |||
| @@ -172,9 +172,10 @@ except those on this list.") | |||
| 172 | ;;;_ > icomplete-mode (&optional prefix) | 172 | ;;;_ > icomplete-mode (&optional prefix) |
| 173 | ;;;###autoload | 173 | ;;;###autoload |
| 174 | (define-minor-mode icomplete-mode | 174 | (define-minor-mode icomplete-mode |
| 175 | "Toggle incremental minibuffer completion for this Emacs session. | 175 | "Toggle incremental minibuffer completion (Icomplete mode). |
| 176 | With a numeric argument, turn Icomplete mode on if ARG is positive, | 176 | With a prefix argument ARG, enable Icomplete mode if ARG is |
| 177 | otherwise turn it off." | 177 | positive, and disable it otherwise. If called from Lisp, enable |
| 178 | the mode if ARG is omitted or nil." | ||
| 178 | :global t :group 'icomplete | 179 | :global t :group 'icomplete |
| 179 | (if icomplete-mode | 180 | (if icomplete-mode |
| 180 | ;; The following is not really necessary after first time - | 181 | ;; The following is not really necessary after first time - |
diff --git a/lisp/ido.el b/lisp/ido.el index 46ac5784d0e..88599013ce6 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -461,12 +461,6 @@ See `ido-default-file-method' for details." | |||
| 461 | (const :tag "Show in other frame" other-frame) | 461 | (const :tag "Show in other frame" other-frame) |
| 462 | (const :tag "Ask to show in other frame" maybe-frame) | 462 | (const :tag "Ask to show in other frame" maybe-frame) |
| 463 | (const :tag "Raise frame if already shown" raise-frame)) | 463 | (const :tag "Raise frame if already shown" raise-frame)) |
| 464 | :type '(choice (const selected-window) | ||
| 465 | (const other-window) | ||
| 466 | (const display) | ||
| 467 | (const other-frame) | ||
| 468 | (const maybe-frame) | ||
| 469 | (const raise-frame)) | ||
| 470 | :group 'ido) | 464 | :group 'ido) |
| 471 | 465 | ||
| 472 | (defcustom ido-enable-flex-matching nil | 466 | (defcustom ido-enable-flex-matching nil |
| @@ -1475,8 +1469,10 @@ Removes badly formatted data and ignored directories." | |||
| 1475 | (add-hook 'choose-completion-string-functions 'ido-choose-completion-string)) | 1469 | (add-hook 'choose-completion-string-functions 'ido-choose-completion-string)) |
| 1476 | 1470 | ||
| 1477 | (define-minor-mode ido-everywhere | 1471 | (define-minor-mode ido-everywhere |
| 1478 | "Toggle using ido-mode everywhere file and directory names are read. | 1472 | "Toggle use of Ido for all buffer/file reading. |
| 1479 | With ARG, turn ido-mode on if arg is positive, off otherwise." | 1473 | With a prefix argument ARG, enable this feature if ARG is |
| 1474 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 1475 | the mode if ARG is omitted or nil." | ||
| 1480 | :global t | 1476 | :global t |
| 1481 | :group 'ido | 1477 | :group 'ido |
| 1482 | (when (get 'ido-everywhere 'file) | 1478 | (when (get 'ido-everywhere 'file) |
diff --git a/lisp/image-file.el b/lisp/image-file.el index bd1c101d529..52012b12a56 100644 --- a/lisp/image-file.el +++ b/lisp/image-file.el | |||
| @@ -178,11 +178,12 @@ Optional argument ARGS are the arguments to call FUNCTION with." | |||
| 178 | 178 | ||
| 179 | ;;;###autoload | 179 | ;;;###autoload |
| 180 | (define-minor-mode auto-image-file-mode | 180 | (define-minor-mode auto-image-file-mode |
| 181 | "Toggle visiting of image files as images. | 181 | "Toggle visiting of image files as images (Auto Image File mode). |
| 182 | With prefix argument ARG, turn on if positive, otherwise off. | 182 | With a prefix argument ARG, enable Auto Image File mode if ARG is |
| 183 | Returns non-nil if the new state is enabled. | 183 | positive, and disable it otherwise. If called from Lisp, enable |
| 184 | the mode if ARG is omitted or nil. | ||
| 184 | 185 | ||
| 185 | Image files are those whose name has an extension in | 186 | An image file is one whose name has an extension in |
| 186 | `image-file-name-extensions', or matches a regexp in | 187 | `image-file-name-extensions', or matches a regexp in |
| 187 | `image-file-name-regexps'." | 188 | `image-file-name-regexps'." |
| 188 | :global t | 189 | :global t |
diff --git a/lisp/image-mode.el b/lisp/image-mode.el index 0995048fce5..30223e69ae0 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el | |||
| @@ -396,11 +396,14 @@ to toggle between display as an image and display as text." | |||
| 396 | 396 | ||
| 397 | ;;;###autoload | 397 | ;;;###autoload |
| 398 | (define-minor-mode image-minor-mode | 398 | (define-minor-mode image-minor-mode |
| 399 | "Toggle Image minor mode. | 399 | "Toggle Image minor mode in this buffer. |
| 400 | With arg, turn Image minor mode on if arg is positive, off otherwise. | 400 | With a prefix argument ARG, enable Image minor mode if ARG is |
| 401 | It provides the key \\<image-mode-map>\\[image-toggle-display] \ | 401 | positive, and disable it otherwise. If called from Lisp, enable |
| 402 | to switch back to `image-mode' | 402 | the mode if ARG is omitted or nil. |
| 403 | to display an image file as the actual image." | 403 | |
| 404 | Image minor mode provides the key \\<image-mode-map>\\[image-toggle-display], | ||
| 405 | to switch back to `image-mode' and display an image file as the | ||
| 406 | actual image." | ||
| 404 | nil (:eval (if image-type (format " Image[%s]" image-type) " Image")) | 407 | nil (:eval (if image-type (format " Image[%s]" image-type) " Image")) |
| 405 | image-minor-mode-map | 408 | image-minor-mode-map |
| 406 | :group 'image | 409 | :group 'image |
diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 4a387a233a0..cac37b3b8c5 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el | |||
| @@ -2403,8 +2403,8 @@ This function is intended to be added to `auto-coding-functions'." | |||
| 2403 | ;; (allowing for whitespace at bob). Note: 'DOCTYPE NETSCAPE' is | 2403 | ;; (allowing for whitespace at bob). Note: 'DOCTYPE NETSCAPE' is |
| 2404 | ;; useful for Mozilla bookmark files. | 2404 | ;; useful for Mozilla bookmark files. |
| 2405 | (when (and (re-search-forward "\\`[[:space:]\n]*\\(<!doctype[[:space:]\n]+\\(html\\|netscape\\)\\|<html\\)" size t) | 2405 | (when (and (re-search-forward "\\`[[:space:]\n]*\\(<!doctype[[:space:]\n]+\\(html\\|netscape\\)\\|<html\\)" size t) |
| 2406 | (re-search-forward "<meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']text/\\sw+;\\s-*charset=\\(.+?\\)[\"']" size t)) | 2406 | (re-search-forward "<meta\\s-+\\(http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']text/\\sw+;\\s-*\\)?charset=[\"']?\\(.+?\\)[\"'\\s-/>]" size t)) |
| 2407 | (let* ((match (match-string 1)) | 2407 | (let* ((match (match-string 2)) |
| 2408 | (sym (intern (downcase match)))) | 2408 | (sym (intern (downcase match)))) |
| 2409 | (if (coding-system-p sym) | 2409 | (if (coding-system-p sym) |
| 2410 | sym | 2410 | sym |
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index 70dda5442d5..a7d3328526a 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el | |||
| @@ -1424,10 +1424,13 @@ See the variable `iswitchb-case' for details." | |||
| 1424 | 1424 | ||
| 1425 | ;;;###autoload | 1425 | ;;;###autoload |
| 1426 | (define-minor-mode iswitchb-mode | 1426 | (define-minor-mode iswitchb-mode |
| 1427 | "Toggle Iswitchb global minor mode. | 1427 | "Toggle Iswitchb mode. |
| 1428 | With arg, turn Iswitchb mode on if ARG is positive, otherwise turn it off. | 1428 | With a prefix argument ARG, enable Iswitchb mode if ARG is |
| 1429 | This mode enables switching between buffers using substrings. See | 1429 | positive, and disable it otherwise. If called from Lisp, enable |
| 1430 | `iswitchb' for details." | 1430 | the mode if ARG is omitted or nil. |
| 1431 | |||
| 1432 | Iswitchb mode is a global minor mode that enables switching | ||
| 1433 | between buffers using substrings. See `iswitchb' for details." | ||
| 1431 | nil nil iswitchb-global-map :global t :group 'iswitchb | 1434 | nil nil iswitchb-global-map :global t :group 'iswitchb |
| 1432 | (if iswitchb-mode | 1435 | (if iswitchb-mode |
| 1433 | (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup) | 1436 | (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup) |
diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el index d28fde0b214..bf312445f17 100644 --- a/lisp/jka-cmpr-hook.el +++ b/lisp/jka-cmpr-hook.el | |||
| @@ -333,9 +333,14 @@ variables. Setting this through Custom does that automatically." | |||
| 333 | :group 'jka-compr) | 333 | :group 'jka-compr) |
| 334 | 334 | ||
| 335 | (define-minor-mode auto-compression-mode | 335 | (define-minor-mode auto-compression-mode |
| 336 | "Toggle automatic file compression and uncompression. | 336 | "Toggle Auto Compression mode. |
| 337 | With prefix argument ARG, turn auto compression on if positive, else off. | 337 | With a prefix argument ARG, enable Auto Compression mode if ARG |
| 338 | Return the new status of auto compression (non-nil means on)." | 338 | is positive, and disable it otherwise. If called from Lisp, |
| 339 | enable the mode if ARG is omitted or nil. | ||
| 340 | |||
| 341 | Auto Compression mode is a global minor mode. When enabled, | ||
| 342 | compressed files are automatically uncompressed for reading, and | ||
| 343 | compressed when writing." | ||
| 339 | :global t :init-value t :group 'jka-compr :version "22.1" | 344 | :global t :init-value t :group 'jka-compr :version "22.1" |
| 340 | (let* ((installed (jka-compr-installed-p)) | 345 | (let* ((installed (jka-compr-installed-p)) |
| 341 | (flag auto-compression-mode)) | 346 | (flag auto-compression-mode)) |
diff --git a/lisp/json.el b/lisp/json.el index 47448f4702a..33e985abbee 100644 --- a/lisp/json.el +++ b/lisp/json.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; Copyright (C) 2006-2011 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2006-2011 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Edward O'Connor <ted@oconnor.cx> | 5 | ;; Author: Edward O'Connor <ted@oconnor.cx> |
| 6 | ;; Version: 1.2 | 6 | ;; Version: 1.3 |
| 7 | ;; Keywords: convenience | 7 | ;; Keywords: convenience |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| @@ -47,6 +47,7 @@ | |||
| 47 | ;; other cleanups, bugfixes, and improvements. | 47 | ;; other cleanups, bugfixes, and improvements. |
| 48 | ;; 2006-12-29 - XEmacs support, from Aidan Kehoe <kehoea@parhasard.net>. | 48 | ;; 2006-12-29 - XEmacs support, from Aidan Kehoe <kehoea@parhasard.net>. |
| 49 | ;; 2008-02-21 - Installed in GNU Emacs. | 49 | ;; 2008-02-21 - Installed in GNU Emacs. |
| 50 | ;; 2011-10-17 - Patch `json-alist-p' and `json-plist-p' to avoid recursion -tzz | ||
| 50 | 51 | ||
| 51 | ;;; Code: | 52 | ;;; Code: |
| 52 | 53 | ||
| @@ -108,16 +109,20 @@ this around your call to `json-read' instead of `setq'ing it.") | |||
| 108 | 109 | ||
| 109 | (defun json-alist-p (list) | 110 | (defun json-alist-p (list) |
| 110 | "Non-null if and only if LIST is an alist." | 111 | "Non-null if and only if LIST is an alist." |
| 111 | (or (null list) | 112 | (while (consp list) |
| 112 | (and (consp (car list)) | 113 | (setq list (if (consp (car list)) |
| 113 | (json-alist-p (cdr list))))) | 114 | (cdr list) |
| 115 | 'not-alist))) | ||
| 116 | (null list)) | ||
| 114 | 117 | ||
| 115 | (defun json-plist-p (list) | 118 | (defun json-plist-p (list) |
| 116 | "Non-null if and only if LIST is a plist." | 119 | "Non-null if and only if LIST is a plist." |
| 117 | (or (null list) | 120 | (while (consp list) |
| 118 | (and (keywordp (car list)) | 121 | (setq list (if (and (keywordp (car list)) |
| 119 | (consp (cdr list)) | 122 | (consp (cdr list))) |
| 120 | (json-plist-p (cddr list))))) | 123 | (cddr list) |
| 124 | 'not-plist))) | ||
| 125 | (null list)) | ||
| 121 | 126 | ||
| 122 | ;; Reader utilities | 127 | ;; Reader utilities |
| 123 | 128 | ||
diff --git a/lisp/linum.el b/lisp/linum.el index db6e4c49977..4e58a1b7118 100644 --- a/lisp/linum.el +++ b/lisp/linum.el | |||
| @@ -73,7 +73,12 @@ and you have to scroll or press \\[recenter-top-bottom] to update the numbers." | |||
| 73 | 73 | ||
| 74 | ;;;###autoload | 74 | ;;;###autoload |
| 75 | (define-minor-mode linum-mode | 75 | (define-minor-mode linum-mode |
| 76 | "Toggle display of line numbers in the left margin." | 76 | "Toggle display of line numbers in the left margin (Linum mode). |
| 77 | With a prefix argument ARG, enable Linum mode if ARG is positive, | ||
| 78 | and disable it otherwise. If called from Lisp, enable the mode | ||
| 79 | if ARG is omitted or nil. | ||
| 80 | |||
| 81 | Linum mode is a buffer-local minor mode." | ||
| 77 | :lighter "" ; for desktop.el | 82 | :lighter "" ; for desktop.el |
| 78 | (if linum-mode | 83 | (if linum-mode |
| 79 | (progn | 84 | (progn |
diff --git a/lisp/longlines.el b/lisp/longlines.el index f625d8fcac7..b4d15da78a7 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el | |||
| @@ -95,21 +95,22 @@ This is used when `longlines-show-hard-newlines' is on." | |||
| 95 | 95 | ||
| 96 | ;;;###autoload | 96 | ;;;###autoload |
| 97 | (define-minor-mode longlines-mode | 97 | (define-minor-mode longlines-mode |
| 98 | "Minor mode to wrap long lines. | 98 | "Toggle Long Lines mode in this buffer. |
| 99 | In Long Lines mode, long lines are wrapped if they extend beyond | 99 | With a prefix argument ARG, enable Long Lines mode if ARG is |
| 100 | `fill-column'. The soft newlines used for line wrapping will not | 100 | positive, and disable it otherwise. If called from Lisp, enable |
| 101 | show up when the text is yanked or saved to disk. | 101 | the mode if ARG is omitted or nil. |
| 102 | 102 | ||
| 103 | With no argument, this command toggles Long Lines mode. | 103 | When Long Lines mode is enabled, long lines are wrapped if they |
| 104 | With a prefix argument ARG, turn Long Lines minor mode on if ARG is positive, | 104 | extend beyond `fill-column'. The soft newlines used for line |
| 105 | otherwise turn it off. | 105 | wrapping will not show up when the text is yanked or saved to |
| 106 | 106 | disk. | |
| 107 | If the variable `longlines-auto-wrap' is non-nil, lines are automatically | 107 | |
| 108 | wrapped whenever the buffer is changed. You can always call | 108 | If the variable `longlines-auto-wrap' is non-nil, lines are |
| 109 | `fill-paragraph' to fill individual paragraphs. | 109 | automatically wrapped whenever the buffer is changed. You can |
| 110 | 110 | always call `fill-paragraph' to fill individual paragraphs. | |
| 111 | If the variable `longlines-show-hard-newlines' is non-nil, hard newlines | 111 | |
| 112 | are indicated with a symbol." | 112 | If the variable `longlines-show-hard-newlines' is non-nil, hard |
| 113 | newlines are indicated with a symbol." | ||
| 113 | :group 'longlines :lighter " ll" | 114 | :group 'longlines :lighter " ll" |
| 114 | (if longlines-mode | 115 | (if longlines-mode |
| 115 | ;; Turn on longlines mode | 116 | ;; Turn on longlines mode |
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index 8dac3be0e5f..0f1669562de 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el | |||
| @@ -788,9 +788,14 @@ being set it is automatically widened." | |||
| 788 | 788 | ||
| 789 | ;;;###autoload | 789 | ;;;###autoload |
| 790 | (define-minor-mode footnote-mode | 790 | (define-minor-mode footnote-mode |
| 791 | "Toggle footnote minor mode. | 791 | "Toggle Footnote mode. |
| 792 | This minor mode provides footnote support for `message-mode'. To get | 792 | With a prefix argument ARG, enable Footnote mode if ARG is |
| 793 | started, play around with the following keys: | 793 | positive, and disable it otherwise. If called from Lisp, enable |
| 794 | the mode if ARG is omitted or nil. | ||
| 795 | |||
| 796 | Footnode mode is a buffer-local minor mode. If enabled, it | ||
| 797 | provides footnote support for `message-mode'. To get started, | ||
| 798 | play around with the following keys: | ||
| 794 | \\{footnote-minor-mode-map}" | 799 | \\{footnote-minor-mode-map}" |
| 795 | :lighter footnote-mode-line-string | 800 | :lighter footnote-mode-line-string |
| 796 | :keymap footnote-minor-mode-map | 801 | :keymap footnote-minor-mode-map |
diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el index 901eb002dc1..2472b8a1870 100644 --- a/lisp/mail/mailabbrev.el +++ b/lisp/mail/mailabbrev.el | |||
| @@ -133,7 +133,15 @@ | |||
| 133 | 133 | ||
| 134 | ;;;###autoload | 134 | ;;;###autoload |
| 135 | (define-minor-mode mail-abbrevs-mode | 135 | (define-minor-mode mail-abbrevs-mode |
| 136 | "Non-nil means expand mail aliases as abbrevs, in certain message headers." | 136 | "Toggle abbrev expansion of mail aliases (Mail Abbrevs mode). |
| 137 | With a prefix argument ARG, enable Mail Abbrevs mode if ARG is | ||
| 138 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 139 | the mode if ARG is omitted or nil. | ||
| 140 | |||
| 141 | Mail Abbrevs mode is a global minor mode. When enabled, | ||
| 142 | abbrev-like expansion is performed when editing certain mail | ||
| 143 | headers (those specified by `mail-abbrev-mode-regexp'), based on | ||
| 144 | the entries in your `mail-personal-alias-file'." | ||
| 137 | :global t | 145 | :global t |
| 138 | :group 'mail-abbrev | 146 | :group 'mail-abbrev |
| 139 | :version "20.3" | 147 | :version "20.3" |
diff --git a/lisp/master.el b/lisp/master.el index 1ea0a24ca94..c3e9004ca0b 100644 --- a/lisp/master.el +++ b/lisp/master.el | |||
| @@ -72,12 +72,12 @@ You can set this variable using `master-set-slave'.") | |||
| 72 | ;;;###autoload | 72 | ;;;###autoload |
| 73 | (define-minor-mode master-mode | 73 | (define-minor-mode master-mode |
| 74 | "Toggle Master mode. | 74 | "Toggle Master mode. |
| 75 | With no argument, this command toggles the mode. | 75 | With a prefix argument ARG, enable Master mode if ARG is |
| 76 | Non-null prefix argument turns on the mode. | 76 | positive, and disable it otherwise. If called from Lisp, enable |
| 77 | Null prefix argument turns off the mode. | 77 | the mode if ARG is omitted or nil. |
| 78 | 78 | ||
| 79 | When Master mode is enabled, you can scroll the slave buffer using the | 79 | When Master mode is enabled, you can scroll the slave buffer |
| 80 | following commands: | 80 | using the following commands: |
| 81 | 81 | ||
| 82 | \\{master-mode-map} | 82 | \\{master-mode-map} |
| 83 | 83 | ||
diff --git a/lisp/mb-depth.el b/lisp/mb-depth.el index 2ed692c1b84..22fd84a67aa 100644 --- a/lisp/mb-depth.el +++ b/lisp/mb-depth.el | |||
| @@ -56,12 +56,14 @@ The prompt should already have been inserted." | |||
| 56 | ;;;###autoload | 56 | ;;;###autoload |
| 57 | (define-minor-mode minibuffer-depth-indicate-mode | 57 | (define-minor-mode minibuffer-depth-indicate-mode |
| 58 | "Toggle Minibuffer Depth Indication mode. | 58 | "Toggle Minibuffer Depth Indication mode. |
| 59 | When active, any recursive use of the minibuffer will show | 59 | With a prefix argument ARG, enable Minibuffer Depth Indication |
| 60 | the recursion depth in the minibuffer prompt. This is only | 60 | mode if ARG is positive, and disable it otherwise. If called |
| 61 | useful if `enable-recursive-minibuffers' is non-nil. | 61 | from Lisp, enable the mode if ARG is omitted or nil. |
| 62 | 62 | ||
| 63 | With prefix argument ARG, turn on if positive, otherwise off. | 63 | Minibuffer Depth Indication mode is a global minor mode. When |
| 64 | Returns non-nil if the new state is enabled." | 64 | enabled, any recursive use of the minibuffer will show the |
| 65 | recursion depth in the minibuffer prompt. This is only useful if | ||
| 66 | `enable-recursive-minibuffers' is non-nil." | ||
| 65 | :global t | 67 | :global t |
| 66 | :group 'minibuffer | 68 | :group 'minibuffer |
| 67 | (if minibuffer-depth-indicate-mode | 69 | (if minibuffer-depth-indicate-mode |
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index eceb3afc147..75a2d70da5e 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -92,17 +92,25 @@ | |||
| 92 | :visible (fboundp 'make-frame-command) | 92 | :visible (fboundp 'make-frame-command) |
| 93 | :help ,(purecopy "Open a new frame"))) | 93 | :help ,(purecopy "Open a new frame"))) |
| 94 | 94 | ||
| 95 | (define-key menu [separator-frame] | ||
| 96 | menu-bar-separator) | ||
| 97 | |||
| 95 | (define-key menu [one-window] | 98 | (define-key menu [one-window] |
| 96 | `(menu-item ,(purecopy "Remove Splits") delete-other-windows | 99 | `(menu-item ,(purecopy "Remove Other Windows") delete-other-windows |
| 97 | :enable (not (one-window-p t nil)) | 100 | :enable (not (one-window-p t nil)) |
| 98 | :help ,(purecopy | 101 | :help ,(purecopy "Make selected window fill whole frame"))) |
| 99 | "Selected window grows to fill the whole frame"))) | ||
| 100 | 102 | ||
| 101 | (define-key menu [split-window] | 103 | (define-key menu [new-window-on-right] |
| 102 | `(menu-item ,(purecopy "Split Window") split-window-vertically | 104 | `(menu-item ,(purecopy "New Window on Right") split-window-side-by-side |
| 103 | :enable (and (menu-bar-menu-frame-live-and-visible-p) | 105 | :enable (and (menu-bar-menu-frame-live-and-visible-p) |
| 104 | (menu-bar-non-minibuffer-window-p)) | 106 | (menu-bar-non-minibuffer-window-p)) |
| 105 | :help ,(purecopy "Split selected window in two windows"))) | 107 | :help ,(purecopy "Make new window on right of selected one"))) |
| 108 | |||
| 109 | (define-key menu [new-window-below] | ||
| 110 | `(menu-item ,(purecopy "New Window Below") split-window-above-each-other | ||
| 111 | :enable (and (menu-bar-menu-frame-live-and-visible-p) | ||
| 112 | (menu-bar-non-minibuffer-window-p)) | ||
| 113 | :help ,(purecopy "Make new window below selected one"))) | ||
| 106 | 114 | ||
| 107 | (define-key menu [separator-window] | 115 | (define-key menu [separator-window] |
| 108 | menu-bar-separator) | 116 | menu-bar-separator) |
| @@ -433,7 +441,7 @@ | |||
| 433 | 441 | ||
| 434 | (defvar menu-bar-edit-menu | 442 | (defvar menu-bar-edit-menu |
| 435 | (let ((menu (make-sparse-keymap "Edit"))) | 443 | (let ((menu (make-sparse-keymap "Edit"))) |
| 436 | 444 | ||
| 437 | (define-key menu [props] | 445 | (define-key menu [props] |
| 438 | `(menu-item ,(purecopy "Text Properties") facemenu-menu)) | 446 | `(menu-item ,(purecopy "Text Properties") facemenu-menu)) |
| 439 | 447 | ||
| @@ -1645,7 +1653,7 @@ key, a click, or a menu-item"))) | |||
| 1645 | 1653 | ||
| 1646 | (defvar menu-bar-search-documentation-menu | 1654 | (defvar menu-bar-search-documentation-menu |
| 1647 | (let ((menu (make-sparse-keymap "Search Documentation"))) | 1655 | (let ((menu (make-sparse-keymap "Search Documentation"))) |
| 1648 | 1656 | ||
| 1649 | (define-key menu [search-documentation-strings] | 1657 | (define-key menu [search-documentation-strings] |
| 1650 | `(menu-item ,(purecopy "Search Documentation Strings...") apropos-documentation | 1658 | `(menu-item ,(purecopy "Search Documentation Strings...") apropos-documentation |
| 1651 | :help | 1659 | :help |
| @@ -2161,11 +2169,13 @@ It must accept a buffer as its only required argument.") | |||
| 2161 | :help ,(purecopy "Put previous minibuffer history element in the minibuffer")))) | 2169 | :help ,(purecopy "Put previous minibuffer history element in the minibuffer")))) |
| 2162 | 2170 | ||
| 2163 | (define-minor-mode menu-bar-mode | 2171 | (define-minor-mode menu-bar-mode |
| 2164 | "Toggle display of a menu bar on each frame. | 2172 | "Toggle display of a menu bar on each frame (Menu Bar mode). |
| 2173 | With a prefix argument ARG, enable Menu Bar mode if ARG is | ||
| 2174 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 2175 | Menu Bar mode if ARG is omitted or nil. | ||
| 2176 | |||
| 2165 | This command applies to all frames that exist and frames to be | 2177 | This command applies to all frames that exist and frames to be |
| 2166 | created in the future. | 2178 | created in the future." |
| 2167 | With a numeric argument, if the argument is positive, | ||
| 2168 | turn on menu bars; otherwise, turn off menu bars." | ||
| 2169 | :init-value t | 2179 | :init-value t |
| 2170 | :global t | 2180 | :global t |
| 2171 | ;; It's defined in C/cus-start, this stops the d-m-m macro defining it again. | 2181 | ;; It's defined in C/cus-start, this stops the d-m-m macro defining it again. |
diff --git a/lisp/minibuf-eldef.el b/lisp/minibuf-eldef.el index e6ebe3c53f1..405721f97ee 100644 --- a/lisp/minibuf-eldef.el +++ b/lisp/minibuf-eldef.el | |||
| @@ -131,14 +131,16 @@ been set up by `minibuf-eldef-setup-minibuffer'." | |||
| 131 | ;;;###autoload | 131 | ;;;###autoload |
| 132 | (define-minor-mode minibuffer-electric-default-mode | 132 | (define-minor-mode minibuffer-electric-default-mode |
| 133 | "Toggle Minibuffer Electric Default mode. | 133 | "Toggle Minibuffer Electric Default mode. |
| 134 | When active, minibuffer prompts that show a default value only show the | 134 | With a prefix argument ARG, enable Minibuffer Electric Default |
| 135 | default when it's applicable -- that is, when hitting RET would yield | 135 | mode if ARG is positive, and disable it otherwise. If called |
| 136 | the default value. If the user modifies the input such that hitting RET | 136 | from Lisp, enable the mode if ARG is omitted or nil. |
| 137 | would enter a non-default value, the prompt is modified to remove the | 137 | |
| 138 | default indication. | 138 | Minibuffer Electric Default mode is a global minor mode. When |
| 139 | 139 | enabled, minibuffer prompts that show a default value only show | |
| 140 | With prefix argument ARG, turn on if positive, otherwise off. | 140 | the default when it's applicable -- that is, when hitting RET |
| 141 | Returns non-nil if the new state is enabled." | 141 | would yield the default value. If the user modifies the input |
| 142 | such that hitting RET would enter a non-default value, the prompt | ||
| 143 | is modified to remove the default indication." | ||
| 142 | :global t | 144 | :global t |
| 143 | :group 'minibuffer | 145 | :group 'minibuffer |
| 144 | (if minibuffer-electric-default-mode | 146 | (if minibuffer-electric-default-mode |
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index acb71d115d1..38785fc48e8 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el | |||
| @@ -596,7 +596,7 @@ Moves point to the end of the new text." | |||
| 596 | (setq end (- end suffix-len)) | 596 | (setq end (- end suffix-len)) |
| 597 | (setq newtext (substring newtext 0 (- suffix-len)))) | 597 | (setq newtext (substring newtext 0 (- suffix-len)))) |
| 598 | (goto-char beg) | 598 | (goto-char beg) |
| 599 | (insert newtext) | 599 | (insert-and-inherit newtext) |
| 600 | (delete-region (point) (+ (point) (- end beg))) | 600 | (delete-region (point) (+ (point) (- end beg))) |
| 601 | (forward-char suffix-len))) | 601 | (forward-char suffix-len))) |
| 602 | 602 | ||
| @@ -927,9 +927,7 @@ If `minibuffer-completion-confirm' is `confirm-after-completion', | |||
| 927 | ;; file, so `try-completion' actually completes to | 927 | ;; file, so `try-completion' actually completes to |
| 928 | ;; that file. | 928 | ;; that file. |
| 929 | (= (length string) (length compl))) | 929 | (= (length string) (length compl))) |
| 930 | (goto-char end) | 930 | (completion--replace beg end compl)))) |
| 931 | (insert compl) | ||
| 932 | (delete-region beg end)))) | ||
| 933 | (exit-minibuffer)) | 931 | (exit-minibuffer)) |
| 934 | 932 | ||
| 935 | ((memq minibuffer-completion-confirm '(confirm confirm-after-completion)) | 933 | ((memq minibuffer-completion-confirm '(confirm confirm-after-completion)) |
diff --git a/lisp/mouse-sel.el b/lisp/mouse-sel.el index 50d221b6fa0..bcf1749e13f 100644 --- a/lisp/mouse-sel.el +++ b/lisp/mouse-sel.el | |||
| @@ -199,11 +199,12 @@ If nil, point will always be placed at the beginning of the region." | |||
| 199 | ;;;###autoload | 199 | ;;;###autoload |
| 200 | (define-minor-mode mouse-sel-mode | 200 | (define-minor-mode mouse-sel-mode |
| 201 | "Toggle Mouse Sel mode. | 201 | "Toggle Mouse Sel mode. |
| 202 | With prefix ARG, turn Mouse Sel mode on if and only if ARG is positive. | 202 | With a prefix argument ARG, enable Mouse Sel mode if ARG is |
| 203 | Returns the new status of Mouse Sel mode (non-nil means on). | 203 | positive, and disable it otherwise. If called from Lisp, enable |
| 204 | the mode if ARG is omitted or nil. | ||
| 204 | 205 | ||
| 205 | When Mouse Sel mode is enabled, mouse selection is enhanced in | 206 | Mouse Sel mode is a global minor mode. When enabled, mouse |
| 206 | various ways: | 207 | selection is enhanced in various ways: |
| 207 | 208 | ||
| 208 | - Double-clicking on symbol constituents selects symbols. | 209 | - Double-clicking on symbol constituents selects symbols. |
| 209 | Double-clicking on quotes or parentheses selects sexps. | 210 | Double-clicking on quotes or parentheses selects sexps. |
diff --git a/lisp/mouse.el b/lisp/mouse.el index ff175288445..9b1cf48ccdc 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -372,300 +372,167 @@ This command must be bound to a mouse click." | |||
| 372 | (split-window-horizontally | 372 | (split-window-horizontally |
| 373 | (min (max new-width first-col) last-col)))))) | 373 | (min (max new-width first-col) last-col)))))) |
| 374 | 374 | ||
| 375 | (defun mouse-drag-window-above (window) | 375 | ;; `mouse-drag-line' is now the common routine for handling all line |
| 376 | "Return the (or a) window directly above WINDOW. | 376 | ;; dragging events combining the earlier `mouse-drag-mode-line-1' and |
| 377 | That means one whose bottom edge is at the same height as WINDOW's top edge." | 377 | ;; `mouse-drag-vertical-line'. It should improve the behavior of line |
| 378 | (let ((start-top (nth 1 (window-edges window))) | 378 | ;; dragging wrt Emacs 23 as follows: |
| 379 | (start-left (nth 0 (window-edges window))) | 379 | |
| 380 | (start-right (nth 2 (window-edges window))) | 380 | ;; (1) Gratuitous error messages and restrictions have been (hopefully) |
| 381 | (start-window window) | 381 | ;; removed. (The help-echo that dragging the mode-line can resize a |
| 382 | above-window) | 382 | ;; one-window-frame's window will still show through via bindings.el.) |
| 383 | (setq window (previous-window window 0)) | 383 | |
| 384 | (while (and (not above-window) (not (eq window start-window))) | 384 | ;; (2) No gratuitous selection of other windows should happen. (This |
| 385 | (let ((left (nth 0 (window-edges window))) | 385 | ;; has not been completely fixed for mouse-autoselected windows yet.) |
| 386 | (right (nth 2 (window-edges window)))) | 386 | |
| 387 | (when (and (= (+ (window-height window) (nth 1 (window-edges window))) | 387 | ;; (3) Mouse clicks below a scroll-bar should pass through via unread |
| 388 | start-top) | 388 | ;; command events. |
| 389 | (or (and (<= left start-left) (<= start-right right)) | 389 | |
| 390 | (and (<= start-left left) (<= left start-right)) | 390 | ;; Note that `window-in-direction' replaces `mouse-drag-window-above' |
| 391 | (and (<= start-left right) (<= right start-right)))) | 391 | ;; and `mouse-drag-vertical-line-rightward-window' with Emacs 24.1. |
| 392 | (setq above-window window))) | 392 | (defun mouse-drag-line (start-event line) |
| 393 | (setq window (previous-window window))) | 393 | "Drag some line with the mouse. |
| 394 | above-window)) | 394 | START-EVENT is the starting mouse-event of the drag action. LINE |
| 395 | 395 | must be one of the symbols header, mode, or vertical." | |
| 396 | (defun mouse-drag-move-window-bottom (window growth) | ||
| 397 | "Move the bottom of WINDOW up or down by GROWTH lines. | ||
| 398 | Move it down if GROWTH is positive, or up if GROWTH is negative. | ||
| 399 | If this would make WINDOW too short, | ||
| 400 | shrink the window or windows above it to make room." | ||
| 401 | (condition-case nil | ||
| 402 | (adjust-window-trailing-edge window growth nil) | ||
| 403 | (error nil))) | ||
| 404 | |||
| 405 | (defsubst mouse-drag-move-window-top (window growth) | ||
| 406 | "Move the top of WINDOW up or down by GROWTH lines. | ||
| 407 | Move it down if GROWTH is positive, or up if GROWTH is negative. | ||
| 408 | If this would make WINDOW too short, shrink the window or windows | ||
| 409 | above it to make room." | ||
| 410 | ;; Moving the top of WINDOW is actually moving the bottom of the | ||
| 411 | ;; window above. | ||
| 412 | (let ((window-above (mouse-drag-window-above window))) | ||
| 413 | (and window-above | ||
| 414 | (mouse-drag-move-window-bottom window-above (- growth))))) | ||
| 415 | |||
| 416 | (defun mouse-drag-mode-line-1 (start-event mode-line-p) | ||
| 417 | "Change the height of a window by dragging on the mode or header line. | ||
| 418 | START-EVENT is the starting mouse-event of the drag action. | ||
| 419 | MODE-LINE-P non-nil means dragging a mode line; nil means a header line." | ||
| 420 | ;; Give temporary modes such as isearch a chance to turn off. | 396 | ;; Give temporary modes such as isearch a chance to turn off. |
| 421 | (run-hooks 'mouse-leave-buffer-hook) | 397 | (run-hooks 'mouse-leave-buffer-hook) |
| 422 | (let* ((done nil) | 398 | (let* ((echo-keystrokes 0) |
| 423 | (echo-keystrokes 0) | ||
| 424 | (start (event-start start-event)) | 399 | (start (event-start start-event)) |
| 425 | (start-event-window (posn-window start)) | 400 | (window (posn-window start)) |
| 426 | (start-event-frame (window-frame start-event-window)) | 401 | (frame (window-frame window)) |
| 427 | (start-nwindows (count-windows t)) | 402 | (minibuffer-window (minibuffer-window frame)) |
| 428 | (on-link (and mouse-1-click-follows-link | 403 | (on-link (and mouse-1-click-follows-link |
| 429 | (or mouse-1-click-in-non-selected-windows | 404 | (or mouse-1-click-in-non-selected-windows |
| 430 | (eq (posn-window start) (selected-window))) | 405 | (eq window (selected-window))) |
| 431 | (mouse-on-link-p start))) | 406 | (mouse-on-link-p start))) |
| 432 | (minibuffer (frame-parameter nil 'minibuffer)) | 407 | (enlarge-minibuffer |
| 433 | should-enlarge-minibuffer event mouse y top bot edges wconfig growth) | 408 | (and (eq line 'mode) |
| 409 | (not resize-mini-windows) | ||
| 410 | (eq (window-frame minibuffer-window) frame) | ||
| 411 | (not (one-window-p t frame)) | ||
| 412 | (= (nth 1 (window-edges minibuffer-window)) | ||
| 413 | (nth 3 (window-edges window))))) | ||
| 414 | (which-side | ||
| 415 | (and (eq line 'vertical) | ||
| 416 | (or (cdr (assq 'vertical-scroll-bars (frame-parameters frame))) | ||
| 417 | 'right))) | ||
| 418 | done event mouse growth dragged) | ||
| 419 | (cond | ||
| 420 | ((eq line 'header) | ||
| 421 | ;; Check whether header-line can be dragged at all. | ||
| 422 | (if (window-at-side-p window 'top) | ||
| 423 | (setq done t) | ||
| 424 | (setq window (window-in-direction 'above window t)))) | ||
| 425 | ((eq line 'mode) | ||
| 426 | ;; Check whether mode-line can be dragged at all. | ||
| 427 | (when (and (window-at-side-p window 'bottom) | ||
| 428 | (not enlarge-minibuffer)) | ||
| 429 | (setq done t))) | ||
| 430 | ((eq line 'vertical) | ||
| 431 | ;; Get the window to adjust for the vertical case. | ||
| 432 | (setq window | ||
| 433 | (if (eq which-side 'right) | ||
| 434 | ;; If the scroll bar is on the window's right or there's | ||
| 435 | ;; no scroll bar at all, adjust the window where the | ||
| 436 | ;; start-event occurred. | ||
| 437 | window | ||
| 438 | ;; If the scroll bar is on the start-event window's left, | ||
| 439 | ;; adjust the window on the left of it. | ||
| 440 | (window-in-direction 'left window t))))) | ||
| 441 | |||
| 442 | ;; Start tracking. | ||
| 434 | (track-mouse | 443 | (track-mouse |
| 435 | (progn | 444 | ;; Loop reading events and sampling the position of the mouse. |
| 436 | ;; if this is the bottommost ordinary window, then to | 445 | (while (not done) |
| 437 | ;; move its modeline the minibuffer must be enlarged. | 446 | (setq event (read-event)) |
| 438 | (setq should-enlarge-minibuffer | 447 | (setq mouse (mouse-position)) |
| 439 | (and minibuffer | 448 | ;; Do nothing if |
| 440 | mode-line-p | 449 | ;; - there is a switch-frame event. |
| 441 | (not (one-window-p t)) | 450 | ;; - the mouse isn't in the frame that we started in |
| 442 | (= (nth 1 (window-edges minibuffer)) | 451 | ;; - the mouse isn't in any Emacs frame |
| 443 | (nth 3 (window-edges start-event-window))))) | 452 | ;; Drag if |
| 444 | 453 | ;; - there is a mouse-movement event | |
| 445 | ;; loop reading events and sampling the position of | 454 | ;; - there is a scroll-bar-movement event (??) |
| 446 | ;; the mouse. | 455 | ;; (same as mouse movement for our purposes) |
| 447 | (while (not done) | 456 | ;; Quit if |
| 448 | (setq event (read-event) | 457 | ;; - there is a keyboard event or some other unknown event. |
| 449 | mouse (mouse-position)) | 458 | (cond |
| 450 | 459 | ((not (consp event)) | |
| 451 | ;; do nothing if | 460 | (setq done t)) |
| 452 | ;; - there is a switch-frame event. | 461 | ((memq (car event) '(switch-frame select-window)) |
| 453 | ;; - the mouse isn't in the frame that we started in | 462 | nil) |
| 454 | ;; - the mouse isn't in any Emacs frame | 463 | ((not (memq (car event) '(mouse-movement scroll-bar-movement))) |
| 455 | ;; drag if | 464 | (when (consp event) |
| 456 | ;; - there is a mouse-movement event | 465 | ;; Do not unread a drag-mouse-1 event to avoid selecting |
| 457 | ;; - there is a scroll-bar-movement event | 466 | ;; some other window. For vertical line dragging do not |
| 458 | ;; (same as mouse movement for our purposes) | 467 | ;; unread mouse-1 events either (but only if we dragged at |
| 459 | ;; quit if | 468 | ;; least once to allow mouse-1 clicks get through. |
| 460 | ;; - there is a keyboard event or some other unknown event. | 469 | (unless (and dragged |
| 461 | (cond ((not (consp event)) | 470 | (if (eq line 'vertical) |
| 462 | (setq done t)) | 471 | (memq (car event) '(drag-mouse-1 mouse-1)) |
| 463 | 472 | (eq (car event) 'drag-mouse-1))) | |
| 464 | ((memq (car event) '(switch-frame select-window)) | 473 | (push event unread-command-events))) |
| 465 | nil) | 474 | (setq done t)) |
| 466 | 475 | ((or (not (eq (car mouse) frame)) (null (car (cdr mouse)))) | |
| 467 | ((not (memq (car event) '(mouse-movement scroll-bar-movement))) | 476 | nil) |
| 468 | (when (consp event) | 477 | ((eq line 'vertical) |
| 469 | ;; Do not unread a drag-mouse-1 event since it will cause the | 478 | ;; Drag vertical divider (the calculations below are those |
| 470 | ;; selection of the window above when dragging the modeline | 479 | ;; from Emacs 23). |
| 471 | ;; above the selected window. | 480 | (setq growth |
| 472 | (unless (eq (car event) 'drag-mouse-1) | 481 | (- (- (cadr mouse) |
| 473 | (push event unread-command-events))) | 482 | (if (eq which-side 'right) 0 2)) |
| 474 | (setq done t)) | 483 | (nth 2 (window-edges window)) |
| 475 | 484 | -1)) | |
| 476 | ((not (eq (car mouse) start-event-frame)) | 485 | (unless (zerop growth) |
| 477 | nil) | 486 | ;; Remember that we dragged. |
| 478 | 487 | (setq dragged t)) | |
| 479 | ((null (car (cdr mouse))) | 488 | (adjust-window-trailing-edge window growth t)) |
| 480 | nil) | 489 | (t |
| 481 | 490 | ;; Drag horizontal divider (the calculations below are those | |
| 482 | (t | 491 | ;; from Emacs 23). |
| 483 | (setq y (cdr (cdr mouse)) | 492 | (setq growth |
| 484 | edges (window-edges start-event-window) | 493 | (if (eq line 'mode) |
| 485 | top (nth 1 edges) | 494 | (- (cddr mouse) (nth 3 (window-edges window)) -1) |
| 486 | bot (nth 3 edges)) | 495 | ;; The window's top includes the header line! |
| 487 | 496 | (- (nth 3 (window-edges window)) (cddr mouse)))) | |
| 488 | ;; compute size change needed | 497 | |
| 489 | (cond (mode-line-p | 498 | (unless (zerop growth) |
| 490 | (setq growth (- y bot -1))) | 499 | ;; Remember that we dragged. |
| 491 | (t ; header line | 500 | (setq dragged t)) |
| 492 | (when (< (- bot y) window-min-height) | 501 | |
| 493 | (setq y (- bot window-min-height))) | 502 | (cond |
| 494 | ;; The window's top includes the header line! | 503 | (enlarge-minibuffer |
| 495 | (setq growth (- top y)))) | 504 | (adjust-window-trailing-edge window growth)) |
| 496 | (setq wconfig (current-window-configuration)) | 505 | ((eq line 'mode) |
| 497 | 506 | (adjust-window-trailing-edge window growth)) | |
| 498 | ;; Check for an error case. | 507 | (t |
| 499 | (when (and (/= growth 0) | 508 | (adjust-window-trailing-edge window (- growth))))))) |
| 500 | (not minibuffer) | 509 | |
| 501 | (one-window-p t)) | 510 | ;; Presumably, if this was just a click, the last event should be |
| 502 | (error "Attempt to resize sole window")) | 511 | ;; `mouse-1', whereas if this did move the mouse, it should be a |
| 503 | 512 | ;; `drag-mouse-1'. `dragged' nil tells us that we never dragged | |
| 504 | ;; If we ever move, make sure we don't mistakenly treat | 513 | ;; and `on-link' tells us that there is a link to follow. |
| 505 | ;; some unexpected `mouse-1' final event as a sign that | 514 | (when (and on-link (not dragged) |
| 506 | ;; this whole drag was nothing more than a click. | 515 | (eq 'mouse-1 (car-safe (car unread-command-events)))) |
| 507 | (if (/= growth 0) (setq on-link nil)) | 516 | ;; If mouse-2 has never been done by the user, it doesn't |
| 508 | 517 | ;; have the necessary property to be interpreted correctly. | |
| 509 | ;; grow/shrink minibuffer? | 518 | (put 'mouse-2 'event-kind 'mouse-click) |
| 510 | (if should-enlarge-minibuffer | 519 | (setcar unread-command-events |
| 511 | (unless resize-mini-windows | 520 | (cons 'mouse-2 (cdar unread-command-events))))))) |
| 512 | (mouse-drag-move-window-bottom start-event-window growth)) | ||
| 513 | ;; no. grow/shrink the selected window | ||
| 514 | ;(message "growth = %d" growth) | ||
| 515 | (if mode-line-p | ||
| 516 | (mouse-drag-move-window-bottom start-event-window growth) | ||
| 517 | (mouse-drag-move-window-top start-event-window growth))) | ||
| 518 | |||
| 519 | ;; if this window's growth caused another | ||
| 520 | ;; window to be deleted because it was too | ||
| 521 | ;; short, rescind the change. | ||
| 522 | ;; | ||
| 523 | ;; if size change caused space to be stolen | ||
| 524 | ;; from a window above this one, rescind the | ||
| 525 | ;; change, but only if we didn't grow/shrink | ||
| 526 | ;; the minibuffer. minibuffer size changes | ||
| 527 | ;; can cause all windows to shrink... no way | ||
| 528 | ;; around it. | ||
| 529 | (when (or (/= start-nwindows (count-windows t)) | ||
| 530 | (and (not should-enlarge-minibuffer) | ||
| 531 | (> growth 0) | ||
| 532 | mode-line-p | ||
| 533 | (/= top | ||
| 534 | (nth 1 (window-edges | ||
| 535 | ;; Choose right window. | ||
| 536 | start-event-window))))) | ||
| 537 | (set-window-configuration wconfig))))) | ||
| 538 | |||
| 539 | ;; Presumably if this was just a click, the last event should | ||
| 540 | ;; be `mouse-1', whereas if this did move the mouse, it should be | ||
| 541 | ;; a `drag-mouse-1'. In any case `on-link' would have been nulled | ||
| 542 | ;; above if there had been any significant mouse movement. | ||
| 543 | (when (and on-link | ||
| 544 | (eq 'mouse-1 (car-safe (car unread-command-events)))) | ||
| 545 | ;; If mouse-2 has never been done by the user, it doesn't | ||
| 546 | ;; have the necessary property to be interpreted correctly. | ||
| 547 | (put 'mouse-2 'event-kind 'mouse-click) | ||
| 548 | (setcar unread-command-events | ||
| 549 | (cons 'mouse-2 (cdar unread-command-events)))))))) | ||
| 550 | 521 | ||
| 551 | (defun mouse-drag-mode-line (start-event) | 522 | (defun mouse-drag-mode-line (start-event) |
| 552 | "Change the height of a window by dragging on the mode line." | 523 | "Change the height of a window by dragging on the mode line." |
| 553 | (interactive "e") | 524 | (interactive "e") |
| 554 | (mouse-drag-mode-line-1 start-event t)) | 525 | (mouse-drag-line start-event 'mode)) |
| 555 | 526 | ||
| 556 | (defun mouse-drag-header-line (start-event) | 527 | (defun mouse-drag-header-line (start-event) |
| 557 | "Change the height of a window by dragging on the header line. | 528 | "Change the height of a window by dragging on the header line." |
| 558 | Windows whose header-lines are at the top of the frame cannot be | ||
| 559 | resized by dragging their header-line." | ||
| 560 | (interactive "e") | 529 | (interactive "e") |
| 561 | ;; Changing the window's size by dragging its header-line when the | 530 | (mouse-drag-line start-event 'header)) |
| 562 | ;; header-line is at the top of the frame is somewhat strange, | ||
| 563 | ;; because the header-line doesn't move, so don't do it. | ||
| 564 | (let* ((start (event-start start-event)) | ||
| 565 | (window (posn-window start)) | ||
| 566 | (frame (window-frame window)) | ||
| 567 | (first-window (frame-first-window frame))) | ||
| 568 | (unless (or (eq window first-window) | ||
| 569 | (= (nth 1 (window-edges window)) | ||
| 570 | (nth 1 (window-edges first-window)))) | ||
| 571 | (mouse-drag-mode-line-1 start-event nil)))) | ||
| 572 | |||
| 573 | |||
| 574 | (defun mouse-drag-vertical-line-rightward-window (window) | ||
| 575 | "Return a window that is immediately to the right of WINDOW, or nil." | ||
| 576 | (let ((bottom (nth 3 (window-inside-edges window))) | ||
| 577 | (left (nth 0 (window-inside-edges window))) | ||
| 578 | best best-right | ||
| 579 | (try (previous-window window))) | ||
| 580 | (while (not (eq try window)) | ||
| 581 | (let ((try-top (nth 1 (window-inside-edges try))) | ||
| 582 | (try-bottom (nth 3 (window-inside-edges try))) | ||
| 583 | (try-right (nth 2 (window-inside-edges try)))) | ||
| 584 | (if (and (< try-top bottom) | ||
| 585 | (>= try-bottom bottom) | ||
| 586 | (< try-right left) | ||
| 587 | (or (null best-right) (> try-right best-right))) | ||
| 588 | (setq best-right try-right best try))) | ||
| 589 | (setq try (previous-window try))) | ||
| 590 | best)) | ||
| 591 | 531 | ||
| 592 | (defun mouse-drag-vertical-line (start-event) | 532 | (defun mouse-drag-vertical-line (start-event) |
| 593 | "Change the width of a window by dragging on the vertical line." | 533 | "Change the width of a window by dragging on the vertical line." |
| 594 | (interactive "e") | 534 | (interactive "e") |
| 595 | ;; Give temporary modes such as isearch a chance to turn off. | 535 | (mouse-drag-line start-event 'vertical)) |
| 596 | (run-hooks 'mouse-leave-buffer-hook) | ||
| 597 | (let* ((done nil) | ||
| 598 | (echo-keystrokes 0) | ||
| 599 | (start-event-frame (window-frame (car (car (cdr start-event))))) | ||
| 600 | (start-event-window (car (car (cdr start-event)))) | ||
| 601 | event mouse x left right edges growth | ||
| 602 | (which-side | ||
| 603 | (or (cdr (assq 'vertical-scroll-bars (frame-parameters start-event-frame))) | ||
| 604 | 'right))) | ||
| 605 | (cond | ||
| 606 | ((one-window-p t) | ||
| 607 | (error "Attempt to resize sole ordinary window")) | ||
| 608 | ((and (eq which-side 'right) | ||
| 609 | (>= (nth 2 (window-inside-edges start-event-window)) | ||
| 610 | (frame-width start-event-frame))) | ||
| 611 | (error "Attempt to drag rightmost scrollbar")) | ||
| 612 | ((and (eq which-side 'left) | ||
| 613 | (= (nth 0 (window-inside-edges start-event-window)) 0)) | ||
| 614 | (error "Attempt to drag leftmost scrollbar"))) | ||
| 615 | (track-mouse | ||
| 616 | (progn | ||
| 617 | ;; loop reading events and sampling the position of | ||
| 618 | ;; the mouse. | ||
| 619 | (while (not done) | ||
| 620 | (setq event (read-event) | ||
| 621 | mouse (mouse-position)) | ||
| 622 | ;; do nothing if | ||
| 623 | ;; - there is a switch-frame event. | ||
| 624 | ;; - the mouse isn't in the frame that we started in | ||
| 625 | ;; - the mouse isn't in any Emacs frame | ||
| 626 | ;; drag if | ||
| 627 | ;; - there is a mouse-movement event | ||
| 628 | ;; - there is a scroll-bar-movement event | ||
| 629 | ;; (same as mouse movement for our purposes) | ||
| 630 | ;; quit if | ||
| 631 | ;; - there is a keyboard event or some other unknown event | ||
| 632 | ;; unknown event. | ||
| 633 | (cond ((integerp event) | ||
| 634 | (setq done t)) | ||
| 635 | ((memq (car event) '(switch-frame select-window)) | ||
| 636 | nil) | ||
| 637 | ((not (memq (car event) | ||
| 638 | '(mouse-movement scroll-bar-movement))) | ||
| 639 | (if (consp event) | ||
| 640 | (setq unread-command-events | ||
| 641 | (cons event unread-command-events))) | ||
| 642 | (setq done t)) | ||
| 643 | ((not (eq (car mouse) start-event-frame)) | ||
| 644 | nil) | ||
| 645 | ((null (car (cdr mouse))) | ||
| 646 | nil) | ||
| 647 | (t | ||
| 648 | (let ((window | ||
| 649 | ;; If the scroll bar is on the window's left, | ||
| 650 | ;; adjust the window on the left. | ||
| 651 | (if (eq which-side 'right) | ||
| 652 | start-event-window | ||
| 653 | (mouse-drag-vertical-line-rightward-window | ||
| 654 | start-event-window)))) | ||
| 655 | (setq x (- (car (cdr mouse)) | ||
| 656 | (if (eq which-side 'right) 0 2)) | ||
| 657 | edges (window-edges window) | ||
| 658 | left (nth 0 edges) | ||
| 659 | right (nth 2 edges)) | ||
| 660 | ;; scale back a move that would make the | ||
| 661 | ;; window too thin. | ||
| 662 | (if (< (- x left -1) window-min-width) | ||
| 663 | (setq x (+ left window-min-width -1))) | ||
| 664 | ;; compute size change needed | ||
| 665 | (setq growth (- x right -1)) | ||
| 666 | (condition-case nil | ||
| 667 | (adjust-window-trailing-edge window growth t) | ||
| 668 | (error nil)))))))))) | ||
| 669 | 536 | ||
| 670 | (defun mouse-set-point (event) | 537 | (defun mouse-set-point (event) |
| 671 | "Move point to the position clicked on with the mouse. | 538 | "Move point to the position clicked on with the mouse. |
diff --git a/lisp/msb.el b/lisp/msb.el index 12e5a0192fe..74ceff1a9cd 100644 --- a/lisp/msb.el +++ b/lisp/msb.el | |||
| @@ -1133,7 +1133,10 @@ variable `msb-menu-cond'." | |||
| 1133 | ;;;###autoload | 1133 | ;;;###autoload |
| 1134 | (define-minor-mode msb-mode | 1134 | (define-minor-mode msb-mode |
| 1135 | "Toggle Msb mode. | 1135 | "Toggle Msb mode. |
| 1136 | With arg, turn Msb mode on if and only if arg is positive. | 1136 | With a prefix argument ARG, enable Msb mode if ARG is positive, |
| 1137 | and disable it otherwise. If called from Lisp, enable the mode | ||
| 1138 | if ARG is omitted or nil. | ||
| 1139 | |||
| 1137 | This mode overrides the binding(s) of `mouse-buffer-menu' to provide a | 1140 | This mode overrides the binding(s) of `mouse-buffer-menu' to provide a |
| 1138 | different buffer menu using the function `msb'." | 1141 | different buffer menu using the function `msb'." |
| 1139 | :global t :group 'msb | 1142 | :global t :group 'msb |
diff --git a/lisp/mwheel.el b/lisp/mwheel.el index 4ead168b188..05aeb12acf4 100644 --- a/lisp/mwheel.el +++ b/lisp/mwheel.el | |||
| @@ -250,11 +250,11 @@ This should only be bound to mouse buttons 4 and 5." | |||
| 250 | 250 | ||
| 251 | (defvar mwheel-installed-bindings nil) | 251 | (defvar mwheel-installed-bindings nil) |
| 252 | 252 | ||
| 253 | ;; preloaded ;;;###autoload | ||
| 254 | (define-minor-mode mouse-wheel-mode | 253 | (define-minor-mode mouse-wheel-mode |
| 255 | "Toggle mouse wheel support. | 254 | "Toggle mouse wheel support (Mouse Wheel mode). |
| 256 | With prefix argument ARG, turn on if positive, otherwise off. | 255 | With a prefix argument ARG, enable Mouse Wheel mode if ARG is |
| 257 | Return non-nil if the new state is enabled." | 256 | positive, and disable it otherwise. If called from Lisp, enable |
| 257 | the mode if ARG is omitted or nil." | ||
| 258 | :init-value t | 258 | :init-value t |
| 259 | ;; We'd like to use custom-initialize-set here so the setup is done | 259 | ;; We'd like to use custom-initialize-set here so the setup is done |
| 260 | ;; before dumping, but at the point where the defcustom is evaluated, | 260 | ;; before dumping, but at the point where the defcustom is evaluated, |
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index f9bc13e1e25..10a1fa5afc5 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el | |||
| @@ -36,6 +36,7 @@ | |||
| 36 | ;; Function Browser Earliest version | 36 | ;; Function Browser Earliest version |
| 37 | ;; browse-url-mozilla Mozilla Don't know | 37 | ;; browse-url-mozilla Mozilla Don't know |
| 38 | ;; browse-url-firefox Firefox Don't know (tried with 1.0.1) | 38 | ;; browse-url-firefox Firefox Don't know (tried with 1.0.1) |
| 39 | ;; browse-url-chromium Chromium 3.0 | ||
| 39 | ;; browse-url-galeon Galeon Don't know | 40 | ;; browse-url-galeon Galeon Don't know |
| 40 | ;; browse-url-epiphany Epiphany Don't know | 41 | ;; browse-url-epiphany Epiphany Don't know |
| 41 | ;; browse-url-netscape Netscape 1.1b1 | 42 | ;; browse-url-netscape Netscape 1.1b1 |
| @@ -47,6 +48,7 @@ | |||
| 47 | ;; browse-url-generic arbitrary | 48 | ;; browse-url-generic arbitrary |
| 48 | ;; browse-url-default-windows-browser MS-Windows browser | 49 | ;; browse-url-default-windows-browser MS-Windows browser |
| 49 | ;; browse-url-default-macosx-browser Mac OS X browser | 50 | ;; browse-url-default-macosx-browser Mac OS X browser |
| 51 | ;; browse-url-xdg-open Free Desktop xdg-open on Gnome, KDE, Xfce4, LXDE | ||
| 50 | ;; browse-url-gnome-moz GNOME interface to Mozilla | 52 | ;; browse-url-gnome-moz GNOME interface to Mozilla |
| 51 | ;; browse-url-kde KDE konqueror (kfm) | 53 | ;; browse-url-kde KDE konqueror (kfm) |
| 52 | ;; browse-url-elinks Elinks Don't know (tried with 0.12.GIT) | 54 | ;; browse-url-elinks Elinks Don't know (tried with 0.12.GIT) |
| @@ -230,6 +232,7 @@ regexp should probably be \".\" to specify a default browser." | |||
| 230 | :value browse-url-w3-gnudoit) | 232 | :value browse-url-w3-gnudoit) |
| 231 | (function-item :tag "Mozilla" :value browse-url-mozilla) | 233 | (function-item :tag "Mozilla" :value browse-url-mozilla) |
| 232 | (function-item :tag "Firefox" :value browse-url-firefox) | 234 | (function-item :tag "Firefox" :value browse-url-firefox) |
| 235 | (function-item :tag "Chromium" :value browse-url-chromium) | ||
| 233 | (function-item :tag "Galeon" :value browse-url-galeon) | 236 | (function-item :tag "Galeon" :value browse-url-galeon) |
| 234 | (function-item :tag "Epiphany" :value browse-url-epiphany) | 237 | (function-item :tag "Epiphany" :value browse-url-epiphany) |
| 235 | (function-item :tag "Netscape" :value browse-url-netscape) | 238 | (function-item :tag "Netscape" :value browse-url-netscape) |
| @@ -336,6 +339,22 @@ Defaults to the value of `browse-url-firefox-arguments' at the time | |||
| 336 | :type '(repeat (string :tag "Argument")) | 339 | :type '(repeat (string :tag "Argument")) |
| 337 | :group 'browse-url) | 340 | :group 'browse-url) |
| 338 | 341 | ||
| 342 | (defcustom browse-url-chromium-program | ||
| 343 | (let ((candidates '("chromium" "chromium-browser"))) | ||
| 344 | (while (and candidates (not (executable-find (car candidates)))) | ||
| 345 | (setq candidates (cdr candidates))) | ||
| 346 | (or (car candidates) "chromium")) | ||
| 347 | "The name by which to invoke Chromium." | ||
| 348 | :type 'string | ||
| 349 | :version "24.1" | ||
| 350 | :group 'browse-url) | ||
| 351 | |||
| 352 | (defcustom browse-url-chromium-arguments nil | ||
| 353 | "A list of strings to pass to Chromium as arguments." | ||
| 354 | :type '(repeat (string :tag "Argument")) | ||
| 355 | :version "24.1" | ||
| 356 | :group 'browse-url) | ||
| 357 | |||
| 339 | (defcustom browse-url-galeon-program "galeon" | 358 | (defcustom browse-url-galeon-program "galeon" |
| 340 | "The name by which to invoke Galeon." | 359 | "The name by which to invoke Galeon." |
| 341 | :type 'string | 360 | :type 'string |
| @@ -913,6 +932,7 @@ used instead of `browse-url-new-window-flag'." | |||
| 913 | ((executable-find browse-url-gnome-moz-program) 'browse-url-gnome-moz) | 932 | ((executable-find browse-url-gnome-moz-program) 'browse-url-gnome-moz) |
| 914 | ((executable-find browse-url-mozilla-program) 'browse-url-mozilla) | 933 | ((executable-find browse-url-mozilla-program) 'browse-url-mozilla) |
| 915 | ((executable-find browse-url-firefox-program) 'browse-url-firefox) | 934 | ((executable-find browse-url-firefox-program) 'browse-url-firefox) |
| 935 | ((executable-find browse-url-chromium-program) 'browse-url-chromium) | ||
| 916 | ((executable-find browse-url-galeon-program) 'browse-url-galeon) | 936 | ((executable-find browse-url-galeon-program) 'browse-url-galeon) |
| 917 | ((executable-find browse-url-kde-program) 'browse-url-kde) | 937 | ((executable-find browse-url-kde-program) 'browse-url-kde) |
| 918 | ((executable-find browse-url-netscape-program) 'browse-url-netscape) | 938 | ((executable-find browse-url-netscape-program) 'browse-url-netscape) |
| @@ -924,12 +944,13 @@ used instead of `browse-url-new-window-flag'." | |||
| 924 | url args)) | 944 | url args)) |
| 925 | 945 | ||
| 926 | (defun browse-url-can-use-xdg-open () | 946 | (defun browse-url-can-use-xdg-open () |
| 927 | "Check if xdg-open can be used, i.e. we are on Gnome, KDE or xfce4." | 947 | "Check if xdg-open can be used, i.e. we are on Gnome, KDE, Xfce4 or LXDE." |
| 928 | (and (getenv "DISPLAY") | 948 | (and (getenv "DISPLAY") |
| 929 | (executable-find "xdg-open") | 949 | (executable-find "xdg-open") |
| 930 | ;; xdg-open may call gnome-open and that does not wait for its child | 950 | ;; xdg-open may call gnome-open and that does not wait for its child |
| 931 | ;; to finish. This child may then be killed when the parent dies. | 951 | ;; to finish. This child may then be killed when the parent dies. |
| 932 | ;; Use nohup to work around. | 952 | ;; Use nohup to work around. See bug#7166, bug#8917, bug#9779 and |
| 953 | ;; http://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html | ||
| 933 | (executable-find "nohup") | 954 | (executable-find "nohup") |
| 934 | (or (getenv "GNOME_DESKTOP_SESSION_ID") | 955 | (or (getenv "GNOME_DESKTOP_SESSION_ID") |
| 935 | ;; GNOME_DESKTOP_SESSION_ID is deprecated, check on Dbus also. | 956 | ;; GNOME_DESKTOP_SESSION_ID is deprecated, check on Dbus also. |
| @@ -947,7 +968,9 @@ used instead of `browse-url-new-window-flag'." | |||
| 947 | "/bin/sh" nil nil nil | 968 | "/bin/sh" nil nil nil |
| 948 | "-c" | 969 | "-c" |
| 949 | "xprop -root _DT_SAVE_MODE|grep xfce4")) | 970 | "xprop -root _DT_SAVE_MODE|grep xfce4")) |
| 950 | (error nil))))) | 971 | (error nil)) |
| 972 | (member (getenv "DESKTOP_SESSION") '("LXDE" "Lubuntu")) | ||
| 973 | (equal (getenv "XDG_CURRENT_DESKTOP") "LXDE")))) | ||
| 951 | 974 | ||
| 952 | 975 | ||
| 953 | ;;;###autoload | 976 | ;;;###autoload |
| @@ -1141,6 +1164,22 @@ URL in a new window." | |||
| 1141 | (append browse-url-firefox-startup-arguments (list url)))))) | 1164 | (append browse-url-firefox-startup-arguments (list url)))))) |
| 1142 | 1165 | ||
| 1143 | ;;;###autoload | 1166 | ;;;###autoload |
| 1167 | (defun browse-url-chromium (url &optional new-window) | ||
| 1168 | "Ask the Chromium WWW browser to load URL. | ||
| 1169 | Default to the URL around or before point. The strings in | ||
| 1170 | variable `browse-url-chromium-arguments' are also passed to | ||
| 1171 | Chromium." | ||
| 1172 | (interactive (browse-url-interactive-arg "URL: ")) | ||
| 1173 | (setq url (browse-url-encode-url url)) | ||
| 1174 | (let* ((process-environment (browse-url-process-environment))) | ||
| 1175 | (apply 'start-process | ||
| 1176 | (concat "chromium " url) nil | ||
| 1177 | browse-url-chromium-program | ||
| 1178 | (append | ||
| 1179 | browse-url-chromium-arguments | ||
| 1180 | (list url))))) | ||
| 1181 | |||
| 1182 | ;;;###autoload | ||
| 1144 | (defun browse-url-galeon (url &optional new-window) | 1183 | (defun browse-url-galeon (url &optional new-window) |
| 1145 | "Ask the Galeon WWW browser to load URL. | 1184 | "Ask the Galeon WWW browser to load URL. |
| 1146 | Default to the URL around or before point. The strings in variable | 1185 | Default to the URL around or before point. The strings in variable |
diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el index 4e78a7d42c0..1432c1e516b 100644 --- a/lisp/net/goto-addr.el +++ b/lisp/net/goto-addr.el | |||
| @@ -288,7 +288,7 @@ Also fontifies the buffer appropriately (see `goto-address-fontify-p' and | |||
| 288 | 288 | ||
| 289 | ;;;###autoload | 289 | ;;;###autoload |
| 290 | (define-minor-mode goto-address-prog-mode | 290 | (define-minor-mode goto-address-prog-mode |
| 291 | "Turn on `goto-address-mode', but only in comments and strings." | 291 | "Like `goto-address-mode', but only for comments and strings." |
| 292 | nil | 292 | nil |
| 293 | "" | 293 | "" |
| 294 | nil | 294 | nil |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index adc66f6766c..5fca1018095 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -1886,7 +1886,7 @@ Falls back to normal file name handler if no Tramp file name handler exists." | |||
| 1886 | (when (and (listp sf) (eq (car sf) 'autoload)) | 1886 | (when (and (listp sf) (eq (car sf) 'autoload)) |
| 1887 | (let ((default-directory | 1887 | (let ((default-directory |
| 1888 | (tramp-compat-temporary-file-directory))) | 1888 | (tramp-compat-temporary-file-directory))) |
| 1889 | (load (cadr sf) 'noerror))) | 1889 | (load (cadr sf) 'noerror 'nomessage))) |
| 1890 | (apply foreign operation args)) | 1890 | (apply foreign operation args)) |
| 1891 | 1891 | ||
| 1892 | ;; Trace that somebody has interrupted the operation. | 1892 | ;; Trace that somebody has interrupted the operation. |
| @@ -2103,8 +2103,9 @@ This is true, if either the remote host is already connected, or if we are | |||
| 2103 | not in completion mode." | 2103 | not in completion mode." |
| 2104 | (and (tramp-tramp-file-p filename) | 2104 | (and (tramp-tramp-file-p filename) |
| 2105 | (with-parsed-tramp-file-name filename nil | 2105 | (with-parsed-tramp-file-name filename nil |
| 2106 | (or (get-buffer (tramp-buffer-name v)) | 2106 | (or (not (tramp-completion-mode-p)) |
| 2107 | (not (tramp-completion-mode-p)))))) | 2107 | (let ((p (tramp-get-connection-process v))) |
| 2108 | (and p (processp p) (memq (process-status p) '(run open)))))))) | ||
| 2108 | 2109 | ||
| 2109 | ;; Method, host name and user name completion. | 2110 | ;; Method, host name and user name completion. |
| 2110 | ;; `tramp-completion-dissect-file-name' returns a list of | 2111 | ;; `tramp-completion-dissect-file-name' returns a list of |
diff --git a/lisp/net/xesam.el b/lisp/net/xesam.el index 64c26cfb2c9..56e9cb68c61 100644 --- a/lisp/net/xesam.el +++ b/lisp/net/xesam.el | |||
| @@ -516,9 +516,9 @@ engine specific, widget :notify function to visualize xesam:url." | |||
| 516 | 516 | ||
| 517 | (define-minor-mode xesam-minor-mode | 517 | (define-minor-mode xesam-minor-mode |
| 518 | "Toggle Xesam minor mode. | 518 | "Toggle Xesam minor mode. |
| 519 | With no argument, this command toggles the mode. | 519 | With a prefix argument ARG, enable Xesam minor mode if ARG is |
| 520 | Non-null prefix argument turns on the mode. | 520 | positive, and disable it otherwise. If called from Lisp, enable |
| 521 | Null prefix argument turns off the mode. | 521 | the mode if ARG is omitted or nil. |
| 522 | 522 | ||
| 523 | When Xesam minor mode is enabled, all text which matches a | 523 | When Xesam minor mode is enabled, all text which matches a |
| 524 | previous Xesam query in this buffer is highlighted." | 524 | previous Xesam query in this buffer is highlighted." |
diff --git a/lisp/outline.el b/lisp/outline.el index f864058c6fc..34d30fc4591 100644 --- a/lisp/outline.el +++ b/lisp/outline.el | |||
| @@ -356,7 +356,10 @@ After that, changing the prefix key requires manipulating keymaps." | |||
| 356 | ;;;###autoload | 356 | ;;;###autoload |
| 357 | (define-minor-mode outline-minor-mode | 357 | (define-minor-mode outline-minor-mode |
| 358 | "Toggle Outline minor mode. | 358 | "Toggle Outline minor mode. |
| 359 | With arg, turn Outline minor mode on if arg is positive, off otherwise. | 359 | With a prefix argument ARG, enable Outline minor mode if ARG is |
| 360 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 361 | the mode if ARG is omitted or nil. | ||
| 362 | |||
| 360 | See the command `outline-mode' for more information on this mode." | 363 | See the command `outline-mode' for more information on this mode." |
| 361 | nil " Outl" (list (cons [menu-bar] outline-minor-mode-menu-bar-map) | 364 | nil " Outl" (list (cons [menu-bar] outline-minor-mode-menu-bar-map) |
| 362 | (cons outline-minor-mode-prefix outline-mode-prefix-map)) | 365 | (cons outline-minor-mode-prefix outline-mode-prefix-map)) |
diff --git a/lisp/paren.el b/lisp/paren.el index fb5c0bf36e9..ee550228d48 100644 --- a/lisp/paren.el +++ b/lisp/paren.el | |||
| @@ -102,12 +102,14 @@ otherwise)." | |||
| 102 | 102 | ||
| 103 | ;;;###autoload | 103 | ;;;###autoload |
| 104 | (define-minor-mode show-paren-mode | 104 | (define-minor-mode show-paren-mode |
| 105 | "Toggle Show Paren mode. | 105 | "Toggle visualization of matching parens (Show Paren mode). |
| 106 | With prefix ARG, turn Show Paren mode on if and only if ARG is positive. | 106 | With a prefix argument ARG, enable Show Paren mode if ARG is |
| 107 | Returns the new status of Show Paren mode (non-nil means on). | 107 | positive, and disable it otherwise. If called from Lisp, enable |
| 108 | the mode if ARG is omitted or nil. | ||
| 108 | 109 | ||
| 109 | When Show Paren mode is enabled, any matching parenthesis is highlighted | 110 | Show Paren mode is a global minor mode. When enabled, any |
| 110 | in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time." | 111 | matching parenthesis is highlighted in `show-paren-style' after |
| 112 | `show-paren-delay' seconds of Emacs idle time." | ||
| 111 | :global t :group 'paren-showing | 113 | :global t :group 'paren-showing |
| 112 | ;; Enable or disable the mechanism. | 114 | ;; Enable or disable the mechanism. |
| 113 | ;; First get rid of the old idle timer. | 115 | ;; First get rid of the old idle timer. |
diff --git a/lisp/progmodes/bug-reference.el b/lisp/progmodes/bug-reference.el index 8ec379afab2..12eddfef1aa 100644 --- a/lisp/progmodes/bug-reference.el +++ b/lisp/progmodes/bug-reference.el | |||
| @@ -127,7 +127,10 @@ so that it is considered safe, see `enable-local-variables'.") | |||
| 127 | 127 | ||
| 128 | ;;;###autoload | 128 | ;;;###autoload |
| 129 | (define-minor-mode bug-reference-mode | 129 | (define-minor-mode bug-reference-mode |
| 130 | "Minor mode to buttonize bugzilla references in the current buffer." | 130 | "Toggle hyperlinking bug references in the buffer (Bug Reference mode). |
| 131 | With a prefix argument ARG, enable Bug Reference mode if ARG is | ||
| 132 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 133 | the mode if ARG is omitted or nil." | ||
| 131 | nil | 134 | nil |
| 132 | "" | 135 | "" |
| 133 | nil | 136 | nil |
diff --git a/lisp/progmodes/cap-words.el b/lisp/progmodes/cap-words.el index 0ce84ae33a7..d7b7dfef1ec 100644 --- a/lisp/progmodes/cap-words.el +++ b/lisp/progmodes/cap-words.el | |||
| @@ -60,9 +60,13 @@ Looks for word boundaries before capitals." | |||
| 60 | ;;;###autoload | 60 | ;;;###autoload |
| 61 | (define-minor-mode capitalized-words-mode | 61 | (define-minor-mode capitalized-words-mode |
| 62 | "Toggle Capitalized Words mode. | 62 | "Toggle Capitalized Words mode. |
| 63 | With a prefix argument ARG, enable Capitalized Words mode if ARG | ||
| 64 | is positive, and disable it otherwise. If called from Lisp, | ||
| 65 | enable the mode if ARG is omitted or nil. | ||
| 63 | 66 | ||
| 64 | In this minor mode, a word boundary occurs immediately before an | 67 | Capitalized Words mode is a buffer-local minor mode. When |
| 65 | uppercase letter in a symbol. This is in addition to all the normal | 68 | enabled, a word boundary occurs immediately before an uppercase |
| 69 | letter in a symbol. This is in addition to all the normal | ||
| 66 | boundaries given by the syntax and category tables. There is no | 70 | boundaries given by the syntax and category tables. There is no |
| 67 | restriction to ASCII. | 71 | restriction to ASCII. |
| 68 | 72 | ||
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index a1cbdc16560..b2c548847c3 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el | |||
| @@ -2456,7 +2456,7 @@ comment at the start of cc-engine.el for more info." | |||
| 2456 | (<= from (cdr c-state-brace-pair-desert))) | 2456 | (<= from (cdr c-state-brace-pair-desert))) |
| 2457 | ;; Only search what we absolutely need to: | 2457 | ;; Only search what we absolutely need to: |
| 2458 | (if (and c-state-brace-pair-desert | 2458 | (if (and c-state-brace-pair-desert |
| 2459 | (> from (cdr c-state-brace-pair-desert))) | 2459 | (eq cache-pos (car c-state-brace-pair-desert))) |
| 2460 | (narrow-to-region (cdr c-state-brace-pair-desert) (point-max))) | 2460 | (narrow-to-region (cdr c-state-brace-pair-desert) (point-max))) |
| 2461 | 2461 | ||
| 2462 | ;; In the next pair of nested loops, the inner one moves back past a | 2462 | ;; In the next pair of nested loops, the inner one moves back past a |
| @@ -3127,6 +3127,33 @@ comment at the start of cc-engine.el for more info." | |||
| 3127 | (unless (fboundp 'c-real-parse-state) | 3127 | (unless (fboundp 'c-real-parse-state) |
| 3128 | (fset 'c-real-parse-state (symbol-function 'c-parse-state))) | 3128 | (fset 'c-real-parse-state (symbol-function 'c-parse-state))) |
| 3129 | (cc-bytecomp-defun c-real-parse-state) | 3129 | (cc-bytecomp-defun c-real-parse-state) |
| 3130 | |||
| 3131 | (defvar c-parse-state-state nil) | ||
| 3132 | (defun c-record-parse-state-state () | ||
| 3133 | (setq c-parse-state-state | ||
| 3134 | (mapcar | ||
| 3135 | (lambda (arg) | ||
| 3136 | (cons arg (symbol-value arg))) | ||
| 3137 | '(c-state-cache | ||
| 3138 | c-state-cache-good-pos | ||
| 3139 | c-state-nonlit-pos-cache | ||
| 3140 | c-state-nonlit-pos-cache-limit | ||
| 3141 | c-state-brace-pair-desert | ||
| 3142 | c-state-point-min | ||
| 3143 | c-state-point-min-lit-type | ||
| 3144 | c-state-point-min-lit-start | ||
| 3145 | c-state-min-scan-pos | ||
| 3146 | c-state-old-cpp-beg | ||
| 3147 | c-state-old-cpp-end)))) | ||
| 3148 | (defun c-replay-parse-state-state () | ||
| 3149 | (message | ||
| 3150 | (concat "(setq " | ||
| 3151 | (mapconcat | ||
| 3152 | (lambda (arg) | ||
| 3153 | (format "%s %s%s" (car arg) (if (atom (cdr arg)) "" "'") (cdr arg))) | ||
| 3154 | c-parse-state-state " ") | ||
| 3155 | ")"))) | ||
| 3156 | |||
| 3130 | (defun c-debug-parse-state () | 3157 | (defun c-debug-parse-state () |
| 3131 | (let ((here (point)) (res1 (c-real-parse-state)) res2) | 3158 | (let ((here (point)) (res1 (c-real-parse-state)) res2) |
| 3132 | (let ((c-state-cache nil) | 3159 | (let ((c-state-cache nil) |
| @@ -3145,15 +3172,21 @@ comment at the start of cc-engine.el for more info." | |||
| 3145 | ;; The cache can actually go further back due to the ad-hoc way | 3172 | ;; The cache can actually go further back due to the ad-hoc way |
| 3146 | ;; the first paren is found, so try to whack off a bit of its | 3173 | ;; the first paren is found, so try to whack off a bit of its |
| 3147 | ;; start before complaining. | 3174 | ;; start before complaining. |
| 3148 | (save-excursion | 3175 | ;; (save-excursion |
| 3149 | (goto-char (or (c-least-enclosing-brace res2) (point))) | 3176 | ;; (goto-char (or (c-least-enclosing-brace res2) (point))) |
| 3150 | (c-beginning-of-defun-1) | 3177 | ;; (c-beginning-of-defun-1) |
| 3151 | (while (not (or (bobp) (eq (char-after) ?{))) | 3178 | ;; (while (not (or (bobp) (eq (char-after) ?{))) |
| 3152 | (c-beginning-of-defun-1)) | 3179 | ;; (c-beginning-of-defun-1)) |
| 3153 | (unless (equal (c-whack-state-before (point) res1) res2) | 3180 | ;; (unless (equal (c-whack-state-before (point) res1) res2) |
| 3154 | (message (concat "c-parse-state inconsistency at %s: " | 3181 | ;; (message (concat "c-parse-state inconsistency at %s: " |
| 3155 | "using cache: %s, from scratch: %s") | 3182 | ;; "using cache: %s, from scratch: %s") |
| 3156 | here res1 res2)))) | 3183 | ;; here res1 res2))) |
| 3184 | (message (concat "c-parse-state inconsistency at %s: " | ||
| 3185 | "using cache: %s, from scratch: %s") | ||
| 3186 | here res1 res2) | ||
| 3187 | (message "Old state:") | ||
| 3188 | (c-replay-parse-state-state)) | ||
| 3189 | (c-record-parse-state-state) | ||
| 3157 | res1)) | 3190 | res1)) |
| 3158 | 3191 | ||
| 3159 | (defun c-toggle-parse-state-debug (&optional arg) | 3192 | (defun c-toggle-parse-state-debug (&optional arg) |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 619c423902c..156c90159cd 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -1968,12 +1968,15 @@ Optional argument MINOR indicates this is called from | |||
| 1968 | 1968 | ||
| 1969 | ;;;###autoload | 1969 | ;;;###autoload |
| 1970 | (define-minor-mode compilation-shell-minor-mode | 1970 | (define-minor-mode compilation-shell-minor-mode |
| 1971 | "Toggle compilation shell minor mode. | 1971 | "Toggle Compilation Shell minor mode. |
| 1972 | With arg, turn compilation mode on if and only if arg is positive. | 1972 | With a prefix argument ARG, enable Compilation Shell minor mode |
| 1973 | In this minor mode, all the error-parsing commands of the | 1973 | if ARG is positive, and disable it otherwise. If called from |
| 1974 | Compilation major mode are available but bound to keys that don't | 1974 | Lisp, enable the mode if ARG is omitted or nil. |
| 1975 | collide with Shell mode. See `compilation-mode'. | 1975 | |
| 1976 | Turning the mode on runs the normal hook `compilation-shell-minor-mode-hook'." | 1976 | When Compilation Shell minor mode is enabled, all the |
| 1977 | error-parsing commands of the Compilation major mode are | ||
| 1978 | available but bound to keys that don't collide with Shell mode. | ||
| 1979 | See `compilation-mode'." | ||
| 1977 | nil " Shell-Compile" | 1980 | nil " Shell-Compile" |
| 1978 | :group 'compilation | 1981 | :group 'compilation |
| 1979 | (if compilation-shell-minor-mode | 1982 | (if compilation-shell-minor-mode |
| @@ -1982,11 +1985,14 @@ Turning the mode on runs the normal hook `compilation-shell-minor-mode-hook'." | |||
| 1982 | 1985 | ||
| 1983 | ;;;###autoload | 1986 | ;;;###autoload |
| 1984 | (define-minor-mode compilation-minor-mode | 1987 | (define-minor-mode compilation-minor-mode |
| 1985 | "Toggle compilation minor mode. | 1988 | "Toggle Compilation minor mode. |
| 1986 | With arg, turn compilation mode on if and only if arg is positive. | 1989 | With a prefix argument ARG, enable Compilation minor mode if ARG |
| 1987 | In this minor mode, all the error-parsing commands of the | 1990 | is positive, and disable it otherwise. If called from Lisp, |
| 1988 | Compilation major mode are available. See `compilation-mode'. | 1991 | enable the mode if ARG is omitted or nil. |
| 1989 | Turning the mode on runs the normal hook `compilation-minor-mode-hook'." | 1992 | |
| 1993 | When Compilation minor mode is enabled, all the error-parsing | ||
| 1994 | commands of Compilation major mode are available. See | ||
| 1995 | `compilation-mode'." | ||
| 1990 | nil " Compilation" | 1996 | nil " Compilation" |
| 1991 | :group 'compilation | 1997 | :group 'compilation |
| 1992 | (if compilation-minor-mode | 1998 | (if compilation-minor-mode |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 25a23fed293..7b3a2893610 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -3255,7 +3255,10 @@ Treats actions as defuns." | |||
| 3255 | 3255 | ||
| 3256 | ;;;###autoload | 3256 | ;;;###autoload |
| 3257 | (define-minor-mode gud-tooltip-mode | 3257 | (define-minor-mode gud-tooltip-mode |
| 3258 | "Toggle the display of GUD tooltips." | 3258 | "Toggle the display of GUD tooltips. |
| 3259 | With a prefix argument ARG, enable the feature if ARG is | ||
| 3260 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 3261 | it if ARG is omitted or nil." | ||
| 3259 | :global t | 3262 | :global t |
| 3260 | :group 'gud | 3263 | :group 'gud |
| 3261 | :group 'tooltip | 3264 | :group 'tooltip |
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el index 48d1ac4b85e..374a45acec6 100644 --- a/lisp/progmodes/hideif.el +++ b/lisp/progmodes/hideif.el | |||
| @@ -214,11 +214,15 @@ | |||
| 214 | 214 | ||
| 215 | ;;;###autoload | 215 | ;;;###autoload |
| 216 | (define-minor-mode hide-ifdef-mode | 216 | (define-minor-mode hide-ifdef-mode |
| 217 | "Toggle Hide-Ifdef mode. This is a minor mode, albeit a large one. | 217 | "Toggle features to hide/show #ifdef blocks (Hide-Ifdef mode). |
| 218 | With ARG, turn Hide-Ifdef mode on if arg is positive, off otherwise. | 218 | With a prefix argument ARG, enable Hide-Ifdef mode if ARG is |
| 219 | In Hide-Ifdef mode, code within #ifdef constructs that the C preprocessor | 219 | positive, and disable it otherwise. If called from Lisp, enable |
| 220 | would eliminate may be hidden from view. Several variables affect | 220 | the mode if ARG is omitted or nil. |
| 221 | how the hiding is done: | 221 | |
| 222 | Hide-Ifdef mode is a buffer-local minor mode for use with C and | ||
| 223 | C-like major modes. When enabled, code within #ifdef constructs | ||
| 224 | that the C preprocessor would eliminate may be hidden from view. | ||
| 225 | Several variables affect how the hiding is done: | ||
| 222 | 226 | ||
| 223 | `hide-ifdef-env' | 227 | `hide-ifdef-env' |
| 224 | An association list of defined and undefined symbols for the | 228 | An association list of defined and undefined symbols for the |
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el index b2cd24f0f98..18f47d14a3f 100644 --- a/lisp/progmodes/idlw-shell.el +++ b/lisp/progmodes/idlw-shell.el | |||
| @@ -4277,16 +4277,14 @@ Otherwise, just expand the file name." | |||
| 4277 | (defvar idlwave-shell-electric-debug-buffers nil) | 4277 | (defvar idlwave-shell-electric-debug-buffers nil) |
| 4278 | 4278 | ||
| 4279 | (define-minor-mode idlwave-shell-electric-debug-mode | 4279 | (define-minor-mode idlwave-shell-electric-debug-mode |
| 4280 | "Toggle Electric Debug mode. | 4280 | "Toggle Idlwave Shell Electric Debug mode. |
| 4281 | With no argument, this command toggles the mode. | 4281 | With a prefix argument ARG, enable the mode if ARG is positive, |
| 4282 | Non-null prefix argument turns on the mode. | 4282 | and disable it otherwise. If called from Lisp, enable the mode |
| 4283 | Null prefix argument turns off the mode. | 4283 | if ARG is omitted or nil. |
| 4284 | 4284 | ||
| 4285 | When Electric Debug mode is enabled, the many debugging commands are | 4285 | When Idlwave Shell Electric Debug mode is enabled, the Idlwave |
| 4286 | available as single key sequences." | 4286 | Shell debugging commands are available as single key sequences." |
| 4287 | nil | 4287 | nil " *Debugging*" idlwave-shell-electric-debug-mode-map) |
| 4288 | " *Debugging*" | ||
| 4289 | idlwave-shell-electric-debug-mode-map) | ||
| 4290 | 4288 | ||
| 4291 | (add-hook | 4289 | (add-hook |
| 4292 | 'idlwave-shell-electric-debug-mode-on-hook | 4290 | 'idlwave-shell-electric-debug-mode-on-hook |
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 8066e1c3a7f..c77ee4b76a9 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el | |||
| @@ -1907,7 +1907,6 @@ The main features of this mode are | |||
| 1907 | (set (make-local-variable 'comment-start-skip) ";+[ \t]*") | 1907 | (set (make-local-variable 'comment-start-skip) ";+[ \t]*") |
| 1908 | (set (make-local-variable 'comment-start) ";") | 1908 | (set (make-local-variable 'comment-start) ";") |
| 1909 | (set (make-local-variable 'comment-add) 1) ; ";;" for new and regions | 1909 | (set (make-local-variable 'comment-add) 1) ; ";;" for new and regions |
| 1910 | (set (make-local-variable 'require-final-newline) t) | ||
| 1911 | (set (make-local-variable 'abbrev-all-caps) t) | 1910 | (set (make-local-variable 'abbrev-all-caps) t) |
| 1912 | (set (make-local-variable 'indent-tabs-mode) nil) | 1911 | (set (make-local-variable 'indent-tabs-mode) nil) |
| 1913 | (set (make-local-variable 'completion-ignore-case) t) | 1912 | (set (make-local-variable 'completion-ignore-case) t) |
diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el index 1a403f50b1b..9c61da89008 100644 --- a/lisp/progmodes/subword.el +++ b/lisp/progmodes/subword.el | |||
| @@ -94,13 +94,19 @@ | |||
| 94 | 94 | ||
| 95 | ;;;###autoload | 95 | ;;;###autoload |
| 96 | (define-minor-mode subword-mode | 96 | (define-minor-mode subword-mode |
| 97 | "Mode enabling subword movement and editing keys. | 97 | "Toggle subword movement and editing (Subword mode). |
| 98 | In spite of GNU Coding Standards, it is popular to name a symbol by | 98 | With a prefix argument ARG, enable Subword mode if ARG is |
| 99 | mixing uppercase and lowercase letters, e.g. \"GtkWidget\", | 99 | positive, and disable it otherwise. If called from Lisp, enable |
| 100 | \"EmacsFrameClass\", \"NSGraphicsContext\", etc. Here we call these | 100 | the mode if ARG is omitted or nil. |
| 101 | mixed case symbols `nomenclatures'. Also, each capitalized (or | 101 | |
| 102 | completely uppercase) part of a nomenclature is called a `subword'. | 102 | Subword mode is a buffer-local minor mode. Enabling it remaps |
| 103 | Here are some examples: | 103 | word-based editing commands to subword-based commands that handle |
| 104 | symbols with mixed uppercase and lowercase letters, | ||
| 105 | e.g. \"GtkWidget\", \"EmacsFrameClass\", \"NSGraphicsContext\". | ||
| 106 | |||
| 107 | Here we call these mixed case symbols `nomenclatures'. Each | ||
| 108 | capitalized (or completely uppercase) part of a nomenclature is | ||
| 109 | called a `subword'. Here are some examples: | ||
| 104 | 110 | ||
| 105 | Nomenclature Subwords | 111 | Nomenclature Subwords |
| 106 | =========================================================== | 112 | =========================================================== |
diff --git a/lisp/progmodes/vera-mode.el b/lisp/progmodes/vera-mode.el index 1f33f5f3aaf..b02324871ff 100644 --- a/lisp/progmodes/vera-mode.el +++ b/lisp/progmodes/vera-mode.el | |||
| @@ -310,7 +310,6 @@ Key bindings: | |||
| 310 | (set (make-local-variable 'comment-indent-function) 'c-comment-indent) | 310 | (set (make-local-variable 'comment-indent-function) 'c-comment-indent) |
| 311 | (set (make-local-variable 'paragraph-start) "^$") | 311 | (set (make-local-variable 'paragraph-start) "^$") |
| 312 | (set (make-local-variable 'paragraph-separate) paragraph-start) | 312 | (set (make-local-variable 'paragraph-separate) paragraph-start) |
| 313 | (set (make-local-variable 'require-final-newline) t) | ||
| 314 | (set (make-local-variable 'indent-tabs-mode) nil) | 313 | (set (make-local-variable 'indent-tabs-mode) nil) |
| 315 | (set (make-local-variable 'indent-line-function) 'vera-indent-line) | 314 | (set (make-local-variable 'indent-line-function) 'vera-indent-line) |
| 316 | (set (make-local-variable 'parse-sexp-ignore-comments) t) | 315 | (set (make-local-variable 'parse-sexp-ignore-comments) t) |
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 9aaf3059b78..d7aa82aee1b 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el | |||
| @@ -8029,12 +8029,16 @@ project is defined." | |||
| 8029 | 8029 | ||
| 8030 | (define-minor-mode vhdl-electric-mode | 8030 | (define-minor-mode vhdl-electric-mode |
| 8031 | "Toggle VHDL electric mode. | 8031 | "Toggle VHDL electric mode. |
| 8032 | Turn on if ARG positive, turn off if ARG negative, toggle if ARG zero or nil." | 8032 | With a prefix argument ARG, enable the mode if ARG is positive, |
| 8033 | and disable it otherwise. If called from Lisp, enable it if ARG | ||
| 8034 | is omitted or nil." | ||
| 8033 | :global t) | 8035 | :global t) |
| 8034 | 8036 | ||
| 8035 | (define-minor-mode vhdl-stutter-mode | 8037 | (define-minor-mode vhdl-stutter-mode |
| 8036 | "Toggle VHDL stuttering mode. | 8038 | "Toggle VHDL stuttering mode. |
| 8037 | Turn on if ARG positive, turn off if ARG negative, toggle if ARG zero or nil." | 8039 | With a prefix argument ARG, enable the mode if ARG is positive, |
| 8040 | and disable it otherwise. If called from Lisp, enable it if ARG | ||
| 8041 | is omitted or nil." | ||
| 8038 | :global t) | 8042 | :global t) |
| 8039 | 8043 | ||
| 8040 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 8044 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el index 97e188139e9..e27d07854c8 100644 --- a/lisp/progmodes/which-func.el +++ b/lisp/progmodes/which-func.el | |||
| @@ -236,12 +236,14 @@ It creates the Imenu index for the buffer, if necessary." | |||
| 236 | ;; This is the name people would normally expect. | 236 | ;; This is the name people would normally expect. |
| 237 | ;;;###autoload | 237 | ;;;###autoload |
| 238 | (define-minor-mode which-function-mode | 238 | (define-minor-mode which-function-mode |
| 239 | "Toggle Which Function mode, globally. | 239 | "Toggle mode line display of current function (Which Function mode). |
| 240 | When Which Function mode is enabled, the current function name is | 240 | With a prefix argument ARG, enable Which Function mode if ARG is |
| 241 | continuously displayed in the mode line, in certain major modes. | 241 | positive, and disable it otherwise. If called from Lisp, enable |
| 242 | 242 | the mode if ARG is omitted or nil. | |
| 243 | With prefix ARG, turn Which Function mode on if arg is positive, | 243 | |
| 244 | and off otherwise." | 244 | Which Function mode is a global minor mode. When enabled, the |
| 245 | current function name is continuously displayed in the mode line, | ||
| 246 | in certain major modes." | ||
| 245 | :global t :group 'which-func | 247 | :global t :group 'which-func |
| 246 | (when (timerp which-func-update-timer) | 248 | (when (timerp which-func-update-timer) |
| 247 | (cancel-timer which-func-update-timer)) | 249 | (cancel-timer which-func-update-timer)) |
diff --git a/lisp/recentf.el b/lisp/recentf.el index fc9b7881733..79f4eb437d9 100644 --- a/lisp/recentf.el +++ b/lisp/recentf.el | |||
| @@ -1336,12 +1336,14 @@ That is, remove duplicates, non-kept, and excluded files." | |||
| 1336 | 1336 | ||
| 1337 | ;;;###autoload | 1337 | ;;;###autoload |
| 1338 | (define-minor-mode recentf-mode | 1338 | (define-minor-mode recentf-mode |
| 1339 | "Toggle recentf mode. | 1339 | "Toggle \"Open Recent\" menu (Recentf mode). |
| 1340 | With prefix argument ARG, turn on if positive, otherwise off. | 1340 | With a prefix argument ARG, enable Recentf mode if ARG is |
| 1341 | Returns non-nil if the new state is enabled. | 1341 | positive, and disable it otherwise. If called from Lisp, enable |
| 1342 | 1342 | Recentf mode if ARG is omitted or nil. | |
| 1343 | When recentf mode is enabled, it maintains a menu for visiting files | 1343 | |
| 1344 | that were operated on recently." | 1344 | When Recentf mode is enabled, a \"Open Recent\" submenu is |
| 1345 | displayed in the \"File\" menu, containing a list of files that | ||
| 1346 | were operated on recently." | ||
| 1345 | :global t | 1347 | :global t |
| 1346 | :group 'recentf | 1348 | :group 'recentf |
| 1347 | :keymap recentf-mode-map | 1349 | :keymap recentf-mode-map |
diff --git a/lisp/reveal.el b/lisp/reveal.el index bf18602379c..ea46cfd1dd3 100644 --- a/lisp/reveal.el +++ b/lisp/reveal.el | |||
| @@ -189,12 +189,13 @@ Each element has the form (WINDOW . OVERLAY).") | |||
| 189 | 189 | ||
| 190 | ;;;###autoload | 190 | ;;;###autoload |
| 191 | (define-minor-mode reveal-mode | 191 | (define-minor-mode reveal-mode |
| 192 | "Toggle Reveal mode on or off. | 192 | "Toggle decloaking of invisible text near point (Reveal mode). |
| 193 | Reveal mode renders invisible text around point visible again. | 193 | With a prefix argument ARG, enable Reveal mode if ARG is |
| 194 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 195 | Reveal mode if ARG is omitted or nil. | ||
| 194 | 196 | ||
| 195 | Interactively, with no prefix argument, toggle the mode. | 197 | Reveral mode is a buffer-local minor mode. When enabled, it |
| 196 | With universal prefix ARG (or if ARG is nil) turn mode on. | 198 | reveals invisible text around point." |
| 197 | With zero or negative ARG turn mode off." | ||
| 198 | :group 'reveal | 199 | :group 'reveal |
| 199 | :lighter (global-reveal-mode nil " Reveal") | 200 | :lighter (global-reveal-mode nil " Reveal") |
| 200 | :keymap reveal-mode-map | 201 | :keymap reveal-mode-map |
| @@ -207,12 +208,12 @@ With zero or negative ARG turn mode off." | |||
| 207 | 208 | ||
| 208 | ;;;###autoload | 209 | ;;;###autoload |
| 209 | (define-minor-mode global-reveal-mode | 210 | (define-minor-mode global-reveal-mode |
| 210 | "Toggle Reveal mode in all buffers on or off. | 211 | "Toggle Reveal mode in all buffers (Global Reveal mode). |
| 211 | Reveal mode renders invisible text around point visible again. | 212 | Reveal mode renders invisible text around point visible again. |
| 212 | 213 | ||
| 213 | Interactively, with no prefix argument, toggle the mode. | 214 | With a prefix argument ARG, enable Global Reveal mode if ARG is |
| 214 | With universal prefix ARG (or if ARG is nil) turn mode on. | 215 | positive, and disable it otherwise. If called from Lisp, enable |
| 215 | With zero or negative ARG turn mode off." | 216 | the mode if ARG is omitted or nil." |
| 216 | :global t :group 'reveal | 217 | :global t :group 'reveal |
| 217 | (setq-default reveal-mode global-reveal-mode) | 218 | (setq-default reveal-mode global-reveal-mode) |
| 218 | (if global-reveal-mode | 219 | (if global-reveal-mode |
diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el index 9eb2d2abdee..2d8c6e0964d 100644 --- a/lisp/rfn-eshadow.el +++ b/lisp/rfn-eshadow.el | |||
| @@ -207,15 +207,17 @@ been set up by `rfn-eshadow-setup-minibuffer'." | |||
| 207 | (error nil))) | 207 | (error nil))) |
| 208 | 208 | ||
| 209 | (define-minor-mode file-name-shadow-mode | 209 | (define-minor-mode file-name-shadow-mode |
| 210 | "Toggle File-Name Shadow mode. | 210 | "Toggle file-name shadowing in minibuffers (File-Name Shadow mode). |
| 211 | When active, any part of a filename being read in the minibuffer | 211 | With a prefix argument ARG, enable File-Name Shadow mode if ARG |
| 212 | that would be ignored (because the result is passed through | 212 | is positive, and disable it otherwise. If called from Lisp, |
| 213 | enable the mode if ARG is omitted or nil. | ||
| 214 | |||
| 215 | File-Name Shadow mode is a global minor mode. When enabled, any | ||
| 216 | part of a filename being read in the minibuffer that would be | ||
| 217 | ignored (because the result is passed through | ||
| 213 | `substitute-in-file-name') is given the properties in | 218 | `substitute-in-file-name') is given the properties in |
| 214 | `file-name-shadow-properties', which can be used to make | 219 | `file-name-shadow-properties', which can be used to make that |
| 215 | that portion dim, invisible, or otherwise less visually noticeable. | 220 | portion dim, invisible, or otherwise less visually noticeable." |
| 216 | |||
| 217 | With prefix argument ARG, turn on if positive, otherwise off. | ||
| 218 | Returns non-nil if the new state is enabled." | ||
| 219 | :global t | 221 | :global t |
| 220 | ;; We'd like to use custom-initialize-set here so the setup is done | 222 | ;; We'd like to use custom-initialize-set here so the setup is done |
| 221 | ;; before dumping, but at the point where the defcustom is evaluated, | 223 | ;; before dumping, but at the point where the defcustom is evaluated, |
diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el index fc62bf6b633..046c29471ac 100644 --- a/lisp/ruler-mode.el +++ b/lisp/ruler-mode.el | |||
| @@ -567,8 +567,10 @@ format first." | |||
| 567 | 567 | ||
| 568 | ;;;###autoload | 568 | ;;;###autoload |
| 569 | (define-minor-mode ruler-mode | 569 | (define-minor-mode ruler-mode |
| 570 | "Toggle Ruler mode. | 570 | "Toggle display of ruler in header line (Ruler mode). |
| 571 | In Ruler mode, Emacs displays a ruler in the header line." | 571 | With a prefix argument ARG, enable Ruler mode if ARG is positive, |
| 572 | and disable it otherwise. If called from Lisp, enable the mode | ||
| 573 | if ARG is omitted or nil." | ||
| 572 | nil nil | 574 | nil nil |
| 573 | ruler-mode-map | 575 | ruler-mode-map |
| 574 | :group 'ruler-mode | 576 | :group 'ruler-mode |
diff --git a/lisp/savehist.el b/lisp/savehist.el index 653d0312a19..faeab324e5a 100644 --- a/lisp/savehist.el +++ b/lisp/savehist.el | |||
| @@ -170,15 +170,19 @@ minibuffer history.") | |||
| 170 | 170 | ||
| 171 | ;;;###autoload | 171 | ;;;###autoload |
| 172 | (define-minor-mode savehist-mode | 172 | (define-minor-mode savehist-mode |
| 173 | "Toggle savehist-mode. | 173 | "Toggle saving of minibuffer history (Savehist mode). |
| 174 | Positive ARG turns on `savehist-mode'. When on, savehist-mode causes | 174 | With a prefix argument ARG, enable Savehist mode if ARG is |
| 175 | minibuffer history to be saved periodically and when exiting Emacs. | 175 | positive, and disable it otherwise. If called from Lisp, enable |
| 176 | When turned on for the first time in an Emacs session, it causes the | 176 | the mode if ARG is omitted or nil. |
| 177 | previous minibuffer history to be loaded from `savehist-file'. | 177 | |
| 178 | When Savehist mode is enabled, minibuffer history is saved | ||
| 179 | periodically and when exiting Emacs. When Savehist mode is | ||
| 180 | enabled for the first time in an Emacs session, it loads the | ||
| 181 | previous minibuffer history from `savehist-file'. | ||
| 178 | 182 | ||
| 179 | This mode should normally be turned on from your Emacs init file. | 183 | This mode should normally be turned on from your Emacs init file. |
| 180 | Calling it at any other time replaces your current minibuffer histories, | 184 | Calling it at any other time replaces your current minibuffer |
| 181 | which is probably undesirable." | 185 | histories, which is probably undesirable." |
| 182 | :global t | 186 | :global t |
| 183 | (if (not savehist-mode) | 187 | (if (not savehist-mode) |
| 184 | (savehist-uninstall) | 188 | (savehist-uninstall) |
diff --git a/lisp/scroll-all.el b/lisp/scroll-all.el index 6dbdc9ab90d..81a4d2c86e1 100644 --- a/lisp/scroll-all.el +++ b/lisp/scroll-all.el | |||
| @@ -101,10 +101,13 @@ | |||
| 101 | 101 | ||
| 102 | ;;;###autoload | 102 | ;;;###autoload |
| 103 | (define-minor-mode scroll-all-mode | 103 | (define-minor-mode scroll-all-mode |
| 104 | "Toggle Scroll-All minor mode. | 104 | "Toggle shared scrolling in same-frame windows (Scroll-All mode). |
| 105 | With ARG, turn Scroll-All minor mode on if ARG is positive, off otherwise. | 105 | With a prefix argument ARG, enable Scroll-All mode if ARG is |
| 106 | When Scroll-All mode is on, scrolling commands entered in one window | 106 | positive, and disable it otherwise. If called from Lisp, enable |
| 107 | apply to all visible windows in the same frame." | 107 | the mode if ARG is omitted or nil. |
| 108 | |||
| 109 | When Scroll-All mode is enabled, scrolling commands invoked in | ||
| 110 | one window apply to all visible windows in the same frame." | ||
| 108 | nil " *SL*" nil | 111 | nil " *SL*" nil |
| 109 | :global t | 112 | :global t |
| 110 | :group 'windows | 113 | :group 'windows |
diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el index 0c68bca4d2e..37a31460cdb 100644 --- a/lisp/scroll-bar.el +++ b/lisp/scroll-bar.el | |||
| @@ -114,12 +114,15 @@ Setting the variable with a customization buffer also takes effect." | |||
| 114 | 114 | ||
| 115 | (defun get-scroll-bar-mode () scroll-bar-mode) | 115 | (defun get-scroll-bar-mode () scroll-bar-mode) |
| 116 | (defsetf get-scroll-bar-mode set-scroll-bar-mode) | 116 | (defsetf get-scroll-bar-mode set-scroll-bar-mode) |
| 117 | |||
| 117 | (define-minor-mode scroll-bar-mode | 118 | (define-minor-mode scroll-bar-mode |
| 118 | "Toggle display of vertical scroll bars on all frames. | 119 | "Toggle vertical scroll bars on all frames (Scroll Bar mode). |
| 120 | With a prefix argument ARG, enable Scroll Bar mode if ARG is | ||
| 121 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 122 | the mode if ARG is omitted or nil. | ||
| 123 | |||
| 119 | This command applies to all frames that exist and frames to be | 124 | This command applies to all frames that exist and frames to be |
| 120 | created in the future. | 125 | created in the future." |
| 121 | With a numeric argument, if the argument is positive | ||
| 122 | turn on scroll bars; otherwise turn off scroll bars." | ||
| 123 | :variable (eq (get-scroll-bar-mode) | 126 | :variable (eq (get-scroll-bar-mode) |
| 124 | (or previous-scroll-bar-mode | 127 | (or previous-scroll-bar-mode |
| 125 | default-frame-scroll-bars))) | 128 | default-frame-scroll-bars))) |
diff --git a/lisp/server.el b/lisp/server.el index 63d46a365c9..bc989c55ed1 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -669,9 +669,13 @@ Return values: | |||
| 669 | ;;;###autoload | 669 | ;;;###autoload |
| 670 | (define-minor-mode server-mode | 670 | (define-minor-mode server-mode |
| 671 | "Toggle Server mode. | 671 | "Toggle Server mode. |
| 672 | With ARG, turn Server mode on if ARG is positive, off otherwise. | 672 | With a prefix argument ARG, enable Server mode if ARG is |
| 673 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 674 | Server mode if ARG is omitted or nil. | ||
| 675 | |||
| 673 | Server mode runs a process that accepts commands from the | 676 | Server mode runs a process that accepts commands from the |
| 674 | `emacsclient' program. See `server-start' and Info node `Emacs server'." | 677 | `emacsclient' program. See Info node `Emacs server' and |
| 678 | `server-start' for details." | ||
| 675 | :global t | 679 | :global t |
| 676 | :group 'server | 680 | :group 'server |
| 677 | :version "22.1" | 681 | :version "22.1" |
diff --git a/lisp/shell.el b/lisp/shell.el index cefe42bb3ec..c75594ddbe4 100644 --- a/lisp/shell.el +++ b/lisp/shell.el | |||
| @@ -890,9 +890,13 @@ Environment variables are expanded, see function `substitute-in-file-name'." | |||
| 890 | 890 | ||
| 891 | (defvaralias 'shell-dirtrack-mode 'shell-dirtrackp) | 891 | (defvaralias 'shell-dirtrack-mode 'shell-dirtrackp) |
| 892 | (define-minor-mode shell-dirtrack-mode | 892 | (define-minor-mode shell-dirtrack-mode |
| 893 | "Turn directory tracking on and off in a shell buffer. | 893 | "Toggle directory tracking in this shell buffer (Shell Dirtrack mode). |
| 894 | The `dirtrack' package provides an alternative implementation of this | 894 | With a prefix argument ARG, enable Shell Dirtrack mode if ARG is |
| 895 | feature - see the function `dirtrack-mode'." | 895 | positive, and disable it otherwise. If called from Lisp, enable |
| 896 | the mode if ARG is omitted or nil. | ||
| 897 | |||
| 898 | The `dirtrack' package provides an alternative implementation of | ||
| 899 | this feature; see the function `dirtrack-mode'." | ||
| 896 | nil nil nil | 900 | nil nil nil |
| 897 | (setq list-buffers-directory (if shell-dirtrack-mode default-directory)) | 901 | (setq list-buffers-directory (if shell-dirtrack-mode default-directory)) |
| 898 | (if shell-dirtrack-mode | 902 | (if shell-dirtrack-mode |
diff --git a/lisp/simple.el b/lisp/simple.el index 6d0e7543549..79de6aea3dd 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -4086,13 +4086,15 @@ its earlier value." | |||
| 4086 | 4086 | ||
| 4087 | (define-minor-mode transient-mark-mode | 4087 | (define-minor-mode transient-mark-mode |
| 4088 | "Toggle Transient Mark mode. | 4088 | "Toggle Transient Mark mode. |
| 4089 | With ARG, turn Transient Mark mode on if ARG is positive, off otherwise. | 4089 | With a prefix argument ARG, enable Transient Mark mode if ARG is |
| 4090 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 4091 | Transient Mark mode if ARG is omitted or nil. | ||
| 4090 | 4092 | ||
| 4091 | In Transient Mark mode, when the mark is active, the region is highlighted. | 4093 | Transient Mark mode is a global minor mode. When enabled, the |
| 4092 | Changing the buffer \"deactivates\" the mark. | 4094 | region is highlighted whenever the mark is active. The mark is |
| 4093 | So do certain other operations that set the mark | 4095 | \"deactivated\" by changing the buffer, and after certain other |
| 4094 | but whose main purpose is something else--for example, | 4096 | operations that set the mark but whose main purpose is something |
| 4095 | incremental search, \\[beginning-of-buffer], and \\[end-of-buffer]. | 4097 | else--for example, incremental search, \\[beginning-of-buffer], and \\[end-of-buffer]. |
| 4096 | 4098 | ||
| 4097 | You can also deactivate the mark by typing \\[keyboard-quit] or | 4099 | You can also deactivate the mark by typing \\[keyboard-quit] or |
| 4098 | \\[keyboard-escape-quit]. | 4100 | \\[keyboard-escape-quit]. |
| @@ -4906,8 +4908,15 @@ other purposes." | |||
| 4906 | (defvar visual-line--saved-state nil) | 4908 | (defvar visual-line--saved-state nil) |
| 4907 | 4909 | ||
| 4908 | (define-minor-mode visual-line-mode | 4910 | (define-minor-mode visual-line-mode |
| 4909 | "Redefine simple editing commands to act on visual lines, not logical lines. | 4911 | "Toggle visual line based editing (Visual Line mode). |
| 4910 | This also turns on `word-wrap' in the buffer." | 4912 | With a prefix argument ARG, enable Visual Line mode if ARG is |
| 4913 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 4914 | the mode if ARG is omitted or nil. | ||
| 4915 | |||
| 4916 | When Visual Line mode is enabled, `word-wrap' is turned on in | ||
| 4917 | this buffer, and simple editing commands are redefined to act on | ||
| 4918 | visual lines, not logical lines. See Info node `Visual Line | ||
| 4919 | Mode' for details." | ||
| 4911 | :keymap visual-line-mode-map | 4920 | :keymap visual-line-mode-map |
| 4912 | :group 'visual-line | 4921 | :group 'visual-line |
| 4913 | :lighter " Wrap" | 4922 | :lighter " Wrap" |
| @@ -5301,10 +5310,14 @@ Some major modes set this.") | |||
| 5301 | (put 'auto-fill-function 'safe-local-variable 'null) | 5310 | (put 'auto-fill-function 'safe-local-variable 'null) |
| 5302 | 5311 | ||
| 5303 | (define-minor-mode auto-fill-mode | 5312 | (define-minor-mode auto-fill-mode |
| 5304 | "Toggle Auto Fill mode. | 5313 | "Toggle automatic line breaking (Auto Fill mode). |
| 5305 | With ARG, turn Auto Fill mode on if and only if ARG is positive. | 5314 | With a prefix argument ARG, enable Auto Fill mode if ARG is |
| 5306 | In Auto Fill mode, inserting a space at a column beyond `current-fill-column' | 5315 | positive, and disable it otherwise. If called from Lisp, enable |
| 5307 | automatically breaks the line at a previous space. | 5316 | the mode if ARG is omitted or nil. |
| 5317 | |||
| 5318 | When Auto Fill mode is enabled, inserting a space at a column | ||
| 5319 | beyond `current-fill-column' automatically breaks the line at a | ||
| 5320 | previous space. | ||
| 5308 | 5321 | ||
| 5309 | When `auto-fill-mode' is on, the `auto-fill-function' variable is | 5322 | When `auto-fill-mode' is on, the `auto-fill-function' variable is |
| 5310 | non-`nil'. | 5323 | non-`nil'. |
| @@ -5412,36 +5425,44 @@ if long lines are truncated." | |||
| 5412 | "The string displayed in the mode line when in binary overwrite mode.") | 5425 | "The string displayed in the mode line when in binary overwrite mode.") |
| 5413 | 5426 | ||
| 5414 | (define-minor-mode overwrite-mode | 5427 | (define-minor-mode overwrite-mode |
| 5415 | "Toggle overwrite mode. | 5428 | "Toggle Overwrite mode. |
| 5416 | With prefix argument ARG, turn overwrite mode on if ARG is positive, | 5429 | With a prefix argument ARG, enable Overwrite mode if ARG is |
| 5417 | otherwise turn it off. In overwrite mode, printing characters typed | 5430 | positive, and disable it otherwise. If called from Lisp, enable |
| 5418 | in replace existing text on a one-for-one basis, rather than pushing | 5431 | the mode if ARG is omitted or nil. |
| 5419 | it to the right. At the end of a line, such characters extend the line. | 5432 | |
| 5420 | Before a tab, such characters insert until the tab is filled in. | 5433 | When Overwrite mode is enabled, printing characters typed in |
| 5421 | \\[quoted-insert] still inserts characters in overwrite mode; this | 5434 | replace existing text on a one-for-one basis, rather than pushing |
| 5422 | is supposed to make it easier to insert characters when necessary." | 5435 | it to the right. At the end of a line, such characters extend |
| 5436 | the line. Before a tab, such characters insert until the tab is | ||
| 5437 | filled in. \\[quoted-insert] still inserts characters in | ||
| 5438 | overwrite mode; this is supposed to make it easier to insert | ||
| 5439 | characters when necessary." | ||
| 5423 | :variable (eq overwrite-mode 'overwrite-mode-textual)) | 5440 | :variable (eq overwrite-mode 'overwrite-mode-textual)) |
| 5424 | 5441 | ||
| 5425 | (define-minor-mode binary-overwrite-mode | 5442 | (define-minor-mode binary-overwrite-mode |
| 5426 | "Toggle binary overwrite mode. | 5443 | "Toggle Binary Overwrite mode. |
| 5427 | With prefix argument ARG, turn binary overwrite mode on if ARG is | 5444 | With a prefix argument ARG, enable Binary Overwrite mode if ARG |
| 5428 | positive, otherwise turn it off. In binary overwrite mode, printing | 5445 | is positive, and disable it otherwise. If called from Lisp, |
| 5429 | characters typed in replace existing text. Newlines are not treated | 5446 | enable the mode if ARG is omitted or nil. |
| 5430 | specially, so typing at the end of a line joins the line to the next, | 5447 | |
| 5431 | with the typed character between them. Typing before a tab character | 5448 | When Binary Overwrite mode is enabled, printing characters typed |
| 5432 | simply replaces the tab with the character typed. \\[quoted-insert] | 5449 | in replace existing text. Newlines are not treated specially, so |
| 5433 | replaces the text at the cursor, just as ordinary typing characters do. | 5450 | typing at the end of a line joins the line to the next, with the |
| 5434 | 5451 | typed character between them. Typing before a tab character | |
| 5435 | Note that binary overwrite mode is not its own minor mode; it is a | 5452 | simply replaces the tab with the character typed. |
| 5436 | specialization of overwrite mode, entered by setting the | 5453 | \\[quoted-insert] replaces the text at the cursor, just as |
| 5454 | ordinary typing characters do. | ||
| 5455 | |||
| 5456 | Note that Binary Overwrite mode is not its own minor mode; it is | ||
| 5457 | a specialization of overwrite mode, entered by setting the | ||
| 5437 | `overwrite-mode' variable to `overwrite-mode-binary'." | 5458 | `overwrite-mode' variable to `overwrite-mode-binary'." |
| 5438 | :variable (eq overwrite-mode 'overwrite-mode-binary)) | 5459 | :variable (eq overwrite-mode 'overwrite-mode-binary)) |
| 5439 | 5460 | ||
| 5440 | (define-minor-mode line-number-mode | 5461 | (define-minor-mode line-number-mode |
| 5441 | "Toggle Line Number mode. | 5462 | "Toggle line number display in the mode line (Line Number mode). |
| 5442 | With ARG, turn Line Number mode on if ARG is positive, otherwise | 5463 | With a prefix argument ARG, enable Line Number mode if ARG is |
| 5443 | turn it off. When Line Number mode is enabled, the line number | 5464 | positive, and disable it otherwise. If called from Lisp, enable |
| 5444 | appears in the mode line. | 5465 | the mode if ARG is omitted or nil. |
| 5445 | 5466 | ||
| 5446 | Line numbers do not appear for very large buffers and buffers | 5467 | Line numbers do not appear for very large buffers and buffers |
| 5447 | with very long lines; see variables `line-number-display-limit' | 5468 | with very long lines; see variables `line-number-display-limit' |
| @@ -5449,22 +5470,27 @@ and `line-number-display-limit-width'." | |||
| 5449 | :init-value t :global t :group 'mode-line) | 5470 | :init-value t :global t :group 'mode-line) |
| 5450 | 5471 | ||
| 5451 | (define-minor-mode column-number-mode | 5472 | (define-minor-mode column-number-mode |
| 5452 | "Toggle Column Number mode. | 5473 | "Toggle column number display in the mode line (Column Number mode). |
| 5453 | With ARG, turn Column Number mode on if ARG is positive, | 5474 | With a prefix argument ARG, enable Column Number mode if ARG is |
| 5454 | otherwise turn it off. When Column Number mode is enabled, the | 5475 | positive, and disable it otherwise. |
| 5455 | column number appears in the mode line." | 5476 | |
| 5477 | If called from Lisp, enable the mode if ARG is omitted or nil." | ||
| 5456 | :global t :group 'mode-line) | 5478 | :global t :group 'mode-line) |
| 5457 | 5479 | ||
| 5458 | (define-minor-mode size-indication-mode | 5480 | (define-minor-mode size-indication-mode |
| 5459 | "Toggle Size Indication mode. | 5481 | "Toggle buffer size display in the mode line (Size Indication mode). |
| 5460 | With ARG, turn Size Indication mode on if ARG is positive, | 5482 | With a prefix argument ARG, enable Size Indication mode if ARG is |
| 5461 | otherwise turn it off. When Size Indication mode is enabled, the | 5483 | positive, and disable it otherwise. |
| 5462 | size of the accessible part of the buffer appears in the mode line." | 5484 | |
| 5485 | If called from Lisp, enable the mode if ARG is omitted or nil." | ||
| 5463 | :global t :group 'mode-line) | 5486 | :global t :group 'mode-line) |
| 5464 | 5487 | ||
| 5465 | (define-minor-mode auto-save-mode | 5488 | (define-minor-mode auto-save-mode |
| 5466 | "Toggle auto-saving of contents of current buffer. | 5489 | "Toggle auto-saving in the current buffer (Auto Save mode). |
| 5467 | With prefix argument ARG, turn auto-saving on if positive, else off." | 5490 | With a prefix argument ARG, enable Auto Save mode if ARG is |
| 5491 | positive, and disable it otherwise. | ||
| 5492 | |||
| 5493 | If called from Lisp, enable the mode if ARG is omitted or nil." | ||
| 5468 | :variable ((and buffer-auto-save-file-name | 5494 | :variable ((and buffer-auto-save-file-name |
| 5469 | ;; If auto-save is off because buffer has shrunk, | 5495 | ;; If auto-save is off because buffer has shrunk, |
| 5470 | ;; then toggling should turn it on. | 5496 | ;; then toggling should turn it on. |
| @@ -6634,8 +6660,9 @@ call `normal-erase-is-backspace-mode' (which see) instead." | |||
| 6634 | 6660 | ||
| 6635 | (define-minor-mode normal-erase-is-backspace-mode | 6661 | (define-minor-mode normal-erase-is-backspace-mode |
| 6636 | "Toggle the Erase and Delete mode of the Backspace and Delete keys. | 6662 | "Toggle the Erase and Delete mode of the Backspace and Delete keys. |
| 6637 | 6663 | With a prefix argument ARG, enable this feature if ARG is | |
| 6638 | With numeric ARG, turn the mode on if and only if ARG is positive. | 6664 | positive, and disable it otherwise. If called from Lisp, enable |
| 6665 | the mode if ARG is omitted or nil. | ||
| 6639 | 6666 | ||
| 6640 | On window systems, when this mode is on, Delete is mapped to C-d | 6667 | On window systems, when this mode is on, Delete is mapped to C-d |
| 6641 | and Backspace is mapped to DEL; when this mode is off, both | 6668 | and Backspace is mapped to DEL; when this mode is off, both |
| @@ -6709,13 +6736,13 @@ See also `normal-erase-is-backspace'." | |||
| 6709 | "Saved value of `buffer-invisibility-spec' when Visible mode is on.") | 6736 | "Saved value of `buffer-invisibility-spec' when Visible mode is on.") |
| 6710 | 6737 | ||
| 6711 | (define-minor-mode visible-mode | 6738 | (define-minor-mode visible-mode |
| 6712 | "Toggle Visible mode. | 6739 | "Toggle making all invisible text temporarily visible (Visible mode). |
| 6713 | With argument ARG turn Visible mode on if ARG is positive, otherwise | 6740 | With a prefix argument ARG, enable Visible mode if ARG is |
| 6714 | turn it off. | 6741 | positive, and disable it otherwise. If called from Lisp, enable |
| 6742 | the mode if ARG is omitted or nil. | ||
| 6715 | 6743 | ||
| 6716 | Enabling Visible mode makes all invisible text temporarily visible. | 6744 | This mode works by saving the value of `buffer-invisibility-spec' |
| 6717 | Disabling Visible mode turns off that effect. Visible mode works by | 6745 | and setting it to nil." |
| 6718 | saving the value of `buffer-invisibility-spec' and setting it to nil." | ||
| 6719 | :lighter " Vis" | 6746 | :lighter " Vis" |
| 6720 | :group 'editing-basics | 6747 | :group 'editing-basics |
| 6721 | (when (local-variable-p 'vis-mode-saved-buffer-invisibility-spec) | 6748 | (when (local-variable-p 'vis-mode-saved-buffer-invisibility-spec) |
diff --git a/lisp/strokes.el b/lisp/strokes.el index ca0086b3b97..5ff94bb22c6 100644 --- a/lisp/strokes.el +++ b/lisp/strokes.el | |||
| @@ -1386,8 +1386,12 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead." | |||
| 1386 | 1386 | ||
| 1387 | ;;;###autoload | 1387 | ;;;###autoload |
| 1388 | (define-minor-mode strokes-mode | 1388 | (define-minor-mode strokes-mode |
| 1389 | "Toggle Strokes global minor mode.\\<strokes-mode-map> | 1389 | "Toggle Strokes mode, a global minor mode. |
| 1390 | With ARG, turn strokes on if and only if ARG is positive. | 1390 | With a prefix argument ARG, enable Strokes mode if ARG is |
| 1391 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 1392 | the mode if ARG is omitted or nil. | ||
| 1393 | |||
| 1394 | \\<strokes-mode-map> | ||
| 1391 | Strokes are pictographic mouse gestures which invoke commands. | 1395 | Strokes are pictographic mouse gestures which invoke commands. |
| 1392 | Strokes are invoked with \\[strokes-do-stroke]. You can define | 1396 | Strokes are invoked with \\[strokes-do-stroke]. You can define |
| 1393 | new strokes with \\[strokes-global-set-stroke]. See also | 1397 | new strokes with \\[strokes-global-set-stroke]. See also |
diff --git a/lisp/t-mouse.el b/lisp/t-mouse.el index 059024c4bce..78857b04143 100644 --- a/lisp/t-mouse.el +++ b/lisp/t-mouse.el | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | ;; mev. Now the interface with gpm is directly through a Unix socket, so this | 33 | ;; mev. Now the interface with gpm is directly through a Unix socket, so this |
| 34 | ;; file is reduced to a single minor mode macro call. | 34 | ;; file is reduced to a single minor mode macro call. |
| 35 | 35 | ||
| 36 | ;; | 36 | ;; |
| 37 | 37 | ||
| 38 | ;;; Code: | 38 | ;;; Code: |
| 39 | 39 | ||
| @@ -65,9 +65,10 @@ | |||
| 65 | (define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1") | 65 | (define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1") |
| 66 | ;;;###autoload | 66 | ;;;###autoload |
| 67 | (define-minor-mode gpm-mouse-mode | 67 | (define-minor-mode gpm-mouse-mode |
| 68 | "Toggle gpm-mouse mode to use the mouse in GNU/Linux consoles. | 68 | "Toggle mouse support in GNU/Linux consoles (GPM Mouse mode). |
| 69 | With prefix arg, turn gpm-mouse mode on if arg is positive, | 69 | With a prefix argument ARG, enable GPM Mouse mode if ARG is |
| 70 | otherwise turn it off. | 70 | positive, and disable it otherwise. If called from Lisp, enable |
| 71 | the mode if ARG is omitted or nil. | ||
| 71 | 72 | ||
| 72 | This allows the use of the mouse when operating on a GNU/Linux console, | 73 | This allows the use of the mouse when operating on a GNU/Linux console, |
| 73 | in the same way as you can use the mouse under X11. | 74 | in the same way as you can use the mouse under X11. |
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index 62171328979..cfa406c2b48 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el | |||
| @@ -404,13 +404,19 @@ MODE should be an integer which is a file mode value." | |||
| 404 | (string | 404 | (string |
| 405 | (if (zerop (logand 256 mode)) ?- ?r) | 405 | (if (zerop (logand 256 mode)) ?- ?r) |
| 406 | (if (zerop (logand 128 mode)) ?- ?w) | 406 | (if (zerop (logand 128 mode)) ?- ?w) |
| 407 | (if (zerop (logand 1024 mode)) (if (zerop (logand 64 mode)) ?- ?x) ?s) | 407 | (if (zerop (logand 2048 mode)) |
| 408 | (if (zerop (logand 64 mode)) ?- ?x) | ||
| 409 | (if (zerop (logand 64 mode)) ?S ?s)) | ||
| 408 | (if (zerop (logand 32 mode)) ?- ?r) | 410 | (if (zerop (logand 32 mode)) ?- ?r) |
| 409 | (if (zerop (logand 16 mode)) ?- ?w) | 411 | (if (zerop (logand 16 mode)) ?- ?w) |
| 410 | (if (zerop (logand 2048 mode)) (if (zerop (logand 8 mode)) ?- ?x) ?s) | 412 | (if (zerop (logand 1024 mode)) |
| 413 | (if (zerop (logand 8 mode)) ?- ?x) | ||
| 414 | (if (zerop (logand 8 mode)) ?S ?s)) | ||
| 411 | (if (zerop (logand 4 mode)) ?- ?r) | 415 | (if (zerop (logand 4 mode)) ?- ?r) |
| 412 | (if (zerop (logand 2 mode)) ?- ?w) | 416 | (if (zerop (logand 2 mode)) ?- ?w) |
| 413 | (if (zerop (logand 1 mode)) ?- ?x))) | 417 | (if (zerop (logand 512 mode)) |
| 418 | (if (zerop (logand 1 mode)) ?- ?x) | ||
| 419 | (if (zerop (logand 1 mode)) ?T ?t)))) | ||
| 414 | 420 | ||
| 415 | (defun tar-header-block-summarize (tar-hblock &optional mod-p) | 421 | (defun tar-header-block-summarize (tar-hblock &optional mod-p) |
| 416 | "Return a line similar to the output of `tar -vtf'." | 422 | "Return a line similar to the output of `tar -vtf'." |
diff --git a/lisp/term/tvi970.el b/lisp/term/tvi970.el index 5d852e52105..e154074a033 100644 --- a/lisp/term/tvi970.el +++ b/lisp/term/tvi970.el | |||
| @@ -104,14 +104,17 @@ | |||
| 104 | 104 | ||
| 105 | ;; Should keypad numbers send ordinary digits or distinct escape sequences? | 105 | ;; Should keypad numbers send ordinary digits or distinct escape sequences? |
| 106 | (define-minor-mode tvi970-set-keypad-mode | 106 | (define-minor-mode tvi970-set-keypad-mode |
| 107 | "Set the current mode of the TVI 970 numeric keypad. | 107 | "Toggle alternate keypad mode on TVI 970 keypad. |
| 108 | In ``numeric keypad mode'', the number keys on the keypad act as | 108 | With a prefix argument ARG, enable the mode if ARG is positive, |
| 109 | ordinary digits. In ``alternate keypad mode'', the keys send distinct | 109 | and disable it otherwise. If called from Lisp, enable the mode |
| 110 | escape sequences, meaning that they can have their own bindings, | 110 | if ARG is omitted or nil. |
| 111 | |||
| 112 | In ``alternate keypad mode'', the keys send distinct escape | ||
| 113 | sequences, meaning that they can have their own bindings, | ||
| 111 | independent of the normal number keys. | 114 | independent of the normal number keys. |
| 112 | With no argument, toggle between the two possible modes. | 115 | |
| 113 | With a positive argument, select alternate keypad mode. | 116 | When disabled, the terminal enters ``numeric keypad mode'', in |
| 114 | With a negative argument, select numeric keypad mode." | 117 | which the keypad's keys act as ordinary digits." |
| 115 | :variable (terminal-parameter nil 'tvi970-keypad-numeric) | 118 | :variable (terminal-parameter nil 'tvi970-keypad-numeric) |
| 116 | (send-string-to-terminal | 119 | (send-string-to-terminal |
| 117 | (if (terminal-parameter nil 'tvi970-keypad-numeric) "\e=" "\e>"))) | 120 | (if (terminal-parameter nil 'tvi970-keypad-numeric) "\e=" "\e>"))) |
diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el index 406c20a0e81..ca16f356b20 100644 --- a/lisp/term/vt100.el +++ b/lisp/term/vt100.el | |||
| @@ -42,8 +42,9 @@ | |||
| 42 | ;;; Controlling the screen width. | 42 | ;;; Controlling the screen width. |
| 43 | (define-minor-mode vt100-wide-mode | 43 | (define-minor-mode vt100-wide-mode |
| 44 | "Toggle 132/80 column mode for vt100s. | 44 | "Toggle 132/80 column mode for vt100s. |
| 45 | With positive argument, switch to 132-column mode. | 45 | With a prefix argument ARG, switch to 132-column mode if ARG is |
| 46 | With negative argument, switch to 80-column mode." | 46 | positive, and 80-column mode otherwise. If called from Lisp, |
| 47 | switch to 132-column mode if ARG is omitted or nil." | ||
| 47 | :global t :init-value (= (frame-width) 132) | 48 | :global t :init-value (= (frame-width) 132) |
| 48 | (send-string-to-terminal (if vt100-wide-mode "\e[?3h" "\e[?3l")) | 49 | (send-string-to-terminal (if vt100-wide-mode "\e[?3h" "\e[?3l")) |
| 49 | (set-frame-width terminal-frame (if vt100-wide-mode 132 80))) | 50 | (set-frame-width terminal-frame (if vt100-wide-mode 132 80))) |
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index d496298768d..4a57d00d702 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el | |||
| @@ -469,12 +469,14 @@ See also `flyspell-duplicate-distance'." | |||
| 469 | ;;;###autoload(defvar flyspell-mode nil) | 469 | ;;;###autoload(defvar flyspell-mode nil) |
| 470 | ;;;###autoload | 470 | ;;;###autoload |
| 471 | (define-minor-mode flyspell-mode | 471 | (define-minor-mode flyspell-mode |
| 472 | "Minor mode performing on-the-fly spelling checking. | 472 | "Toggle on-the-fly spell checking (Flyspell mode). |
| 473 | This spawns a single Ispell process and checks each word. | 473 | With a prefix argument ARG, enable Flyspell mode if ARG is |
| 474 | The default flyspell behavior is to highlight incorrect words. | 474 | positive, and disable it otherwise. If called from Lisp, enable |
| 475 | With no argument, this command toggles Flyspell mode. | 475 | the mode if ARG is omitted or nil. |
| 476 | With a prefix argument ARG, turn Flyspell minor mode on if ARG is positive, | 476 | |
| 477 | otherwise turn it off. | 477 | Flyspell mode is a buffer-local minor mode. When enabled, it |
| 478 | spawns a single Ispell process and checks each word. The default | ||
| 479 | flyspell behavior is to highlight incorrect words. | ||
| 478 | 480 | ||
| 479 | Bindings: | 481 | Bindings: |
| 480 | \\[ispell-word]: correct words (using Ispell). | 482 | \\[ispell-word]: correct words (using Ispell). |
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index b76b0a303df..62f899d1730 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el | |||
| @@ -3462,15 +3462,21 @@ available on the net." | |||
| 3462 | 3462 | ||
| 3463 | ;;;###autoload | 3463 | ;;;###autoload |
| 3464 | (define-minor-mode ispell-minor-mode | 3464 | (define-minor-mode ispell-minor-mode |
| 3465 | "Toggle Ispell minor mode. | 3465 | "Toggle last-word spell checking (Ispell minor mode). |
| 3466 | With prefix argument ARG, turn Ispell minor mode on if ARG is positive, | 3466 | With a prefix argument ARG, enable Ispell minor mode if ARG is |
| 3467 | otherwise turn it off. | 3467 | positive, and disable it otherwise. If called from Lisp, enable |
| 3468 | the mode if ARG is omitted or nil. | ||
| 3468 | 3469 | ||
| 3469 | In Ispell minor mode, pressing SPC or RET | 3470 | Ispell minor mode is a buffer-local mior mode. When enabled, |
| 3470 | warns you if the previous word is incorrectly spelled. | 3471 | typing SPC or RET warns you if the previous word is incorrectly |
| 3472 | spelled. | ||
| 3471 | 3473 | ||
| 3472 | All the buffer-local variables and dictionaries are ignored -- to read | 3474 | All the buffer-local variables and dictionaries are ignored. To |
| 3473 | them into the running ispell process, type \\[ispell-word] SPC." | 3475 | read them into the running ispell process, type \\[ispell-word] |
| 3476 | SPC. | ||
| 3477 | |||
| 3478 | For spell-checking \"on the fly\", not just after typing SPC or | ||
| 3479 | RET, use `flyspell-mode'." | ||
| 3474 | nil " Spell" ispell-minor-keymap) | 3480 | nil " Spell" ispell-minor-keymap) |
| 3475 | 3481 | ||
| 3476 | (defun ispell-minor-check () | 3482 | (defun ispell-minor-check () |
diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el index 8fb0bd85dab..1be78ed293f 100644 --- a/lisp/textmodes/nroff-mode.el +++ b/lisp/textmodes/nroff-mode.el | |||
| @@ -297,11 +297,17 @@ automatically inserts the matching closing request after point." | |||
| 297 | (forward-char 1)))) | 297 | (forward-char 1)))) |
| 298 | 298 | ||
| 299 | (define-minor-mode nroff-electric-mode | 299 | (define-minor-mode nroff-electric-mode |
| 300 | "Toggle `nroff-electric-newline' minor mode. | 300 | "Toggle automatic nroff request pairing (Nroff Electric mode). |
| 301 | `nroff-electric-newline' forces Emacs to check for an nroff request at the | 301 | With a prefix argument ARG, enable Nroff Electric mode if ARG is |
| 302 | beginning of the line, and insert the matching closing request if necessary. | 302 | positive, and disable it otherwise. If called from Lisp, enable |
| 303 | This command toggles that mode (off->on, on->off), with an argument, | 303 | the mode if ARG is omitted or nil. |
| 304 | turns it on if arg is positive, otherwise off." | 304 | |
| 305 | Nroff Electric mode is a buffer-local minor mode, for use with | ||
| 306 | `nroff-mode'. When enabled, Emacs checks for an nroff request at | ||
| 307 | the beginning of the line, and inserts the matching closing | ||
| 308 | request if necessary. This command toggles that mode (off->on, | ||
| 309 | on->off), with an argument, turns it on if arg is positive, | ||
| 310 | otherwise off." | ||
| 305 | :lighter " Electric" | 311 | :lighter " Electric" |
| 306 | (or (derived-mode-p 'nroff-mode) (error "Must be in nroff mode"))) | 312 | (or (derived-mode-p 'nroff-mode) (error "Must be in nroff mode"))) |
| 307 | 313 | ||
diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el index 8fd055f7d87..b47924bc1f2 100644 --- a/lisp/textmodes/paragraphs.el +++ b/lisp/textmodes/paragraphs.el | |||
| @@ -35,19 +35,23 @@ | |||
| 35 | 35 | ||
| 36 | (put 'use-hard-newlines 'permanent-local t) | 36 | (put 'use-hard-newlines 'permanent-local t) |
| 37 | (define-minor-mode use-hard-newlines | 37 | (define-minor-mode use-hard-newlines |
| 38 | "Minor mode to distinguish hard and soft newlines. | 38 | "Toggle distinguishing between hard and soft newlines. |
| 39 | When active, the functions `newline' and `open-line' add the | 39 | With a prefix argument ARG, enable the feature if ARG is |
| 40 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 41 | it if ARG is omitted or nil. | ||
| 42 | |||
| 43 | When enabled, the functions `newline' and `open-line' add the | ||
| 40 | text-property `hard' to newlines that they insert, and a line is | 44 | text-property `hard' to newlines that they insert, and a line is |
| 41 | only considered as a candidate to match `paragraph-start' or | 45 | only considered as a candidate to match `paragraph-start' or |
| 42 | `paragraph-separate' if it follows a hard newline. | 46 | `paragraph-separate' if it follows a hard newline. |
| 43 | 47 | ||
| 44 | Prefix argument says to turn mode on if positive, off if negative. | 48 | When enabling, if there are newlines in the buffer but no hard |
| 45 | When the mode is turned on, if there are newlines in the buffer but no hard | 49 | newlines, ask the user whether to mark as hard any newlines |
| 46 | newlines, ask the user whether to mark as hard any newlines preceding a | 50 | preceding a `paragraph-start' line. From a program, second arg |
| 47 | `paragraph-start' line. From a program, second arg INSERT specifies whether | 51 | INSERT specifies whether to do this; it can be `never' to change |
| 48 | to do this; it can be `never' to change nothing, t or `always' to force | 52 | nothing, t or `always' to force marking, `guess' to try to do the |
| 49 | marking, `guess' to try to do the right thing with no questions, nil | 53 | right thing with no questions, nil or anything else to ask the |
| 50 | or anything else to ask the user. | 54 | user. |
| 51 | 55 | ||
| 52 | Newlines not marked hard are called \"soft\", and are always internal | 56 | Newlines not marked hard are called \"soft\", and are always internal |
| 53 | to paragraphs. The fill functions insert and delete only soft newlines." | 57 | to paragraphs. The fill functions insert and delete only soft newlines." |
diff --git a/lisp/textmodes/refill.el b/lisp/textmodes/refill.el index 474872955b4..d60b7594c07 100644 --- a/lisp/textmodes/refill.el +++ b/lisp/textmodes/refill.el | |||
| @@ -213,12 +213,17 @@ complex processing.") | |||
| 213 | 213 | ||
| 214 | ;;;###autoload | 214 | ;;;###autoload |
| 215 | (define-minor-mode refill-mode | 215 | (define-minor-mode refill-mode |
| 216 | "Toggle Refill minor mode. | 216 | "Toggle automatic refilling (Refill mode). |
| 217 | With prefix arg, turn Refill mode on if arg is positive, otherwise turn it off. | 217 | With a prefix argument ARG, enable Refill mode if ARG is |
| 218 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 219 | the mode if ARG is omitted or nil. | ||
| 218 | 220 | ||
| 219 | When Refill mode is on, the current paragraph will be formatted when | 221 | Refill mode is a buffer-local minor mode. When enabled, the |
| 220 | changes are made within it. Self-inserting characters only cause | 222 | current paragraph is refilled as you edit. Self-inserting |
| 221 | refilling if they would cause auto-filling." | 223 | characters only cause refilling if they would cause |
| 224 | auto-filling. | ||
| 225 | |||
| 226 | For true \"word wrap\" behavior, use `visual-line-mode' instead." | ||
| 222 | :group 'refill | 227 | :group 'refill |
| 223 | :lighter " Refill" | 228 | :lighter " Refill" |
| 224 | :keymap '(("\177" . backward-delete-char-untabify)) | 229 | :keymap '(("\177" . backward-delete-char-untabify)) |
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index 7e150bff997..6f6993980db 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el | |||
| @@ -503,7 +503,13 @@ | |||
| 503 | (put 'reftex-mode :menu-tag "RefTeX Mode") | 503 | (put 'reftex-mode :menu-tag "RefTeX Mode") |
| 504 | ;;;###autoload | 504 | ;;;###autoload |
| 505 | (define-minor-mode reftex-mode | 505 | (define-minor-mode reftex-mode |
| 506 | "Minor mode with distinct support for \\label, \\ref and \\cite in LaTeX. | 506 | "Toggle RefTeX mode. |
| 507 | With a prefix argument ARG, enable RefTeX mode if ARG is | ||
| 508 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 509 | the mode if ARG is omitted or nil. | ||
| 510 | |||
| 511 | RefTeX mode is a buffer-local minor mode with distinct support | ||
| 512 | for \\label, \\ref and \\cite in LaTeX. | ||
| 507 | 513 | ||
| 508 | \\<reftex-mode-map>A Table of Contents of the entire (multifile) document with browsing | 514 | \\<reftex-mode-map>A Table of Contents of the entire (multifile) document with browsing |
| 509 | capabilities is available with `\\[reftex-toc]'. | 515 | capabilities is available with `\\[reftex-toc]'. |
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index c1ce950522c..f9fda7e0a74 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el | |||
| @@ -442,11 +442,10 @@ font-locking of blocks. | |||
| 442 | 442 | ||
| 443 | ;;;###autoload | 443 | ;;;###autoload |
| 444 | (define-minor-mode rst-minor-mode | 444 | (define-minor-mode rst-minor-mode |
| 445 | "ReST Minor Mode. | 445 | "Toggle ReST minor mode. |
| 446 | Toggle ReST minor mode. | 446 | With a prefix argument ARG, enable ReST minor mode if ARG is |
| 447 | With no argument, this command toggles the mode. | 447 | positive, and disable it otherwise. If called from Lisp, enable |
| 448 | Non-null prefix argument turns on the mode. | 448 | the mode if ARG is omitted or nil. |
| 449 | Null prefix argument turns off the mode. | ||
| 450 | 449 | ||
| 451 | When ReST minor mode is enabled, the ReST mode keybindings | 450 | When ReST minor mode is enabled, the ReST mode keybindings |
| 452 | are installed on top of the major mode bindings. Use this | 451 | are installed on top of the major mode bindings. Use this |
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index 314fbf9671b..be8dd9c9130 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el | |||
| @@ -841,7 +841,14 @@ Return non-nil if we skipped over matched tags." | |||
| 841 | (delete-overlay (pop sgml-electric-tag-pair-overlays)))) | 841 | (delete-overlay (pop sgml-electric-tag-pair-overlays)))) |
| 842 | 842 | ||
| 843 | (define-minor-mode sgml-electric-tag-pair-mode | 843 | (define-minor-mode sgml-electric-tag-pair-mode |
| 844 | "Automatically update the closing tag when editing the opening one." | 844 | "Toggle SGML Electric Tag Pair mode. |
| 845 | With a prefix argument ARG, enable the mode if ARG is positive, | ||
| 846 | and disable it otherwise. If called from Lisp, enable the mode | ||
| 847 | if ARG is omitted or nil. | ||
| 848 | |||
| 849 | SGML Electric Tag Pair mode is a buffer-local minor mode for use | ||
| 850 | with `sgml-mode' and related maor modes. When enabled, editing | ||
| 851 | an opening markup tag automatically updates the closing tag." | ||
| 845 | :lighter "/e" | 852 | :lighter "/e" |
| 846 | (if sgml-electric-tag-pair-mode | 853 | (if sgml-electric-tag-pair-mode |
| 847 | (progn | 854 | (progn |
| @@ -2024,9 +2031,14 @@ The third `match-string' will be the used in the menu.") | |||
| 2024 | (nreverse toc-index))) | 2031 | (nreverse toc-index))) |
| 2025 | 2032 | ||
| 2026 | (define-minor-mode html-autoview-mode | 2033 | (define-minor-mode html-autoview-mode |
| 2027 | "Toggle automatic viewing via `browse-url-of-buffer' upon saving buffer. | 2034 | "Toggle viewing of HTML files on save (HTML Autoview mode). |
| 2028 | With positive prefix ARG always turns viewing on, with negative ARG always off. | 2035 | With a prefix argument ARG, enable HTML Autoview mode if ARG is |
| 2029 | Can be used as a value for `html-mode-hook'." | 2036 | positive, and disable it otherwise. If called from Lisp, enable |
| 2037 | the mode if ARG is omitted or nil. | ||
| 2038 | |||
| 2039 | HTML Autoview mode is a buffer-local minor mode for use with | ||
| 2040 | `html-mode'. If enabled, saving the file automatically runs | ||
| 2041 | `browse-url-of-buffer' to view it." | ||
| 2030 | nil nil nil | 2042 | nil nil nil |
| 2031 | :group 'sgml | 2043 | :group 'sgml |
| 2032 | (if html-autoview-mode | 2044 | (if html-autoview-mode |
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 428fc1db3a9..deb92fc0243 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el | |||
| @@ -677,8 +677,14 @@ An alternative value is \" . \", if you use a font with a narrow period." | |||
| 677 | (put-text-property start end 'latex-env-pair t))) | 677 | (put-text-property start end 'latex-env-pair t))) |
| 678 | 678 | ||
| 679 | (define-minor-mode latex-electric-env-pair-mode | 679 | (define-minor-mode latex-electric-env-pair-mode |
| 680 | "Automatically update the \\end arg when editing the \\begin one. | 680 | "Toggle Latex Electric Env Pair mode. |
| 681 | And vice-versa." | 681 | With a prefix argument ARG, enable the mode if ARG is positive, |
| 682 | and disable it otherwise. If called from Lisp, enable it if ARG | ||
| 683 | is omitted or nil. | ||
| 684 | |||
| 685 | Latex Electric Env Pair mode is a buffer-local minor mode for use | ||
| 686 | with `latex-mode'. When enabled, typing a \\begin or \\end tag | ||
| 687 | automatically inserts its partner." | ||
| 682 | :lighter "/e" | 688 | :lighter "/e" |
| 683 | (if latex-electric-env-pair-mode | 689 | (if latex-electric-env-pair-mode |
| 684 | (add-hook 'before-change-functions | 690 | (add-hook 'before-change-functions |
diff --git a/lisp/time.el b/lisp/time.el index f8fea0c64a2..ac4a011bdf8 100644 --- a/lisp/time.el +++ b/lisp/time.el | |||
| @@ -484,14 +484,15 @@ update which can wait for the next redisplay." | |||
| 484 | ;;;###autoload | 484 | ;;;###autoload |
| 485 | (define-minor-mode display-time-mode | 485 | (define-minor-mode display-time-mode |
| 486 | "Toggle display of time, load level, and mail flag in mode lines. | 486 | "Toggle display of time, load level, and mail flag in mode lines. |
| 487 | With a numeric arg, enable this display if arg is positive. | 487 | With a prefix argument ARG, enable Display Time mode if ARG is |
| 488 | 488 | positive, and disable it otherwise. If called from Lisp, enable | |
| 489 | When this display is enabled, it updates automatically every minute | 489 | it if ARG is omitted or nil. |
| 490 | \(you can control the number of seconds between updates by | 490 | |
| 491 | customizing `display-time-interval'). | 491 | When Display Time mode is enabled, it updates every minute (you |
| 492 | If `display-time-day-and-date' is non-nil, the current day and date | 492 | can control the number of seconds between updates by customizing |
| 493 | are displayed as well. | 493 | `display-time-interval'). If `display-time-day-and-date' is |
| 494 | This runs the normal hook `display-time-hook' after each update." | 494 | non-nil, the current day and date are displayed as well. This |
| 495 | runs the normal hook `display-time-hook' after each update." | ||
| 495 | :global t :group 'display-time | 496 | :global t :group 'display-time |
| 496 | (and display-time-timer (cancel-timer display-time-timer)) | 497 | (and display-time-timer (cancel-timer display-time-timer)) |
| 497 | (setq display-time-timer nil) | 498 | (setq display-time-timer nil) |
diff --git a/lisp/tool-bar.el b/lisp/tool-bar.el index 05208abb720..8759e0f77fb 100644 --- a/lisp/tool-bar.el +++ b/lisp/tool-bar.el | |||
| @@ -43,9 +43,10 @@ | |||
| 43 | ;; Deleting it means invoking this command won't work | 43 | ;; Deleting it means invoking this command won't work |
| 44 | ;; when you are on a tty. I hope that won't cause too much trouble -- rms. | 44 | ;; when you are on a tty. I hope that won't cause too much trouble -- rms. |
| 45 | (define-minor-mode tool-bar-mode | 45 | (define-minor-mode tool-bar-mode |
| 46 | "Toggle use of the tool bar. | 46 | "Toggle the tool bar in all graphical frames (Tool Bar mode). |
| 47 | With a numeric argument, if the argument is positive, turn on the | 47 | With a prefix argument ARG, enable Tool Bar mode if ARG is |
| 48 | tool bar; otherwise, turn off the tool bar. | 48 | positive, and disable it otherwise. If called from Lisp, enable |
| 49 | Tool Bar mode if ARG is omitted or nil. | ||
| 49 | 50 | ||
| 50 | See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for | 51 | See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for |
| 51 | conveniently adding tool bar items." | 52 | conveniently adding tool bar items." |
diff --git a/lisp/tooltip.el b/lisp/tooltip.el index bfe53dc71b7..59115122c34 100644 --- a/lisp/tooltip.el +++ b/lisp/tooltip.el | |||
| @@ -39,11 +39,14 @@ | |||
| 39 | ;;; Switching tooltips on/off | 39 | ;;; Switching tooltips on/off |
| 40 | 40 | ||
| 41 | (define-minor-mode tooltip-mode | 41 | (define-minor-mode tooltip-mode |
| 42 | "Toggle Tooltip mode. | 42 | "Toggle use of graphical tooltips (Tooltip mode). |
| 43 | With ARG, turn Tooltip mode on if and only if ARG is positive. | 43 | With a prefix argument ARG, enable Tooltip mode if ARG is |
| 44 | When this minor mode is enabled, Emacs displays help text | 44 | positive, and disable it otherwise. If called from Lisp, enable |
| 45 | in a pop-up window for buttons and menu items that you put the mouse on. | 45 | it if ARG is omitted or nil. |
| 46 | \(However, if `tooltip-use-echo-area' is non-nil, this and | 46 | |
| 47 | When Tooltip mode is enabled, Emacs displays help text in a | ||
| 48 | pop-up window for buttons and menu items that you put the mouse | ||
| 49 | on. \(However, if `tooltip-use-echo-area' is non-nil, this and | ||
| 47 | all pop-up help appears in the echo area.) | 50 | all pop-up help appears in the echo area.) |
| 48 | 51 | ||
| 49 | When Tooltip mode is disabled, Emacs displays one line of | 52 | When Tooltip mode is disabled, Emacs displays one line of |
diff --git a/lisp/type-break.el b/lisp/type-break.el index d276e64f6db..da3129ec576 100644 --- a/lisp/type-break.el +++ b/lisp/type-break.el | |||
| @@ -431,13 +431,13 @@ problems." | |||
| 431 | type-break-mode) | 431 | type-break-mode) |
| 432 | 432 | ||
| 433 | (define-minor-mode type-break-mode-line-message-mode | 433 | (define-minor-mode type-break-mode-line-message-mode |
| 434 | "Enable or disable warnings in the mode line about typing breaks. | 434 | "Toggle warnings about typing breaks in the mode line. |
| 435 | With a prefix argument ARG, enable these warnings if ARG is | ||
| 436 | positive, and disable them otherwise. If called from Lisp, | ||
| 437 | enable them if ARG is omitted or nil. | ||
| 435 | 438 | ||
| 436 | A negative PREFIX argument disables this mode. | 439 | The user may also enable or disable this mode simply by setting |
| 437 | No argument or any non-negative argument enables it. | 440 | the variable of the same name. |
| 438 | |||
| 439 | The user may also enable or disable this mode simply by setting the | ||
| 440 | variable of the same name. | ||
| 441 | 441 | ||
| 442 | Variables controlling the display of messages in the mode line include: | 442 | Variables controlling the display of messages in the mode line include: |
| 443 | 443 | ||
| @@ -448,17 +448,13 @@ Variables controlling the display of messages in the mode line include: | |||
| 448 | :global t) | 448 | :global t) |
| 449 | 449 | ||
| 450 | (define-minor-mode type-break-query-mode | 450 | (define-minor-mode type-break-query-mode |
| 451 | "Enable or disable warnings in the mode line about typing breaks. | 451 | "Toggle typing break queries. |
| 452 | 452 | With a prefix argument ARG, enable these queries if ARG is | |
| 453 | When enabled, the user is periodically queried about whether to take a | 453 | positive, and disable them otherwise. If called from Lisp, |
| 454 | typing break at that moment. The function which does this query is | 454 | enable them if ARG is omitted or nil. |
| 455 | specified by the variable `type-break-query-function'. | ||
| 456 | |||
| 457 | A negative PREFIX argument disables this mode. | ||
| 458 | No argument or any non-negative argument enables it. | ||
| 459 | 455 | ||
| 460 | The user may also enable or disable this mode simply by setting the | 456 | The user may also enable or disable this mode simply by setting |
| 461 | variable of the same name." | 457 | the variable of the same name." |
| 462 | :global t) | 458 | :global t) |
| 463 | 459 | ||
| 464 | 460 | ||
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index fbc267df44a..1b6890e5252 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-10-19 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * url-handlers.el (url-handler-mode): Doc fix. | ||
| 4 | |||
| 1 | 2011-09-24 Christopher J. White <chris@grierwhite.com> (tiny change) | 5 | 2011-09-24 Christopher J. White <chris@grierwhite.com> (tiny change) |
| 2 | 6 | ||
| 3 | * url-http.el (url-http-create-request): Avoid adding extra CRLF | 7 | * url-http.el (url-http-create-request): Avoid adding extra CRLF |
diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el index fef0ef15e95..d5f7eb7dd36 100644 --- a/lisp/url/url-handlers.el +++ b/lisp/url/url-handlers.el | |||
| @@ -100,7 +100,10 @@ particularly bad at this\).") | |||
| 100 | 100 | ||
| 101 | ;;;###autoload | 101 | ;;;###autoload |
| 102 | (define-minor-mode url-handler-mode | 102 | (define-minor-mode url-handler-mode |
| 103 | "Use URL to handle URL-like file names." | 103 | "Toggle using `url' library for URL filenames (URL Handler mode). |
| 104 | With a prefix argument ARG, enable URL Handler mode if ARG is | ||
| 105 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 106 | the mode if ARG is omitted or nil." | ||
| 104 | :global t :group 'url | 107 | :global t :group 'url |
| 105 | (if (not (boundp 'file-name-handler-alist)) | 108 | (if (not (boundp 'file-name-handler-alist)) |
| 106 | ;; Can't be turned ON anyway. | 109 | ;; Can't be turned ON anyway. |
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index 392973e08fe..9f0fa584b0d 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el | |||
| @@ -225,9 +225,16 @@ when editing big diffs)." | |||
| 225 | "Keymap for `diff-minor-mode'. See also `diff-mode-shared-map'.") | 225 | "Keymap for `diff-minor-mode'. See also `diff-mode-shared-map'.") |
| 226 | 226 | ||
| 227 | (define-minor-mode diff-auto-refine-mode | 227 | (define-minor-mode diff-auto-refine-mode |
| 228 | "Automatically highlight changes in detail as the user visits hunks. | 228 | "Toggle automatic diff hunk highlighting (Diff Auto Refine mode). |
| 229 | When transitioning from disabled to enabled, | 229 | With a prefix argument ARG, enable Diff Auto Refine mode if ARG |
| 230 | try to refine the current hunk, as well." | 230 | is positive, and disable it otherwise. If called from Lisp, |
| 231 | enable the mode if ARG is omitted or nil. | ||
| 232 | |||
| 233 | Diff Auto Refine mode is a buffer-local minor mode used with | ||
| 234 | `diff-mode'. When enabled, Emacs automatically highlights | ||
| 235 | changes in detail as the user visits hunks. When transitioning | ||
| 236 | from disabled to enabled, it tries to refine the current hunk, as | ||
| 237 | well." | ||
| 231 | :group 'diff-mode :init-value t :lighter nil ;; " Auto-Refine" | 238 | :group 'diff-mode :init-value t :lighter nil ;; " Auto-Refine" |
| 232 | (when diff-auto-refine-mode | 239 | (when diff-auto-refine-mode |
| 233 | (condition-case-no-debug nil (diff-refine-hunk) (error nil)))) | 240 | (condition-case-no-debug nil (diff-refine-hunk) (error nil)))) |
| @@ -1306,7 +1313,11 @@ a diff with \\[diff-reverse-direction]. | |||
| 1306 | 1313 | ||
| 1307 | ;;;###autoload | 1314 | ;;;###autoload |
| 1308 | (define-minor-mode diff-minor-mode | 1315 | (define-minor-mode diff-minor-mode |
| 1309 | "Minor mode for viewing/editing context diffs. | 1316 | "Toggle Diff minor mode. |
| 1317 | With a prefix argument ARG, enable Diff minor mode if ARG is | ||
| 1318 | positive, and disable it otherwise. If called from Lisp, enable | ||
| 1319 | the mode if ARG is omitted or nil. | ||
| 1320 | |||
| 1310 | \\{diff-minor-mode-map}" | 1321 | \\{diff-minor-mode-map}" |
| 1311 | :group 'diff-mode :lighter " Diff" | 1322 | :group 'diff-mode :lighter " Diff" |
| 1312 | ;; FIXME: setup font-lock | 1323 | ;; FIXME: setup font-lock |
diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el index 0d904ec85c4..eeaa2cfa927 100644 --- a/lisp/vc/ediff-init.el +++ b/lisp/vc/ediff-init.el | |||
| @@ -1340,11 +1340,9 @@ this variable represents.") | |||
| 1340 | ovr-list)))))))) | 1340 | ovr-list)))))))) |
| 1341 | 1341 | ||
| 1342 | 1342 | ||
| 1343 | (defvar ediff-toggle-read-only-function nil | 1343 | (defvar ediff-toggle-read-only-function 'toggle-read-only |
| 1344 | "*Specifies the function to be used to toggle read-only. | 1344 | "Function to be used to toggle read-only status of the buffer. |
| 1345 | If nil, Ediff tries to deduce the function from the binding of C-x C-q. | 1345 | If nil, Ediff tries using the command bound to C-x C-q.") |
| 1346 | Normally, this is the `toggle-read-only' function, but, if version | ||
| 1347 | control is used, it could be `vc-toggle-read-only' or `rcs-toggle-read-only'.") | ||
| 1348 | 1346 | ||
| 1349 | (defcustom ediff-make-buffers-readonly-at-startup nil | 1347 | (defcustom ediff-make-buffers-readonly-at-startup nil |
| 1350 | "Make all variant buffers read-only when Ediff starts up. | 1348 | "Make all variant buffers read-only when Ediff starts up. |
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el index b3f5cfb78f7..c421304442f 100644 --- a/lisp/vc/log-edit.el +++ b/lisp/vc/log-edit.el | |||
| @@ -386,7 +386,7 @@ uses the current buffer." | |||
| 386 | (setq setup (not setup))) | 386 | (setq setup (not setup))) |
| 387 | (when setup | 387 | (when setup |
| 388 | (erase-buffer) | 388 | (erase-buffer) |
| 389 | (insert "Summary: ") | 389 | (insert "Summary: \nAuthor: ") |
| 390 | (save-excursion (insert "\n\n"))) | 390 | (save-excursion (insert "\n\n"))) |
| 391 | (if mode | 391 | (if mode |
| 392 | (funcall mode) | 392 | (funcall mode) |
| @@ -536,7 +536,7 @@ If you want to abort the commit, simply delete the buffer." | |||
| 536 | (or (= (point-min) (point-max)) | 536 | (or (= (point-min) (point-max)) |
| 537 | (save-excursion | 537 | (save-excursion |
| 538 | (goto-char (point-min)) | 538 | (goto-char (point-min)) |
| 539 | (while (and (looking-at "^\\(Summary: \\)?$") | 539 | (while (and (looking-at "^\\([a-zA-Z]+: \\)?$") |
| 540 | (zerop (forward-line 1)))) | 540 | (zerop (forward-line 1)))) |
| 541 | (eobp)))) | 541 | (eobp)))) |
| 542 | 542 | ||
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index 3ab1caf2864..cc28db689e9 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el | |||
| @@ -866,7 +866,7 @@ stream. Standard error output is discarded." | |||
| 866 | (" M " . edited) ;; file text modified | 866 | (" M " . edited) ;; file text modified |
| 867 | (" *" . edited) ;; execute bit changed | 867 | (" *" . edited) ;; execute bit changed |
| 868 | (" M*" . edited) ;; text modified + execute bit changed | 868 | (" M*" . edited) ;; text modified + execute bit changed |
| 869 | ;; FIXME: what about ignored files? | 869 | ("I " . ignored) |
| 870 | (" D " . missing) | 870 | (" D " . missing) |
| 871 | ;; For conflicts, should we list the .THIS/.BASE/.OTHER? | 871 | ;; For conflicts, should we list the .THIS/.BASE/.OTHER? |
| 872 | ("C " . conflict) | 872 | ("C " . conflict) |
| @@ -916,7 +916,7 @@ stream. Standard error output is discarded." | |||
| 916 | (push (list new-name 'edited | 916 | (push (list new-name 'edited |
| 917 | (vc-bzr-create-extra-fileinfo old-name)) result))) | 917 | (vc-bzr-create-extra-fileinfo old-name)) result))) |
| 918 | ;; do nothing for non existent files | 918 | ;; do nothing for non existent files |
| 919 | ((eq translated 'not-found)) | 919 | ((memq translated '(not-found ignored))) |
| 920 | (t | 920 | (t |
| 921 | (push (list (file-relative-name | 921 | (push (list (file-relative-name |
| 922 | (buffer-substring-no-properties | 922 | (buffer-substring-no-properties |
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el index e7bfd273732..35fa11c2e5e 100644 --- a/lisp/vc/vc-hooks.el +++ b/lisp/vc/vc-hooks.el | |||
| @@ -648,22 +648,8 @@ this function." | |||
| 648 | (throw 'found trial)))) | 648 | (throw 'found trial)))) |
| 649 | templates)))) | 649 | templates)))) |
| 650 | 650 | ||
| 651 | (defun vc-toggle-read-only (&optional verbose) | 651 | (define-obsolete-function-alias |
| 652 | "Change read-only status of current buffer, perhaps via version control. | 652 | 'vc-toggle-read-only 'toggle-read-only "24.1") |
| 653 | |||
| 654 | If the buffer is visiting a file registered with version control, | ||
| 655 | throw an error, because this is not a safe or really meaningful operation | ||
| 656 | on any version-control system newer than RCS. | ||
| 657 | |||
| 658 | Otherwise, just change the read-only flag of the buffer. | ||
| 659 | |||
| 660 | If you bind this function to \\[toggle-read-only], then Emacs | ||
| 661 | will properly intercept all attempts to toggle the read-only flag | ||
| 662 | on version-controlled buffer." | ||
| 663 | (interactive "P") | ||
| 664 | (if (vc-backend buffer-file-name) | ||
| 665 | (error "Toggling the readability of a version controlled file is likely to wreak havoc") | ||
| 666 | (toggle-read-only))) | ||
| 667 | 653 | ||
| 668 | (defun vc-default-make-version-backups-p (backend file) | 654 | (defun vc-default-make-version-backups-p (backend file) |
| 669 | "Return non-nil if unmodified versions should be backed up locally. | 655 | "Return non-nil if unmodified versions should be backed up locally. |
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 62536fd94be..909585138fc 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el | |||
| @@ -675,6 +675,8 @@ | |||
| 675 | :type 'boolean | 675 | :type 'boolean |
| 676 | :group 'vc) | 676 | :group 'vc) |
| 677 | 677 | ||
| 678 | (make-obsolete-variable 'vc-initial-comment "it has no effect." "23.2") | ||
| 679 | |||
| 678 | (defcustom vc-default-init-revision "1.1" | 680 | (defcustom vc-default-init-revision "1.1" |
| 679 | "A string used as the default revision number when a new file is registered. | 681 | "A string used as the default revision number when a new file is registered. |
| 680 | This can be overridden by giving a prefix argument to \\[vc-register]. This | 682 | This can be overridden by giving a prefix argument to \\[vc-register]. This |
| @@ -1118,9 +1120,13 @@ merge in the changes into your working copy." | |||
| 1118 | ;; Files have local changes | 1120 | ;; Files have local changes |
| 1119 | ((vc-compatible-state state 'edited) | 1121 | ((vc-compatible-state state 'edited) |
| 1120 | (let ((ready-for-commit files)) | 1122 | (let ((ready-for-commit files)) |
| 1121 | ;; If files are edited but read-only, give user a chance to correct | 1123 | ;; If files are edited but read-only, give user a chance to correct. |
| 1122 | (dolist (file files) | 1124 | (dolist (file files) |
| 1123 | (unless (file-writable-p file) | 1125 | ;; If committing a mix of removed and edited files, the |
| 1126 | ;; fileset has state = 'edited. Rather than checking the | ||
| 1127 | ;; state of each individual file in the fileset, it seems | ||
| 1128 | ;; simplest to just check if the file exists. Bug#9781. | ||
| 1129 | (when (and (file-exists-p file) (not (file-writable-p file))) | ||
| 1124 | ;; Make the file+buffer read-write. | 1130 | ;; Make the file+buffer read-write. |
| 1125 | (unless (y-or-n-p (format "%s is edited but read-only; make it writable and continue? " file)) | 1131 | (unless (y-or-n-p (format "%s is edited but read-only; make it writable and continue? " file)) |
| 1126 | (error "Aborted")) | 1132 | (error "Aborted")) |
diff --git a/lisp/view.el b/lisp/view.el index 11cbc79449f..ef865007332 100644 --- a/lisp/view.el +++ b/lisp/view.el | |||
| @@ -369,19 +369,24 @@ this argument instead of explicitly setting `view-exit-action'." | |||
| 369 | ;; bindings instead of using the \\[] construction. The reason for this | 369 | ;; bindings instead of using the \\[] construction. The reason for this |
| 370 | ;; is that most commands have more than one key binding. | 370 | ;; is that most commands have more than one key binding. |
| 371 | "Toggle View mode, a minor mode for viewing text but not editing it. | 371 | "Toggle View mode, a minor mode for viewing text but not editing it. |
| 372 | With prefix argument ARG, turn View mode on if ARG is positive, otherwise | 372 | With a prefix argument ARG, enable View mode if ARG is positive, |
| 373 | turn it off. | 373 | and disable it otherwise. If called from Lisp, enable View mode |
| 374 | if ARG is omitted or nil. | ||
| 375 | |||
| 376 | When View mode is enabled, commands that do not change the buffer | ||
| 377 | contents are available as usual. Kill commands insert text in | ||
| 378 | kill buffers but do not delete. Most other commands beep and | ||
| 379 | tell the user that the buffer is read-only. | ||
| 374 | 380 | ||
| 375 | Emacs commands that do not change the buffer contents are available as usual. | ||
| 376 | Kill commands insert text in kill buffers but do not delete. Other commands | ||
| 377 | \(among them most letters and punctuation) beep and tell that the buffer is | ||
| 378 | read-only. | ||
| 379 | \\<view-mode-map> | 381 | \\<view-mode-map> |
| 380 | The following additional commands are provided. Most commands take prefix | 382 | |
| 381 | arguments. Page commands default to \"page size\" lines which is almost a whole | 383 | The following additional commands are provided. Most commands |
| 382 | window full, or number of lines set by \\[View-scroll-page-forward-set-page-size] or \\[View-scroll-page-backward-set-page-size]. Half page commands default to | 384 | take prefix arguments. Page commands default to \"page size\" |
| 383 | and set \"half page size\" lines which initially is half a window full. Search | 385 | lines which is almost a whole window, or number of lines set by |
| 384 | commands default to a repeat count of one. | 386 | \\[View-scroll-page-forward-set-page-size] or \\[View-scroll-page-backward-set-page-size]. |
| 387 | Half page commands default to and set \"half page size\" lines | ||
| 388 | which initially is half a window full. Search commands default | ||
| 389 | to a repeat count of one. | ||
| 385 | 390 | ||
| 386 | H, h, ? This message. | 391 | H, h, ? This message. |
| 387 | Digits provide prefix arguments. | 392 | Digits provide prefix arguments. |
diff --git a/lisp/whitespace.el b/lisp/whitespace.el index e0bc74343d2..8dc1996734d 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el | |||
| @@ -1064,11 +1064,10 @@ Any other value is treated as nil." | |||
| 1064 | 1064 | ||
| 1065 | ;;;###autoload | 1065 | ;;;###autoload |
| 1066 | (define-minor-mode whitespace-mode | 1066 | (define-minor-mode whitespace-mode |
| 1067 | "Toggle whitespace minor mode visualization (\"ws\" on modeline). | 1067 | "Toggle whitespace visualization (Whitespace mode). |
| 1068 | 1068 | With a prefix argument ARG, enable Whitespace mode if ARG is | |
| 1069 | If ARG is null, toggle whitespace visualization. | 1069 | positive, and disable it otherwise. If called from Lisp, enable |
| 1070 | If ARG is a number greater than zero, turn on visualization; | 1070 | the mode if ARG is omitted or nil. |
| 1071 | otherwise, turn off visualization. | ||
| 1072 | 1071 | ||
| 1073 | See also `whitespace-style', `whitespace-newline' and | 1072 | See also `whitespace-style', `whitespace-newline' and |
| 1074 | `whitespace-display-mappings'." | 1073 | `whitespace-display-mappings'." |
| @@ -1088,11 +1087,10 @@ See also `whitespace-style', `whitespace-newline' and | |||
| 1088 | 1087 | ||
| 1089 | ;;;###autoload | 1088 | ;;;###autoload |
| 1090 | (define-minor-mode whitespace-newline-mode | 1089 | (define-minor-mode whitespace-newline-mode |
| 1091 | "Toggle NEWLINE minor mode visualization (\"nl\" on modeline). | 1090 | "Toggle newline visualization (Whitespace Newline mode). |
| 1092 | 1091 | With a prefix argument ARG, enable Whitespace Newline mode if ARG | |
| 1093 | If ARG is null, toggle NEWLINE visualization. | 1092 | is positive, and disable it otherwise. If called from Lisp, |
| 1094 | If ARG is a number greater than zero, turn on visualization; | 1093 | enable the mode if ARG is omitted or nil. |
| 1095 | otherwise, turn off visualization. | ||
| 1096 | 1094 | ||
| 1097 | Use `whitespace-newline-mode' only for NEWLINE visualization | 1095 | Use `whitespace-newline-mode' only for NEWLINE visualization |
| 1098 | exclusively. For other visualizations, including NEWLINE | 1096 | exclusively. For other visualizations, including NEWLINE |
| @@ -1116,11 +1114,10 @@ See also `whitespace-newline' and `whitespace-display-mappings'." | |||
| 1116 | 1114 | ||
| 1117 | ;;;###autoload | 1115 | ;;;###autoload |
| 1118 | (define-minor-mode global-whitespace-mode | 1116 | (define-minor-mode global-whitespace-mode |
| 1119 | "Toggle whitespace global minor mode visualization (\"WS\" on modeline). | 1117 | "Toggle whitespace visualization globally (Global Whitespace mode). |
| 1120 | 1118 | With a prefix argument ARG, enable Global Whitespace mode if ARG | |
| 1121 | If ARG is null, toggle whitespace visualization. | 1119 | is positive, and disable it otherwise. If called from Lisp, |
| 1122 | If ARG is a number greater than zero, turn on visualization; | 1120 | enable it if ARG is omitted or nil. |
| 1123 | otherwise, turn off visualization. | ||
| 1124 | 1121 | ||
| 1125 | See also `whitespace-style', `whitespace-newline' and | 1122 | See also `whitespace-style', `whitespace-newline' and |
| 1126 | `whitespace-display-mappings'." | 1123 | `whitespace-display-mappings'." |
| @@ -1174,11 +1171,10 @@ See also `whitespace-style', `whitespace-newline' and | |||
| 1174 | 1171 | ||
| 1175 | ;;;###autoload | 1172 | ;;;###autoload |
| 1176 | (define-minor-mode global-whitespace-newline-mode | 1173 | (define-minor-mode global-whitespace-newline-mode |
| 1177 | "Toggle NEWLINE global minor mode visualization (\"NL\" on modeline). | 1174 | "Toggle global newline visualization (Global Whitespace Newline mode). |
| 1178 | 1175 | With a prefix argument ARG, enable Global Whitespace Newline mode | |
| 1179 | If ARG is null, toggle NEWLINE visualization. | 1176 | if ARG is positive, and disable it otherwise. If called from |
| 1180 | If ARG is a number greater than zero, turn on visualization; | 1177 | Lisp, enable it if ARG is omitted or nil. |
| 1181 | otherwise, turn off visualization. | ||
| 1182 | 1178 | ||
| 1183 | Use `global-whitespace-newline-mode' only for NEWLINE | 1179 | Use `global-whitespace-newline-mode' only for NEWLINE |
| 1184 | visualization exclusively. For other visualizations, including | 1180 | visualization exclusively. For other visualizations, including |
diff --git a/lisp/wid-browse.el b/lisp/wid-browse.el index b765e46b9c6..7ca13baeb53 100644 --- a/lisp/wid-browse.el +++ b/lisp/wid-browse.el | |||
| @@ -270,8 +270,7 @@ VALUE is assumed to be a list of widgets." | |||
| 270 | 270 | ||
| 271 | ;;;###autoload | 271 | ;;;###autoload |
| 272 | (define-minor-mode widget-minor-mode | 272 | (define-minor-mode widget-minor-mode |
| 273 | "Togle minor mode for traversing widgets. | 273 | "Minor mode for traversing widgets." |
| 274 | With arg, turn widget mode on if and only if arg is positive." | ||
| 275 | :lighter " Widget") | 274 | :lighter " Widget") |
| 276 | 275 | ||
| 277 | ;;; The End: | 276 | ;;; The End: |
diff --git a/lisp/window.el b/lisp/window.el index 4d8b3c92b95..968f47f4f31 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -1084,6 +1084,35 @@ regardless of whether that buffer is current or not." | |||
| 1084 | (goto-char pos)) | 1084 | (goto-char pos)) |
| 1085 | (set-window-point window pos))) | 1085 | (set-window-point window pos))) |
| 1086 | 1086 | ||
| 1087 | (defun window-at-side-p (&optional window side) | ||
| 1088 | "Return t if WINDOW is at SIDE of its containing frame. | ||
| 1089 | WINDOW can be any window and defaults to the selected one. SIDE | ||
| 1090 | can be any of the symbols `left', `top', `right' or `bottom'. | ||
| 1091 | The default value nil is handled like `bottom'." | ||
| 1092 | (setq window (window-normalize-any-window window)) | ||
| 1093 | (let ((edge | ||
| 1094 | (cond | ||
| 1095 | ((eq side 'left) 0) | ||
| 1096 | ((eq side 'top) 1) | ||
| 1097 | ((eq side 'right) 2) | ||
| 1098 | ((memq side '(bottom nil)) 3)))) | ||
| 1099 | (= (nth edge (window-edges window)) | ||
| 1100 | (nth edge (window-edges (frame-root-window window)))))) | ||
| 1101 | |||
| 1102 | (defun windows-at-side (&optional frame side) | ||
| 1103 | "Return list of all windows on SIDE of FRAME. | ||
| 1104 | FRAME must be a live frame and defaults to the selected frame. | ||
| 1105 | SIDE can be any of the symbols `left', `top', `right' or | ||
| 1106 | `bottom'. The default value nil is handled like `bottom'." | ||
| 1107 | (setq frame (window-normalize-frame frame)) | ||
| 1108 | (let (windows) | ||
| 1109 | (walk-window-tree | ||
| 1110 | (lambda (window) | ||
| 1111 | (when (window-at-side-p window side) | ||
| 1112 | (setq windows (cons window windows)))) | ||
| 1113 | frame) | ||
| 1114 | (nreverse windows))) | ||
| 1115 | |||
| 1087 | (defun window-in-direction-2 (window posn &optional horizontal) | 1116 | (defun window-in-direction-2 (window posn &optional horizontal) |
| 1088 | "Support function for `window-in-direction'." | 1117 | "Support function for `window-in-direction'." |
| 1089 | (if horizontal | 1118 | (if horizontal |
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index eca5f813ca2..09b2a7b88bd 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el | |||
| @@ -199,8 +199,9 @@ | |||
| 199 | ;;;###autoload | 199 | ;;;###autoload |
| 200 | (define-minor-mode xterm-mouse-mode | 200 | (define-minor-mode xterm-mouse-mode |
| 201 | "Toggle XTerm mouse mode. | 201 | "Toggle XTerm mouse mode. |
| 202 | With prefix arg, turn XTerm mouse mode on if arg is positive, otherwise turn | 202 | With a prefix argument ARG, enable XTerm mouse mode if ARG is |
| 203 | it off. | 203 | positive, and disable it otherwise. If called from Lisp, enable |
| 204 | the mode if ARG is omitted or nil. | ||
| 204 | 205 | ||
| 205 | Turn it on to use Emacs mouse commands, and off to use xterm mouse commands. | 206 | Turn it on to use Emacs mouse commands, and off to use xterm mouse commands. |
| 206 | This works in terminal emulators compatible with xterm. It only | 207 | This works in terminal emulators compatible with xterm. It only |
| @@ -302,7 +302,6 @@ for subdir in site-lisp \ | |||
| 302 | nextstep/Cocoa/Emacs.base/Contents \ | 302 | nextstep/Cocoa/Emacs.base/Contents \ |
| 303 | nextstep/Cocoa/Emacs.base/Contents/Resources \ | 303 | nextstep/Cocoa/Emacs.base/Contents/Resources \ |
| 304 | nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj \ | 304 | nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj \ |
| 305 | nextstep/Cocoa/Emacs.xcodeproj \ | ||
| 306 | nextstep/GNUstep \ | 305 | nextstep/GNUstep \ |
| 307 | nextstep/GNUstep/Emacs.base \ | 306 | nextstep/GNUstep/Emacs.base \ |
| 308 | nextstep/GNUstep/Emacs.base/Resources | 307 | nextstep/GNUstep/Emacs.base/Resources |
| @@ -438,10 +437,6 @@ echo "Making links to \`nextstep/Cocoa/Emacs.base/Contents/Resources/English.lpr | |||
| 438 | (cd nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj | 437 | (cd nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj |
| 439 | ln InfoPlist.strings ../../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj) | 438 | ln InfoPlist.strings ../../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj) |
| 440 | 439 | ||
| 441 | echo "Making links to \`nextstep/Cocoa/Emacs.xcodeproj'" | ||
| 442 | (cd nextstep/Cocoa/Emacs.xcodeproj | ||
| 443 | ln project.pbxproj ../../../${tempdir}/nextstep/Cocoa/Emacs.xcodeproj) | ||
| 444 | |||
| 445 | echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources'" | 440 | echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources'" |
| 446 | (cd nextstep/GNUstep/Emacs.base/Resources | 441 | (cd nextstep/GNUstep/Emacs.base/Resources |
| 447 | ln Emacs.desktop Info-gnustep.plist README emacs.tiff ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources ) | 442 | ln Emacs.desktop Info-gnustep.plist README emacs.tiff ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources ) |
diff --git a/nextstep/ChangeLog b/nextstep/ChangeLog index 263bd923f0f..4e8fe399970 100644 --- a/nextstep/ChangeLog +++ b/nextstep/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2011-10-19 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * INSTALL: Remove XCode part. | ||
| 4 | |||
| 5 | 2011-10-18 Jan Djärv <jan.h.d@swipnet.se> | ||
| 6 | |||
| 7 | * Cocoa/Emacs.xcodeproj: | ||
| 8 | * Cocoa/Emacs.xcodeproj/project.pbxproj: | ||
| 9 | Removed. | ||
| 10 | |||
| 1 | 2011-03-07 Chong Yidong <cyd@stupidchicken.com> | 11 | 2011-03-07 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 12 | ||
| 3 | * Version 23.3 released. | 13 | * Version 23.3 released. |
diff --git a/nextstep/Cocoa/Emacs.xcodeproj/project.pbxproj b/nextstep/Cocoa/Emacs.xcodeproj/project.pbxproj deleted file mode 100644 index fe5acce2c3c..00000000000 --- a/nextstep/Cocoa/Emacs.xcodeproj/project.pbxproj +++ /dev/null | |||
| @@ -1,798 +0,0 @@ | |||
| 1 | // !$*UTF8*$! | ||
| 2 | { | ||
| 3 | archiveVersion = 1; | ||
| 4 | classes = { | ||
| 5 | }; | ||
| 6 | objectVersion = 42; | ||
| 7 | objects = { | ||
| 8 | |||
| 9 | /* Begin PBXBuildFile section */ | ||
| 10 | 3C3AF9CA0FC10CDF001240E9 /* menu.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C3AF9C90FC10CDF001240E9 /* menu.c */; }; | ||
| 11 | 3C3AF9D50FC10D85001240E9 /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C3AF9D40FC10D85001240E9 /* libncurses.dylib */; }; | ||
| 12 | 3CED87390FC0F581005ACB89 /* alloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC50902EA8200B2EF7E /* alloc.c */; }; | ||
| 13 | 3CED873A0FC0F581005ACB89 /* atimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDCD0902EA8200B2EF7E /* atimer.c */; }; | ||
| 14 | 3CED873B0FC0F581005ACB89 /* buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED8B0902EA8200B2EF7E /* buffer.c */; }; | ||
| 15 | 3CED873C0FC0F581005ACB89 /* bytecode.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC60902EA8200B2EF7E /* bytecode.c */; }; | ||
| 16 | 3CED873D0FC0F581005ACB89 /* callint.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB40902EA8200B2EF7E /* callint.c */; }; | ||
| 17 | 3CED873E0FC0F581005ACB89 /* callproc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC70902EA8200B2EF7E /* callproc.c */; }; | ||
| 18 | 3CED873F0FC0F581005ACB89 /* casefiddle.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC90902EA8200B2EF7E /* casefiddle.c */; }; | ||
| 19 | 3CED87400FC0F581005ACB89 /* casetab.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC10902EA8200B2EF7E /* casetab.c */; }; | ||
| 20 | 3CED87410FC0F581005ACB89 /* category.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED7B0902EA8200B2EF7E /* category.c */; }; | ||
| 21 | 3CED87420FC0F581005ACB89 /* ccl.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB60902EA8200B2EF7E /* ccl.c */; }; | ||
| 22 | 3CED87430FC0F581005ACB89 /* character.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED8C0902EA8200B2EF7E /* character.c */; }; | ||
| 23 | 3CED87440FC0F581005ACB89 /* charset.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC40902EA8200B2EF7E /* charset.c */; }; | ||
| 24 | 3CED87450FC0F581005ACB89 /* chartab.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDCC0902EA8200B2EF7E /* chartab.c */; }; | ||
| 25 | 3CED87460FC0F581005ACB89 /* cm.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC80902EA8200B2EF7E /* cm.c */; }; | ||
| 26 | 3CED87470FC0F581005ACB89 /* cmds.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED7A0902EA8200B2EF7E /* cmds.c */; }; | ||
| 27 | 3CED87480FC0F581005ACB89 /* coding.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED7C0902EA8200B2EF7E /* coding.c */; }; | ||
| 28 | 3CED87490FC0F581005ACB89 /* composite.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC20902EA8200B2EF7E /* composite.c */; }; | ||
| 29 | 3CED874A0FC0F581005ACB89 /* data.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB30902EA8200B2EF7E /* data.c */; }; | ||
| 30 | 3CED874B0FC0F581005ACB89 /* dired.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB20902EA8200B2EF7E /* dired.c */; }; | ||
| 31 | 3CED874C0FC0F581005ACB89 /* dispnew.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC30902EA8200B2EF7E /* dispnew.c */; }; | ||
| 32 | 3CED874D0FC0F581005ACB89 /* doc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB10902EA8200B2EF7E /* doc.c */; }; | ||
| 33 | 3CED874E0FC0F581005ACB89 /* doprnt.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB00902EA8200B2EF7E /* doprnt.c */; }; | ||
| 34 | 3CED874F0FC0F581005ACB89 /* editfns.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBE0902EA8200B2EF7E /* editfns.c */; }; | ||
| 35 | 3CED87500FC0F581005ACB89 /* emacs.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBD0902EA8200B2EF7E /* emacs.c */; }; | ||
| 36 | 3CED87510FC0F581005ACB89 /* eval.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDC00902EA8200B2EF7E /* eval.c */; }; | ||
| 37 | 3CED87520FC0F581005ACB89 /* fileio.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBF0902EA8200B2EF7E /* fileio.c */; }; | ||
| 38 | 3CED87530FC0F581005ACB89 /* filelock.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBC0902EA8200B2EF7E /* filelock.c */; }; | ||
| 39 | 3CED87540FC0F581005ACB89 /* filemode.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDBB0902EA8200B2EF7E /* filemode.c */; }; | ||
| 40 | 3CED87550FC0F581005ACB89 /* floatfns.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB90902EA8200B2EF7E /* floatfns.c */; }; | ||
| 41 | 3CED87560FC0F581005ACB89 /* fns.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB80902EA8200B2EF7E /* fns.c */; }; | ||
| 42 | 3CED87570FC0F581005ACB89 /* font.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C4D6D660DE50D2300B20D4E /* font.c */; }; | ||
| 43 | 3CED87580FC0F581005ACB89 /* fontset.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDB70902EA8200B2EF7E /* fontset.c */; }; | ||
| 44 | 3CED87590FC0F581005ACB89 /* frame.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDCB0902EA8200B2EF7E /* frame.c */; }; | ||
| 45 | 3CED875A0FC0F581005ACB89 /* fringe.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCEDCA0902EA8200B2EF7E /* fringe.c */; }; | ||
| 46 | 3CED875B0FC0F581005ACB89 /* image.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED780902EA8200B2EF7E /* image.c */; }; | ||
| 47 | 3CED875C0FC0F581005ACB89 /* indent.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED770902EA8200B2EF7E /* indent.c */; }; | ||
| 48 | 3CED875D0FC0F581005ACB89 /* insdel.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED760902EA8200B2EF7E /* insdel.c */; }; | ||
| 49 | 3CED875E0FC0F581005ACB89 /* intervals.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED750902EA8200B2EF7E /* intervals.c */; }; | ||
| 50 | 3CED875F0FC0F581005ACB89 /* keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED740902EA8200B2EF7E /* keyboard.c */; }; | ||
| 51 | 3CED87600FC0F581005ACB89 /* keymap.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED730902EA8100B2EF7E /* keymap.c */; }; | ||
| 52 | 3CED87610FC0F581005ACB89 /* lastfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED720902EA8100B2EF7E /* lastfile.c */; }; | ||
| 53 | 3CED87620FC0F581005ACB89 /* lread.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED710902EA8100B2EF7E /* lread.c */; }; | ||
| 54 | 3CED87630FC0F581005ACB89 /* macros.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED6D0902EA8100B2EF7E /* macros.c */; }; | ||
| 55 | 3CED87640FC0F581005ACB89 /* marker.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED690902EA8100B2EF7E /* marker.c */; }; | ||
| 56 | 3CED87650FC0F581005ACB89 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED680902EA8100B2EF7E /* md5.c */; }; | ||
| 57 | 3CED87660FC0F581005ACB89 /* minibuf.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED670902EA8100B2EF7E /* minibuf.c */; }; | ||
| 58 | 3CED87670FC0F581005ACB89 /* nsfns.m in Sources */ = {isa = PBXBuildFile; fileRef = 090AF67E00C61DCD7F000001 /* nsfns.m */; }; | ||
| 59 | 3CED87680FC0F581005ACB89 /* nsfont.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C4D6D710DE50D5D00B20D4E /* nsfont.m */; }; | ||
| 60 | 3CED87690FC0F581005ACB89 /* nsimage.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C15C1A70902D97100A8542F /* nsimage.m */; }; | ||
| 61 | 3CED876A0FC0F581005ACB89 /* nsmenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 090AF68000C61DCD7F000001 /* nsmenu.m */; }; | ||
| 62 | 3CED876B0FC0F581005ACB89 /* nsselect.m in Sources */ = {isa = PBXBuildFile; fileRef = 090AF68100C61DCD7F000001 /* nsselect.m */; }; | ||
| 63 | 3CED876C0FC0F581005ACB89 /* nsterm.m in Sources */ = {isa = PBXBuildFile; fileRef = 090AF68300C61DCD7F000001 /* nsterm.m */; }; | ||
| 64 | 3CED876D0FC0F581005ACB89 /* pre-crt0.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED640902EA8100B2EF7E /* pre-crt0.c */; }; | ||
| 65 | 3CED876E0FC0F581005ACB89 /* print.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED620902EA8100B2EF7E /* print.c */; }; | ||
| 66 | 3CED876F0FC0F581005ACB89 /* process.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED610902EA8100B2EF7E /* process.c */; }; | ||
| 67 | 3CED87700FC0F581005ACB89 /* regex.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5F0902EA8100B2EF7E /* regex.c */; }; | ||
| 68 | 3CED87710FC0F581005ACB89 /* region-cache.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5E0902EA8100B2EF7E /* region-cache.c */; }; | ||
| 69 | 3CED87720FC0F581005ACB89 /* scroll.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5D0902EA8100B2EF7E /* scroll.c */; }; | ||
| 70 | 3CED87730FC0F581005ACB89 /* search.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5C0902EA8100B2EF7E /* search.c */; }; | ||
| 71 | 3CED87740FC0F581005ACB89 /* sound.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED5A0902EA8100B2EF7E /* sound.c */; }; | ||
| 72 | 3CED87750FC0F581005ACB89 /* strftime.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED590902EA8100B2EF7E /* strftime.c */; }; | ||
| 73 | 3CED87760FC0F581005ACB89 /* syntax.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED570902EA8100B2EF7E /* syntax.c */; }; | ||
| 74 | 3CED87770FC0F581005ACB89 /* sysdep.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED560902EA8100B2EF7E /* sysdep.c */; }; | ||
| 75 | 3CED87780FC0F581005ACB89 /* term.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED550902EA8100B2EF7E /* term.c */; }; | ||
| 76 | 3CED877A0FC0F581005ACB89 /* terminal.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C4D6D690DE50D2300B20D4E /* terminal.c */; }; | ||
| 77 | 3CED877B0FC0F581005ACB89 /* terminfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED950902EA8200B2EF7E /* terminfo.c */; }; | ||
| 78 | 3CED877C0FC0F581005ACB89 /* textprop.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED940902EA8200B2EF7E /* textprop.c */; }; | ||
| 79 | 3CED877E0FC0F581005ACB89 /* undo.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED920902EA8200B2EF7E /* undo.c */; }; | ||
| 80 | 3CED877F0FC0F581005ACB89 /* unexmacosx.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED830902EA8200B2EF7E /* unexmacosx.c */; }; | ||
| 81 | 3CED87800FC0F581005ACB89 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED9E0902EA8200B2EF7E /* window.c */; }; | ||
| 82 | 3CED87810FC0F581005ACB89 /* xdisp.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED9D0902EA8200B2EF7E /* xdisp.c */; }; | ||
| 83 | 3CED87820FC0F581005ACB89 /* xfaces.c in Sources */ = {isa = PBXBuildFile; fileRef = 3CDCED9C0902EA8200B2EF7E /* xfaces.c */; }; | ||
| 84 | 3CED88190FC0F5B3005ACB89 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CFDFC3A08E79A6800B05918 /* AppKit.framework */; }; | ||
| 85 | /* End PBXBuildFile section */ | ||
| 86 | |||
| 87 | /* Begin PBXContainerItemProxy section */ | ||
| 88 | 3CED88220FC0FE5C005ACB89 /* PBXContainerItemProxy */ = { | ||
| 89 | isa = PBXContainerItemProxy; | ||
| 90 | containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; | ||
| 91 | proxyType = 1; | ||
| 92 | remoteGlobalIDString = 3CED87320FC0F557005ACB89; | ||
| 93 | remoteInfo = temacs; | ||
| 94 | }; | ||
| 95 | /* End PBXContainerItemProxy section */ | ||
| 96 | |||
| 97 | /* Begin PBXFileReference section */ | ||
| 98 | 090AF67E00C61DCD7F000001 /* nsfns.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsfns.m; path = ../../src/nsfns.m; sourceTree = "<group>"; }; | ||
| 99 | 090AF68000C61DCD7F000001 /* nsmenu.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsmenu.m; path = ../../src/nsmenu.m; sourceTree = "<group>"; }; | ||
| 100 | 090AF68100C61DCD7F000001 /* nsselect.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsselect.m; path = ../../src/nsselect.m; sourceTree = "<group>"; }; | ||
| 101 | 090AF68300C61DCD7F000001 /* nsterm.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsterm.m; path = ../../src/nsterm.m; sourceTree = "<group>"; }; | ||
| 102 | 3C15C02F0902D89500A8542F /* termhooks.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = termhooks.h; path = ../../src/termhooks.h; sourceTree = "<group>"; }; | ||
| 103 | 3C15C0300902D89500A8542F /* termchar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = termchar.h; path = ../../src/termchar.h; sourceTree = "<group>"; }; | ||
| 104 | 3C15C0330902D89500A8542F /* syswait.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = syswait.h; path = ../../src/syswait.h; sourceTree = "<group>"; }; | ||
| 105 | 3C15C0340902D89500A8542F /* systty.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = systty.h; path = ../../src/systty.h; sourceTree = "<group>"; }; | ||
| 106 | 3C15C0350902D89500A8542F /* systime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = systime.h; path = ../../src/systime.h; sourceTree = "<group>"; }; | ||
| 107 | 3C15C0360902D89500A8542F /* syssignal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = syssignal.h; path = ../../src/syssignal.h; sourceTree = "<group>"; }; | ||
| 108 | 3C15C0370902D89500A8542F /* sysselect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sysselect.h; path = ../../src/sysselect.h; sourceTree = "<group>"; }; | ||
| 109 | 3C15C0390902D89500A8542F /* syntax.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = syntax.h; path = ../../src/syntax.h; sourceTree = "<group>"; }; | ||
| 110 | 3C15C0410902D89500A8542F /* region-cache.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "region-cache.h"; path = "../../src/region-cache.h"; sourceTree = "<group>"; }; | ||
| 111 | 3C15C0430902D89500A8542F /* regex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = regex.h; path = ../../src/regex.h; sourceTree = "<group>"; }; | ||
| 112 | 3C15C0460902D89500A8542F /* puresize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = puresize.h; path = ../../src/puresize.h; sourceTree = "<group>"; }; | ||
| 113 | 3C15C0470902D89500A8542F /* process.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = process.h; path = ../../src/process.h; sourceTree = "<group>"; }; | ||
| 114 | 3C15C04C0902D89500A8542F /* point.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = point.h; path = ../../src/point.h; sourceTree = "<group>"; }; | ||
| 115 | 3C15C04F0902D89500A8542F /* nsgui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = nsgui.h; path = ../../src/nsgui.h; sourceTree = "<group>"; }; | ||
| 116 | 3C15C0500902D89500A8542F /* ndir.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ndir.h; path = ../../src/ndir.h; sourceTree = "<group>"; }; | ||
| 117 | 3C15C0550902D89500A8542F /* mem-limits.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "mem-limits.h"; path = "../../src/mem-limits.h"; sourceTree = "<group>"; }; | ||
| 118 | 3C15C0560902D89500A8542F /* md5.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = md5.h; path = ../../src/md5.h; sourceTree = "<group>"; }; | ||
| 119 | 3C15C05D0902D89500A8542F /* macros.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macros.h; path = ../../src/macros.h; sourceTree = "<group>"; }; | ||
| 120 | 3C15C0660902D89500A8542F /* keymap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = keymap.h; path = ../../src/keymap.h; sourceTree = "<group>"; }; | ||
| 121 | 3C15C0680902D89500A8542F /* keyboard.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = keyboard.h; path = ../../src/keyboard.h; sourceTree = "<group>"; }; | ||
| 122 | 3C15C06B0902D89500A8542F /* intervals.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = intervals.h; path = ../../src/intervals.h; sourceTree = "<group>"; }; | ||
| 123 | 3C15C06E0902D89500A8542F /* indent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = indent.h; path = ../../src/indent.h; sourceTree = "<group>"; }; | ||
| 124 | 3C15C0760902D89500A8542F /* category.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = category.h; path = ../../src/category.h; sourceTree = "<group>"; }; | ||
| 125 | 3C15C0770902D89500A8542F /* coding.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = coding.h; path = ../../src/coding.h; sourceTree = "<group>"; }; | ||
| 126 | 3C15C0780902D89500A8542F /* buffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = buffer.h; path = ../../src/buffer.h; sourceTree = "<group>"; }; | ||
| 127 | 3C15C0890902D89500A8542F /* cm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cm.h; path = ../../src/cm.h; sourceTree = "<group>"; }; | ||
| 128 | 3C15C0950902D89500A8542F /* termopts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = termopts.h; path = ../../src/termopts.h; sourceTree = "<group>"; }; | ||
| 129 | 3C15C0A00902D89500A8542F /* window.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = window.h; path = ../../src/window.h; sourceTree = "<group>"; }; | ||
| 130 | 3C15C0B80902D89500A8542F /* getpagesize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = getpagesize.h; path = ../../src/getpagesize.h; sourceTree = "<group>"; }; | ||
| 131 | 3C15C0BF0902D89500A8542F /* disptab.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = disptab.h; path = ../../src/disptab.h; sourceTree = "<group>"; }; | ||
| 132 | 3C15C0C20902D89500A8542F /* epaths.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = epaths.h; path = ../../src/epaths.h; sourceTree = "<group>"; }; | ||
| 133 | 3C15C0C50902D89500A8542F /* ccl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ccl.h; path = ../../src/ccl.h; sourceTree = "<group>"; }; | ||
| 134 | 3C15C0C70902D89500A8542F /* composite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = composite.h; path = ../../src/composite.h; sourceTree = "<group>"; }; | ||
| 135 | 3C15C0C80902D89500A8542F /* charset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = charset.h; path = ../../src/charset.h; sourceTree = "<group>"; }; | ||
| 136 | 3C15C0C90902D89500A8542F /* fontset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = fontset.h; path = ../../src/fontset.h; sourceTree = "<group>"; }; | ||
| 137 | 3C15C0D70902D89500A8542F /* commands.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = commands.h; path = ../../src/commands.h; sourceTree = "<group>"; }; | ||
| 138 | 3C15C0D90902D89500A8542F /* dispextern.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = dispextern.h; path = ../../src/dispextern.h; sourceTree = "<group>"; }; | ||
| 139 | 3C15C0DE0902D89500A8542F /* character.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = character.h; path = ../../src/character.h; sourceTree = "<group>"; }; | ||
| 140 | 3C15C0E40902D89500A8542F /* frame.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = frame.h; path = ../../src/frame.h; sourceTree = "<group>"; }; | ||
| 141 | 3C15C0E60902D89500A8542F /* atimer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = atimer.h; path = ../../src/atimer.h; sourceTree = "<group>"; }; | ||
| 142 | 3C15C0E70902D89500A8542F /* blockinput.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = blockinput.h; path = ../../src/blockinput.h; sourceTree = "<group>"; }; | ||
| 143 | 3C15C1A70902D97100A8542F /* nsimage.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = nsimage.m; path = ../../src/nsimage.m; sourceTree = "<group>"; }; | ||
| 144 | 3C3AF9C90FC10CDF001240E9 /* menu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = menu.c; path = ../../src/menu.c; sourceTree = SOURCE_ROOT; }; | ||
| 145 | 3C3AF9D40FC10D85001240E9 /* libncurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.dylib; path = /usr/lib/libncurses.dylib; sourceTree = "<absolute>"; }; | ||
| 146 | 3C4D6D660DE50D2300B20D4E /* font.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = font.c; path = ../../src/font.c; sourceTree = SOURCE_ROOT; }; | ||
| 147 | 3C4D6D670DE50D2300B20D4E /* font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = font.h; path = ../../src/font.h; sourceTree = SOURCE_ROOT; }; | ||
| 148 | 3C4D6D690DE50D2300B20D4E /* terminal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = terminal.c; path = ../../src/terminal.c; sourceTree = SOURCE_ROOT; }; | ||
| 149 | 3C4D6D710DE50D5D00B20D4E /* nsfont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = nsfont.m; path = ../../src/nsfont.m; sourceTree = SOURCE_ROOT; }; | ||
| 150 | 3C7F3C3A07EB3B05003C8A4D /* nsterm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = nsterm.h; path = ../../src/nsterm.h; sourceTree = "<group>"; }; | ||
| 151 | 3CB8E29D0E2CE73A003F3104 /* Emacs.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = Emacs.icns; path = Emacs.base/Contents/Resources/Emacs.icns; sourceTree = "<group>"; }; | ||
| 152 | 3CB8E29F0E2CE7F5003F3104 /* Credits.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = Credits.html; path = Emacs.base/Contents/Resources/Credits.html; sourceTree = "<group>"; }; | ||
| 153 | 3CB8E2A60E2CE856003F3104 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = InfoPlist.strings; sourceTree = "<group>"; }; | ||
| 154 | 3CC5434C07E2315800C271A9 /* Emacs.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Emacs.app; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 155 | 3CDCED330902E99700B2EF7E /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../../src/config.h; sourceTree = "<group>"; }; | ||
| 156 | 3CDCED550902EA8100B2EF7E /* term.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = term.c; path = ../../src/term.c; sourceTree = "<group>"; }; | ||
| 157 | 3CDCED560902EA8100B2EF7E /* sysdep.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sysdep.c; path = ../../src/sysdep.c; sourceTree = "<group>"; }; | ||
| 158 | 3CDCED570902EA8100B2EF7E /* syntax.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = syntax.c; path = ../../src/syntax.c; sourceTree = "<group>"; }; | ||
| 159 | 3CDCED590902EA8100B2EF7E /* strftime.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = strftime.c; path = ../../src/strftime.c; sourceTree = "<group>"; }; | ||
| 160 | 3CDCED5A0902EA8100B2EF7E /* sound.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sound.c; path = ../../src/sound.c; sourceTree = "<group>"; }; | ||
| 161 | 3CDCED5C0902EA8100B2EF7E /* search.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = search.c; path = ../../src/search.c; sourceTree = "<group>"; }; | ||
| 162 | 3CDCED5D0902EA8100B2EF7E /* scroll.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = scroll.c; path = ../../src/scroll.c; sourceTree = "<group>"; }; | ||
| 163 | 3CDCED5E0902EA8100B2EF7E /* region-cache.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = "region-cache.c"; path = "../../src/region-cache.c"; sourceTree = "<group>"; }; | ||
| 164 | 3CDCED5F0902EA8100B2EF7E /* regex.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = regex.c; path = ../../src/regex.c; sourceTree = "<group>"; }; | ||
| 165 | 3CDCED610902EA8100B2EF7E /* process.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = process.c; path = ../../src/process.c; sourceTree = "<group>"; }; | ||
| 166 | 3CDCED620902EA8100B2EF7E /* print.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = print.c; path = ../../src/print.c; sourceTree = "<group>"; }; | ||
| 167 | 3CDCED640902EA8100B2EF7E /* pre-crt0.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = "pre-crt0.c"; path = "../../src/pre-crt0.c"; sourceTree = "<group>"; }; | ||
| 168 | 3CDCED670902EA8100B2EF7E /* minibuf.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = minibuf.c; path = ../../src/minibuf.c; sourceTree = "<group>"; }; | ||
| 169 | 3CDCED680902EA8100B2EF7E /* md5.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../../src/md5.c; sourceTree = "<group>"; }; | ||
| 170 | 3CDCED690902EA8100B2EF7E /* marker.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = marker.c; path = ../../src/marker.c; sourceTree = "<group>"; }; | ||
| 171 | 3CDCED6D0902EA8100B2EF7E /* macros.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = macros.c; path = ../../src/macros.c; sourceTree = "<group>"; }; | ||
| 172 | 3CDCED710902EA8100B2EF7E /* lread.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lread.c; path = ../../src/lread.c; sourceTree = "<group>"; }; | ||
| 173 | 3CDCED720902EA8100B2EF7E /* lastfile.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lastfile.c; path = ../../src/lastfile.c; sourceTree = "<group>"; }; | ||
| 174 | 3CDCED730902EA8100B2EF7E /* keymap.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = keymap.c; path = ../../src/keymap.c; sourceTree = "<group>"; }; | ||
| 175 | 3CDCED740902EA8200B2EF7E /* keyboard.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = keyboard.c; path = ../../src/keyboard.c; sourceTree = "<group>"; }; | ||
| 176 | 3CDCED750902EA8200B2EF7E /* intervals.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = intervals.c; path = ../../src/intervals.c; sourceTree = "<group>"; }; | ||
| 177 | 3CDCED760902EA8200B2EF7E /* insdel.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = insdel.c; path = ../../src/insdel.c; sourceTree = "<group>"; }; | ||
| 178 | 3CDCED770902EA8200B2EF7E /* indent.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = indent.c; path = ../../src/indent.c; sourceTree = "<group>"; }; | ||
| 179 | 3CDCED780902EA8200B2EF7E /* image.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = image.c; path = ../../src/image.c; sourceTree = "<group>"; }; | ||
| 180 | 3CDCED7A0902EA8200B2EF7E /* cmds.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cmds.c; path = ../../src/cmds.c; sourceTree = "<group>"; }; | ||
| 181 | 3CDCED7B0902EA8200B2EF7E /* category.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = category.c; path = ../../src/category.c; sourceTree = "<group>"; }; | ||
| 182 | 3CDCED7C0902EA8200B2EF7E /* coding.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = coding.c; path = ../../src/coding.c; sourceTree = "<group>"; }; | ||
| 183 | 3CDCED830902EA8200B2EF7E /* unexmacosx.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = unexmacosx.c; path = ../../src/unexmacosx.c; sourceTree = "<group>"; }; | ||
| 184 | 3CDCED8B0902EA8200B2EF7E /* buffer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = buffer.c; path = ../../src/buffer.c; sourceTree = "<group>"; }; | ||
| 185 | 3CDCED8C0902EA8200B2EF7E /* character.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = character.c; path = ../../src/character.c; sourceTree = "<group>"; }; | ||
| 186 | 3CDCED920902EA8200B2EF7E /* undo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = undo.c; path = ../../src/undo.c; sourceTree = "<group>"; }; | ||
| 187 | 3CDCED940902EA8200B2EF7E /* textprop.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = textprop.c; path = ../../src/textprop.c; sourceTree = "<group>"; }; | ||
| 188 | 3CDCED950902EA8200B2EF7E /* terminfo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = terminfo.c; path = ../../src/terminfo.c; sourceTree = "<group>"; }; | ||
| 189 | 3CDCED9C0902EA8200B2EF7E /* xfaces.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = xfaces.c; path = ../../src/xfaces.c; sourceTree = "<group>"; }; | ||
| 190 | 3CDCED9D0902EA8200B2EF7E /* xdisp.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = xdisp.c; path = ../../src/xdisp.c; sourceTree = "<group>"; }; | ||
| 191 | 3CDCED9E0902EA8200B2EF7E /* window.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = window.c; path = ../../src/window.c; sourceTree = "<group>"; }; | ||
| 192 | 3CDCEDB00902EA8200B2EF7E /* doprnt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = doprnt.c; path = ../../src/doprnt.c; sourceTree = "<group>"; }; | ||
| 193 | 3CDCEDB10902EA8200B2EF7E /* doc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = doc.c; path = ../../src/doc.c; sourceTree = "<group>"; }; | ||
| 194 | 3CDCEDB20902EA8200B2EF7E /* dired.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dired.c; path = ../../src/dired.c; sourceTree = "<group>"; }; | ||
| 195 | 3CDCEDB30902EA8200B2EF7E /* data.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = data.c; path = ../../src/data.c; sourceTree = "<group>"; }; | ||
| 196 | 3CDCEDB40902EA8200B2EF7E /* callint.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = callint.c; path = ../../src/callint.c; sourceTree = "<group>"; }; | ||
| 197 | 3CDCEDB60902EA8200B2EF7E /* ccl.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ccl.c; path = ../../src/ccl.c; sourceTree = "<group>"; }; | ||
| 198 | 3CDCEDB70902EA8200B2EF7E /* fontset.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fontset.c; path = ../../src/fontset.c; sourceTree = "<group>"; }; | ||
| 199 | 3CDCEDB80902EA8200B2EF7E /* fns.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fns.c; path = ../../src/fns.c; sourceTree = "<group>"; }; | ||
| 200 | 3CDCEDB90902EA8200B2EF7E /* floatfns.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = floatfns.c; path = ../../src/floatfns.c; sourceTree = "<group>"; }; | ||
| 201 | 3CDCEDBB0902EA8200B2EF7E /* filemode.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = filemode.c; path = ../../src/filemode.c; sourceTree = "<group>"; }; | ||
| 202 | 3CDCEDBC0902EA8200B2EF7E /* filelock.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = filelock.c; path = ../../src/filelock.c; sourceTree = "<group>"; }; | ||
| 203 | 3CDCEDBD0902EA8200B2EF7E /* emacs.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = emacs.c; path = ../../src/emacs.c; sourceTree = "<group>"; }; | ||
| 204 | 3CDCEDBE0902EA8200B2EF7E /* editfns.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = editfns.c; path = ../../src/editfns.c; sourceTree = "<group>"; }; | ||
| 205 | 3CDCEDBF0902EA8200B2EF7E /* fileio.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fileio.c; path = ../../src/fileio.c; sourceTree = "<group>"; }; | ||
| 206 | 3CDCEDC00902EA8200B2EF7E /* eval.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = eval.c; path = ../../src/eval.c; sourceTree = "<group>"; }; | ||
| 207 | 3CDCEDC10902EA8200B2EF7E /* casetab.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = casetab.c; path = ../../src/casetab.c; sourceTree = "<group>"; }; | ||
| 208 | 3CDCEDC20902EA8200B2EF7E /* composite.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = composite.c; path = ../../src/composite.c; sourceTree = "<group>"; }; | ||
| 209 | 3CDCEDC30902EA8200B2EF7E /* dispnew.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dispnew.c; path = ../../src/dispnew.c; sourceTree = "<group>"; }; | ||
| 210 | 3CDCEDC40902EA8200B2EF7E /* charset.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = charset.c; path = ../../src/charset.c; sourceTree = "<group>"; }; | ||
| 211 | 3CDCEDC50902EA8200B2EF7E /* alloc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = alloc.c; path = ../../src/alloc.c; sourceTree = "<group>"; }; | ||
| 212 | 3CDCEDC60902EA8200B2EF7E /* bytecode.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = bytecode.c; path = ../../src/bytecode.c; sourceTree = "<group>"; }; | ||
| 213 | 3CDCEDC70902EA8200B2EF7E /* callproc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = callproc.c; path = ../../src/callproc.c; sourceTree = "<group>"; }; | ||
| 214 | 3CDCEDC80902EA8200B2EF7E /* cm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cm.c; path = ../../src/cm.c; sourceTree = "<group>"; }; | ||
| 215 | 3CDCEDC90902EA8200B2EF7E /* casefiddle.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = casefiddle.c; path = ../../src/casefiddle.c; sourceTree = "<group>"; }; | ||
| 216 | 3CDCEDCA0902EA8200B2EF7E /* fringe.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fringe.c; path = ../../src/fringe.c; sourceTree = "<group>"; }; | ||
| 217 | 3CDCEDCB0902EA8200B2EF7E /* frame.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = frame.c; path = ../../src/frame.c; sourceTree = "<group>"; }; | ||
| 218 | 3CDCEDCC0902EA8200B2EF7E /* chartab.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = chartab.c; path = ../../src/chartab.c; sourceTree = "<group>"; }; | ||
| 219 | 3CDCEDCD0902EA8200B2EF7E /* atimer.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = atimer.c; path = ../../src/atimer.c; sourceTree = "<group>"; }; | ||
| 220 | 3CED87260FBE696B005ACB89 /* lisp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lisp.h; path = ../../src/lisp.h; sourceTree = SOURCE_ROOT; }; | ||
| 221 | 3CED87280FBE6993005ACB89 /* menu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = menu.h; path = ../../src/menu.h; sourceTree = SOURCE_ROOT; }; | ||
| 222 | 3CED87330FC0F557005ACB89 /* temacs */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = temacs; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 223 | 3CFDFC3A08E79A6800B05918 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; | ||
| 224 | /* End PBXFileReference section */ | ||
| 225 | |||
| 226 | /* Begin PBXFrameworksBuildPhase section */ | ||
| 227 | 3CED87310FC0F557005ACB89 /* Frameworks */ = { | ||
| 228 | isa = PBXFrameworksBuildPhase; | ||
| 229 | buildActionMask = 2147483647; | ||
| 230 | files = ( | ||
| 231 | 3CED88190FC0F5B3005ACB89 /* AppKit.framework in Frameworks */, | ||
| 232 | 3C3AF9D50FC10D85001240E9 /* libncurses.dylib in Frameworks */, | ||
| 233 | ); | ||
| 234 | runOnlyForDeploymentPostprocessing = 0; | ||
| 235 | }; | ||
| 236 | /* End PBXFrameworksBuildPhase section */ | ||
| 237 | |||
| 238 | /* Begin PBXGroup section */ | ||
| 239 | 19C28FACFE9D520D11CA2CBB /* Products */ = { | ||
| 240 | isa = PBXGroup; | ||
| 241 | children = ( | ||
| 242 | 3CC5434C07E2315800C271A9 /* Emacs.app */, | ||
| 243 | 3CED87330FC0F557005ACB89 /* temacs */, | ||
| 244 | ); | ||
| 245 | name = Products; | ||
| 246 | sourceTree = "<group>"; | ||
| 247 | }; | ||
| 248 | 289FC26B00C69A287F000001 /* NeXTstep */ = { | ||
| 249 | isa = PBXGroup; | ||
| 250 | children = ( | ||
| 251 | 3C4D6D710DE50D5D00B20D4E /* nsfont.m */, | ||
| 252 | 3C15C1A70902D97100A8542F /* nsimage.m */, | ||
| 253 | 3C15C04F0902D89500A8542F /* nsgui.h */, | ||
| 254 | 3C7F3C3A07EB3B05003C8A4D /* nsterm.h */, | ||
| 255 | 090AF67E00C61DCD7F000001 /* nsfns.m */, | ||
| 256 | 090AF68000C61DCD7F000001 /* nsmenu.m */, | ||
| 257 | 090AF68100C61DCD7F000001 /* nsselect.m */, | ||
| 258 | 090AF68300C61DCD7F000001 /* nsterm.m */, | ||
| 259 | ); | ||
| 260 | name = NeXTstep; | ||
| 261 | sourceTree = "<group>"; | ||
| 262 | }; | ||
| 263 | 29B97314FDCFA39411CA2CEA /* Emacs */ = { | ||
| 264 | isa = PBXGroup; | ||
| 265 | children = ( | ||
| 266 | 289FC26B00C69A287F000001 /* NeXTstep */, | ||
| 267 | 3C15C23E0902E6B000A8542F /* emacs-hdr */, | ||
| 268 | 3CDCED4D0902EA6800B2EF7E /* emacs-src */, | ||
| 269 | 29B97317FDCFA39411CA2CEA /* Resources */, | ||
| 270 | 29B97323FDCFA39411CA2CEA /* Frameworks */, | ||
| 271 | 19C28FACFE9D520D11CA2CBB /* Products */, | ||
| 272 | ); | ||
| 273 | name = Emacs; | ||
| 274 | sourceTree = "<group>"; | ||
| 275 | }; | ||
| 276 | 29B97317FDCFA39411CA2CEA /* Resources */ = { | ||
| 277 | isa = PBXGroup; | ||
| 278 | children = ( | ||
| 279 | 3CB8E2A40E2CE856003F3104 /* English.lproj */, | ||
| 280 | 3CB8E29F0E2CE7F5003F3104 /* Credits.html */, | ||
| 281 | 739637F200C4DF3C7F000001 /* Images */, | ||
| 282 | ); | ||
| 283 | name = Resources; | ||
| 284 | sourceTree = "<group>"; | ||
| 285 | }; | ||
| 286 | 29B97323FDCFA39411CA2CEA /* Frameworks */ = { | ||
| 287 | isa = PBXGroup; | ||
| 288 | children = ( | ||
| 289 | 3C3AF9D40FC10D85001240E9 /* libncurses.dylib */, | ||
| 290 | 3CFDFC3A08E79A6800B05918 /* AppKit.framework */, | ||
| 291 | ); | ||
| 292 | name = Frameworks; | ||
| 293 | sourceTree = "<group>"; | ||
| 294 | }; | ||
| 295 | 3C15C23E0902E6B000A8542F /* emacs-hdr */ = { | ||
| 296 | isa = PBXGroup; | ||
| 297 | children = ( | ||
| 298 | 3CED87280FBE6993005ACB89 /* menu.h */, | ||
| 299 | 3CED87260FBE696B005ACB89 /* lisp.h */, | ||
| 300 | 3C4D6D670DE50D2300B20D4E /* font.h */, | ||
| 301 | 3C15C0E60902D89500A8542F /* atimer.h */, | ||
| 302 | 3C15C0E70902D89500A8542F /* blockinput.h */, | ||
| 303 | 3C15C0780902D89500A8542F /* buffer.h */, | ||
| 304 | 3C15C0760902D89500A8542F /* category.h */, | ||
| 305 | 3C15C0C50902D89500A8542F /* ccl.h */, | ||
| 306 | 3C15C0DE0902D89500A8542F /* character.h */, | ||
| 307 | 3C15C0C80902D89500A8542F /* charset.h */, | ||
| 308 | 3C15C0890902D89500A8542F /* cm.h */, | ||
| 309 | 3CDCED330902E99700B2EF7E /* config.h */, | ||
| 310 | 3C15C0770902D89500A8542F /* coding.h */, | ||
| 311 | 3C15C0D70902D89500A8542F /* commands.h */, | ||
| 312 | 3C15C0C70902D89500A8542F /* composite.h */, | ||
| 313 | 3C15C0D90902D89500A8542F /* dispextern.h */, | ||
| 314 | 3C15C0BF0902D89500A8542F /* disptab.h */, | ||
| 315 | 3C15C0C20902D89500A8542F /* epaths.h */, | ||
| 316 | 3C15C0C90902D89500A8542F /* fontset.h */, | ||
| 317 | 3C15C0E40902D89500A8542F /* frame.h */, | ||
| 318 | 3C15C0B80902D89500A8542F /* getpagesize.h */, | ||
| 319 | 3C15C06E0902D89500A8542F /* indent.h */, | ||
| 320 | 3C15C06B0902D89500A8542F /* intervals.h */, | ||
| 321 | 3C15C0660902D89500A8542F /* keymap.h */, | ||
| 322 | 3C15C0680902D89500A8542F /* keyboard.h */, | ||
| 323 | 3C15C05D0902D89500A8542F /* macros.h */, | ||
| 324 | 3C15C0560902D89500A8542F /* md5.h */, | ||
| 325 | 3C15C0550902D89500A8542F /* mem-limits.h */, | ||
| 326 | 3C15C0500902D89500A8542F /* ndir.h */, | ||
| 327 | 3C15C04C0902D89500A8542F /* point.h */, | ||
| 328 | 3C15C0470902D89500A8542F /* process.h */, | ||
| 329 | 3C15C0460902D89500A8542F /* puresize.h */, | ||
| 330 | 3C15C0430902D89500A8542F /* regex.h */, | ||
| 331 | 3C15C0410902D89500A8542F /* region-cache.h */, | ||
| 332 | 3C15C0390902D89500A8542F /* syntax.h */, | ||
| 333 | 3C15C0370902D89500A8542F /* sysselect.h */, | ||
| 334 | 3C15C0330902D89500A8542F /* syswait.h */, | ||
| 335 | 3C15C0360902D89500A8542F /* syssignal.h */, | ||
| 336 | 3C15C0350902D89500A8542F /* systime.h */, | ||
| 337 | 3C15C0340902D89500A8542F /* systty.h */, | ||
| 338 | 3C15C0300902D89500A8542F /* termchar.h */, | ||
| 339 | 3C15C02F0902D89500A8542F /* termhooks.h */, | ||
| 340 | 3C15C0950902D89500A8542F /* termopts.h */, | ||
| 341 | 3C15C0A00902D89500A8542F /* window.h */, | ||
| 342 | ); | ||
| 343 | name = "emacs-hdr"; | ||
| 344 | sourceTree = "<group>"; | ||
| 345 | }; | ||
| 346 | 3CB8E2A40E2CE856003F3104 /* English.lproj */ = { | ||
| 347 | isa = PBXGroup; | ||
| 348 | children = ( | ||
| 349 | 3CB8E2A50E2CE856003F3104 /* InfoPlist.strings */, | ||
| 350 | ); | ||
| 351 | name = English.lproj; | ||
| 352 | path = Emacs.base/Contents/Resources/English.lproj; | ||
| 353 | sourceTree = "<group>"; | ||
| 354 | }; | ||
| 355 | 3CDCED4D0902EA6800B2EF7E /* emacs-src */ = { | ||
| 356 | isa = PBXGroup; | ||
| 357 | children = ( | ||
| 358 | 3C3AF9C90FC10CDF001240E9 /* menu.c */, | ||
| 359 | 3C4D6D660DE50D2300B20D4E /* font.c */, | ||
| 360 | 3C4D6D690DE50D2300B20D4E /* terminal.c */, | ||
| 361 | 3CDCED550902EA8100B2EF7E /* term.c */, | ||
| 362 | 3CDCED560902EA8100B2EF7E /* sysdep.c */, | ||
| 363 | 3CDCED570902EA8100B2EF7E /* syntax.c */, | ||
| 364 | 3CDCED590902EA8100B2EF7E /* strftime.c */, | ||
| 365 | 3CDCED5A0902EA8100B2EF7E /* sound.c */, | ||
| 366 | 3CDCED5C0902EA8100B2EF7E /* search.c */, | ||
| 367 | 3CDCED5D0902EA8100B2EF7E /* scroll.c */, | ||
| 368 | 3CDCED5E0902EA8100B2EF7E /* region-cache.c */, | ||
| 369 | 3CDCED5F0902EA8100B2EF7E /* regex.c */, | ||
| 370 | 3CDCED610902EA8100B2EF7E /* process.c */, | ||
| 371 | 3CDCED620902EA8100B2EF7E /* print.c */, | ||
| 372 | 3CDCED640902EA8100B2EF7E /* pre-crt0.c */, | ||
| 373 | 3CDCED670902EA8100B2EF7E /* minibuf.c */, | ||
| 374 | 3CDCED680902EA8100B2EF7E /* md5.c */, | ||
| 375 | 3CDCED690902EA8100B2EF7E /* marker.c */, | ||
| 376 | 3CDCED6D0902EA8100B2EF7E /* macros.c */, | ||
| 377 | 3CDCED710902EA8100B2EF7E /* lread.c */, | ||
| 378 | 3CDCED720902EA8100B2EF7E /* lastfile.c */, | ||
| 379 | 3CDCED730902EA8100B2EF7E /* keymap.c */, | ||
| 380 | 3CDCED740902EA8200B2EF7E /* keyboard.c */, | ||
| 381 | 3CDCED750902EA8200B2EF7E /* intervals.c */, | ||
| 382 | 3CDCED760902EA8200B2EF7E /* insdel.c */, | ||
| 383 | 3CDCED770902EA8200B2EF7E /* indent.c */, | ||
| 384 | 3CDCED780902EA8200B2EF7E /* image.c */, | ||
| 385 | 3CDCED7A0902EA8200B2EF7E /* cmds.c */, | ||
| 386 | 3CDCED7B0902EA8200B2EF7E /* category.c */, | ||
| 387 | 3CDCED7C0902EA8200B2EF7E /* coding.c */, | ||
| 388 | 3CDCED830902EA8200B2EF7E /* unexmacosx.c */, | ||
| 389 | 3CDCED8B0902EA8200B2EF7E /* buffer.c */, | ||
| 390 | 3CDCED8C0902EA8200B2EF7E /* character.c */, | ||
| 391 | 3CDCED920902EA8200B2EF7E /* undo.c */, | ||
| 392 | 3CDCED940902EA8200B2EF7E /* textprop.c */, | ||
| 393 | 3CDCED950902EA8200B2EF7E /* terminfo.c */, | ||
| 394 | 3CDCED9C0902EA8200B2EF7E /* xfaces.c */, | ||
| 395 | 3CDCED9D0902EA8200B2EF7E /* xdisp.c */, | ||
| 396 | 3CDCED9E0902EA8200B2EF7E /* window.c */, | ||
| 397 | 3CDCEDB00902EA8200B2EF7E /* doprnt.c */, | ||
| 398 | 3CDCEDB10902EA8200B2EF7E /* doc.c */, | ||
| 399 | 3CDCEDB20902EA8200B2EF7E /* dired.c */, | ||
| 400 | 3CDCEDB30902EA8200B2EF7E /* data.c */, | ||
| 401 | 3CDCEDB40902EA8200B2EF7E /* callint.c */, | ||
| 402 | 3CDCEDB60902EA8200B2EF7E /* ccl.c */, | ||
| 403 | 3CDCEDB70902EA8200B2EF7E /* fontset.c */, | ||
| 404 | 3CDCEDB80902EA8200B2EF7E /* fns.c */, | ||
| 405 | 3CDCEDB90902EA8200B2EF7E /* floatfns.c */, | ||
| 406 | 3CDCEDBB0902EA8200B2EF7E /* filemode.c */, | ||
| 407 | 3CDCEDBC0902EA8200B2EF7E /* filelock.c */, | ||
| 408 | 3CDCEDBD0902EA8200B2EF7E /* emacs.c */, | ||
| 409 | 3CDCEDBE0902EA8200B2EF7E /* editfns.c */, | ||
| 410 | 3CDCEDBF0902EA8200B2EF7E /* fileio.c */, | ||
| 411 | 3CDCEDC00902EA8200B2EF7E /* eval.c */, | ||
| 412 | 3CDCEDC10902EA8200B2EF7E /* casetab.c */, | ||
| 413 | 3CDCEDC20902EA8200B2EF7E /* composite.c */, | ||
| 414 | 3CDCEDC30902EA8200B2EF7E /* dispnew.c */, | ||
| 415 | 3CDCEDC40902EA8200B2EF7E /* charset.c */, | ||
| 416 | 3CDCEDC50902EA8200B2EF7E /* alloc.c */, | ||
| 417 | 3CDCEDC60902EA8200B2EF7E /* bytecode.c */, | ||
| 418 | 3CDCEDC70902EA8200B2EF7E /* callproc.c */, | ||
| 419 | 3CDCEDC80902EA8200B2EF7E /* cm.c */, | ||
| 420 | 3CDCEDC90902EA8200B2EF7E /* casefiddle.c */, | ||
| 421 | 3CDCEDCA0902EA8200B2EF7E /* fringe.c */, | ||
| 422 | 3CDCEDCB0902EA8200B2EF7E /* frame.c */, | ||
| 423 | 3CDCEDCC0902EA8200B2EF7E /* chartab.c */, | ||
| 424 | 3CDCEDCD0902EA8200B2EF7E /* atimer.c */, | ||
| 425 | ); | ||
| 426 | name = "emacs-src"; | ||
| 427 | sourceTree = "<group>"; | ||
| 428 | }; | ||
| 429 | 739637F200C4DF3C7F000001 /* Images */ = { | ||
| 430 | isa = PBXGroup; | ||
| 431 | children = ( | ||
| 432 | 3CB8E29D0E2CE73A003F3104 /* Emacs.icns */, | ||
| 433 | ); | ||
| 434 | name = Images; | ||
| 435 | sourceTree = "<group>"; | ||
| 436 | }; | ||
| 437 | /* End PBXGroup section */ | ||
| 438 | |||
| 439 | /* Begin PBXNativeTarget section */ | ||
| 440 | 3CC542FE07E2315800C271A9 /* Emacs */ = { | ||
| 441 | isa = PBXNativeTarget; | ||
| 442 | buildConfigurationList = 3CA115970C825A540007AFC2 /* Build configuration list for PBXNativeTarget "Emacs" */; | ||
| 443 | buildPhases = ( | ||
| 444 | 3CED88240FC0FE7C005ACB89 /* ShellScript */, | ||
| 445 | 3CED883D0FC0FF6E005ACB89 /* ShellScript */, | ||
| 446 | ); | ||
| 447 | buildRules = ( | ||
| 448 | ); | ||
| 449 | dependencies = ( | ||
| 450 | 3CED88230FC0FE5C005ACB89 /* PBXTargetDependency */, | ||
| 451 | ); | ||
| 452 | name = Emacs; | ||
| 453 | productInstallPath = "$(HOME)/Applications"; | ||
| 454 | productName = Emacs; | ||
| 455 | productReference = 3CC5434C07E2315800C271A9 /* Emacs.app */; | ||
| 456 | productType = "com.apple.product-type.application"; | ||
| 457 | }; | ||
| 458 | 3CED87320FC0F557005ACB89 /* temacs */ = { | ||
| 459 | isa = PBXNativeTarget; | ||
| 460 | buildConfigurationList = 3CED87350FC0F576005ACB89 /* Build configuration list for PBXNativeTarget "temacs" */; | ||
| 461 | buildPhases = ( | ||
| 462 | 3CED87300FC0F557005ACB89 /* Sources */, | ||
| 463 | 3CED87310FC0F557005ACB89 /* Frameworks */, | ||
| 464 | 3CED88460FC100EC005ACB89 /* ShellScript */, | ||
| 465 | ); | ||
| 466 | buildRules = ( | ||
| 467 | ); | ||
| 468 | dependencies = ( | ||
| 469 | ); | ||
| 470 | name = temacs; | ||
| 471 | productName = "emacs-bin"; | ||
| 472 | productReference = 3CED87330FC0F557005ACB89 /* temacs */; | ||
| 473 | productType = "com.apple.product-type.tool"; | ||
| 474 | }; | ||
| 475 | /* End PBXNativeTarget section */ | ||
| 476 | |||
| 477 | /* Begin PBXProject section */ | ||
| 478 | 29B97313FDCFA39411CA2CEA /* Project object */ = { | ||
| 479 | isa = PBXProject; | ||
| 480 | buildConfigurationList = 3CA1159B0C825A540007AFC2 /* Build configuration list for PBXProject "Emacs" */; | ||
| 481 | hasScannedForEncodings = 1; | ||
| 482 | mainGroup = 29B97314FDCFA39411CA2CEA /* Emacs */; | ||
| 483 | projectDirPath = ""; | ||
| 484 | projectRoot = ../..; | ||
| 485 | targets = ( | ||
| 486 | 3CC542FE07E2315800C271A9 /* Emacs */, | ||
| 487 | 3CED87320FC0F557005ACB89 /* temacs */, | ||
| 488 | ); | ||
| 489 | }; | ||
| 490 | /* End PBXProject section */ | ||
| 491 | |||
| 492 | /* Begin PBXShellScriptBuildPhase section */ | ||
| 493 | 3CED88240FC0FE7C005ACB89 /* ShellScript */ = { | ||
| 494 | isa = PBXShellScriptBuildPhase; | ||
| 495 | buildActionMask = 2147483647; | ||
| 496 | files = ( | ||
| 497 | ); | ||
| 498 | inputPaths = ( | ||
| 499 | ); | ||
| 500 | outputPaths = ( | ||
| 501 | ); | ||
| 502 | runOnlyForDeploymentPostprocessing = 0; | ||
| 503 | shellPath = /bin/sh; | ||
| 504 | shellScript = "# This script sets up the Emacs.app bundle by copying from Cocoa/Emacs.base,\n# and copying the binary emacs. It runs the ns-app target in src/Makefile.\n# This depends on emacs target, so temacs resulting from previous step is\n# dumped into emacs.\n\ncd ../../src\n\nmake ns-app\n"; | ||
| 505 | }; | ||
| 506 | 3CED883D0FC0FF6E005ACB89 /* ShellScript */ = { | ||
| 507 | isa = PBXShellScriptBuildPhase; | ||
| 508 | buildActionMask = 12; | ||
| 509 | files = ( | ||
| 510 | ); | ||
| 511 | inputPaths = ( | ||
| 512 | ); | ||
| 513 | outputPaths = ( | ||
| 514 | ); | ||
| 515 | runOnlyForDeploymentPostprocessing = 0; | ||
| 516 | shellPath = /bin/sh; | ||
| 517 | shellScript = "# This script copies the lisp and other files into the bundle\n# (if self-contained configuration was selected at configure time),\n# or the install location (otherwise).\n\n# Xcode was supposed to make this check based on input/output files,\n# but it didn't work for some reason, so run every time and do it ourselves.\nif [ -x ../Emacs.app/Contents/Resources/lisp ]; then\n\texit\nfi\n\ncd ../..\nmake install\nln -sf $BUILD_ROOT/../../Emacs.app $BUILT_PRODUCTS_DIR/Emacs.app\n"; | ||
| 518 | }; | ||
| 519 | 3CED88460FC100EC005ACB89 /* ShellScript */ = { | ||
| 520 | isa = PBXShellScriptBuildPhase; | ||
| 521 | buildActionMask = 2147483647; | ||
| 522 | files = ( | ||
| 523 | ); | ||
| 524 | inputPaths = ( | ||
| 525 | "$(BUILT_PRODUCTS_DIR)/temacs", | ||
| 526 | ); | ||
| 527 | outputPaths = ( | ||
| 528 | ../../src/temacs, | ||
| 529 | ); | ||
| 530 | runOnlyForDeploymentPostprocessing = 0; | ||
| 531 | shellPath = /bin/sh; | ||
| 532 | shellScript = "# Move the build results to emacs src dir so scripts in Emacs target invoking\n# make operations can use them.\n# *.o files included because make-docfile uses object files for some reason\n\ncp -f ${OBJECT_FILE_DIR_normal}/${NATIVE_ARCH_ACTUAL}/*.o ../../src\ncp -f ${BUILT_PRODUCTS_DIR}/temacs ../../src"; | ||
| 533 | }; | ||
| 534 | /* End PBXShellScriptBuildPhase section */ | ||
| 535 | |||
| 536 | /* Begin PBXSourcesBuildPhase section */ | ||
| 537 | 3CED87300FC0F557005ACB89 /* Sources */ = { | ||
| 538 | isa = PBXSourcesBuildPhase; | ||
| 539 | buildActionMask = 2147483647; | ||
| 540 | files = ( | ||
| 541 | 3CED876D0FC0F581005ACB89 /* pre-crt0.c in Sources */, | ||
| 542 | 3CED87390FC0F581005ACB89 /* alloc.c in Sources */, | ||
| 543 | 3CED873A0FC0F581005ACB89 /* atimer.c in Sources */, | ||
| 544 | 3CED873B0FC0F581005ACB89 /* buffer.c in Sources */, | ||
| 545 | 3CED873C0FC0F581005ACB89 /* bytecode.c in Sources */, | ||
| 546 | 3CED873D0FC0F581005ACB89 /* callint.c in Sources */, | ||
| 547 | 3CED873E0FC0F581005ACB89 /* callproc.c in Sources */, | ||
| 548 | 3CED873F0FC0F581005ACB89 /* casefiddle.c in Sources */, | ||
| 549 | 3CED87400FC0F581005ACB89 /* casetab.c in Sources */, | ||
| 550 | 3CED87410FC0F581005ACB89 /* category.c in Sources */, | ||
| 551 | 3CED87420FC0F581005ACB89 /* ccl.c in Sources */, | ||
| 552 | 3CED87430FC0F581005ACB89 /* character.c in Sources */, | ||
| 553 | 3CED87440FC0F581005ACB89 /* charset.c in Sources */, | ||
| 554 | 3CED87450FC0F581005ACB89 /* chartab.c in Sources */, | ||
| 555 | 3CED87460FC0F581005ACB89 /* cm.c in Sources */, | ||
| 556 | 3CED87470FC0F581005ACB89 /* cmds.c in Sources */, | ||
| 557 | 3CED87480FC0F581005ACB89 /* coding.c in Sources */, | ||
| 558 | 3CED87490FC0F581005ACB89 /* composite.c in Sources */, | ||
| 559 | 3CED874A0FC0F581005ACB89 /* data.c in Sources */, | ||
| 560 | 3CED874B0FC0F581005ACB89 /* dired.c in Sources */, | ||
| 561 | 3CED874C0FC0F581005ACB89 /* dispnew.c in Sources */, | ||
| 562 | 3CED874D0FC0F581005ACB89 /* doc.c in Sources */, | ||
| 563 | 3CED874E0FC0F581005ACB89 /* doprnt.c in Sources */, | ||
| 564 | 3CED874F0FC0F581005ACB89 /* editfns.c in Sources */, | ||
| 565 | 3CED87500FC0F581005ACB89 /* emacs.c in Sources */, | ||
| 566 | 3CED87510FC0F581005ACB89 /* eval.c in Sources */, | ||
| 567 | 3CED87520FC0F581005ACB89 /* fileio.c in Sources */, | ||
| 568 | 3CED87530FC0F581005ACB89 /* filelock.c in Sources */, | ||
| 569 | 3CED87540FC0F581005ACB89 /* filemode.c in Sources */, | ||
| 570 | 3CED87550FC0F581005ACB89 /* floatfns.c in Sources */, | ||
| 571 | 3CED87560FC0F581005ACB89 /* fns.c in Sources */, | ||
| 572 | 3CED87570FC0F581005ACB89 /* font.c in Sources */, | ||
| 573 | 3CED87580FC0F581005ACB89 /* fontset.c in Sources */, | ||
| 574 | 3CED87590FC0F581005ACB89 /* frame.c in Sources */, | ||
| 575 | 3CED875A0FC0F581005ACB89 /* fringe.c in Sources */, | ||
| 576 | 3CED875B0FC0F581005ACB89 /* image.c in Sources */, | ||
| 577 | 3CED875C0FC0F581005ACB89 /* indent.c in Sources */, | ||
| 578 | 3CED875D0FC0F581005ACB89 /* insdel.c in Sources */, | ||
| 579 | 3CED875E0FC0F581005ACB89 /* intervals.c in Sources */, | ||
| 580 | 3CED875F0FC0F581005ACB89 /* keyboard.c in Sources */, | ||
| 581 | 3CED87600FC0F581005ACB89 /* keymap.c in Sources */, | ||
| 582 | 3CED87620FC0F581005ACB89 /* lread.c in Sources */, | ||
| 583 | 3CED87630FC0F581005ACB89 /* macros.c in Sources */, | ||
| 584 | 3CED87640FC0F581005ACB89 /* marker.c in Sources */, | ||
| 585 | 3CED87650FC0F581005ACB89 /* md5.c in Sources */, | ||
| 586 | 3C3AF9CA0FC10CDF001240E9 /* menu.c in Sources */, | ||
| 587 | 3CED87660FC0F581005ACB89 /* minibuf.c in Sources */, | ||
| 588 | 3CED87670FC0F581005ACB89 /* nsfns.m in Sources */, | ||
| 589 | 3CED87680FC0F581005ACB89 /* nsfont.m in Sources */, | ||
| 590 | 3CED87690FC0F581005ACB89 /* nsimage.m in Sources */, | ||
| 591 | 3CED876A0FC0F581005ACB89 /* nsmenu.m in Sources */, | ||
| 592 | 3CED876B0FC0F581005ACB89 /* nsselect.m in Sources */, | ||
| 593 | 3CED876C0FC0F581005ACB89 /* nsterm.m in Sources */, | ||
| 594 | 3CED876E0FC0F581005ACB89 /* print.c in Sources */, | ||
| 595 | 3CED876F0FC0F581005ACB89 /* process.c in Sources */, | ||
| 596 | 3CED87700FC0F581005ACB89 /* regex.c in Sources */, | ||
| 597 | 3CED87710FC0F581005ACB89 /* region-cache.c in Sources */, | ||
| 598 | 3CED87720FC0F581005ACB89 /* scroll.c in Sources */, | ||
| 599 | 3CED87730FC0F581005ACB89 /* search.c in Sources */, | ||
| 600 | 3CED87740FC0F581005ACB89 /* sound.c in Sources */, | ||
| 601 | 3CED87750FC0F581005ACB89 /* strftime.c in Sources */, | ||
| 602 | 3CED87760FC0F581005ACB89 /* syntax.c in Sources */, | ||
| 603 | 3CED87770FC0F581005ACB89 /* sysdep.c in Sources */, | ||
| 604 | 3CED87780FC0F581005ACB89 /* term.c in Sources */, | ||
| 605 | 3CED877A0FC0F581005ACB89 /* terminal.c in Sources */, | ||
| 606 | 3CED877B0FC0F581005ACB89 /* terminfo.c in Sources */, | ||
| 607 | 3CED877C0FC0F581005ACB89 /* textprop.c in Sources */, | ||
| 608 | 3CED877E0FC0F581005ACB89 /* undo.c in Sources */, | ||
| 609 | 3CED877F0FC0F581005ACB89 /* unexmacosx.c in Sources */, | ||
| 610 | 3CED87800FC0F581005ACB89 /* window.c in Sources */, | ||
| 611 | 3CED87810FC0F581005ACB89 /* xdisp.c in Sources */, | ||
| 612 | 3CED87820FC0F581005ACB89 /* xfaces.c in Sources */, | ||
| 613 | 3CED87610FC0F581005ACB89 /* lastfile.c in Sources */, | ||
| 614 | ); | ||
| 615 | runOnlyForDeploymentPostprocessing = 0; | ||
| 616 | }; | ||
| 617 | /* End PBXSourcesBuildPhase section */ | ||
| 618 | |||
| 619 | /* Begin PBXTargetDependency section */ | ||
| 620 | 3CED88230FC0FE5C005ACB89 /* PBXTargetDependency */ = { | ||
| 621 | isa = PBXTargetDependency; | ||
| 622 | target = 3CED87320FC0F557005ACB89 /* temacs */; | ||
| 623 | targetProxy = 3CED88220FC0FE5C005ACB89 /* PBXContainerItemProxy */; | ||
| 624 | }; | ||
| 625 | /* End PBXTargetDependency section */ | ||
| 626 | |||
| 627 | /* Begin PBXVariantGroup section */ | ||
| 628 | 3CB8E2A50E2CE856003F3104 /* InfoPlist.strings */ = { | ||
| 629 | isa = PBXVariantGroup; | ||
| 630 | children = ( | ||
| 631 | 3CB8E2A60E2CE856003F3104 /* English */, | ||
| 632 | ); | ||
| 633 | name = InfoPlist.strings; | ||
| 634 | sourceTree = "<group>"; | ||
| 635 | }; | ||
| 636 | /* End PBXVariantGroup section */ | ||
| 637 | |||
| 638 | /* Begin XCBuildConfiguration section */ | ||
| 639 | 3CA115980C825A540007AFC2 /* Development */ = { | ||
| 640 | isa = XCBuildConfiguration; | ||
| 641 | buildSettings = { | ||
| 642 | PRODUCT_NAME = Emacs; | ||
| 643 | WRAPPER_EXTENSION = app; | ||
| 644 | }; | ||
| 645 | name = Development; | ||
| 646 | }; | ||
| 647 | 3CA115990C825A540007AFC2 /* Deployment */ = { | ||
| 648 | isa = XCBuildConfiguration; | ||
| 649 | buildSettings = { | ||
| 650 | PRODUCT_NAME = Emacs; | ||
| 651 | WRAPPER_EXTENSION = app; | ||
| 652 | }; | ||
| 653 | name = Deployment; | ||
| 654 | }; | ||
| 655 | 3CA1159A0C825A540007AFC2 /* Default */ = { | ||
| 656 | isa = XCBuildConfiguration; | ||
| 657 | buildSettings = { | ||
| 658 | PRODUCT_NAME = Emacs; | ||
| 659 | WRAPPER_EXTENSION = app; | ||
| 660 | }; | ||
| 661 | name = Default; | ||
| 662 | }; | ||
| 663 | 3CA1159C0C825A540007AFC2 /* Development */ = { | ||
| 664 | isa = XCBuildConfiguration; | ||
| 665 | buildSettings = { | ||
| 666 | MACOSX_DEPLOYMENT_TARGET = ""; | ||
| 667 | SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | ||
| 668 | }; | ||
| 669 | name = Development; | ||
| 670 | }; | ||
| 671 | 3CA1159D0C825A540007AFC2 /* Deployment */ = { | ||
| 672 | isa = XCBuildConfiguration; | ||
| 673 | buildSettings = { | ||
| 674 | MACOSX_DEPLOYMENT_TARGET = ""; | ||
| 675 | SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | ||
| 676 | }; | ||
| 677 | name = Deployment; | ||
| 678 | }; | ||
| 679 | 3CA1159E0C825A540007AFC2 /* Default */ = { | ||
| 680 | isa = XCBuildConfiguration; | ||
| 681 | buildSettings = { | ||
| 682 | MACOSX_DEPLOYMENT_TARGET = ""; | ||
| 683 | SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | ||
| 684 | }; | ||
| 685 | name = Default; | ||
| 686 | }; | ||
| 687 | 3CED87360FC0F576005ACB89 /* Development */ = { | ||
| 688 | isa = XCBuildConfiguration; | ||
| 689 | buildSettings = { | ||
| 690 | COPY_PHASE_STRIP = NO; | ||
| 691 | GCC_DYNAMIC_NO_PIC = NO; | ||
| 692 | GCC_ENABLE_FIX_AND_CONTINUE = NO; | ||
| 693 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | ||
| 694 | GCC_MODEL_TUNING = G5; | ||
| 695 | GCC_OPTIMIZATION_LEVEL = 0; | ||
| 696 | GCC_PREPROCESSOR_DEFINITIONS = ( | ||
| 697 | emacs, | ||
| 698 | temacs, | ||
| 699 | HAVE_CONFIG_H, | ||
| 700 | ); | ||
| 701 | OTHER_LDFLAGS = ( | ||
| 702 | "-Xlinker", | ||
| 703 | "-headerpad", | ||
| 704 | "-Xlinker", | ||
| 705 | 6C8, | ||
| 706 | ); | ||
| 707 | PREBINDING = NO; | ||
| 708 | PRODUCT_NAME = temacs; | ||
| 709 | WARNING_CFLAGS = "-Wno-pointer-sign"; | ||
| 710 | ZERO_LINK = NO; | ||
| 711 | }; | ||
| 712 | name = Development; | ||
| 713 | }; | ||
| 714 | 3CED87370FC0F576005ACB89 /* Deployment */ = { | ||
| 715 | isa = XCBuildConfiguration; | ||
| 716 | buildSettings = { | ||
| 717 | COPY_PHASE_STRIP = YES; | ||
| 718 | GCC_ENABLE_FIX_AND_CONTINUE = NO; | ||
| 719 | GCC_GENERATE_DEBUGGING_SYMBOLS = NO; | ||
| 720 | GCC_MODEL_TUNING = G5; | ||
| 721 | GCC_PREPROCESSOR_DEFINITIONS = ( | ||
| 722 | emacs, | ||
| 723 | temacs, | ||
| 724 | HAVE_CONFIG_H, | ||
| 725 | ); | ||
| 726 | OTHER_LDFLAGS = ( | ||
| 727 | "-Xlinker", | ||
| 728 | "-headerpad", | ||
| 729 | "-Xlinker", | ||
| 730 | 6C8, | ||
| 731 | ); | ||
| 732 | PREBINDING = NO; | ||
| 733 | PRODUCT_NAME = temacs; | ||
| 734 | WARNING_CFLAGS = "-Wno-pointer-sign"; | ||
| 735 | ZERO_LINK = NO; | ||
| 736 | }; | ||
| 737 | name = Deployment; | ||
| 738 | }; | ||
| 739 | 3CED87380FC0F576005ACB89 /* Default */ = { | ||
| 740 | isa = XCBuildConfiguration; | ||
| 741 | buildSettings = { | ||
| 742 | GCC_ENABLE_FIX_AND_CONTINUE = YES; | ||
| 743 | GCC_MODEL_TUNING = G5; | ||
| 744 | GCC_PREPROCESSOR_DEFINITIONS = ( | ||
| 745 | emacs, | ||
| 746 | temacs, | ||
| 747 | HAVE_CONFIG_H, | ||
| 748 | ); | ||
| 749 | OTHER_LDFLAGS = ( | ||
| 750 | "-Xlinker", | ||
| 751 | "-headerpad", | ||
| 752 | "-Xlinker", | ||
| 753 | 6C8, | ||
| 754 | ); | ||
| 755 | PREBINDING = NO; | ||
| 756 | PRODUCT_NAME = temacs; | ||
| 757 | WARNING_CFLAGS = "-Wno-pointer-sign"; | ||
| 758 | ZERO_LINK = YES; | ||
| 759 | }; | ||
| 760 | name = Default; | ||
| 761 | }; | ||
| 762 | /* End XCBuildConfiguration section */ | ||
| 763 | |||
| 764 | /* Begin XCConfigurationList section */ | ||
| 765 | 3CA115970C825A540007AFC2 /* Build configuration list for PBXNativeTarget "Emacs" */ = { | ||
| 766 | isa = XCConfigurationList; | ||
| 767 | buildConfigurations = ( | ||
| 768 | 3CA115980C825A540007AFC2 /* Development */, | ||
| 769 | 3CA115990C825A540007AFC2 /* Deployment */, | ||
| 770 | 3CA1159A0C825A540007AFC2 /* Default */, | ||
| 771 | ); | ||
| 772 | defaultConfigurationIsVisible = 0; | ||
| 773 | defaultConfigurationName = Default; | ||
| 774 | }; | ||
| 775 | 3CA1159B0C825A540007AFC2 /* Build configuration list for PBXProject "Emacs" */ = { | ||
| 776 | isa = XCConfigurationList; | ||
| 777 | buildConfigurations = ( | ||
| 778 | 3CA1159C0C825A540007AFC2 /* Development */, | ||
| 779 | 3CA1159D0C825A540007AFC2 /* Deployment */, | ||
| 780 | 3CA1159E0C825A540007AFC2 /* Default */, | ||
| 781 | ); | ||
| 782 | defaultConfigurationIsVisible = 0; | ||
| 783 | defaultConfigurationName = Default; | ||
| 784 | }; | ||
| 785 | 3CED87350FC0F576005ACB89 /* Build configuration list for PBXNativeTarget "temacs" */ = { | ||
| 786 | isa = XCConfigurationList; | ||
| 787 | buildConfigurations = ( | ||
| 788 | 3CED87360FC0F576005ACB89 /* Development */, | ||
| 789 | 3CED87370FC0F576005ACB89 /* Deployment */, | ||
| 790 | 3CED87380FC0F576005ACB89 /* Default */, | ||
| 791 | ); | ||
| 792 | defaultConfigurationIsVisible = 0; | ||
| 793 | defaultConfigurationName = Default; | ||
| 794 | }; | ||
| 795 | /* End XCConfigurationList section */ | ||
| 796 | }; | ||
| 797 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; | ||
| 798 | } | ||
diff --git a/nextstep/INSTALL b/nextstep/INSTALL index 5bc59c6c6fa..2a3e1631986 100644 --- a/nextstep/INSTALL +++ b/nextstep/INSTALL | |||
| @@ -30,27 +30,6 @@ Installation | |||
| 30 | Move nextstep/Emacs.app to any desired install location. | 30 | Move nextstep/Emacs.app to any desired install location. |
| 31 | 31 | ||
| 32 | 32 | ||
| 33 | Xcode | ||
| 34 | ----- | ||
| 35 | |||
| 36 | On OS X Emacs can be built under Xcode. You need to run "configure" | ||
| 37 | as described above first. There are two targets: 'temacs' and 'Emacs.app'. | ||
| 38 | |||
| 39 | 'temacs' will build the undumped emacs executable, and copy it and the | ||
| 40 | *.o files to the src directory. These steps are necessary so the next target | ||
| 41 | works. | ||
| 42 | |||
| 43 | 'Emacs.app' uses "Run Script" build phases to assemble the Emacs.app bundle. | ||
| 44 | It uses the 'ns-app' target in src/Makefile together with the 'install' target | ||
| 45 | in the top level Makefile. | ||
| 46 | |||
| 47 | The source files under the temacs target must list "pre-crt0" first | ||
| 48 | and "lastfile" last, so that dumping works. | ||
| 49 | |||
| 50 | (Note, under GNUstep, you CAN'T use ProjectCenter, since PC cannot work | ||
| 51 | with files outside of its project directory.) | ||
| 52 | |||
| 53 | |||
| 54 | Distributions and Universal Binaries | 33 | Distributions and Universal Binaries |
| 55 | ------------------------------------ | 34 | ------------------------------------ |
| 56 | 35 | ||
diff --git a/nt/ChangeLog b/nt/ChangeLog index 8c2ca056aa1..fb3a168ebfe 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-10-19 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * config.nt (HAVE_TZNAME, HAVE_DECL_TZNAME): Define. | ||
| 4 | (Bug#9794) (Bug#641) | ||
| 5 | |||
| 1 | 2011-09-04 Paul Eggert <eggert@cs.ucla.edu> | 6 | 2011-09-04 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 7 | ||
| 3 | * config.nt (HAVE_SNPRINTF): New macro. | 8 | * config.nt (HAVE_SNPRINTF): New macro. |
diff --git a/nt/config.nt b/nt/config.nt index 923143cf13e..7ab89add0fc 100644 --- a/nt/config.nt +++ b/nt/config.nt | |||
| @@ -187,7 +187,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 187 | 187 | ||
| 188 | #undef TM_IN_SYS_TIME | 188 | #undef TM_IN_SYS_TIME |
| 189 | #undef HAVE_TM_ZONE | 189 | #undef HAVE_TM_ZONE |
| 190 | #undef HAVE_TZNAME | 190 | |
| 191 | /* Define to 1 if you don't have `tm_zone' but do have the external array | ||
| 192 | `tzname'. */ | ||
| 193 | #define HAVE_TZNAME 1 | ||
| 194 | |||
| 195 | /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. | ||
| 196 | */ | ||
| 197 | #define HAVE_DECL_TZNAME 1 | ||
| 191 | 198 | ||
| 192 | #undef const | 199 | #undef const |
| 193 | 200 | ||
diff --git a/src/ChangeLog b/src/ChangeLog index 7b21a47d59a..34914c96c6c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | 2011-10-17 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-10-23 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | Fix integer width and related bugs. | 3 | Fix integer width and related bugs. |
| 4 | * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): | 4 | * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): |
| @@ -789,6 +789,83 @@ | |||
| 789 | rather than rolling our own approximation. | 789 | rather than rolling our own approximation. |
| 790 | (SCROLL_BAR_VEC_SIZE): Remove; not used. | 790 | (SCROLL_BAR_VEC_SIZE): Remove; not used. |
| 791 | 791 | ||
| 792 | 2011-10-20 Eli Zaretskii <eliz@gnu.org> | ||
| 793 | |||
| 794 | * dispextern.h (struct bidi_it): New member next_en_type. | ||
| 795 | |||
| 796 | * bidi.c (bidi_line_init): Initialize the next_en_type member. | ||
| 797 | (bidi_resolve_explicit_1): When next_en_pos is valid for the | ||
| 798 | current character, check also for next_en_type being WEAK_EN. | ||
| 799 | (bidi_resolve_weak): Don't enter the expensive loop if the current | ||
| 800 | position is before next_en_pos. Record the bidi type of the first | ||
| 801 | non-ET, non-BN character we find, in addition to its position. | ||
| 802 | (bidi_level_of_next_char): Invalidate next_en_type when | ||
| 803 | next_en_pos is over-stepped. | ||
| 804 | |||
| 805 | 2011-10-20 Paul Eggert <eggert@cs.ucla.edu> | ||
| 806 | |||
| 807 | Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794) | ||
| 808 | * editfns.c: Rewrite current-time-zone so that it invokes | ||
| 809 | the equivalent of (format-time-string "%Z") to get the time zone name. | ||
| 810 | This fixes a bug when the time zone name contains characters that | ||
| 811 | need converting from the system time locale to Emacs internal format. | ||
| 812 | This fixes a shortcoming that I introduced in my 1999-10-19 patch: | ||
| 813 | that patch fixed format-time-string to do the conversion, but | ||
| 814 | I forgot to fix current-time-zone. | ||
| 815 | (format_time_string): New function, containing most of | ||
| 816 | what Fformat_time_string used to contain. | ||
| 817 | (Fformat_time_string): Rewrite in terms of format_time_string. | ||
| 818 | This doesn't change this function's behavior. | ||
| 819 | (current-time-zone): Rewrite to use format_time_string. | ||
| 820 | This fixes the bug reported by Michael Schierl in | ||
| 821 | <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>. | ||
| 822 | Jason Rumney's 2007-06-07 change worked around this bug, but | ||
| 823 | didn't fix it. | ||
| 824 | * systime.h (tzname, timezone): Remove no-longer-used declarations. | ||
| 825 | |||
| 826 | 2011-10-19 Eli Zaretskii <eliz@gnu.org> | ||
| 827 | |||
| 828 | * xdisp.c (start_display): If the character at POS is displayed | ||
| 829 | via a display vector, reset IT->current.dpvec_index to zero. | ||
| 830 | (try_window_reusing_current_matrix): If a line ends in a display | ||
| 831 | vector or the next line starts in a display vector, continue | ||
| 832 | redrawing the window even though the character position of | ||
| 833 | start_row was reached. | ||
| 834 | (Bug#9771, part 2) | ||
| 835 | |||
| 836 | 2011-10-18 Chong Yidong <cyd@gnu.org> | ||
| 837 | |||
| 838 | * xdisp.c (get_next_display_element): Handle U+2010 and U+2011 | ||
| 839 | with nobreak-char-display too. | ||
| 840 | |||
| 841 | 2011-10-18 Eli Zaretskii <eliz@gnu.org> | ||
| 842 | |||
| 843 | Fix part 3 of bug#9771. | ||
| 844 | * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1. | ||
| 845 | (bidi_resolve_neutral): Don't enter the expensive loop looking for | ||
| 846 | non-neutral characters if the current character is a paragraph | ||
| 847 | separator (a.k.a. Newline). This avoids running the same | ||
| 848 | expensive loop twice, once when we consume the preceding newline | ||
| 849 | and the other time when the line actually needs to be displayed. | ||
| 850 | Avoid the loop when we see neutrals on the base embedding level | ||
| 851 | following a character whose directionality is the same as the | ||
| 852 | paragraph's. This avoids running the expensive loop when a line | ||
| 853 | ends in a long sequence of neutrals, like control characters. | ||
| 854 | Add assertion against STRONG_AL type. Slightly rearrange code | ||
| 855 | that determines the type of a neutral given the first non-neutral | ||
| 856 | that follows it. | ||
| 857 | (bidi_level_of_next_char): Set next_en_pos to zero when | ||
| 858 | invalidating its info. | ||
| 859 | |||
| 860 | 2011-10-17 Eli Zaretskii <eliz@gnu.org> | ||
| 861 | |||
| 862 | * xdisp.c (push_display_prop): Determine whether to record string | ||
| 863 | or buffer position by IT->string, not by IT->method. Allow | ||
| 864 | GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4) | ||
| 865 | (move_it_vertically_backward): Don't look for character position | ||
| 866 | immediately after the newline when in a continuation line. | ||
| 867 | (Bug#9771, part 1) | ||
| 868 | |||
| 792 | 2011-10-15 Martin Rudalics <rudalics@gmx.at> | 869 | 2011-10-15 Martin Rudalics <rudalics@gmx.at> |
| 793 | 870 | ||
| 794 | * window.c (coordinates_in_window): Rewrite and delabelize | 871 | * window.c (coordinates_in_window): Rewrite and delabelize |
diff --git a/src/bidi.c b/src/bidi.c index c6d7db96576..e8f2df89a9e 100644 --- a/src/bidi.c +++ b/src/bidi.c | |||
| @@ -846,7 +846,10 @@ bidi_line_init (struct bidi_it *bidi_it) | |||
| 846 | bidi_it->level_stack[0].override = NEUTRAL_DIR; /* X1 */ | 846 | bidi_it->level_stack[0].override = NEUTRAL_DIR; /* X1 */ |
| 847 | bidi_it->invalid_levels = 0; | 847 | bidi_it->invalid_levels = 0; |
| 848 | bidi_it->invalid_rl_levels = -1; | 848 | bidi_it->invalid_rl_levels = -1; |
| 849 | bidi_it->next_en_pos = -1; | 849 | /* Setting this to zero will force its recomputation the first time |
| 850 | we need it for W5. */ | ||
| 851 | bidi_it->next_en_pos = 0; | ||
| 852 | bidi_it->next_en_type = UNKNOWN_BT; | ||
| 850 | bidi_it->next_for_ws.type = UNKNOWN_BT; | 853 | bidi_it->next_for_ws.type = UNKNOWN_BT; |
| 851 | bidi_set_sor_type (bidi_it, | 854 | bidi_set_sor_type (bidi_it, |
| 852 | (bidi_it->paragraph_dir == R2L ? 1 : 0), | 855 | (bidi_it->paragraph_dir == R2L ? 1 : 0), |
| @@ -1435,7 +1438,8 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it) | |||
| 1435 | } | 1438 | } |
| 1436 | } | 1439 | } |
| 1437 | else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ | 1440 | else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ |
| 1438 | || bidi_it->next_en_pos > bidi_it->charpos) | 1441 | || (bidi_it->next_en_pos > bidi_it->charpos |
| 1442 | && bidi_it->next_en_type == WEAK_EN)) | ||
| 1439 | type = WEAK_EN; | 1443 | type = WEAK_EN; |
| 1440 | break; | 1444 | break; |
| 1441 | case LRE: /* X3 */ | 1445 | case LRE: /* X3 */ |
| @@ -1471,7 +1475,8 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it) | |||
| 1471 | } | 1475 | } |
| 1472 | } | 1476 | } |
| 1473 | else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ | 1477 | else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ |
| 1474 | || bidi_it->next_en_pos > bidi_it->charpos) | 1478 | || (bidi_it->next_en_pos > bidi_it->charpos |
| 1479 | && bidi_it->next_en_type == WEAK_EN)) | ||
| 1475 | type = WEAK_EN; | 1480 | type = WEAK_EN; |
| 1476 | break; | 1481 | break; |
| 1477 | case PDF: /* X7 */ | 1482 | case PDF: /* X7 */ |
| @@ -1497,7 +1502,8 @@ bidi_resolve_explicit_1 (struct bidi_it *bidi_it) | |||
| 1497 | } | 1502 | } |
| 1498 | } | 1503 | } |
| 1499 | else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ | 1504 | else if (bidi_it->prev.type_after_w1 == WEAK_EN /* W5/Retaining */ |
| 1500 | || bidi_it->next_en_pos > bidi_it->charpos) | 1505 | || (bidi_it->next_en_pos > bidi_it->charpos |
| 1506 | && bidi_it->next_en_type == WEAK_EN)) | ||
| 1501 | type = WEAK_EN; | 1507 | type = WEAK_EN; |
| 1502 | break; | 1508 | break; |
| 1503 | default: | 1509 | default: |
| @@ -1729,10 +1735,15 @@ bidi_resolve_weak (struct bidi_it *bidi_it) | |||
| 1729 | else if (type == WEAK_ET /* W5: ET with EN before or after it */ | 1735 | else if (type == WEAK_ET /* W5: ET with EN before or after it */ |
| 1730 | || type == WEAK_BN) /* W5/Retaining */ | 1736 | || type == WEAK_BN) /* W5/Retaining */ |
| 1731 | { | 1737 | { |
| 1732 | if (bidi_it->prev.type_after_w1 == WEAK_EN /* ET/BN w/EN before it */ | 1738 | if (bidi_it->prev.type_after_w1 == WEAK_EN) /* ET/BN w/EN before it */ |
| 1733 | || bidi_it->next_en_pos > bidi_it->charpos) | ||
| 1734 | type = WEAK_EN; | 1739 | type = WEAK_EN; |
| 1735 | else /* W5: ET/BN with EN after it. */ | 1740 | else if (bidi_it->next_en_pos > bidi_it->charpos |
| 1741 | && bidi_it->next_en_type != WEAK_BN) | ||
| 1742 | { | ||
| 1743 | if (bidi_it->next_en_type == WEAK_EN) /* ET/BN with EN after it */ | ||
| 1744 | type = WEAK_EN; | ||
| 1745 | } | ||
| 1746 | else if (bidi_it->next_en_pos >=0) | ||
| 1736 | { | 1747 | { |
| 1737 | ptrdiff_t en_pos = bidi_it->charpos + bidi_it->nchars; | 1748 | ptrdiff_t en_pos = bidi_it->charpos + bidi_it->nchars; |
| 1738 | const unsigned char *s = (STRINGP (bidi_it->string.lstring) | 1749 | const unsigned char *s = (STRINGP (bidi_it->string.lstring) |
| @@ -1761,20 +1772,27 @@ bidi_resolve_weak (struct bidi_it *bidi_it) | |||
| 1761 | en_pos = bidi_it->charpos; | 1772 | en_pos = bidi_it->charpos; |
| 1762 | bidi_copy_it (bidi_it, &saved_it); | 1773 | bidi_copy_it (bidi_it, &saved_it); |
| 1763 | } | 1774 | } |
| 1775 | /* Remember this position, to speed up processing of the | ||
| 1776 | next ETs. */ | ||
| 1777 | bidi_it->next_en_pos = en_pos; | ||
| 1764 | if (type_of_next == WEAK_EN) | 1778 | if (type_of_next == WEAK_EN) |
| 1765 | { | 1779 | { |
| 1766 | /* If the last strong character is AL, the EN we've | 1780 | /* If the last strong character is AL, the EN we've |
| 1767 | found will become AN when we get to it (W2). */ | 1781 | found will become AN when we get to it (W2). */ |
| 1768 | if (bidi_it->last_strong.type_after_w1 != STRONG_AL) | 1782 | if (bidi_it->last_strong.type_after_w1 == STRONG_AL) |
| 1769 | { | 1783 | type_of_next = WEAK_AN; |
| 1770 | type = WEAK_EN; | ||
| 1771 | /* Remember this EN position, to speed up processing | ||
| 1772 | of the next ETs. */ | ||
| 1773 | bidi_it->next_en_pos = en_pos; | ||
| 1774 | } | ||
| 1775 | else if (type == WEAK_BN) | 1784 | else if (type == WEAK_BN) |
| 1776 | type = NEUTRAL_ON; /* W6/Retaining */ | 1785 | type = NEUTRAL_ON; /* W6/Retaining */ |
| 1786 | else | ||
| 1787 | type = WEAK_EN; | ||
| 1777 | } | 1788 | } |
| 1789 | else if (type_of_next == NEUTRAL_B) | ||
| 1790 | /* Record the fact that there are no more ENs from | ||
| 1791 | here to the end of paragraph, to avoid entering the | ||
| 1792 | loop above ever again in this paragraph. */ | ||
| 1793 | bidi_it->next_en_pos = -1; | ||
| 1794 | /* Record the type of the character where we ended our search. */ | ||
| 1795 | bidi_it->next_en_type = type_of_next; | ||
| 1778 | } | 1796 | } |
| 1779 | } | 1797 | } |
| 1780 | } | 1798 | } |
| @@ -1843,13 +1861,45 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) | |||
| 1843 | || type == NEUTRAL_ON)) | 1861 | || type == NEUTRAL_ON)) |
| 1844 | abort (); | 1862 | abort (); |
| 1845 | 1863 | ||
| 1846 | if (bidi_get_category (type) == NEUTRAL | 1864 | if ((type != NEUTRAL_B /* Don't risk entering the long loop below if |
| 1865 | we are already at paragraph end. */ | ||
| 1866 | && bidi_get_category (type) == NEUTRAL) | ||
| 1847 | || (type == WEAK_BN && prev_level == current_level)) | 1867 | || (type == WEAK_BN && prev_level == current_level)) |
| 1848 | { | 1868 | { |
| 1849 | if (bidi_it->next_for_neutral.type != UNKNOWN_BT) | 1869 | if (bidi_it->next_for_neutral.type != UNKNOWN_BT) |
| 1850 | type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, | 1870 | type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, |
| 1851 | bidi_it->next_for_neutral.type, | 1871 | bidi_it->next_for_neutral.type, |
| 1852 | current_level); | 1872 | current_level); |
| 1873 | /* The next two "else if" clauses are shortcuts for the | ||
| 1874 | important special case when we have a long sequence of | ||
| 1875 | neutral or WEAK_BN characters, such as whitespace or nulls or | ||
| 1876 | other control characters, on the base embedding level of the | ||
| 1877 | paragraph, and that sequence goes all the way to the end of | ||
| 1878 | the paragraph and follows a character whose resolved | ||
| 1879 | directionality is identical to the base embedding level. | ||
| 1880 | (This is what happens in a buffer with plain L2R text that | ||
| 1881 | happens to include long sequences of control characters.) By | ||
| 1882 | virtue of N1, the result of examining this long sequence will | ||
| 1883 | always be either STRONG_L or STRONG_R, depending on the base | ||
| 1884 | embedding level. So we use this fact directly instead of | ||
| 1885 | entering the expensive loop in the "else" clause. */ | ||
| 1886 | else if (current_level == 0 | ||
| 1887 | && bidi_it->prev_for_neutral.type == STRONG_L | ||
| 1888 | && !bidi_explicit_dir_char (bidi_it->ch)) | ||
| 1889 | type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, | ||
| 1890 | STRONG_L, current_level); | ||
| 1891 | else if (/* current level is 1 */ | ||
| 1892 | current_level == 1 | ||
| 1893 | /* base embedding level is also 1 */ | ||
| 1894 | && bidi_it->level_stack[0].level == 1 | ||
| 1895 | /* previous character is one of those considered R for | ||
| 1896 | the purposes of W5 */ | ||
| 1897 | && (bidi_it->prev_for_neutral.type == STRONG_R | ||
| 1898 | || bidi_it->prev_for_neutral.type == WEAK_EN | ||
| 1899 | || bidi_it->prev_for_neutral.type == WEAK_AN) | ||
| 1900 | && !bidi_explicit_dir_char (bidi_it->ch)) | ||
| 1901 | type = bidi_resolve_neutral_1 (bidi_it->prev_for_neutral.type, | ||
| 1902 | STRONG_R, current_level); | ||
| 1853 | else | 1903 | else |
| 1854 | { | 1904 | { |
| 1855 | /* Arrrgh!! The UAX#9 algorithm is too deeply entrenched in | 1905 | /* Arrrgh!! The UAX#9 algorithm is too deeply entrenched in |
| @@ -1900,6 +1950,9 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) | |||
| 1900 | case STRONG_L: | 1950 | case STRONG_L: |
| 1901 | case STRONG_R: | 1951 | case STRONG_R: |
| 1902 | case STRONG_AL: | 1952 | case STRONG_AL: |
| 1953 | /* Actually, STRONG_AL cannot happen here, because | ||
| 1954 | bidi_resolve_weak converts it to STRONG_R, per W3. */ | ||
| 1955 | xassert (type != STRONG_AL); | ||
| 1903 | next_type = type; | 1956 | next_type = type; |
| 1904 | break; | 1957 | break; |
| 1905 | case WEAK_EN: | 1958 | case WEAK_EN: |
| @@ -1907,7 +1960,6 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) | |||
| 1907 | /* N1: ``European and Arabic numbers are treated as | 1960 | /* N1: ``European and Arabic numbers are treated as |
| 1908 | though they were R.'' */ | 1961 | though they were R.'' */ |
| 1909 | next_type = STRONG_R; | 1962 | next_type = STRONG_R; |
| 1910 | saved_it.next_for_neutral.type = STRONG_R; | ||
| 1911 | break; | 1963 | break; |
| 1912 | case WEAK_BN: | 1964 | case WEAK_BN: |
| 1913 | if (!bidi_explicit_dir_char (bidi_it->ch)) | 1965 | if (!bidi_explicit_dir_char (bidi_it->ch)) |
| @@ -1920,11 +1972,7 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) | |||
| 1920 | member. */ | 1972 | member. */ |
| 1921 | if (saved_it.type != WEAK_BN | 1973 | if (saved_it.type != WEAK_BN |
| 1922 | || bidi_get_category (bidi_it->prev.type_after_w1) == NEUTRAL) | 1974 | || bidi_get_category (bidi_it->prev.type_after_w1) == NEUTRAL) |
| 1923 | { | 1975 | next_type = bidi_it->prev_for_neutral.type; |
| 1924 | next_type = bidi_it->prev_for_neutral.type; | ||
| 1925 | saved_it.next_for_neutral.type = next_type; | ||
| 1926 | bidi_check_type (next_type); | ||
| 1927 | } | ||
| 1928 | else | 1976 | else |
| 1929 | { | 1977 | { |
| 1930 | /* This is a BN which does not adjoin neutrals. | 1978 | /* This is a BN which does not adjoin neutrals. |
| @@ -1938,7 +1986,9 @@ bidi_resolve_neutral (struct bidi_it *bidi_it) | |||
| 1938 | } | 1986 | } |
| 1939 | type = bidi_resolve_neutral_1 (saved_it.prev_for_neutral.type, | 1987 | type = bidi_resolve_neutral_1 (saved_it.prev_for_neutral.type, |
| 1940 | next_type, current_level); | 1988 | next_type, current_level); |
| 1989 | saved_it.next_for_neutral.type = next_type; | ||
| 1941 | saved_it.type = type; | 1990 | saved_it.type = type; |
| 1991 | bidi_check_type (next_type); | ||
| 1942 | bidi_check_type (type); | 1992 | bidi_check_type (type); |
| 1943 | bidi_copy_it (bidi_it, &saved_it); | 1993 | bidi_copy_it (bidi_it, &saved_it); |
| 1944 | } | 1994 | } |
| @@ -2014,7 +2064,10 @@ bidi_level_of_next_char (struct bidi_it *bidi_it) | |||
| 2014 | bidi_it->next_for_neutral.type = UNKNOWN_BT; | 2064 | bidi_it->next_for_neutral.type = UNKNOWN_BT; |
| 2015 | if (bidi_it->next_en_pos >= 0 | 2065 | if (bidi_it->next_en_pos >= 0 |
| 2016 | && bidi_it->charpos >= bidi_it->next_en_pos) | 2066 | && bidi_it->charpos >= bidi_it->next_en_pos) |
| 2017 | bidi_it->next_en_pos = -1; | 2067 | { |
| 2068 | bidi_it->next_en_pos = 0; | ||
| 2069 | bidi_it->next_en_type = UNKNOWN_BT; | ||
| 2070 | } | ||
| 2018 | if (bidi_it->next_for_ws.type != UNKNOWN_BT | 2071 | if (bidi_it->next_for_ws.type != UNKNOWN_BT |
| 2019 | && bidi_it->charpos >= bidi_it->next_for_ws.charpos) | 2072 | && bidi_it->charpos >= bidi_it->next_for_ws.charpos) |
| 2020 | bidi_it->next_for_ws.type = UNKNOWN_BT; | 2073 | bidi_it->next_for_ws.type = UNKNOWN_BT; |
| @@ -2140,7 +2193,7 @@ bidi_level_of_next_char (struct bidi_it *bidi_it) | |||
| 2140 | } | 2193 | } |
| 2141 | 2194 | ||
| 2142 | /* Resolve implicit levels, with a twist: PDFs get the embedding | 2195 | /* Resolve implicit levels, with a twist: PDFs get the embedding |
| 2143 | level of the enbedding they terminate. See below for the | 2196 | level of the embedding they terminate. See below for the |
| 2144 | reason. */ | 2197 | reason. */ |
| 2145 | if (bidi_it->orig_type == PDF | 2198 | if (bidi_it->orig_type == PDF |
| 2146 | /* Don't do this if this formatting code didn't change the | 2199 | /* Don't do this if this formatting code didn't change the |
diff --git a/src/dispextern.h b/src/dispextern.h index dfef2884297..5f2c844b58d 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -1856,7 +1856,8 @@ struct bidi_it { | |||
| 1856 | struct bidi_saved_info next_for_neutral; /* surrounding characters for... */ | 1856 | struct bidi_saved_info next_for_neutral; /* surrounding characters for... */ |
| 1857 | struct bidi_saved_info prev_for_neutral; /* ...resolving neutrals */ | 1857 | struct bidi_saved_info prev_for_neutral; /* ...resolving neutrals */ |
| 1858 | struct bidi_saved_info next_for_ws; /* character after sequence of ws */ | 1858 | struct bidi_saved_info next_for_ws; /* character after sequence of ws */ |
| 1859 | ptrdiff_t next_en_pos; /* position of next EN char for ET */ | 1859 | ptrdiff_t next_en_pos; /* pos. of next char for determining ET type */ |
| 1860 | bidi_type_t next_en_type; /* type of char at next_en_pos */ | ||
| 1860 | ptrdiff_t ignore_bn_limit; /* position until which to ignore BNs */ | 1861 | ptrdiff_t ignore_bn_limit; /* position until which to ignore BNs */ |
| 1861 | bidi_dir_t sor; /* direction of start-of-run in effect */ | 1862 | bidi_dir_t sor; /* direction of start-of-run in effect */ |
| 1862 | int scan_dir; /* direction of text scan, 1: forw, -1: back */ | 1863 | int scan_dir; /* direction of text scan, 1: forw, -1: back */ |
diff --git a/src/editfns.c b/src/editfns.c index b376c3a7c51..16e552afe1d 100644 --- a/src/editfns.c +++ b/src/editfns.c | |||
| @@ -85,6 +85,8 @@ extern Lisp_Object w32_get_internal_run_time (void); | |||
| 85 | #endif | 85 | #endif |
| 86 | 86 | ||
| 87 | static void time_overflow (void) NO_RETURN; | 87 | static void time_overflow (void) NO_RETURN; |
| 88 | static Lisp_Object format_time_string (char const *, ptrdiff_t, Lisp_Object, | ||
| 89 | int, time_t *, struct tm **); | ||
| 88 | static int tm_diff (struct tm *, struct tm *); | 90 | static int tm_diff (struct tm *, struct tm *); |
| 89 | static void update_buffer_properties (ptrdiff_t, ptrdiff_t); | 91 | static void update_buffer_properties (ptrdiff_t, ptrdiff_t); |
| 90 | 92 | ||
| @@ -1687,32 +1689,40 @@ For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z". | |||
| 1687 | usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */) | 1689 | usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */) |
| 1688 | (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal) | 1690 | (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal) |
| 1689 | { | 1691 | { |
| 1690 | time_t value; | 1692 | time_t t; |
| 1693 | struct tm *tm; | ||
| 1694 | |||
| 1695 | CHECK_STRING (format_string); | ||
| 1696 | format_string = code_convert_string_norecord (format_string, | ||
| 1697 | Vlocale_coding_system, 1); | ||
| 1698 | return format_time_string (SSDATA (format_string), SBYTES (format_string), | ||
| 1699 | timeval, ! NILP (universal), &t, &tm); | ||
| 1700 | } | ||
| 1701 | |||
| 1702 | static Lisp_Object | ||
| 1703 | format_time_string (char const *format, ptrdiff_t formatlen, | ||
| 1704 | Lisp_Object timeval, int ut, time_t *tval, struct tm **tmp) | ||
| 1705 | { | ||
| 1691 | ptrdiff_t size; | 1706 | ptrdiff_t size; |
| 1692 | int usec; | 1707 | int usec; |
| 1693 | int ns; | 1708 | int ns; |
| 1694 | struct tm *tm; | 1709 | struct tm *tm; |
| 1695 | int ut = ! NILP (universal); | ||
| 1696 | |||
| 1697 | CHECK_STRING (format_string); | ||
| 1698 | 1710 | ||
| 1699 | if (! lisp_time_argument (timeval, &value, &usec)) | 1711 | if (! lisp_time_argument (timeval, tval, &usec)) |
| 1700 | error ("Invalid time specification"); | 1712 | error ("Invalid time specification"); |
| 1701 | ns = usec * 1000; | 1713 | ns = usec * 1000; |
| 1702 | 1714 | ||
| 1703 | format_string = code_convert_string_norecord (format_string, | ||
| 1704 | Vlocale_coding_system, 1); | ||
| 1705 | |||
| 1706 | /* This is probably enough. */ | 1715 | /* This is probably enough. */ |
| 1707 | size = SBYTES (format_string); | 1716 | size = formatlen; |
| 1708 | if (size <= (STRING_BYTES_BOUND - 50) / 6) | 1717 | if (size <= (STRING_BYTES_BOUND - 50) / 6) |
| 1709 | size = size * 6 + 50; | 1718 | size = size * 6 + 50; |
| 1710 | 1719 | ||
| 1711 | BLOCK_INPUT; | 1720 | BLOCK_INPUT; |
| 1712 | tm = ut ? gmtime (&value) : localtime (&value); | 1721 | tm = ut ? gmtime (tval) : localtime (tval); |
| 1713 | UNBLOCK_INPUT; | 1722 | UNBLOCK_INPUT; |
| 1714 | if (! tm) | 1723 | if (! tm) |
| 1715 | time_overflow (); | 1724 | time_overflow (); |
| 1725 | *tmp = tm; | ||
| 1716 | 1726 | ||
| 1717 | synchronize_system_time_locale (); | 1727 | synchronize_system_time_locale (); |
| 1718 | 1728 | ||
| @@ -1723,9 +1733,7 @@ usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */) | |||
| 1723 | 1733 | ||
| 1724 | buf[0] = '\1'; | 1734 | buf[0] = '\1'; |
| 1725 | BLOCK_INPUT; | 1735 | BLOCK_INPUT; |
| 1726 | result = emacs_nmemftime (buf, size, SSDATA (format_string), | 1736 | result = emacs_nmemftime (buf, size, format, formatlen, tm, ut, ns); |
| 1727 | SBYTES (format_string), | ||
| 1728 | tm, ut, ns); | ||
| 1729 | UNBLOCK_INPUT; | 1737 | UNBLOCK_INPUT; |
| 1730 | if ((result > 0 && result < size) || (result == 0 && buf[0] == '\0')) | 1738 | if ((result > 0 && result < size) || (result == 0 && buf[0] == '\0')) |
| 1731 | return code_convert_string_norecord (make_unibyte_string (buf, result), | 1739 | return code_convert_string_norecord (make_unibyte_string (buf, result), |
| @@ -1733,9 +1741,7 @@ usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */) | |||
| 1733 | 1741 | ||
| 1734 | /* If buffer was too small, make it bigger and try again. */ | 1742 | /* If buffer was too small, make it bigger and try again. */ |
| 1735 | BLOCK_INPUT; | 1743 | BLOCK_INPUT; |
| 1736 | result = emacs_nmemftime (NULL, (size_t) -1, | 1744 | result = emacs_nmemftime (NULL, (size_t) -1, format, formatlen, |
| 1737 | SSDATA (format_string), | ||
| 1738 | SBYTES (format_string), | ||
| 1739 | tm, ut, ns); | 1745 | tm, ut, ns); |
| 1740 | UNBLOCK_INPUT; | 1746 | UNBLOCK_INPUT; |
| 1741 | if (STRING_BYTES_BOUND <= result) | 1747 | if (STRING_BYTES_BOUND <= result) |
| @@ -1983,51 +1989,34 @@ the data it can't find. */) | |||
| 1983 | { | 1989 | { |
| 1984 | time_t value; | 1990 | time_t value; |
| 1985 | struct tm *t; | 1991 | struct tm *t; |
| 1986 | struct tm gmt; | 1992 | struct tm localtm; |
| 1987 | 1993 | struct tm *localt; | |
| 1988 | if (!lisp_time_argument (specified_time, &value, NULL)) | 1994 | Lisp_Object zone_offset, zone_name; |
| 1989 | t = NULL; | 1995 | |
| 1990 | else | 1996 | zone_offset = Qnil; |
| 1991 | { | 1997 | zone_name = format_time_string ("%Z", sizeof "%Z" - 1, specified_time, |
| 1992 | BLOCK_INPUT; | 1998 | 0, &value, &localt); |
| 1993 | t = gmtime (&value); | 1999 | localtm = *localt; |
| 1994 | if (t) | 2000 | BLOCK_INPUT; |
| 1995 | { | 2001 | t = gmtime (&value); |
| 1996 | gmt = *t; | 2002 | UNBLOCK_INPUT; |
| 1997 | t = localtime (&value); | ||
| 1998 | } | ||
| 1999 | UNBLOCK_INPUT; | ||
| 2000 | } | ||
| 2001 | 2003 | ||
| 2002 | if (t) | 2004 | if (t) |
| 2003 | { | 2005 | { |
| 2004 | int offset = tm_diff (t, &gmt); | 2006 | int offset = tm_diff (&localtm, t); |
| 2005 | char *s = 0; | 2007 | zone_offset = make_number (offset); |
| 2006 | char buf[sizeof "+00" + INT_STRLEN_BOUND (int)]; | 2008 | if (SCHARS (zone_name) == 0) |
| 2007 | |||
| 2008 | #ifdef HAVE_TM_ZONE | ||
| 2009 | if (t->tm_zone) | ||
| 2010 | s = (char *)t->tm_zone; | ||
| 2011 | #else /* not HAVE_TM_ZONE */ | ||
| 2012 | #ifdef HAVE_TZNAME | ||
| 2013 | if (t->tm_isdst == 0 || t->tm_isdst == 1) | ||
| 2014 | s = tzname[t->tm_isdst]; | ||
| 2015 | #endif | ||
| 2016 | #endif /* not HAVE_TM_ZONE */ | ||
| 2017 | |||
| 2018 | if (!s) | ||
| 2019 | { | 2009 | { |
| 2020 | /* No local time zone name is available; use "+-NNNN" instead. */ | 2010 | /* No local time zone name is available; use "+-NNNN" instead. */ |
| 2021 | int m = offset / 60; | 2011 | int m = offset / 60; |
| 2022 | int am = offset < 0 ? - m : m; | 2012 | int am = offset < 0 ? - m : m; |
| 2013 | char buf[sizeof "+00" + INT_STRLEN_BOUND (int)]; | ||
| 2023 | sprintf (buf, "%c%02d%02d", (offset < 0 ? '-' : '+'), am/60, am%60); | 2014 | sprintf (buf, "%c%02d%02d", (offset < 0 ? '-' : '+'), am/60, am%60); |
| 2024 | s = buf; | 2015 | zone_name = build_string (buf); |
| 2025 | } | 2016 | } |
| 2026 | |||
| 2027 | return Fcons (make_number (offset), Fcons (build_string (s), Qnil)); | ||
| 2028 | } | 2017 | } |
| 2029 | else | 2018 | |
| 2030 | return Fmake_list (make_number (2), Qnil); | 2019 | return list2 (zone_offset, zone_name); |
| 2031 | } | 2020 | } |
| 2032 | 2021 | ||
| 2033 | /* This holds the value of `environ' produced by the previous | 2022 | /* This holds the value of `environ' produced by the previous |
diff --git a/src/systime.h b/src/systime.h index bed9ed4aa71..b90372dbe20 100644 --- a/src/systime.h +++ b/src/systime.h | |||
| @@ -38,17 +38,6 @@ typedef unsigned long Time; | |||
| 38 | # endif | 38 | # endif |
| 39 | #endif | 39 | #endif |
| 40 | 40 | ||
| 41 | #ifdef HAVE_TZNAME | ||
| 42 | #ifndef tzname /* For SGI. */ | ||
| 43 | extern char *tzname[]; /* RS6000 and others want it this way. */ | ||
| 44 | #endif | ||
| 45 | #endif | ||
| 46 | |||
| 47 | /* SVr4 doesn't actually declare this in its #include files. */ | ||
| 48 | #ifdef USG5_4 | ||
| 49 | extern time_t timezone; | ||
| 50 | #endif | ||
| 51 | |||
| 52 | /* On some configurations (hpux8.0, X11R4), sys/time.h and X11/Xos.h | 41 | /* On some configurations (hpux8.0, X11R4), sys/time.h and X11/Xos.h |
| 53 | disagree about the name of the guard symbol. */ | 42 | disagree about the name of the guard symbol. */ |
| 54 | #ifdef HPUX | 43 | #ifdef HPUX |
diff --git a/src/xdisp.c b/src/xdisp.c index a264da3892a..cb68969ae2d 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -2854,6 +2854,13 @@ start_display (struct it *it, struct window *w, struct text_pos pos) | |||
| 2854 | 2854 | ||
| 2855 | it->continuation_lines_width += it->current_x; | 2855 | it->continuation_lines_width += it->current_x; |
| 2856 | } | 2856 | } |
| 2857 | /* If the character at POS is displayed via a display | ||
| 2858 | vector, move_it_to above stops at the final glyph of | ||
| 2859 | IT->dpvec. To make the caller redisplay that character | ||
| 2860 | again (a.k.a. start at POS), we need to reset the | ||
| 2861 | dpvec_index to the beginning of IT->dpvec. */ | ||
| 2862 | else if (it->current.dpvec_index >= 0) | ||
| 2863 | it->current.dpvec_index = 0; | ||
| 2857 | 2864 | ||
| 2858 | /* We're starting a new display line, not affected by the | 2865 | /* We're starting a new display line, not affected by the |
| 2859 | height of the continued line, so clear the appropriate | 2866 | height of the continued line, so clear the appropriate |
| @@ -6379,8 +6386,8 @@ get_next_display_element (struct it *it) | |||
| 6379 | { | 6386 | { |
| 6380 | Lisp_Object dv; | 6387 | Lisp_Object dv; |
| 6381 | struct charset *unibyte = CHARSET_FROM_ID (charset_unibyte); | 6388 | struct charset *unibyte = CHARSET_FROM_ID (charset_unibyte); |
| 6382 | enum { char_is_other = 0, char_is_nbsp, char_is_soft_hyphen } | 6389 | int nonascii_space_p = 0; |
| 6383 | nbsp_or_shy = char_is_other; | 6390 | int nonascii_hyphen_p = 0; |
| 6384 | int c = it->c; /* This is the character to display. */ | 6391 | int c = it->c; /* This is the character to display. */ |
| 6385 | 6392 | ||
| 6386 | if (! it->multibyte_p && ! ASCII_CHAR_P (c)) | 6393 | if (! it->multibyte_p && ! ASCII_CHAR_P (c)) |
| @@ -6432,10 +6439,15 @@ get_next_display_element (struct it *it) | |||
| 6432 | goto get_next; | 6439 | goto get_next; |
| 6433 | } | 6440 | } |
| 6434 | 6441 | ||
| 6442 | /* If `nobreak-char-display' is non-nil, we display | ||
| 6443 | non-ASCII spaces and hyphens specially. */ | ||
| 6435 | if (! ASCII_CHAR_P (c) && ! NILP (Vnobreak_char_display)) | 6444 | if (! ASCII_CHAR_P (c) && ! NILP (Vnobreak_char_display)) |
| 6436 | nbsp_or_shy = (c == 0xA0 ? char_is_nbsp | 6445 | { |
| 6437 | : c == 0xAD ? char_is_soft_hyphen | 6446 | if (c == 0xA0) |
| 6438 | : char_is_other); | 6447 | nonascii_space_p = 1; |
| 6448 | else if (c == 0xAD || c == 0x2010 || c == 0x2011) | ||
| 6449 | nonascii_hyphen_p = 1; | ||
| 6450 | } | ||
| 6439 | 6451 | ||
| 6440 | /* Translate control characters into `\003' or `^C' form. | 6452 | /* Translate control characters into `\003' or `^C' form. |
| 6441 | Control characters coming from a display table entry are | 6453 | Control characters coming from a display table entry are |
| @@ -6443,7 +6455,8 @@ get_next_display_element (struct it *it) | |||
| 6443 | the translation. This could easily be changed but I | 6455 | the translation. This could easily be changed but I |
| 6444 | don't believe that it is worth doing. | 6456 | don't believe that it is worth doing. |
| 6445 | 6457 | ||
| 6446 | NBSP and SOFT-HYPEN are property translated too. | 6458 | The characters handled by `nobreak-char-display' must be |
| 6459 | translated too. | ||
| 6447 | 6460 | ||
| 6448 | Non-printable characters and raw-byte characters are also | 6461 | Non-printable characters and raw-byte characters are also |
| 6449 | translated to octal form. */ | 6462 | translated to octal form. */ |
| @@ -6454,14 +6467,15 @@ get_next_display_element (struct it *it) | |||
| 6454 | && it->glyph_row | 6467 | && it->glyph_row |
| 6455 | && (it->glyph_row->mode_line_p || it->avoid_cursor_p)) | 6468 | && (it->glyph_row->mode_line_p || it->avoid_cursor_p)) |
| 6456 | || (c != '\n' && c != '\t')) | 6469 | || (c != '\n' && c != '\t')) |
| 6457 | : (nbsp_or_shy | 6470 | : (nonascii_space_p |
| 6471 | || nonascii_hyphen_p | ||
| 6458 | || CHAR_BYTE8_P (c) | 6472 | || CHAR_BYTE8_P (c) |
| 6459 | || ! CHAR_PRINTABLE_P (c)))) | 6473 | || ! CHAR_PRINTABLE_P (c)))) |
| 6460 | { | 6474 | { |
| 6461 | /* C is a control character, NBSP, SOFT-HYPEN, raw-byte, | 6475 | /* C is a control character, non-ASCII space/hyphen, |
| 6462 | or a non-printable character which must be displayed | 6476 | raw-byte, or a non-printable character which must be |
| 6463 | either as '\003' or as `^C' where the '\\' and '^' | 6477 | displayed either as '\003' or as `^C' where the '\\' |
| 6464 | can be defined in the display table. Fill | 6478 | and '^' can be defined in the display table. Fill |
| 6465 | IT->ctl_chars with glyphs for what we have to | 6479 | IT->ctl_chars with glyphs for what we have to |
| 6466 | display. Then, set IT->dpvec to these glyphs. */ | 6480 | display. Then, set IT->dpvec to these glyphs. */ |
| 6467 | Lisp_Object gc; | 6481 | Lisp_Object gc; |
| @@ -6509,17 +6523,14 @@ get_next_display_element (struct it *it) | |||
| 6509 | goto display_control; | 6523 | goto display_control; |
| 6510 | } | 6524 | } |
| 6511 | 6525 | ||
| 6512 | /* Handle non-break space in the mode where it only gets | 6526 | /* Handle non-ascii space in the mode where it only gets |
| 6513 | highlighting. */ | 6527 | highlighting. */ |
| 6514 | 6528 | ||
| 6515 | if (EQ (Vnobreak_char_display, Qt) | 6529 | if (nonascii_space_p && EQ (Vnobreak_char_display, Qt)) |
| 6516 | && nbsp_or_shy == char_is_nbsp) | ||
| 6517 | { | 6530 | { |
| 6518 | /* Merge the no-break-space face into the current face. */ | 6531 | /* Merge `nobreak-space' into the current face. */ |
| 6519 | face_id = merge_faces (it->f, Qnobreak_space, 0, | 6532 | face_id = merge_faces (it->f, Qnobreak_space, 0, |
| 6520 | it->face_id); | 6533 | it->face_id); |
| 6521 | |||
| 6522 | c = ' '; | ||
| 6523 | XSETINT (it->ctl_chars[0], ' '); | 6534 | XSETINT (it->ctl_chars[0], ' '); |
| 6524 | ctl_len = 1; | 6535 | ctl_len = 1; |
| 6525 | goto display_control; | 6536 | goto display_control; |
| @@ -6558,25 +6569,21 @@ get_next_display_element (struct it *it) | |||
| 6558 | last_escape_glyph_merged_face_id = face_id; | 6569 | last_escape_glyph_merged_face_id = face_id; |
| 6559 | } | 6570 | } |
| 6560 | 6571 | ||
| 6561 | /* Handle soft hyphens in the mode where they only get | 6572 | /* Draw non-ASCII hyphen with just highlighting: */ |
| 6562 | highlighting. */ | ||
| 6563 | 6573 | ||
| 6564 | if (EQ (Vnobreak_char_display, Qt) | 6574 | if (nonascii_hyphen_p && EQ (Vnobreak_char_display, Qt)) |
| 6565 | && nbsp_or_shy == char_is_soft_hyphen) | ||
| 6566 | { | 6575 | { |
| 6567 | XSETINT (it->ctl_chars[0], '-'); | 6576 | XSETINT (it->ctl_chars[0], '-'); |
| 6568 | ctl_len = 1; | 6577 | ctl_len = 1; |
| 6569 | goto display_control; | 6578 | goto display_control; |
| 6570 | } | 6579 | } |
| 6571 | 6580 | ||
| 6572 | /* Handle non-break space and soft hyphen | 6581 | /* Draw non-ASCII space/hyphen with escape glyph: */ |
| 6573 | with the escape glyph. */ | ||
| 6574 | 6582 | ||
| 6575 | if (nbsp_or_shy) | 6583 | if (nonascii_space_p || nonascii_hyphen_p) |
| 6576 | { | 6584 | { |
| 6577 | XSETINT (it->ctl_chars[0], escape_glyph); | 6585 | XSETINT (it->ctl_chars[0], escape_glyph); |
| 6578 | c = (nbsp_or_shy == char_is_nbsp ? ' ' : '-'); | 6586 | XSETINT (it->ctl_chars[1], nonascii_space_p ? ' ' : '-'); |
| 6579 | XSETINT (it->ctl_chars[1], c); | ||
| 6580 | ctl_len = 2; | 6587 | ctl_len = 2; |
| 6581 | goto display_control; | 6588 | goto display_control; |
| 6582 | } | 6589 | } |
| @@ -8774,7 +8781,10 @@ move_it_vertically_backward (struct it *it, int dy) | |||
| 8774 | reordering. We want to get to the character position | 8781 | reordering. We want to get to the character position |
| 8775 | that is immediately after the newline of the previous | 8782 | that is immediately after the newline of the previous |
| 8776 | line. */ | 8783 | line. */ |
| 8777 | if (it->bidi_p && IT_CHARPOS (*it) > BEGV | 8784 | if (it->bidi_p |
| 8785 | && !it->continuation_lines_width | ||
| 8786 | && !STRINGP (it->string) | ||
| 8787 | && IT_CHARPOS (*it) > BEGV | ||
| 8778 | && FETCH_BYTE (IT_BYTEPOS (*it) - 1) != '\n') | 8788 | && FETCH_BYTE (IT_BYTEPOS (*it) - 1) != '\n') |
| 8779 | { | 8789 | { |
| 8780 | ptrdiff_t nl_pos = | 8790 | ptrdiff_t nl_pos = |
| @@ -16075,13 +16085,20 @@ try_window_reusing_current_matrix (struct window *w) | |||
| 16075 | 16085 | ||
| 16076 | start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix); | 16086 | start_vpos = MATRIX_ROW_VPOS (start_row, w->current_matrix); |
| 16077 | } | 16087 | } |
| 16078 | /* If we have reached alignment, | 16088 | /* If we have reached alignment, we can copy the rest of the |
| 16079 | we can copy the rest of the rows. */ | 16089 | rows. */ |
| 16080 | if (IT_CHARPOS (it) == CHARPOS (start)) | 16090 | if (IT_CHARPOS (it) == CHARPOS (start) |
| 16091 | /* Don't accept "alignment" inside a display vector, | ||
| 16092 | since start_row could have started in the middle of | ||
| 16093 | that same display vector (thus their character | ||
| 16094 | positions match), and we have no way of telling if | ||
| 16095 | that is the case. */ | ||
| 16096 | && it.current.dpvec_index < 0) | ||
| 16081 | break; | 16097 | break; |
| 16082 | 16098 | ||
| 16083 | if (display_line (&it)) | 16099 | if (display_line (&it)) |
| 16084 | last_text_row = it.glyph_row - 1; | 16100 | last_text_row = it.glyph_row - 1; |
| 16101 | |||
| 16085 | } | 16102 | } |
| 16086 | 16103 | ||
| 16087 | /* A value of current_y < last_visible_y means that we stopped | 16104 | /* A value of current_y < last_visible_y means that we stopped |
| @@ -18434,9 +18451,10 @@ static int | |||
| 18434 | push_display_prop (struct it *it, Lisp_Object prop) | 18451 | push_display_prop (struct it *it, Lisp_Object prop) |
| 18435 | { | 18452 | { |
| 18436 | struct text_pos pos = | 18453 | struct text_pos pos = |
| 18437 | (it->method == GET_FROM_STRING) ? it->current.string_pos : it->current.pos; | 18454 | STRINGP (it->string) ? it->current.string_pos : it->current.pos; |
| 18438 | 18455 | ||
| 18439 | xassert (it->method == GET_FROM_BUFFER | 18456 | xassert (it->method == GET_FROM_BUFFER |
| 18457 | || it->method == GET_FROM_DISPLAY_VECTOR | ||
| 18440 | || it->method == GET_FROM_STRING); | 18458 | || it->method == GET_FROM_STRING); |
| 18441 | 18459 | ||
| 18442 | /* We need to save the current buffer/string position, so it will be | 18460 | /* We need to save the current buffer/string position, so it will be |
| @@ -28004,12 +28022,18 @@ The face used for trailing whitespace is `trailing-whitespace'. */); | |||
| 28004 | Vshow_trailing_whitespace = Qnil; | 28022 | Vshow_trailing_whitespace = Qnil; |
| 28005 | 28023 | ||
| 28006 | DEFVAR_LISP ("nobreak-char-display", Vnobreak_char_display, | 28024 | DEFVAR_LISP ("nobreak-char-display", Vnobreak_char_display, |
| 28007 | doc: /* *Control highlighting of nobreak space and soft hyphen. | 28025 | doc: /* Control highlighting of non-ASCII space and hyphen chars. |
| 28008 | A value of t means highlight the character itself (for nobreak space, | 28026 | If the value is t, Emacs highlights non-ASCII chars which have the |
| 28009 | use face `nobreak-space'). | 28027 | same appearance as an ASCII space or hyphen, using the `nobreak-space' |
| 28010 | A value of nil means no highlighting. | 28028 | or `escape-glyph' face respectively. |
| 28011 | Other values mean display the escape glyph followed by an ordinary | 28029 | |
| 28012 | space or ordinary hyphen. */); | 28030 | U+00A0 (no-break space), U+00AD (soft hyphen), U+2010 (hyphen), and |
| 28031 | U+2011 (non-breaking hyphen) are affected. | ||
| 28032 | |||
| 28033 | Any other non-nil value means to display these characters as a escape | ||
| 28034 | glyph followed by an ordinary space or hyphen. | ||
| 28035 | |||
| 28036 | A value of nil means no special handling of these characters. */); | ||
| 28013 | Vnobreak_char_display = Qt; | 28037 | Vnobreak_char_display = Qt; |
| 28014 | 28038 | ||
| 28015 | DEFVAR_LISP ("void-text-area-pointer", Vvoid_text_area_pointer, | 28039 | DEFVAR_LISP ("void-text-area-pointer", Vvoid_text_area_pointer, |
diff --git a/test/ChangeLog b/test/ChangeLog index ea6d90b534c..396273bab37 100644 --- a/test/ChangeLog +++ b/test/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2011-10-20 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * automated/vc-bzr.el (vc-bzr-test-bug9781): New test. | ||
| 4 | |||
| 5 | * automated/vc-bzr.el: New file. | ||
| 6 | |||
| 1 | 2011-10-15 Glenn Morris <rgm@gnu.org> | 7 | 2011-10-15 Glenn Morris <rgm@gnu.org> |
| 2 | 8 | ||
| 3 | * automated/f90.el: New file. | 9 | * automated/f90.el: New file. |
diff --git a/test/automated/vc-bzr.el b/test/automated/vc-bzr.el new file mode 100644 index 00000000000..b2cbda4d669 --- /dev/null +++ b/test/automated/vc-bzr.el | |||
| @@ -0,0 +1,101 @@ | |||
| 1 | ;;; vc-bzr.el --- tests for vc/vc-bzr.el | ||
| 2 | |||
| 3 | ;; Copyright (C) 2011 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Author: Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | ||
| 10 | ;; it under the terms of the GNU General Public License as published by | ||
| 11 | ;; the Free Software Foundation, either version 3 of the License, or | ||
| 12 | ;; (at your option) any later version. | ||
| 13 | |||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 18 | |||
| 19 | ;; You should have received a copy of the GNU General Public License | ||
| 20 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 21 | |||
| 22 | ;;; Commentary: | ||
| 23 | |||
| 24 | ;;; Code: | ||
| 25 | |||
| 26 | (require 'ert) | ||
| 27 | (require 'vc-bzr) | ||
| 28 | (require 'vc-dir) | ||
| 29 | |||
| 30 | ;; FIXME it would be better to skip all these tests if there is no | ||
| 31 | ;; bzr installed. We could just put everything inside an IF | ||
| 32 | ;; statement, but it would be nice if ERT had a "skipped" facility (?). | ||
| 33 | |||
| 34 | (ert-deftest vc-bzr-test-bug9726 () | ||
| 35 | "Test for http://debbugs.gnu.org/9726 ." | ||
| 36 | :expected-result (if (executable-find vc-bzr-program) :passed :failed) | ||
| 37 | (should (executable-find vc-bzr-program)) | ||
| 38 | (let* ((tempdir (make-temp-file "vc-bzr-test" t)) | ||
| 39 | (ignored-dir (expand-file-name "ignored-dir" tempdir)) | ||
| 40 | (default-directory (file-name-as-directory tempdir))) | ||
| 41 | (unwind-protect | ||
| 42 | (progn | ||
| 43 | (make-directory ignored-dir) | ||
| 44 | (with-temp-buffer | ||
| 45 | (insert (file-name-nondirectory ignored-dir)) | ||
| 46 | (write-region nil nil (expand-file-name ".bzrignore" tempdir) | ||
| 47 | nil 'silent)) | ||
| 48 | (call-process vc-bzr-program nil nil nil "init") | ||
| 49 | (call-process vc-bzr-program nil nil nil "add") | ||
| 50 | (call-process vc-bzr-program nil nil nil "commit" "-m" "Commit 1") | ||
| 51 | (with-temp-buffer | ||
| 52 | (insert "unregistered file") | ||
| 53 | (write-region nil nil (expand-file-name "testfile2" ignored-dir) | ||
| 54 | nil 'silent)) | ||
| 55 | (vc-dir ignored-dir) | ||
| 56 | (while (vc-dir-busy) | ||
| 57 | (sit-for 0.1)) | ||
| 58 | ;; FIXME better to explicitly test for error from process sentinel. | ||
| 59 | (with-current-buffer "*vc-dir*" | ||
| 60 | (goto-char (point-min)) | ||
| 61 | (should (search-forward "unregistered" nil t)))) | ||
| 62 | (delete-directory tempdir t)))) | ||
| 63 | |||
| 64 | ;; Not specific to bzr. | ||
| 65 | (ert-deftest vc-bzr-test-bug9781 () | ||
| 66 | "Test for http://debbugs.gnu.org/9781 ." | ||
| 67 | :expected-result (if (executable-find vc-bzr-program) :passed :failed) | ||
| 68 | (should (executable-find vc-bzr-program)) | ||
| 69 | (let* ((tempdir (make-temp-file "vc-bzr-test" t)) | ||
| 70 | (subdir (expand-file-name "subdir" tempdir)) | ||
| 71 | (file (expand-file-name "file" tempdir)) | ||
| 72 | (default-directory (file-name-as-directory tempdir))) | ||
| 73 | (unwind-protect | ||
| 74 | (progn | ||
| 75 | (call-process vc-bzr-program nil nil nil "init") | ||
| 76 | (make-directory subdir) | ||
| 77 | (with-temp-buffer | ||
| 78 | (insert "text") | ||
| 79 | (write-region nil nil file nil 'silent) | ||
| 80 | (write-region nil nil (expand-file-name "subfile" subdir) | ||
| 81 | nil 'silent)) | ||
| 82 | (call-process vc-bzr-program nil nil nil "add") | ||
| 83 | (call-process vc-bzr-program nil nil nil "commit" "-m" "Commit 1") | ||
| 84 | (call-process vc-bzr-program nil nil nil "remove" subdir) | ||
| 85 | (with-temp-buffer | ||
| 86 | (insert "different text") | ||
| 87 | (write-region nil nil file nil 'silent)) | ||
| 88 | (vc-dir tempdir) | ||
| 89 | (while (vc-dir-busy) | ||
| 90 | (sit-for 0.1)) | ||
| 91 | (vc-dir-mark-all-files t) | ||
| 92 | (let ((f (symbol-function 'y-or-n-p))) | ||
| 93 | (unwind-protect | ||
| 94 | (progn | ||
| 95 | (fset 'y-or-n-p (lambda (prompt) t)) | ||
| 96 | (vc-next-action nil)) | ||
| 97 | (fset 'y-or-n-p f))) | ||
| 98 | (should (get-buffer "*vc-log*"))) | ||
| 99 | (delete-directory tempdir t)))) | ||
| 100 | |||
| 101 | ;;; vc-bzr.el ends here | ||