diff options
| -rw-r--r-- | ChangeLog | 14 | ||||
| -rw-r--r-- | configure.ac | 35 | ||||
| -rw-r--r-- | doc/lispref/ChangeLog | 8 | ||||
| -rw-r--r-- | doc/lispref/functions.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/intro.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/syntax.texi | 4 | ||||
| -rw-r--r-- | doc/lispref/variables.texi | 2 | ||||
| -rw-r--r-- | etc/NEWS | 936 | ||||
| -rw-r--r-- | lisp/ChangeLog | 33 | ||||
| -rw-r--r-- | lisp/emacs-lisp/package.el | 14 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/gnus/nnfolder.el | 29 | ||||
| -rw-r--r-- | lisp/mail/rmail.el | 2 | ||||
| -rw-r--r-- | lisp/mail/rmailmm.el | 4 | ||||
| -rw-r--r-- | lisp/net/mairix.el | 10 | ||||
| -rw-r--r-- | lisp/net/tramp-sh.el | 13 | ||||
| -rw-r--r-- | lisp/net/tramp-smb.el | 2 | ||||
| -rw-r--r-- | lisp/org/ChangeLog | 7 | ||||
| -rw-r--r-- | msdos/ChangeLog | 5 | ||||
| -rw-r--r-- | msdos/sed1v2.inp | 2 | ||||
| -rw-r--r-- | src/ChangeLog | 46 | ||||
| -rw-r--r-- | src/Makefile.in | 10 | ||||
| -rw-r--r-- | src/coding.c | 3 | ||||
| -rw-r--r-- | src/coding.h | 2 | ||||
| -rw-r--r-- | src/dispextern.h | 13 | ||||
| -rw-r--r-- | src/gtkutil.c | 98 | ||||
| -rw-r--r-- | src/xdisp.c | 7 | ||||
| -rw-r--r-- | src/xterm.h | 7 |
28 files changed, 699 insertions, 617 deletions
| @@ -1,3 +1,17 @@ | |||
| 1 | 2012-12-30 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * configure.ac: Check for GtkHandlebox. | ||
| 4 | Check for GtkTearoffMenuItem. | ||
| 5 | New enable: --enable-gtk-deprecation-warnings, default off. | ||
| 6 | (HAVE_GTK3): If above enable is off, add | ||
| 7 | -DGDK_DISABLE_DEPRECATION_WARNINGS to GTK_CFLAGS. | ||
| 8 | |||
| 9 | 2012-12-30 Andreas Schwab <schwab@linux-m68k.org> | ||
| 10 | |||
| 11 | * configure.ac (TEMACS_LDFLAGS2): Don't define. | ||
| 12 | (LIBS_GNUSTEP): Set for GNUstep and substitute. | ||
| 13 | (LD_SWITCH_SYSTEM_TEMACS): Don't set for GNUstep. | ||
| 14 | |||
| 1 | 2012-12-27 Glenn Morris <rgm@gnu.org> | 15 | 2012-12-27 Glenn Morris <rgm@gnu.org> |
| 2 | 16 | ||
| 3 | * configure.ac (emacs_config_options): New. | 17 | * configure.ac (emacs_config_options): New. |
diff --git a/configure.ac b/configure.ac index 4d829963ee2..6bf7382e3a1 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -361,6 +361,11 @@ AC_ARG_ENABLE(autodepend, | |||
| 361 | found])], | 361 | found])], |
| 362 | [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes]) | 362 | [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes]) |
| 363 | 363 | ||
| 364 | AC_ARG_ENABLE(gtk-deprecation-warnings, | ||
| 365 | [AS_HELP_STRING([--enable-gtk-deprecation-warnings], | ||
| 366 | [Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])], | ||
| 367 | [ac_enable_gtk_deprecation_warnings="${enableval}"],[]) | ||
| 368 | |||
| 364 | #### Make srcdir absolute, if it isn't already. It's important to | 369 | #### Make srcdir absolute, if it isn't already. It's important to |
| 365 | #### avoid running the file name through pwd unnecessarily, since pwd can | 370 | #### avoid running the file name through pwd unnecessarily, since pwd can |
| 366 | #### give you automounter prefixes, which can go away. We do all this | 371 | #### give you automounter prefixes, which can go away. We do all this |
| @@ -1477,8 +1482,8 @@ tmp_CPPFLAGS="$CPPFLAGS" | |||
| 1477 | tmp_CFLAGS="$CFLAGS" | 1482 | tmp_CFLAGS="$CFLAGS" |
| 1478 | CPPFLAGS="$CPPFLAGS -x objective-c" | 1483 | CPPFLAGS="$CPPFLAGS -x objective-c" |
| 1479 | CFLAGS="$CFLAGS -x objective-c" | 1484 | CFLAGS="$CFLAGS -x objective-c" |
| 1480 | TEMACS_LDFLAGS2="\${LDFLAGS}" | ||
| 1481 | GNU_OBJC_CFLAGS= | 1485 | GNU_OBJC_CFLAGS= |
| 1486 | LIBS_GNUSTEP= | ||
| 1482 | if test "${with_ns}" != no; then | 1487 | if test "${with_ns}" != no; then |
| 1483 | if test "${opsys}" = darwin; then | 1488 | if test "${opsys}" = darwin; then |
| 1484 | NS_IMPL_COCOA=yes | 1489 | NS_IMPL_COCOA=yes |
| @@ -1505,9 +1510,9 @@ if test "${with_ns}" != no; then | |||
| 1505 | CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}" | 1510 | CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}" |
| 1506 | CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}" | 1511 | CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}" |
| 1507 | LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}" | 1512 | LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}" |
| 1513 | LIBS_GNUSTEP="-lgnustep-gui -lgnustep-base -lobjc -lpthread" | ||
| 1508 | LIB_STANDARD= | 1514 | LIB_STANDARD= |
| 1509 | START_FILES= | 1515 | START_FILES= |
| 1510 | TEMACS_LDFLAGS2= | ||
| 1511 | dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1. | 1516 | dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1. |
| 1512 | dnl If they had chosen to either define it or not, we could have | 1517 | dnl If they had chosen to either define it or not, we could have |
| 1513 | dnl just used AC_CHECK_DECL here. | 1518 | dnl just used AC_CHECK_DECL here. |
| @@ -1558,7 +1563,7 @@ fail; | |||
| 1558 | fi | 1563 | fi |
| 1559 | fi | 1564 | fi |
| 1560 | 1565 | ||
| 1561 | AC_SUBST(TEMACS_LDFLAGS2) | 1566 | AC_SUBST(LIBS_GNUSTEP) |
| 1562 | 1567 | ||
| 1563 | INSTALL_ARCH_INDEP_EXTRA=install-etc | 1568 | INSTALL_ARCH_INDEP_EXTRA=install-etc |
| 1564 | ns_self_contained=no | 1569 | ns_self_contained=no |
| @@ -1998,6 +2003,9 @@ if test "${with_gtk3}" = "yes" || test "${with_gtk}" = "yes" || test "$USE_X_TOO | |||
| 1998 | GTK_OBJ=emacsgtkfixed.o | 2003 | GTK_OBJ=emacsgtkfixed.o |
| 1999 | term_header=gtkutil.h | 2004 | term_header=gtkutil.h |
| 2000 | USE_GTK_TOOLKIT="GTK3" | 2005 | USE_GTK_TOOLKIT="GTK3" |
| 2006 | if test "x$ac_enable_gtk_deprecation_warnings" = x; then | ||
| 2007 | GTK_CFLAGS="$GTK_CFLAGS -DGDK_DISABLE_DEPRECATION_WARNINGS" | ||
| 2008 | fi | ||
| 2001 | else | 2009 | else |
| 2002 | check_gtk2=yes | 2010 | check_gtk2=yes |
| 2003 | gtk3_pkg_errors="$GTK_PKG_ERRORS " | 2011 | gtk3_pkg_errors="$GTK_PKG_ERRORS " |
| @@ -2073,6 +2081,23 @@ if test "${HAVE_GTK}" = "yes"; then | |||
| 2073 | AC_CHECK_FUNCS(gtk_file_selection_new) | 2081 | AC_CHECK_FUNCS(gtk_file_selection_new) |
| 2074 | fi | 2082 | fi |
| 2075 | 2083 | ||
| 2084 | dnl Same as above for gtk_handle_box. | ||
| 2085 | HAVE_GTK_HANDLE_BOX=no | ||
| 2086 | AC_CHECK_DECL(GTK_TYPE_HANDLE_BOX, HAVE_GTK_HANDLE_BOX=yes, | ||
| 2087 | HAVE_GTK_HANDLE_BOX=no, [AC_INCLUDES_DEFAULT | ||
| 2088 | #include <gtk/gtk.h>]) | ||
| 2089 | if test "$HAVE_GTK_HANDLE_BOX" = yes; then | ||
| 2090 | AC_CHECK_FUNCS(gtk_handle_box_new) | ||
| 2091 | fi | ||
| 2092 | |||
| 2093 | dnl Same as above for gtk_tearoff_menu_item. | ||
| 2094 | HAVE_GTK_TEAROFF_MENU_ITEM=no | ||
| 2095 | AC_CHECK_DECL(GTK_TYPE_TEAROFF_MENU_ITEM, HAVE_GTK_TEAROFF_MENU_ITEM=yes, | ||
| 2096 | HAVE_GTK_TEAROFF_MENU_ITEM=no, [AC_INCLUDES_DEFAULT | ||
| 2097 | #include <gtk/gtk.h>]) | ||
| 2098 | if test "$HAVE_GTK_TEAROFF_MENU_ITEM" = yes; then | ||
| 2099 | AC_CHECK_FUNCS(gtk_tearoff_menu_item_new) | ||
| 2100 | fi | ||
| 2076 | 2101 | ||
| 2077 | dnl Check for functions introduced in 2.14 and later. | 2102 | dnl Check for functions introduced in 2.14 and later. |
| 2078 | AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \ | 2103 | AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \ |
| @@ -4348,10 +4373,6 @@ case "$opsys" in | |||
| 4348 | *) LD_SWITCH_SYSTEM_TEMACS= ;; | 4373 | *) LD_SWITCH_SYSTEM_TEMACS= ;; |
| 4349 | esac | 4374 | esac |
| 4350 | 4375 | ||
| 4351 | if test "$NS_IMPL_GNUSTEP" = "yes"; then | ||
| 4352 | LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread" | ||
| 4353 | fi | ||
| 4354 | |||
| 4355 | AC_SUBST(LD_SWITCH_SYSTEM_TEMACS) | 4376 | AC_SUBST(LD_SWITCH_SYSTEM_TEMACS) |
| 4356 | 4377 | ||
| 4357 | 4378 | ||
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index b2f89024726..2036831cb89 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2012-12-30 Wolfgang Jenkner <wjenkner@inode.at> | ||
| 2 | |||
| 3 | * functions.texi (Declare Form): | ||
| 4 | * intro.texi (A Sample Function Description): | ||
| 5 | * syntax.texi (Syntax Table Internals, Syntax Table Functions): | ||
| 6 | * variables.texi (Using Lexical Binding): Don't use @var or CAPS | ||
| 7 | in @def.. commands. (Bug#13292) | ||
| 8 | |||
| 1 | 2012-12-29 Eli Zaretskii <eliz@gnu.org> | 9 | 2012-12-29 Eli Zaretskii <eliz@gnu.org> |
| 2 | 10 | ||
| 3 | * files.texi (Changing Files): Document the return values of | 11 | * files.texi (Changing Files): Document the return values of |
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 531172031dc..10041bb664a 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi | |||
| @@ -1266,7 +1266,7 @@ obsolete, or giving its forms a special @key{TAB} indentation | |||
| 1266 | convention in Emacs Lisp mode. | 1266 | convention in Emacs Lisp mode. |
| 1267 | 1267 | ||
| 1268 | @anchor{Definition of declare} | 1268 | @anchor{Definition of declare} |
| 1269 | @defmac declare @var{specs}@dots{} | 1269 | @defmac declare specs@dots{} |
| 1270 | This macro ignores its arguments and evaluates to @code{nil}; it has | 1270 | This macro ignores its arguments and evaluates to @code{nil}; it has |
| 1271 | no run-time effect. However, when a @code{declare} form occurs in the | 1271 | no run-time effect. However, when a @code{declare} form occurs in the |
| 1272 | @var{declare} argument of a @code{defun} or @code{defsubst} function | 1272 | @var{declare} argument of a @code{defun} or @code{defsubst} function |
diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi index 12463dac09c..bee43a9bc3f 100644 --- a/doc/lispref/intro.texi +++ b/doc/lispref/intro.texi | |||
| @@ -408,7 +408,7 @@ stands for zero or more arguments. Parentheses are used when several | |||
| 408 | arguments are grouped into additional levels of list structure. Here | 408 | arguments are grouped into additional levels of list structure. Here |
| 409 | is an example: | 409 | is an example: |
| 410 | 410 | ||
| 411 | @defspec count-loop (@var{var} [@var{from} @var{to} [@var{inc}]]) @var{body}@dots{} | 411 | @defspec count-loop (var [from to [inc]]) body@dots{} |
| 412 | This imaginary special form implements a loop that executes the | 412 | This imaginary special form implements a loop that executes the |
| 413 | @var{body} forms and then increments the variable @var{var} on each | 413 | @var{body} forms and then increments the variable @var{var} on each |
| 414 | iteration. On the first iteration, the variable has the value | 414 | iteration. On the first iteration, the variable has the value |
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi index c773ca74d96..777bae6573b 100644 --- a/doc/lispref/syntax.texi +++ b/doc/lispref/syntax.texi | |||
| @@ -506,7 +506,7 @@ This function returns the current syntax table, which is the table for | |||
| 506 | the current buffer. | 506 | the current buffer. |
| 507 | @end defun | 507 | @end defun |
| 508 | 508 | ||
| 509 | @defmac with-syntax-table @var{table} @var{body}@dots{} | 509 | @defmac with-syntax-table table body@dots{} |
| 510 | This macro executes @var{body} using @var{table} as the current syntax | 510 | This macro executes @var{body} using @var{table} as the current syntax |
| 511 | table. It returns the value of the last form in @var{body}, after | 511 | table. It returns the value of the last form in @var{body}, after |
| 512 | restoring the old current syntax table. | 512 | restoring the old current syntax table. |
| @@ -998,7 +998,7 @@ corresponds to each syntax flag. | |||
| 998 | @samp{4} @tab @code{(lsh 1 19)} | 998 | @samp{4} @tab @code{(lsh 1 19)} |
| 999 | @end multitable | 999 | @end multitable |
| 1000 | 1000 | ||
| 1001 | @defun string-to-syntax @var{desc} | 1001 | @defun string-to-syntax desc |
| 1002 | Given a syntax descriptor @var{desc} (a string), this function returns | 1002 | Given a syntax descriptor @var{desc} (a string), this function returns |
| 1003 | the corresponding raw syntax descriptor. | 1003 | the corresponding raw syntax descriptor. |
| 1004 | @end defun | 1004 | @end defun |
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 4103c30f663..79f5eaa7c26 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -1057,7 +1057,7 @@ variables}. Every variable that has been defined with @code{defvar}, | |||
| 1057 | (@pxref{Defining Variables}). All other variables are subject to | 1057 | (@pxref{Defining Variables}). All other variables are subject to |
| 1058 | lexical binding. | 1058 | lexical binding. |
| 1059 | 1059 | ||
| 1060 | @defun special-variable-p SYMBOL | 1060 | @defun special-variable-p symbol |
| 1061 | This function returns non-@code{nil} if @var{symbol} is a special | 1061 | This function returns non-@code{nil} if @var{symbol} is a special |
| 1062 | variable (i.e., it has a @code{defvar}, @code{defcustom}, or | 1062 | variable (i.e., it has a @code{defvar}, @code{defcustom}, or |
| 1063 | @code{defconst} variable definition). Otherwise, the return value is | 1063 | @code{defconst} variable definition). Otherwise, the return value is |
| @@ -231,323 +231,263 @@ directory where Emacs was running. | |||
| 231 | 231 | ||
| 232 | * Installation Changes in Emacs 24.3 | 232 | * Installation Changes in Emacs 24.3 |
| 233 | 233 | ||
| 234 | --- | 234 | ** The default X toolkit is now Gtk+ version 3. |
| 235 | ** The default toolkit has been changed to Gtk+ version 3. | 235 | If you don't pass `--with-x-toolkit' to configure, or if you use |
| 236 | If you don't pass --with-x-toolkit to configure or if you pass | 236 | `--with-x-toolkit=gtk' or `--with-x-toolkit=yes', configure will try |
| 237 | --with-x-toolkit=gtk or --with-x-toolkit=yes, configure will try to build | 237 | to build with Gtk+ version 3, and if that fails, try Gtk+ version 2. |
| 238 | with Gtk+ version 3, and if that fails, try Gtk+ version 2. | ||
| 239 | You can explicitly require a specific version by passing | 238 | You can explicitly require a specific version by passing |
| 240 | --with-x-toolkit=gtk2 or --with-x-toolkit=gtk3 to configure. | 239 | `--with-x-toolkit=gtk2' or `--with-x-toolkit=gtk3' to configure. |
| 241 | |||
| 242 | --- | ||
| 243 | ** New configure option '--without-all' to disable additional features. | ||
| 244 | This disables most of the features that are normally enabled by default. | ||
| 245 | 240 | ||
| 246 | --- | 241 | ** New configure option `--enable-link-time-optimization', to utilize |
| 247 | ** New configure option '--enable-link-time-optimization' to utilize | ||
| 248 | an appropriate feature provided by GCC since version 4.5.0. | 242 | an appropriate feature provided by GCC since version 4.5.0. |
| 249 | 243 | ||
| 250 | --- | 244 | ** New configure option `--without-all' to disable most of the optional |
| 251 | ** New configure option '--enable-gcc-warnings', intended for developers. | 245 | features (image support, etc.) that are normally enabled by default. |
| 252 | If building with GCC, this enables compile-time checks that warn about | ||
| 253 | possibly-questionable C code. On a recent GNU system there should be | ||
| 254 | no warnings; on older and on non-GNU systems the generated warnings | ||
| 255 | may be useful. | ||
| 256 | 246 | ||
| 257 | --- | 247 | ** New configure option `--enable-gcc-warnings' (for developing/debugging |
| 258 | ** The configure option '--enable-use-lisp-union-type' has been | 248 | Emacs). If building with GCC, this enables compile-time checks that |
| 259 | renamed to '--enable-check-lisp-object-type', as the resulting | 249 | warn about possibly-questionable C code. On a recent GNU system there |
| 250 | should be no warnings; on older and on non-GNU systems the generated | ||
| 251 | warnings may be useful. | ||
| 252 | |||
| 253 | ** The configure option `--enable-use-lisp-union-type' has been | ||
| 254 | renamed to `--enable-check-lisp-object-type', as the resulting | ||
| 260 | Lisp_Object type no longer uses a union to implement the compile time | 255 | Lisp_Object type no longer uses a union to implement the compile time |
| 261 | check that this option enables. | 256 | check that this option enables. |
| 262 | 257 | ||
| 263 | --- | 258 | ** The configure option `--disable-maintainer-mode' has been removed, |
| 264 | ** The configure option '--disable-maintainer-mode' has been removed, | ||
| 265 | as it was confusingly-named and rarely useful. | 259 | as it was confusingly-named and rarely useful. |
| 266 | 260 | ||
| 267 | --- | ||
| 268 | ** You can use `NO_BIN_LINK=t make install' to prevent the installation | ||
| 269 | overwriting "emacs" in the installation bin/ directory with a link | ||
| 270 | to emacs-VERSION. | ||
| 271 | |||
| 272 | --- | ||
| 273 | ** The configure options `--program-prefix', `--program-suffix', and | 261 | ** The configure options `--program-prefix', `--program-suffix', and |
| 274 | `--program-transform-name' apply to more than just the installed | 262 | `--program-transform-name' apply to more than just the installed |
| 275 | binaries. Now they also affect the man pages, icons, and the | 263 | binaries. Now they also affect the man pages, icons, and the |
| 276 | etc/emacs.desktop file; but not the info pages, since this would break | 264 | etc/emacs.desktop file; but not the info pages, since this would break |
| 277 | links between the various manuals. | 265 | links between the various manuals. |
| 278 | 266 | ||
| 279 | --- | 267 | ** You can use `NO_BIN_LINK=t make install' to prevent the installation |
| 268 | overwriting "emacs" in the installation bin/ directory with a link | ||
| 269 | to "emacs-VERSION". | ||
| 270 | |||
| 280 | ** Emacs uses libtinfo in preference to libncurses, if available. | 271 | ** Emacs uses libtinfo in preference to libncurses, if available. |
| 281 | 272 | ||
| 282 | --- | ||
| 283 | ** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and | 273 | ** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and |
| 284 | /usr/pkg/lib to the linker search path. You must add them yourself if | 274 | /usr/pkg/lib to the linker search path. You must add them yourself if |
| 285 | you want them. | 275 | you want them. |
| 286 | 276 | ||
| 287 | --- | 277 | ** The standalone scripts `rcs-checkin' and `vcdiff' have been removed |
| 288 | ** The standalone scripts rcs-checkin and vcdiff have been removed | ||
| 289 | (from the bin and libexec directories, respectively). The former is | 278 | (from the bin and libexec directories, respectively). The former is |
| 290 | no longer relevant, the latter is replaced by lisp (in vc-sccs.el). | 279 | no longer relevant, the latter is replaced by lisp (in vc-sccs.el). |
| 291 | 280 | ||
| 292 | 281 | ||
| 293 | * Startup Changes in Emacs 24.3 | 282 | * Startup Changes in Emacs 24.3 |
| 294 | 283 | ||
| 295 | +++ | ||
| 296 | ** Emacs no longer searches for `leim-list.el' files beneath the standard | 284 | ** Emacs no longer searches for `leim-list.el' files beneath the standard |
| 297 | lisp/ directory. There should not be any there anyway. If you have | 285 | lisp/ directory. There should not be any there anyway. If you have |
| 298 | been adding them there, put them somewhere else, eg site-lisp. | 286 | been adding them there, put them somewhere else; e.g., site-lisp. |
| 299 | 287 | ||
| 300 | --- | ||
| 301 | ** The `--no-site-lisp' command line option now works for Nextstep builds. | 288 | ** The `--no-site-lisp' command line option now works for Nextstep builds. |
| 302 | 289 | ||
| 303 | 290 | ||
| 304 | * Changes in Emacs 24.3 | 291 | * Changes in Emacs 24.3 |
| 305 | 292 | ||
| 306 | +++ | 293 | ** Help |
| 307 | ** Most y-or-n prompts now allow you to scroll the selected window. | ||
| 308 | Typing C-v or M-v at a y-or-n prompt scrolls forward or backward | ||
| 309 | respectively, without exiting from the prompt. | ||
| 310 | |||
| 311 | ** Mode line changes | ||
| 312 | --- | ||
| 313 | *** New option `mode-line-default-help-echo' specifies the help text | ||
| 314 | (shown in a tooltip or in the echo area) for any part of the mode line | ||
| 315 | that does not have its own specialized help text. | ||
| 316 | +++ | ||
| 317 | *** You can now click mouse-3 in the coding system indicator to invoke | ||
| 318 | `set-buffer-file-coding-system'. | ||
| 319 | |||
| 320 | ** Help changes | ||
| 321 | 294 | ||
| 322 | +++ | 295 | *** `C-h f' (`describe-function') can now perform autoloading. |
| 323 | *** `C-h f' (describe-function) can now perform autoloading. | ||
| 324 | When this command is called for an autoloaded function whose docstring | 296 | When this command is called for an autoloaded function whose docstring |
| 325 | contains a key substitution construct, that function's library is | 297 | contains a key substitution construct, that function's library is |
| 326 | automatically loaded, so that the documentation can be shown | 298 | automatically loaded, so that the documentation can be shown |
| 327 | correctly. To disable this, set `help-enable-auto-load' to nil. | 299 | correctly. To disable this, set `help-enable-auto-load' to nil. |
| 328 | 300 | ||
| 329 | --- | ||
| 330 | *** `C-h f' now reports previously-autoloaded functions as "autoloaded", | 301 | *** `C-h f' now reports previously-autoloaded functions as "autoloaded", |
| 331 | even after their associated libraries have been loaded (and the | 302 | even after their associated libraries have been loaded (and the |
| 332 | autoloads have been redefined as functions). | 303 | autoloads have been redefined as functions). |
| 333 | 304 | ||
| 334 | ** Minibuffer changes | 305 | ** ImageMagick |
| 335 | --- | ||
| 336 | *** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the | ||
| 337 | next and previous path separator, respectively. | ||
| 338 | +++ | ||
| 339 | *** minibuffer-electric-default-mode can rewrite (default ...) to [...]. | ||
| 340 | Just set minibuffer-eldef-shorten-default to t before enabling the mode. | ||
| 341 | 306 | ||
| 342 | +++ | 307 | *** Images displayed via ImageMagick now support transparency and the |
| 343 | ** ImageMagick support, if available, is automatically enabled. | 308 | :background image specification property. |
| 309 | |||
| 310 | *** When available, ImageMagick support is automatically enabled. | ||
| 344 | It is no longer necessary to call `imagemagick-register-types' | 311 | It is no longer necessary to call `imagemagick-register-types' |
| 345 | explicitly to install ImageMagick image types; that function is called | 312 | explicitly to install ImageMagick image types; that function is called |
| 346 | automatically at startup, or when customizing an imagemagick- option. | 313 | automatically at startup, or when customizing an imagemagick- option. |
| 347 | +++ | 314 | |
| 348 | *** Setting `imagemagick-types-inhibit' to t now disables the use of | 315 | *** Setting `imagemagick-types-inhibit' to t now disables the use of |
| 349 | ImageMagick to view images. You must call imagemagick-register-types | 316 | ImageMagick to view images. (You must call `imagemagick-register-types' |
| 350 | afterwards if you do not use customize to change this. | 317 | afterwards if you do not use customize to change this.) |
| 351 | +++ | 318 | |
| 352 | *** The new variable `imagemagick-enabled-types' also affects which | 319 | *** The new variable `imagemagick-enabled-types' also affects which |
| 353 | ImageMagick types are treated as images. The function | 320 | ImageMagick types are treated as images. The function |
| 354 | `imagemagick-filter-types' returns the list of types that will be | 321 | `imagemagick-filter-types' returns the list of types that will be |
| 355 | treated as images. | 322 | treated as images. |
| 356 | --- | ||
| 357 | *** Images displayed via ImageMagick now support transparency and the | ||
| 358 | :background image spec property. | ||
| 359 | 323 | ||
| 360 | ** Server and client changes | 324 | ** Minibuffer |
| 361 | +++ | 325 | |
| 326 | *** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the | ||
| 327 | next and previous path separator, respectively. | ||
| 328 | |||
| 329 | *** `minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]" | ||
| 330 | in minibuffer prompts. Just set `minibuffer-eldef-shorten-default' | ||
| 331 | non-nil before enabling the mode. | ||
| 332 | |||
| 333 | ** Mode line | ||
| 334 | |||
| 335 | *** New option `mode-line-default-help-echo' specifies the help text | ||
| 336 | (shown in a tooltip or in the echo area) for any part of the mode line | ||
| 337 | that does not have its own specialized help text. | ||
| 338 | |||
| 339 | *** You can now click mouse-3 in the coding system indicator to invoke | ||
| 340 | `set-buffer-file-coding-system'. | ||
| 341 | |||
| 342 | ** Server and client | ||
| 343 | |||
| 362 | *** emacsclient now obeys string values for `initial-buffer-choice', | 344 | *** emacsclient now obeys string values for `initial-buffer-choice', |
| 363 | if it is told to open a new frame without specifying any file to visit | 345 | if it is told to open a new frame without specifying any file to visit |
| 364 | or expression to evaluate. | 346 | or expression to evaluate. |
| 365 | --- | ||
| 366 | *** New option `server-auth-key' specifies a shared server key. | ||
| 367 | |||
| 368 | +++ | ||
| 369 | ** In the Package Menu, newly-available packages are listed as "new", | ||
| 370 | and sorted above the other "available" packages by default. | ||
| 371 | 347 | ||
| 372 | +++ | 348 | *** New option `server-auth-key' specifies a shared server key. |
| 373 | ** `C-x C-q' is now bound to the new minor mode `read-only-mode'. | ||
| 374 | This minor mode replaces `toggle-read-only', which is now obsolete. | ||
| 375 | 349 | ||
| 376 | +++ | ||
| 377 | ** Emacs now generates backtraces on fatal errors. | 350 | ** Emacs now generates backtraces on fatal errors. |
| 378 | On encountering a fatal error, Emacs now outputs a textual description | 351 | On encountering a fatal error, Emacs now outputs a textual description |
| 379 | of the fatal signal, and a short backtrace on platforms like glibc | 352 | of the fatal signal, and a short backtrace on platforms like glibc |
| 380 | that support backtraces. | 353 | that support backtraces. |
| 381 | 354 | ||
| 382 | --- | 355 | ** `C-x C-q' is now bound to the new minor mode `read-only-mode'. |
| 356 | This minor mode replaces `toggle-read-only', which is now obsolete. | ||
| 357 | |||
| 358 | ** Most `y-or-n' prompts now allow you to scroll the selected window. | ||
| 359 | Typing `C-v' or `M-v' at a y-or-n prompt scrolls forward or backward | ||
| 360 | respectively, without exiting from the prompt. | ||
| 361 | |||
| 362 | ** In the Package Menu, newly-available packages are listed as "new", | ||
| 363 | and sorted above the other "available" packages by default. | ||
| 364 | |||
| 383 | ** If your Emacs was built from a bzr checkout, the new variable | 365 | ** If your Emacs was built from a bzr checkout, the new variable |
| 384 | `emacs-bzr-version' contains information about the bzr revision used. | 366 | `emacs-bzr-version' contains information about the bzr revision used. |
| 385 | 367 | ||
| 386 | +++ | 368 | ** New option `create-lockfiles' specifies usage of lockfiles. |
| 387 | ** New variable `create-lockfiles' specifies usage of lockfiles. | ||
| 388 | It defaults to t. Changing it to nil inhibits the creation of lock | 369 | It defaults to t. Changing it to nil inhibits the creation of lock |
| 389 | files (use this with caution). | 370 | files (use this with caution). |
| 390 | 371 | ||
| 391 | +++ | 372 | ** New option `enable-remote-dir-locals', if non-nil, allows directory-local |
| 392 | ** Using "unibyte: t" in Lisp source files is obsolete. | 373 | variables on remote hosts. |
| 393 | Use "coding: raw-text" instead. | ||
| 394 | 374 | ||
| 395 | +++ | ||
| 396 | ** Setting `enable-remote-dir-locals' to non-nil allows directory | ||
| 397 | local variables on remote hosts. | ||
| 398 | |||
| 399 | --- | ||
| 400 | ** The entry for PCL-CVS has been removed from the Tools menu. | 375 | ** The entry for PCL-CVS has been removed from the Tools menu. |
| 401 | The PCL-CVS commands are still available via the keyboard. | 376 | The PCL-CVS commands are still available via the keyboard. |
| 402 | 377 | ||
| 403 | ** Internationalization changes | 378 | ** Using "unibyte: t" in Lisp source files is obsolete. |
| 404 | --- | 379 | Use "coding: raw-text" instead. |
| 380 | |||
| 381 | ** Internationalization | ||
| 382 | |||
| 405 | *** New language environment: Persian. | 383 | *** New language environment: Persian. |
| 406 | --- | 384 | |
| 407 | *** New input method `vietnamese-vni'. | 385 | *** New input method `vietnamese-vni'. |
| 408 | 386 | ||
| 409 | ** Nextstep (GNUstep / Mac OS X) port changes | 387 | ** Nextstep (GNUstep / Mac OS X) port |
| 410 | --- | 388 | |
| 411 | *** Fullscreen and frame parameter fullscreen is supported. | 389 | *** Support for fullscreen and the frame parameter fullscreen. |
| 412 | --- | 390 | |
| 413 | *** A file dialog is used for open/save operations initiated from the | 391 | *** A file dialog is used for open/save operations initiated from the |
| 414 | menu/toolbar. | 392 | menu/toolbar. |
| 415 | 393 | ||
| 416 | 394 | ||
| 417 | * Editing Changes in Emacs 24.3 | 395 | * Editing Changes in Emacs 24.3 |
| 418 | 396 | ||
| 419 | ** Navigation command changes | 397 | ** Search and Replace |
| 420 | +++ | ||
| 421 | *** New binding `M-g c' for `goto-char'. | ||
| 422 | +++ | ||
| 423 | *** New binding `M-g TAB' for `move-to-column'. | ||
| 424 | +++ | ||
| 425 | *** `M-g TAB' (`move-to-column') prompts for a column number if called | ||
| 426 | interactively with no prefix arg. Previously, it moved to column 1. | ||
| 427 | 398 | ||
| 428 | ** Search and Replace changes | ||
| 429 | +++ | ||
| 430 | *** Non-regexp Isearch now performs "lax" space matching. | 399 | *** Non-regexp Isearch now performs "lax" space matching. |
| 431 | Each sequence of spaces in the supplied search string may match any | 400 | Each sequence of spaces in the supplied search string may match any |
| 432 | sequence of one or more whitespace characters, as specified by the | 401 | sequence of one or more whitespace characters, as specified by the |
| 433 | variable `search-whitespace-regexp'. (This variable is also used by a | 402 | variable `search-whitespace-regexp'. (This variable is also used by a |
| 434 | similar existing feature for regexp Isearch). | 403 | similar existing feature for regexp Isearch.) |
| 435 | +++ | 404 | |
| 436 | *** New Isearch command `M-s SPC' toggles lax space matching. | 405 | *** New Isearch command `M-s SPC' toggles lax space matching. |
| 437 | This applies to both ordinary and regexp Isearch. | 406 | This applies to both ordinary and regexp Isearch. |
| 438 | +++ | 407 | |
| 439 | *** New option `replace-lax-whitespace'. | 408 | *** New option `replace-lax-whitespace'. |
| 440 | If non-nil, `query-replace' uses flexible whitespace matching too. | 409 | If non-nil, `query-replace' uses flexible whitespace matching too. |
| 441 | The default is nil. | 410 | The default is nil. |
| 442 | +++ | 411 | |
| 443 | *** Global `M-s _' starts a symbol (identifier) incremental search, | 412 | *** Global `M-s _' starts a symbol (identifier) incremental search, |
| 444 | and `M-s _' in Isearch toggles symbol search mode. | 413 | and `M-s _' in Isearch toggles symbol search mode. |
| 445 | `M-s c' in Isearch toggles search case-sensitivity. | 414 | `M-s c' in Isearch toggles search case-sensitivity. |
| 446 | 415 | ||
| 447 | +++ | 416 | ** Navigation commands |
| 448 | ** `C-x 8 RET' is now bound to `insert-char', which is now a command. | ||
| 449 | `ucs-insert' is now an obsolete alias for `insert-char'. | ||
| 450 | 417 | ||
| 451 | --- | 418 | *** New binding `M-g c' for `goto-char'. |
| 452 | ** The `z' key no longer has a binding in most special modes. | 419 | |
| 453 | It used to be bound to `kill-this-buffer', but `z' is too easy to | 420 | *** New binding `M-g TAB' for `move-to-column'. |
| 454 | accidentally type. | 421 | |
| 422 | *** `M-g TAB' (`move-to-column') prompts for a column number if called | ||
| 423 | interactively with no prefix arg. Previously, it moved to column 1. | ||
| 424 | |||
| 425 | ** New option `yank-handled-properties' allows processing of text | ||
| 426 | properties on yanked text, in ways that are more general than just | ||
| 427 | removing them (as is done by `yank-excluded-properties'). | ||
| 455 | 428 | ||
| 456 | +++ | ||
| 457 | ** New option `delete-trailing-lines' specifies whether | 429 | ** New option `delete-trailing-lines' specifies whether |
| 458 | M-x delete-trailing-whitespace should delete trailing lines at the end | 430 | M-x delete-trailing-whitespace should delete trailing lines at the end |
| 459 | of the buffer. It defaults to t. | 431 | of the buffer. It defaults to t. |
| 460 | 432 | ||
| 461 | ** Register changes | ||
| 462 | +++ | ||
| 463 | *** `C-x r +' is now overloaded to invoke `append-to-register. | ||
| 464 | +++ | ||
| 465 | *** New option `register-separator' specifies the register containing | ||
| 466 | the text to put between collected texts for use with M-x | ||
| 467 | append-to-register and M-x prepend-to-register. | ||
| 468 | |||
| 469 | +++ | ||
| 470 | ** `C-u M-=' now counts lines/words/characters in the entire buffer. | 433 | ** `C-u M-=' now counts lines/words/characters in the entire buffer. |
| 471 | 434 | ||
| 472 | +++ | 435 | ** `C-x 8 RET' is now bound to `insert-char', which is now a command. |
| 473 | ** New command `C-x r M-w' (copy-rectangle-as-kill). | 436 | `ucs-insert' is now an obsolete alias for `insert-char'. |
| 474 | It copies the region-rectangle as the last rectangle kill. | ||
| 475 | |||
| 476 | +++ | ||
| 477 | ** New option `yank-handled-properties' allows processing of text | ||
| 478 | properties on yanked text, in more ways that are more general than | ||
| 479 | just removing them, as done by `yank-excluded-properties'. | ||
| 480 | |||
| 481 | |||
| 482 | * Changes in Specialized Modes and Packages in Emacs 24.3 | ||
| 483 | 437 | ||
| 484 | ** Apropos | 438 | ** The `z' key no longer has a binding in most special modes. |
| 485 | --- | 439 | It used to be bound to `kill-this-buffer', but `z' is too easy to |
| 486 | *** The faces used by Apropos are now directly customizable. | 440 | accidentally type. |
| 487 | These faces are named `apropos-symbol', `apropos-keybinding', and so on; | ||
| 488 | see the `apropos' Custom group for details. | ||
| 489 | --- | ||
| 490 | *** The old options whose values specified faces to use were removed | ||
| 491 | (i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.). | ||
| 492 | 441 | ||
| 493 | ** Buffer Menu | 442 | ** New command `C-x r M-w' (`copy-rectangle-as-kill'). |
| 494 | This package has been rewritten to use Tabulated List mode. | 443 | It copies the region-rectangle as the last rectangle kill. |
| 495 | --- | ||
| 496 | *** Option `Buffer-menu-buffer+size-width' is now obsolete. | ||
| 497 | Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead. | ||
| 498 | 444 | ||
| 499 | ** Calendar | 445 | ** Registers |
| 500 | 446 | ||
| 501 | +++ | 447 | *** `C-x r +' is now overloaded to invoke `append-to-register'. |
| 502 | *** You can customize the header text that appears above each calendar month. | ||
| 503 | See the variable `calendar-month-header'. | ||
| 504 | 448 | ||
| 505 | +++ | 449 | *** New option `register-separator' specifies the register containing |
| 506 | *** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'. | 450 | the text to put between collected texts for use with |
| 451 | M-x append-to-register and M-x prepend-to-register. | ||
| 507 | 452 | ||
| 508 | +++ | 453 | |
| 509 | *** The calendars produced by cal-html include holidays. | 454 | * Changes in Specialized Modes and Packages in Emacs 24.3 |
| 510 | Customize `cal-html-holidays' to change this. | ||
| 511 | 455 | ||
| 512 | ** CL | 456 | ** Common Lisp emulation (CL) |
| 513 | 457 | ||
| 514 | +++ | ||
| 515 | *** CL's main entry is now (require 'cl-lib). | 458 | *** CL's main entry is now (require 'cl-lib). |
| 516 | `cl-lib' is like the old `cl' except that it uses the namespace cleanly, | 459 | `cl-lib' is like the old `cl' except that it uses the namespace cleanly; |
| 517 | i.e. all its definitions have the "cl-" prefix (and internal definitions use | 460 | i.e., all its definitions have the "cl-" prefix (and internal definitions |
| 518 | the "cl--" prefix). | 461 | use the "cl--" prefix). |
| 519 | 462 | ||
| 520 | If `cl' provided a feature under the name `foo', then `cl-lib' provides it | 463 | If `cl' provided a feature under the name `foo', then `cl-lib' |
| 521 | under the name `cl-foo' instead, with the exceptions of the few definitions | 464 | provides it under the name `cl-foo' instead; with the exceptions of the |
| 522 | that had to use `foo*' to avoid conflicts with pre-existing Elisp entities, | 465 | few `cl' definitions that had to use `foo*' to avoid conflicts with |
| 523 | which have not been renamed to `cl-foo*' but just `cl-foo'. | 466 | pre-existing Elisp entities. These have been renamed to `cl-foo' |
| 467 | rather than `cl-foo*'. | ||
| 524 | 468 | ||
| 525 | The old `cl' is now deprecated and is mainly just a bunch of aliases that | 469 | The old `cl' is now deprecated and is mainly just a bunch of aliases that |
| 526 | provide the old non-prefixed names. Some exceptions are listed below. | 470 | provide the old, non-prefixed names. Some exceptions are listed below: |
| 527 | 471 | ||
| 528 | +++ | ||
| 529 | *** `cl-flet' is not like `flet' (which is deprecated). | 472 | *** `cl-flet' is not like `flet' (which is deprecated). |
| 530 | Instead it obeys the behavior of Common-Lisp's `flet'. | 473 | Instead it obeys the behavior of Common-Lisp's `flet'. |
| 531 | In particular, in cl-flet function definitions are lexically scoped, | 474 | In particular, in cl-flet function definitions are lexically scoped, |
| 532 | whereas in flet the scoping is dynamic. | 475 | whereas in flet the scoping is dynamic. |
| 533 | 476 | ||
| 534 | +++ | ||
| 535 | *** `cl-labels' is slightly different from `labels'. | 477 | *** `cl-labels' is slightly different from `labels'. |
| 536 | The difference is that it relies on the `lexical-binding' machinery (as opposed | 478 | The difference is that it relies on the `lexical-binding' machinery |
| 537 | to the `lexical-let' machinery used previously) to capture definitions in | 479 | (as opposed to the `lexical-let' machinery used previously) to capture |
| 538 | closures, so such closures will only work if `lexical-binding' is in use. | 480 | definitions in closures, so such closures will only work if `lexical-binding' |
| 481 | is in use. | ||
| 539 | 482 | ||
| 540 | +++ | ||
| 541 | *** `cl-letf' is not exactly like `letf'. | 483 | *** `cl-letf' is not exactly like `letf'. |
| 542 | The only difference is in details that relate to some deprecated usage | 484 | The only difference is in details that relate to some deprecated usage |
| 543 | of `symbol-function' in place forms. | 485 | of `symbol-function' in place forms. |
| 544 | 486 | ||
| 545 | +++ | ||
| 546 | *** `progv' was rewritten to use the `let' machinery. | 487 | *** `progv' was rewritten to use the `let' machinery. |
| 547 | A side effect is that vars without corresponding value are bound to nil | 488 | A side effect is that variables without corresponding values are bound |
| 548 | rather than making them unbound. | 489 | to nil rather than being made unbound. |
| 549 | 490 | ||
| 550 | +++ | ||
| 551 | *** The following methods of extending `setf' are obsolete | 491 | *** The following methods of extending `setf' are obsolete |
| 552 | (use features from gv.el instead): | 492 | (use features from gv.el instead): |
| 553 | `define-modify-macro' (use `gv-letplace') | 493 | `define-modify-macro' (use `gv-letplace') |
| @@ -555,295 +495,281 @@ rather than making them unbound. | |||
| 555 | `define-setf-expander' (use `gv-define-setter' or `gv-define-expander') | 495 | `define-setf-expander' (use `gv-define-setter' or `gv-define-expander') |
| 556 | `get-setf-method' no longer exists (see "Incompatible Lisp Changes") | 496 | `get-setf-method' no longer exists (see "Incompatible Lisp Changes") |
| 557 | 497 | ||
| 558 | +++ | 498 | ** Diff mode |
| 559 | ** New compilation option `compilation-always-kill'. | ||
| 560 | 499 | ||
| 561 | ** Customize | 500 | *** Changes are now highlighted using the same color scheme as in |
| 562 | --- | 501 | modern VCSes. Deletions are displayed in red (new faces |
| 563 | *** `custom-reset-button-menu' now defaults to t. | 502 | `diff-refine-removed' and `smerge-refined-removed', and new definition |
| 564 | --- | 503 | of `diff-removed'), insertions in green (new faces `diff-refine-added' |
| 565 | *** Non-option variables are never matched in `customize-apropos' and | 504 | and `smerge-refined-added', and new definition of `diff-added'). |
| 566 | `customize-apropos-options' (i.e. the prefix argument does nothing for | ||
| 567 | these commands now). | ||
| 568 | 505 | ||
| 569 | --- | 506 | *** The variable `diff-use-changed-face' defines whether to use the |
| 570 | ** `desktop-path' no longer includes the "." directory. | 507 | face `diff-changed', or `diff-removed' and `diff-added' to highlight |
| 571 | Desktop files are now located in ~/.emacs.d by default. | 508 | changes in context diffs. |
| 509 | |||
| 510 | *** The new command `diff-delete-trailing-whitespace' removes trailing | ||
| 511 | whitespace introduced by a diff. | ||
| 512 | |||
| 513 | ** Ediff now uses the same color scheme as Diff mode. | ||
| 514 | |||
| 515 | ** Python mode | ||
| 516 | |||
| 517 | A new version of python.el, which provides several new features, including: | ||
| 518 | per-buffer shells, better indentation, Python 3 support, and improved | ||
| 519 | shell-interaction compatible with iPython (and virtually any other | ||
| 520 | text based shell). | ||
| 521 | |||
| 522 | *** Some user options have been replaced/renamed, including (old -> new): | ||
| 523 | **** python-indent -> python-indent-offset | ||
| 524 | **** python-guess-indent -> python-indent-guess-indent-offset | ||
| 525 | **** python-pdbtrack-do-tracking-p -> python-pdbtrack-activate | ||
| 526 | **** python-use-skeletons -> python-skeleton-autoinsert | ||
| 527 | |||
| 528 | *** Some user options have been removed, including: | ||
| 529 | |||
| 530 | **** `python-indent-string-contents': Strings are never indented. | ||
| 531 | |||
| 532 | **** `python-honour-comment-indentation': | ||
| 533 | Comments are always considered as indentation markers. | ||
| 534 | |||
| 535 | **** `python-continuation-offset': Indentation is automatically | ||
| 536 | calculated in a pep8 compliant way depending on the context. | ||
| 537 | |||
| 538 | **** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist': | ||
| 539 | Have no direct mapping as the shell interaction is completely different. | ||
| 540 | |||
| 541 | **** `python-python-command', `python-jython-command': | ||
| 542 | Replaced by `python-shell-interpreter'. | ||
| 543 | |||
| 544 | **** `inferior-python-filter-regexp', `python-remove-cwd-from-path', | ||
| 545 | `python-pdbtrack-minor-mode-string', `python-source-modes': | ||
| 546 | No longer relevant. | ||
| 547 | |||
| 548 | *** Some commands have been replaced (old -> new): | ||
| 549 | **** python-insert-class -> python-skeleton-class | ||
| 550 | **** python-insert-def -> python-skeleton-def | ||
| 551 | **** python-insert-for -> python-skeleton-for | ||
| 552 | **** python-insert-if -> python-skeleton-if | ||
| 553 | **** python-insert-try/except -> python-skeleton-try | ||
| 554 | **** python-insert-try/finally -> python-skeleton-try | ||
| 555 | **** python-insert-while -> python-skeleton-while | ||
| 556 | **** python-find-function -> python-nav-jump-to-defun | ||
| 557 | **** python-next-statement -> python-nav-forward-sentence | ||
| 558 | **** python-previous-statement -> python-nav-backward-sentence | ||
| 559 | **** python-beginning-of-defun-function -> python-nav-beginning-of-defun | ||
| 560 | **** python-end-of-defun-function -> python-nav-end-of-defun | ||
| 561 | **** python-send-buffer -> python-shell-send-buffer | ||
| 562 | **** python-send-defun -> python-shell-send-defun | ||
| 563 | **** python-send-region -> python-shell-send-region | ||
| 564 | **** python-send-region-and-go -> emulate with python-shell-send-region | ||
| 565 | and python-shell-switch-to-shell | ||
| 566 | **** python-send-string -> python-shell-send-string | ||
| 567 | **** python-switch-to-python -> python-shell-switch-to-shell | ||
| 568 | **** python-describe-symbol -> python-eldoc-at-point | ||
| 572 | 569 | ||
| 573 | ** D-Bus | 570 | ** D-Bus |
| 574 | 571 | ||
| 575 | +++ | ||
| 576 | *** New variables `dbus-compiled-version' and `dbus-runtime-version'. | 572 | *** New variables `dbus-compiled-version' and `dbus-runtime-version'. |
| 577 | 573 | ||
| 578 | +++ | ||
| 579 | *** The D-Bus object manager interface is implemented. | 574 | *** The D-Bus object manager interface is implemented. |
| 580 | 575 | ||
| 581 | +++ | ||
| 582 | *** Variables of type :(u)int32 and :(u)int64 accept floating points, | 576 | *** Variables of type :(u)int32 and :(u)int64 accept floating points, |
| 583 | if their value does not fit into Emacs's integer range. | 577 | if their value does not fit into Emacs's integer range. |
| 584 | 578 | ||
| 585 | +++ | 579 | *** The function `dbus-call-method' is now non-blocking. |
| 586 | *** The function `dbus-call-method' works non-blocking now, it can be | 580 | It can be interrupted by `C-g'. `dbus-call-method-non-blocking' is obsolete. |
| 587 | interrupted by C-g. `dbus-call-method-non-blocking' is obsolete. | ||
| 588 | 581 | ||
| 589 | +++ | 582 | *** Signals can also be sent as unicast messages. |
| 590 | *** Signals can be sent also as unicast message. | ||
| 591 | 583 | ||
| 592 | +++ | ||
| 593 | *** The argument list of `dbus-register-signal' has been extended, | 584 | *** The argument list of `dbus-register-signal' has been extended, |
| 594 | according to the new match rule types of D-Bus. See the manual for | 585 | according to the new match rule types of D-Bus. |
| 595 | details. | ||
| 596 | 586 | ||
| 597 | +++ | ||
| 598 | *** `dbus-init-bus' supports private connections. | 587 | *** `dbus-init-bus' supports private connections. |
| 599 | 588 | ||
| 600 | +++ | ||
| 601 | *** There is a new function `dbus-setenv'. | 589 | *** There is a new function `dbus-setenv'. |
| 602 | 590 | ||
| 603 | ** Diff mode | 591 | ** `desktop-path' no longer includes the "." directory. |
| 604 | 592 | Desktop files are now located in ~/.emacs.d by default. | |
| 605 | --- | ||
| 606 | *** Changes are now highlighted using the same color scheme as in | ||
| 607 | modern VCSes. Deletions are displayed in red (new faces | ||
| 608 | `diff-refine-removed' and `smerge-refined-removed', and new definition | ||
| 609 | of `diff-removed'), insertions in green (new faces `diff-refine-added' | ||
| 610 | and `smerge-refined-added', and new definition of `diff-added'). | ||
| 611 | |||
| 612 | --- | ||
| 613 | *** The variable `diff-use-changed-face' defines whether to use the | ||
| 614 | face `diff-changed', or `diff-removed' and `diff-added' to highlight | ||
| 615 | changes in context diffs. | ||
| 616 | |||
| 617 | +++ | ||
| 618 | *** The new command `diff-delete-trailing-whitespace' removes trailing | ||
| 619 | whitespace introduced by a diff. | ||
| 620 | 593 | ||
| 621 | ** Dired | 594 | ** Dired |
| 622 | +++ | 595 | |
| 623 | *** `dired-do-async-shell-command' executes each file sequentially | 596 | *** `dired-do-async-shell-command' executes each file sequentially |
| 624 | if the command ends in `;' (when operating on multiple files). | 597 | if the command ends in `;' (when operating on multiple files). |
| 625 | Otherwise, it executes the command on each file in parallel. | 598 | Otherwise, it executes the command on each file in parallel. |
| 626 | --- | 599 | |
| 627 | *** Typing M-n in the minibuffer of `dired-do-chmod', `dired-do-chgrp', | 600 | *** Typing `M-n' in the minibuffer of `dired-do-chmod', `dired-do-chgrp', |
| 628 | `dired-do-chown', `dired-do-touch' pulls the file attributes of the | 601 | `dired-do-chown', and `dired-do-touch' yanks the attributes of the |
| 629 | file at point. | 602 | file at point. |
| 630 | +++ | 603 | |
| 631 | *** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'), | 604 | *** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'), |
| 632 | `DEL' (`dired-unmark-backward'), `d' (`dired-flag-file-deletion') | 605 | `DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion') |
| 633 | mark/unmark/flag all files in the active region. | 606 | mark/unmark/flag all files in the active region. |
| 634 | +++ | 607 | |
| 635 | *** The minibuffer default for `=' (`dired-diff) has changed. | 608 | *** The minibuffer default for `=' (`dired-diff) has changed. |
| 636 | It is now the backup file for the file at point, if one exists. | 609 | It is now the backup file for the file at point, if one exists. |
| 637 | In Transient Mark mode the default is the file at the active mark. | 610 | In Transient Mark mode the default is the file at the active mark. |
| 638 | +++ | 611 | |
| 639 | *** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers. | 612 | *** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers. |
| 640 | The global binding for `M-=', `count-words-region' is in effect. | 613 | The global binding for `M-=', `count-words-region' is in effect. |
| 641 | 614 | ||
| 642 | --- | ||
| 643 | ** Ediff now uses the same color scheme as Diff mode. | ||
| 644 | |||
| 645 | ** ERC | 615 | ** ERC |
| 646 | 616 | ||
| 647 | +++ | ||
| 648 | *** New module "notifications", which can send a notification when you | 617 | *** New module "notifications", which can send a notification when you |
| 649 | receive a private message or your nickname is mentioned. | 618 | receive a private message or your nickname is mentioned. |
| 650 | 619 | ||
| 651 | +++ | ||
| 652 | *** ERC will look up server/channel names via auth-source and use any | 620 | *** ERC will look up server/channel names via auth-source and use any |
| 653 | channel keys found. | 621 | channel keys found. |
| 654 | 622 | ||
| 655 | +++ | ||
| 656 | *** New option `erc-lurker-hide-list', similar to `erc-hide-list', but | 623 | *** New option `erc-lurker-hide-list', similar to `erc-hide-list', but |
| 657 | only applies to messages sent by lurkers. | 624 | only applies to messages sent by lurkers. |
| 658 | 625 | ||
| 659 | +++ | 626 | ** reStructuredText mode |
| 660 | ** Flymake uses fringe bitmaps to indicate errors and warnings. | ||
| 661 | See `flymake-fringe-indicator-position', `flymake-error-bitmap' and | ||
| 662 | `flymake-warning-bitmap'. | ||
| 663 | |||
| 664 | --- | ||
| 665 | ** Follow mode no longer works by using advice. | ||
| 666 | The option `follow-intercept-processes' has been removed. | ||
| 667 | |||
| 668 | --- | ||
| 669 | ** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings, | ||
| 670 | specifying URL types that should be converted to remote file names at | ||
| 671 | the FFAP prompt. The default is now '("ftp"). | ||
| 672 | 627 | ||
| 673 | --- | 628 | *** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling, |
| 674 | ** New Ibuffer `derived-mode' filter, bound to `/ M'. | 629 | fontification, comment handling, and customization have all been revised |
| 675 | The old binding for `/ M' (filter by used-mode) is now bound to `/ m'. | 630 | and improved. |
| 676 | 631 | ||
| 677 | --- | 632 | *** Support for `imenu' and `which-function-mode'. |
| 678 | ** `javascript-generic-mode' is now an obsolete alias for `js-mode'. | ||
| 679 | 633 | ||
| 680 | +++ | 634 | *** The reStructuredText syntax is more closely covered. |
| 681 | ** New option `mouse-avoidance-banish-position' specifies where the | 635 | Sphinx support has been improved. |
| 682 | `banish' mouse avoidance setting moves the mouse. | ||
| 683 | 636 | ||
| 684 | +++ | 637 | *** `rst-insert-list' inserts new list or continues existing lists. |
| 685 | ** notifications.el supports now version 1.2 of the Notifications API. | ||
| 686 | The function `notifications-get-capabilities' returns the supported | ||
| 687 | server properties. | ||
| 688 | 638 | ||
| 689 | --- | 639 | *** A negative prefix argument always works for `rst-adjust'. |
| 690 | ** In Perl mode, new option `perl-indent-parens-as-block' causes non-block | ||
| 691 | closing brackets to be aligned with the line of the opening bracket. | ||
| 692 | 640 | ||
| 693 | --- | 641 | *** The window configuration is reset after displaying a TOC. |
| 694 | ** In Proced mode, new command `proced-renice' renices marked processes. | ||
| 695 | 642 | ||
| 696 | --- | 643 | *** The constant `rst-version' describes the rst.el package version. |
| 697 | ** Python mode | ||
| 698 | 644 | ||
| 699 | A new version of python.el, which provides several new features, including: | 645 | ** Shell Script mode |
| 700 | per-buffer shells, better indentation, Python 3 support, and improved | ||
| 701 | shell-interaction compatible with iPython (and virtually any other | ||
| 702 | text based shell). | ||
| 703 | 646 | ||
| 704 | *** Some user options have been replaced/renamed: | 647 | *** Pairing of parens/quotes uses `electric-pair-mode' instead of skeleton-pair. |
| 705 | Old defcustom: | New defcustom: | ||
| 706 | python-indent | python-indent-offset | ||
| 707 | python-guess-indent | python-indent-guess-indent-offset | ||
| 708 | python-pdbtrack-do-tracking-p | python-pdbtrack-activate | ||
| 709 | python-use-skeletons | python-skeleton-autoinsert | ||
| 710 | 648 | ||
| 711 | *** Some user options have been removed: | 649 | *** `sh-electric-here-document-mode' now controls auto-insertion of here-docs. |
| 712 | 650 | ||
| 713 | **** `python-indent-string-contents': Strings are never indented. | 651 | *** `sh-use-smie' lets you choose a new indentation and navigation code. |
| 714 | 652 | ||
| 715 | **** `python-honour-comment-indentation': | 653 | ** VHDL mode |
| 716 | Comments are never considered as indentation markers themselves. | ||
| 717 | 654 | ||
| 718 | **** `python-continuation-offset': Indentation is automatically | 655 | *** The free software compiler GHDL is supported (and now the default). |
| 719 | calculated in a pep8 compliant way depending on the context. | ||
| 720 | 656 | ||
| 721 | **** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist': | 657 | *** Support for the VHDL-AMS packages has been added/updated. |
| 722 | Have no direct mapping as the shell interaction is completely different. | ||
| 723 | 658 | ||
| 724 | **** `python-python-command', `python-jython-command': | 659 | *** Updated to the 2002 revision of the VHDL standard. |
| 725 | Replaced by `python-shell-interpreter'. | ||
| 726 | 660 | ||
| 727 | **** `inferior-python-filter-regexp', `python-remove-cwd-from-path', | 661 | *** Accepts \r and \f as whitespace. |
| 728 | `python-pdbtrack-minor-mode-string', `python-source-modes': | ||
| 729 | No longer relevant. | ||
| 730 | 662 | ||
| 731 | *** Some commands have been replaced: | 663 | ** Apropos |
| 732 | Old command | New command | ||
| 733 | python-insert-class | python-skeleton-class | ||
| 734 | python-insert-def | python-skeleton-def | ||
| 735 | python-insert-for | python-skeleton-for | ||
| 736 | python-insert-if | python-skeleton-if | ||
| 737 | python-insert-try/except | python-skeleton-try | ||
| 738 | python-insert-try/finally | python-skeleton-try | ||
| 739 | python-insert-while | python-skeleton-while | ||
| 740 | python-find-function | python-nav-jump-to-defun | ||
| 741 | python-next-statement | python-nav-forward-sentence | ||
| 742 | python-previous-statement | python-nav-backward-sentence | ||
| 743 | python-beginning-of-defun-function | python-nav-beginning-of-defun | ||
| 744 | python-end-of-defun-function | python-nav-end-of-defun | ||
| 745 | python-send-buffer | python-shell-send-buffer | ||
| 746 | python-send-defun | python-shell-send-defun | ||
| 747 | python-send-region | python-shell-send-region | ||
| 748 | python-send-region-and-go | Emulate with python-shell-send-region and | ||
| 749 | python-shell-switch-to-shell | ||
| 750 | python-send-string | python-shell-send-string | ||
| 751 | python-switch-to-python | python-shell-switch-to-shell | ||
| 752 | python-describe-symbol | python-eldoc-at-point | ||
| 753 | 664 | ||
| 754 | --- | 665 | *** The faces used by Apropos are now directly customizable. |
| 755 | ** reStructuredText mode | 666 | These faces are named `apropos-symbol', `apropos-keybinding', and so on; |
| 667 | see the `apropos' Custom group for details. | ||
| 756 | 668 | ||
| 757 | *** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling, | 669 | *** The old options whose values specified faces to use have been removed |
| 758 | fontification, comment handling, and customization have all been revised | 670 | (i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.). |
| 759 | and improved. | ||
| 760 | 671 | ||
| 761 | *** Support for `imenu' and `which-function-mode'. | 672 | ** Buffer Menu |
| 762 | 673 | ||
| 763 | *** The reStructuredText syntax is more closely covered. | 674 | *** This package has been rewritten to use Tabulated List mode. |
| 764 | Sphinx support has been improved. | ||
| 765 | 675 | ||
| 766 | *** `rst-insert-list' inserts new list or continues existing lists. | 676 | *** Option `Buffer-menu-buffer+size-width' is now obsolete. |
| 677 | Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead. | ||
| 767 | 678 | ||
| 768 | *** A negative prefix argument always works for `rst-adjust'. | 679 | ** Calendar |
| 769 | 680 | ||
| 770 | *** The window configuration is reset after displaying a TOC. | 681 | *** You can customize the header text that appears above each calendar month. |
| 682 | See the variable `calendar-month-header'. | ||
| 771 | 683 | ||
| 772 | *** The constant `rst-version' describes the rst.el package version. | 684 | *** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'. |
| 773 | 685 | ||
| 774 | --- | 686 | *** The calendars produced by cal-html include holidays. |
| 775 | ** Shell Script mode | 687 | Customize `cal-html-holidays' to change this. |
| 776 | 688 | ||
| 777 | *** Pairing of parens/quotes uses electric-pair-mode instead of skeleton-pair. | 689 | ** Compile has a new option `compilation-always-kill'. |
| 778 | 690 | ||
| 779 | *** `sh-electric-here-document-mode' now controls auto-insertion of here-docs. | 691 | ** Customize |
| 780 | 692 | ||
| 781 | *** `sh-use-smie' lets you choose a new indentation and navigation code. | 693 | *** `custom-reset-button-menu' now defaults to t. |
| 782 | 694 | ||
| 783 | +++ | 695 | *** Non-option variables are never matched in `customize-apropos' and |
| 784 | ** New option `async-shell-command-buffer' specifies the buffer to use | 696 | `customize-apropos-options' (i.e., the prefix argument does nothing for |
| 785 | for a new asynchronous `shell-command' when the default output buffer | 697 | these commands now). |
| 786 | `*Async Shell Command*' is already in use. | ||
| 787 | 698 | ||
| 788 | --- | 699 | ** Term |
| 789 | ** SQL mode has a new option `sql-db2-escape-newlines'. | ||
| 790 | If non-nil, newlines sent to the command interpreter will be escaped | ||
| 791 | by a backslash. The default does not escape the newlines and assumes | ||
| 792 | that the sql statement will be terminated by a semicolon. | ||
| 793 | 700 | ||
| 794 | ** Tabulated List and packages derived from it | 701 | *** The variables `term-default-fg-color' and `term-default-bg-color' |
| 795 | +++ | 702 | are now deprecated in favor of the customizable face `term'. |
| 796 | *** New command `tabulated-list-sort', bound to `S', sorts the column | ||
| 797 | at point, or the Nth column if a numeric prefix argument is given. | ||
| 798 | 703 | ||
| 799 | ** Term | ||
| 800 | +++ | ||
| 801 | *** The variables `term-default-fg-color' and `term-default-bg-color' are | ||
| 802 | now deprecated in favor of the customizable face `term'. | ||
| 803 | +++ | ||
| 804 | *** You can customize how to display ANSI terminal colors and styles | 704 | *** You can customize how to display ANSI terminal colors and styles |
| 805 | by customizing the corresponding `term-color-<COLOR>', | 705 | by customizing the corresponding `term-color-<COLOR>', |
| 806 | `term-color-underline' and `term-color-bold' faces. | 706 | `term-color-underline' and `term-color-bold' faces. |
| 807 | 707 | ||
| 808 | ** Tramp | 708 | ** Tramp |
| 809 | +++ | 709 | |
| 810 | *** The syntax has been extended in order to allow ad-hoc proxy definitions. | 710 | *** The syntax has been extended in order to allow ad-hoc proxy definitions. |
| 811 | See the manual for details. | 711 | |
| 812 | +++ | 712 | *** Remote processes are now also supported on remote MS-Windows hosts. |
| 813 | *** Remote processes are now supported also on remote Windows host. | ||
| 814 | 713 | ||
| 815 | ** URL | 714 | ** URL |
| 816 | +++ | 715 | |
| 817 | *** Structs made by `url-generic-parse-url' have nil `attributes' slot. | 716 | *** Structs made by `url-generic-parse-url' have nil `attributes' slot. |
| 818 | Previously, this slot stored semicolon-separated attribute-value pairs | 717 | Previously, this slot stored semicolon-separated attribute-value pairs |
| 819 | appended to some imap URLs, but this is not compatible with RFC 3986. | 718 | appended to some imap URLs, but this is not compatible with RFC 3986. |
| 820 | So now the `filename' slot stores the entire path and query components | 719 | So now the `filename' slot stores the entire path and query components, |
| 821 | and the `attributes' slot is always nil. | 720 | and the `attributes' slot is always nil. |
| 822 | +++ | 721 | |
| 823 | *** New function `url-encode-url' for encoding a URI string. | 722 | *** New function `url-encode-url' for encoding a URI string. |
| 824 | The `url-retrieve' function now uses this to encode its URL argument, | 723 | The `url-retrieve' function now uses this to encode its URL argument, |
| 825 | in case that is not properly encoded. | 724 | in case that is not properly encoded. |
| 826 | 725 | ||
| 827 | --- | 726 | ** notifications.el supports now version 1.2 of the Notifications API. |
| 828 | ** VHDL mode | 727 | The function `notifications-get-capabilities' returns the supported |
| 728 | server properties. | ||
| 829 | 729 | ||
| 830 | *** The free software compiler GHDL is supported (and now the default). | 730 | ** Flymake uses fringe bitmaps to indicate errors and warnings. |
| 731 | See `flymake-fringe-indicator-position', `flymake-error-bitmap' and | ||
| 732 | `flymake-warning-bitmap'. | ||
| 831 | 733 | ||
| 832 | *** Support for the VHDL-AMS packages has been added/updated. | 734 | ** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings, |
| 735 | specifying URL types that should be converted to remote file names at | ||
| 736 | the FFAP prompt. The default is now '("ftp"). | ||
| 833 | 737 | ||
| 834 | *** Updated to the 2002 revision of the VHDL standard. | 738 | ** New Ibuffer `derived-mode' filter, bound to `/ M'. |
| 739 | The old binding for `/ M' (filter by used-mode) is now bound to `/ m'. | ||
| 835 | 740 | ||
| 836 | *** Accepts \r and \f as whitespace. | 741 | ** New option `mouse-avoidance-banish-position' specifies where the |
| 742 | `banish' mouse avoidance setting moves the mouse. | ||
| 743 | |||
| 744 | ** In Perl mode, new option `perl-indent-parens-as-block' causes non-block | ||
| 745 | closing brackets to be aligned with the line of the opening bracket. | ||
| 746 | |||
| 747 | ** In Proced mode, new command `proced-renice' renices marked processes. | ||
| 748 | |||
| 749 | ** New option `async-shell-command-buffer' specifies the buffer to use | ||
| 750 | for a new asynchronous `shell-command' when the default output buffer | ||
| 751 | `*Async Shell Command*' is already in use. | ||
| 752 | |||
| 753 | ** SQL mode has a new option `sql-db2-escape-newlines'. | ||
| 754 | If non-nil, newlines sent to the command interpreter will be escaped | ||
| 755 | by a backslash. The default does not escape the newlines and assumes | ||
| 756 | that the sql statement will be terminated by a semicolon. | ||
| 757 | |||
| 758 | ** New command `tabulated-list-sort', bound to `S' in Tabulated List mode | ||
| 759 | (and modes that derive from it), sorts the column at point, or the Nth | ||
| 760 | column if a numeric prefix argument is given. | ||
| 837 | 761 | ||
| 838 | +++ | ||
| 839 | ** `which-func-modes' now defaults to t, so Which Function mode, when | 762 | ** `which-func-modes' now defaults to t, so Which Function mode, when |
| 840 | enabled, applies to all applicable major modes. | 763 | enabled, applies to all applicable major modes. |
| 841 | 764 | ||
| 842 | --- | 765 | ** `winner-mode-hook' now runs when the mode is disabled, as well as when |
| 843 | ** winner-mode-hook now runs when the mode is disabled, as well as when it is | 766 | it is enabled. |
| 844 | enabled. | 767 | |
| 768 | ** Follow mode no longer works by using advice. | ||
| 769 | The option `follow-intercept-processes' has been removed. | ||
| 770 | |||
| 771 | ** `javascript-generic-mode' is now an obsolete alias for `js-mode'. | ||
| 845 | 772 | ||
| 846 | +++ | ||
| 847 | ** Hooks renamed to avoid obsolete "-hooks" suffix: | 773 | ** Hooks renamed to avoid obsolete "-hooks" suffix: |
| 848 | *** semantic-lex-reset-hooks -> semantic-lex-reset-functions | 774 | *** semantic-lex-reset-hooks -> semantic-lex-reset-functions |
| 849 | *** semantic-change-hooks -> semantic-change-functions | 775 | *** semantic-change-hooks -> semantic-change-functions |
| @@ -868,86 +794,68 @@ enabled. | |||
| 868 | *** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions | 794 | *** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions |
| 869 | *** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions | 795 | *** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions |
| 870 | 796 | ||
| 871 | ** Obsolete packages: | 797 | ** Obsolete packages |
| 872 | +++ | 798 | |
| 873 | *** assoc.el | 799 | *** assoc.el |
| 874 | In most cases, assoc+member+push+delq work just as well. | 800 | In most cases, assoc+member+push+delq work just as well. |
| 875 | And in any case it's just a terrible package: ugly semantics, terrible | 801 | And in any case it's just a terrible package: ugly semantics, terrible |
| 876 | inefficiency, and not namespace-clean. | 802 | inefficiency, and not namespace-clean. |
| 877 | --- | ||
| 878 | *** bruce.el | 803 | *** bruce.el |
| 879 | +++ | ||
| 880 | *** cust-print.el | 804 | *** cust-print.el |
| 881 | --- | ||
| 882 | *** ledit.el | 805 | *** ledit.el |
| 883 | --- | ||
| 884 | *** mailpost.el | 806 | *** mailpost.el |
| 885 | +++ | ||
| 886 | *** mouse-sel.el | 807 | *** mouse-sel.el |
| 887 | --- | ||
| 888 | *** patcomp.el | 808 | *** patcomp.el |
| 889 | 809 | ||
| 890 | 810 | ||
| 891 | * Incompatible Lisp Changes in Emacs 24.3 | 811 | * Incompatible Lisp Changes in Emacs 24.3 |
| 892 | 812 | ||
| 893 | +++ | 813 | ** Docstrings starting with `*' no longer indicate user options. |
| 894 | ** set-buffer-multibyte now signals an error in narrowed buffers. | 814 | Only variables defined using `defcustom' are considered user options. |
| 815 | The function `user-variable-p' is now an obsolete alias for | ||
| 816 | `custom-variable-p'. | ||
| 895 | 817 | ||
| 896 | +++ | 818 | ** The return values of `defalias', `defun' and `defmacro' have changed, |
| 897 | ** (random) by default now returns a different random sequence in | 819 | and are now undefined. For backwards compatibility, `defun' and |
| 898 | every Emacs run. Use (random S), where S is a string, to set the | 820 | `defmacro' currently return the name of the newly defined |
| 821 | function/macro, but this should not be relied upon. | ||
| 822 | |||
| 823 | ** `random' by default now returns a different random sequence in | ||
| 824 | every Emacs run. Use `(random S)', where S is a string, to set the | ||
| 899 | random seed to a value based on S, in order to get a repeatable | 825 | random seed to a value based on S, in order to get a repeatable |
| 900 | sequence in later calls. | 826 | sequence in later calls. |
| 901 | 827 | ||
| 902 | --- | ||
| 903 | ** The function `x-select-font' can return a font spec, instead of a | ||
| 904 | font name as a string. Whether it returns a font spec or a font name | ||
| 905 | depends on the graphical library. | ||
| 906 | |||
| 907 | +++ | ||
| 908 | ** If the NEWTEXT arg to `replace-match' contains a substring "\?", | 828 | ** If the NEWTEXT arg to `replace-match' contains a substring "\?", |
| 909 | that substring is inserted literally even if the LITERAL arg is | 829 | that substring is inserted literally even if the LITERAL arg is |
| 910 | non-nil, instead of causing an error to be signaled. | 830 | non-nil, instead of causing an error to be signaled. |
| 911 | 831 | ||
| 912 | +++ | ||
| 913 | ** `select-window' now always makes the window's buffer current. | 832 | ** `select-window' now always makes the window's buffer current. |
| 914 | It does so even if the window was selected before. | 833 | It does so even if the window was selected before. |
| 915 | 834 | ||
| 916 | +++ | 835 | ** The function `x-select-font' can return a font spec, instead of a |
| 917 | ** Docstrings starting with `*' no longer indicate user options. | 836 | font name as a string. Whether it returns a font spec or a font name |
| 918 | Only variables defined using `defcustom' are considered user options. | 837 | depends on the graphical library. |
| 919 | The function `user-variable-p' is now an obsolete alias for | ||
| 920 | `custom-variable-p'. | ||
| 921 | |||
| 922 | +++ | ||
| 923 | ** The return values of `defalias', `defun' and `defmacro' have changed, | ||
| 924 | and are now undefined. For backwards compatibility, `defun' and | ||
| 925 | `defmacro' currently return the name of the newly defined | ||
| 926 | function/macro, but this should not be relied upon. | ||
| 927 | 838 | ||
| 928 | --- | ||
| 929 | ** `face-spec-set' no longer sets frame-specific attributes when the | 839 | ** `face-spec-set' no longer sets frame-specific attributes when the |
| 930 | third argument is a frame (that usage was obsolete since Emacs 22.2). | 840 | third argument is a frame (that usage was obsolete since Emacs 22.2). |
| 931 | 841 | ||
| 932 | +++ | 842 | ** `set-buffer-multibyte' now signals an error in narrowed buffers. |
| 933 | ** The arguments of `dbus-register-signal' are no longer just strings, | ||
| 934 | but keywords or keyword-string pairs. The old argument list will | ||
| 935 | still be supported for Emacs 24.x. | ||
| 936 | 843 | ||
| 937 | +++ | ||
| 938 | ** The CL package's `get-setf-method' function no longer exists. | 844 | ** The CL package's `get-setf-method' function no longer exists. |
| 939 | Generalized variables are now part of core Emacs Lisp, and implemented | 845 | Generalized variables are now part of core Emacs Lisp, and implemented |
| 940 | differently to the way cl.el used to do it. It is not possible to | 846 | differently to the way cl.el used to do it. It is not possible to |
| 941 | define a compatible replacement for `get-setf-method'. See the file | 847 | define a compatible replacement for `get-setf-method'. See the file |
| 942 | gv.el for internal details of the new implementation. | 848 | gv.el for internal details of the new implementation. |
| 943 | 849 | ||
| 944 | ** Spelling changes. | 850 | ** The arguments of `dbus-register-signal' are no longer just strings, |
| 945 | Some Lisp symbols have been renamed to avoid problems with spelling | 851 | but keywords or keyword-string pairs. The old argument list will |
| 946 | that is incorrect or inconsistent with how Emacs normally spells a word. | 852 | still be supported for Emacs 24.x. |
| 947 | 853 | ||
| 948 | --- | 854 | ** Miscellaneous name changes |
| 949 | *** Renamed functions | 855 | Some Lisp symbols have been renamed to correct their spelling, |
| 856 | or to be more consistent with standard Emacs terminology. | ||
| 950 | 857 | ||
| 858 | *** Renamed functions | ||
| 951 | **** hangul-input-method-inactivate -> hangul-input-method-deactivate | 859 | **** hangul-input-method-inactivate -> hangul-input-method-deactivate |
| 952 | **** inactivate-input-method -> deactivate-input-method | 860 | **** inactivate-input-method -> deactivate-input-method |
| 953 | **** quail-inactivate -> quail-deactivate | 861 | **** quail-inactivate -> quail-deactivate |
| @@ -957,7 +865,6 @@ that is incorrect or inconsistent with how Emacs normally spells a word. | |||
| 957 | viper-deactivate-input-method-action | 865 | viper-deactivate-input-method-action |
| 958 | **** ucs-input-inactivate -> ucs-input-deactivate | 866 | **** ucs-input-inactivate -> ucs-input-deactivate |
| 959 | 867 | ||
| 960 | --- | ||
| 961 | *** Renamed hooks | 868 | *** Renamed hooks |
| 962 | The old hooks are still supported for backward compatibility, but they | 869 | The old hooks are still supported for backward compatibility, but they |
| 963 | are deprecated and will be removed eventually. | 870 | are deprecated and will be removed eventually. |
| @@ -965,13 +872,11 @@ are deprecated and will be removed eventually. | |||
| 965 | **** robin-inactivate-hook -> robin-deactivate-hook | 872 | **** robin-inactivate-hook -> robin-deactivate-hook |
| 966 | **** quail-inactivate-hook -> quail-deactivate-hook | 873 | **** quail-inactivate-hook -> quail-deactivate-hook |
| 967 | 874 | ||
| 968 | --- | 875 | *** Renamed variables |
| 969 | *** Renamed Lisp variables | ||
| 970 | **** follow-deactive-menu -> follow-inactive-menu | 876 | **** follow-deactive-menu -> follow-inactive-menu |
| 971 | **** inactivate-current-input-method-function -> | 877 | **** inactivate-current-input-method-function -> |
| 972 | deactivate-current-input-method-function | 878 | deactivate-current-input-method-function |
| 973 | 879 | ||
| 974 | +++ | ||
| 975 | ** Some obsolete functions, variables, and faces have been removed: | 880 | ** Some obsolete functions, variables, and faces have been removed: |
| 976 | *** `last-input-char', `last-command-char', `unread-command-char' | 881 | *** `last-input-char', `last-command-char', `unread-command-char' |
| 977 | *** `facemenu-unlisted-faces' | 882 | *** `facemenu-unlisted-faces' |
| @@ -996,26 +901,34 @@ are deprecated and will be removed eventually. | |||
| 996 | 901 | ||
| 997 | * Lisp changes in Emacs 24.3 | 902 | * Lisp changes in Emacs 24.3 |
| 998 | 903 | ||
| 999 | ** New sampling-based Elisp profiler. | ||
| 1000 | Try M-x profiler-start, do some work, and then call M-x profiler-report. | ||
| 1001 | When finished, use M-x profiler-stop. The sampling rate can be based on | ||
| 1002 | CPU time or memory allocations. | ||
| 1003 | |||
| 1004 | +++ | ||
| 1005 | ** CL-style generalized variables are now in core Elisp. | 904 | ** CL-style generalized variables are now in core Elisp. |
| 1006 | `setf' is autoloaded; `push' and `pop' accept generalized variables. | 905 | `setf' is autoloaded; `push' and `pop' accept generalized variables. |
| 1007 | You can define your own generalized variables using `gv-define-simple-setter', | 906 | You can define your own generalized variables using `gv-define-simple-setter', |
| 1008 | `gv-define-setter', etc. | 907 | `gv-define-setter', etc. |
| 1009 | 908 | ||
| 1010 | +++ | 909 | ** Emacs tries to macroexpand interpreted (non-compiled) files during load. |
| 910 | This can significantly speed up execution of non-byte-compiled code, | ||
| 911 | but can also bump into previously unnoticed cyclic dependencies. | ||
| 912 | These are generally harmless: they will simply cause the macro calls | ||
| 913 | to be left for later expansion (as before), but will result in a | ||
| 914 | warning ("Eager macro-expansion skipped due to cycle") describing the cycle. | ||
| 915 | You may wish to restructure your code so this does not happen. | ||
| 916 | |||
| 917 | ** New sampling-based Elisp profiler. | ||
| 918 | Try M-x profiler-start, do some work, and then call M-x profiler-report. | ||
| 919 | When finished, use M-x profiler-stop. The sampling rate can be based on | ||
| 920 | CPU time or memory allocations. | ||
| 921 | |||
| 1011 | ** `defun' also accepts a (declare DECLS) form, like `defmacro'. | 922 | ** `defun' also accepts a (declare DECLS) form, like `defmacro'. |
| 1012 | The interpretation of the DECLS is determined by `defun-declarations-alist'. | 923 | The interpretation of the DECLS is determined by `defun-declarations-alist'. |
| 1013 | 924 | ||
| 1014 | ** Minibuffer | 925 | ** New macros `setq-local' and `defvar-local'. |
| 1015 | +++ | 926 | |
| 1016 | *** `read-regexp' has a new argument HISTORY; the first argument PROMPT | 927 | ** Face underlining can now use a wave. |
| 928 | |||
| 929 | ** `read-regexp' has a new argument HISTORY; the first argument PROMPT | ||
| 1017 | of `read-regexp' accepts a string ending with a colon and space, and its | 930 | of `read-regexp' accepts a string ending with a colon and space, and its |
| 1018 | second argument DEFAULTS can be a list of strings accessible via M-n | 931 | second argument DEFAULTS can be a list of strings accessible via `M-n' |
| 1019 | in the minibuffer ahead of other hard-coded useful regexp-related values. | 932 | in the minibuffer ahead of other hard-coded useful regexp-related values. |
| 1020 | More commands use `read-regexp' now to read their regexp arguments. | 933 | More commands use `read-regexp' now to read their regexp arguments. |
| 1021 | 934 | ||
| @@ -1024,211 +937,164 @@ More commands use `read-regexp' now to read their regexp arguments. | |||
| 1024 | *** New function `completion-table-with-quoting' to handle completion | 937 | *** New function `completion-table-with-quoting' to handle completion |
| 1025 | in the presence of quoting, such as file completion in shell buffers. | 938 | in the presence of quoting, such as file completion in shell buffers. |
| 1026 | 939 | ||
| 1027 | +++ | ||
| 1028 | *** New function `completion-table-subvert' to use an existing completion | 940 | *** New function `completion-table-subvert' to use an existing completion |
| 1029 | table, but with a different prefix. | 941 | table, but with a different prefix. |
| 1030 | 942 | ||
| 1031 | ** Debugger changes | 943 | ** Debugger |
| 1032 | 944 | ||
| 1033 | +++ | ||
| 1034 | *** New error type and new function `user-error'. | 945 | *** New error type and new function `user-error'. |
| 1035 | These do not trigger the debugger. | 946 | These do not trigger the debugger. |
| 1036 | 947 | ||
| 1037 | +++ | ||
| 1038 | *** New option `debugger-bury-or-kill', saying what to do with the | 948 | *** New option `debugger-bury-or-kill', saying what to do with the |
| 1039 | debugger buffer when exiting debug. | 949 | debugger buffer when exiting debug. |
| 1040 | 950 | ||
| 1041 | +++ | ||
| 1042 | *** Set `debug-on-message' to enter the debugger when a certain | 951 | *** Set `debug-on-message' to enter the debugger when a certain |
| 1043 | message is displayed in the echo area. This can be useful when trying | 952 | message is displayed in the echo area. This can be useful when trying |
| 1044 | to work out which code is doing something. | 953 | to work out which code is doing something. |
| 1045 | --- | 954 | |
| 1046 | *** New var `inhibit-debugger', automatically set to prevent accidental | 955 | *** New var `inhibit-debugger', automatically set to prevent accidental |
| 1047 | recursive invocations. | 956 | recursive invocations. |
| 1048 | 957 | ||
| 1049 | ** Window changes | 958 | ** Window handling |
| 1050 | +++ | 959 | |
| 1051 | *** The functions get-lru-window, get-mru-window and get-largest-window | 960 | *** New command `fit-frame-to-buffer' adjusts the frame height to |
| 1052 | now accept a third argument to avoid choosing the selected window. | 961 | fit the contents. |
| 1053 | +++ | 962 | |
| 1054 | *** Additional values recognized for option `window-combination-limit'. | 963 | *** The command `fit-window-to-buffer' can adjust the frame height |
| 964 | if the new option `fit-frame-to-buffer' is non-nil. | ||
| 1055 | 965 | ||
| 1056 | +++ | ||
| 1057 | *** New macro `with-temp-buffer-window', similar to | 966 | *** New macro `with-temp-buffer-window', similar to |
| 1058 | `with-output-to-temp-buffer'. | 967 | `with-output-to-temp-buffer'. |
| 1059 | 968 | ||
| 1060 | --- | ||
| 1061 | *** `temp-buffer-resize-mode' no longer resizes windows that have been | 969 | *** `temp-buffer-resize-mode' no longer resizes windows that have been |
| 1062 | reused. | 970 | reused. |
| 1063 | 971 | ||
| 1064 | +++ | 972 | *** New option `switch-to-buffer-preserve-window-point' to restore a |
| 1065 | *** New command `fit-frame-to-buffer' adjusts the frame height to | 973 | window's point when switching buffers. |
| 1066 | fit the contents. | ||
| 1067 | 974 | ||
| 1068 | +++ | 975 | *** New display action alist entries `window-height' and `window-width' |
| 1069 | *** The command `fit-window-to-buffer' can adjust the frame height | 976 | specify the size of new windows created by `display-buffer'. |
| 1070 | if the new option `fit-frame-to-buffer' is non-nil. | 977 | |
| 978 | *** New display action alist entry `pop-up-frame-parameters', if | ||
| 979 | non-nil, specifies frame parameters to give any newly-created frame. | ||
| 1071 | 980 | ||
| 1072 | +++ | ||
| 1073 | *** New option switch-to-buffer-preserve-window-point to restore a | ||
| 1074 | window's point when switching buffers. | ||
| 1075 | +++ | ||
| 1076 | *** New display action functions `display-buffer-below-selected', | ||
| 1077 | and `display-buffer-in-previous-window'. | ||
| 1078 | +++ | ||
| 1079 | *** New display action alist entry `inhibit-switch-frame', if non-nil, | 981 | *** New display action alist entry `inhibit-switch-frame', if non-nil, |
| 1080 | tells display action functions to avoid changing which frame is | 982 | tells display action functions to avoid changing which frame is |
| 1081 | selected. | 983 | selected. |
| 1082 | +++ | 984 | |
| 1083 | *** New display action alist entry `pop-up-frame-parameters', if | ||
| 1084 | non-nil, specifies frame parameters to give any newly-created frame. | ||
| 1085 | +++ | ||
| 1086 | *** New display action alist entry `previous-window', if non-nil, | 985 | *** New display action alist entry `previous-window', if non-nil, |
| 1087 | specifies window to reuse in `display-buffer-in-previous-window'. | 986 | specifies window to reuse in `display-buffer-in-previous-window'. |
| 1088 | +++ | 987 | |
| 1089 | *** New display action alist entries `window-height' and `window-width' | 988 | *** New display action functions `display-buffer-below-selected', |
| 1090 | to specify size of new window created by `display-buffer'. | 989 | and `display-buffer-in-previous-window'. |
| 990 | |||
| 991 | *** The functions `get-lru-window', `get-mru-window' and `get-largest-window' | ||
| 992 | now accept a third argument to avoid choosing the selected window. | ||
| 993 | |||
| 994 | *** Additional values recognized for option `window-combination-limit'. | ||
| 1091 | 995 | ||
| 1092 | *** The following variables are obsolete, as they can be replaced by | 996 | *** The following variables are obsolete, as they can be replaced by |
| 1093 | appropriate entries in the `display-buffer-alist' function introduced | 997 | appropriate entries in the `display-buffer-alist' function introduced |
| 1094 | in Emacs 24.1: | 998 | in Emacs 24.1: |
| 1095 | +++ | 999 | **** `dired-shrink-to-fit' |
| 1096 | **** `display-buffer-reuse-frames' | 1000 | **** `display-buffer-reuse-frames' |
| 1097 | +++ | 1001 | **** `display-buffer-function' |
| 1098 | **** `special-display-regexps' | ||
| 1099 | +++ | ||
| 1100 | **** `special-display-frame-alist' | ||
| 1101 | +++ | ||
| 1102 | **** `special-display-buffer-names' | 1002 | **** `special-display-buffer-names' |
| 1103 | +++ | 1003 | **** `special-display-frame-alist' |
| 1104 | **** `special-display-function' | 1004 | **** `special-display-function' |
| 1105 | +++ | 1005 | **** `special-display-regexps' |
| 1106 | **** `display-buffer-function' | ||
| 1107 | --- | ||
| 1108 | **** `dired-shrink-to-fit' | ||
| 1109 | 1006 | ||
| 1110 | ** Time | 1007 | ** Time |
| 1111 | --- | 1008 | |
| 1112 | *** `current-time-string' no longer requires that its argument's year | 1009 | *** `current-time-string' no longer requires that its argument's year |
| 1113 | must be in the range 1000..9999. It now works with any year supported | 1010 | must be in the range 1000..9999. It now works with any year supported |
| 1114 | by the underlying C implementation. | 1011 | by the underlying C implementation. |
| 1115 | +++ | 1012 | |
| 1116 | *** `current-time' now returns extended-format time stamps | 1013 | *** `current-time' now returns extended-format time stamps |
| 1117 | (HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds. | 1014 | (HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds. |
| 1118 | PSEC is typically a multiple of 1000 on current machines. Other | 1015 | PSEC is typically a multiple of 1000 on current machines. Other |
| 1119 | functions that use this format, such as file-attributes and | 1016 | functions that use this format, such as `file-attributes' and |
| 1120 | format-time-string, have been changed accordingly. Old-format time | 1017 | `format-time-string', have been changed accordingly. Old-format time |
| 1121 | stamps are still accepted. | 1018 | stamps are still accepted. |
| 1122 | --- | 1019 | |
| 1123 | *** The format of timers in timer-list and timer-idle-list is now | 1020 | *** The format of timers in `timer-list' and `timer-idle-list' is now |
| 1124 | [TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS]. | 1021 | [TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS]. |
| 1125 | The PSECS slot is new, and uses picosecond resolution. It can be | 1022 | The PSECS slot is new, and uses picosecond resolution. It can be |
| 1126 | accessed via the new timer--psecs accessor. | 1023 | accessed via the new `timer--psecs' accessor. |
| 1127 | +++ | 1024 | |
| 1128 | *** Last-modified time stamps in undo lists now are of the form | 1025 | *** Last-modified time stamps in undo lists now are of the form |
| 1129 | (t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS). | 1026 | (t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS). |
| 1130 | 1027 | ||
| 1131 | +++ | ||
| 1132 | ** Floating point functions now always return special values like NaN, | 1028 | ** Floating point functions now always return special values like NaN, |
| 1133 | instead of signaling errors, if given invalid args, e.g. (log -1.0). | 1029 | instead of signaling errors, if given invalid args; e.g., (log -1.0). |
| 1134 | Previously, they returned NaNs on some platforms but signaled errors | 1030 | Previously, they returned NaNs on some platforms but signaled errors |
| 1135 | on others. The affected functions are acos, asin, tan, exp, expt, | 1031 | on others. The affected functions are acos, asin, tan, exp, expt, |
| 1136 | log, log10, sqrt, and mod. | 1032 | log, log10, sqrt, and mod. |
| 1137 | 1033 | ||
| 1138 | +++ | 1034 | ** New fringe bitmap `exclamation-mark'. |
| 1139 | ** Emacs tries to macroexpand interpreted (non-compiled) files during load. | 1035 | |
| 1140 | This can significantly speed up execution of non-byte-compiled code, | 1036 | ** Miscellaneous changes to special forms and macros |
| 1141 | but can also bump into previously unnoticed cyclic dependencies. | 1037 | |
| 1142 | These are generally harmless: they will simply cause the macro calls | 1038 | *** `defun' and `defmacro' are now macros rather than special forms. |
| 1143 | to be left for later expansion (as before), but will result in a | 1039 | |
| 1144 | warning ("Eager macro-expansion skipped due to cycle") describing the cycle. | 1040 | *** `kbd' is now a function rather than a macro. |
| 1145 | You may wish to restructure your code so this does not happen. | 1041 | |
| 1042 | ** Miscellaneous new functions | ||
| 1043 | |||
| 1044 | *** `set-temporary-overlay-map' sets up a temporary keymap that | ||
| 1045 | takes precedence over most other maps for a short while (normally one key). | ||
| 1146 | 1046 | ||
| 1147 | ** Miscellaneous new functions: | ||
| 1148 | +++ | ||
| 1149 | *** `autoloadp' tests if its argument is an autoloaded object. | 1047 | *** `autoloadp' tests if its argument is an autoloaded object. |
| 1150 | +++ | 1048 | |
| 1151 | *** `autoload-do-load' performs the autoloading operation. | 1049 | *** `autoload-do-load' performs the autoloading operation. |
| 1152 | +++ | 1050 | |
| 1153 | *** `buffer-narrowed-p' tests if the buffer is narrowed. | 1051 | *** `buffer-narrowed-p' tests if the buffer is narrowed. |
| 1154 | +++ | 1052 | |
| 1155 | *** `file-name-base' returns a file name sans directory and extension. | 1053 | *** `file-name-base' returns a file name sans directory and extension. |
| 1156 | +++ | 1054 | |
| 1157 | *** `function-get' fetches a function property, following aliases. | 1055 | *** `function-get' fetches a function property, following aliases. |
| 1158 | +++ | ||
| 1159 | *** `posnp' tests if an object is a `posn'. | ||
| 1160 | +++ | ||
| 1161 | *** `set-temporary-overlay-map' sets up a temporary keymap that | ||
| 1162 | takes precedence over most other maps for a short while (normally one key). | ||
| 1163 | +++ | ||
| 1164 | *** `system-users' returns the user names on the system. | ||
| 1165 | +++ | ||
| 1166 | *** `system-groups' returns the group names on the system. | ||
| 1167 | +++ | ||
| 1168 | *** `tty-top-frame' returns the topmost frame of a text terminal. | ||
| 1169 | 1056 | ||
| 1170 | +++ | 1057 | *** `posnp' tests if an object is a `posn'. |
| 1171 | ** New macros `setq-local' and `defvar-local'. | ||
| 1172 | 1058 | ||
| 1173 | ** Changes to special forms and macros | 1059 | *** `system-users' returns the user names on the system. |
| 1174 | +++ | ||
| 1175 | *** `defun' and `defmacro' are now macros rather than special forms | ||
| 1176 | +++ | ||
| 1177 | *** `kbd' is now a function rather than a macro. | ||
| 1178 | 1060 | ||
| 1179 | +++ | 1061 | *** `system-groups' returns the group names on the system. |
| 1180 | ** New fringe bitmap `exclamation-mark'. | ||
| 1181 | 1062 | ||
| 1182 | +++ | 1063 | *** `tty-top-frame' returns the topmost frame of a text terminal. |
| 1183 | ** Face underlining can now use a wave. | ||
| 1184 | 1064 | ||
| 1185 | ** The following functions and variables are obsolete: | 1065 | ** The following functions and variables are obsolete: |
| 1186 | --- | ||
| 1187 | *** `automount-dir-prefix' (use `directory-abbrev-alist') | 1066 | *** `automount-dir-prefix' (use `directory-abbrev-alist') |
| 1188 | +++ | ||
| 1189 | *** `buffer-has-markers-at' | 1067 | *** `buffer-has-markers-at' |
| 1190 | --- | ||
| 1191 | *** `macro-declaration-function' (use `macro-declarations-alist') | 1068 | *** `macro-declaration-function' (use `macro-declarations-alist') |
| 1192 | --- | ||
| 1193 | *** `window-system-version' (provides no useful information) | 1069 | *** `window-system-version' (provides no useful information) |
| 1194 | --- | ||
| 1195 | *** `dired-pop-to-buffer' (use `dired-mark-pop-up') | 1070 | *** `dired-pop-to-buffer' (use `dired-mark-pop-up') |
| 1196 | --- | ||
| 1197 | *** `query-replace-interactive' | 1071 | *** `query-replace-interactive' |
| 1198 | --- | ||
| 1199 | *** `font-list-limit' (has had no effect since Emacs < 23) | 1072 | *** `font-list-limit' (has had no effect since Emacs < 23) |
| 1200 | 1073 | ||
| 1201 | 1074 | ||
| 1202 | * Changes in Emacs 24.3 on non-free operating systems | 1075 | * Changes in Emacs 24.3 on non-free operating systems |
| 1203 | 1076 | ||
| 1204 | --- | ||
| 1205 | ** Cygwin builds can use the native MS Windows user interface. | 1077 | ** Cygwin builds can use the native MS Windows user interface. |
| 1206 | Pass --with-w32 to configure. The default remains the X11 interface. | 1078 | Pass `--with-w32' to configure. The default remains the X11 interface. |
| 1207 | 1079 | ||
| 1208 | +++ | ||
| 1209 | ** Two new functions are available in Cygwin builds: | 1080 | ** Two new functions are available in Cygwin builds: |
| 1210 | `cygwin-convert-file-name-from-windows' and | 1081 | `cygwin-convert-file-name-from-windows' and |
| 1211 | `cygwin-convert-file-name-to-windows'. These functions allow Lisp | 1082 | `cygwin-convert-file-name-to-windows'. These functions allow Lisp |
| 1212 | code to access the Cygwin file-name mapping machinery to convert | 1083 | code to access the Cygwin file-name mapping machinery to convert |
| 1213 | between Cygwin and Windows-native file and directory names. | 1084 | between Cygwin and Windows-native file and directory names. |
| 1214 | 1085 | ||
| 1215 | --- | ||
| 1216 | ** When invoked with the -nw switch to run on the Windows text-mode terminal, | 1086 | ** When invoked with the -nw switch to run on the Windows text-mode terminal, |
| 1217 | Emacs now supports `mouse-highlight', help-echo (in the echo area), and | 1087 | Emacs now supports `mouse-highlight', help-echo (in the echo area), and |
| 1218 | `mouse-autoselect-window'. | 1088 | `mouse-autoselect-window'. |
| 1219 | 1089 | ||
| 1220 | +++ | ||
| 1221 | ** On MS Windows Vista and later Emacs now supports symbolic links. | 1090 | ** On MS Windows Vista and later Emacs now supports symbolic links. |
| 1222 | 1091 | ||
| 1223 | +++ | 1092 | ** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit |
| 1224 | ** On MS Windows, you can pass --without-libxml2 to configure.bat to omit | ||
| 1225 | support for libxml2, even if its presence is detected. | 1093 | support for libxml2, even if its presence is detected. |
| 1226 | 1094 | ||
| 1227 | --- | ||
| 1228 | ** On Mac OS X, the Nextstep port requires OS X 10.4 or later. | 1095 | ** On Mac OS X, the Nextstep port requires OS X 10.4 or later. |
| 1229 | 1096 | ||
| 1230 | --- | 1097 | ** On Mac OS X, configure no longer automatically adds the Fink "/sw" |
| 1231 | ** On Mac OS X, configure no longer automatically adds the Fink /sw | ||
| 1232 | directories to the search path. You must add them yourself if you want them. | 1098 | directories to the search path. You must add them yourself if you want them. |
| 1233 | 1099 | ||
| 1234 | 1100 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 81b4978dba5..c895bce1cad 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,36 @@ | |||
| 1 | 2012-12-30 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * net/mairix.el (rmail, rmail-summary-displayed, rmail-summary): | ||
| 4 | Remove unnecessary/buggy autoloads (missing interactive). (Bug#13294) | ||
| 5 | (rmail-summary-displayed, rmail-summary): Declare. | ||
| 6 | (mairix-rmail-display): Just require rmail. | ||
| 7 | |||
| 8 | 2012-12-30 Chong Yidong <cyd@gnu.org> | ||
| 9 | |||
| 10 | * emacs-lisp/package.el (package-untar-buffer): Improve integrity | ||
| 11 | check for the tarball contents. | ||
| 12 | |||
| 13 | 2012-12-30 Matt Fidler <matt.fidler@alcon.com> (tiny change) | ||
| 14 | |||
| 15 | * emacs-lisp/package.el (package-untar-buffer): Handle problematic | ||
| 16 | tarfile content listings (Bug#13136). | ||
| 17 | |||
| 18 | 2012-12-30 Mark Lillibridge <mark.lillibridge@hp.com> | ||
| 19 | |||
| 20 | * mail/rmailmm.el (rmail-insert-mime-forwarded-message): Insert | ||
| 21 | the undecoded text of the message being forwarded. (Bug#9521) | ||
| 22 | |||
| 23 | 2012-12-30 Michael Albinus <michael.albinus@gmx.de> | ||
| 24 | |||
| 25 | * net/tramp-sh.el (tramp-set-file-uid-gid): Convert UID and GID to | ||
| 26 | integers, if they are real numbers. (Bug#13282) | ||
| 27 | |||
| 28 | * net/tramp-sh.el (tramp-sh-handle-set-file-selinux-context): | ||
| 29 | Return `t' on success. | ||
| 30 | |||
| 31 | * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add | ||
| 32 | handler for `set-file-selinux-context'. | ||
| 33 | |||
| 1 | 2012-12-29 Michael Albinus <michael.albinus@gmx.de> | 34 | 2012-12-29 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 35 | ||
| 3 | * net/tramp-sh.el (tramp-sh-handle-file-acl): Suppress basic attributes. | 36 | * net/tramp-sh.el (tramp-sh-handle-file-acl): Suppress basic attributes. |
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 6629410a1f1..96435e52f11 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el | |||
| @@ -596,6 +596,8 @@ EXTRA-PROPERTIES is currently unused." | |||
| 596 | 596 | ||
| 597 | (defvar tar-parse-info) | 597 | (defvar tar-parse-info) |
| 598 | (declare-function tar-untar-buffer "tar-mode" ()) | 598 | (declare-function tar-untar-buffer "tar-mode" ()) |
| 599 | (declare-function tar-header-name "tar-mode" (tar-header)) | ||
| 600 | (declare-function tar-header-link-type "tar-mode" (tar-header)) | ||
| 599 | 601 | ||
| 600 | (defun package-untar-buffer (dir) | 602 | (defun package-untar-buffer (dir) |
| 601 | "Untar the current buffer. | 603 | "Untar the current buffer. |
| @@ -604,10 +606,16 @@ untar into a directory named DIR; otherwise, signal an error." | |||
| 604 | (require 'tar-mode) | 606 | (require 'tar-mode) |
| 605 | (tar-mode) | 607 | (tar-mode) |
| 606 | ;; Make sure everything extracts into DIR. | 608 | ;; Make sure everything extracts into DIR. |
| 607 | (let ((regexp (concat "\\`" (regexp-quote dir) "/"))) | 609 | (let ((regexp (concat "\\`" (regexp-quote (expand-file-name dir)) "/")) |
| 610 | (case-fold-search (memq system-type '(windows-nt ms-dos cygwin)))) | ||
| 608 | (dolist (tar-data tar-parse-info) | 611 | (dolist (tar-data tar-parse-info) |
| 609 | (unless (string-match regexp (aref tar-data 2)) | 612 | (let ((name (expand-file-name (tar-header-name tar-data)))) |
| 610 | (error "Package does not untar cleanly into directory %s/" dir)))) | 613 | (or (string-match regexp name) |
| 614 | ;; Tarballs created by some utilities don't list | ||
| 615 | ;; directories with a trailing slash (Bug#13136). | ||
| 616 | (and (string-equal dir name) | ||
| 617 | (eq (tar-header-link-type tar-data) 5)) | ||
| 618 | (error "Package does not untar cleanly into directory %s/" dir))))) | ||
| 611 | (tar-untar-buffer)) | 619 | (tar-untar-buffer)) |
| 612 | 620 | ||
| 613 | (defun package-unpack (package version) | 621 | (defun package-unpack (package version) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index e17661095e4..6dca9e6cb7c 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2012-12-29 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * nnfolder.el (nnfolder-recursive-directory-files): New function. | ||
| 4 | (nnfolder-generate-active-file): Make this function work with recursive | ||
| 5 | folder names. | ||
| 6 | |||
| 1 | 2012-12-27 Lars Ingebrigtsen <larsi@gnus.org> | 7 | 2012-12-27 Lars Ingebrigtsen <larsi@gnus.org> |
| 2 | 8 | ||
| 3 | * nntp.el (nntp-open-connection): Use HELP as the capability command | 9 | * nntp.el (nntp-open-connection): Use HELP as the capability command |
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el index e93bd7f43e0..ae9e551c93a 100644 --- a/lisp/gnus/nnfolder.el +++ b/lisp/gnus/nnfolder.el | |||
| @@ -1004,6 +1004,28 @@ deleted. Point is left where the deleted region was." | |||
| 1004 | (nnfolder-save-nov)) | 1004 | (nnfolder-save-nov)) |
| 1005 | (current-buffer)))))) | 1005 | (current-buffer)))))) |
| 1006 | 1006 | ||
| 1007 | (defun nnfolder-recursive-directory-files (dir prefix) | ||
| 1008 | (let ((files nil)) | ||
| 1009 | (dolist (file (directory-files dir)) | ||
| 1010 | (cond | ||
| 1011 | ((or (file-symlink-p (expand-file-name file dir)) | ||
| 1012 | (member file '("." ".."))) | ||
| 1013 | ;; Ignore | ||
| 1014 | ) | ||
| 1015 | ((file-directory-p (expand-file-name file dir)) | ||
| 1016 | (setq files (nconc (nnfolder-recursive-directory-files | ||
| 1017 | (expand-file-name file dir) | ||
| 1018 | (if prefix | ||
| 1019 | (concat prefix "." (directory-file-name file)) | ||
| 1020 | (file-name-nondirectory file))) | ||
| 1021 | files))) | ||
| 1022 | ((file-regular-p (expand-file-name file dir)) | ||
| 1023 | (push (if prefix | ||
| 1024 | (concat prefix "." file) | ||
| 1025 | file) | ||
| 1026 | files)))) | ||
| 1027 | files)) | ||
| 1028 | |||
| 1007 | ;;;###autoload | 1029 | ;;;###autoload |
| 1008 | (defun nnfolder-generate-active-file () | 1030 | (defun nnfolder-generate-active-file () |
| 1009 | "Look for mbox folders in the nnfolder directory and make them into groups. | 1031 | "Look for mbox folders in the nnfolder directory and make them into groups. |
| @@ -1020,10 +1042,13 @@ This command does not work if you use short group names." | |||
| 1020 | (when (not (message-mail-file-mbox-p file)) | 1042 | (when (not (message-mail-file-mbox-p file)) |
| 1021 | (ignore-errors | 1043 | (ignore-errors |
| 1022 | (delete-file file))))) | 1044 | (delete-file file))))) |
| 1023 | (dolist (file (directory-files nnfolder-directory)) | 1045 | (dolist (file (if nnmail-use-long-file-names |
| 1046 | (directory-files nnfolder-directory) | ||
| 1047 | (nnfolder-recursive-directory-files | ||
| 1048 | nnfolder-directory nil))) | ||
| 1024 | (when (and (not (backup-file-name-p file)) | 1049 | (when (and (not (backup-file-name-p file)) |
| 1025 | (message-mail-file-mbox-p | 1050 | (message-mail-file-mbox-p |
| 1026 | (nnheader-concat nnfolder-directory file))) | 1051 | (nnfolder-group-pathname file))) |
| 1027 | (let ((oldgroup (assoc file nnfolder-group-alist))) | 1052 | (let ((oldgroup (assoc file nnfolder-group-alist))) |
| 1028 | (if oldgroup | 1053 | (if oldgroup |
| 1029 | (nnheader-message 5 "Refreshing group %s..." file) | 1054 | (nnheader-message 5 "Refreshing group %s..." file) |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index ec35cc59b26..096b53c6cab 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -4622,7 +4622,7 @@ With prefix argument N moves forward N messages with these labels. | |||
| 4622 | 4622 | ||
| 4623 | ;;;*** | 4623 | ;;;*** |
| 4624 | 4624 | ||
| 4625 | ;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "f1937f85a1258de8880a089fa5ae5621") | 4625 | ;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "c106528cab2def0306822563a9083967") |
| 4626 | ;;; Generated autoloads from rmailmm.el | 4626 | ;;; Generated autoloads from rmailmm.el |
| 4627 | 4627 | ||
| 4628 | (autoload 'rmail-mime "rmailmm" "\ | 4628 | (autoload 'rmail-mime "rmailmm" "\ |
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index 11bccd59765..a9bbe6c2da3 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el | |||
| @@ -1368,8 +1368,8 @@ This is the usual value of `rmail-insert-mime-forwarded-message-function'." | |||
| 1368 | (let ((message-buffer | 1368 | (let ((message-buffer |
| 1369 | (with-current-buffer forward-buffer | 1369 | (with-current-buffer forward-buffer |
| 1370 | (if rmail-buffer-swapped | 1370 | (if rmail-buffer-swapped |
| 1371 | forward-buffer | 1371 | rmail-view-buffer |
| 1372 | rmail-view-buffer)))) | 1372 | forward-buffer)))) |
| 1373 | (save-restriction | 1373 | (save-restriction |
| 1374 | (narrow-to-region (point) (point)) | 1374 | (narrow-to-region (point) (point)) |
| 1375 | (message-forward-make-body-mime message-buffer)))) | 1375 | (message-forward-make-body-mime message-buffer)))) |
diff --git a/lisp/net/mairix.el b/lisp/net/mairix.el index f85983e6e9f..50cc2ed3dc3 100644 --- a/lisp/net/mairix.el +++ b/lisp/net/mairix.el | |||
| @@ -222,14 +222,12 @@ Currently there are 'threads and 'flags.") | |||
| 222 | 222 | ||
| 223 | ;;; RMail | 223 | ;;; RMail |
| 224 | 224 | ||
| 225 | ;; Display function: | 225 | (declare-function rmail-summary-displayed "rmail" ()) |
| 226 | (autoload 'rmail "rmail") | 226 | (declare-function rmail-summary "rmailsum" ()) ; autoloaded in rmail |
| 227 | (autoload 'rmail-summary-displayed "rmail") | ||
| 228 | (autoload 'rmail-summary "rmailsum") | ||
| 229 | (defvar rmail-buffer) | ||
| 230 | 227 | ||
| 231 | (defun mairix-rmail-display (folder) | 228 | (defun mairix-rmail-display (folder) |
| 232 | "Display mbox file FOLDER with RMail." | 229 | "Display mbox file FOLDER with RMail." |
| 230 | (require 'rmail) | ||
| 233 | (let (show-summary) | 231 | (let (show-summary) |
| 234 | ;; If it exists, select existing RMail window | 232 | ;; If it exists, select existing RMail window |
| 235 | (when (and (boundp 'rmail-buffer) | 233 | (when (and (boundp 'rmail-buffer) |
| @@ -249,6 +247,8 @@ Currently there are 'threads and 'flags.") | |||
| 249 | (when show-summary | 247 | (when show-summary |
| 250 | (rmail-summary)))) | 248 | (rmail-summary)))) |
| 251 | 249 | ||
| 250 | (defvar rmail-buffer) | ||
| 251 | |||
| 252 | ;; Fetching mail header field: | 252 | ;; Fetching mail header field: |
| 253 | (defun mairix-rmail-fetch-field (field) | 253 | (defun mairix-rmail-fetch-field (field) |
| 254 | "Get mail header FIELD for current message using RMail." | 254 | "Get mail header FIELD for current message using RMail." |
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index ebc377c08c8..e46b32c85a5 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el | |||
| @@ -1458,7 +1458,9 @@ and gid of the corresponding user is taken. Both parameters must be integers." | |||
| 1458 | ;; working with su(do)? when it is needed, so it shall succeed in | 1458 | ;; working with su(do)? when it is needed, so it shall succeed in |
| 1459 | ;; the majority of cases. | 1459 | ;; the majority of cases. |
| 1460 | ;; Don't modify `last-coding-system-used' by accident. | 1460 | ;; Don't modify `last-coding-system-used' by accident. |
| 1461 | (let ((last-coding-system-used last-coding-system-used)) | 1461 | (let ((last-coding-system-used last-coding-system-used) |
| 1462 | (uid (and (numberp uid) (round uid))) | ||
| 1463 | (gid (and (numberp gid) (round gid)))) | ||
| 1462 | (if (file-remote-p filename) | 1464 | (if (file-remote-p filename) |
| 1463 | (with-parsed-tramp-file-name filename nil | 1465 | (with-parsed-tramp-file-name filename nil |
| 1464 | (if (and (zerop (user-uid)) (tramp-local-host-p v)) | 1466 | (if (and (zerop (user-uid)) (tramp-local-host-p v)) |
| @@ -1530,10 +1532,11 @@ and gid of the corresponding user is taken. Both parameters must be integers." | |||
| 1530 | (if (stringp (nth 3 context)) | 1532 | (if (stringp (nth 3 context)) |
| 1531 | (format "--range=%s" (nth 3 context)) "") | 1533 | (format "--range=%s" (nth 3 context)) "") |
| 1532 | (tramp-shell-quote-argument localname)))) | 1534 | (tramp-shell-quote-argument localname)))) |
| 1533 | (tramp-set-file-property v localname "file-selinux-context" context) | 1535 | (progn |
| 1534 | (tramp-set-file-property v localname "file-selinux-context" 'undef))) | 1536 | (tramp-set-file-property v localname "file-selinux-context" context) |
| 1535 | ;; We always return nil. | 1537 | t) |
| 1536 | nil) | 1538 | (tramp-set-file-property v localname "file-selinux-context" 'undef) |
| 1539 | nil))) | ||
| 1537 | 1540 | ||
| 1538 | (defun tramp-remote-acl-p (vec) | 1541 | (defun tramp-remote-acl-p (vec) |
| 1539 | "Check, whether ACL is enabled on the remote host." | 1542 | "Check, whether ACL is enabled on the remote host." |
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index f97d4620b97..af1e36350f5 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el | |||
| @@ -230,7 +230,7 @@ See `tramp-actions-before-shell' for more info.") | |||
| 230 | (rename-file . tramp-smb-handle-rename-file) | 230 | (rename-file . tramp-smb-handle-rename-file) |
| 231 | (set-file-acl . ignore) | 231 | (set-file-acl . ignore) |
| 232 | (set-file-modes . tramp-smb-handle-set-file-modes) | 232 | (set-file-modes . tramp-smb-handle-set-file-modes) |
| 233 | ;; `set-file-selinux-context' performed by default handler. | 233 | (set-file-selinux-context . ignore) |
| 234 | (set-file-times . ignore) | 234 | (set-file-times . ignore) |
| 235 | (set-visited-file-modtime . ignore) | 235 | (set-visited-file-modtime . ignore) |
| 236 | (shell-command . tramp-handle-shell-command) | 236 | (shell-command . tramp-handle-shell-command) |
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index ce3fd523b88..e2b5437228d 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog | |||
| @@ -4583,12 +4583,7 @@ | |||
| 4583 | (org-set-autofill-regexps): Add previous function to | 4583 | (org-set-autofill-regexps): Add previous function to |
| 4584 | `fill-nobreak-predicate'. | 4584 | `fill-nobreak-predicate'. |
| 4585 | 4585 | ||
| 4586 | 2012-04-01 Vitalie Spinu <spinuvit@gmail.com> | 4586 | 2012-04-01 Vitalie Spinu <spinuvit@gmail.com> (tiny change) |
| 4587 | |||
| 4588 | * ob-R.el (org-babel-R-evaluate-session): Inhibit R evaluation | ||
| 4589 | visibility regardless of local user customization. | ||
| 4590 | |||
| 4591 | 2012-04-01 Vitalie Spinu <spinuvit@gmail.com> | ||
| 4592 | 4587 | ||
| 4593 | * ob-R.el (org-babel-R-evaluate-session): Inhibit R evaluation | 4588 | * ob-R.el (org-babel-R-evaluate-session): Inhibit R evaluation |
| 4594 | visibility regardless of local user customization. | 4589 | visibility regardless of local user customization. |
diff --git a/msdos/ChangeLog b/msdos/ChangeLog index 1fdd9316847..c530dff150c 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2012-12-30 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * sed1v2.inp (TEMACS_LDFLAGS2): Remove editing. | ||
| 4 | (LIBS_GNUSTEP): Edit to empty. | ||
| 5 | |||
| 1 | 2012-12-03 Eli Zaretskii <eliz@gnu.org> | 6 | 2012-12-03 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * sed1v2.inp: Dump emacs.exe and copy to b-emacs.exe before | 8 | * sed1v2.inp: Dump emacs.exe and copy to b-emacs.exe before |
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp index 0ee7510bec1..c7199621634 100644 --- a/msdos/sed1v2.inp +++ b/msdos/sed1v2.inp | |||
| @@ -49,7 +49,6 @@ s/\.h\.in/.h-in/ | |||
| 49 | /^LD_SWITCH_X_SITE_AUX *=/s/@LD_SWITCH_X_SITE_AUX@// | 49 | /^LD_SWITCH_X_SITE_AUX *=/s/@LD_SWITCH_X_SITE_AUX@// |
| 50 | /^LD_SWITCH_X_SITE_AUX_RPATH *=/s/@LD_SWITCH_X_SITE_AUX_RPATH@// | 50 | /^LD_SWITCH_X_SITE_AUX_RPATH *=/s/@LD_SWITCH_X_SITE_AUX_RPATH@// |
| 51 | /^LD_SWITCH_SYSTEM *=/s/@LD_SWITCH_SYSTEM@// | 51 | /^LD_SWITCH_SYSTEM *=/s/@LD_SWITCH_SYSTEM@// |
| 52 | /^TEMACS_LDFLAGS2 *=/s/@TEMACS_LDFLAGS2@/$(LDFLAGS)/ | ||
| 53 | /^LIBS_SYSTEM *=/s/@LIBS_SYSTEM@// | 52 | /^LIBS_SYSTEM *=/s/@LIBS_SYSTEM@// |
| 54 | /^LIB_GCC *=/s/@LIB_GCC@// | 53 | /^LIB_GCC *=/s/@LIB_GCC@// |
| 55 | /^LIB_STANDARD *=/s/@LIB_STANDARD@// | 54 | /^LIB_STANDARD *=/s/@LIB_STANDARD@// |
| @@ -86,6 +85,7 @@ s/ *@LIBXPM@// | |||
| 86 | /^XOBJ *=/s/@XOBJ@// | 85 | /^XOBJ *=/s/@XOBJ@// |
| 87 | /^TOOLKIT_LIBW *=/s/@TOOLKIT_LIBW@// | 86 | /^TOOLKIT_LIBW *=/s/@TOOLKIT_LIBW@// |
| 88 | /^LIBSOUND *=/s/@LIBSOUND@// | 87 | /^LIBSOUND *=/s/@LIBSOUND@// |
| 88 | /^LIBS_GNUSTEP *=/s/@LIBS_GNUSTEP@// | ||
| 89 | /^CFLAGS_SOUND *=/s/@CFLAGS_SOUND@// | 89 | /^CFLAGS_SOUND *=/s/@CFLAGS_SOUND@// |
| 90 | /^RSVG_LIBS *=/s/@RSVG_LIBS@// | 90 | /^RSVG_LIBS *=/s/@RSVG_LIBS@// |
| 91 | /^RSVG_CFLAGS *=/s/@RSVG_CFLAGS@// | 91 | /^RSVG_CFLAGS *=/s/@RSVG_CFLAGS@// |
diff --git a/src/ChangeLog b/src/ChangeLog index e95df2b8953..483930a6489 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,49 @@ | |||
| 1 | 2012-12-30 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | * coding.c (Qmac): Now static. | ||
| 4 | |||
| 5 | 2012-12-30 Jan Djärv <jan.h.d@swipnet.se> | ||
| 6 | |||
| 7 | * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro. | ||
| 8 | (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of | ||
| 9 | handlebox_widget. Set toolbar_in_hbox to false/true, set | ||
| 10 | toolbar_is_packed to true. | ||
| 11 | (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET. | ||
| 12 | (update_frame_tool_bar): Check toolbar_is_packed for packing. | ||
| 13 | Show all on TOOLBAR_TOP_WIDGET. | ||
| 14 | (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned | ||
| 15 | by TOOLBAR_TOP_WIDGET. | ||
| 16 | (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET. | ||
| 17 | Check toolbar_is_packed. | ||
| 18 | (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on | ||
| 19 | HAVE_GTK_TEAROFF_MENU_ITEM_NEW. | ||
| 20 | (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return | ||
| 21 | false. | ||
| 22 | (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW. | ||
| 23 | (xg_update_menubar): Update title only if | ||
| 24 | HAVE_GTK_TEAROFF_MENU_ITEM_NEW. | ||
| 25 | (xg_update_submenu): Skip tearoff only if | ||
| 26 | HAVE_GTK_TEAROFF_MENU_ITEM_NEW. | ||
| 27 | (xg_initialize): Initialize xg_detached_menus only if | ||
| 28 | HAVE_GTK_TEAROFF_MENU_ITEM_NEW. | ||
| 29 | |||
| 30 | * xterm.h (struct x_output): Surround handlebox_widget with | ||
| 31 | #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new, | ||
| 32 | toolbar_in_hbox is bool. | ||
| 33 | |||
| 34 | 2012-12-30 Andreas Schwab <schwab@linux-m68k.org> | ||
| 35 | |||
| 36 | * src/Makefile.in (TEMACS_LDFLAGS2): Remove. | ||
| 37 | (LIBS_GNUSTEP): Define. | ||
| 38 | (LIBES): Add $(LIBS_GNUSTEP). | ||
| 39 | (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2). | ||
| 40 | |||
| 41 | 2012-12-30 Eli Zaretskii <eliz@gnu.org> | ||
| 42 | |||
| 43 | * xdisp.c (set_cursor_from_row): Don't confuse a truncation or | ||
| 44 | continuation glyph on a TTY with an indication of an empty line. | ||
| 45 | (Bug#13277) | ||
| 46 | |||
| 1 | 2012-12-29 Eli Zaretskii <eliz@gnu.org> | 47 | 2012-12-29 Eli Zaretskii <eliz@gnu.org> |
| 2 | 48 | ||
| 3 | * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if | 49 | * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if |
diff --git a/src/Makefile.in b/src/Makefile.in index f430c787d56..eb4e8903812 100644 --- a/src/Makefile.in +++ b/src/Makefile.in | |||
| @@ -111,9 +111,6 @@ LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYSTEM_TEMACS@ | |||
| 111 | ## Flags to pass to ld only for temacs. | 111 | ## Flags to pass to ld only for temacs. |
| 112 | TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS) | 112 | TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS) |
| 113 | 113 | ||
| 114 | ## $LDFLAGS or empty if NS_IMPL_GNUSTEP (for some reason). | ||
| 115 | TEMACS_LDFLAGS2 = @TEMACS_LDFLAGS2@ | ||
| 116 | |||
| 117 | ## If available, the full path to the paxctl program. | 114 | ## If available, the full path to the paxctl program. |
| 118 | ## On grsecurity/PaX systems, unexec will fail due to a gap between | 115 | ## On grsecurity/PaX systems, unexec will fail due to a gap between |
| 119 | ## the bss section and the heap. This can be prevented by disabling | 116 | ## the bss section and the heap. This can be prevented by disabling |
| @@ -230,6 +227,9 @@ LIBX_OTHER=@LIBX_OTHER@ | |||
| 230 | ## configure, which should set it to nil in non-X builds. | 227 | ## configure, which should set it to nil in non-X builds. |
| 231 | LIBX_BASE=$(LIBXMENU) $(LD_SWITCH_X_SITE) | 228 | LIBX_BASE=$(LIBXMENU) $(LD_SWITCH_X_SITE) |
| 232 | 229 | ||
| 230 | ## Only used for GNUstep | ||
| 231 | LIBS_GNUSTEP=@LIBS_GNUSTEP@ | ||
| 232 | |||
| 233 | LIBSOUND= @LIBSOUND@ | 233 | LIBSOUND= @LIBSOUND@ |
| 234 | CFLAGS_SOUND= @CFLAGS_SOUND@ | 234 | CFLAGS_SOUND= @CFLAGS_SOUND@ |
| 235 | 235 | ||
| @@ -412,7 +412,7 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ | |||
| 412 | ## Note that SunOS needs -lm to come before -lc; otherwise, you get | 412 | ## Note that SunOS needs -lm to come before -lc; otherwise, you get |
| 413 | ## duplicated symbols. If the standard libraries were compiled | 413 | ## duplicated symbols. If the standard libraries were compiled |
| 414 | ## with GCC, we might need LIB_GCC again after them. | 414 | ## with GCC, we might need LIB_GCC again after them. |
| 415 | LIBES = $(LIBS) $(W32_LIBS) $(LIBX_BASE) $(LIBIMAGE) \ | 415 | LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \ |
| 416 | $(LIBX_OTHER) $(LIBSOUND) \ | 416 | $(LIBX_OTHER) $(LIBSOUND) \ |
| 417 | $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_CLOCK_GETTIME) \ | 417 | $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_CLOCK_GETTIME) \ |
| 418 | $(WEBKIT_LIBS) $(CLUTTER_LIBS) $(GIR_LIBS) \ | 418 | $(WEBKIT_LIBS) $(CLUTTER_LIBS) $(GIR_LIBS) \ |
| @@ -488,7 +488,7 @@ $(lib)/libgnu.a: $(config_h) | |||
| 488 | 488 | ||
| 489 | temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) \ | 489 | temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) \ |
| 490 | $(lib)/libgnu.a $(W32_RES) | 490 | $(lib)/libgnu.a $(W32_RES) |
| 491 | $(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(TEMACS_LDFLAGS2) \ | 491 | $(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ |
| 492 | -o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES) \ | 492 | -o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES) \ |
| 493 | $(W32_RES_LINK) | 493 | $(W32_RES_LINK) |
| 494 | test "$(CANNOT_DUMP)" = "yes" || \ | 494 | test "$(CANNOT_DUMP)" = "yes" || \ |
diff --git a/src/coding.c b/src/coding.c index 2c1139ec5fc..044583d26b6 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -301,7 +301,8 @@ Lisp_Object Vcoding_system_hash_table; | |||
| 301 | 301 | ||
| 302 | static Lisp_Object Qcoding_system, Qeol_type; | 302 | static Lisp_Object Qcoding_system, Qeol_type; |
| 303 | static Lisp_Object Qcoding_aliases; | 303 | static Lisp_Object Qcoding_aliases; |
| 304 | Lisp_Object Qunix, Qdos, Qmac; | 304 | Lisp_Object Qunix, Qdos; |
| 305 | static Lisp_Object Qmac; | ||
| 305 | Lisp_Object Qbuffer_file_coding_system; | 306 | Lisp_Object Qbuffer_file_coding_system; |
| 306 | static Lisp_Object Qpost_read_conversion, Qpre_write_conversion; | 307 | static Lisp_Object Qpost_read_conversion, Qpre_write_conversion; |
| 307 | static Lisp_Object Qdefault_char; | 308 | static Lisp_Object Qdefault_char; |
diff --git a/src/coding.h b/src/coding.h index 192be58f083..db0033c751b 100644 --- a/src/coding.h +++ b/src/coding.h | |||
| @@ -767,7 +767,7 @@ extern Lisp_Object Qcoding_system_p; | |||
| 767 | extern Lisp_Object Qraw_text, Qemacs_mule, Qno_conversion, Qundecided; | 767 | extern Lisp_Object Qraw_text, Qemacs_mule, Qno_conversion, Qundecided; |
| 768 | extern Lisp_Object Qbuffer_file_coding_system; | 768 | extern Lisp_Object Qbuffer_file_coding_system; |
| 769 | 769 | ||
| 770 | extern Lisp_Object Qunix, Qdos, Qmac; | 770 | extern Lisp_Object Qunix, Qdos; |
| 771 | 771 | ||
| 772 | extern Lisp_Object Qtranslation_table; | 772 | extern Lisp_Object Qtranslation_table; |
| 773 | extern Lisp_Object Qtranslation_table_id; | 773 | extern Lisp_Object Qtranslation_table_id; |
diff --git a/src/dispextern.h b/src/dispextern.h index 55fd852ea3b..3b24d49da75 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -321,13 +321,18 @@ struct glyph | |||
| 321 | Lisp string, this is a position in that string. If it is a | 321 | Lisp string, this is a position in that string. If it is a |
| 322 | buffer, this is a position in that buffer. A value of -1 | 322 | buffer, this is a position in that buffer. A value of -1 |
| 323 | together with a null object means glyph is a truncation glyph at | 323 | together with a null object means glyph is a truncation glyph at |
| 324 | the start of a row. */ | 324 | the start of a row. Right truncation and continuation glyphs at |
| 325 | the right edge of a row have their position set to the next | ||
| 326 | buffer position that is not shown on this row. Glyphs inserted | ||
| 327 | by redisplay, such as the empty space after the end of a line on | ||
| 328 | TTYs, or the overlay-arrow on a TTY, have this set to -1. */ | ||
| 325 | ptrdiff_t charpos; | 329 | ptrdiff_t charpos; |
| 326 | 330 | ||
| 327 | /* Lisp object source of this glyph. Currently either a buffer or | 331 | /* Lisp object source of this glyph. Currently either a buffer or a |
| 328 | a string, if the glyph was produced from characters which came from | 332 | string, if the glyph was produced from characters which came from |
| 329 | a buffer or a string; or 0 if the glyph was inserted by redisplay | 333 | a buffer or a string; or 0 if the glyph was inserted by redisplay |
| 330 | for its own purposes such as padding. */ | 334 | for its own purposes, such as padding or truncation/continuation |
| 335 | glyphs, or the overlay-arrow glyphs on TTYs. */ | ||
| 331 | Lisp_Object object; | 336 | Lisp_Object object; |
| 332 | 337 | ||
| 333 | /* Width in pixels. */ | 338 | /* Width in pixels. */ |
diff --git a/src/gtkutil.c b/src/gtkutil.c index 7f50b67d1e5..7b05cff71c0 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -2416,6 +2416,8 @@ make_menu_item (const char *utf8_label, | |||
| 2416 | return w; | 2416 | return w; |
| 2417 | } | 2417 | } |
| 2418 | 2418 | ||
| 2419 | #ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW | ||
| 2420 | |||
| 2419 | static int xg_detached_menus; | 2421 | static int xg_detached_menus; |
| 2420 | 2422 | ||
| 2421 | /* Return true if there are detached menus. */ | 2423 | /* Return true if there are detached menus. */ |
| @@ -2454,7 +2456,13 @@ tearoff_activate (GtkWidget *widget, gpointer client_data) | |||
| 2454 | G_CALLBACK (tearoff_remove), 0); | 2456 | G_CALLBACK (tearoff_remove), 0); |
| 2455 | } | 2457 | } |
| 2456 | } | 2458 | } |
| 2457 | 2459 | #else /* ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW */ | |
| 2460 | bool | ||
| 2461 | xg_have_tear_offs (void) | ||
| 2462 | { | ||
| 2463 | return false; | ||
| 2464 | } | ||
| 2465 | #endif /* ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW */ | ||
| 2458 | 2466 | ||
| 2459 | /* Create a menu item widget, and connect the callbacks. | 2467 | /* Create a menu item widget, and connect the callbacks. |
| 2460 | ITEM describes the menu item. | 2468 | ITEM describes the menu item. |
| @@ -2526,7 +2534,8 @@ xg_create_one_menuitem (widget_value *item, | |||
| 2526 | HIGHLIGHT_CB is the callback to call when entering/leaving menu items. | 2534 | HIGHLIGHT_CB is the callback to call when entering/leaving menu items. |
| 2527 | If POP_UP_P, create a popup menu. | 2535 | If POP_UP_P, create a popup menu. |
| 2528 | If MENU_BAR_P, create a menu bar. | 2536 | If MENU_BAR_P, create a menu bar. |
| 2529 | If ADD_TEAROFF_P, add a tearoff menu item. Ignored if MENU_BAR_P. | 2537 | If ADD_TEAROFF_P, add a tearoff menu item. Ignored if MENU_BAR_P or |
| 2538 | the Gtk+ version used does not have tearoffs. | ||
| 2530 | TOPMENU is the topmost GtkWidget that others shall be placed under. | 2539 | TOPMENU is the topmost GtkWidget that others shall be placed under. |
| 2531 | It may be NULL, in that case we create the appropriate widget | 2540 | It may be NULL, in that case we create the appropriate widget |
| 2532 | (menu bar or menu item depending on POP_UP_P and MENU_BAR_P) | 2541 | (menu bar or menu item depending on POP_UP_P and MENU_BAR_P) |
| @@ -2599,6 +2608,7 @@ create_menus (widget_value *data, | |||
| 2599 | "selection-done", deactivate_cb, 0); | 2608 | "selection-done", deactivate_cb, 0); |
| 2600 | } | 2609 | } |
| 2601 | 2610 | ||
| 2611 | #ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW | ||
| 2602 | if (! menu_bar_p && add_tearoff_p) | 2612 | if (! menu_bar_p && add_tearoff_p) |
| 2603 | { | 2613 | { |
| 2604 | GtkWidget *tearoff = gtk_tearoff_menu_item_new (); | 2614 | GtkWidget *tearoff = gtk_tearoff_menu_item_new (); |
| @@ -2607,6 +2617,7 @@ create_menus (widget_value *data, | |||
| 2607 | g_signal_connect (G_OBJECT (tearoff), "activate", | 2617 | g_signal_connect (G_OBJECT (tearoff), "activate", |
| 2608 | G_CALLBACK (tearoff_activate), 0); | 2618 | G_CALLBACK (tearoff_activate), 0); |
| 2609 | } | 2619 | } |
| 2620 | #endif | ||
| 2610 | 2621 | ||
| 2611 | for (item = data; item; item = item->next) | 2622 | for (item = data; item; item = item->next) |
| 2612 | { | 2623 | { |
| @@ -2897,11 +2908,13 @@ xg_update_menubar (GtkWidget *menubar, | |||
| 2897 | 2908 | ||
| 2898 | gtk_label_set_text (wlabel, utf8_label); | 2909 | gtk_label_set_text (wlabel, utf8_label); |
| 2899 | 2910 | ||
| 2911 | #ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW | ||
| 2900 | /* If this item has a submenu that has been detached, change | 2912 | /* If this item has a submenu that has been detached, change |
| 2901 | the title in the WM decorations also. */ | 2913 | the title in the WM decorations also. */ |
| 2902 | if (submenu && gtk_menu_get_tearoff_state (GTK_MENU (submenu))) | 2914 | if (submenu && gtk_menu_get_tearoff_state (GTK_MENU (submenu))) |
| 2903 | /* Set the title of the detached window. */ | 2915 | /* Set the title of the detached window. */ |
| 2904 | gtk_menu_set_title (GTK_MENU (submenu), utf8_label); | 2916 | gtk_menu_set_title (GTK_MENU (submenu), utf8_label); |
| 2917 | #endif | ||
| 2905 | 2918 | ||
| 2906 | if (utf8_label) g_free (utf8_label); | 2919 | if (utf8_label) g_free (utf8_label); |
| 2907 | iter = g_list_next (iter); | 2920 | iter = g_list_next (iter); |
| @@ -3129,7 +3142,8 @@ xg_update_submenu (GtkWidget *submenu, | |||
| 3129 | { | 3142 | { |
| 3130 | GtkWidget *w = GTK_WIDGET (iter->data); | 3143 | GtkWidget *w = GTK_WIDGET (iter->data); |
| 3131 | 3144 | ||
| 3132 | /* Skip tearoff items, they have no counterpart in val. */ | 3145 | #ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW |
| 3146 | /* Skip tearoff items, they have no counterpart in val. */ | ||
| 3133 | if (GTK_IS_TEAROFF_MENU_ITEM (w)) | 3147 | if (GTK_IS_TEAROFF_MENU_ITEM (w)) |
| 3134 | { | 3148 | { |
| 3135 | has_tearoff_p = 1; | 3149 | has_tearoff_p = 1; |
| @@ -3137,6 +3151,7 @@ xg_update_submenu (GtkWidget *submenu, | |||
| 3137 | if (iter) w = GTK_WIDGET (iter->data); | 3151 | if (iter) w = GTK_WIDGET (iter->data); |
| 3138 | else break; | 3152 | else break; |
| 3139 | } | 3153 | } |
| 3154 | #endif | ||
| 3140 | 3155 | ||
| 3141 | /* Remember first radio button in a group. If we get a mismatch in | 3156 | /* Remember first radio button in a group. If we get a mismatch in |
| 3142 | a radio group we must rebuild the whole group so that the connections | 3157 | a radio group we must rebuild the whole group so that the connections |
| @@ -4269,6 +4284,12 @@ xg_tool_bar_item_expose_callback (GtkWidget *w, | |||
| 4269 | gtk_toolbar_set_orientation (GTK_TOOLBAR (w), o) | 4284 | gtk_toolbar_set_orientation (GTK_TOOLBAR (w), o) |
| 4270 | #endif | 4285 | #endif |
| 4271 | 4286 | ||
| 4287 | #ifdef HAVE_GTK_HANDLE_BOX_NEW | ||
| 4288 | #define TOOLBAR_TOP_WIDGET(x) ((x)->handlebox_widget) | ||
| 4289 | #else | ||
| 4290 | #define TOOLBAR_TOP_WIDGET(x) ((x)->toolbar_widget) | ||
| 4291 | #endif | ||
| 4292 | |||
| 4272 | /* Attach a tool bar to frame F. */ | 4293 | /* Attach a tool bar to frame F. */ |
| 4273 | 4294 | ||
| 4274 | static void | 4295 | static void |
| @@ -4276,14 +4297,16 @@ xg_pack_tool_bar (FRAME_PTR f, Lisp_Object pos) | |||
| 4276 | { | 4297 | { |
| 4277 | struct x_output *x = f->output_data.x; | 4298 | struct x_output *x = f->output_data.x; |
| 4278 | bool into_hbox = EQ (pos, Qleft) || EQ (pos, Qright); | 4299 | bool into_hbox = EQ (pos, Qleft) || EQ (pos, Qright); |
| 4300 | GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); | ||
| 4279 | 4301 | ||
| 4280 | toolbar_set_orientation (x->toolbar_widget, | 4302 | toolbar_set_orientation (x->toolbar_widget, |
| 4281 | into_hbox | 4303 | into_hbox |
| 4282 | ? GTK_ORIENTATION_VERTICAL | 4304 | ? GTK_ORIENTATION_VERTICAL |
| 4283 | : GTK_ORIENTATION_HORIZONTAL); | 4305 | : GTK_ORIENTATION_HORIZONTAL); |
| 4306 | #ifdef HAVE_GTK_HANDLE_BOX_NEW | ||
| 4284 | if (!x->handlebox_widget) | 4307 | if (!x->handlebox_widget) |
| 4285 | { | 4308 | { |
| 4286 | x->handlebox_widget = gtk_handle_box_new (); | 4309 | top_widget = x->handlebox_widget = gtk_handle_box_new (); |
| 4287 | g_signal_connect (G_OBJECT (x->handlebox_widget), "child-detached", | 4310 | g_signal_connect (G_OBJECT (x->handlebox_widget), "child-detached", |
| 4288 | G_CALLBACK (xg_tool_bar_detach_callback), f); | 4311 | G_CALLBACK (xg_tool_bar_detach_callback), f); |
| 4289 | g_signal_connect (G_OBJECT (x->handlebox_widget), "child-attached", | 4312 | g_signal_connect (G_OBJECT (x->handlebox_widget), "child-attached", |
| @@ -4291,34 +4314,40 @@ xg_pack_tool_bar (FRAME_PTR f, Lisp_Object pos) | |||
| 4291 | gtk_container_add (GTK_CONTAINER (x->handlebox_widget), | 4314 | gtk_container_add (GTK_CONTAINER (x->handlebox_widget), |
| 4292 | x->toolbar_widget); | 4315 | x->toolbar_widget); |
| 4293 | } | 4316 | } |
| 4317 | #endif | ||
| 4294 | 4318 | ||
| 4295 | if (into_hbox) | 4319 | if (into_hbox) |
| 4296 | { | 4320 | { |
| 4321 | #ifdef HAVE_GTK_HANDLE_BOX_NEW | ||
| 4297 | gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), | 4322 | gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), |
| 4298 | GTK_POS_TOP); | 4323 | GTK_POS_TOP); |
| 4299 | gtk_box_pack_start (GTK_BOX (x->hbox_widget), x->handlebox_widget, | 4324 | #endif |
| 4325 | gtk_box_pack_start (GTK_BOX (x->hbox_widget), top_widget, | ||
| 4300 | FALSE, FALSE, 0); | 4326 | FALSE, FALSE, 0); |
| 4301 | 4327 | ||
| 4302 | if (EQ (pos, Qleft)) | 4328 | if (EQ (pos, Qleft)) |
| 4303 | gtk_box_reorder_child (GTK_BOX (x->hbox_widget), | 4329 | gtk_box_reorder_child (GTK_BOX (x->hbox_widget), |
| 4304 | x->handlebox_widget, | 4330 | top_widget, |
| 4305 | 0); | 4331 | 0); |
| 4306 | x->toolbar_in_hbox = 1; | 4332 | x->toolbar_in_hbox = true; |
| 4307 | } | 4333 | } |
| 4308 | else | 4334 | else |
| 4309 | { | 4335 | { |
| 4310 | bool vbox_pos = x->menubar_widget != 0; | 4336 | bool vbox_pos = x->menubar_widget != 0; |
| 4337 | #ifdef HAVE_GTK_HANDLE_BOX_NEW | ||
| 4311 | gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), | 4338 | gtk_handle_box_set_handle_position (GTK_HANDLE_BOX (x->handlebox_widget), |
| 4312 | GTK_POS_LEFT); | 4339 | GTK_POS_LEFT); |
| 4313 | gtk_box_pack_start (GTK_BOX (x->vbox_widget), x->handlebox_widget, | 4340 | #endif |
| 4341 | gtk_box_pack_start (GTK_BOX (x->vbox_widget), top_widget, | ||
| 4314 | FALSE, FALSE, 0); | 4342 | FALSE, FALSE, 0); |
| 4315 | 4343 | ||
| 4316 | if (EQ (pos, Qtop)) | 4344 | if (EQ (pos, Qtop)) |
| 4317 | gtk_box_reorder_child (GTK_BOX (x->vbox_widget), | 4345 | gtk_box_reorder_child (GTK_BOX (x->vbox_widget), |
| 4318 | x->handlebox_widget, | 4346 | top_widget, |
| 4319 | vbox_pos); | 4347 | vbox_pos); |
| 4320 | x->toolbar_in_hbox = 0; | 4348 | x->toolbar_in_hbox = false; |
| 4321 | } | 4349 | } |
| 4350 | x->toolbar_is_packed = true; | ||
| 4322 | } | 4351 | } |
| 4323 | 4352 | ||
| 4324 | /* Create a tool bar for frame F. */ | 4353 | /* Create a tool bar for frame F. */ |
| @@ -4561,13 +4590,14 @@ xg_update_tool_bar_sizes (FRAME_PTR f) | |||
| 4561 | struct x_output *x = f->output_data.x; | 4590 | struct x_output *x = f->output_data.x; |
| 4562 | GtkRequisition req; | 4591 | GtkRequisition req; |
| 4563 | int nl = 0, nr = 0, nt = 0, nb = 0; | 4592 | int nl = 0, nr = 0, nt = 0, nb = 0; |
| 4593 | GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); | ||
| 4564 | 4594 | ||
| 4565 | gtk_widget_get_preferred_size (GTK_WIDGET (x->handlebox_widget), NULL, &req); | 4595 | gtk_widget_get_preferred_size (GTK_WIDGET (top_widget), NULL, &req); |
| 4566 | if (x->toolbar_in_hbox) | 4596 | if (x->toolbar_in_hbox) |
| 4567 | { | 4597 | { |
| 4568 | int pos; | 4598 | int pos; |
| 4569 | gtk_container_child_get (GTK_CONTAINER (x->hbox_widget), | 4599 | gtk_container_child_get (GTK_CONTAINER (x->hbox_widget), |
| 4570 | x->handlebox_widget, | 4600 | top_widget, |
| 4571 | "position", &pos, NULL); | 4601 | "position", &pos, NULL); |
| 4572 | if (pos == 0) nl = req.width; | 4602 | if (pos == 0) nl = req.width; |
| 4573 | else nr = req.width; | 4603 | else nr = req.width; |
| @@ -4576,7 +4606,7 @@ xg_update_tool_bar_sizes (FRAME_PTR f) | |||
| 4576 | { | 4606 | { |
| 4577 | int pos; | 4607 | int pos; |
| 4578 | gtk_container_child_get (GTK_CONTAINER (x->vbox_widget), | 4608 | gtk_container_child_get (GTK_CONTAINER (x->vbox_widget), |
| 4579 | x->handlebox_widget, | 4609 | top_widget, |
| 4580 | "position", &pos, NULL); | 4610 | "position", &pos, NULL); |
| 4581 | if (pos == 0 || (pos == 1 && x->menubar_widget)) nt = req.height; | 4611 | if (pos == 0 || (pos == 1 && x->menubar_widget)) nt = req.height; |
| 4582 | else nb = req.height; | 4612 | else nb = req.height; |
| @@ -4611,7 +4641,6 @@ update_frame_tool_bar (FRAME_PTR f) | |||
| 4611 | GtkToolbar *wtoolbar; | 4641 | GtkToolbar *wtoolbar; |
| 4612 | GtkToolItem *ti; | 4642 | GtkToolItem *ti; |
| 4613 | GtkTextDirection dir; | 4643 | GtkTextDirection dir; |
| 4614 | bool pack_tool_bar = x->handlebox_widget == NULL; | ||
| 4615 | Lisp_Object style; | 4644 | Lisp_Object style; |
| 4616 | bool text_image, horiz; | 4645 | bool text_image, horiz; |
| 4617 | struct xg_frame_tb_info *tbinfo; | 4646 | struct xg_frame_tb_info *tbinfo; |
| @@ -4865,9 +4894,9 @@ update_frame_tool_bar (FRAME_PTR f) | |||
| 4865 | 4894 | ||
| 4866 | if (f->n_tool_bar_items != 0) | 4895 | if (f->n_tool_bar_items != 0) |
| 4867 | { | 4896 | { |
| 4868 | if (pack_tool_bar) | 4897 | if (! x->toolbar_is_packed) |
| 4869 | xg_pack_tool_bar (f, f->tool_bar_position); | 4898 | xg_pack_tool_bar (f, f->tool_bar_position); |
| 4870 | gtk_widget_show_all (GTK_WIDGET (x->handlebox_widget)); | 4899 | gtk_widget_show_all (TOOLBAR_TOP_WIDGET (x)); |
| 4871 | if (xg_update_tool_bar_sizes (f)) | 4900 | if (xg_update_tool_bar_sizes (f)) |
| 4872 | xg_height_or_width_changed (f); | 4901 | xg_height_or_width_changed (f); |
| 4873 | } | 4902 | } |
| @@ -4886,24 +4915,26 @@ free_frame_tool_bar (FRAME_PTR f) | |||
| 4886 | if (x->toolbar_widget) | 4915 | if (x->toolbar_widget) |
| 4887 | { | 4916 | { |
| 4888 | struct xg_frame_tb_info *tbinfo; | 4917 | struct xg_frame_tb_info *tbinfo; |
| 4889 | bool is_packed = x->handlebox_widget != 0; | 4918 | GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); |
| 4919 | |||
| 4890 | block_input (); | 4920 | block_input (); |
| 4891 | /* We may have created the toolbar_widget in xg_create_tool_bar, but | 4921 | /* We may have created the toolbar_widget in xg_create_tool_bar, but |
| 4892 | not the x->handlebox_widget which is created in xg_pack_tool_bar. */ | 4922 | not the x->handlebox_widget which is created in xg_pack_tool_bar. */ |
| 4893 | if (is_packed) | 4923 | if (x->toolbar_is_packed) |
| 4894 | { | 4924 | { |
| 4895 | if (x->toolbar_in_hbox) | 4925 | if (x->toolbar_in_hbox) |
| 4896 | gtk_container_remove (GTK_CONTAINER (x->hbox_widget), | 4926 | gtk_container_remove (GTK_CONTAINER (x->hbox_widget), |
| 4897 | x->handlebox_widget); | 4927 | top_widget); |
| 4898 | else | 4928 | else |
| 4899 | gtk_container_remove (GTK_CONTAINER (x->vbox_widget), | 4929 | gtk_container_remove (GTK_CONTAINER (x->vbox_widget), |
| 4900 | x->handlebox_widget); | 4930 | top_widget); |
| 4901 | } | 4931 | } |
| 4902 | else | 4932 | else |
| 4903 | gtk_widget_destroy (x->toolbar_widget); | 4933 | gtk_widget_destroy (x->toolbar_widget); |
| 4904 | 4934 | ||
| 4905 | x->toolbar_widget = 0; | 4935 | x->toolbar_widget = 0; |
| 4906 | x->handlebox_widget = 0; | 4936 | TOOLBAR_TOP_WIDGET (x) = 0; |
| 4937 | x->toolbar_is_packed = false; | ||
| 4907 | FRAME_TOOLBAR_TOP_HEIGHT (f) = FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = 0; | 4938 | FRAME_TOOLBAR_TOP_HEIGHT (f) = FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = 0; |
| 4908 | FRAME_TOOLBAR_LEFT_WIDTH (f) = FRAME_TOOLBAR_RIGHT_WIDTH (f) = 0; | 4939 | FRAME_TOOLBAR_LEFT_WIDTH (f) = FRAME_TOOLBAR_RIGHT_WIDTH (f) = 0; |
| 4909 | 4940 | ||
| @@ -4927,20 +4958,25 @@ void | |||
| 4927 | xg_change_toolbar_position (FRAME_PTR f, Lisp_Object pos) | 4958 | xg_change_toolbar_position (FRAME_PTR f, Lisp_Object pos) |
| 4928 | { | 4959 | { |
| 4929 | struct x_output *x = f->output_data.x; | 4960 | struct x_output *x = f->output_data.x; |
| 4961 | GtkWidget *top_widget = TOOLBAR_TOP_WIDGET (x); | ||
| 4930 | 4962 | ||
| 4931 | if (! x->toolbar_widget || ! x->handlebox_widget) | 4963 | if (! x->toolbar_widget || ! top_widget) |
| 4932 | return; | 4964 | return; |
| 4933 | 4965 | ||
| 4934 | block_input (); | 4966 | block_input (); |
| 4935 | g_object_ref (x->handlebox_widget); | 4967 | g_object_ref (top_widget); |
| 4936 | if (x->toolbar_in_hbox) | 4968 | if (x->toolbar_is_packed) |
| 4937 | gtk_container_remove (GTK_CONTAINER (x->hbox_widget), | 4969 | { |
| 4938 | x->handlebox_widget); | 4970 | if (x->toolbar_in_hbox) |
| 4939 | else | 4971 | gtk_container_remove (GTK_CONTAINER (x->hbox_widget), |
| 4940 | gtk_container_remove (GTK_CONTAINER (x->vbox_widget), | 4972 | top_widget); |
| 4941 | x->handlebox_widget); | 4973 | else |
| 4974 | gtk_container_remove (GTK_CONTAINER (x->vbox_widget), | ||
| 4975 | top_widget); | ||
| 4976 | } | ||
| 4977 | |||
| 4942 | xg_pack_tool_bar (f, pos); | 4978 | xg_pack_tool_bar (f, pos); |
| 4943 | g_object_unref (x->handlebox_widget); | 4979 | g_object_unref (top_widget); |
| 4944 | if (xg_update_tool_bar_sizes (f)) | 4980 | if (xg_update_tool_bar_sizes (f)) |
| 4945 | xg_height_or_width_changed (f); | 4981 | xg_height_or_width_changed (f); |
| 4946 | 4982 | ||
| @@ -4966,7 +5002,9 @@ xg_initialize (void) | |||
| 4966 | 5002 | ||
| 4967 | gdpy_def = NULL; | 5003 | gdpy_def = NULL; |
| 4968 | xg_ignore_gtk_scrollbar = 0; | 5004 | xg_ignore_gtk_scrollbar = 0; |
| 5005 | #ifdef HAVE_GTK_TEAROFF_MENU_ITEM_NEW | ||
| 4969 | xg_detached_menus = 0; | 5006 | xg_detached_menus = 0; |
| 5007 | #endif | ||
| 4970 | xg_menu_cb_list.prev = xg_menu_cb_list.next = | 5008 | xg_menu_cb_list.prev = xg_menu_cb_list.next = |
| 4971 | xg_menu_item_cb_list.prev = xg_menu_item_cb_list.next = 0; | 5009 | xg_menu_item_cb_list.prev = xg_menu_item_cb_list.next = 0; |
| 4972 | 5010 | ||
diff --git a/src/xdisp.c b/src/xdisp.c index 26d41a42cc8..2464fc06fa4 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -14250,7 +14250,12 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, | |||
| 14250 | CHARPOS is zero or negative. */ | 14250 | CHARPOS is zero or negative. */ |
| 14251 | int empty_line_p = | 14251 | int empty_line_p = |
| 14252 | (row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end) | 14252 | (row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end) |
| 14253 | && INTEGERP (glyph->object) && glyph->charpos > 0; | 14253 | && INTEGERP (glyph->object) && glyph->charpos > 0 |
| 14254 | /* On a TTY, continued and truncated rows also have a glyph at | ||
| 14255 | their end whose OBJECT is zero and whose CHARPOS is | ||
| 14256 | positive (the continuation and truncation glyphs), but such | ||
| 14257 | rows are obviously not "empty". */ | ||
| 14258 | && !(row->continued_p || row->truncated_on_right_p); | ||
| 14254 | 14259 | ||
| 14255 | if (row->ends_in_ellipsis_p && pos_after == last_pos) | 14260 | if (row->ends_in_ellipsis_p && pos_after == last_pos) |
| 14256 | { | 14261 | { |
diff --git a/src/xterm.h b/src/xterm.h index e680cbe7dd2..2d99d2f25db 100644 --- a/src/xterm.h +++ b/src/xterm.h | |||
| @@ -473,10 +473,13 @@ struct x_output | |||
| 473 | GtkWidget *menubar_widget; | 473 | GtkWidget *menubar_widget; |
| 474 | /* The tool bar in this frame */ | 474 | /* The tool bar in this frame */ |
| 475 | GtkWidget *toolbar_widget; | 475 | GtkWidget *toolbar_widget; |
| 476 | /* The handle box that makes the tool bar detachable. */ | 476 | #ifdef HAVE_GTK_HANDLE_BOX_NEW |
| 477 | /* The handle box that makes the tool bar detachable. */ | ||
| 477 | GtkWidget *handlebox_widget; | 478 | GtkWidget *handlebox_widget; |
| 479 | #endif | ||
| 478 | /* Non-zero if tool bar is packed into the hbox widget (i.e. vertical). */ | 480 | /* Non-zero if tool bar is packed into the hbox widget (i.e. vertical). */ |
| 479 | int toolbar_in_hbox; | 481 | bool toolbar_in_hbox; |
| 482 | bool toolbar_is_packed; | ||
| 480 | 483 | ||
| 481 | /* The last size hints set. */ | 484 | /* The last size hints set. */ |
| 482 | GdkGeometry size_hints; | 485 | GdkGeometry size_hints; |