diff options
| author | Miles Bader | 2004-09-25 12:05:36 +0000 |
|---|---|---|
| committer | Miles Bader | 2004-09-25 12:05:36 +0000 |
| commit | 8f92d598fb067c498704099b9ae241c086724bb0 (patch) | |
| tree | d0f0442cad8dc15dfdb6d58b3d37bade9bdeb911 | |
| parent | 1e93b7ff336bc088a78bcc4aa43b2decd7183ae5 (diff) | |
| parent | 4de43c8bd612fbcd97162dbdf4a74c2e157373e2 (diff) | |
| download | emacs-8f92d598fb067c498704099b9ae241c086724bb0.tar.gz emacs-8f92d598fb067c498704099b9ae241c086724bb0.zip | |
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-44
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-562
Update from CVS: lisp/subr.el (after-change-major-mode-hook): Doc fix.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-563
- miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-570
Update from CVS
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rwxr-xr-x | configure | 80 | ||||
| -rw-r--r-- | configure.in | 13 | ||||
| -rw-r--r-- | etc/NEWS | 32 | ||||
| -rw-r--r-- | leim/quail/uni-input.el | 5 | ||||
| -rw-r--r-- | lisp/ChangeLog | 90 | ||||
| -rw-r--r-- | lisp/calc/calc-graph.el | 14 | ||||
| -rw-r--r-- | lisp/calendar/calendar.el | 35 | ||||
| -rw-r--r-- | lisp/calendar/holidays.el | 112 | ||||
| -rw-r--r-- | lisp/ido.el | 276 | ||||
| -rw-r--r-- | lisp/image.el | 9 | ||||
| -rw-r--r-- | lisp/ls-lisp.el | 2 | ||||
| -rw-r--r-- | lisp/printing.el | 19 | ||||
| -rw-r--r-- | lisp/progmodes/tcl.el | 16 | ||||
| -rw-r--r-- | lisp/subr.el | 5 | ||||
| -rw-r--r-- | lisp/textmodes/enriched.el | 20 | ||||
| -rw-r--r-- | lispref/ChangeLog | 59 | ||||
| -rw-r--r-- | lispref/display.texi | 403 | ||||
| -rw-r--r-- | lispref/hooks.texi | 1 | ||||
| -rw-r--r-- | lispref/modes.texi | 89 | ||||
| -rw-r--r-- | lispref/text.texi | 64 | ||||
| -rw-r--r-- | man/ChangeLog | 9 | ||||
| -rw-r--r-- | man/calc.texi | 8 | ||||
| -rw-r--r-- | man/display.texi | 39 | ||||
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/Makefile.in | 15 | ||||
| -rw-r--r-- | src/config.in | 3 |
27 files changed, 1193 insertions, 236 deletions
| @@ -1,3 +1,8 @@ | |||
| 1 | 2004-09-24 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * configure.in: Check for exec-shield. | ||
| 4 | * configure: Rebuild. | ||
| 5 | |||
| 1 | 2004-08-06 Andreas Schwab <schwab@suse.de> | 6 | 2004-08-06 Andreas Schwab <schwab@suse.de> |
| 2 | 7 | ||
| 3 | * Makefile.in (install-arch-indep, uninstall): Add flymake. | 8 | * Makefile.in (install-arch-indep, uninstall): Add flymake. |
| @@ -310,7 +310,7 @@ ac_includes_default="\ | |||
| 310 | # include <unistd.h> | 310 | # include <unistd.h> |
| 311 | #endif" | 311 | #endif" |
| 312 | 312 | ||
| 313 | ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS' | 313 | ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP SETARCH LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS' |
| 314 | ac_subst_files='' | 314 | ac_subst_files='' |
| 315 | 315 | ||
| 316 | # Initialize some variables set by options. | 316 | # Initialize some variables set by options. |
| @@ -4278,6 +4278,80 @@ rm -f conftest* | |||
| 4278 | 4278 | ||
| 4279 | 4279 | ||
| 4280 | 4280 | ||
| 4281 | echo "$as_me:$LINENO: checking for /proc/sys/kernel/exec-shield" >&5 | ||
| 4282 | echo $ECHO_N "checking for /proc/sys/kernel/exec-shield... $ECHO_C" >&6 | ||
| 4283 | if test "${ac_cv_file__proc_sys_kernel_exec_shield+set}" = set; then | ||
| 4284 | echo $ECHO_N "(cached) $ECHO_C" >&6 | ||
| 4285 | else | ||
| 4286 | test "$cross_compiling" = yes && | ||
| 4287 | { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 | ||
| 4288 | echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} | ||
| 4289 | { (exit 1); exit 1; }; } | ||
| 4290 | if test -r "/proc/sys/kernel/exec-shield"; then | ||
| 4291 | ac_cv_file__proc_sys_kernel_exec_shield=yes | ||
| 4292 | else | ||
| 4293 | ac_cv_file__proc_sys_kernel_exec_shield=no | ||
| 4294 | fi | ||
| 4295 | fi | ||
| 4296 | echo "$as_me:$LINENO: result: $ac_cv_file__proc_sys_kernel_exec_shield" >&5 | ||
| 4297 | echo "${ECHO_T}$ac_cv_file__proc_sys_kernel_exec_shield" >&6 | ||
| 4298 | if test $ac_cv_file__proc_sys_kernel_exec_shield = yes; then | ||
| 4299 | emacs_cv_execshield=1 | ||
| 4300 | else | ||
| 4301 | emacs_cv_execshield=0 | ||
| 4302 | fi | ||
| 4303 | |||
| 4304 | if test "$emacs_cv_execshield" = 1; then | ||
| 4305 | # Extract the first word of "setarch", so it can be a program name with args. | ||
| 4306 | set dummy setarch; ac_word=$2 | ||
| 4307 | echo "$as_me:$LINENO: checking for $ac_word" >&5 | ||
| 4308 | echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 | ||
| 4309 | if test "${ac_cv_path_SETARCH+set}" = set; then | ||
| 4310 | echo $ECHO_N "(cached) $ECHO_C" >&6 | ||
| 4311 | else | ||
| 4312 | case $SETARCH in | ||
| 4313 | [\\/]* | ?:[\\/]*) | ||
| 4314 | ac_cv_path_SETARCH="$SETARCH" # Let the user override the test with a path. | ||
| 4315 | ;; | ||
| 4316 | *) | ||
| 4317 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
| 4318 | for as_dir in $PATH | ||
| 4319 | do | ||
| 4320 | IFS=$as_save_IFS | ||
| 4321 | test -z "$as_dir" && as_dir=. | ||
| 4322 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
| 4323 | if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | ||
| 4324 | ac_cv_path_SETARCH="$as_dir/$ac_word$ac_exec_ext" | ||
| 4325 | echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
| 4326 | break 2 | ||
| 4327 | fi | ||
| 4328 | done | ||
| 4329 | done | ||
| 4330 | |||
| 4331 | test -z "$ac_cv_path_SETARCH" && ac_cv_path_SETARCH="no" | ||
| 4332 | ;; | ||
| 4333 | esac | ||
| 4334 | fi | ||
| 4335 | SETARCH=$ac_cv_path_SETARCH | ||
| 4336 | |||
| 4337 | if test -n "$SETARCH"; then | ||
| 4338 | echo "$as_me:$LINENO: result: $SETARCH" >&5 | ||
| 4339 | echo "${ECHO_T}$SETARCH" >&6 | ||
| 4340 | else | ||
| 4341 | echo "$as_me:$LINENO: result: no" >&5 | ||
| 4342 | echo "${ECHO_T}no" >&6 | ||
| 4343 | fi | ||
| 4344 | |||
| 4345 | |||
| 4346 | if test "$setarch" != no; then | ||
| 4347 | |||
| 4348 | cat >>confdefs.h <<\_ACEOF | ||
| 4349 | #define HAVE_EXECSHIELD 1 | ||
| 4350 | _ACEOF | ||
| 4351 | |||
| 4352 | fi | ||
| 4353 | fi | ||
| 4354 | |||
| 4281 | #### Extract some information from the operating system and machine files. | 4355 | #### Extract some information from the operating system and machine files. |
| 4282 | 4356 | ||
| 4283 | { echo "$as_me:$LINENO: checking the machine- and system-dependent files to find out | 4357 | { echo "$as_me:$LINENO: checking the machine- and system-dependent files to find out |
| @@ -13277,7 +13351,6 @@ done | |||
| 13277 | 13351 | ||
| 13278 | 13352 | ||
| 13279 | 13353 | ||
| 13280 | |||
| 13281 | for ac_func in gethostname getdomainname dup2 \ | 13354 | for ac_func in gethostname getdomainname dup2 \ |
| 13282 | rename closedir mkdir rmdir sysinfo \ | 13355 | rename closedir mkdir rmdir sysinfo \ |
| 13283 | random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ | 13356 | random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ |
| @@ -13286,7 +13359,7 @@ utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \ | |||
| 13286 | __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ | 13359 | __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ |
| 13287 | sendto recvfrom getsockopt setsockopt getsockname getpeername \ | 13360 | sendto recvfrom getsockopt setsockopt getsockname getpeername \ |
| 13288 | gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ | 13361 | gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ |
| 13289 | memset memcmp memmove difftime memcpy mempcpy mblen mbrlen posix_memalign | 13362 | memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign |
| 13290 | do | 13363 | do |
| 13291 | as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` | 13364 | as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` |
| 13292 | echo "$as_me:$LINENO: checking for $ac_func" >&5 | 13365 | echo "$as_me:$LINENO: checking for $ac_func" >&5 |
| @@ -22002,6 +22075,7 @@ s,@RANLIB@,$RANLIB,;t t | |||
| 22002 | s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t | 22075 | s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t |
| 22003 | s,@INSTALL_INFO@,$INSTALL_INFO,;t t | 22076 | s,@INSTALL_INFO@,$INSTALL_INFO,;t t |
| 22004 | s,@EGREP@,$EGREP,;t t | 22077 | s,@EGREP@,$EGREP,;t t |
| 22078 | s,@SETARCH@,$SETARCH,;t t | ||
| 22005 | s,@LIBSOUND@,$LIBSOUND,;t t | 22079 | s,@LIBSOUND@,$LIBSOUND,;t t |
| 22006 | s,@SET_MAKE@,$SET_MAKE,;t t | 22080 | s,@SET_MAKE@,$SET_MAKE,;t t |
| 22007 | s,@PKG_CONFIG@,$PKG_CONFIG,;t t | 22081 | s,@PKG_CONFIG@,$PKG_CONFIG,;t t |
diff --git a/configure.in b/configure.in index b7318b8f805..52c35bb2b09 100644 --- a/configure.in +++ b/configure.in | |||
| @@ -1286,6 +1286,17 @@ AC_LINK_IFELSE([main(){return 0;}], | |||
| 1286 | dnl checks for Unix variants | 1286 | dnl checks for Unix variants |
| 1287 | AC_AIX | 1287 | AC_AIX |
| 1288 | 1288 | ||
| 1289 | dnl check if exec-shield is present. | ||
| 1290 | AC_CHECK_FILE(/proc/sys/kernel/exec-shield, emacs_cv_execshield=1, | ||
| 1291 | emacs_cv_execshield=0) | ||
| 1292 | if test "$emacs_cv_execshield" = 1; then | ||
| 1293 | AC_PATH_PROG(SETARCH, setarch, no) | ||
| 1294 | AC_SUBST(SETARCH) | ||
| 1295 | if test "$setarch" != no; then | ||
| 1296 | AC_DEFINE(HAVE_EXECSHIELD, 1, [Define to 1 if this OS has exec shield.]) | ||
| 1297 | fi | ||
| 1298 | fi | ||
| 1299 | |||
| 1289 | #### Extract some information from the operating system and machine files. | 1300 | #### Extract some information from the operating system and machine files. |
| 1290 | 1301 | ||
| 1291 | AC_CHECKING([the machine- and system-dependent files to find out | 1302 | AC_CHECKING([the machine- and system-dependent files to find out |
| @@ -2342,7 +2353,7 @@ utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \ | |||
| 2342 | __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ | 2353 | __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ |
| 2343 | sendto recvfrom getsockopt setsockopt getsockname getpeername \ | 2354 | sendto recvfrom getsockopt setsockopt getsockname getpeername \ |
| 2344 | gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ | 2355 | gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ |
| 2345 | memset memcmp memmove difftime memcpy mempcpy mblen mbrlen posix_memalign) | 2356 | memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign) |
| 2346 | 2357 | ||
| 2347 | AC_CHECK_HEADERS(sys/un.h) | 2358 | AC_CHECK_HEADERS(sys/un.h) |
| 2348 | 2359 | ||
| @@ -436,6 +436,7 @@ feature. | |||
| 436 | % emacsclient -s foo file1 | 436 | % emacsclient -s foo file1 |
| 437 | % emacsclient -s bar file2 | 437 | % emacsclient -s bar file2 |
| 438 | 438 | ||
| 439 | +++ | ||
| 439 | ** On window systems, lines which are exactly as wide as the window | 440 | ** On window systems, lines which are exactly as wide as the window |
| 440 | (not counting the final newline character) are no longer broken into | 441 | (not counting the final newline character) are no longer broken into |
| 441 | two lines on the display (with just the newline on the second line). | 442 | two lines on the display (with just the newline on the second line). |
| @@ -445,6 +446,7 @@ cursor will be displayed in the fringe when positioned on that newline. | |||
| 445 | The new user option 'overflow-newline-into-fringe' may be set to nil to | 446 | The new user option 'overflow-newline-into-fringe' may be set to nil to |
| 446 | revert to the old behaviour of continuing such lines. | 447 | revert to the old behaviour of continuing such lines. |
| 447 | 448 | ||
| 449 | +++ | ||
| 448 | ** The buffer boundaries (i.e. first and last line in the buffer) may | 450 | ** The buffer boundaries (i.e. first and last line in the buffer) may |
| 449 | now be marked with angle bitmaps in the fringes. In addition, up and | 451 | now be marked with angle bitmaps in the fringes. In addition, up and |
| 450 | down arrow bitmaps may be shown at the top and bottom of the left or | 452 | down arrow bitmaps may be shown at the top and bottom of the left or |
| @@ -1482,6 +1484,12 @@ appointments, paydays or anything else using a sexp. | |||
| 1482 | year and day number, and moves to that date. Negative day numbers | 1484 | year and day number, and moves to that date. Negative day numbers |
| 1483 | count backward from the end of the year. | 1485 | count backward from the end of the year. |
| 1484 | 1486 | ||
| 1487 | --- | ||
| 1488 | ** The functions `holiday-easter-etc' and `holiday-advent' now take | ||
| 1489 | arguments, and only report on the specified holiday rather than all. | ||
| 1490 | This makes customization of the variable `christian-holidays' simpler, | ||
| 1491 | but existing customizations may need to be updated. | ||
| 1492 | |||
| 1485 | ** The function `simple-diary-display' now by default sets a header line. | 1493 | ** The function `simple-diary-display' now by default sets a header line. |
| 1486 | This can be controlled through the variables `diary-header-line-flag' | 1494 | This can be controlled through the variables `diary-header-line-flag' |
| 1487 | and `diary-header-line-format'. | 1495 | and `diary-header-line-format'. |
| @@ -2395,9 +2403,11 @@ operation. | |||
| 2395 | if the file is indeed remote. (Before, the return value was t in | 2403 | if the file is indeed remote. (Before, the return value was t in |
| 2396 | this case.) | 2404 | this case.) |
| 2397 | 2405 | ||
| 2406 | +++ | ||
| 2398 | ** The display space :width and :align-to text properties are now | 2407 | ** The display space :width and :align-to text properties are now |
| 2399 | supported on text terminals. | 2408 | supported on text terminals. |
| 2400 | 2409 | ||
| 2410 | +++ | ||
| 2401 | ** Support for displaying image slices | 2411 | ** Support for displaying image slices |
| 2402 | 2412 | ||
| 2403 | *** New display property (slice X Y WIDTH HEIGHT) may be used with | 2413 | *** New display property (slice X Y WIDTH HEIGHT) may be used with |
| @@ -2409,6 +2419,7 @@ specify image slice (X Y WIDTH HEIGHT). | |||
| 2409 | *** New function insert-sliced-image inserts a given image as a | 2419 | *** New function insert-sliced-image inserts a given image as a |
| 2410 | specified number of evenly sized slices (rows x columns). | 2420 | specified number of evenly sized slices (rows x columns). |
| 2411 | 2421 | ||
| 2422 | +++ | ||
| 2412 | ** New line-height and line-spacing properties for newline characters | 2423 | ** New line-height and line-spacing properties for newline characters |
| 2413 | 2424 | ||
| 2414 | A newline may now have line-height and line-spacing text or overlay | 2425 | A newline may now have line-height and line-spacing text or overlay |
| @@ -2445,10 +2456,10 @@ any of the forms described above, the value of SPACING is used as the | |||
| 2445 | total height of the line, i.e. a varying number of pixels are inserted | 2456 | total height of the line, i.e. a varying number of pixels are inserted |
| 2446 | after each line to make each line exactly that many pixels high. | 2457 | after each line to make each line exactly that many pixels high. |
| 2447 | 2458 | ||
| 2448 | |||
| 2449 | ** The buffer local line-spacing variable may now have a float value, | 2459 | ** The buffer local line-spacing variable may now have a float value, |
| 2450 | which is used as a height relative to the default frame line height. | 2460 | which is used as a height relative to the default frame line height. |
| 2451 | 2461 | ||
| 2462 | +++ | ||
| 2452 | ** Enhancements to stretch display properties | 2463 | ** Enhancements to stretch display properties |
| 2453 | 2464 | ||
| 2454 | The display property stretch specification form `(space PROPS)', where | 2465 | The display property stretch specification form `(space PROPS)', where |
| @@ -2505,6 +2516,7 @@ height) of the specified image. | |||
| 2505 | The form `(+ EXPR ...)' adds up the value of the expressions. | 2516 | The form `(+ EXPR ...)' adds up the value of the expressions. |
| 2506 | The form `(- EXPR ...)' negates or subtracts the value of the expressions. | 2517 | The form `(- EXPR ...)' negates or subtracts the value of the expressions. |
| 2507 | 2518 | ||
| 2519 | +++ | ||
| 2508 | ** Normally, the cursor is displayed at the end of any overlay and | 2520 | ** Normally, the cursor is displayed at the end of any overlay and |
| 2509 | text property string that may be present at the current window | 2521 | text property string that may be present at the current window |
| 2510 | position. The cursor may now be placed on any character of such | 2522 | position. The cursor may now be placed on any character of such |
| @@ -2522,7 +2534,10 @@ a terminal that supports at least this many colors. This is now the | |||
| 2522 | preferred method for defining default faces in a way that makes a good | 2534 | preferred method for defining default faces in a way that makes a good |
| 2523 | use of the capabilities of the display. | 2535 | use of the capabilities of the display. |
| 2524 | 2536 | ||
| 2525 | ** New function 'define-fringe-bitmap' can now be used to change the | 2537 | +++ |
| 2538 | ** Customizable fringe bitmaps | ||
| 2539 | |||
| 2540 | *** New function 'define-fringe-bitmap' can now be used to change the | ||
| 2526 | built-in fringe bitmaps, as well as create new fringe bitmaps. | 2541 | built-in fringe bitmaps, as well as create new fringe bitmaps. |
| 2527 | The return value is a number identifying the new fringe bitmap. | 2542 | The return value is a number identifying the new fringe bitmap. |
| 2528 | 2543 | ||
| @@ -2530,15 +2545,15 @@ To change a built-in bitmap, do (require 'fringe) and identify the | |||
| 2530 | bitmap to change with the value of the corresponding symbol, like | 2545 | bitmap to change with the value of the corresponding symbol, like |
| 2531 | `left-truncation-fringe-bitmap' or `continued-line-fringe-bitmap'. | 2546 | `left-truncation-fringe-bitmap' or `continued-line-fringe-bitmap'. |
| 2532 | 2547 | ||
| 2533 | ** New function 'destroy-fringe-bitmap' may be used to destroy a | 2548 | *** New function 'destroy-fringe-bitmap' may be used to destroy a |
| 2534 | previously created bitmap, or restore a built-in bitmap. | 2549 | previously created bitmap, or restore a built-in bitmap. |
| 2535 | 2550 | ||
| 2536 | ** New function 'set-fringe-bitmap-face' can now be used to set a | 2551 | *** New function 'set-fringe-bitmap-face' can now be used to set a |
| 2537 | specific face to be used for a specific fringe bitmap. Normally, | 2552 | specific face to be used for a specific fringe bitmap. Normally, |
| 2538 | this should be a face derived from the `fringe' face, specifying | 2553 | this should be a face derived from the `fringe' face, specifying |
| 2539 | the foreground color as the desired color of the bitmap. | 2554 | the foreground color as the desired color of the bitmap. |
| 2540 | 2555 | ||
| 2541 | ** There are new display properties, left-fringe and right-fringe, | 2556 | *** There are new display properties, left-fringe and right-fringe, |
| 2542 | that can be used to show a specific bitmap in the left or right fringe | 2557 | that can be used to show a specific bitmap in the left or right fringe |
| 2543 | bitmap of the display line. | 2558 | bitmap of the display line. |
| 2544 | 2559 | ||
| @@ -2547,7 +2562,7 @@ number identifying a fringe bitmap, either built-in or as returned by | |||
| 2547 | `define-fringe-bitmap', and FACE is an optional face name to be used | 2562 | `define-fringe-bitmap', and FACE is an optional face name to be used |
| 2548 | for displaying the bitmap. | 2563 | for displaying the bitmap. |
| 2549 | 2564 | ||
| 2550 | ** New function `fringe-bitmaps-at-pos' returns a cons (LEFT . RIGHT) | 2565 | *** New function `fringe-bitmaps-at-pos' returns a cons (LEFT . RIGHT) |
| 2551 | identifying the current fringe bitmaps in the display line at a given | 2566 | identifying the current fringe bitmaps in the display line at a given |
| 2552 | buffer position. A nil value means no bitmap. | 2567 | buffer position. A nil value means no bitmap. |
| 2553 | 2568 | ||
| @@ -2614,18 +2629,23 @@ return value of `get-char-property' called with those arguments and | |||
| 2614 | whose cdr is the overlay in which the property was found, or nil if | 2629 | whose cdr is the overlay in which the property was found, or nil if |
| 2615 | it was found as a text property or not found at all. | 2630 | it was found as a text property or not found at all. |
| 2616 | 2631 | ||
| 2632 | +++ (lispref) | ||
| 2633 | ??? (man) | ||
| 2617 | ** The mouse pointer shape in void text areas (i.e. after the end of a | 2634 | ** The mouse pointer shape in void text areas (i.e. after the end of a |
| 2618 | line or below the last line in the buffer) of the text window is now | 2635 | line or below the last line in the buffer) of the text window is now |
| 2619 | controlled by the new variable `void-text-area-pointer'. The default | 2636 | controlled by the new variable `void-text-area-pointer'. The default |
| 2620 | is to use the `arrow' (non-text) pointer. Other choices are `text' | 2637 | is to use the `arrow' (non-text) pointer. Other choices are `text' |
| 2621 | (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. | 2638 | (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. |
| 2622 | 2639 | ||
| 2640 | +++ | ||
| 2623 | ** The mouse pointer shape over an image can now be controlled by the | 2641 | ** The mouse pointer shape over an image can now be controlled by the |
| 2624 | :pointer image property. | 2642 | :pointer image property. |
| 2625 | 2643 | ||
| 2644 | +++ | ||
| 2626 | ** The mouse pointer shape over ordinary text or images may now be | 2645 | ** The mouse pointer shape over ordinary text or images may now be |
| 2627 | controlled/overriden via the `pointer' text property. | 2646 | controlled/overriden via the `pointer' text property. |
| 2628 | 2647 | ||
| 2648 | +++ | ||
| 2629 | ** Images may now have an associated image map via the :map property. | 2649 | ** Images may now have an associated image map via the :map property. |
| 2630 | 2650 | ||
| 2631 | An image map is an alist where each element has the format (AREA ID PLIST). | 2651 | An image map is an alist where each element has the format (AREA ID PLIST). |
diff --git a/leim/quail/uni-input.el b/leim/quail/uni-input.el index 9e2c04278d6..41c5dd785cd 100644 --- a/leim/quail/uni-input.el +++ b/leim/quail/uni-input.el | |||
| @@ -73,8 +73,9 @@ | |||
| 73 | (ucs-input-insert-char key)) | 73 | (ucs-input-insert-char key)) |
| 74 | (let ((last-command-char key) | 74 | (let ((last-command-char key) |
| 75 | (current-prefix-arg)) | 75 | (current-prefix-arg)) |
| 76 | (condition-case nil | 76 | (condition-case err |
| 77 | (call-interactively (key-binding seq)))) | 77 | (call-interactively (key-binding seq)) |
| 78 | (quail-error (message "%s" (cdr err)) (beep)))) | ||
| 78 | (quail-delete-region) | 79 | (quail-delete-region) |
| 79 | (throw 'non-digit (append (reverse events) | 80 | (throw 'non-digit (append (reverse events) |
| 80 | (listify-key-sequence seq)))))) | 81 | (listify-key-sequence seq)))))) |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8263604548b..a77f2206e58 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,93 @@ | |||
| 1 | 2004-09-25 Lars Hansen <larsh@math.ku.dk> | ||
| 2 | |||
| 3 | * ls-lisp.el (ls-lisp-format): Mark file names with poperty | ||
| 4 | dired-filename. | ||
| 5 | |||
| 6 | 2004-09-25 Kim F. Storm <storm@cua.dk> | ||
| 7 | |||
| 8 | * ido.el (ido-max-directory-size): New defcustom. | ||
| 9 | (ido-decorations): Add "too big" element. | ||
| 10 | (ido-directory-too-big): New dynamic var. | ||
| 11 | (ido-may-cache-directory): Don't cache big directories. | ||
| 12 | (ido-directory-too-big-p): New defun. | ||
| 13 | (ido-set-current-directory): Update ido-directory-too-big. | ||
| 14 | (ido-read-internal): Make empty ido-cur-item if too-big. | ||
| 15 | (ido-buffer-internal): Use ido-read-internal directly instead of | ||
| 16 | ido-read-buffer. | ||
| 17 | (ido-file-internal): Init ido-directory-too-big. | ||
| 18 | (ido-complete): <TAB> If ido-directory-too-big is set, clear it, | ||
| 19 | and redo completion with full list. | ||
| 20 | (ido-toggle-ignore): <C-a> If ido-directory-too-big is set, clear | ||
| 21 | it, and show completions. | ||
| 22 | (ido-all-completions): Let bind ido-directory-too-big to nil. | ||
| 23 | (ido-exhibit): Handle ido-directory-too-big. | ||
| 24 | (ido-read-buffer): Handle fallback to read-buffer. Init | ||
| 25 | ido-directory-too-big. | ||
| 26 | (ido-read-file-name, ido-read-directory-name, ido-completing-read): | ||
| 27 | Init ido-directory-too-big. | ||
| 28 | |||
| 29 | 2004-09-24 Luc Teirlinck <teirllm@auburn.edu> | ||
| 30 | |||
| 31 | * subr.el (delay-mode-hooks): Doc fix. | ||
| 32 | |||
| 33 | 2004-09-23 Luc Teirlinck <teirllm@auburn.edu> | ||
| 34 | |||
| 35 | * textmodes/enriched.el | ||
| 36 | (enriched-default-text-properties-local-flag): New variable. | ||
| 37 | (enriched-mode): Make sure that enabling and disabling the mode is | ||
| 38 | a no-op. Doc fix. | ||
| 39 | |||
| 40 | 2004-09-23 H,Ae(Bkon Malmedal <hmalmedal@yahoo.no> (tiny change) | ||
| 41 | |||
| 42 | * calendar/holidays.el (holiday-advent): Report on a specified day | ||
| 43 | offset from advent, not just advent. | ||
| 44 | (holiday-easter-etc): Report on one specified day offset from | ||
| 45 | easter, not all easter holidays. Various Easter holidays moved to | ||
| 46 | `christian-holidays' variable in calendar.el. | ||
| 47 | * calendar/calendar.el (christian-holidays): Adapt for new | ||
| 48 | behaviour of `holiday-advent' and `holiday-easter-etc' functions. | ||
| 49 | |||
| 50 | 2004-09-23 Kim F. Storm <storm@cua.dk> | ||
| 51 | |||
| 52 | * image.el (insert-sliced-image): Add doc string. | ||
| 53 | |||
| 54 | * ido.el (ido-choice-list): New dynamic var for `list' context. | ||
| 55 | (ido-context-switch-command): New dynamic var. | ||
| 56 | (ido-define-mode-map): Generalize switch between file/buffer contexts. | ||
| 57 | (ido-read-internal): Handle new `list' context. | ||
| 58 | Handle insert-buffer and insert-file ido-exit values. | ||
| 59 | (ido-buffer-internal): New arg switch-cmd. Use it to setup | ||
| 60 | ido-context-switch-command. Handle insert-file ido-exit value. | ||
| 61 | (ido-read-buffer): Set ido-context-switch-command to 'ignore | ||
| 62 | unless it is already bound by caller. | ||
| 63 | (ido-file-internal): New arg switch-cmd. Use it to setup | ||
| 64 | ido-context-switch-command. Handle insert-buffer ido-exit value. | ||
| 65 | (ido-enter-insert-buffer, ido-enter-insert-file): New commands | ||
| 66 | used for context switching. | ||
| 67 | (ido-all-completions): Handle new `list' context. | ||
| 68 | (ido-make-choice-list): Return choices for `list' context. | ||
| 69 | (ido-find-file-in-dir, ido-display-file, ido-write-file) | ||
| 70 | (ido-display-buffer, ido-kill-buffer): Disable context switching. | ||
| 71 | (ido-insert-buffer, ido-insert-file): Setup context switching. | ||
| 72 | (ido-exhibit): Handle `list' context. | ||
| 73 | (ido-read-file-name): Disable context switching. Handle fallback. | ||
| 74 | (ido-read-directory-name): Disable context switching. | ||
| 75 | (ido-completing-read): New defun like completing-read. Setup and | ||
| 76 | use new `list' context. | ||
| 77 | |||
| 78 | 2004-09-20 Jesper Harder <harder@ifa.au.dk> | ||
| 79 | |||
| 80 | * progmodes/tcl.el (inferior-tcl): Use pop-to-buffer. | ||
| 81 | |||
| 82 | 2004-09-21 Luc Teirlinck <teirllm@auburn.edu> | ||
| 83 | |||
| 84 | * subr.el (after-change-major-mode-hook): Doc fix. | ||
| 85 | |||
| 86 | 2004-09-21 Vinicius Jose Latorre <viniciusjl@ig.com.br> | ||
| 87 | |||
| 88 | * printing.el: Doc fix. Add a new tip about the use of gsprint instead | ||
| 89 | of ghostscript for monochrome PostScript file in Windows. | ||
| 90 | |||
| 1 | 2004-09-21 Kenichi Handa <handa@m17n.org> | 91 | 2004-09-21 Kenichi Handa <handa@m17n.org> |
| 2 | 92 | ||
| 3 | * descr-text.el (describe-char): Checking of quail activation | 93 | * descr-text.el (describe-char): Checking of quail activation |
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el index df7bbe377ab..70d044c202e 100644 --- a/lisp/calc/calc-graph.el +++ b/lisp/calc/calc-graph.el | |||
| @@ -210,13 +210,13 @@ | |||
| 210 | "title \"" (symbol-name (nth 1 ydata)) "\" " | 210 | "title \"" (symbol-name (nth 1 ydata)) "\" " |
| 211 | "with dots") | 211 | "with dots") |
| 212 | (setq pstyle (and (eq (car-safe pstyle) 'vec) (nth (1+ num) pstyle))) | 212 | (setq pstyle (and (eq (car-safe pstyle) 'vec) (nth (1+ num) pstyle))) |
| 213 | (setq lstyle (and (eq (car-safe lstyle) 'vec) (nth (1+ num) lstyle))) | 213 | (setq lstyle (and (eq (car-safe lstyle) 'vec) (nth (1+ num) lstyle)))) |
| 214 | (calc-graph-set-styles | 214 | (calc-graph-set-styles |
| 215 | (or (and (Math-num-integerp lstyle) (math-trunc lstyle)) | 215 | (or (and (Math-num-integerp lstyle) (math-trunc lstyle)) |
| 216 | 0) | 216 | 0) |
| 217 | (or (and (Math-num-integerp pstyle) (math-trunc pstyle)) | 217 | (or (and (Math-num-integerp pstyle) (math-trunc pstyle)) |
| 218 | (if (eq (car-safe (calc-var-value (nth 2 ydata))) 'vec) | 218 | (if (eq (car-safe (calc-var-value (nth 2 ydata))) 'vec) |
| 219 | 0 -1)))))) | 219 | 0 -1))))) |
| 220 | 220 | ||
| 221 | (defun calc-graph-lookup (thing) | 221 | (defun calc-graph-lookup (thing) |
| 222 | (if (and (eq (car-safe thing) 'var) | 222 | (if (and (eq (car-safe thing) 'var) |
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index 43171255bbe..9d38cde21ce 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | ;; 2000, 2001, 2003, 2004 Free Software Foundation, Inc. | 4 | ;; 2000, 2001, 2003, 2004 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> | 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> |
| 7 | ;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> | ||
| 7 | ;; Keywords: calendar | 8 | ;; Keywords: calendar |
| 8 | ;; Human-Keywords: calendar, Gregorian calendar, diary, holidays | 9 | ;; Human-Keywords: calendar, Gregorian calendar, diary, holidays |
| 9 | 10 | ||
| @@ -1046,13 +1047,43 @@ See the documentation for `calendar-holidays' for details." | |||
| 1046 | (defcustom christian-holidays | 1047 | (defcustom christian-holidays |
| 1047 | '((if all-christian-calendar-holidays | 1048 | '((if all-christian-calendar-holidays |
| 1048 | (holiday-fixed 1 6 "Epiphany")) | 1049 | (holiday-fixed 1 6 "Epiphany")) |
| 1049 | (holiday-easter-etc) | 1050 | (holiday-easter-etc 0 "Easter Sunday") |
| 1051 | (holiday-easter-etc -2 "Good Friday") | ||
| 1052 | (holiday-easter-etc -46 "Ash Wednesday") | ||
| 1053 | (if all-christian-calendar-holidays | ||
| 1054 | (holiday-easter-etc -63 "Septuagesima Sunday")) | ||
| 1055 | (if all-christian-calendar-holidays | ||
| 1056 | (holiday-easter-etc -56 "Sexagesima Sunday")) | ||
| 1057 | (if all-christian-calendar-holidays | ||
| 1058 | (holiday-easter-etc -49 "Shrove Sunday")) | ||
| 1059 | (if all-christian-calendar-holidays | ||
| 1060 | (holiday-easter-etc -48 "Shrove Monday")) | ||
| 1061 | (if all-christian-calendar-holidays | ||
| 1062 | (holiday-easter-etc -47 "Shrove Tuesday")) | ||
| 1063 | (if all-christian-calendar-holidays | ||
| 1064 | (holiday-easter-etc -14 "Passion Sunday")) | ||
| 1065 | (if all-christian-calendar-holidays | ||
| 1066 | (holiday-easter-etc -7 "Palm Sunday")) | ||
| 1067 | (if all-christian-calendar-holidays | ||
| 1068 | (holiday-easter-etc -3 "Maundy Thursday")) | ||
| 1069 | (if all-christian-calendar-holidays | ||
| 1070 | (holiday-easter-etc 35 "Rogation Sunday")) | ||
| 1071 | (if all-christian-calendar-holidays | ||
| 1072 | (holiday-easter-etc 39 "Ascension Day")) | ||
| 1073 | (if all-christian-calendar-holidays | ||
| 1074 | (holiday-easter-etc 49 "Pentecost (Whitsunday)")) | ||
| 1075 | (if all-christian-calendar-holidays | ||
| 1076 | (holiday-easter-etc 50 "Whitmonday")) | ||
| 1077 | (if all-christian-calendar-holidays | ||
| 1078 | (holiday-easter-etc 56 "Trinity Sunday")) | ||
| 1079 | (if all-christian-calendar-holidays | ||
| 1080 | (holiday-easter-etc 60 "Corpus Christi")) | ||
| 1050 | (if all-christian-calendar-holidays | 1081 | (if all-christian-calendar-holidays |
| 1051 | (holiday-greek-orthodox-easter)) | 1082 | (holiday-greek-orthodox-easter)) |
| 1052 | (if all-christian-calendar-holidays | 1083 | (if all-christian-calendar-holidays |
| 1053 | (holiday-fixed 8 15 "Assumption")) | 1084 | (holiday-fixed 8 15 "Assumption")) |
| 1054 | (if all-christian-calendar-holidays | 1085 | (if all-christian-calendar-holidays |
| 1055 | (holiday-advent)) | 1086 | (holiday-advent 0 "Advent")) |
| 1056 | (holiday-fixed 12 25 "Christmas") | 1087 | (holiday-fixed 12 25 "Christmas") |
| 1057 | (if all-christian-calendar-holidays | 1088 | (if all-christian-calendar-holidays |
| 1058 | (holiday-julian 12 25 "Eastern Orthodox Christmas"))) | 1089 | (holiday-julian 12 25 "Eastern Orthodox Christmas"))) |
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el index 71f73f24b75..a1adc080b2f 100644 --- a/lisp/calendar/holidays.el +++ b/lisp/calendar/holidays.el | |||
| @@ -1,8 +1,10 @@ | |||
| 1 | ;;; holidays.el --- holiday functions for the calendar package | 1 | ;;; holidays.el --- holiday functions for the calendar package |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1989, 90, 92, 93, 94, 1997 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1997, 2004 Free |
| 4 | ;; Software Foundation, Inc. | ||
| 4 | 5 | ||
| 5 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> | 6 | ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> |
| 7 | ;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk> | ||
| 6 | ;; Keywords: holidays, calendar | 8 | ;; Keywords: holidays, calendar |
| 7 | 9 | ||
| 8 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| @@ -398,86 +400,46 @@ date. If date is nil, or if the date is not visible, there is no holiday." | |||
| 398 | (string (if date (eval string)))) | 400 | (string (if date (eval string)))) |
| 399 | (list (list date string))))))) | 401 | (list (list date string))))))) |
| 400 | 402 | ||
| 401 | (defun holiday-advent () | 403 | (defun holiday-advent (n string) |
| 402 | "Date of Advent, if visible in calendar window." | 404 | "Date of Nth day after advent (named STRING), if visible in calendar window." |
| 403 | (let ((year displayed-year) | 405 | (let ((year displayed-year) |
| 404 | (month displayed-month)) | 406 | (month displayed-month)) |
| 405 | (increment-calendar-month month year -1) | 407 | (increment-calendar-month month year -1) |
| 406 | (let ((advent (calendar-gregorian-from-absolute | 408 | (let ((advent (calendar-gregorian-from-absolute |
| 407 | (calendar-dayname-on-or-before 0 | 409 | (+ n |
| 408 | (calendar-absolute-from-gregorian | 410 | (calendar-dayname-on-or-before |
| 409 | (list 12 3 year)))))) | 411 | 0 |
| 412 | (calendar-absolute-from-gregorian | ||
| 413 | (list 12 3 year))))))) | ||
| 410 | (if (calendar-date-is-visible-p advent) | 414 | (if (calendar-date-is-visible-p advent) |
| 411 | (list (list advent "Advent")))))) | 415 | (list (list advent string)))))) |
| 412 | 416 | ||
| 413 | (defun holiday-easter-etc () | 417 | (defun holiday-easter-etc (n string) |
| 414 | "List of dates related to Easter, as visible in calendar window." | 418 | "Date of Nth day after Easter (named STRING), if visible in calendar window." |
| 415 | (if (and (> displayed-month 5) (not all-christian-calendar-holidays)) | 419 | (let* ((century (1+ (/ displayed-year 100))) |
| 416 | nil;; Ash Wednesday, Good Friday, and Easter are not visible. | 420 | (shifted-epact ;; Age of moon for April 5... |
| 417 | (let* ((century (1+ (/ displayed-year 100))) | 421 | (% (+ 14 (* 11 (% displayed-year 19));; ...by Nicaean rule |
| 418 | (shifted-epact ;; Age of moon for April 5... | 422 | (- ;; ...corrected for the Gregorian century rule |
| 419 | (% (+ 14 (* 11 (% displayed-year 19));; ...by Nicaean rule | 423 | (/ (* 3 century) 4)) |
| 420 | (- ;; ...corrected for the Gregorian century rule | 424 | (/ ;; ...corrected for Metonic cycle inaccuracy. |
| 421 | (/ (* 3 century) 4)) | 425 | (+ 5 (* 8 century)) 25) |
| 422 | (/ ;; ...corrected for Metonic cycle inaccuracy. | 426 | (* 30 century));; Keeps value positive. |
| 423 | (+ 5 (* 8 century)) 25) | 427 | 30)) |
| 424 | (* 30 century));; Keeps value positive. | 428 | (adjusted-epact ;; Adjust for 29.5 day month. |
| 425 | 30)) | 429 | (if (or (= shifted-epact 0) |
| 426 | (adjusted-epact ;; Adjust for 29.5 day month. | 430 | (and (= shifted-epact 1) (< 10 (% displayed-year 19)))) |
| 427 | (if (or (= shifted-epact 0) | 431 | (1+ shifted-epact) |
| 428 | (and (= shifted-epact 1) (< 10 (% displayed-year 19)))) | 432 | shifted-epact)) |
| 429 | (1+ shifted-epact) | 433 | (paschal-moon ;; Day after the full moon on or after March 21. |
| 430 | shifted-epact)) | 434 | (- (calendar-absolute-from-gregorian (list 4 19 displayed-year)) |
| 431 | (paschal-moon ;; Day after the full moon on or after March 21. | 435 | adjusted-epact)) |
| 432 | (- (calendar-absolute-from-gregorian (list 4 19 displayed-year)) | 436 | (abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7))) |
| 433 | adjusted-epact)) | 437 | (mandatory |
| 434 | (abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7))) | ||
| 435 | (mandatory | ||
| 436 | (list | 438 | (list |
| 437 | (list (calendar-gregorian-from-absolute abs-easter) | 439 | (list (calendar-gregorian-from-absolute (+ abs-easter n)) |
| 438 | "Easter Sunday") | 440 | string))) |
| 439 | (list (calendar-gregorian-from-absolute (- abs-easter 2)) | 441 | (output-list (filter-visible-calendar-holidays mandatory))) |
| 440 | "Good Friday") | 442 | output-list)) |
| 441 | (list (calendar-gregorian-from-absolute (- abs-easter 46)) | ||
| 442 | "Ash Wednesday"))) | ||
| 443 | (optional | ||
| 444 | (list | ||
| 445 | (list (calendar-gregorian-from-absolute (- abs-easter 63)) | ||
| 446 | "Septuagesima Sunday") | ||
| 447 | (list (calendar-gregorian-from-absolute (- abs-easter 56)) | ||
| 448 | "Sexagesima Sunday") | ||
| 449 | (list (calendar-gregorian-from-absolute (- abs-easter 49)) | ||
| 450 | "Shrove Sunday") | ||
| 451 | (list (calendar-gregorian-from-absolute (- abs-easter 48)) | ||
| 452 | "Shrove Monday") | ||
| 453 | (list (calendar-gregorian-from-absolute (- abs-easter 47)) | ||
| 454 | "Shrove Tuesday") | ||
| 455 | (list (calendar-gregorian-from-absolute (- abs-easter 14)) | ||
| 456 | "Passion Sunday") | ||
| 457 | (list (calendar-gregorian-from-absolute (- abs-easter 7)) | ||
| 458 | "Palm Sunday") | ||
| 459 | (list (calendar-gregorian-from-absolute (- abs-easter 3)) | ||
| 460 | "Maundy Thursday") | ||
| 461 | (list (calendar-gregorian-from-absolute (+ abs-easter 35)) | ||
| 462 | "Rogation Sunday") | ||
| 463 | (list (calendar-gregorian-from-absolute (+ abs-easter 39)) | ||
| 464 | "Ascension Day") | ||
| 465 | (list (calendar-gregorian-from-absolute (+ abs-easter 49)) | ||
| 466 | "Pentecost (Whitsunday)") | ||
| 467 | (list (calendar-gregorian-from-absolute (+ abs-easter 50)) | ||
| 468 | "Whitmonday") | ||
| 469 | (list (calendar-gregorian-from-absolute (+ abs-easter 56)) | ||
| 470 | "Trinity Sunday") | ||
| 471 | (list (calendar-gregorian-from-absolute (+ abs-easter 60)) | ||
| 472 | "Corpus Christi"))) | ||
| 473 | (output-list | ||
| 474 | (filter-visible-calendar-holidays mandatory))) | ||
| 475 | (if all-christian-calendar-holidays | ||
| 476 | (setq output-list | ||
| 477 | (append | ||
| 478 | (filter-visible-calendar-holidays optional) | ||
| 479 | output-list))) | ||
| 480 | output-list))) | ||
| 481 | 443 | ||
| 482 | (defun holiday-greek-orthodox-easter () | 444 | (defun holiday-greek-orthodox-easter () |
| 483 | "Date of Easter according to the rule of the Council of Nicaea." | 445 | "Date of Easter according to the rule of the Council of Nicaea." |
diff --git a/lisp/ido.el b/lisp/ido.el index b82338ef85d..f9066544e1f 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -666,6 +666,14 @@ See also `ido-dir-file-cache' and `ido-save-directory-list-file'." | |||
| 666 | :type 'integer | 666 | :type 'integer |
| 667 | :group 'ido) | 667 | :group 'ido) |
| 668 | 668 | ||
| 669 | (defcustom ido-max-directory-size 30000 | ||
| 670 | "*Maximum size (in bytes) for directories to use ido completion. | ||
| 671 | If you enter a directory with a size larger than this size, ido will | ||
| 672 | not provide the normal completion. To show the completions, use C-a." | ||
| 673 | :type '(choice (const :tag "No limit" nil) | ||
| 674 | (integer :tag "Size in bytes" 30000)) | ||
| 675 | :group 'ido) | ||
| 676 | |||
| 669 | (defcustom ido-rotate-file-list-default nil | 677 | (defcustom ido-rotate-file-list-default nil |
| 670 | "*Non-nil means that `ido' will always rotate file list to get default in front." | 678 | "*Non-nil means that `ido' will always rotate file list to get default in front." |
| 671 | :type 'boolean | 679 | :type 'boolean |
| @@ -699,9 +707,9 @@ Obsolete. Set 3rd element of `ido-decorations' instead." | |||
| 699 | :type '(choice string (const nil)) | 707 | :type '(choice string (const nil)) |
| 700 | :group 'ido) | 708 | :group 'ido) |
| 701 | 709 | ||
| 702 | (defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No match]" " [Matched]" " [Not readable]") | 710 | (defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No match]" " [Matched]" " [Not readable]" " [Too big]") |
| 703 | "*List of strings used by ido to display the alternatives in the minibuffer. | 711 | "*List of strings used by ido to display the alternatives in the minibuffer. |
| 704 | There are 9 elements in this list: | 712 | There are 10 elements in this list: |
| 705 | 1st and 2nd elements are used as brackets around the prospect list, | 713 | 1st and 2nd elements are used as brackets around the prospect list, |
| 706 | 3rd element is the separator between prospects (ignored if ido-separator is set), | 714 | 3rd element is the separator between prospects (ignored if ido-separator is set), |
| 707 | 4th element is the string inserted at the end of a truncated list of prospects, | 715 | 4th element is the string inserted at the end of a truncated list of prospects, |
| @@ -709,7 +717,8 @@ There are 9 elements in this list: | |||
| 709 | can be completed using TAB, | 717 | can be completed using TAB, |
| 710 | 7th element is the string displayed when there are a no matches, and | 718 | 7th element is the string displayed when there are a no matches, and |
| 711 | 8th element is displayed if there is a single match (and faces are not used). | 719 | 8th element is displayed if there is a single match (and faces are not used). |
| 712 | 9th element is displayed when the current directory is non-readable." | 720 | 9th element is displayed when the current directory is non-readable. |
| 721 | 10th element is displayed when directory exceeds `ido-max-directory-size'." | ||
| 713 | :type '(repeat string) | 722 | :type '(repeat string) |
| 714 | :group 'ido) | 723 | :group 'ido) |
| 715 | 724 | ||
| @@ -933,7 +942,7 @@ it doesn't interfere with other minibuffer usage.") | |||
| 933 | ;;; Variables with dynamic bindings. | 942 | ;;; Variables with dynamic bindings. |
| 934 | ;;; Declared here to keep the byte compiler quiet. | 943 | ;;; Declared here to keep the byte compiler quiet. |
| 935 | 944 | ||
| 936 | ;; Stores the current ido item type ('file, 'dir or 'buffer). | 945 | ;; Stores the current ido item type ('file, 'dir, 'buffer, or 'list). |
| 937 | (defvar ido-cur-item) | 946 | (defvar ido-cur-item) |
| 938 | 947 | ||
| 939 | ;; Stores the current list of items that will be searched through. | 948 | ;; Stores the current list of items that will be searched through. |
| @@ -942,6 +951,9 @@ it doesn't interfere with other minibuffer usage.") | |||
| 942 | ;; at the end of the list. Created by `ido-make-item-list'. | 951 | ;; at the end of the list. Created by `ido-make-item-list'. |
| 943 | (defvar ido-cur-list) | 952 | (defvar ido-cur-list) |
| 944 | 953 | ||
| 954 | ;; Stores the choice list for ido-completing-read | ||
| 955 | (defvar ido-choice-list) | ||
| 956 | |||
| 945 | ;; Stores the list of items which are ignored when building | 957 | ;; Stores the list of items which are ignored when building |
| 946 | ;; `ido-cur-list'. It is in no specific order. | 958 | ;; `ido-cur-list'. It is in no specific order. |
| 947 | (defvar ido-ignored-list) | 959 | (defvar ido-ignored-list) |
| @@ -949,6 +961,9 @@ it doesn't interfere with other minibuffer usage.") | |||
| 949 | ;; Remember if current directory is non-readable (so we cannot do completion). | 961 | ;; Remember if current directory is non-readable (so we cannot do completion). |
| 950 | (defvar ido-directory-nonreadable) | 962 | (defvar ido-directory-nonreadable) |
| 951 | 963 | ||
| 964 | ;; Remember if current directory is 'huge' (so we don't want to do completion). | ||
| 965 | (defvar ido-directory-too-big) | ||
| 966 | |||
| 952 | ;; Keep current item list if non-nil. | 967 | ;; Keep current item list if non-nil. |
| 953 | (defvar ido-keep-item-list) | 968 | (defvar ido-keep-item-list) |
| 954 | 969 | ||
| @@ -992,6 +1007,8 @@ it doesn't interfere with other minibuffer usage.") | |||
| 992 | ;; Stores temporary state of literal find file. | 1007 | ;; Stores temporary state of literal find file. |
| 993 | (defvar ido-find-literal) | 1008 | (defvar ido-find-literal) |
| 994 | 1009 | ||
| 1010 | ;; Set to 'ignore to inhibit switching between find-file/switch-buffer. | ||
| 1011 | (defvar ido-context-switch-command) | ||
| 995 | 1012 | ||
| 996 | ;;; FUNCTIONS | 1013 | ;;; FUNCTIONS |
| 997 | 1014 | ||
| @@ -1077,6 +1094,8 @@ it doesn't interfere with other minibuffer usage.") | |||
| 1077 | (defun ido-may-cache-directory (&optional dir) | 1094 | (defun ido-may-cache-directory (&optional dir) |
| 1078 | (setq dir (or dir ido-current-directory)) | 1095 | (setq dir (or dir ido-current-directory)) |
| 1079 | (cond | 1096 | (cond |
| 1097 | ((ido-directory-too-big-p dir) | ||
| 1098 | nil) | ||
| 1080 | ((and (ido-is-root-directory dir) | 1099 | ((and (ido-is-root-directory dir) |
| 1081 | (or ido-enable-tramp-completion | 1100 | (or ido-enable-tramp-completion |
| 1082 | (memq system-type '(windows-nt ms-dos)))) | 1101 | (memq system-type '(windows-nt ms-dos)))) |
| @@ -1346,8 +1365,8 @@ This function also adds a hook to the minibuffer." | |||
| 1346 | (define-key map "?" 'ido-completion-help) | 1365 | (define-key map "?" 'ido-completion-help) |
| 1347 | 1366 | ||
| 1348 | (when (memq ido-cur-item '(file dir)) | 1367 | (when (memq ido-cur-item '(file dir)) |
| 1349 | (define-key map "\C-b" 'ido-enter-switch-buffer) | 1368 | (define-key map "\C-b" (or ido-context-switch-command 'ido-enter-switch-buffer)) |
| 1350 | (define-key map "\C-d" 'ido-enter-dired) | 1369 | (define-key map "\C-d" (or (and ido-context-switch-command 'ignore) 'ido-enter-dired)) |
| 1351 | (define-key map "\C-f" 'ido-fallback-command) | 1370 | (define-key map "\C-f" 'ido-fallback-command) |
| 1352 | (define-key map [down] 'ido-next-match-dir) | 1371 | (define-key map [down] 'ido-next-match-dir) |
| 1353 | (define-key map [up] 'ido-prev-match-dir) | 1372 | (define-key map [up] 'ido-prev-match-dir) |
| @@ -1378,8 +1397,8 @@ This function also adds a hook to the minibuffer." | |||
| 1378 | ) | 1397 | ) |
| 1379 | 1398 | ||
| 1380 | (when (eq ido-cur-item 'buffer) | 1399 | (when (eq ido-cur-item 'buffer) |
| 1400 | (define-key map "\C-f" (or ido-context-switch-command 'ido-enter-find-file)) | ||
| 1381 | (define-key map "\C-b" 'ido-fallback-command) | 1401 | (define-key map "\C-b" 'ido-fallback-command) |
| 1382 | (define-key map "\C-f" 'ido-enter-find-file) | ||
| 1383 | (define-key map "\C-k" 'ido-kill-buffer-at-head) | 1402 | (define-key map "\C-k" 'ido-kill-buffer-at-head) |
| 1384 | ) | 1403 | ) |
| 1385 | 1404 | ||
| @@ -1420,6 +1439,16 @@ This function also adds a hook to the minibuffer." | |||
| 1420 | (file-directory-p dir) | 1439 | (file-directory-p dir) |
| 1421 | (not (file-readable-p dir))))) | 1440 | (not (file-readable-p dir))))) |
| 1422 | 1441 | ||
| 1442 | (defun ido-directory-too-big-p (dir) | ||
| 1443 | ;; Return t if dir is a directory, but too big to show | ||
| 1444 | ;; Do not check for non-readable directories via tramp, as this causes a premature | ||
| 1445 | ;; connect on incomplete tramp paths (after entring just method:). | ||
| 1446 | (let ((ido-enable-tramp-completion nil)) | ||
| 1447 | (and (numberp ido-max-directory-size) | ||
| 1448 | (ido-final-slash dir) | ||
| 1449 | (file-directory-p dir) | ||
| 1450 | (> (nth 7 (file-attributes dir)) ido-max-directory-size)))) | ||
| 1451 | |||
| 1423 | (defun ido-set-current-directory (dir &optional subdir no-merge) | 1452 | (defun ido-set-current-directory (dir &optional subdir no-merge) |
| 1424 | ;; Set ido's current directory to DIR or DIR/SUBDIR | 1453 | ;; Set ido's current directory to DIR or DIR/SUBDIR |
| 1425 | (setq dir (ido-final-slash dir t)) | 1454 | (setq dir (ido-final-slash dir t)) |
| @@ -1434,6 +1463,8 @@ This function also adds a hook to the minibuffer." | |||
| 1434 | (if (get-buffer ido-completion-buffer) | 1463 | (if (get-buffer ido-completion-buffer) |
| 1435 | (kill-buffer ido-completion-buffer)) | 1464 | (kill-buffer ido-completion-buffer)) |
| 1436 | (setq ido-directory-nonreadable (ido-nonreadable-directory-p dir)) | 1465 | (setq ido-directory-nonreadable (ido-nonreadable-directory-p dir)) |
| 1466 | (setq ido-directory-too-big (and (not ido-directory-nonreadable) | ||
| 1467 | (ido-directory-too-big-p dir))) | ||
| 1437 | t)) | 1468 | t)) |
| 1438 | 1469 | ||
| 1439 | (defun ido-set-current-home (&optional dir) | 1470 | (defun ido-set-current-home (&optional dir) |
| @@ -1618,13 +1649,20 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1618 | ido-rescan nil)) | 1649 | ido-rescan nil)) |
| 1619 | ((eq ido-cur-item 'file) | 1650 | ((eq ido-cur-item 'file) |
| 1620 | (setq ido-ignored-list nil | 1651 | (setq ido-ignored-list nil |
| 1621 | ido-cur-list (ido-make-file-list ido-default-item))) | 1652 | ido-cur-list (and (not ido-directory-nonreadable) |
| 1653 | (not ido-directory-too-big) | ||
| 1654 | (ido-make-file-list ido-default-item)))) | ||
| 1622 | ((eq ido-cur-item 'dir) | 1655 | ((eq ido-cur-item 'dir) |
| 1623 | (setq ido-ignored-list nil | 1656 | (setq ido-ignored-list nil |
| 1624 | ido-cur-list (ido-make-dir-list ido-default-item))) | 1657 | ido-cur-list (and (not ido-directory-nonreadable) |
| 1658 | (not ido-directory-too-big) | ||
| 1659 | (ido-make-dir-list ido-default-item)))) | ||
| 1625 | ((eq ido-cur-item 'buffer) | 1660 | ((eq ido-cur-item 'buffer) |
| 1626 | (setq ido-ignored-list nil | 1661 | (setq ido-ignored-list nil |
| 1627 | ido-cur-list (ido-make-buffer-list ido-default-item))) | 1662 | ido-cur-list (ido-make-buffer-list ido-default-item))) |
| 1663 | ((eq ido-cur-item 'list) | ||
| 1664 | (setq ido-ignored-list nil | ||
| 1665 | ido-cur-list (ido-make-choice-list ido-default-item))) | ||
| 1628 | (t nil)) | 1666 | (t nil)) |
| 1629 | (setq ido-rotate-temp nil) | 1667 | (setq ido-rotate-temp nil) |
| 1630 | 1668 | ||
| @@ -1709,7 +1747,7 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1709 | ((eq ido-exit 'keep) | 1747 | ((eq ido-exit 'keep) |
| 1710 | (setq ido-keep-item-list t)) | 1748 | (setq ido-keep-item-list t)) |
| 1711 | 1749 | ||
| 1712 | ((memq ido-exit '(dired fallback findfile findbuffer)) | 1750 | ((memq ido-exit '(dired fallback find-file switch-to-buffer insert-buffer insert-file)) |
| 1713 | (setq done t)) | 1751 | (setq done t)) |
| 1714 | 1752 | ||
| 1715 | ((eq ido-exit 'updir) | 1753 | ((eq ido-exit 'updir) |
| @@ -1789,19 +1827,26 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1789 | (exit-minibuffer)) | 1827 | (exit-minibuffer)) |
| 1790 | 1828 | ||
| 1791 | ;;; MAIN FUNCTIONS | 1829 | ;;; MAIN FUNCTIONS |
| 1792 | (defun ido-buffer-internal (method &optional fallback prompt default initial) | 1830 | (defun ido-buffer-internal (method &optional fallback prompt default initial switch-cmd) |
| 1793 | ;; Internal function for ido-switch-buffer and friends | 1831 | ;; Internal function for ido-switch-buffer and friends |
| 1794 | (if (not ido-mode) | 1832 | (if (not ido-mode) |
| 1795 | (call-interactively (or fallback 'switch-to-buffer)) | 1833 | (call-interactively (or fallback 'switch-to-buffer)) |
| 1796 | (let ((buf (ido-read-buffer (or prompt "Buffer: ") default nil initial))) | 1834 | (let* ((ido-context-switch-command switch-cmd) |
| 1835 | (ido-current-directory nil) | ||
| 1836 | (ido-directory-nonreadable nil) | ||
| 1837 | (ido-directory-too-big nil) | ||
| 1838 | (buf (ido-read-internal 'buffer (or prompt "Buffer: ") 'ido-buffer-history default nil initial))) | ||
| 1797 | 1839 | ||
| 1798 | ;; Choose the buffer name: either the text typed in, or the head | 1840 | ;; Choose the buffer name: either the text typed in, or the head |
| 1799 | ;; of the list of matches | 1841 | ;; of the list of matches |
| 1800 | 1842 | ||
| 1801 | (cond | 1843 | (cond |
| 1802 | ((eq ido-exit 'findfile) | 1844 | ((eq ido-exit 'find-file) |
| 1803 | (ido-file-internal ido-default-file-method nil nil nil nil ido-text)) | 1845 | (ido-file-internal ido-default-file-method nil nil nil nil ido-text)) |
| 1804 | 1846 | ||
| 1847 | ((eq ido-exit 'insert-file) | ||
| 1848 | (ido-file-internal 'insert 'insert-file nil "Insert file: " nil ido-text 'ido-enter-insert-buffer)) | ||
| 1849 | |||
| 1805 | ((eq ido-exit 'fallback) | 1850 | ((eq ido-exit 'fallback) |
| 1806 | (let ((read-buffer-function nil)) | 1851 | (let ((read-buffer-function nil)) |
| 1807 | (call-interactively (or fallback 'switch-to-buffer)))) | 1852 | (call-interactively (or fallback 'switch-to-buffer)))) |
| @@ -1833,18 +1878,6 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1833 | (set-buffer-major-mode buf)) | 1878 | (set-buffer-major-mode buf)) |
| 1834 | (ido-visit-buffer buf method t)))))) | 1879 | (ido-visit-buffer buf method t)))))) |
| 1835 | 1880 | ||
| 1836 | ;;;###autoload | ||
| 1837 | (defun ido-read-buffer (prompt &optional default require-match initial) | ||
| 1838 | "Replacement for the built-in `read-buffer'. | ||
| 1839 | Return the name of a buffer selected. | ||
| 1840 | PROMPT is the prompt to give to the user. DEFAULT if given is the default | ||
| 1841 | buffer to be selected, which will go to the front of the list. | ||
| 1842 | If REQUIRE-MATCH is non-nil, an existing-buffer must be selected. | ||
| 1843 | If INITIAL is non-nil, it specifies the initial input string." | ||
| 1844 | (let ((ido-current-directory nil) | ||
| 1845 | (ido-directory-nonreadable nil)) | ||
| 1846 | (ido-read-internal 'buffer prompt 'ido-buffer-history default require-match initial))) | ||
| 1847 | |||
| 1848 | (defun ido-record-work-directory (&optional dir) | 1881 | (defun ido-record-work-directory (&optional dir) |
| 1849 | (when (and (numberp ido-max-work-directory-list) (> ido-max-work-directory-list 0)) | 1882 | (when (and (numberp ido-max-work-directory-list) (> ido-max-work-directory-list 0)) |
| 1850 | (if (and (setq dir (or dir ido-current-directory)) (> (length dir) 0)) | 1883 | (if (and (setq dir (or dir ido-current-directory)) (> (length dir) 0)) |
| @@ -1886,12 +1919,15 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1886 | ;; Add final slash to result in case it was missing from DEFAULT-DIRECTORY. | 1919 | ;; Add final slash to result in case it was missing from DEFAULT-DIRECTORY. |
| 1887 | (ido-final-slash (expand-file-name (or dir default-directory)) t)) | 1920 | (ido-final-slash (expand-file-name (or dir default-directory)) t)) |
| 1888 | 1921 | ||
| 1889 | (defun ido-file-internal (method &optional fallback default prompt item initial) | 1922 | (defun ido-file-internal (method &optional fallback default prompt item initial switch-cmd) |
| 1890 | ;; Internal function for ido-find-file and friends | 1923 | ;; Internal function for ido-find-file and friends |
| 1891 | (unless item | 1924 | (unless item |
| 1892 | (setq item 'file)) | 1925 | (setq item 'file)) |
| 1893 | (let* ((ido-current-directory (ido-expand-directory default)) | 1926 | (let* ((ido-current-directory (ido-expand-directory default)) |
| 1894 | (ido-directory-nonreadable (ido-nonreadable-directory-p ido-current-directory)) | 1927 | (ido-directory-nonreadable (ido-nonreadable-directory-p ido-current-directory)) |
| 1928 | (ido-directory-too-big (and (not ido-directory-nonreadable) | ||
| 1929 | (ido-directory-too-big-p ido-current-directory))) | ||
| 1930 | (ido-context-switch-command switch-cmd) | ||
| 1895 | filename) | 1931 | filename) |
| 1896 | 1932 | ||
| 1897 | (cond | 1933 | (cond |
| @@ -1943,9 +1979,12 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 1943 | (read-file-name-function nil)) | 1979 | (read-file-name-function nil)) |
| 1944 | (call-interactively (or fallback 'find-file)))) | 1980 | (call-interactively (or fallback 'find-file)))) |
| 1945 | 1981 | ||
| 1946 | ((eq ido-exit 'findbuffer) | 1982 | ((eq ido-exit 'switch-to-buffer) |
| 1947 | (ido-buffer-internal ido-default-buffer-method nil nil nil ido-text)) | 1983 | (ido-buffer-internal ido-default-buffer-method nil nil nil ido-text)) |
| 1948 | 1984 | ||
| 1985 | ((eq ido-exit 'insert-buffer) | ||
| 1986 | (ido-buffer-internal 'insert 'insert-buffer "Insert buffer: " nil ido-text 'ido-enter-insert-file)) | ||
| 1987 | |||
| 1949 | ((eq ido-exit 'dired) | 1988 | ((eq ido-exit 'dired) |
| 1950 | (dired (concat ido-current-directory (or ido-text "")))) | 1989 | (dired (concat ido-current-directory (or ido-text "")))) |
| 1951 | 1990 | ||
| @@ -2062,6 +2101,12 @@ If INITIAL is non-nil, it specifies the initial input string." | |||
| 2062 | (setq ido-exit 'refresh) | 2101 | (setq ido-exit 'refresh) |
| 2063 | (exit-minibuffer)))) | 2102 | (exit-minibuffer)))) |
| 2064 | 2103 | ||
| 2104 | (ido-directory-too-big | ||
| 2105 | (setq ido-directory-too-big nil) | ||
| 2106 | (setq ido-text-init ido-text) | ||
| 2107 | (setq ido-exit 'refresh) | ||
| 2108 | (exit-minibuffer)) | ||
| 2109 | |||
| 2065 | ((not ido-matches) | 2110 | ((not ido-matches) |
| 2066 | (when ido-completion-buffer | 2111 | (when ido-completion-buffer |
| 2067 | (call-interactively (setq this-command ido-cannot-complete-command)))) | 2112 | (call-interactively (setq this-command ido-cannot-complete-command)))) |
| @@ -2165,7 +2210,9 @@ If no merge has yet taken place, toggle automatic merging option." | |||
| 2165 | (defun ido-toggle-ignore () | 2210 | (defun ido-toggle-ignore () |
| 2166 | "Toggle ignoring files specified with `ido-ignore-files'." | 2211 | "Toggle ignoring files specified with `ido-ignore-files'." |
| 2167 | (interactive) | 2212 | (interactive) |
| 2168 | (setq ido-process-ignore-lists (not ido-process-ignore-lists)) | 2213 | (if ido-directory-too-big |
| 2214 | (setq ido-directory-too-big nil) | ||
| 2215 | (setq ido-process-ignore-lists (not ido-process-ignore-lists))) | ||
| 2169 | (setq ido-text-init ido-text) | 2216 | (setq ido-text-init ido-text) |
| 2170 | (setq ido-exit 'refresh) | 2217 | (setq ido-exit 'refresh) |
| 2171 | (exit-minibuffer)) | 2218 | (exit-minibuffer)) |
| @@ -2227,13 +2274,13 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one. | |||
| 2227 | (defun ido-enter-find-file () | 2274 | (defun ido-enter-find-file () |
| 2228 | "Drop into find-file from buffer switching." | 2275 | "Drop into find-file from buffer switching." |
| 2229 | (interactive) | 2276 | (interactive) |
| 2230 | (setq ido-exit 'findfile) | 2277 | (setq ido-exit 'find-file) |
| 2231 | (exit-minibuffer)) | 2278 | (exit-minibuffer)) |
| 2232 | 2279 | ||
| 2233 | (defun ido-enter-switch-buffer () | 2280 | (defun ido-enter-switch-buffer () |
| 2234 | "Drop into ido-switch-buffer from file switching." | 2281 | "Drop into ido-switch-buffer from file switching." |
| 2235 | (interactive) | 2282 | (interactive) |
| 2236 | (setq ido-exit 'findbuffer) | 2283 | (setq ido-exit 'switch-to-buffer) |
| 2237 | (exit-minibuffer)) | 2284 | (exit-minibuffer)) |
| 2238 | 2285 | ||
| 2239 | (defun ido-enter-dired () | 2286 | (defun ido-enter-dired () |
| @@ -2242,6 +2289,18 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one. | |||
| 2242 | (setq ido-exit 'dired) | 2289 | (setq ido-exit 'dired) |
| 2243 | (exit-minibuffer)) | 2290 | (exit-minibuffer)) |
| 2244 | 2291 | ||
| 2292 | (defun ido-enter-insert-buffer () | ||
| 2293 | "Drop into insert buffer from insert file." | ||
| 2294 | (interactive) | ||
| 2295 | (setq ido-exit 'insert-buffer) | ||
| 2296 | (exit-minibuffer)) | ||
| 2297 | |||
| 2298 | (defun ido-enter-insert-file () | ||
| 2299 | "Drop into insert file from insert buffer." | ||
| 2300 | (interactive) | ||
| 2301 | (setq ido-exit 'insert-file) | ||
| 2302 | (exit-minibuffer)) | ||
| 2303 | |||
| 2245 | 2304 | ||
| 2246 | (defun ido-up-directory (&optional clear) | 2305 | (defun ido-up-directory (&optional clear) |
| 2247 | "Go up one directory level." | 2306 | "Go up one directory level." |
| @@ -2295,6 +2354,7 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one. | |||
| 2295 | (not (equal dir ido-current-directory)) | 2354 | (not (equal dir ido-current-directory)) |
| 2296 | (file-directory-p dir) | 2355 | (file-directory-p dir) |
| 2297 | (or (not must-match) | 2356 | (or (not must-match) |
| 2357 | ;; TODO. check for nonreadable and too-big. | ||
| 2298 | (ido-set-matches1 | 2358 | (ido-set-matches1 |
| 2299 | (if (eq ido-cur-item 'file) | 2359 | (if (eq ido-cur-item 'file) |
| 2300 | (ido-make-file-list1 dir) | 2360 | (ido-make-file-list1 dir) |
| @@ -2552,7 +2612,8 @@ for first matching file." | |||
| 2552 | 2612 | ||
| 2553 | (defun ido-all-completions () | 2613 | (defun ido-all-completions () |
| 2554 | ;; Return unsorted list of all competions. | 2614 | ;; Return unsorted list of all competions. |
| 2555 | (let ((ido-process-ignore-lists nil)) | 2615 | (let ((ido-process-ignore-lists nil) |
| 2616 | (ido-directory-too-big nil)) | ||
| 2556 | (cond | 2617 | (cond |
| 2557 | ((eq ido-cur-item 'file) | 2618 | ((eq ido-cur-item 'file) |
| 2558 | (ido-make-file-list1 ido-current-directory)) | 2619 | (ido-make-file-list1 ido-current-directory)) |
| @@ -2560,6 +2621,8 @@ for first matching file." | |||
| 2560 | (ido-make-dir-list1 ido-current-directory)) | 2621 | (ido-make-dir-list1 ido-current-directory)) |
| 2561 | ((eq ido-cur-item 'buffer) | 2622 | ((eq ido-cur-item 'buffer) |
| 2562 | (ido-make-buffer-list1)) | 2623 | (ido-make-buffer-list1)) |
| 2624 | ((eq ido-cur-item 'list) | ||
| 2625 | ido-choice-list) | ||
| 2563 | (t nil)))) | 2626 | (t nil)))) |
| 2564 | 2627 | ||
| 2565 | 2628 | ||
| @@ -2669,6 +2732,7 @@ for first matching file." | |||
| 2669 | (or ido-merge-ftp-work-directories | 2732 | (or ido-merge-ftp-work-directories |
| 2670 | (not (ido-is-ftp-directory dir))) | 2733 | (not (ido-is-ftp-directory dir))) |
| 2671 | (file-directory-p dir) | 2734 | (file-directory-p dir) |
| 2735 | ;; TODO. check for nonreadable and too-big. | ||
| 2672 | (setq fl (if (eq ido-cur-item 'file) | 2736 | (setq fl (if (eq ido-cur-item 'file) |
| 2673 | (ido-make-file-list1 dir t) | 2737 | (ido-make-file-list1 dir t) |
| 2674 | (ido-make-dir-list1 dir t)))) | 2738 | (ido-make-dir-list1 dir t)))) |
| @@ -2722,6 +2786,20 @@ for first matching file." | |||
| 2722 | (run-hooks 'ido-make-buffer-list-hook) | 2786 | (run-hooks 'ido-make-buffer-list-hook) |
| 2723 | ido-temp-list)) | 2787 | ido-temp-list)) |
| 2724 | 2788 | ||
| 2789 | (defun ido-make-choice-list (default) | ||
| 2790 | ;; Return the current list of choices. | ||
| 2791 | ;; If DEFAULT is non-nil, and corresponds to an element of choices, | ||
| 2792 | ;; it is put to the start of the list. | ||
| 2793 | (let ((ido-temp-list ido-choice-list)) | ||
| 2794 | (if default | ||
| 2795 | (progn | ||
| 2796 | (setq ido-temp-list | ||
| 2797 | (delete default ido-temp-list)) | ||
| 2798 | (setq ido-temp-list | ||
| 2799 | (cons default ido-temp-list)))) | ||
| 2800 | ; (run-hooks 'ido-make-choice-list-hook) | ||
| 2801 | ido-temp-list)) | ||
| 2802 | |||
| 2725 | (defun ido-to-end (items) | 2803 | (defun ido-to-end (items) |
| 2726 | ;; Move the elements from ITEMS to the end of `ido-temp-list' | 2804 | ;; Move the elements from ITEMS to the end of `ido-temp-list' |
| 2727 | (mapcar | 2805 | (mapcar |
| @@ -2735,6 +2813,8 @@ for first matching file." | |||
| 2735 | (defun ido-file-name-all-completions1 (dir) | 2813 | (defun ido-file-name-all-completions1 (dir) |
| 2736 | (cond | 2814 | (cond |
| 2737 | ((ido-nonreadable-directory-p dir) '()) | 2815 | ((ido-nonreadable-directory-p dir) '()) |
| 2816 | ;; do not check (ido-directory-too-big-p dir) here. | ||
| 2817 | ;; Caller must have done that if necessary. | ||
| 2738 | ((and ido-enable-tramp-completion | 2818 | ((and ido-enable-tramp-completion |
| 2739 | (string-match "\\`/\\([^/:]+:\\([^/:@]+@\\)?\\)\\'" dir)) | 2819 | (string-match "\\`/\\([^/:]+:\\([^/:@]+@\\)?\\)\\'" dir)) |
| 2740 | 2820 | ||
| @@ -3277,7 +3357,7 @@ For details of keybindings, do `\\[describe-function] ido'." | |||
| 3277 | The buffer name is selected interactively by typing a substring. | 3357 | The buffer name is selected interactively by typing a substring. |
| 3278 | For details of keybindings, do `\\[describe-function] ido'." | 3358 | For details of keybindings, do `\\[describe-function] ido'." |
| 3279 | (interactive) | 3359 | (interactive) |
| 3280 | (ido-buffer-internal 'display 'display-buffer)) | 3360 | (ido-buffer-internal 'display 'display-buffer nil nil nil 'ignore)) |
| 3281 | 3361 | ||
| 3282 | ;;;###autoload | 3362 | ;;;###autoload |
| 3283 | (defun ido-kill-buffer () | 3363 | (defun ido-kill-buffer () |
| @@ -3285,7 +3365,7 @@ For details of keybindings, do `\\[describe-function] ido'." | |||
| 3285 | The buffer name is selected interactively by typing a substring. | 3365 | The buffer name is selected interactively by typing a substring. |
| 3286 | For details of keybindings, do `\\[describe-function] ido'." | 3366 | For details of keybindings, do `\\[describe-function] ido'." |
| 3287 | (interactive) | 3367 | (interactive) |
| 3288 | (ido-buffer-internal 'kill 'kill-buffer "Kill buffer: " (buffer-name (current-buffer)))) | 3368 | (ido-buffer-internal 'kill 'kill-buffer "Kill buffer: " (buffer-name (current-buffer)) nil 'ignore)) |
| 3289 | 3369 | ||
| 3290 | ;;;###autoload | 3370 | ;;;###autoload |
| 3291 | (defun ido-insert-buffer () | 3371 | (defun ido-insert-buffer () |
| @@ -3293,7 +3373,7 @@ For details of keybindings, do `\\[describe-function] ido'." | |||
| 3293 | The buffer name is selected interactively by typing a substring. | 3373 | The buffer name is selected interactively by typing a substring. |
| 3294 | For details of keybindings, do `\\[describe-function] ido'." | 3374 | For details of keybindings, do `\\[describe-function] ido'." |
| 3295 | (interactive) | 3375 | (interactive) |
| 3296 | (ido-buffer-internal 'insert 'insert-buffer "Insert buffer: ")) | 3376 | (ido-buffer-internal 'insert 'insert-buffer "Insert buffer: " nil nil 'ido-enter-insert-file)) |
| 3297 | 3377 | ||
| 3298 | ;;;###autoload | 3378 | ;;;###autoload |
| 3299 | (defun ido-switch-buffer-other-frame () | 3379 | (defun ido-switch-buffer-other-frame () |
| @@ -3311,7 +3391,7 @@ For details of keybindings, do `\\[describe-function] ido'." | |||
| 3311 | (interactive "DDir: ") | 3391 | (interactive "DDir: ") |
| 3312 | (if (not (equal (substring dir -1) "/")) | 3392 | (if (not (equal (substring dir -1) "/")) |
| 3313 | (setq dir (concat dir "/"))) | 3393 | (setq dir (concat dir "/"))) |
| 3314 | (ido-file-internal ido-default-file-method nil dir)) | 3394 | (ido-file-internal ido-default-file-method nil dir nil nil nil 'ignore)) |
| 3315 | 3395 | ||
| 3316 | ;;;###autoload | 3396 | ;;;###autoload |
| 3317 | (defun ido-find-file () | 3397 | (defun ido-find-file () |
| @@ -3404,7 +3484,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3404 | The file name is selected interactively by typing a substring. | 3484 | The file name is selected interactively by typing a substring. |
| 3405 | For details of keybindings, do `\\[describe-function] ido-find-file'." | 3485 | For details of keybindings, do `\\[describe-function] ido-find-file'." |
| 3406 | (interactive) | 3486 | (interactive) |
| 3407 | (ido-file-internal 'display)) | 3487 | (ido-file-internal 'display nil nil nil nil nil 'ignore)) |
| 3408 | 3488 | ||
| 3409 | ;;;###autoload | 3489 | ;;;###autoload |
| 3410 | (defun ido-find-file-other-frame () | 3490 | (defun ido-find-file-other-frame () |
| @@ -3426,7 +3506,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3426 | (ido-report-no-match nil) | 3506 | (ido-report-no-match nil) |
| 3427 | (ido-confirm-unique-completion t) | 3507 | (ido-confirm-unique-completion t) |
| 3428 | (ido-auto-merge-work-directories-length -1)) | 3508 | (ido-auto-merge-work-directories-length -1)) |
| 3429 | (ido-file-internal 'write 'write-file nil "Write file: "))) | 3509 | (ido-file-internal 'write 'write-file nil "Write file: " nil nil 'ignore))) |
| 3430 | 3510 | ||
| 3431 | ;;;###autoload | 3511 | ;;;###autoload |
| 3432 | (defun ido-insert-file () | 3512 | (defun ido-insert-file () |
| @@ -3434,7 +3514,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3434 | The file name is selected interactively by typing a substring. | 3514 | The file name is selected interactively by typing a substring. |
| 3435 | For details of keybindings, do `\\[describe-function] ido-find-file'." | 3515 | For details of keybindings, do `\\[describe-function] ido-find-file'." |
| 3436 | (interactive) | 3516 | (interactive) |
| 3437 | (ido-file-internal 'insert 'insert-file nil "Insert file: ")) | 3517 | (ido-file-internal 'insert 'insert-file nil "Insert file: " nil nil 'ido-enter-insert-buffer)) |
| 3438 | 3518 | ||
| 3439 | ;;;###autoload | 3519 | ;;;###autoload |
| 3440 | (defun ido-dired () | 3520 | (defun ido-dired () |
| @@ -3515,7 +3595,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3515 | 3595 | ||
| 3516 | ;; Handle explicit directory changes | 3596 | ;; Handle explicit directory changes |
| 3517 | (cond | 3597 | (cond |
| 3518 | ((eq ido-cur-item 'buffer) | 3598 | ((memq ido-cur-item '(buffer list)) |
| 3519 | ) | 3599 | ) |
| 3520 | 3600 | ||
| 3521 | ((= (length contents) 0) | 3601 | ((= (length contents) 0) |
| @@ -3571,7 +3651,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3571 | (expand-file-name "/" ido-current-directory) | 3651 | (expand-file-name "/" ido-current-directory) |
| 3572 | "/")) | 3652 | "/")) |
| 3573 | (setq refresh t)) | 3653 | (setq refresh t)) |
| 3574 | ((and ido-directory-nonreadable | 3654 | ((and (or ido-directory-nonreadable ido-directory-too-big) |
| 3575 | (file-directory-p (concat ido-current-directory (file-name-directory contents)))) | 3655 | (file-directory-p (concat ido-current-directory (file-name-directory contents)))) |
| 3576 | (ido-set-current-directory | 3656 | (ido-set-current-directory |
| 3577 | (concat ido-current-directory (file-name-directory contents))) | 3657 | (concat ido-current-directory (file-name-directory contents))) |
| @@ -3633,6 +3713,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3633 | 3713 | ||
| 3634 | (when (and (not ido-matches) | 3714 | (when (and (not ido-matches) |
| 3635 | (not ido-directory-nonreadable) | 3715 | (not ido-directory-nonreadable) |
| 3716 | (not ido-directory-too-big) | ||
| 3636 | ;; ido-rescan ? | 3717 | ;; ido-rescan ? |
| 3637 | ido-process-ignore-lists | 3718 | ido-process-ignore-lists |
| 3638 | ido-ignored-list) | 3719 | ido-ignored-list) |
| @@ -3656,7 +3737,8 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3656 | (not (ido-is-root-directory)) | 3737 | (not (ido-is-root-directory)) |
| 3657 | (> (length contents) 1) | 3738 | (> (length contents) 1) |
| 3658 | (not (string-match "[$]" contents)) | 3739 | (not (string-match "[$]" contents)) |
| 3659 | (not ido-directory-nonreadable)) | 3740 | (not ido-directory-nonreadable) |
| 3741 | (not ido-directory-too-big)) | ||
| 3660 | (ido-trace "merge?") | 3742 | (ido-trace "merge?") |
| 3661 | (if ido-use-merged-list | 3743 | (if ido-use-merged-list |
| 3662 | (ido-undo-merge-work-directory contents nil) | 3744 | (ido-undo-merge-work-directory contents nil) |
| @@ -3721,6 +3803,8 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3721 | (cond | 3803 | (cond |
| 3722 | (ido-directory-nonreadable | 3804 | (ido-directory-nonreadable |
| 3723 | (or (nth 8 ido-decorations) " [Not readable]")) | 3805 | (or (nth 8 ido-decorations) " [Not readable]")) |
| 3806 | (ido-directory-too-big | ||
| 3807 | (or (nth 9 ido-decorations) " [Too big]")) | ||
| 3724 | (ido-report-no-match | 3808 | (ido-report-no-match |
| 3725 | (nth 6 ido-decorations)) ;; [No match] | 3809 | (nth 6 ido-decorations)) ;; [No match] |
| 3726 | (t ""))) | 3810 | (t ""))) |
| @@ -3827,41 +3911,75 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 3827 | (put 'dired-do-rename 'ido 'ignore) | 3911 | (put 'dired-do-rename 'ido 'ignore) |
| 3828 | 3912 | ||
| 3829 | ;;;###autoload | 3913 | ;;;###autoload |
| 3914 | (defun ido-read-buffer (prompt &optional default require-match) | ||
| 3915 | "Ido replacement for the built-in `read-buffer'. | ||
| 3916 | Return the name of a buffer selected. | ||
| 3917 | PROMPT is the prompt to give to the user. DEFAULT if given is the default | ||
| 3918 | buffer to be selected, which will go to the front of the list. | ||
| 3919 | If REQUIRE-MATCH is non-nil, an existing-buffer must be selected." | ||
| 3920 | (let* ((ido-current-directory nil) | ||
| 3921 | (ido-directory-nonreadable nil) | ||
| 3922 | (ido-directory-too-big nil) | ||
| 3923 | (ido-context-switch-command 'ignore) | ||
| 3924 | (buf (ido-read-internal 'buffer prompt 'ido-buffer-history default require-match))) | ||
| 3925 | (if (eq ido-exit 'fallback) | ||
| 3926 | (let ((read-buffer-function nil)) | ||
| 3927 | (read-buffer prompt default require-match)) | ||
| 3928 | buf))) | ||
| 3929 | |||
| 3930 | ;;;###autoload | ||
| 3830 | (defun ido-read-file-name (prompt &optional dir default-filename mustmatch initial predicate) | 3931 | (defun ido-read-file-name (prompt &optional dir default-filename mustmatch initial predicate) |
| 3831 | "Read file name, prompting with PROMPT and completing in directory DIR. | 3932 | "Ido replacement for the built-in `read-file-name'. |
| 3933 | Read file name, prompting with PROMPT and completing in directory DIR. | ||
| 3832 | See `read-file-name' for additional parameters." | 3934 | See `read-file-name' for additional parameters." |
| 3833 | (cond | 3935 | (let (filename) |
| 3834 | ((or (eq predicate 'file-directory-p) | 3936 | (cond |
| 3835 | (eq (get this-command 'ido) 'dir) | 3937 | ((or (eq predicate 'file-directory-p) |
| 3836 | (memq this-command ido-read-file-name-as-directory-commands)) | 3938 | (eq (get this-command 'ido) 'dir) |
| 3837 | (ido-read-directory-name prompt dir default-filename mustmatch initial)) | 3939 | (memq this-command ido-read-file-name-as-directory-commands)) |
| 3838 | ((and (not (eq (get this-command 'ido) 'ignore)) | 3940 | (setq filename |
| 3839 | (not (memq this-command ido-read-file-name-non-ido)) | 3941 | (ido-read-directory-name prompt dir default-filename mustmatch initial))) |
| 3840 | (or (null predicate) (eq predicate 'file-exists-p))) | 3942 | ((and (not (eq (get this-command 'ido) 'ignore)) |
| 3841 | (let* (filename | 3943 | (not (memq this-command ido-read-file-name-non-ido)) |
| 3842 | ido-saved-vc-hb | 3944 | (or (null predicate) (eq predicate 'file-exists-p))) |
| 3843 | (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends)) | 3945 | (let* (ido-saved-vc-hb |
| 3844 | (ido-current-directory (ido-expand-directory dir)) | 3946 | (ido-context-switch-command 'ignore) |
| 3845 | (ido-directory-nonreadable (not (file-readable-p ido-current-directory))) | 3947 | (vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends)) |
| 3846 | (ido-work-directory-index -1) | 3948 | (ido-current-directory (ido-expand-directory dir)) |
| 3847 | (ido-work-file-index -1) | 3949 | (ido-directory-nonreadable (not (file-readable-p ido-current-directory))) |
| 3848 | (ido-find-literal nil)) | 3950 | (ido-directory-too-big (and (not ido-directory-nonreadable) |
| 3849 | (setq filename | 3951 | (ido-directory-too-big-p ido-current-directory))) |
| 3850 | (ido-read-internal 'file prompt 'ido-file-history default-filename mustmatch initial)) | 3952 | (ido-work-directory-index -1) |
| 3851 | (if filename | 3953 | (ido-work-file-index -1) |
| 3852 | (concat ido-current-directory filename)))) | 3954 | (ido-find-literal nil)) |
| 3853 | (t | 3955 | (setq ido-exit nil) |
| 3854 | (let ((read-file-name-function nil)) | 3956 | (setq filename |
| 3855 | (read-file-name prompt dir default-filename mustmatch initial predicate))))) | 3957 | (ido-read-internal 'file prompt 'ido-file-history default-filename mustmatch initial)) |
| 3958 | (cond | ||
| 3959 | ((eq ido-exit 'fallback) | ||
| 3960 | (setq filename 'fallback)) | ||
| 3961 | (filename | ||
| 3962 | (setq filename | ||
| 3963 | (concat ido-current-directory filename)))))) | ||
| 3964 | (t | ||
| 3965 | (setq filename 'fallback))) | ||
| 3966 | (if (eq filename 'fallback) | ||
| 3967 | (let ((read-file-name-function nil)) | ||
| 3968 | (read-file-name prompt dir default-filename mustmatch initial predicate)) | ||
| 3969 | filename))) | ||
| 3856 | 3970 | ||
| 3857 | ;;;###autoload | 3971 | ;;;###autoload |
| 3858 | (defun ido-read-directory-name (prompt &optional dir default-dirname mustmatch initial) | 3972 | (defun ido-read-directory-name (prompt &optional dir default-dirname mustmatch initial) |
| 3859 | "Read directory name, prompting with PROMPT and completing in directory DIR. | 3973 | "Ido replacement for the built-in `read-directory-name'. |
| 3860 | See `read-file-name' for additional parameters." | 3974 | Read directory name, prompting with PROMPT and completing in directory DIR. |
| 3975 | See `read-directory-name' for additional parameters." | ||
| 3861 | (let* (filename | 3976 | (let* (filename |
| 3977 | (ido-context-switch-command 'ignore) | ||
| 3862 | ido-saved-vc-hb | 3978 | ido-saved-vc-hb |
| 3863 | (ido-current-directory (ido-expand-directory dir)) | 3979 | (ido-current-directory (ido-expand-directory dir)) |
| 3864 | (ido-directory-nonreadable (not (file-readable-p ido-current-directory))) | 3980 | (ido-directory-nonreadable (not (file-readable-p ido-current-directory))) |
| 3981 | (ido-directory-too-big (and (not ido-directory-nonreadable) | ||
| 3982 | (ido-directory-too-big-p ido-current-directory))) | ||
| 3865 | (ido-work-directory-index -1) | 3983 | (ido-work-directory-index -1) |
| 3866 | (ido-work-file-index -1)) | 3984 | (ido-work-file-index -1)) |
| 3867 | (setq filename | 3985 | (setq filename |
| @@ -3871,5 +3989,29 @@ See `read-file-name' for additional parameters." | |||
| 3871 | ido-current-directory | 3989 | ido-current-directory |
| 3872 | (concat ido-current-directory filename))))) | 3990 | (concat ido-current-directory filename))))) |
| 3873 | 3991 | ||
| 3992 | ;;;###autoload | ||
| 3993 | (defun ido-completing-read (prompt choices &optional predicate require-match initial-input hist def) | ||
| 3994 | "Ido replacement for the built-in `completing-read'. | ||
| 3995 | Read a string in the minibuffer with ido-style completion. | ||
| 3996 | PROMPT is a string to prompt with; normally it ends in a colon and a space. | ||
| 3997 | CHOICES is a list of strings which are the possible completions. | ||
| 3998 | PREDICATE is currently ignored; it is included to be compatible | ||
| 3999 | with `completing-read'. | ||
| 4000 | If REQUIRE-MATCH is non-nil, the user is not allowed to exit unless | ||
| 4001 | the input is (or completes to) an element of CHOICES or is null. | ||
| 4002 | If the input is null, `ido-completing-read' returns DEF, or an empty | ||
| 4003 | string if DEF is nil, regardless of the value of REQUIRE-MATCH. | ||
| 4004 | If INITIAL-INPUT is non-nil, insert it in the minibuffer initially, | ||
| 4005 | with point positioned at the end. | ||
| 4006 | HIST, if non-nil, specifies a history list. | ||
| 4007 | DEF, if non-nil, is the default value." | ||
| 4008 | (let ((ido-current-directory nil) | ||
| 4009 | (ido-directory-nonreadable nil) | ||
| 4010 | (ido-directory-too-big nil) | ||
| 4011 | (ido-context-switch-command 'ignore) | ||
| 4012 | (ido-choice-list choices)) | ||
| 4013 | (ido-read-internal 'list prompt hist def require-match initial-input))) | ||
| 4014 | |||
| 4015 | |||
| 3874 | ;;; arch-tag: b63a3500-1735-41bd-8a01-05373f0864da | 4016 | ;;; arch-tag: b63a3500-1735-41bd-8a01-05373f0864da |
| 3875 | ;;; ido.el ends here | 4017 | ;;; ido.el ends here |
diff --git a/lisp/image.el b/lisp/image.el index ad8fcafe8de..13fdf2f6e4c 100644 --- a/lisp/image.el +++ b/lisp/image.el | |||
| @@ -228,6 +228,15 @@ height of the image; integer values are taken as pixel values." | |||
| 228 | 228 | ||
| 229 | 229 | ||
| 230 | (defun insert-sliced-image (image &optional string area rows cols) | 230 | (defun insert-sliced-image (image &optional string area rows cols) |
| 231 | "Insert IMAGE into current buffer at point. | ||
| 232 | IMAGE is displayed by inserting STRING into the current buffer | ||
| 233 | with a `display' property whose value is the image. STRING is | ||
| 234 | defaulted if you omit it. | ||
| 235 | AREA is where to display the image. AREA nil or omitted means | ||
| 236 | display it in the text area, a value of `left-margin' means | ||
| 237 | display it in the left marginal area, a value of `right-margin' | ||
| 238 | means display it in the right marginal area. | ||
| 239 | The image is automatically split into ROW x COLS slices." | ||
| 231 | (unless string (setq string " ")) | 240 | (unless string (setq string " ")) |
| 232 | (unless (eq (car-safe image) 'image) | 241 | (unless (eq (car-safe image) 'image) |
| 233 | (error "Not an image: %s" image)) | 242 | (error "Not an image: %s" image)) |
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el index 521729b764f..8944d4c20c0 100644 --- a/lisp/ls-lisp.el +++ b/lisp/ls-lisp.el | |||
| @@ -534,7 +534,7 @@ SWITCHES, TIME-INDEX and NOW give the full switch list and time data." | |||
| 534 | " " | 534 | " " |
| 535 | (ls-lisp-format-time file-attr time-index now) | 535 | (ls-lisp-format-time file-attr time-index now) |
| 536 | " " | 536 | " " |
| 537 | file-name | 537 | (propertize file-name 'dired-filename t) |
| 538 | (if (stringp file-type) ; is a symbolic link | 538 | (if (stringp file-type) ; is a symbolic link |
| 539 | (concat " -> " file-type)) | 539 | (concat " -> " file-type)) |
| 540 | "\n" | 540 | "\n" |
diff --git a/lisp/printing.el b/lisp/printing.el index 08303e0595d..a406e09b8c0 100644 --- a/lisp/printing.el +++ b/lisp/printing.el | |||
| @@ -5,13 +5,13 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> | 6 | ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> |
| 7 | ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> | 7 | ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> |
| 8 | ;; Time-stamp: <2004/07/20 21:44:43 vinicius> | 8 | ;; Time-stamp: <2004/09/21 22:51:58 vinicius> |
| 9 | ;; Keywords: wp, print, PostScript | 9 | ;; Keywords: wp, print, PostScript |
| 10 | ;; Version: 6.8 | 10 | ;; Version: 6.8 |
| 11 | ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ | 11 | ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ |
| 12 | 12 | ||
| 13 | (defconst pr-version "6.8" | 13 | (defconst pr-version "6.8" |
| 14 | "printing.el, v 6.8 <2004/07/12 vinicius> | 14 | "printing.el, v 6.8 <2004/09/21 vinicius> |
| 15 | 15 | ||
| 16 | Please send all bug fixes and enhancements to | 16 | Please send all bug fixes and enhancements to |
| 17 | Vinicius Jose Latorre <viniciusjl@ig.com.br> | 17 | Vinicius Jose Latorre <viniciusjl@ig.com.br> |
| @@ -259,6 +259,17 @@ Please send all bug fixes and enhancements to | |||
| 259 | ;; PostScript printer. So, please, don't include this printer in | 259 | ;; PostScript printer. So, please, don't include this printer in |
| 260 | ;; `pr-txt-printer-alist' (which see). | 260 | ;; `pr-txt-printer-alist' (which see). |
| 261 | ;; | 261 | ;; |
| 262 | ;; 5. Use gsprint instead of ghostscript to print monochrome PostScript files | ||
| 263 | ;; in Windows. The gsprint utility is faster than ghostscript to print | ||
| 264 | ;; monochrome PostScript. | ||
| 265 | ;; | ||
| 266 | ;; The efficiency is similar to print non-monochrome PostScript file. | ||
| 267 | ;; | ||
| 268 | ;; Also the gsprint utility comes together with gsview distribution. | ||
| 269 | ;; | ||
| 270 | ;; For more information about gsprint see | ||
| 271 | ;; `http://www.cs.wisc.edu/~ghost/gsview/gsprint.htm'. | ||
| 272 | ;; | ||
| 262 | ;; | 273 | ;; |
| 263 | ;; Using `printing' | 274 | ;; Using `printing' |
| 264 | ;; ---------------- | 275 | ;; ---------------- |
| @@ -922,6 +933,7 @@ Please send all bug fixes and enhancements to | |||
| 922 | ;; | 933 | ;; |
| 923 | ;; gswin32, gsview32 | 934 | ;; gswin32, gsview32 |
| 924 | ;; `http://www.gnu.org/software/ghostscript/ghostscript.html' | 935 | ;; `http://www.gnu.org/software/ghostscript/ghostscript.html' |
| 936 | ;; gsprint `http://www.cs.wisc.edu/~ghost/gsview/gsprint.htm'. | ||
| 925 | ;; enscript `http://people.ssh.fi/mtr/genscript/' | 937 | ;; enscript `http://people.ssh.fi/mtr/genscript/' |
| 926 | ;; psnup `http://www.dcs.ed.ac.uk/home/ajcd/psutils/index.html' | 938 | ;; psnup `http://www.dcs.ed.ac.uk/home/ajcd/psutils/index.html' |
| 927 | ;; redmon `http://www.cs.wisc.edu/~ghost/redmon/' | 939 | ;; redmon `http://www.cs.wisc.edu/~ghost/redmon/' |
| @@ -930,6 +942,9 @@ Please send all bug fixes and enhancements to | |||
| 930 | ;; Acknowledgments | 942 | ;; Acknowledgments |
| 931 | ;; --------------- | 943 | ;; --------------- |
| 932 | ;; | 944 | ;; |
| 945 | ;; Thanks to Lennart Borgman <lennart.borgman.073@student.lu.se> for gsprint | ||
| 946 | ;; suggestion (see tip 5 in section Tips). | ||
| 947 | ;; | ||
| 933 | ;; Thanks to Drew Adams <drew.adams@oracle.com> for suggestions: | 948 | ;; Thanks to Drew Adams <drew.adams@oracle.com> for suggestions: |
| 934 | ;; - directory processing. | 949 | ;; - directory processing. |
| 935 | ;; - `pr-path-alist' variable. | 950 | ;; - `pr-path-alist' variable. |
diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el index ac370cc1030..6965dea9fc1 100644 --- a/lisp/progmodes/tcl.el +++ b/lisp/progmodes/tcl.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; tcl.el --- Tcl code editing commands for Emacs | 1 | ;;; tcl.el --- Tcl code editing commands for Emacs |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1994,98,1999,2000,01,02,2003 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994,98,1999,2000,01,02,2003,2004 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: FSF | 5 | ;; Maintainer: FSF |
| 6 | ;; Author: Tom Tromey <tromey@redhat.com> | 6 | ;; Author: Tom Tromey <tromey@redhat.com> |
| @@ -1104,15 +1104,13 @@ See documentation for function `inferior-tcl-mode' for more information." | |||
| 1104 | (list (if current-prefix-arg | 1104 | (list (if current-prefix-arg |
| 1105 | (read-string "Run Tcl: " tcl-application) | 1105 | (read-string "Run Tcl: " tcl-application) |
| 1106 | tcl-application))) | 1106 | tcl-application))) |
| 1107 | (if (not (comint-check-proc "*inferior-tcl*")) | 1107 | (unless (comint-check-proc "*inferior-tcl*") |
| 1108 | (progn | 1108 | (set-buffer (apply (function make-comint) "inferior-tcl" cmd nil |
| 1109 | (set-buffer (apply (function make-comint) "inferior-tcl" cmd nil | 1109 | tcl-command-switches)) |
| 1110 | tcl-command-switches)) | 1110 | (inferior-tcl-mode)) |
| 1111 | (inferior-tcl-mode))) | 1111 | (set (make-local-variable 'tcl-application) cmd) |
| 1112 | (make-local-variable 'tcl-application) | ||
| 1113 | (setq tcl-application cmd) | ||
| 1114 | (setq inferior-tcl-buffer "*inferior-tcl*") | 1112 | (setq inferior-tcl-buffer "*inferior-tcl*") |
| 1115 | (switch-to-buffer "*inferior-tcl*")) | 1113 | (pop-to-buffer "*inferior-tcl*")) |
| 1116 | 1114 | ||
| 1117 | (defalias 'run-tcl 'inferior-tcl) | 1115 | (defalias 'run-tcl 'inferior-tcl) |
| 1118 | 1116 | ||
diff --git a/lisp/subr.el b/lisp/subr.el index bed5489a1dd..e5a967310d5 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -1938,8 +1938,7 @@ in BODY." | |||
| 1938 | (put 'delay-mode-hooks 'permanent-local t) | 1938 | (put 'delay-mode-hooks 'permanent-local t) |
| 1939 | 1939 | ||
| 1940 | (defvar after-change-major-mode-hook nil | 1940 | (defvar after-change-major-mode-hook nil |
| 1941 | "Mode independent hook run at the end of major mode functions. | 1941 | "Normal hook run at the very end of major mode functions.") |
| 1942 | This is run just before the mode dependent hooks.") | ||
| 1943 | 1942 | ||
| 1944 | (defun run-mode-hooks (&rest hooks) | 1943 | (defun run-mode-hooks (&rest hooks) |
| 1945 | "Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS. | 1944 | "Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS. |
| @@ -1959,6 +1958,8 @@ Major mode functions should use this." | |||
| 1959 | 1958 | ||
| 1960 | (defmacro delay-mode-hooks (&rest body) | 1959 | (defmacro delay-mode-hooks (&rest body) |
| 1961 | "Execute BODY, but delay any `run-mode-hooks'. | 1960 | "Execute BODY, but delay any `run-mode-hooks'. |
| 1961 | These hooks will be executed by the first following call to | ||
| 1962 | `run-mode-hooks' that occurs outside any `delayed-mode-hooks' form. | ||
| 1962 | Only affects hooks run in the current buffer." | 1963 | Only affects hooks run in the current buffer." |
| 1963 | (declare (debug t)) | 1964 | (declare (debug t)) |
| 1964 | `(progn | 1965 | `(progn |
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el index f25bec2d841..4db493803ef 100644 --- a/lisp/textmodes/enriched.el +++ b/lisp/textmodes/enriched.el | |||
| @@ -154,6 +154,12 @@ them and their old values to `enriched-old-bindings'." | |||
| 154 | The value is a list of \(VAR VALUE VAR VALUE...).") | 154 | The value is a list of \(VAR VALUE VAR VALUE...).") |
| 155 | (make-variable-buffer-local 'enriched-old-bindings) | 155 | (make-variable-buffer-local 'enriched-old-bindings) |
| 156 | 156 | ||
| 157 | ;; The next variable is buffer local if and only if Enriched mode is | ||
| 158 | ;; enabled. The buffer local value records whether | ||
| 159 | ;; `default-text-properties' should remain buffer local when disabling | ||
| 160 | ;; Enriched mode. For technical reasons, the default value should be t. | ||
| 161 | (defvar enriched-default-text-properties-local-flag t) | ||
| 162 | |||
| 157 | ;; Technical internal variable. Bound to t if `enriched-mode' is | 163 | ;; Technical internal variable. Bound to t if `enriched-mode' is |
| 158 | ;; being rerun by a major mode to allow it to restore buffer-local | 164 | ;; being rerun by a major mode to allow it to restore buffer-local |
| 159 | ;; variables and to correctly update `enriched-old-bindings'. | 165 | ;; variables and to correctly update `enriched-old-bindings'. |
| @@ -169,7 +175,7 @@ The value is a list of \(VAR VALUE VAR VALUE...).") | |||
| 169 | "Minor mode for editing text/enriched files. | 175 | "Minor mode for editing text/enriched files. |
| 170 | These are files with embedded formatting information in the MIME standard | 176 | These are files with embedded formatting information in the MIME standard |
| 171 | text/enriched format. | 177 | text/enriched format. |
| 172 | Turning the mode on runs `enriched-mode-hook'. | 178 | Turning the mode on or off runs `enriched-mode-hook'. |
| 173 | 179 | ||
| 174 | More information about Enriched mode is available in the file | 180 | More information about Enriched mode is available in the file |
| 175 | etc/enriched.doc in the Emacs distribution directory. | 181 | etc/enriched.doc in the Emacs distribution directory. |
| @@ -183,7 +189,11 @@ Commands: | |||
| 183 | (setq buffer-file-format (delq 'text/enriched buffer-file-format)) | 189 | (setq buffer-file-format (delq 'text/enriched buffer-file-format)) |
| 184 | ;; restore old variable values | 190 | ;; restore old variable values |
| 185 | (while enriched-old-bindings | 191 | (while enriched-old-bindings |
| 186 | (set (pop enriched-old-bindings) (pop enriched-old-bindings)))) | 192 | (set (pop enriched-old-bindings) (pop enriched-old-bindings))) |
| 193 | (unless enriched-default-text-properties-local-flag | ||
| 194 | (kill-local-variable 'default-text-properties)) | ||
| 195 | (kill-local-variable 'enriched-default-text-properties-local-flag) | ||
| 196 | (unless use-hard-newlines (use-hard-newlines 0))) | ||
| 187 | 197 | ||
| 188 | ((and (memq 'text/enriched buffer-file-format) | 198 | ((and (memq 'text/enriched buffer-file-format) |
| 189 | (not enriched-rerun-flag)) | 199 | (not enriched-rerun-flag)) |
| @@ -196,7 +206,11 @@ Commands: | |||
| 196 | ;; These will be restored if we exit Enriched mode. | 206 | ;; These will be restored if we exit Enriched mode. |
| 197 | (setq enriched-old-bindings | 207 | (setq enriched-old-bindings |
| 198 | (list 'buffer-display-table buffer-display-table | 208 | (list 'buffer-display-table buffer-display-table |
| 199 | 'default-text-properties default-text-properties)) | 209 | 'default-text-properties default-text-properties |
| 210 | 'use-hard-newlines use-hard-newlines)) | ||
| 211 | (make-local-variable 'enriched-default-text-properties-local-flag) | ||
| 212 | (setq enriched-default-text-properties-local-flag | ||
| 213 | (local-variable-p 'default-text-properties)) | ||
| 200 | (make-local-variable 'default-text-properties) | 214 | (make-local-variable 'default-text-properties) |
| 201 | (setq buffer-display-table enriched-display-table) | 215 | (setq buffer-display-table enriched-display-table) |
| 202 | (use-hard-newlines 1 (if enriched-rerun-flag 'never nil)) | 216 | (use-hard-newlines 1 (if enriched-rerun-flag 'never nil)) |
diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 994f3b3199f..cb510c43e33 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog | |||
| @@ -1,3 +1,62 @@ | |||
| 1 | 2004-09-25 Richard M. Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * text.texi (Special Properties): Cleanups in `cursor'. | ||
| 4 | Rewrites in `line-height' and `line-spacing'; exchange them. | ||
| 5 | |||
| 6 | * display.texi (Fringes): Rewrite previous change. | ||
| 7 | (Fringe Bitmaps): Merge text from Display Fringe Bitmaps. Rewrite. | ||
| 8 | (Display Fringe Bitmaps): Node deleted, text moved. | ||
| 9 | (Customizing Bitmaps): Split off from Fringe Bitmaps. Rewrite. | ||
| 10 | (Scroll Bars): Clarify set-window-scroll-bars. | ||
| 11 | (Pointer Shape): Rewrite. | ||
| 12 | (Specified Space): Clarify :align-to, etc. | ||
| 13 | (Pixel Specification): Use @var. Clarify new text. | ||
| 14 | (Other Display Specs): Clarify `slice'. | ||
| 15 | (Image Descriptors): Cleanups. | ||
| 16 | (Showing Images): Cleanups. | ||
| 17 | |||
| 18 | 2004-09-24 Luc Teirlinck <teirllm@auburn.edu> | ||
| 19 | |||
| 20 | * hooks.texi (Standard Hooks): Add `after-change-major-mode-hook'. | ||
| 21 | |||
| 22 | * modes.texi: Various minor changes in addition to: | ||
| 23 | (Major Mode Conventions): Final call to `run-mode-hooks' should | ||
| 24 | not be inside the `delay-mode-hooks' form. | ||
| 25 | (Mode Hooks): New node. | ||
| 26 | (Hooks): Delete obsolete example. | ||
| 27 | Move definitions of `run-mode-hooks' and `delay-mode-hooks' to new | ||
| 28 | node "Mode Hooks". | ||
| 29 | |||
| 30 | 2004-09-22 Luc Teirlinck <teirllm@auburn.edu> | ||
| 31 | |||
| 32 | * display.texi: Correct various typos. | ||
| 33 | (Display): Rename node "Pointer Shapes" to "Pointer | ||
| 34 | Shape". (There is already a node called "Pointer Shapes" in | ||
| 35 | frames.texi.) | ||
| 36 | (Images): Remove non-existent node "Image Slices" from menu. | ||
| 37 | |||
| 38 | 2004-09-23 Kim F. Storm <storm@cua.dk> | ||
| 39 | |||
| 40 | * text.texi (Special Properties): Add `cursor', `pointer', | ||
| 41 | `line-height', and `line-spacing' properties. | ||
| 42 | |||
| 43 | * display.texi (Display): Add 'Fringe Bitmaps' and 'Pointer | ||
| 44 | Shapes' to menu. | ||
| 45 | (Standard Faces): Doc fix for fringe face. | ||
| 46 | (Fringes): Add `overflow-newline-into-fringe' and | ||
| 47 | 'indicate-buffer-boundaries'. | ||
| 48 | (Fringe Bitmaps, Pointer Shapes): New nodes. | ||
| 49 | (Display Property): Add 'Pixel Specification' and 'Display Fringe | ||
| 50 | Bitmaps' to menu. | ||
| 51 | (Specified Space): Describe pixel width and height. | ||
| 52 | (Pixel Specification): New node. | ||
| 53 | (Other Display Specs): Add `slice' property. | ||
| 54 | (Display Fringe Bitmaps): New node. | ||
| 55 | (Images): Add 'Image Slices' to menu. | ||
| 56 | (Image Descriptors): Add `:pointer' and `:map' properties. | ||
| 57 | (Showing Images): Add slice arg to `insert-image'. Add | ||
| 58 | 'insert-sliced-image'. | ||
| 59 | |||
| 1 | 2004-09-20 Richard M. Stallman <rms@gnu.org> | 60 | 2004-09-20 Richard M. Stallman <rms@gnu.org> |
| 2 | 61 | ||
| 3 | * commands.texi (Key Sequence Input): | 62 | * commands.texi (Key Sequence Input): |
diff --git a/lispref/display.texi b/lispref/display.texi index fb9d7c79e0e..44eda6723d1 100644 --- a/lispref/display.texi +++ b/lispref/display.texi | |||
| @@ -25,7 +25,10 @@ that Emacs presents to the user. | |||
| 25 | * Faces:: A face defines a graphics style for text characters: | 25 | * Faces:: A face defines a graphics style for text characters: |
| 26 | font, colors, etc. | 26 | font, colors, etc. |
| 27 | * Fringes:: Controlling window fringes. | 27 | * Fringes:: Controlling window fringes. |
| 28 | * Fringe Bitmaps:: Displaying bitmaps in the window fringes. | ||
| 29 | * Customizing Bitmaps:: Specifying your own bitmaps to use in the fringes. | ||
| 28 | * Scroll Bars:: Controlling vertical scroll bars. | 30 | * Scroll Bars:: Controlling vertical scroll bars. |
| 31 | * Pointer Shape:: Controlling the mouse pointer shape. | ||
| 29 | * Display Property:: Enabling special display features. | 32 | * Display Property:: Enabling special display features. |
| 30 | * Images:: Displaying images in Emacs buffers. | 33 | * Images:: Displaying images in Emacs buffers. |
| 31 | * Buttons:: Adding clickable buttons to Emacs buffers. | 34 | * Buttons:: Adding clickable buttons to Emacs buffers. |
| @@ -1486,7 +1489,7 @@ font. (This works only on certain systems.) | |||
| 1486 | 1489 | ||
| 1487 | @item fringe | 1490 | @item fringe |
| 1488 | @kindex fringe @r{(face name)} | 1491 | @kindex fringe @r{(face name)} |
| 1489 | This face controls the colors of window fringes, the thin areas on | 1492 | This face controls the default colors of window fringes, the thin areas on |
| 1490 | either side that are used to display continuation and truncation glyphs. | 1493 | either side that are used to display continuation and truncation glyphs. |
| 1491 | 1494 | ||
| 1492 | @item minibuffer-prompt | 1495 | @item minibuffer-prompt |
| @@ -2560,7 +2563,7 @@ non-@code{nil} value. | |||
| 2560 | 2563 | ||
| 2561 | @defvar fringes-outside-margins | 2564 | @defvar fringes-outside-margins |
| 2562 | If the value is non-@code{nil}, the frames appear outside | 2565 | If the value is non-@code{nil}, the frames appear outside |
| 2563 | the display margins. | 2566 | the display margins. |
| 2564 | @end defvar | 2567 | @end defvar |
| 2565 | 2568 | ||
| 2566 | @defvar left-fringe-width | 2569 | @defvar left-fringe-width |
| @@ -2596,6 +2599,191 @@ window is used. The value has the form @code{(@var{left-width} | |||
| 2596 | @var{right-width} @var{frames-outside-margins})}. | 2599 | @var{right-width} @var{frames-outside-margins})}. |
| 2597 | @end defun | 2600 | @end defun |
| 2598 | 2601 | ||
| 2602 | @defvar overflow-newline-into-fringe | ||
| 2603 | If this is non-@code{nil}, lines exactly as wide as the window (not | ||
| 2604 | counting the final newline character) are not continued. Instead, | ||
| 2605 | when point is at the end of the line, the cursor appears in the right | ||
| 2606 | fringe. | ||
| 2607 | @end defvar | ||
| 2608 | |||
| 2609 | @node Fringe Bitmaps | ||
| 2610 | @section Fringe Bitmaps | ||
| 2611 | @cindex fringe bitmaps | ||
| 2612 | @cindex bitmaps, fringe | ||
| 2613 | |||
| 2614 | The @dfn{fringe bitmaps} are tiny icons Emacs displays in the window | ||
| 2615 | fringe (on a graphic display) to indicate truncated or continued | ||
| 2616 | lines, buffer boundaries, overlay arrow, etc. The fringe bitmaps are | ||
| 2617 | shared by all frames and windows. You can redefine the built-in | ||
| 2618 | fringe bitmaps, and you can define new fringe bitmaps. However, Emacs | ||
| 2619 | can handle only 255 different fringe bitmaps. | ||
| 2620 | |||
| 2621 | The way to display a bitmap in the left or right fringes for a given | ||
| 2622 | line in a window is by specifying the @code{display} property for one | ||
| 2623 | of the characters that appears in it. Use a display specification of | ||
| 2624 | the form @code{(left-fringe @var{bitmap} [@var{face}])} or | ||
| 2625 | @code{(right-fringe @var{bitmap} [@var{face}])} (@pxref{Display | ||
| 2626 | Property}). Here, @var{bitmap} is an integer identifying the bitmap | ||
| 2627 | you want, and @var{face} (which is optional) is the name of the face | ||
| 2628 | whose colors should be used for displaying the bitmap. | ||
| 2629 | @c ??? Shouldn't the symbol name be used? | ||
| 2630 | |||
| 2631 | These are the symbols identify the standard fringe bitmaps. | ||
| 2632 | Evaluate @code{(require 'fringe)} to define them. Each symbol's | ||
| 2633 | value is an integer that identifies the corresponding bitmap. | ||
| 2634 | |||
| 2635 | @table @asis | ||
| 2636 | @item Truncation and continuation line bitmaps: | ||
| 2637 | @code{left-truncation-fringe-bitmap}, | ||
| 2638 | @code{right-truncation-fringe-bitmap}, | ||
| 2639 | @code{continued-line-fringe-bitmap}, | ||
| 2640 | @code{continuation-line-fringe-bitmap}. | ||
| 2641 | |||
| 2642 | @item Buffer indication bitmaps: | ||
| 2643 | @code{up-arrow-fringe-bitmap}, | ||
| 2644 | @code{down-arrow-fringe-bitmap}, | ||
| 2645 | @code{top-left-angle-fringe-bitmap}, | ||
| 2646 | @code{top-right-angle-fringe-bitmap}, | ||
| 2647 | @code{bottom-left-angle-fringe-bitmap}, | ||
| 2648 | @code{bottom-right-angle-fringe-bitmap}, | ||
| 2649 | @code{left-bracket-fringe-bitmap}, | ||
| 2650 | @code{right-bracket-fringe-bitmap}. | ||
| 2651 | |||
| 2652 | @item Empty line indication bitmap: | ||
| 2653 | @code{empty-line-fringe-bitmap}. | ||
| 2654 | |||
| 2655 | @item Overlay arrow bitmap: | ||
| 2656 | @code{overlay-arrow-fringe-bitmap}. | ||
| 2657 | |||
| 2658 | @item Bitmaps for displaying the cursor in right fringe: | ||
| 2659 | @code{filled-box-cursor-fringe-bitmap}, | ||
| 2660 | @code{hollow-box-cursor-fringe-bitmap}, | ||
| 2661 | @code{hollow-square-fringe-bitmap}, @code{bar-cursor-fringe-bitmap}, | ||
| 2662 | @code{hbar-cursor-fringe-bitmap}. | ||
| 2663 | |||
| 2664 | @item Value indicating that no fringe bitmap is present: | ||
| 2665 | @code{no-fringe-bitmap}. | ||
| 2666 | @c ??? I don't understand what that means. | ||
| 2667 | @c ??? Where would you find that value? | ||
| 2668 | |||
| 2669 | @item Value indicating a reference to an undefined bitmap: | ||
| 2670 | @code{undef-fringe-bitmap}. | ||
| 2671 | @c ??? I don't understand what that means. | ||
| 2672 | @c ??? Where would you find that value? | ||
| 2673 | @end table | ||
| 2674 | |||
| 2675 | @defun fringe-bitmaps-at-pos &optional pos window | ||
| 2676 | This function returns the fringe bitmaps of the display line | ||
| 2677 | containing position @var{pos} in window @var{window}. The return | ||
| 2678 | value has the form @code{(@var{left} . @var{right})}, where @var{left} | ||
| 2679 | is a list of fringe bitmap numbers for left fringe, and @var{right} is | ||
| 2680 | similar for the right fringe. These bitmap numbers are usually values | ||
| 2681 | of symbols such as the ones listed above. | ||
| 2682 | |||
| 2683 | @c ??? Why not return a list of symbols that identify the bitmaps? | ||
| 2684 | @c ??? This is Lisp, not C. | ||
| 2685 | |||
| 2686 | The value is @code{nil} if @var{pos} is not visible in @var{window}. | ||
| 2687 | If @var{window} is @code{nil}, that stands for the selected window. | ||
| 2688 | If @var{pos} is @code{nil}, that stands for the value of point in | ||
| 2689 | @var{window}. | ||
| 2690 | @end defun | ||
| 2691 | |||
| 2692 | @node Customizing Bitmaps | ||
| 2693 | @section Customizing Fringe Bitmaps | ||
| 2694 | |||
| 2695 | @c ??? Why not pass a symbol as the first argument | ||
| 2696 | @c ??? and define that symbol. It would be cleaner. | ||
| 2697 | |||
| 2698 | @defun define-fringe-bitmap bits &optional height width align bitmap | ||
| 2699 | This function defines a new fringe bitmap, or replaces an existing | ||
| 2700 | bitmap. | ||
| 2701 | |||
| 2702 | The argument @var{bits} specifies the image to use. It should be | ||
| 2703 | either a string or a vector of integers, where each element (an | ||
| 2704 | integer) corresponds to one row of the bitmap. Each bit of an integer | ||
| 2705 | corresponds to one pixel of the bitmap. | ||
| 2706 | @c ??? Is the low bit the leftmost or the rightmost bit? | ||
| 2707 | |||
| 2708 | The height is normally the length of @var{bits}. However, you | ||
| 2709 | can specify a different height with non-@code{nil} @var{height}. The width | ||
| 2710 | is normally 8, but you can specify a different width with non-@code{nil} | ||
| 2711 | @var{width}. The width must be an integer between 1 and 16. | ||
| 2712 | |||
| 2713 | The argument @var{align} specifies the positioning of the bitmap | ||
| 2714 | relative to the range of rows where it is used; the default is to | ||
| 2715 | center the bitmap. The allowed values are @code{top}, @code{center}, | ||
| 2716 | or @code{bottom}. | ||
| 2717 | |||
| 2718 | The @var{align} argument may also be a list @code{(@var{align} | ||
| 2719 | @var{periodic})} where @var{align} is intepreted as described above. | ||
| 2720 | If @var{periodic} is non-@code{nil}, it specifies that the rows in | ||
| 2721 | @code{bits} should be repeated enough times to reach the specified | ||
| 2722 | height. | ||
| 2723 | |||
| 2724 | The argument @var{bitmap} specifies an existing bitmap to redefine. | ||
| 2725 | You should pass the value of the symbol that identifies the bitmap. | ||
| 2726 | |||
| 2727 | The return value on success is an integer identifying the new bitmap. | ||
| 2728 | You should save that integer in a variable so it can be used to select | ||
| 2729 | this bitmap. The value can also be @code{nil} of there are no more | ||
| 2730 | free bitmap slots. | ||
| 2731 | @c ??? Why not signal an error? That would be cleaner. | ||
| 2732 | @end defun | ||
| 2733 | |||
| 2734 | @defun destroy-fringe-bitmap bitmap | ||
| 2735 | This function destroy the fringe bitmap identified by @var{bitmap}. | ||
| 2736 | If @var{bitmap} identifies a standard fringe bitmap, it actually | ||
| 2737 | restores the standard definition of that bitmap, instead of | ||
| 2738 | eliminating it entirely. | ||
| 2739 | @end defun | ||
| 2740 | |||
| 2741 | @defun set-fringe-bitmap-face bitmap &optional face | ||
| 2742 | This sets the face for the fringe bitmap @var{bitmap} to @var{face}. | ||
| 2743 | If @var{face} is @code{nil}, it selects the @code{fringe} face. The | ||
| 2744 | bitmap's face controls the color to draw it in. | ||
| 2745 | |||
| 2746 | The face you use here should be derived from @code{fringe}, and should | ||
| 2747 | specify only the foreground color. | ||
| 2748 | @end defun | ||
| 2749 | |||
| 2750 | @defvar indicate-buffer-boundaries | ||
| 2751 | This buffer-local variable controls how the buffer boundaries and | ||
| 2752 | window scrolling are indicated in the window fringes. | ||
| 2753 | |||
| 2754 | Emacs can indicate the buffer boundaries---that is, the first and last | ||
| 2755 | line in the buffer---with angle icons when they appear on the screen. | ||
| 2756 | In addition, Emacs can display an up-arrow in the fringe to show | ||
| 2757 | that there is text above the screen, and a down-arrow to show | ||
| 2758 | there is text below the screen. | ||
| 2759 | |||
| 2760 | There are four kinds of basic values: | ||
| 2761 | |||
| 2762 | @table @asis | ||
| 2763 | @item @code{nil} | ||
| 2764 | Don't display the icons. | ||
| 2765 | @item @code{left} | ||
| 2766 | Display them in the left fringe. | ||
| 2767 | @item @code{right} | ||
| 2768 | Display them in the right fringe. | ||
| 2769 | @item @var{anything-else} | ||
| 2770 | Display the icon at the top of the window top in the left fringe, and other | ||
| 2771 | in the right fringe. | ||
| 2772 | @end table | ||
| 2773 | |||
| 2774 | If value is a cons @code{(@var{angles} . @var{arrows})}, @var{angles} | ||
| 2775 | controls the angle icons, and @var{arrows} controls the arrows. Both | ||
| 2776 | @var{angles} and @var{arrows} work according to the table above. | ||
| 2777 | Thus, @code{(t . right)} places the top angle icon in the left | ||
| 2778 | fringe, the bottom angle icon in the right fringe, and both arrows in | ||
| 2779 | the right fringe. | ||
| 2780 | @end defvar | ||
| 2781 | |||
| 2782 | @defvar default-indicate-buffer-boundaries | ||
| 2783 | The value of this variable is the default value for | ||
| 2784 | @code{indicate-buffer-boundaries} in buffers that do not override it. | ||
| 2785 | @end defvar | ||
| 2786 | |||
| 2599 | @node Scroll Bars | 2787 | @node Scroll Bars |
| 2600 | @section Scroll Bars | 2788 | @section Scroll Bars |
| 2601 | 2789 | ||
| @@ -2609,18 +2797,19 @@ You can also control this for individual windows. Call the function | |||
| 2609 | @code{set-window-scroll-bars} to specify what to do for a specific window: | 2797 | @code{set-window-scroll-bars} to specify what to do for a specific window: |
| 2610 | 2798 | ||
| 2611 | @defun set-window-scroll-bars window width &optional vertical-type horizontal-type | 2799 | @defun set-window-scroll-bars window width &optional vertical-type horizontal-type |
| 2612 | Set width and type of scroll bars of window @var{window}. | 2800 | This function sets the width and type of scroll bars for window |
| 2613 | If @var{window} is @code{nil}, the selected window is used. | 2801 | @var{window}. |
| 2802 | |||
| 2614 | @var{width} specifies the scroll bar width in pixels (@code{nil} means | 2803 | @var{width} specifies the scroll bar width in pixels (@code{nil} means |
| 2615 | use whatever is specified for width for the frame). | 2804 | use the width specified for the frame). @var{vertical-type} specifies |
| 2616 | @var{vertical-type} specifies whether to have a vertical scroll bar | 2805 | whether to have a vertical scroll bar and, if so, where. The possible |
| 2617 | and, if so, where. The possible values are @code{left}, @code{right} | 2806 | values are @code{left}, @code{right} and @code{nil}, just like the |
| 2618 | and @code{nil}, just like the values of the | 2807 | values of the @code{vertical-scroll-bars} frame parameter. |
| 2619 | @code{vertical-scroll-bars} frame parameter. | ||
| 2620 | 2808 | ||
| 2621 | The argument @var{horizontal-type} is meant to specify whether and | 2809 | The argument @var{horizontal-type} is meant to specify whether and |
| 2622 | where to have horizontal scroll bars, but since they are not | 2810 | where to have horizontal scroll bars, but since they are not |
| 2623 | implemented, it has no effect. | 2811 | implemented, it has no effect. If @var{window} is @code{nil}, the |
| 2812 | selected window is used. | ||
| 2624 | @end defun | 2813 | @end defun |
| 2625 | 2814 | ||
| 2626 | @defun window-scroll-bars &optional window | 2815 | @defun window-scroll-bars &optional window |
| @@ -2644,6 +2833,26 @@ in a buffer that is already visible in a window, you can make the | |||
| 2644 | window take note of the new values by calling @code{set-window-buffer} | 2833 | window take note of the new values by calling @code{set-window-buffer} |
| 2645 | specifying the same buffer that is already displayed. | 2834 | specifying the same buffer that is already displayed. |
| 2646 | 2835 | ||
| 2836 | @node Pointer Shape | ||
| 2837 | @section Pointer Shape | ||
| 2838 | |||
| 2839 | Normally, the mouse pointer has the @code{text} shape over text and | ||
| 2840 | the @code{arrow} shape over window areas which do not correspond to | ||
| 2841 | any buffer text. You can specify the mouse pointer shape over text or | ||
| 2842 | images via the @code{pointer} text property, and for images with the | ||
| 2843 | @code{:pointer} and @code{:map} image properties. | ||
| 2844 | |||
| 2845 | The available pointer shapes are: @code{text} (or @code{nil}), | ||
| 2846 | @code{arrow}, @code{hand}, @code{vdrag}, @code{hdrag}, | ||
| 2847 | @code{modeline}, and @code{hourglass}. | ||
| 2848 | |||
| 2849 | @defvar void-text-area-pointer | ||
| 2850 | @tindex void-text-area-pointer | ||
| 2851 | This variable specifies the mouse pointer shape in void text areas, | ||
| 2852 | i.e. the areas after the end of a line or below the last line in the | ||
| 2853 | buffer. The default is to use the @code{arrow} (non-text) pointer. | ||
| 2854 | @end defvar | ||
| 2855 | |||
| 2647 | @node Display Property | 2856 | @node Display Property |
| 2648 | @section The @code{display} Property | 2857 | @section The @code{display} Property |
| 2649 | @cindex display specification | 2858 | @cindex display specification |
| @@ -2659,6 +2868,7 @@ they mean. | |||
| 2659 | 2868 | ||
| 2660 | @menu | 2869 | @menu |
| 2661 | * Specified Space:: Displaying one space with a specified width. | 2870 | * Specified Space:: Displaying one space with a specified width. |
| 2871 | * Pixel Specification:: Specifying space width or height in pixels. | ||
| 2662 | * Other Display Specs:: Displaying an image; magnifying text; moving it | 2872 | * Other Display Specs:: Displaying an image; magnifying text; moving it |
| 2663 | up or down on the page; adjusting the width | 2873 | up or down on the page; adjusting the width |
| 2664 | of spaces within text. | 2874 | of spaces within text. |
| @@ -2683,9 +2893,10 @@ can use in @var{props} to specify the weight of the space: | |||
| 2683 | 2893 | ||
| 2684 | @table @code | 2894 | @table @code |
| 2685 | @item :width @var{width} | 2895 | @item :width @var{width} |
| 2686 | Specifies that the space width should be @var{width} times the normal | 2896 | If @var{width} is an integer or floating point number, it specifies |
| 2687 | character width. @var{width} can be an integer or floating point | 2897 | that the space width should be @var{width} times the normal character |
| 2688 | number. | 2898 | width. @var{width} can also be a @dfn{pixel width} specification |
| 2899 | (@pxref{Pixel Specification}). | ||
| 2689 | 2900 | ||
| 2690 | @item :relative-width @var{factor} | 2901 | @item :relative-width @var{factor} |
| 2691 | Specifies that the width of the stretch should be computed from the | 2902 | Specifies that the width of the stretch should be computed from the |
| @@ -2694,41 +2905,131 @@ same @code{display} property. The space width is the width of that | |||
| 2694 | character, multiplied by @var{factor}. | 2905 | character, multiplied by @var{factor}. |
| 2695 | 2906 | ||
| 2696 | @item :align-to @var{hpos} | 2907 | @item :align-to @var{hpos} |
| 2697 | Specifies that the space should be wide enough to reach @var{hpos}. The | 2908 | Specifies that the space should be wide enough to reach @var{hpos}. |
| 2698 | value @var{hpos} is measured in units of the normal character width. It | 2909 | If @var{hpos} is a number, it is measured in units of the normal |
| 2699 | may be an integer or a floating point number. | 2910 | character width. @var{hpos} can also be a @dfn{pixel width} |
| 2911 | specification (@pxref{Pixel Specification}). | ||
| 2700 | @end table | 2912 | @end table |
| 2701 | 2913 | ||
| 2702 | You should use one and only one of the above properties. You can | 2914 | You should use one and only one of the above properties. You can |
| 2703 | also specify the height of the space, with other properties: | 2915 | also specify the height of the space, with these properties: |
| 2704 | 2916 | ||
| 2705 | @table @code | 2917 | @table @code |
| 2706 | @item :height @var{height} | 2918 | @item :height @var{height} |
| 2707 | Specifies the height of the space, as @var{height}, | 2919 | Specifies the height of the space. |
| 2708 | measured in terms of the normal line height. | 2920 | If @var{height} is an integer or floating point number, it specifies |
| 2921 | that the space height should be @var{height} times the normal character | ||
| 2922 | height. The @var{height} may also be a @dfn{pixel height} specification | ||
| 2923 | (@pxref{Pixel Specification}). | ||
| 2709 | 2924 | ||
| 2710 | @item :relative-height @var{factor} | 2925 | @item :relative-height @var{factor} |
| 2711 | Specifies the height of the space, multiplying the ordinary height | 2926 | Specifies the height of the space, multiplying the ordinary height |
| 2712 | of the text having this display specification by @var{factor}. | 2927 | of the text having this display specification by @var{factor}. |
| 2713 | 2928 | ||
| 2714 | @item :ascent @var{ascent} | 2929 | @item :ascent @var{ascent} |
| 2715 | Specifies that @var{ascent} percent of the height of the space should be | 2930 | If the value of @var{ascent} is a non-negative number no greater than |
| 2716 | considered as the ascent of the space---that is, the part above the | 2931 | 100, it specifies that @var{ascent} percent of the height of the space |
| 2717 | baseline. The value of @var{ascent} must be a non-negative number no | 2932 | should be considered as the ascent of the space---that is, the part |
| 2718 | greater than 100. | 2933 | above the baseline. The ascent may also be specified in pixel units |
| 2934 | with a @dfn{pixel ascent} specification (@pxref{Pixel Specification}). | ||
| 2935 | |||
| 2719 | @end table | 2936 | @end table |
| 2720 | 2937 | ||
| 2721 | Don't use both @code{:height} and @code{:relative-height} together. | 2938 | Don't use both @code{:height} and @code{:relative-height} together. |
| 2722 | 2939 | ||
| 2940 | The @code{:height} and @code{:align-to} properties are supported on | ||
| 2941 | non-graphic terminals, but the other space properties in this section | ||
| 2942 | are not. | ||
| 2943 | |||
| 2944 | @node Pixel Specification | ||
| 2945 | @subsection Pixel Specification for Spaces | ||
| 2946 | @cindex spaces, pixel specification | ||
| 2947 | |||
| 2948 | The value of the @code{:width}, @code{:align-to}, @code{:height}, | ||
| 2949 | and @code{:ascent} properties can be a special kind of expression that | ||
| 2950 | is evaluated during redisplay. The result of the evaluation is used | ||
| 2951 | as an absolute number of pixels. | ||
| 2952 | |||
| 2953 | The following expressions are supported: | ||
| 2954 | |||
| 2955 | @example | ||
| 2956 | @group | ||
| 2957 | @var{expr} ::= @var{num} | (@var{num}) | @var{unit} | @var{elem} | @var{pos} | IMAGE | @var{form} | ||
| 2958 | @var{num} ::= @var{integer} | @var{float} | @var{symbol} | ||
| 2959 | @var{unit} ::= in | mm | cm | width | height | ||
| 2960 | @var{elem} ::= left-fringe | right-fringe | left-margin | right-margin | ||
| 2961 | | scroll-bar | text | ||
| 2962 | @var{pos} ::= left | center | right | ||
| 2963 | @var{form} ::= (@var{num} . @var{expr}) | (@var{op} @var{expr} ...) | ||
| 2964 | @var{op} ::= + | - | ||
| 2965 | @end group | ||
| 2966 | @end example | ||
| 2967 | |||
| 2968 | The form @var{num} specifies a fraction of the default frame font | ||
| 2969 | height or width. The form @code{(@var{num})} specifies an absolute | ||
| 2970 | number of pixels. If @var{num} is a symbol, @var{symbol}, its | ||
| 2971 | buffer-local variable binding is used. | ||
| 2972 | |||
| 2973 | The @code{in}, @code{mm}, and @code{cm} units specify the number of | ||
| 2974 | pixels per inch, millimeter, and centimeter, respectively. The | ||
| 2975 | @code{width} and @code{height} units correspond to the default width | ||
| 2976 | and height of the current face. An image specification @code{IMAGE} | ||
| 2977 | corresponds to the width or height of the image. | ||
| 2978 | |||
| 2979 | The @code{left-fringe}, @code{right-fringe}, @code{left-margin}, | ||
| 2980 | @code{right-margin}, @code{scroll-bar}, and @code{text} elements | ||
| 2981 | specify to the width of the corresponding area of the window. | ||
| 2982 | |||
| 2983 | The @code{left}, @code{center}, and @code{right} positions can be | ||
| 2984 | used with @code{:align-to} to specify a position relative to the left | ||
| 2985 | edge, center, or right edge of the text area. | ||
| 2986 | |||
| 2987 | Any of the above window elements (except @code{text}) can also be | ||
| 2988 | used with @code{:align-to} to specify that the position is relative to | ||
| 2989 | the left edge of the given area. Once the base offset for a relative | ||
| 2990 | position has been set (by the first occurrence of one of these | ||
| 2991 | symbols), further occurences of these symbols are interpreted as the | ||
| 2992 | width of the specified area. For example, to align to the center of | ||
| 2993 | the left-margin, use | ||
| 2994 | |||
| 2995 | @example | ||
| 2996 | :align-to (+ left-margin (0.5 . left-margin)) | ||
| 2997 | @end example | ||
| 2998 | |||
| 2999 | If no specific base offset is set for alignment, it is always relative | ||
| 3000 | to the left edge of the text area. For example, @samp{:align-to 0} in a | ||
| 3001 | header-line aligns with the first text column in the text area. | ||
| 3002 | |||
| 3003 | A value of the form @code{(@var{num} . @var{expr})} stands | ||
| 3004 | multiplying the values of @var{num} and @var{expr}. For example, | ||
| 3005 | @code{(2 . in)} specifies a width of 2 inches, while @code{(0.5 . | ||
| 3006 | IMAGE)} specifies half the width (or height) of the specified image. | ||
| 3007 | |||
| 3008 | The form @code{(+ @var{expr} ...)} adds up the value of the | ||
| 3009 | expressions. The form @code{(- @var{expr} ...)} negates or subtracts | ||
| 3010 | the value of the expressions. | ||
| 3011 | |||
| 2723 | @node Other Display Specs | 3012 | @node Other Display Specs |
| 2724 | @subsection Other Display Specifications | 3013 | @subsection Other Display Specifications |
| 2725 | 3014 | ||
| 3015 | Here are the other sorts of display specifications that you can use | ||
| 3016 | in the @code{display} text property. | ||
| 3017 | |||
| 2726 | @table @code | 3018 | @table @code |
| 2727 | @item (image . @var{image-props}) | 3019 | @item (image . @var{image-props}) |
| 2728 | This is in fact an image descriptor (@pxref{Images}). When used as a | 3020 | This is in fact an image descriptor (@pxref{Images}). When used as a |
| 2729 | display specification, it means to display the image instead of the text | 3021 | display specification, it means to display the image instead of the text |
| 2730 | that has the display specification. | 3022 | that has the display specification. |
| 2731 | 3023 | ||
| 3024 | @item (slice @var{x} @var{y} @var{width} @var{height}) | ||
| 3025 | This specification together with @code{image} specifies a @dfn{slice} | ||
| 3026 | (a partial area) of the image to display. The elements @var{y} and | ||
| 3027 | @var{x} specify the top left corner of the slice, within the image; | ||
| 3028 | @var{width} and @var{height} specify the width and height of the | ||
| 3029 | slice. Integer values are numbers of pixels. A floating point number | ||
| 3030 | in the range 0.0--1.0 stands for that fraction of the width or height | ||
| 3031 | of the entire image. | ||
| 3032 | |||
| 2732 | @item ((margin nil) @var{string}) | 3033 | @item ((margin nil) @var{string}) |
| 2733 | @itemx @var{string} | 3034 | @itemx @var{string} |
| 2734 | A display specification of this form means to display @var{string} | 3035 | A display specification of this form means to display @var{string} |
| @@ -3105,6 +3406,43 @@ specifying the color to assume for the background of the image. | |||
| 3105 | If @var{mask} is @code{nil}, remove a mask from the image, if it has | 3406 | If @var{mask} is @code{nil}, remove a mask from the image, if it has |
| 3106 | one. Images in some formats include a mask which can be removed by | 3407 | one. Images in some formats include a mask which can be removed by |
| 3107 | specifying @code{:mask nil}. | 3408 | specifying @code{:mask nil}. |
| 3409 | |||
| 3410 | @item :pointer @var{shape} | ||
| 3411 | This specifies the pointer shape when the mouse pointer is over this | ||
| 3412 | image. @xref{Pointer Shapes}, for available pointer shapes. | ||
| 3413 | |||
| 3414 | @item :map @var{map} | ||
| 3415 | This associates an image map of @dfn{hot spots} with this image. | ||
| 3416 | |||
| 3417 | An image map is an alist where each element has the format | ||
| 3418 | @code{(@var{area} @var{id} @var{plist})}. An @var{area} is specified | ||
| 3419 | as either a rectangle, a circle, or a polygon. | ||
| 3420 | |||
| 3421 | A rectangle is a cons | ||
| 3422 | @code{(rect . ((@var{x0} . @var{y0}) . (@var{x1} . @var{y1})))} | ||
| 3423 | which specifies the pixel coordinates of the upper left and bottom right | ||
| 3424 | corners of the rectangle area. | ||
| 3425 | |||
| 3426 | A circle is a cons | ||
| 3427 | @code{(circle . ((@var{x0} . @var{y0}) . @var{r}))} | ||
| 3428 | which specifies the center and the radius of the circle; @var{r} may | ||
| 3429 | be a float or integer. | ||
| 3430 | |||
| 3431 | A polygon is a cons | ||
| 3432 | @code{(poly . [@var{x0} @var{y0} @var{x1} @var{y1} ...])} | ||
| 3433 | where each pair in the vector describes one corner in the polygon. | ||
| 3434 | |||
| 3435 | When the mouse pointer is above a hot-spot area of an image, the | ||
| 3436 | @var{plist} of that hot-spot is consulted; if it contains a @code{help-echo} | ||
| 3437 | property it defines a tool-tip for the hot-spot, and if it contains | ||
| 3438 | a @code{pointer} property, it defines the shape of the mouse cursor when | ||
| 3439 | it is over the hot-spot. | ||
| 3440 | @xref{Pointer Shapes}, for available pointer shapes. | ||
| 3441 | |||
| 3442 | When you click the mouse when the mouse pointer is over a hot-spot, an | ||
| 3443 | event is composed by combining the @var{id} of the hot-spot with the | ||
| 3444 | mouse event; for instance, @code{[area4 mouse-1]} if the hot-spot's | ||
| 3445 | @var{id} is @code{area4}. | ||
| 3108 | @end table | 3446 | @end table |
| 3109 | 3447 | ||
| 3110 | @defun image-mask-p spec &optional frame | 3448 | @defun image-mask-p spec &optional frame |
| @@ -3372,7 +3710,7 @@ The image is looked for first on @code{load-path} and then in | |||
| 3372 | property yourself, but it is easier to use the functions in this | 3710 | property yourself, but it is easier to use the functions in this |
| 3373 | section. | 3711 | section. |
| 3374 | 3712 | ||
| 3375 | @defun insert-image image &optional string area | 3713 | @defun insert-image image &optional string area slice |
| 3376 | This function inserts @var{image} in the current buffer at point. The | 3714 | This function inserts @var{image} in the current buffer at point. The |
| 3377 | value @var{image} should be an image descriptor; it could be a value | 3715 | value @var{image} should be an image descriptor; it could be a value |
| 3378 | returned by @code{create-image}, or the value of a symbol defined with | 3716 | returned by @code{create-image}, or the value of a symbol defined with |
| @@ -3385,11 +3723,26 @@ If it is @code{left-margin}, the image appears in the left margin; | |||
| 3385 | @code{nil} or omitted, the image is displayed at point within the | 3723 | @code{nil} or omitted, the image is displayed at point within the |
| 3386 | buffer's text. | 3724 | buffer's text. |
| 3387 | 3725 | ||
| 3726 | The argument @var{slice} specifies a slice of the image to insert. If | ||
| 3727 | @var{slice} is @code{nil} or omitted the whole image is inserted. | ||
| 3728 | Otherwise, @var{slice} is a list @code{(@var{x} @var{y} @var{width} | ||
| 3729 | @var{height})} which specifies the @var{x} and @var{y} positions and | ||
| 3730 | @var{width} and @var{height} of the image area to insert. Integer | ||
| 3731 | values are in units of pixels. A floating point number in the range | ||
| 3732 | 0.0--1.0 stands for that fraction of the width or height of the entire | ||
| 3733 | image. | ||
| 3734 | |||
| 3388 | Internally, this function inserts @var{string} in the buffer, and gives | 3735 | Internally, this function inserts @var{string} in the buffer, and gives |
| 3389 | it a @code{display} property which specifies @var{image}. @xref{Display | 3736 | it a @code{display} property which specifies @var{image}. @xref{Display |
| 3390 | Property}. | 3737 | Property}. |
| 3391 | @end defun | 3738 | @end defun |
| 3392 | 3739 | ||
| 3740 | @defun insert-sliced-image image &optional string area rows cols | ||
| 3741 | This function inserts @var{image} in the current buffer at point, like | ||
| 3742 | @code{insert-image}, but splits the image into @var{rows}x@var{cols} | ||
| 3743 | equally sized slices. | ||
| 3744 | @end defun | ||
| 3745 | |||
| 3393 | @defun put-image image pos &optional string area | 3746 | @defun put-image image pos &optional string area |
| 3394 | This function puts image @var{image} in front of @var{pos} in the | 3747 | This function puts image @var{image} in front of @var{pos} in the |
| 3395 | current buffer. The argument @var{pos} should be an integer or a | 3748 | current buffer. The argument @var{pos} should be an integer or a |
| @@ -3498,7 +3851,7 @@ entries). | |||
| 3498 | * Making Buttons:: Adding buttons to Emacs buffers. | 3851 | * Making Buttons:: Adding buttons to Emacs buffers. |
| 3499 | * Manipulating Buttons:: Getting and setting properties of buttons. | 3852 | * Manipulating Buttons:: Getting and setting properties of buttons. |
| 3500 | * Button Buffer Commands:: Buffer-wide commands and bindings for buttons. | 3853 | * Button Buffer Commands:: Buffer-wide commands and bindings for buttons. |
| 3501 | * Manipulating Button Types:: | 3854 | * Manipulating Button Types:: |
| 3502 | @end menu | 3855 | @end menu |
| 3503 | 3856 | ||
| 3504 | @node Button Properties | 3857 | @node Button Properties |
diff --git a/lispref/hooks.texi b/lispref/hooks.texi index ad5d709e720..1aa22b94686 100644 --- a/lispref/hooks.texi +++ b/lispref/hooks.texi | |||
| @@ -35,6 +35,7 @@ however, we have renamed all of those.) | |||
| 35 | @table @code | 35 | @table @code |
| 36 | @item activate-mark-hook | 36 | @item activate-mark-hook |
| 37 | @item after-change-functions | 37 | @item after-change-functions |
| 38 | @item after-change-major-mode-hook | ||
| 38 | @item after-init-hook | 39 | @item after-init-hook |
| 39 | @item after-insert-file-functions | 40 | @item after-insert-file-functions |
| 40 | @item after-make-frame-functions | 41 | @item after-make-frame-functions |
diff --git a/lispref/modes.texi b/lispref/modes.texi index 78b8fc440d7..f74f7c89da7 100644 --- a/lispref/modes.texi +++ b/lispref/modes.texi | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | @c -*-texinfo-*- | 1 | @c -*-texinfo-*- |
| 2 | @c This is part of the GNU Emacs Lisp Reference Manual. | 2 | @c This is part of the GNU Emacs Lisp Reference Manual. |
| 3 | @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003 | 3 | @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003, 2004 |
| 4 | @c Free Software Foundation, Inc. | 4 | @c Free Software Foundation, Inc. |
| 5 | @c See the file elisp.texi for copying conditions. | 5 | @c See the file elisp.texi for copying conditions. |
| 6 | @setfilename ../info/modes | 6 | @setfilename ../info/modes |
| @@ -103,6 +103,7 @@ Fundamental mode. Rmail mode is a complicated and specialized mode. | |||
| 103 | * Mode Help:: Finding out how to use a mode. | 103 | * Mode Help:: Finding out how to use a mode. |
| 104 | * Derived Modes:: Defining a new major mode based on another major | 104 | * Derived Modes:: Defining a new major mode based on another major |
| 105 | mode. | 105 | mode. |
| 106 | * Mode Hooks:: Hooks run at the end of major mode functions. | ||
| 106 | @end menu | 107 | @end menu |
| 107 | 108 | ||
| 108 | @node Major Mode Conventions | 109 | @node Major Mode Conventions |
| @@ -276,7 +277,7 @@ other packages would interfere with them. | |||
| 276 | Each major mode should have a @dfn{mode hook} named | 277 | Each major mode should have a @dfn{mode hook} named |
| 277 | @code{@var{modename}-mode-hook}. The major mode command should run that | 278 | @code{@var{modename}-mode-hook}. The major mode command should run that |
| 278 | hook, with @code{run-mode-hooks}, as the very last thing it | 279 | hook, with @code{run-mode-hooks}, as the very last thing it |
| 279 | does. @xref{Hooks}. | 280 | does. @xref{Mode Hooks}. |
| 280 | 281 | ||
| 281 | @item | 282 | @item |
| 282 | The major mode command may start by calling some other major mode | 283 | The major mode command may start by calling some other major mode |
| @@ -284,9 +285,11 @@ command (called the @dfn{parent mode}) and then alter some of its | |||
| 284 | settings. A mode that does this is called a @dfn{derived mode}. The | 285 | settings. A mode that does this is called a @dfn{derived mode}. The |
| 285 | recommended way to define one is to use @code{define-derived-mode}, | 286 | recommended way to define one is to use @code{define-derived-mode}, |
| 286 | but this is not required. Such a mode should use | 287 | but this is not required. Such a mode should use |
| 287 | @code{delay-mode-hooks} around its entire body, including the call to | 288 | @code{delay-mode-hooks} around its entire body (including the call to |
| 288 | the parent mode command and the final call to @code{run-mode-hooks}. | 289 | the parent mode command) @emph{except} for the final call to |
| 289 | (Using @code{define-derived-mode} does this automatically.) | 290 | @code{run-mode-hooks}, which runs the derived mode's hook. (Using |
| 291 | @code{define-derived-mode} does this automatically.) @xref{Derived | ||
| 292 | Modes}, and @ref{Mode Hooks}. | ||
| 290 | 293 | ||
| 291 | @item | 294 | @item |
| 292 | If something special should be done if the user switches a buffer from | 295 | If something special should be done if the user switches a buffer from |
| @@ -575,7 +578,7 @@ visited. It also processes local variables specified in the file text. | |||
| 575 | in particular. Other major modes are defined in effect by comparison | 578 | in particular. Other major modes are defined in effect by comparison |
| 576 | with this one---their definitions say what to change, starting from | 579 | with this one---their definitions say what to change, starting from |
| 577 | Fundamental mode. The @code{fundamental-mode} function does @emph{not} | 580 | Fundamental mode. The @code{fundamental-mode} function does @emph{not} |
| 578 | run any hooks; you're not supposed to customize it. (If you want Emacs | 581 | run any mode hooks; you're not supposed to customize it. (If you want Emacs |
| 579 | to behave differently in Fundamental mode, change the @emph{global} | 582 | to behave differently in Fundamental mode, change the @emph{global} |
| 580 | state of Emacs.) | 583 | state of Emacs.) |
| 581 | @end deffn | 584 | @end deffn |
| @@ -808,6 +811,58 @@ Do not write an @code{interactive} spec in the definition; | |||
| 808 | @code{define-derived-mode} does that automatically. | 811 | @code{define-derived-mode} does that automatically. |
| 809 | @end defmac | 812 | @end defmac |
| 810 | 813 | ||
| 814 | @node Mode Hooks | ||
| 815 | @subsection Mode Hooks | ||
| 816 | |||
| 817 | The two last things a major mode function does is to run its mode | ||
| 818 | hook and finally the mode independent normal hook | ||
| 819 | @code{after-change-major-mode-hook}. If the major mode is a derived | ||
| 820 | mode, that is if it calls another major mode (the parent mode) in its | ||
| 821 | body, then the parent's mode hook is run just before the derived | ||
| 822 | mode's hook. Neither the parent's mode hook nor | ||
| 823 | @code{after-change-major-mode-hook} are run at the end of the actual | ||
| 824 | call to the parent mode. This applies recursively if the parent mode | ||
| 825 | has itself a parent. That is, the mode hooks of all major modes called | ||
| 826 | directly or indirectly by the major mode function are all run in | ||
| 827 | sequence at the end, just before @code{after-change-major-mode-hook}. | ||
| 828 | |||
| 829 | If you are customizing a major mode, rather than defining one, the | ||
| 830 | above is all you need to know about the hooks run at the end of a | ||
| 831 | major mode. This also applies if you use @code{define-derived-mode} | ||
| 832 | to define a major mode, because that macro will automatically | ||
| 833 | implement the above for you. | ||
| 834 | |||
| 835 | Programmers wishing to define a major mode without using | ||
| 836 | @code{define-derived-mode}, should make sure that their major mode | ||
| 837 | follows the above conventions. @xref{Major Mode Conventions}, for how | ||
| 838 | this should be accomplished. Below, we give some implementation | ||
| 839 | details. | ||
| 840 | |||
| 841 | @defun run-mode-hooks &rest hookvars | ||
| 842 | Major modes should run their mode hook using this function. It is | ||
| 843 | similar to @code{run-hooks} (@pxref{Hooks}), but if run inside a | ||
| 844 | @code{delay-mode-hooks} form, this function does not run any hooks. | ||
| 845 | Instead, it arranges for @var{hookvars} to be run at a later call to | ||
| 846 | the function. Otherwise, @code{run-mode-hooks} runs any delayed hooks | ||
| 847 | in order, then @var{hookvars} and finally | ||
| 848 | @code{after-change-major-mode-hook}. | ||
| 849 | @end defun | ||
| 850 | |||
| 851 | @defmac delay-mode-hooks body... | ||
| 852 | This macro executes @var{body} like @code{progn}, but all calls to | ||
| 853 | @code{run-mode-hooks} inside @var{body} delay running their hooks. | ||
| 854 | They will be run by the first call to @code{run-mode-hooks} after exit | ||
| 855 | from @code{delay-mode-hooks}. | ||
| 856 | @end defmac | ||
| 857 | |||
| 858 | @defvar after-change-major-mode-hook | ||
| 859 | Every major mode function should run this normal hook at its very end. | ||
| 860 | It normally does not need to do so explicitly. Indeed, a major mode | ||
| 861 | function should normally run its mode hook with @code{run-mode-hooks} | ||
| 862 | as the very last thing it does and @code{run-mode-hooks} runs | ||
| 863 | @code{after-change-major-mode-hook} at its very end. | ||
| 864 | @end defvar | ||
| 865 | |||
| 811 | @node Minor Modes | 866 | @node Minor Modes |
| 812 | @section Minor Modes | 867 | @section Minor Modes |
| 813 | @cindex minor mode | 868 | @cindex minor mode |
| @@ -2087,7 +2142,7 @@ if there is no subexpression numbered @var{subexp} in @var{matcher}. | |||
| 2087 | Obviously, fontification of the subexpression numbered @var{subexp} will | 2142 | Obviously, fontification of the subexpression numbered @var{subexp} will |
| 2088 | not occur. However, fontification of other subexpressions (and other | 2143 | not occur. However, fontification of other subexpressions (and other |
| 2089 | regexps) will continue. If @var{laxmatch} is @code{nil}, and the | 2144 | regexps) will continue. If @var{laxmatch} is @code{nil}, and the |
| 2090 | specified subexpression is missing, then an error is signalled which | 2145 | specified subexpression is missing, then an error is signaled which |
| 2091 | terminates search-based fontification. | 2146 | terminates search-based fontification. |
| 2092 | 2147 | ||
| 2093 | Here are some examples of elements of this kind, and what they do: | 2148 | Here are some examples of elements of this kind, and what they do: |
| @@ -2450,7 +2505,7 @@ a file, don't have to do anything to use this feature. | |||
| 2450 | 2505 | ||
| 2451 | For buffers not visiting a file to have their state saved, the major | 2506 | For buffers not visiting a file to have their state saved, the major |
| 2452 | mode must bind the buffer local variable @code{desktop-save-buffer} to | 2507 | mode must bind the buffer local variable @code{desktop-save-buffer} to |
| 2453 | a non-nil value. | 2508 | a non-@code{nil} value. |
| 2454 | 2509 | ||
| 2455 | @defvar desktop-save-buffer | 2510 | @defvar desktop-save-buffer |
| 2456 | If this buffer-local variable is non-@code{nil}, the buffer will have | 2511 | If this buffer-local variable is non-@code{nil}, the buffer will have |
| @@ -2563,26 +2618,8 @@ obsolete.) If the value is a function (either a lambda expression or | |||
| 2563 | a symbol with a function definition), it is called. If it is a list | 2618 | a symbol with a function definition), it is called. If it is a list |
| 2564 | that isn't a function, its elements are called, consecutively. All | 2619 | that isn't a function, its elements are called, consecutively. All |
| 2565 | the hook functions are called with no arguments. | 2620 | the hook functions are called with no arguments. |
| 2566 | |||
| 2567 | For example, here's how @code{emacs-lisp-mode} runs its mode hook: | ||
| 2568 | |||
| 2569 | @example | ||
| 2570 | (run-hooks 'emacs-lisp-mode-hook) | ||
| 2571 | @end example | ||
| 2572 | @end defun | 2621 | @end defun |
| 2573 | 2622 | ||
| 2574 | @defun run-mode-hooks &rest hookvars | ||
| 2575 | Like @code{run-hooks}, but is affected by the @code{delay-mode-hooks} | ||
| 2576 | macro. | ||
| 2577 | @end defun | ||
| 2578 | |||
| 2579 | @defmac delay-mode-hooks body... | ||
| 2580 | This macro executes the @var{body} forms but defers all calls to | ||
| 2581 | @code{run-mode-hooks} within them until the end of @var{body}. | ||
| 2582 | This macro enables a derived mode to arrange not to run | ||
| 2583 | its parent modes' mode hooks until the end. | ||
| 2584 | @end defmac | ||
| 2585 | |||
| 2586 | @defun run-hook-with-args hook &rest args | 2623 | @defun run-hook-with-args hook &rest args |
| 2587 | This function is the way to run an abnormal hook and always call all | 2624 | This function is the way to run an abnormal hook and always call all |
| 2588 | of the hook functions. It calls each of the hook functions one by | 2625 | of the hook functions. It calls each of the hook functions one by |
diff --git a/lispref/text.texi b/lispref/text.texi index c6e5aa34d05..82763db496c 100644 --- a/lispref/text.texi +++ b/lispref/text.texi | |||
| @@ -2974,6 +2974,70 @@ Consecutive characters with the same @code{field} property constitute a | |||
| 2974 | @code{beginning-of-line} stop moving at a field boundary. | 2974 | @code{beginning-of-line} stop moving at a field boundary. |
| 2975 | @xref{Fields}. | 2975 | @xref{Fields}. |
| 2976 | 2976 | ||
| 2977 | @item cursor | ||
| 2978 | @kindex cursor @r{(text property)} | ||
| 2979 | Normally, the cursor is displayed at the end of any overlay and text | ||
| 2980 | property strings present at the current window position. You can | ||
| 2981 | place the cursor on any desired character of these strings by giving | ||
| 2982 | that character a non-@code{nil} @var{cursor} text property. | ||
| 2983 | |||
| 2984 | @item pointer | ||
| 2985 | @kindex pointer @r{(text property)} | ||
| 2986 | This specifies a specific pointer shape when the mouse pointer is over | ||
| 2987 | this text or image. See the variable @var{void-area-text-pointer} | ||
| 2988 | for possible pointer shapes. | ||
| 2989 | |||
| 2990 | @item line-spacing | ||
| 2991 | @kindex line-spacing @r{(text property)} | ||
| 2992 | A newline can have a @code{line-spacing} text or overlay property | ||
| 2993 | that controls the height of the corresponding display line. | ||
| 2994 | @c ??? Which display line is "corresponding"? | ||
| 2995 | The @code{line-spacing} property overrides the default frame line | ||
| 2996 | spacing and the buffer local @code{line-spacing} variable. We will | ||
| 2997 | call the property value @var{line-spacing}. | ||
| 2998 | |||
| 2999 | If @var{line-spacing} is a positive integer, the value specifies | ||
| 3000 | additional vertical space, below the display line, in pixels. | ||
| 3001 | |||
| 3002 | If @var{line-spacing} is a floating point number or cons, the | ||
| 3003 | additional vertical space is the product of @var{line-spacing} and the | ||
| 3004 | default frame line height. | ||
| 3005 | |||
| 3006 | If the @var{line-spacing} value is a cons @code{(total . | ||
| 3007 | @var{spacing})} where @var{spacing} is any of the forms described | ||
| 3008 | above, the value of @var{spacing} specifies the total displayed height | ||
| 3009 | of the line, regardless of the height of the characters in it. This | ||
| 3010 | is equivalent to using the @code{line-height} property. | ||
| 3011 | |||
| 3012 | @item line-height | ||
| 3013 | @kindex line-height @r{(text property)} | ||
| 3014 | A newline can have a @code{line-height} text or overlay property that | ||
| 3015 | controls the total height of the corresponding display line. | ||
| 3016 | @c ??? Which display line is "corresponding"? | ||
| 3017 | We will call the property value @var{line-height}. | ||
| 3018 | |||
| 3019 | If @var{line-height} is 0, the newline does not contribute to the | ||
| 3020 | height of the display row; instead the height of the newline glyph is | ||
| 3021 | reduced. | ||
| 3022 | @c ??? That is not clear. Reduced how much? | ||
| 3023 | In that case, any @code{line-spacing} property on | ||
| 3024 | this newline is ignored. This can be used to tile small images or | ||
| 3025 | image slices without adding blank areas between the images. | ||
| 3026 | @c ??? Precisely which of these features does ``this'' mean? | ||
| 3027 | |||
| 3028 | If @var{line-height} is a positive integer, the value specifies the | ||
| 3029 | minimum line height in pixels. The line's ascent height is | ||
| 3030 | increased as necessary to achieve the specified height. | ||
| 3031 | |||
| 3032 | If @var{line-height} is a floating point number, the minimum line | ||
| 3033 | height is the product of @var{line-height} and the default frame line | ||
| 3034 | height. | ||
| 3035 | |||
| 3036 | If @var{line-height} is a cons @code{(@var{ratio} . @var{face})}, the | ||
| 3037 | minimum line height is calculated as @var{ratio} times the height of | ||
| 3038 | face @var{face}. The @var{ratio} is an integer or a floating point | ||
| 3039 | number. If @var{face} is @code{t}, it refers to the current face. | ||
| 3040 | |||
| 2977 | @item modification-hooks | 3041 | @item modification-hooks |
| 2978 | @cindex change hooks for a character | 3042 | @cindex change hooks for a character |
| 2979 | @cindex hooks for changing a character | 3043 | @cindex hooks for changing a character |
diff --git a/man/ChangeLog b/man/ChangeLog index 2e59da4e0f1..7b20cda2bc0 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2004-09-22 Luc Teirlinck <teirllm@auburn.edu> | ||
| 2 | |||
| 3 | * display.texi (Display Custom): Remove stray `@end defvar'. | ||
| 4 | |||
| 5 | 2004-09-23 Kim F. Storm <storm@cua.dk> | ||
| 6 | |||
| 7 | * display.texi (Display Custom): Add `overflow-newline-into-fringe', | ||
| 8 | `indicate-buffer-boundaries' and `default-indicate-buffer-boundaries'. | ||
| 9 | |||
| 1 | 2004-09-20 Richard M. Stallman <rms@gnu.org> | 10 | 2004-09-20 Richard M. Stallman <rms@gnu.org> |
| 2 | 11 | ||
| 3 | * custom.texi (Hooks): Explain using setq to clear out a hook. | 12 | * custom.texi (Hooks): Explain using setq to clear out a hook. |
diff --git a/man/calc.texi b/man/calc.texi index 4aee142d198..8c3a3c5f92c 100644 --- a/man/calc.texi +++ b/man/calc.texi | |||
| @@ -4108,7 +4108,13 @@ graphics window. For other kinds of displays, the default is to | |||
| 4108 | display the graph in Emacs itself using rough character graphics. | 4108 | display the graph in Emacs itself using rough character graphics. |
| 4109 | Press @kbd{q} when you are done viewing the character graphics. | 4109 | Press @kbd{q} when you are done viewing the character graphics. |
| 4110 | 4110 | ||
| 4111 | Next, let's add the line we got from our least-squares fit: | 4111 | Next, let's add the line we got from our least-squares fit. |
| 4112 | @ifinfo | ||
| 4113 | (If you are reading this tutorial on-line while running Calc, typing | ||
| 4114 | @kbd{g a} may cause the tutorial to disappear from its window and be | ||
| 4115 | replaced by a buffer named @samp{*Gnuplot Commands*}. The tutorial | ||
| 4116 | will reappear when you terminate GNUPLOT by typing @kbd{g q}.) | ||
| 4117 | @end ifinfo | ||
| 4112 | 4118 | ||
| 4113 | @smallexample | 4119 | @smallexample |
| 4114 | @group | 4120 | @group |
diff --git a/man/display.texi b/man/display.texi index b78eb8ab939..7d5e8ef84e0 100644 --- a/man/display.texi +++ b/man/display.texi | |||
| @@ -990,6 +990,45 @@ the value of @code{truncate-lines}. For information about side-by-side | |||
| 990 | windows, see @ref{Split Window}. See also @ref{Display,, Display, | 990 | windows, see @ref{Split Window}. See also @ref{Display,, Display, |
| 991 | elisp, The Emacs Lisp Reference Manual}. | 991 | elisp, The Emacs Lisp Reference Manual}. |
| 992 | 992 | ||
| 993 | @vindex overflow-newline-into-fringe | ||
| 994 | If the variable @code{overflow-newline-into-fringe} is | ||
| 995 | non-@code{nil} on a window system, it specifies that lines which are | ||
| 996 | exactly as wide as the window (not counting the final newline | ||
| 997 | character) shall not be broken into two lines on the display (with | ||
| 998 | just the newline on the second line). Instead, the newline | ||
| 999 | overflows into the right fringe, and the cursor will be displayed in | ||
| 1000 | the fringe when positioned on that newline. | ||
| 1001 | |||
| 1002 | @vindex indicate-buffer-boundaries | ||
| 1003 | On a window system, Emacs may indicate the buffer boundaries in the | ||
| 1004 | fringes. The buffer boundaries, i.e. first and last line in the | ||
| 1005 | buffer, can be marked with angle bitmaps in the left or right fringe. | ||
| 1006 | This can be combined with up and down arrow bitmaps shown at the top | ||
| 1007 | and bottom of the left or right fringe if the window can be scrolled | ||
| 1008 | in either direction. | ||
| 1009 | |||
| 1010 | The buffer-local variable @code{indicate-buffer-boundaries} controls | ||
| 1011 | how the buffer boundaries and window scrolling is indicated in the | ||
| 1012 | fringes. | ||
| 1013 | |||
| 1014 | If the value is @code{left} or @code{right}, both angle and arrow | ||
| 1015 | bitmaps are displayed in the left or right fringe, respectively. | ||
| 1016 | Any other non-@code{nil} value causes the bitmap on the top line to be | ||
| 1017 | displayed in the left fringe, and the bitmap on the bottom line in the | ||
| 1018 | right fringe. | ||
| 1019 | |||
| 1020 | If value is a cons @code{(angles . arrows)}, the car specifies the | ||
| 1021 | position of the angle bitmaps, and the cdr specifies the position of | ||
| 1022 | the arrow bitmaps. For example, @code{(t . right)} places the top | ||
| 1023 | angle bitmap in left fringe, the bottom angle bitmap in right fringe, | ||
| 1024 | and both arrow bitmaps in right fringe. To show just the angle | ||
| 1025 | bitmaps in the left fringe, but no arrow bitmaps, use @code{(left . nil)}. | ||
| 1026 | |||
| 1027 | @vindex default-indicate-buffer-boundaries | ||
| 1028 | The value of the variable @code{default-indicate-buffer-boundaries} | ||
| 1029 | is the default value for @code{indicate-buffer-boundaries} in buffers | ||
| 1030 | that do not override it. | ||
| 1031 | |||
| 993 | @vindex baud-rate | 1032 | @vindex baud-rate |
| 994 | The variable @code{baud-rate} holds the output speed of the | 1033 | The variable @code{baud-rate} holds the output speed of the |
| 995 | terminal, as far as Emacs knows. Setting this variable does not | 1034 | terminal, as far as Emacs knows. Setting this variable does not |
diff --git a/src/ChangeLog b/src/ChangeLog index e71a0e3217d..f7e62c1ce21 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2004-09-24 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * config.in: Rebuild. | ||
| 4 | |||
| 5 | * Makefile.in: Run setarch i386 ./temacs if exec-shield is present. | ||
| 6 | |||
| 1 | 2004-09-18 Stefan Monnier <monnier@iro.umontreal.ca> | 7 | 2004-09-18 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 8 | ||
| 3 | * xterm.c (x_term_init): Work around a bug in some X servers. | 9 | * xterm.c (x_term_init): Work around a bug in some X servers. |
diff --git a/src/Makefile.in b/src/Makefile.in index 007c0584c5a..950564f8fa4 100644 --- a/src/Makefile.in +++ b/src/Makefile.in | |||
| @@ -887,6 +887,13 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) \ | |||
| 887 | #define OBJECTS_MACHINE | 887 | #define OBJECTS_MACHINE |
| 888 | #endif | 888 | #endif |
| 889 | 889 | ||
| 890 | #ifdef HAVE_EXECSHIELD | ||
| 891 | #undef i386 | ||
| 892 | RUN_TEMACS = @SETARCH@ i386 ./temacs | ||
| 893 | #else | ||
| 894 | RUN_TEMACS = ./temacs | ||
| 895 | #endif | ||
| 896 | |||
| 890 | all: emacs${EXEEXT} OTHER_FILES | 897 | all: emacs${EXEEXT} OTHER_FILES |
| 891 | 898 | ||
| 892 | emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} | 899 | emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} |
| @@ -895,9 +902,9 @@ emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} | |||
| 895 | ln temacs${EXEEXT} emacs${EXEEXT} | 902 | ln temacs${EXEEXT} emacs${EXEEXT} |
| 896 | #else | 903 | #else |
| 897 | #ifdef HAVE_SHM | 904 | #ifdef HAVE_SHM |
| 898 | LC_ALL=C ./temacs -nl -batch -l loadup dump | 905 | LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump |
| 899 | #else /* ! defined (HAVE_SHM) */ | 906 | #else /* ! defined (HAVE_SHM) */ |
| 900 | LC_ALL=C ./temacs -batch -l loadup dump | 907 | LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump |
| 901 | #endif /* ! defined (HAVE_SHM) */ | 908 | #endif /* ! defined (HAVE_SHM) */ |
| 902 | #endif /* ! defined (CANNOT_DUMP) */ | 909 | #endif /* ! defined (CANNOT_DUMP) */ |
| 903 | -./emacs -q -batch -f list-load-path-shadows | 910 | -./emacs -q -batch -f list-load-path-shadows |
| @@ -1326,9 +1333,9 @@ bootstrap-emacs${EXEEXT}: temacs${EXEEXT} | |||
| 1326 | ln temacs${EXEEXT} bootstrap-emacs${EXEEXT} | 1333 | ln temacs${EXEEXT} bootstrap-emacs${EXEEXT} |
| 1327 | #else | 1334 | #else |
| 1328 | #ifdef HAVE_SHM | 1335 | #ifdef HAVE_SHM |
| 1329 | ./temacs -nl -batch -l loadup bootstrap | 1336 | $(RUN_TEMACS) -nl -batch -l loadup bootstrap |
| 1330 | #else /* ! defined (HAVE_SHM) */ | 1337 | #else /* ! defined (HAVE_SHM) */ |
| 1331 | ./temacs --batch --load loadup bootstrap | 1338 | $(RUN_TEMACS) --batch --load loadup bootstrap |
| 1332 | #endif /* ! defined (HAVE_SHM) */ | 1339 | #endif /* ! defined (HAVE_SHM) */ |
| 1333 | mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT} | 1340 | mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT} |
| 1334 | #endif /* ! defined (CANNOT_DUMP) */ | 1341 | #endif /* ! defined (CANNOT_DUMP) */ |
diff --git a/src/config.in b/src/config.in index 0fb4b3f3444..fac26db0a84 100644 --- a/src/config.in +++ b/src/config.in | |||
| @@ -136,6 +136,9 @@ Boston, MA 02111-1307, USA. */ | |||
| 136 | /* Define to 1 if you have the `euidaccess' function. */ | 136 | /* Define to 1 if you have the `euidaccess' function. */ |
| 137 | #undef HAVE_EUIDACCESS | 137 | #undef HAVE_EUIDACCESS |
| 138 | 138 | ||
| 139 | /* Define to 1 if this OS has exec shield. */ | ||
| 140 | #undef HAVE_EXECSHIELD | ||
| 141 | |||
| 139 | /* Define to 1 if you have the <fcntl.h> header file. */ | 142 | /* Define to 1 if you have the <fcntl.h> header file. */ |
| 140 | #undef HAVE_FCNTL_H | 143 | #undef HAVE_FCNTL_H |
| 141 | 144 | ||