1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-29 19:48:19 +00:00

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
This commit is contained in:
Miles Bader 2004-09-25 12:05:36 +00:00
commit 8f92d598fb
27 changed files with 1192 additions and 235 deletions

View File

@ -1,3 +1,8 @@
2004-09-24 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* configure.in: Check for exec-shield.
* configure: Rebuild.
2004-08-06 Andreas Schwab <schwab@suse.de>
* Makefile.in (install-arch-indep, uninstall): Add flymake.

80
configure vendored
View File

@ -310,7 +310,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
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'
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'
ac_subst_files=''
# Initialize some variables set by options.
@ -4278,6 +4278,80 @@ rm -f conftest*
echo "$as_me:$LINENO: checking for /proc/sys/kernel/exec-shield" >&5
echo $ECHO_N "checking for /proc/sys/kernel/exec-shield... $ECHO_C" >&6
if test "${ac_cv_file__proc_sys_kernel_exec_shield+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
test "$cross_compiling" = yes &&
{ { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
{ (exit 1); exit 1; }; }
if test -r "/proc/sys/kernel/exec-shield"; then
ac_cv_file__proc_sys_kernel_exec_shield=yes
else
ac_cv_file__proc_sys_kernel_exec_shield=no
fi
fi
echo "$as_me:$LINENO: result: $ac_cv_file__proc_sys_kernel_exec_shield" >&5
echo "${ECHO_T}$ac_cv_file__proc_sys_kernel_exec_shield" >&6
if test $ac_cv_file__proc_sys_kernel_exec_shield = yes; then
emacs_cv_execshield=1
else
emacs_cv_execshield=0
fi
if test "$emacs_cv_execshield" = 1; then
# Extract the first word of "setarch", so it can be a program name with args.
set dummy setarch; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_SETARCH+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
case $SETARCH in
[\\/]* | ?:[\\/]*)
ac_cv_path_SETARCH="$SETARCH" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_SETARCH="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
test -z "$ac_cv_path_SETARCH" && ac_cv_path_SETARCH="no"
;;
esac
fi
SETARCH=$ac_cv_path_SETARCH
if test -n "$SETARCH"; then
echo "$as_me:$LINENO: result: $SETARCH" >&5
echo "${ECHO_T}$SETARCH" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test "$setarch" != no; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_EXECSHIELD 1
_ACEOF
fi
fi
#### Extract some information from the operating system and machine files.
{ echo "$as_me:$LINENO: checking the machine- and system-dependent files to find out
@ -13275,7 +13349,6 @@ done
for ac_func in gethostname getdomainname dup2 \
@ -13286,7 +13359,7 @@ utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \
__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
sendto recvfrom getsockopt setsockopt getsockname getpeername \
gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \
memset memcmp memmove difftime memcpy mempcpy mblen mbrlen posix_memalign
memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5
@ -22002,6 +22075,7 @@ s,@RANLIB@,$RANLIB,;t t
s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
s,@INSTALL_INFO@,$INSTALL_INFO,;t t
s,@EGREP@,$EGREP,;t t
s,@SETARCH@,$SETARCH,;t t
s,@LIBSOUND@,$LIBSOUND,;t t
s,@SET_MAKE@,$SET_MAKE,;t t
s,@PKG_CONFIG@,$PKG_CONFIG,;t t

View File

@ -1286,6 +1286,17 @@ AC_LINK_IFELSE([main(){return 0;}],
dnl checks for Unix variants
AC_AIX
dnl check if exec-shield is present.
AC_CHECK_FILE(/proc/sys/kernel/exec-shield, emacs_cv_execshield=1,
emacs_cv_execshield=0)
if test "$emacs_cv_execshield" = 1; then
AC_PATH_PROG(SETARCH, setarch, no)
AC_SUBST(SETARCH)
if test "$setarch" != no; then
AC_DEFINE(HAVE_EXECSHIELD, 1, [Define to 1 if this OS has exec shield.])
fi
fi
#### Extract some information from the operating system and machine files.
AC_CHECKING([the machine- and system-dependent files to find out
@ -2342,7 +2353,7 @@ utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \
__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
sendto recvfrom getsockopt setsockopt getsockname getpeername \
gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \
memset memcmp memmove difftime memcpy mempcpy mblen mbrlen posix_memalign)
memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign)
AC_CHECK_HEADERS(sys/un.h)

View File

@ -436,6 +436,7 @@ feature.
% emacsclient -s foo file1
% emacsclient -s bar file2
+++
** On window systems, lines which are exactly as wide as the window
(not counting the final newline character) are no longer broken into
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.
The new user option 'overflow-newline-into-fringe' may be set to nil to
revert to the old behaviour of continuing such lines.
+++
** The buffer boundaries (i.e. first and last line in the buffer) may
now be marked with angle bitmaps in the fringes. In addition, up and
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.
year and day number, and moves to that date. Negative day numbers
count backward from the end of the year.
---
** The functions `holiday-easter-etc' and `holiday-advent' now take
arguments, and only report on the specified holiday rather than all.
This makes customization of the variable `christian-holidays' simpler,
but existing customizations may need to be updated.
** The function `simple-diary-display' now by default sets a header line.
This can be controlled through the variables `diary-header-line-flag'
and `diary-header-line-format'.
@ -2395,9 +2403,11 @@ operation.
if the file is indeed remote. (Before, the return value was t in
this case.)
+++
** The display space :width and :align-to text properties are now
supported on text terminals.
+++
** Support for displaying image slices
*** New display property (slice X Y WIDTH HEIGHT) may be used with
@ -2409,6 +2419,7 @@ specify image slice (X Y WIDTH HEIGHT).
*** New function insert-sliced-image inserts a given image as a
specified number of evenly sized slices (rows x columns).
+++
** New line-height and line-spacing properties for newline characters
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
total height of the line, i.e. a varying number of pixels are inserted
after each line to make each line exactly that many pixels high.
** The buffer local line-spacing variable may now have a float value,
which is used as a height relative to the default frame line height.
+++
** Enhancements to stretch display properties
The display property stretch specification form `(space PROPS)', where
@ -2505,6 +2516,7 @@ height) of the specified image.
The form `(+ EXPR ...)' adds up the value of the expressions.
The form `(- EXPR ...)' negates or subtracts the value of the expressions.
+++
** Normally, the cursor is displayed at the end of any overlay and
text property string that may be present at the current window
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
preferred method for defining default faces in a way that makes a good
use of the capabilities of the display.
** New function 'define-fringe-bitmap' can now be used to change the
+++
** Customizable fringe bitmaps
*** New function 'define-fringe-bitmap' can now be used to change the
built-in fringe bitmaps, as well as create new fringe bitmaps.
The return value is a number identifying the new fringe bitmap.
@ -2530,15 +2545,15 @@ To change a built-in bitmap, do (require 'fringe) and identify the
bitmap to change with the value of the corresponding symbol, like
`left-truncation-fringe-bitmap' or `continued-line-fringe-bitmap'.
** New function 'destroy-fringe-bitmap' may be used to destroy a
*** New function 'destroy-fringe-bitmap' may be used to destroy a
previously created bitmap, or restore a built-in bitmap.
** New function 'set-fringe-bitmap-face' can now be used to set a
*** New function 'set-fringe-bitmap-face' can now be used to set a
specific face to be used for a specific fringe bitmap. Normally,
this should be a face derived from the `fringe' face, specifying
the foreground color as the desired color of the bitmap.
** There are new display properties, left-fringe and right-fringe,
*** There are new display properties, left-fringe and right-fringe,
that can be used to show a specific bitmap in the left or right fringe
bitmap of the display line.
@ -2547,7 +2562,7 @@ number identifying a fringe bitmap, either built-in or as returned by
`define-fringe-bitmap', and FACE is an optional face name to be used
for displaying the bitmap.
** New function `fringe-bitmaps-at-pos' returns a cons (LEFT . RIGHT)
*** New function `fringe-bitmaps-at-pos' returns a cons (LEFT . RIGHT)
identifying the current fringe bitmaps in the display line at a given
buffer position. A nil value means no bitmap.
@ -2614,18 +2629,23 @@ return value of `get-char-property' called with those arguments and
whose cdr is the overlay in which the property was found, or nil if
it was found as a text property or not found at all.
+++ (lispref)
??? (man)
** The mouse pointer shape in void text areas (i.e. after the end of a
line or below the last line in the buffer) of the text window is now
controlled by the new variable `void-text-area-pointer'. The default
is to use the `arrow' (non-text) pointer. Other choices are `text'
(or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'.
+++
** The mouse pointer shape over an image can now be controlled by the
:pointer image property.
+++
** The mouse pointer shape over ordinary text or images may now be
controlled/overriden via the `pointer' text property.
+++
** Images may now have an associated image map via the :map property.
An image map is an alist where each element has the format (AREA ID PLIST).

View File

@ -73,8 +73,9 @@
(ucs-input-insert-char key))
(let ((last-command-char key)
(current-prefix-arg))
(condition-case nil
(call-interactively (key-binding seq))))
(condition-case err
(call-interactively (key-binding seq))
(quail-error (message "%s" (cdr err)) (beep))))
(quail-delete-region)
(throw 'non-digit (append (reverse events)
(listify-key-sequence seq))))))

View File

@ -1,3 +1,93 @@
2004-09-25 Lars Hansen <larsh@math.ku.dk>
* ls-lisp.el (ls-lisp-format): Mark file names with poperty
dired-filename.
2004-09-25 Kim F. Storm <storm@cua.dk>
* ido.el (ido-max-directory-size): New defcustom.
(ido-decorations): Add "too big" element.
(ido-directory-too-big): New dynamic var.
(ido-may-cache-directory): Don't cache big directories.
(ido-directory-too-big-p): New defun.
(ido-set-current-directory): Update ido-directory-too-big.
(ido-read-internal): Make empty ido-cur-item if too-big.
(ido-buffer-internal): Use ido-read-internal directly instead of
ido-read-buffer.
(ido-file-internal): Init ido-directory-too-big.
(ido-complete): <TAB> If ido-directory-too-big is set, clear it,
and redo completion with full list.
(ido-toggle-ignore): <C-a> If ido-directory-too-big is set, clear
it, and show completions.
(ido-all-completions): Let bind ido-directory-too-big to nil.
(ido-exhibit): Handle ido-directory-too-big.
(ido-read-buffer): Handle fallback to read-buffer. Init
ido-directory-too-big.
(ido-read-file-name, ido-read-directory-name, ido-completing-read):
Init ido-directory-too-big.
2004-09-24 Luc Teirlinck <teirllm@auburn.edu>
* subr.el (delay-mode-hooks): Doc fix.
2004-09-23 Luc Teirlinck <teirllm@auburn.edu>
* textmodes/enriched.el
(enriched-default-text-properties-local-flag): New variable.
(enriched-mode): Make sure that enabling and disabling the mode is
a no-op. Doc fix.
2004-09-23 H,Ae(Bkon Malmedal <hmalmedal@yahoo.no> (tiny change)
* calendar/holidays.el (holiday-advent): Report on a specified day
offset from advent, not just advent.
(holiday-easter-etc): Report on one specified day offset from
easter, not all easter holidays. Various Easter holidays moved to
`christian-holidays' variable in calendar.el.
* calendar/calendar.el (christian-holidays): Adapt for new
behaviour of `holiday-advent' and `holiday-easter-etc' functions.
2004-09-23 Kim F. Storm <storm@cua.dk>
* image.el (insert-sliced-image): Add doc string.
* ido.el (ido-choice-list): New dynamic var for `list' context.
(ido-context-switch-command): New dynamic var.
(ido-define-mode-map): Generalize switch between file/buffer contexts.
(ido-read-internal): Handle new `list' context.
Handle insert-buffer and insert-file ido-exit values.
(ido-buffer-internal): New arg switch-cmd. Use it to setup
ido-context-switch-command. Handle insert-file ido-exit value.
(ido-read-buffer): Set ido-context-switch-command to 'ignore
unless it is already bound by caller.
(ido-file-internal): New arg switch-cmd. Use it to setup
ido-context-switch-command. Handle insert-buffer ido-exit value.
(ido-enter-insert-buffer, ido-enter-insert-file): New commands
used for context switching.
(ido-all-completions): Handle new `list' context.
(ido-make-choice-list): Return choices for `list' context.
(ido-find-file-in-dir, ido-display-file, ido-write-file)
(ido-display-buffer, ido-kill-buffer): Disable context switching.
(ido-insert-buffer, ido-insert-file): Setup context switching.
(ido-exhibit): Handle `list' context.
(ido-read-file-name): Disable context switching. Handle fallback.
(ido-read-directory-name): Disable context switching.
(ido-completing-read): New defun like completing-read. Setup and
use new `list' context.
2004-09-20 Jesper Harder <harder@ifa.au.dk>
* progmodes/tcl.el (inferior-tcl): Use pop-to-buffer.
2004-09-21 Luc Teirlinck <teirllm@auburn.edu>
* subr.el (after-change-major-mode-hook): Doc fix.
2004-09-21 Vinicius Jose Latorre <viniciusjl@ig.com.br>
* printing.el: Doc fix. Add a new tip about the use of gsprint instead
of ghostscript for monochrome PostScript file in Windows.
2004-09-21 Kenichi Handa <handa@m17n.org>
* descr-text.el (describe-char): Checking of quail activation

View File

@ -210,13 +210,13 @@
"title \"" (symbol-name (nth 1 ydata)) "\" "
"with dots")
(setq pstyle (and (eq (car-safe pstyle) 'vec) (nth (1+ num) pstyle)))
(setq lstyle (and (eq (car-safe lstyle) 'vec) (nth (1+ num) lstyle)))
(calc-graph-set-styles
(or (and (Math-num-integerp lstyle) (math-trunc lstyle))
0)
(or (and (Math-num-integerp pstyle) (math-trunc pstyle))
(if (eq (car-safe (calc-var-value (nth 2 ydata))) 'vec)
0 -1))))))
(setq lstyle (and (eq (car-safe lstyle) 'vec) (nth (1+ num) lstyle))))
(calc-graph-set-styles
(or (and (Math-num-integerp lstyle) (math-trunc lstyle))
0)
(or (and (Math-num-integerp pstyle) (math-trunc pstyle))
(if (eq (car-safe (calc-var-value (nth 2 ydata))) 'vec)
0 -1)))))
(defun calc-graph-lookup (thing)
(if (and (eq (car-safe thing) 'var)

View File

@ -4,6 +4,7 @@
;; 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk>
;; Keywords: calendar
;; Human-Keywords: calendar, Gregorian calendar, diary, holidays
@ -1046,13 +1047,43 @@ See the documentation for `calendar-holidays' for details."
(defcustom christian-holidays
'((if all-christian-calendar-holidays
(holiday-fixed 1 6 "Epiphany"))
(holiday-easter-etc)
(holiday-easter-etc 0 "Easter Sunday")
(holiday-easter-etc -2 "Good Friday")
(holiday-easter-etc -46 "Ash Wednesday")
(if all-christian-calendar-holidays
(holiday-easter-etc -63 "Septuagesima Sunday"))
(if all-christian-calendar-holidays
(holiday-easter-etc -56 "Sexagesima Sunday"))
(if all-christian-calendar-holidays
(holiday-easter-etc -49 "Shrove Sunday"))
(if all-christian-calendar-holidays
(holiday-easter-etc -48 "Shrove Monday"))
(if all-christian-calendar-holidays
(holiday-easter-etc -47 "Shrove Tuesday"))
(if all-christian-calendar-holidays
(holiday-easter-etc -14 "Passion Sunday"))
(if all-christian-calendar-holidays
(holiday-easter-etc -7 "Palm Sunday"))
(if all-christian-calendar-holidays
(holiday-easter-etc -3 "Maundy Thursday"))
(if all-christian-calendar-holidays
(holiday-easter-etc 35 "Rogation Sunday"))
(if all-christian-calendar-holidays
(holiday-easter-etc 39 "Ascension Day"))
(if all-christian-calendar-holidays
(holiday-easter-etc 49 "Pentecost (Whitsunday)"))
(if all-christian-calendar-holidays
(holiday-easter-etc 50 "Whitmonday"))
(if all-christian-calendar-holidays
(holiday-easter-etc 56 "Trinity Sunday"))
(if all-christian-calendar-holidays
(holiday-easter-etc 60 "Corpus Christi"))
(if all-christian-calendar-holidays
(holiday-greek-orthodox-easter))
(if all-christian-calendar-holidays
(holiday-fixed 8 15 "Assumption"))
(if all-christian-calendar-holidays
(holiday-advent))
(holiday-advent 0 "Advent"))
(holiday-fixed 12 25 "Christmas")
(if all-christian-calendar-holidays
(holiday-julian 12 25 "Eastern Orthodox Christmas")))

View File

@ -1,8 +1,10 @@
;;; holidays.el --- holiday functions for the calendar package
;; Copyright (C) 1989, 90, 92, 93, 94, 1997 Free Software Foundation, Inc.
;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1997, 2004 Free
;; Software Foundation, Inc.
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk>
;; Keywords: holidays, calendar
;; 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."
(string (if date (eval string))))
(list (list date string)))))))
(defun holiday-advent ()
"Date of Advent, if visible in calendar window."
(defun holiday-advent (n string)
"Date of Nth day after advent (named STRING), if visible in calendar window."
(let ((year displayed-year)
(month displayed-month))
(increment-calendar-month month year -1)
(let ((advent (calendar-gregorian-from-absolute
(calendar-dayname-on-or-before 0
(calendar-absolute-from-gregorian
(list 12 3 year))))))
(+ n
(calendar-dayname-on-or-before
0
(calendar-absolute-from-gregorian
(list 12 3 year)))))))
(if (calendar-date-is-visible-p advent)
(list (list advent "Advent"))))))
(list (list advent string))))))
(defun holiday-easter-etc ()
"List of dates related to Easter, as visible in calendar window."
(if (and (> displayed-month 5) (not all-christian-calendar-holidays))
nil;; Ash Wednesday, Good Friday, and Easter are not visible.
(let* ((century (1+ (/ displayed-year 100)))
(shifted-epact ;; Age of moon for April 5...
(% (+ 14 (* 11 (% displayed-year 19));; ...by Nicaean rule
(- ;; ...corrected for the Gregorian century rule
(/ (* 3 century) 4))
(/ ;; ...corrected for Metonic cycle inaccuracy.
(+ 5 (* 8 century)) 25)
(* 30 century));; Keeps value positive.
30))
(adjusted-epact ;; Adjust for 29.5 day month.
(if (or (= shifted-epact 0)
(and (= shifted-epact 1) (< 10 (% displayed-year 19))))
(1+ shifted-epact)
shifted-epact))
(paschal-moon ;; Day after the full moon on or after March 21.
(- (calendar-absolute-from-gregorian (list 4 19 displayed-year))
adjusted-epact))
(abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))
(mandatory
(defun holiday-easter-etc (n string)
"Date of Nth day after Easter (named STRING), if visible in calendar window."
(let* ((century (1+ (/ displayed-year 100)))
(shifted-epact ;; Age of moon for April 5...
(% (+ 14 (* 11 (% displayed-year 19));; ...by Nicaean rule
(- ;; ...corrected for the Gregorian century rule
(/ (* 3 century) 4))
(/ ;; ...corrected for Metonic cycle inaccuracy.
(+ 5 (* 8 century)) 25)
(* 30 century));; Keeps value positive.
30))
(adjusted-epact ;; Adjust for 29.5 day month.
(if (or (= shifted-epact 0)
(and (= shifted-epact 1) (< 10 (% displayed-year 19))))
(1+ shifted-epact)
shifted-epact))
(paschal-moon ;; Day after the full moon on or after March 21.
(- (calendar-absolute-from-gregorian (list 4 19 displayed-year))
adjusted-epact))
(abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))
(mandatory
(list
(list (calendar-gregorian-from-absolute abs-easter)
"Easter Sunday")
(list (calendar-gregorian-from-absolute (- abs-easter 2))
"Good Friday")
(list (calendar-gregorian-from-absolute (- abs-easter 46))
"Ash Wednesday")))
(optional
(list
(list (calendar-gregorian-from-absolute (- abs-easter 63))
"Septuagesima Sunday")
(list (calendar-gregorian-from-absolute (- abs-easter 56))
"Sexagesima Sunday")
(list (calendar-gregorian-from-absolute (- abs-easter 49))
"Shrove Sunday")
(list (calendar-gregorian-from-absolute (- abs-easter 48))
"Shrove Monday")
(list (calendar-gregorian-from-absolute (- abs-easter 47))
"Shrove Tuesday")
(list (calendar-gregorian-from-absolute (- abs-easter 14))
"Passion Sunday")
(list (calendar-gregorian-from-absolute (- abs-easter 7))
"Palm Sunday")
(list (calendar-gregorian-from-absolute (- abs-easter 3))
"Maundy Thursday")
(list (calendar-gregorian-from-absolute (+ abs-easter 35))
"Rogation Sunday")
(list (calendar-gregorian-from-absolute (+ abs-easter 39))
"Ascension Day")
(list (calendar-gregorian-from-absolute (+ abs-easter 49))
"Pentecost (Whitsunday)")
(list (calendar-gregorian-from-absolute (+ abs-easter 50))
"Whitmonday")
(list (calendar-gregorian-from-absolute (+ abs-easter 56))
"Trinity Sunday")
(list (calendar-gregorian-from-absolute (+ abs-easter 60))
"Corpus Christi")))
(output-list
(filter-visible-calendar-holidays mandatory)))
(if all-christian-calendar-holidays
(setq output-list
(append
(filter-visible-calendar-holidays optional)
output-list)))
output-list)))
(list (calendar-gregorian-from-absolute (+ abs-easter n))
string)))
(output-list (filter-visible-calendar-holidays mandatory)))
output-list))
(defun holiday-greek-orthodox-easter ()
"Date of Easter according to the rule of the Council of Nicaea."

View File

@ -666,6 +666,14 @@ See also `ido-dir-file-cache' and `ido-save-directory-list-file'."
:type 'integer
:group 'ido)
(defcustom ido-max-directory-size 30000
"*Maximum size (in bytes) for directories to use ido completion.
If you enter a directory with a size larger than this size, ido will
not provide the normal completion. To show the completions, use C-a."
:type '(choice (const :tag "No limit" nil)
(integer :tag "Size in bytes" 30000))
:group 'ido)
(defcustom ido-rotate-file-list-default nil
"*Non-nil means that `ido' will always rotate file list to get default in front."
:type 'boolean
@ -699,9 +707,9 @@ Obsolete. Set 3rd element of `ido-decorations' instead."
:type '(choice string (const nil))
:group 'ido)
(defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No match]" " [Matched]" " [Not readable]")
(defcustom ido-decorations '( "{" "}" " | " " | ..." "[" "]" " [No match]" " [Matched]" " [Not readable]" " [Too big]")
"*List of strings used by ido to display the alternatives in the minibuffer.
There are 9 elements in this list:
There are 10 elements in this list:
1st and 2nd elements are used as brackets around the prospect list,
3rd element is the separator between prospects (ignored if ido-separator is set),
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:
can be completed using TAB,
7th element is the string displayed when there are a no matches, and
8th element is displayed if there is a single match (and faces are not used).
9th element is displayed when the current directory is non-readable."
9th element is displayed when the current directory is non-readable.
10th element is displayed when directory exceeds `ido-max-directory-size'."
:type '(repeat string)
:group 'ido)
@ -933,7 +942,7 @@ it doesn't interfere with other minibuffer usage.")
;;; Variables with dynamic bindings.
;;; Declared here to keep the byte compiler quiet.
;; Stores the current ido item type ('file, 'dir or 'buffer).
;; Stores the current ido item type ('file, 'dir, 'buffer, or 'list).
(defvar ido-cur-item)
;; Stores the current list of items that will be searched through.
@ -942,6 +951,9 @@ it doesn't interfere with other minibuffer usage.")
;; at the end of the list. Created by `ido-make-item-list'.
(defvar ido-cur-list)
;; Stores the choice list for ido-completing-read
(defvar ido-choice-list)
;; Stores the list of items which are ignored when building
;; `ido-cur-list'. It is in no specific order.
(defvar ido-ignored-list)
@ -949,6 +961,9 @@ it doesn't interfere with other minibuffer usage.")
;; Remember if current directory is non-readable (so we cannot do completion).
(defvar ido-directory-nonreadable)
;; Remember if current directory is 'huge' (so we don't want to do completion).
(defvar ido-directory-too-big)
;; Keep current item list if non-nil.
(defvar ido-keep-item-list)
@ -992,6 +1007,8 @@ it doesn't interfere with other minibuffer usage.")
;; Stores temporary state of literal find file.
(defvar ido-find-literal)
;; Set to 'ignore to inhibit switching between find-file/switch-buffer.
(defvar ido-context-switch-command)
;;; FUNCTIONS
@ -1077,6 +1094,8 @@ it doesn't interfere with other minibuffer usage.")
(defun ido-may-cache-directory (&optional dir)
(setq dir (or dir ido-current-directory))
(cond
((ido-directory-too-big-p dir)
nil)
((and (ido-is-root-directory dir)
(or ido-enable-tramp-completion
(memq system-type '(windows-nt ms-dos))))
@ -1346,8 +1365,8 @@ This function also adds a hook to the minibuffer."
(define-key map "?" 'ido-completion-help)
(when (memq ido-cur-item '(file dir))
(define-key map "\C-b" 'ido-enter-switch-buffer)
(define-key map "\C-d" 'ido-enter-dired)
(define-key map "\C-b" (or ido-context-switch-command 'ido-enter-switch-buffer))
(define-key map "\C-d" (or (and ido-context-switch-command 'ignore) 'ido-enter-dired))
(define-key map "\C-f" 'ido-fallback-command)
(define-key map [down] 'ido-next-match-dir)
(define-key map [up] 'ido-prev-match-dir)
@ -1378,8 +1397,8 @@ This function also adds a hook to the minibuffer."
)
(when (eq ido-cur-item 'buffer)
(define-key map "\C-f" (or ido-context-switch-command 'ido-enter-find-file))
(define-key map "\C-b" 'ido-fallback-command)
(define-key map "\C-f" 'ido-enter-find-file)
(define-key map "\C-k" 'ido-kill-buffer-at-head)
)
@ -1420,6 +1439,16 @@ This function also adds a hook to the minibuffer."
(file-directory-p dir)
(not (file-readable-p dir)))))
(defun ido-directory-too-big-p (dir)
;; Return t if dir is a directory, but too big to show
;; Do not check for non-readable directories via tramp, as this causes a premature
;; connect on incomplete tramp paths (after entring just method:).
(let ((ido-enable-tramp-completion nil))
(and (numberp ido-max-directory-size)
(ido-final-slash dir)
(file-directory-p dir)
(> (nth 7 (file-attributes dir)) ido-max-directory-size))))
(defun ido-set-current-directory (dir &optional subdir no-merge)
;; Set ido's current directory to DIR or DIR/SUBDIR
(setq dir (ido-final-slash dir t))
@ -1434,6 +1463,8 @@ This function also adds a hook to the minibuffer."
(if (get-buffer ido-completion-buffer)
(kill-buffer ido-completion-buffer))
(setq ido-directory-nonreadable (ido-nonreadable-directory-p dir))
(setq ido-directory-too-big (and (not ido-directory-nonreadable)
(ido-directory-too-big-p dir)))
t))
(defun ido-set-current-home (&optional dir)
@ -1618,13 +1649,20 @@ If INITIAL is non-nil, it specifies the initial input string."
ido-rescan nil))
((eq ido-cur-item 'file)
(setq ido-ignored-list nil
ido-cur-list (ido-make-file-list ido-default-item)))
ido-cur-list (and (not ido-directory-nonreadable)
(not ido-directory-too-big)
(ido-make-file-list ido-default-item))))
((eq ido-cur-item 'dir)
(setq ido-ignored-list nil
ido-cur-list (ido-make-dir-list ido-default-item)))
ido-cur-list (and (not ido-directory-nonreadable)
(not ido-directory-too-big)
(ido-make-dir-list ido-default-item))))
((eq ido-cur-item 'buffer)
(setq ido-ignored-list nil
ido-cur-list (ido-make-buffer-list ido-default-item)))
((eq ido-cur-item 'list)
(setq ido-ignored-list nil
ido-cur-list (ido-make-choice-list ido-default-item)))
(t nil))
(setq ido-rotate-temp nil)
@ -1709,7 +1747,7 @@ If INITIAL is non-nil, it specifies the initial input string."
((eq ido-exit 'keep)
(setq ido-keep-item-list t))
((memq ido-exit '(dired fallback findfile findbuffer))
((memq ido-exit '(dired fallback find-file switch-to-buffer insert-buffer insert-file))
(setq done t))
((eq ido-exit 'updir)
@ -1789,19 +1827,26 @@ If INITIAL is non-nil, it specifies the initial input string."
(exit-minibuffer))
;;; MAIN FUNCTIONS
(defun ido-buffer-internal (method &optional fallback prompt default initial)
(defun ido-buffer-internal (method &optional fallback prompt default initial switch-cmd)
;; Internal function for ido-switch-buffer and friends
(if (not ido-mode)
(call-interactively (or fallback 'switch-to-buffer))
(let ((buf (ido-read-buffer (or prompt "Buffer: ") default nil initial)))
(let* ((ido-context-switch-command switch-cmd)
(ido-current-directory nil)
(ido-directory-nonreadable nil)
(ido-directory-too-big nil)
(buf (ido-read-internal 'buffer (or prompt "Buffer: ") 'ido-buffer-history default nil initial)))
;; Choose the buffer name: either the text typed in, or the head
;; of the list of matches
(cond
((eq ido-exit 'findfile)
((eq ido-exit 'find-file)
(ido-file-internal ido-default-file-method nil nil nil nil ido-text))
((eq ido-exit 'insert-file)
(ido-file-internal 'insert 'insert-file nil "Insert file: " nil ido-text 'ido-enter-insert-buffer))
((eq ido-exit 'fallback)
(let ((read-buffer-function nil))
(call-interactively (or fallback 'switch-to-buffer))))
@ -1833,18 +1878,6 @@ If INITIAL is non-nil, it specifies the initial input string."
(set-buffer-major-mode buf))
(ido-visit-buffer buf method t))))))
;;;###autoload
(defun ido-read-buffer (prompt &optional default require-match initial)
"Replacement for the built-in `read-buffer'.
Return the name of a buffer selected.
PROMPT is the prompt to give to the user. DEFAULT if given is the default
buffer to be selected, which will go to the front of the list.
If REQUIRE-MATCH is non-nil, an existing-buffer must be selected.
If INITIAL is non-nil, it specifies the initial input string."
(let ((ido-current-directory nil)
(ido-directory-nonreadable nil))
(ido-read-internal 'buffer prompt 'ido-buffer-history default require-match initial)))
(defun ido-record-work-directory (&optional dir)
(when (and (numberp ido-max-work-directory-list) (> ido-max-work-directory-list 0))
(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."
;; Add final slash to result in case it was missing from DEFAULT-DIRECTORY.
(ido-final-slash (expand-file-name (or dir default-directory)) t))
(defun ido-file-internal (method &optional fallback default prompt item initial)
(defun ido-file-internal (method &optional fallback default prompt item initial switch-cmd)
;; Internal function for ido-find-file and friends
(unless item
(setq item 'file))
(let* ((ido-current-directory (ido-expand-directory default))
(ido-directory-nonreadable (ido-nonreadable-directory-p ido-current-directory))
(ido-directory-too-big (and (not ido-directory-nonreadable)
(ido-directory-too-big-p ido-current-directory)))
(ido-context-switch-command switch-cmd)
filename)
(cond
@ -1943,9 +1979,12 @@ If INITIAL is non-nil, it specifies the initial input string."
(read-file-name-function nil))
(call-interactively (or fallback 'find-file))))
((eq ido-exit 'findbuffer)
((eq ido-exit 'switch-to-buffer)
(ido-buffer-internal ido-default-buffer-method nil nil nil ido-text))
((eq ido-exit 'insert-buffer)
(ido-buffer-internal 'insert 'insert-buffer "Insert buffer: " nil ido-text 'ido-enter-insert-file))
((eq ido-exit 'dired)
(dired (concat ido-current-directory (or ido-text ""))))
@ -2062,6 +2101,12 @@ If INITIAL is non-nil, it specifies the initial input string."
(setq ido-exit 'refresh)
(exit-minibuffer))))
(ido-directory-too-big
(setq ido-directory-too-big nil)
(setq ido-text-init ido-text)
(setq ido-exit 'refresh)
(exit-minibuffer))
((not ido-matches)
(when ido-completion-buffer
(call-interactively (setq this-command ido-cannot-complete-command))))
@ -2165,7 +2210,9 @@ If no merge has yet taken place, toggle automatic merging option."
(defun ido-toggle-ignore ()
"Toggle ignoring files specified with `ido-ignore-files'."
(interactive)
(setq ido-process-ignore-lists (not ido-process-ignore-lists))
(if ido-directory-too-big
(setq ido-directory-too-big nil)
(setq ido-process-ignore-lists (not ido-process-ignore-lists)))
(setq ido-text-init ido-text)
(setq ido-exit 'refresh)
(exit-minibuffer))
@ -2227,13 +2274,13 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one.
(defun ido-enter-find-file ()
"Drop into find-file from buffer switching."
(interactive)
(setq ido-exit 'findfile)
(setq ido-exit 'find-file)
(exit-minibuffer))
(defun ido-enter-switch-buffer ()
"Drop into ido-switch-buffer from file switching."
(interactive)
(setq ido-exit 'findbuffer)
(setq ido-exit 'switch-to-buffer)
(exit-minibuffer))
(defun ido-enter-dired ()
@ -2242,6 +2289,18 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one.
(setq ido-exit 'dired)
(exit-minibuffer))
(defun ido-enter-insert-buffer ()
"Drop into insert buffer from insert file."
(interactive)
(setq ido-exit 'insert-buffer)
(exit-minibuffer))
(defun ido-enter-insert-file ()
"Drop into insert file from insert buffer."
(interactive)
(setq ido-exit 'insert-file)
(exit-minibuffer))
(defun ido-up-directory (&optional clear)
"Go up one directory level."
@ -2295,6 +2354,7 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one.
(not (equal dir ido-current-directory))
(file-directory-p dir)
(or (not must-match)
;; TODO. check for nonreadable and too-big.
(ido-set-matches1
(if (eq ido-cur-item 'file)
(ido-make-file-list1 dir)
@ -2552,7 +2612,8 @@ for first matching file."
(defun ido-all-completions ()
;; Return unsorted list of all competions.
(let ((ido-process-ignore-lists nil))
(let ((ido-process-ignore-lists nil)
(ido-directory-too-big nil))
(cond
((eq ido-cur-item 'file)
(ido-make-file-list1 ido-current-directory))
@ -2560,6 +2621,8 @@ for first matching file."
(ido-make-dir-list1 ido-current-directory))
((eq ido-cur-item 'buffer)
(ido-make-buffer-list1))
((eq ido-cur-item 'list)
ido-choice-list)
(t nil))))
@ -2669,6 +2732,7 @@ for first matching file."
(or ido-merge-ftp-work-directories
(not (ido-is-ftp-directory dir)))
(file-directory-p dir)
;; TODO. check for nonreadable and too-big.
(setq fl (if (eq ido-cur-item 'file)
(ido-make-file-list1 dir t)
(ido-make-dir-list1 dir t))))
@ -2722,6 +2786,20 @@ for first matching file."
(run-hooks 'ido-make-buffer-list-hook)
ido-temp-list))
(defun ido-make-choice-list (default)
;; Return the current list of choices.
;; If DEFAULT is non-nil, and corresponds to an element of choices,
;; it is put to the start of the list.
(let ((ido-temp-list ido-choice-list))
(if default
(progn
(setq ido-temp-list
(delete default ido-temp-list))
(setq ido-temp-list
(cons default ido-temp-list))))
; (run-hooks 'ido-make-choice-list-hook)
ido-temp-list))
(defun ido-to-end (items)
;; Move the elements from ITEMS to the end of `ido-temp-list'
(mapcar
@ -2735,6 +2813,8 @@ for first matching file."
(defun ido-file-name-all-completions1 (dir)
(cond
((ido-nonreadable-directory-p dir) '())
;; do not check (ido-directory-too-big-p dir) here.
;; Caller must have done that if necessary.
((and ido-enable-tramp-completion
(string-match "\\`/\\([^/:]+:\\([^/:@]+@\\)?\\)\\'" dir))
@ -3277,7 +3357,7 @@ For details of keybindings, do `\\[describe-function] ido'."
The buffer name is selected interactively by typing a substring.
For details of keybindings, do `\\[describe-function] ido'."
(interactive)
(ido-buffer-internal 'display 'display-buffer))
(ido-buffer-internal 'display 'display-buffer nil nil nil 'ignore))
;;;###autoload
(defun ido-kill-buffer ()
@ -3285,7 +3365,7 @@ For details of keybindings, do `\\[describe-function] ido'."
The buffer name is selected interactively by typing a substring.
For details of keybindings, do `\\[describe-function] ido'."
(interactive)
(ido-buffer-internal 'kill 'kill-buffer "Kill buffer: " (buffer-name (current-buffer))))
(ido-buffer-internal 'kill 'kill-buffer "Kill buffer: " (buffer-name (current-buffer)) nil 'ignore))
;;;###autoload
(defun ido-insert-buffer ()
@ -3293,7 +3373,7 @@ For details of keybindings, do `\\[describe-function] ido'."
The buffer name is selected interactively by typing a substring.
For details of keybindings, do `\\[describe-function] ido'."
(interactive)
(ido-buffer-internal 'insert 'insert-buffer "Insert buffer: "))
(ido-buffer-internal 'insert 'insert-buffer "Insert buffer: " nil nil 'ido-enter-insert-file))
;;;###autoload
(defun ido-switch-buffer-other-frame ()
@ -3311,7 +3391,7 @@ For details of keybindings, do `\\[describe-function] ido'."
(interactive "DDir: ")
(if (not (equal (substring dir -1) "/"))
(setq dir (concat dir "/")))
(ido-file-internal ido-default-file-method nil dir))
(ido-file-internal ido-default-file-method nil dir nil nil nil 'ignore))
;;;###autoload
(defun ido-find-file ()
@ -3404,7 +3484,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
The file name is selected interactively by typing a substring.
For details of keybindings, do `\\[describe-function] ido-find-file'."
(interactive)
(ido-file-internal 'display))
(ido-file-internal 'display nil nil nil nil nil 'ignore))
;;;###autoload
(defun ido-find-file-other-frame ()
@ -3426,7 +3506,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(ido-report-no-match nil)
(ido-confirm-unique-completion t)
(ido-auto-merge-work-directories-length -1))
(ido-file-internal 'write 'write-file nil "Write file: ")))
(ido-file-internal 'write 'write-file nil "Write file: " nil nil 'ignore)))
;;;###autoload
(defun ido-insert-file ()
@ -3434,7 +3514,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
The file name is selected interactively by typing a substring.
For details of keybindings, do `\\[describe-function] ido-find-file'."
(interactive)
(ido-file-internal 'insert 'insert-file nil "Insert file: "))
(ido-file-internal 'insert 'insert-file nil "Insert file: " nil nil 'ido-enter-insert-buffer))
;;;###autoload
(defun ido-dired ()
@ -3515,7 +3595,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
;; Handle explicit directory changes
(cond
((eq ido-cur-item 'buffer)
((memq ido-cur-item '(buffer list))
)
((= (length contents) 0)
@ -3571,7 +3651,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(expand-file-name "/" ido-current-directory)
"/"))
(setq refresh t))
((and ido-directory-nonreadable
((and (or ido-directory-nonreadable ido-directory-too-big)
(file-directory-p (concat ido-current-directory (file-name-directory contents))))
(ido-set-current-directory
(concat ido-current-directory (file-name-directory contents)))
@ -3633,6 +3713,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(when (and (not ido-matches)
(not ido-directory-nonreadable)
(not ido-directory-too-big)
;; ido-rescan ?
ido-process-ignore-lists
ido-ignored-list)
@ -3656,7 +3737,8 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(not (ido-is-root-directory))
(> (length contents) 1)
(not (string-match "[$]" contents))
(not ido-directory-nonreadable))
(not ido-directory-nonreadable)
(not ido-directory-too-big))
(ido-trace "merge?")
(if ido-use-merged-list
(ido-undo-merge-work-directory contents nil)
@ -3721,6 +3803,8 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(cond
(ido-directory-nonreadable
(or (nth 8 ido-decorations) " [Not readable]"))
(ido-directory-too-big
(or (nth 9 ido-decorations) " [Too big]"))
(ido-report-no-match
(nth 6 ido-decorations)) ;; [No match]
(t "")))
@ -3826,42 +3910,76 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(put 'dired-do-rename 'ido 'ignore)
;;;###autoload
(defun ido-read-buffer (prompt &optional default require-match)
"Ido replacement for the built-in `read-buffer'.
Return the name of a buffer selected.
PROMPT is the prompt to give to the user. DEFAULT if given is the default
buffer to be selected, which will go to the front of the list.
If REQUIRE-MATCH is non-nil, an existing-buffer must be selected."
(let* ((ido-current-directory nil)
(ido-directory-nonreadable nil)
(ido-directory-too-big nil)
(ido-context-switch-command 'ignore)
(buf (ido-read-internal 'buffer prompt 'ido-buffer-history default require-match)))
(if (eq ido-exit 'fallback)
(let ((read-buffer-function nil))
(read-buffer prompt default require-match))
buf)))
;;;###autoload
(defun ido-read-file-name (prompt &optional dir default-filename mustmatch initial predicate)
"Read file name, prompting with PROMPT and completing in directory DIR.
"Ido replacement for the built-in `read-file-name'.
Read file name, prompting with PROMPT and completing in directory DIR.
See `read-file-name' for additional parameters."
(cond
((or (eq predicate 'file-directory-p)
(eq (get this-command 'ido) 'dir)
(memq this-command ido-read-file-name-as-directory-commands))
(ido-read-directory-name prompt dir default-filename mustmatch initial))
((and (not (eq (get this-command 'ido) 'ignore))
(not (memq this-command ido-read-file-name-non-ido))
(or (null predicate) (eq predicate 'file-exists-p)))
(let* (filename
ido-saved-vc-hb
(vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends))
(ido-current-directory (ido-expand-directory dir))
(ido-directory-nonreadable (not (file-readable-p ido-current-directory)))
(ido-work-directory-index -1)
(ido-work-file-index -1)
(ido-find-literal nil))
(setq filename
(ido-read-internal 'file prompt 'ido-file-history default-filename mustmatch initial))
(if filename
(concat ido-current-directory filename))))
(t
(let ((read-file-name-function nil))
(read-file-name prompt dir default-filename mustmatch initial predicate)))))
(let (filename)
(cond
((or (eq predicate 'file-directory-p)
(eq (get this-command 'ido) 'dir)
(memq this-command ido-read-file-name-as-directory-commands))
(setq filename
(ido-read-directory-name prompt dir default-filename mustmatch initial)))
((and (not (eq (get this-command 'ido) 'ignore))
(not (memq this-command ido-read-file-name-non-ido))
(or (null predicate) (eq predicate 'file-exists-p)))
(let* (ido-saved-vc-hb
(ido-context-switch-command 'ignore)
(vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends))
(ido-current-directory (ido-expand-directory dir))
(ido-directory-nonreadable (not (file-readable-p ido-current-directory)))
(ido-directory-too-big (and (not ido-directory-nonreadable)
(ido-directory-too-big-p ido-current-directory)))
(ido-work-directory-index -1)
(ido-work-file-index -1)
(ido-find-literal nil))
(setq ido-exit nil)
(setq filename
(ido-read-internal 'file prompt 'ido-file-history default-filename mustmatch initial))
(cond
((eq ido-exit 'fallback)
(setq filename 'fallback))
(filename
(setq filename
(concat ido-current-directory filename))))))
(t
(setq filename 'fallback)))
(if (eq filename 'fallback)
(let ((read-file-name-function nil))
(read-file-name prompt dir default-filename mustmatch initial predicate))
filename)))
;;;###autoload
(defun ido-read-directory-name (prompt &optional dir default-dirname mustmatch initial)
"Read directory name, prompting with PROMPT and completing in directory DIR.
See `read-file-name' for additional parameters."
"Ido replacement for the built-in `read-directory-name'.
Read directory name, prompting with PROMPT and completing in directory DIR.
See `read-directory-name' for additional parameters."
(let* (filename
(ido-context-switch-command 'ignore)
ido-saved-vc-hb
(ido-current-directory (ido-expand-directory dir))
(ido-directory-nonreadable (not (file-readable-p ido-current-directory)))
(ido-directory-too-big (and (not ido-directory-nonreadable)
(ido-directory-too-big-p ido-current-directory)))
(ido-work-directory-index -1)
(ido-work-file-index -1))
(setq filename
@ -3871,5 +3989,29 @@ See `read-file-name' for additional parameters."
ido-current-directory
(concat ido-current-directory filename)))))
;;;###autoload
(defun ido-completing-read (prompt choices &optional predicate require-match initial-input hist def)
"Ido replacement for the built-in `completing-read'.
Read a string in the minibuffer with ido-style completion.
PROMPT is a string to prompt with; normally it ends in a colon and a space.
CHOICES is a list of strings which are the possible completions.
PREDICATE is currently ignored; it is included to be compatible
with `completing-read'.
If REQUIRE-MATCH is non-nil, the user is not allowed to exit unless
the input is (or completes to) an element of CHOICES or is null.
If the input is null, `ido-completing-read' returns DEF, or an empty
string if DEF is nil, regardless of the value of REQUIRE-MATCH.
If INITIAL-INPUT is non-nil, insert it in the minibuffer initially,
with point positioned at the end.
HIST, if non-nil, specifies a history list.
DEF, if non-nil, is the default value."
(let ((ido-current-directory nil)
(ido-directory-nonreadable nil)
(ido-directory-too-big nil)
(ido-context-switch-command 'ignore)
(ido-choice-list choices))
(ido-read-internal 'list prompt hist def require-match initial-input)))
;;; arch-tag: b63a3500-1735-41bd-8a01-05373f0864da
;;; ido.el ends here

View File

@ -228,6 +228,15 @@ height of the image; integer values are taken as pixel values."
(defun insert-sliced-image (image &optional string area rows cols)
"Insert IMAGE into current buffer at point.
IMAGE is displayed by inserting STRING into the current buffer
with a `display' property whose value is the image. STRING is
defaulted if you omit it.
AREA is where to display the image. AREA nil or omitted means
display it in the text area, a value of `left-margin' means
display it in the left marginal area, a value of `right-margin'
means display it in the right marginal area.
The image is automatically split into ROW x COLS slices."
(unless string (setq string " "))
(unless (eq (car-safe image) 'image)
(error "Not an image: %s" image))

View File

@ -534,7 +534,7 @@ SWITCHES, TIME-INDEX and NOW give the full switch list and time data."
" "
(ls-lisp-format-time file-attr time-index now)
" "
file-name
(propertize file-name 'dired-filename t)
(if (stringp file-type) ; is a symbolic link
(concat " -> " file-type))
"\n"

View File

@ -5,13 +5,13 @@
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Time-stamp: <2004/07/20 21:44:43 vinicius>
;; Time-stamp: <2004/09/21 22:51:58 vinicius>
;; Keywords: wp, print, PostScript
;; Version: 6.8
;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/
(defconst pr-version "6.8"
"printing.el, v 6.8 <2004/07/12 vinicius>
"printing.el, v 6.8 <2004/09/21 vinicius>
Please send all bug fixes and enhancements to
Vinicius Jose Latorre <viniciusjl@ig.com.br>
@ -259,6 +259,17 @@ Please send all bug fixes and enhancements to
;; PostScript printer. So, please, don't include this printer in
;; `pr-txt-printer-alist' (which see).
;;
;; 5. Use gsprint instead of ghostscript to print monochrome PostScript files
;; in Windows. The gsprint utility is faster than ghostscript to print
;; monochrome PostScript.
;;
;; The efficiency is similar to print non-monochrome PostScript file.
;;
;; Also the gsprint utility comes together with gsview distribution.
;;
;; For more information about gsprint see
;; `http://www.cs.wisc.edu/~ghost/gsview/gsprint.htm'.
;;
;;
;; Using `printing'
;; ----------------
@ -922,6 +933,7 @@ Please send all bug fixes and enhancements to
;;
;; gswin32, gsview32
;; `http://www.gnu.org/software/ghostscript/ghostscript.html'
;; gsprint `http://www.cs.wisc.edu/~ghost/gsview/gsprint.htm'.
;; enscript `http://people.ssh.fi/mtr/genscript/'
;; psnup `http://www.dcs.ed.ac.uk/home/ajcd/psutils/index.html'
;; redmon `http://www.cs.wisc.edu/~ghost/redmon/'
@ -930,6 +942,9 @@ Please send all bug fixes and enhancements to
;; Acknowledgments
;; ---------------
;;
;; Thanks to Lennart Borgman <lennart.borgman.073@student.lu.se> for gsprint
;; suggestion (see tip 5 in section Tips).
;;
;; Thanks to Drew Adams <drew.adams@oracle.com> for suggestions:
;; - directory processing.
;; - `pr-path-alist' variable.

View File

@ -1,6 +1,6 @@
;;; tcl.el --- Tcl code editing commands for Emacs
;; Copyright (C) 1994,98,1999,2000,01,02,2003 Free Software Foundation, Inc.
;; Copyright (C) 1994,98,1999,2000,01,02,2003,2004 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Author: Tom Tromey <tromey@redhat.com>
@ -1104,15 +1104,13 @@ See documentation for function `inferior-tcl-mode' for more information."
(list (if current-prefix-arg
(read-string "Run Tcl: " tcl-application)
tcl-application)))
(if (not (comint-check-proc "*inferior-tcl*"))
(progn
(set-buffer (apply (function make-comint) "inferior-tcl" cmd nil
tcl-command-switches))
(inferior-tcl-mode)))
(make-local-variable 'tcl-application)
(setq tcl-application cmd)
(unless (comint-check-proc "*inferior-tcl*")
(set-buffer (apply (function make-comint) "inferior-tcl" cmd nil
tcl-command-switches))
(inferior-tcl-mode))
(set (make-local-variable 'tcl-application) cmd)
(setq inferior-tcl-buffer "*inferior-tcl*")
(switch-to-buffer "*inferior-tcl*"))
(pop-to-buffer "*inferior-tcl*"))
(defalias 'run-tcl 'inferior-tcl)

View File

@ -1938,8 +1938,7 @@ in BODY."
(put 'delay-mode-hooks 'permanent-local t)
(defvar after-change-major-mode-hook nil
"Mode independent hook run at the end of major mode functions.
This is run just before the mode dependent hooks.")
"Normal hook run at the very end of major mode functions.")
(defun run-mode-hooks (&rest hooks)
"Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS.
@ -1959,6 +1958,8 @@ Major mode functions should use this."
(defmacro delay-mode-hooks (&rest body)
"Execute BODY, but delay any `run-mode-hooks'.
These hooks will be executed by the first following call to
`run-mode-hooks' that occurs outside any `delayed-mode-hooks' form.
Only affects hooks run in the current buffer."
(declare (debug t))
`(progn

View File

@ -154,6 +154,12 @@ them and their old values to `enriched-old-bindings'."
The value is a list of \(VAR VALUE VAR VALUE...).")
(make-variable-buffer-local 'enriched-old-bindings)
;; The next variable is buffer local if and only if Enriched mode is
;; enabled. The buffer local value records whether
;; `default-text-properties' should remain buffer local when disabling
;; Enriched mode. For technical reasons, the default value should be t.
(defvar enriched-default-text-properties-local-flag t)
;; Technical internal variable. Bound to t if `enriched-mode' is
;; being rerun by a major mode to allow it to restore buffer-local
;; variables and to correctly update `enriched-old-bindings'.
@ -169,7 +175,7 @@ The value is a list of \(VAR VALUE VAR VALUE...).")
"Minor mode for editing text/enriched files.
These are files with embedded formatting information in the MIME standard
text/enriched format.
Turning the mode on runs `enriched-mode-hook'.
Turning the mode on or off runs `enriched-mode-hook'.
More information about Enriched mode is available in the file
etc/enriched.doc in the Emacs distribution directory.
@ -183,7 +189,11 @@ Commands:
(setq buffer-file-format (delq 'text/enriched buffer-file-format))
;; restore old variable values
(while enriched-old-bindings
(set (pop enriched-old-bindings) (pop enriched-old-bindings))))
(set (pop enriched-old-bindings) (pop enriched-old-bindings)))
(unless enriched-default-text-properties-local-flag
(kill-local-variable 'default-text-properties))
(kill-local-variable 'enriched-default-text-properties-local-flag)
(unless use-hard-newlines (use-hard-newlines 0)))
((and (memq 'text/enriched buffer-file-format)
(not enriched-rerun-flag))
@ -196,7 +206,11 @@ Commands:
;; These will be restored if we exit Enriched mode.
(setq enriched-old-bindings
(list 'buffer-display-table buffer-display-table
'default-text-properties default-text-properties))
'default-text-properties default-text-properties
'use-hard-newlines use-hard-newlines))
(make-local-variable 'enriched-default-text-properties-local-flag)
(setq enriched-default-text-properties-local-flag
(local-variable-p 'default-text-properties))
(make-local-variable 'default-text-properties)
(setq buffer-display-table enriched-display-table)
(use-hard-newlines 1 (if enriched-rerun-flag 'never nil))

View File

@ -1,3 +1,62 @@
2004-09-25 Richard M. Stallman <rms@gnu.org>
* text.texi (Special Properties): Cleanups in `cursor'.
Rewrites in `line-height' and `line-spacing'; exchange them.
* display.texi (Fringes): Rewrite previous change.
(Fringe Bitmaps): Merge text from Display Fringe Bitmaps. Rewrite.
(Display Fringe Bitmaps): Node deleted, text moved.
(Customizing Bitmaps): Split off from Fringe Bitmaps. Rewrite.
(Scroll Bars): Clarify set-window-scroll-bars.
(Pointer Shape): Rewrite.
(Specified Space): Clarify :align-to, etc.
(Pixel Specification): Use @var. Clarify new text.
(Other Display Specs): Clarify `slice'.
(Image Descriptors): Cleanups.
(Showing Images): Cleanups.
2004-09-24 Luc Teirlinck <teirllm@auburn.edu>
* hooks.texi (Standard Hooks): Add `after-change-major-mode-hook'.
* modes.texi: Various minor changes in addition to:
(Major Mode Conventions): Final call to `run-mode-hooks' should
not be inside the `delay-mode-hooks' form.
(Mode Hooks): New node.
(Hooks): Delete obsolete example.
Move definitions of `run-mode-hooks' and `delay-mode-hooks' to new
node "Mode Hooks".
2004-09-22 Luc Teirlinck <teirllm@auburn.edu>
* display.texi: Correct various typos.
(Display): Rename node "Pointer Shapes" to "Pointer
Shape". (There is already a node called "Pointer Shapes" in
frames.texi.)
(Images): Remove non-existent node "Image Slices" from menu.
2004-09-23 Kim F. Storm <storm@cua.dk>
* text.texi (Special Properties): Add `cursor', `pointer',
`line-height', and `line-spacing' properties.
* display.texi (Display): Add 'Fringe Bitmaps' and 'Pointer
Shapes' to menu.
(Standard Faces): Doc fix for fringe face.
(Fringes): Add `overflow-newline-into-fringe' and
'indicate-buffer-boundaries'.
(Fringe Bitmaps, Pointer Shapes): New nodes.
(Display Property): Add 'Pixel Specification' and 'Display Fringe
Bitmaps' to menu.
(Specified Space): Describe pixel width and height.
(Pixel Specification): New node.
(Other Display Specs): Add `slice' property.
(Display Fringe Bitmaps): New node.
(Images): Add 'Image Slices' to menu.
(Image Descriptors): Add `:pointer' and `:map' properties.
(Showing Images): Add slice arg to `insert-image'. Add
'insert-sliced-image'.
2004-09-20 Richard M. Stallman <rms@gnu.org>
* commands.texi (Key Sequence Input):

View File

@ -25,7 +25,10 @@ that Emacs presents to the user.
* Faces:: A face defines a graphics style for text characters:
font, colors, etc.
* Fringes:: Controlling window fringes.
* Fringe Bitmaps:: Displaying bitmaps in the window fringes.
* Customizing Bitmaps:: Specifying your own bitmaps to use in the fringes.
* Scroll Bars:: Controlling vertical scroll bars.
* Pointer Shape:: Controlling the mouse pointer shape.
* Display Property:: Enabling special display features.
* Images:: Displaying images in Emacs buffers.
* Buttons:: Adding clickable buttons to Emacs buffers.
@ -1486,7 +1489,7 @@ font. (This works only on certain systems.)
@item fringe
@kindex fringe @r{(face name)}
This face controls the colors of window fringes, the thin areas on
This face controls the default colors of window fringes, the thin areas on
either side that are used to display continuation and truncation glyphs.
@item minibuffer-prompt
@ -2560,7 +2563,7 @@ non-@code{nil} value.
@defvar fringes-outside-margins
If the value is non-@code{nil}, the frames appear outside
the display margins.
the display margins.
@end defvar
@defvar left-fringe-width
@ -2596,6 +2599,191 @@ window is used. The value has the form @code{(@var{left-width}
@var{right-width} @var{frames-outside-margins})}.
@end defun
@defvar overflow-newline-into-fringe
If this is non-@code{nil}, lines exactly as wide as the window (not
counting the final newline character) are not continued. Instead,
when point is at the end of the line, the cursor appears in the right
fringe.
@end defvar
@node Fringe Bitmaps
@section Fringe Bitmaps
@cindex fringe bitmaps
@cindex bitmaps, fringe
The @dfn{fringe bitmaps} are tiny icons Emacs displays in the window
fringe (on a graphic display) to indicate truncated or continued
lines, buffer boundaries, overlay arrow, etc. The fringe bitmaps are
shared by all frames and windows. You can redefine the built-in
fringe bitmaps, and you can define new fringe bitmaps. However, Emacs
can handle only 255 different fringe bitmaps.
The way to display a bitmap in the left or right fringes for a given
line in a window is by specifying the @code{display} property for one
of the characters that appears in it. Use a display specification of
the form @code{(left-fringe @var{bitmap} [@var{face}])} or
@code{(right-fringe @var{bitmap} [@var{face}])} (@pxref{Display
Property}). Here, @var{bitmap} is an integer identifying the bitmap
you want, and @var{face} (which is optional) is the name of the face
whose colors should be used for displaying the bitmap.
@c ??? Shouldn't the symbol name be used?
These are the symbols identify the standard fringe bitmaps.
Evaluate @code{(require 'fringe)} to define them. Each symbol's
value is an integer that identifies the corresponding bitmap.
@table @asis
@item Truncation and continuation line bitmaps:
@code{left-truncation-fringe-bitmap},
@code{right-truncation-fringe-bitmap},
@code{continued-line-fringe-bitmap},
@code{continuation-line-fringe-bitmap}.
@item Buffer indication bitmaps:
@code{up-arrow-fringe-bitmap},
@code{down-arrow-fringe-bitmap},
@code{top-left-angle-fringe-bitmap},
@code{top-right-angle-fringe-bitmap},
@code{bottom-left-angle-fringe-bitmap},
@code{bottom-right-angle-fringe-bitmap},
@code{left-bracket-fringe-bitmap},
@code{right-bracket-fringe-bitmap}.
@item Empty line indication bitmap:
@code{empty-line-fringe-bitmap}.
@item Overlay arrow bitmap:
@code{overlay-arrow-fringe-bitmap}.
@item Bitmaps for displaying the cursor in right fringe:
@code{filled-box-cursor-fringe-bitmap},
@code{hollow-box-cursor-fringe-bitmap},
@code{hollow-square-fringe-bitmap}, @code{bar-cursor-fringe-bitmap},
@code{hbar-cursor-fringe-bitmap}.
@item Value indicating that no fringe bitmap is present:
@code{no-fringe-bitmap}.
@c ??? I don't understand what that means.
@c ??? Where would you find that value?
@item Value indicating a reference to an undefined bitmap:
@code{undef-fringe-bitmap}.
@c ??? I don't understand what that means.
@c ??? Where would you find that value?
@end table
@defun fringe-bitmaps-at-pos &optional pos window
This function returns the fringe bitmaps of the display line
containing position @var{pos} in window @var{window}. The return
value has the form @code{(@var{left} . @var{right})}, where @var{left}
is a list of fringe bitmap numbers for left fringe, and @var{right} is
similar for the right fringe. These bitmap numbers are usually values
of symbols such as the ones listed above.
@c ??? Why not return a list of symbols that identify the bitmaps?
@c ??? This is Lisp, not C.
The value is @code{nil} if @var{pos} is not visible in @var{window}.
If @var{window} is @code{nil}, that stands for the selected window.
If @var{pos} is @code{nil}, that stands for the value of point in
@var{window}.
@end defun
@node Customizing Bitmaps
@section Customizing Fringe Bitmaps
@c ??? Why not pass a symbol as the first argument
@c ??? and define that symbol. It would be cleaner.
@defun define-fringe-bitmap bits &optional height width align bitmap
This function defines a new fringe bitmap, or replaces an existing
bitmap.
The argument @var{bits} specifies the image to use. It should be
either a string or a vector of integers, where each element (an
integer) corresponds to one row of the bitmap. Each bit of an integer
corresponds to one pixel of the bitmap.
@c ??? Is the low bit the leftmost or the rightmost bit?
The height is normally the length of @var{bits}. However, you
can specify a different height with non-@code{nil} @var{height}. The width
is normally 8, but you can specify a different width with non-@code{nil}
@var{width}. The width must be an integer between 1 and 16.
The argument @var{align} specifies the positioning of the bitmap
relative to the range of rows where it is used; the default is to
center the bitmap. The allowed values are @code{top}, @code{center},
or @code{bottom}.
The @var{align} argument may also be a list @code{(@var{align}
@var{periodic})} where @var{align} is intepreted as described above.
If @var{periodic} is non-@code{nil}, it specifies that the rows in
@code{bits} should be repeated enough times to reach the specified
height.
The argument @var{bitmap} specifies an existing bitmap to redefine.
You should pass the value of the symbol that identifies the bitmap.
The return value on success is an integer identifying the new bitmap.
You should save that integer in a variable so it can be used to select
this bitmap. The value can also be @code{nil} of there are no more
free bitmap slots.
@c ??? Why not signal an error? That would be cleaner.
@end defun
@defun destroy-fringe-bitmap bitmap
This function destroy the fringe bitmap identified by @var{bitmap}.
If @var{bitmap} identifies a standard fringe bitmap, it actually
restores the standard definition of that bitmap, instead of
eliminating it entirely.
@end defun
@defun set-fringe-bitmap-face bitmap &optional face
This sets the face for the fringe bitmap @var{bitmap} to @var{face}.
If @var{face} is @code{nil}, it selects the @code{fringe} face. The
bitmap's face controls the color to draw it in.
The face you use here should be derived from @code{fringe}, and should
specify only the foreground color.
@end defun
@defvar indicate-buffer-boundaries
This buffer-local variable controls how the buffer boundaries and
window scrolling are indicated in the window fringes.
Emacs can indicate the buffer boundaries---that is, the first and last
line in the buffer---with angle icons when they appear on the screen.
In addition, Emacs can display an up-arrow in the fringe to show
that there is text above the screen, and a down-arrow to show
there is text below the screen.
There are four kinds of basic values:
@table @asis
@item @code{nil}
Don't display the icons.
@item @code{left}
Display them in the left fringe.
@item @code{right}
Display them in the right fringe.
@item @var{anything-else}
Display the icon at the top of the window top in the left fringe, and other
in the right fringe.
@end table
If value is a cons @code{(@var{angles} . @var{arrows})}, @var{angles}
controls the angle icons, and @var{arrows} controls the arrows. Both
@var{angles} and @var{arrows} work according to the table above.
Thus, @code{(t . right)} places the top angle icon in the left
fringe, the bottom angle icon in the right fringe, and both arrows in
the right fringe.
@end defvar
@defvar default-indicate-buffer-boundaries
The value of this variable is the default value for
@code{indicate-buffer-boundaries} in buffers that do not override it.
@end defvar
@node Scroll Bars
@section Scroll Bars
@ -2609,18 +2797,19 @@ You can also control this for individual windows. Call the function
@code{set-window-scroll-bars} to specify what to do for a specific window:
@defun set-window-scroll-bars window width &optional vertical-type horizontal-type
Set width and type of scroll bars of window @var{window}.
If @var{window} is @code{nil}, the selected window is used.
This function sets the width and type of scroll bars for window
@var{window}.
@var{width} specifies the scroll bar width in pixels (@code{nil} means
use whatever is specified for width for the frame).
@var{vertical-type} specifies whether to have a vertical scroll bar
and, if so, where. The possible values are @code{left}, @code{right}
and @code{nil}, just like the values of the
@code{vertical-scroll-bars} frame parameter.
use the width specified for the frame). @var{vertical-type} specifies
whether to have a vertical scroll bar and, if so, where. The possible
values are @code{left}, @code{right} and @code{nil}, just like the
values of the @code{vertical-scroll-bars} frame parameter.
The argument @var{horizontal-type} is meant to specify whether and
where to have horizontal scroll bars, but since they are not
implemented, it has no effect.
implemented, it has no effect. If @var{window} is @code{nil}, the
selected window is used.
@end defun
@defun window-scroll-bars &optional window
@ -2644,6 +2833,26 @@ in a buffer that is already visible in a window, you can make the
window take note of the new values by calling @code{set-window-buffer}
specifying the same buffer that is already displayed.
@node Pointer Shape
@section Pointer Shape
Normally, the mouse pointer has the @code{text} shape over text and
the @code{arrow} shape over window areas which do not correspond to
any buffer text. You can specify the mouse pointer shape over text or
images via the @code{pointer} text property, and for images with the
@code{:pointer} and @code{:map} image properties.
The available pointer shapes are: @code{text} (or @code{nil}),
@code{arrow}, @code{hand}, @code{vdrag}, @code{hdrag},
@code{modeline}, and @code{hourglass}.
@defvar void-text-area-pointer
@tindex void-text-area-pointer
This variable specifies the mouse pointer shape in void text areas,
i.e. the areas after the end of a line or below the last line in the
buffer. The default is to use the @code{arrow} (non-text) pointer.
@end defvar
@node Display Property
@section The @code{display} Property
@cindex display specification
@ -2659,6 +2868,7 @@ they mean.
@menu
* Specified Space:: Displaying one space with a specified width.
* Pixel Specification:: Specifying space width or height in pixels.
* Other Display Specs:: Displaying an image; magnifying text; moving it
up or down on the page; adjusting the width
of spaces within text.
@ -2683,9 +2893,10 @@ can use in @var{props} to specify the weight of the space:
@table @code
@item :width @var{width}
Specifies that the space width should be @var{width} times the normal
character width. @var{width} can be an integer or floating point
number.
If @var{width} is an integer or floating point number, it specifies
that the space width should be @var{width} times the normal character
width. @var{width} can also be a @dfn{pixel width} specification
(@pxref{Pixel Specification}).
@item :relative-width @var{factor}
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
character, multiplied by @var{factor}.
@item :align-to @var{hpos}
Specifies that the space should be wide enough to reach @var{hpos}. The
value @var{hpos} is measured in units of the normal character width. It
may be an integer or a floating point number.
Specifies that the space should be wide enough to reach @var{hpos}.
If @var{hpos} is a number, it is measured in units of the normal
character width. @var{hpos} can also be a @dfn{pixel width}
specification (@pxref{Pixel Specification}).
@end table
You should use one and only one of the above properties. You can
also specify the height of the space, with other properties:
also specify the height of the space, with these properties:
@table @code
@item :height @var{height}
Specifies the height of the space, as @var{height},
measured in terms of the normal line height.
Specifies the height of the space.
If @var{height} is an integer or floating point number, it specifies
that the space height should be @var{height} times the normal character
height. The @var{height} may also be a @dfn{pixel height} specification
(@pxref{Pixel Specification}).
@item :relative-height @var{factor}
Specifies the height of the space, multiplying the ordinary height
of the text having this display specification by @var{factor}.
@item :ascent @var{ascent}
Specifies that @var{ascent} percent of the height of the space should be
considered as the ascent of the space---that is, the part above the
baseline. The value of @var{ascent} must be a non-negative number no
greater than 100.
If the value of @var{ascent} is a non-negative number no greater than
100, it specifies that @var{ascent} percent of the height of the space
should be considered as the ascent of the space---that is, the part
above the baseline. The ascent may also be specified in pixel units
with a @dfn{pixel ascent} specification (@pxref{Pixel Specification}).
@end table
Don't use both @code{:height} and @code{:relative-height} together.
The @code{:height} and @code{:align-to} properties are supported on
non-graphic terminals, but the other space properties in this section
are not.
@node Pixel Specification
@subsection Pixel Specification for Spaces
@cindex spaces, pixel specification
The value of the @code{:width}, @code{:align-to}, @code{:height},
and @code{:ascent} properties can be a special kind of expression that
is evaluated during redisplay. The result of the evaluation is used
as an absolute number of pixels.
The following expressions are supported:
@example
@group
@var{expr} ::= @var{num} | (@var{num}) | @var{unit} | @var{elem} | @var{pos} | IMAGE | @var{form}
@var{num} ::= @var{integer} | @var{float} | @var{symbol}
@var{unit} ::= in | mm | cm | width | height
@var{elem} ::= left-fringe | right-fringe | left-margin | right-margin
| scroll-bar | text
@var{pos} ::= left | center | right
@var{form} ::= (@var{num} . @var{expr}) | (@var{op} @var{expr} ...)
@var{op} ::= + | -
@end group
@end example
The form @var{num} specifies a fraction of the default frame font
height or width. The form @code{(@var{num})} specifies an absolute
number of pixels. If @var{num} is a symbol, @var{symbol}, its
buffer-local variable binding is used.
The @code{in}, @code{mm}, and @code{cm} units specify the number of
pixels per inch, millimeter, and centimeter, respectively. The
@code{width} and @code{height} units correspond to the default width
and height of the current face. An image specification @code{IMAGE}
corresponds to the width or height of the image.
The @code{left-fringe}, @code{right-fringe}, @code{left-margin},
@code{right-margin}, @code{scroll-bar}, and @code{text} elements
specify to the width of the corresponding area of the window.
The @code{left}, @code{center}, and @code{right} positions can be
used with @code{:align-to} to specify a position relative to the left
edge, center, or right edge of the text area.
Any of the above window elements (except @code{text}) can also be
used with @code{:align-to} to specify that the position is relative to
the left edge of the given area. Once the base offset for a relative
position has been set (by the first occurrence of one of these
symbols), further occurences of these symbols are interpreted as the
width of the specified area. For example, to align to the center of
the left-margin, use
@example
:align-to (+ left-margin (0.5 . left-margin))
@end example
If no specific base offset is set for alignment, it is always relative
to the left edge of the text area. For example, @samp{:align-to 0} in a
header-line aligns with the first text column in the text area.
A value of the form @code{(@var{num} . @var{expr})} stands
multiplying the values of @var{num} and @var{expr}. For example,
@code{(2 . in)} specifies a width of 2 inches, while @code{(0.5 .
IMAGE)} specifies half the width (or height) of the specified image.
The form @code{(+ @var{expr} ...)} adds up the value of the
expressions. The form @code{(- @var{expr} ...)} negates or subtracts
the value of the expressions.
@node Other Display Specs
@subsection Other Display Specifications
Here are the other sorts of display specifications that you can use
in the @code{display} text property.
@table @code
@item (image . @var{image-props})
This is in fact an image descriptor (@pxref{Images}). When used as a
display specification, it means to display the image instead of the text
that has the display specification.
@item (slice @var{x} @var{y} @var{width} @var{height})
This specification together with @code{image} specifies a @dfn{slice}
(a partial area) of the image to display. The elements @var{y} and
@var{x} specify the top left corner of the slice, within the image;
@var{width} and @var{height} specify the width and height of the
slice. Integer values are numbers of pixels. A floating point number
in the range 0.0--1.0 stands for that fraction of the width or height
of the entire image.
@item ((margin nil) @var{string})
@itemx @var{string}
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.
If @var{mask} is @code{nil}, remove a mask from the image, if it has
one. Images in some formats include a mask which can be removed by
specifying @code{:mask nil}.
@item :pointer @var{shape}
This specifies the pointer shape when the mouse pointer is over this
image. @xref{Pointer Shapes}, for available pointer shapes.
@item :map @var{map}
This associates an image map of @dfn{hot spots} with this image.
An image map is an alist where each element has the format
@code{(@var{area} @var{id} @var{plist})}. An @var{area} is specified
as either a rectangle, a circle, or a polygon.
A rectangle is a cons
@code{(rect . ((@var{x0} . @var{y0}) . (@var{x1} . @var{y1})))}
which specifies the pixel coordinates of the upper left and bottom right
corners of the rectangle area.
A circle is a cons
@code{(circle . ((@var{x0} . @var{y0}) . @var{r}))}
which specifies the center and the radius of the circle; @var{r} may
be a float or integer.
A polygon is a cons
@code{(poly . [@var{x0} @var{y0} @var{x1} @var{y1} ...])}
where each pair in the vector describes one corner in the polygon.
When the mouse pointer is above a hot-spot area of an image, the
@var{plist} of that hot-spot is consulted; if it contains a @code{help-echo}
property it defines a tool-tip for the hot-spot, and if it contains
a @code{pointer} property, it defines the shape of the mouse cursor when
it is over the hot-spot.
@xref{Pointer Shapes}, for available pointer shapes.
When you click the mouse when the mouse pointer is over a hot-spot, an
event is composed by combining the @var{id} of the hot-spot with the
mouse event; for instance, @code{[area4 mouse-1]} if the hot-spot's
@var{id} is @code{area4}.
@end table
@defun image-mask-p spec &optional frame
@ -3372,7 +3710,7 @@ The image is looked for first on @code{load-path} and then in
property yourself, but it is easier to use the functions in this
section.
@defun insert-image image &optional string area
@defun insert-image image &optional string area slice
This function inserts @var{image} in the current buffer at point. The
value @var{image} should be an image descriptor; it could be a value
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;
@code{nil} or omitted, the image is displayed at point within the
buffer's text.
The argument @var{slice} specifies a slice of the image to insert. If
@var{slice} is @code{nil} or omitted the whole image is inserted.
Otherwise, @var{slice} is a list @code{(@var{x} @var{y} @var{width}
@var{height})} which specifies the @var{x} and @var{y} positions and
@var{width} and @var{height} of the image area to insert. Integer
values are in units of pixels. A floating point number in the range
0.0--1.0 stands for that fraction of the width or height of the entire
image.
Internally, this function inserts @var{string} in the buffer, and gives
it a @code{display} property which specifies @var{image}. @xref{Display
Property}.
@end defun
@defun insert-sliced-image image &optional string area rows cols
This function inserts @var{image} in the current buffer at point, like
@code{insert-image}, but splits the image into @var{rows}x@var{cols}
equally sized slices.
@end defun
@defun put-image image pos &optional string area
This function puts image @var{image} in front of @var{pos} in the
current buffer. The argument @var{pos} should be an integer or a
@ -3498,7 +3851,7 @@ entries).
* Making Buttons:: Adding buttons to Emacs buffers.
* Manipulating Buttons:: Getting and setting properties of buttons.
* Button Buffer Commands:: Buffer-wide commands and bindings for buttons.
* Manipulating Button Types::
* Manipulating Button Types::
@end menu
@node Button Properties

View File

@ -35,6 +35,7 @@ however, we have renamed all of those.)
@table @code
@item activate-mark-hook
@item after-change-functions
@item after-change-major-mode-hook
@item after-init-hook
@item after-insert-file-functions
@item after-make-frame-functions

View File

@ -1,6 +1,6 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003, 2004
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/modes
@ -103,6 +103,7 @@ Fundamental mode. Rmail mode is a complicated and specialized mode.
* Mode Help:: Finding out how to use a mode.
* Derived Modes:: Defining a new major mode based on another major
mode.
* Mode Hooks:: Hooks run at the end of major mode functions.
@end menu
@node Major Mode Conventions
@ -276,7 +277,7 @@ other packages would interfere with them.
Each major mode should have a @dfn{mode hook} named
@code{@var{modename}-mode-hook}. The major mode command should run that
hook, with @code{run-mode-hooks}, as the very last thing it
does. @xref{Hooks}.
does. @xref{Mode Hooks}.
@item
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
settings. A mode that does this is called a @dfn{derived mode}. The
recommended way to define one is to use @code{define-derived-mode},
but this is not required. Such a mode should use
@code{delay-mode-hooks} around its entire body, including the call to
the parent mode command and the final call to @code{run-mode-hooks}.
(Using @code{define-derived-mode} does this automatically.)
@code{delay-mode-hooks} around its entire body (including the call to
the parent mode command) @emph{except} for the final call to
@code{run-mode-hooks}, which runs the derived mode's hook. (Using
@code{define-derived-mode} does this automatically.) @xref{Derived
Modes}, and @ref{Mode Hooks}.
@item
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.
in particular. Other major modes are defined in effect by comparison
with this one---their definitions say what to change, starting from
Fundamental mode. The @code{fundamental-mode} function does @emph{not}
run any hooks; you're not supposed to customize it. (If you want Emacs
run any mode hooks; you're not supposed to customize it. (If you want Emacs
to behave differently in Fundamental mode, change the @emph{global}
state of Emacs.)
@end deffn
@ -808,6 +811,58 @@ Do not write an @code{interactive} spec in the definition;
@code{define-derived-mode} does that automatically.
@end defmac
@node Mode Hooks
@subsection Mode Hooks
The two last things a major mode function does is to run its mode
hook and finally the mode independent normal hook
@code{after-change-major-mode-hook}. If the major mode is a derived
mode, that is if it calls another major mode (the parent mode) in its
body, then the parent's mode hook is run just before the derived
mode's hook. Neither the parent's mode hook nor
@code{after-change-major-mode-hook} are run at the end of the actual
call to the parent mode. This applies recursively if the parent mode
has itself a parent. That is, the mode hooks of all major modes called
directly or indirectly by the major mode function are all run in
sequence at the end, just before @code{after-change-major-mode-hook}.
If you are customizing a major mode, rather than defining one, the
above is all you need to know about the hooks run at the end of a
major mode. This also applies if you use @code{define-derived-mode}
to define a major mode, because that macro will automatically
implement the above for you.
Programmers wishing to define a major mode without using
@code{define-derived-mode}, should make sure that their major mode
follows the above conventions. @xref{Major Mode Conventions}, for how
this should be accomplished. Below, we give some implementation
details.
@defun run-mode-hooks &rest hookvars
Major modes should run their mode hook using this function. It is
similar to @code{run-hooks} (@pxref{Hooks}), but if run inside a
@code{delay-mode-hooks} form, this function does not run any hooks.
Instead, it arranges for @var{hookvars} to be run at a later call to
the function. Otherwise, @code{run-mode-hooks} runs any delayed hooks
in order, then @var{hookvars} and finally
@code{after-change-major-mode-hook}.
@end defun
@defmac delay-mode-hooks body...
This macro executes @var{body} like @code{progn}, but all calls to
@code{run-mode-hooks} inside @var{body} delay running their hooks.
They will be run by the first call to @code{run-mode-hooks} after exit
from @code{delay-mode-hooks}.
@end defmac
@defvar after-change-major-mode-hook
Every major mode function should run this normal hook at its very end.
It normally does not need to do so explicitly. Indeed, a major mode
function should normally run its mode hook with @code{run-mode-hooks}
as the very last thing it does and @code{run-mode-hooks} runs
@code{after-change-major-mode-hook} at its very end.
@end defvar
@node Minor Modes
@section Minor Modes
@cindex minor mode
@ -2087,7 +2142,7 @@ if there is no subexpression numbered @var{subexp} in @var{matcher}.
Obviously, fontification of the subexpression numbered @var{subexp} will
not occur. However, fontification of other subexpressions (and other
regexps) will continue. If @var{laxmatch} is @code{nil}, and the
specified subexpression is missing, then an error is signalled which
specified subexpression is missing, then an error is signaled which
terminates search-based fontification.
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.
For buffers not visiting a file to have their state saved, the major
mode must bind the buffer local variable @code{desktop-save-buffer} to
a non-nil value.
a non-@code{nil} value.
@defvar desktop-save-buffer
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
a symbol with a function definition), it is called. If it is a list
that isn't a function, its elements are called, consecutively. All
the hook functions are called with no arguments.
For example, here's how @code{emacs-lisp-mode} runs its mode hook:
@example
(run-hooks 'emacs-lisp-mode-hook)
@end example
@end defun
@defun run-mode-hooks &rest hookvars
Like @code{run-hooks}, but is affected by the @code{delay-mode-hooks}
macro.
@end defun
@defmac delay-mode-hooks body...
This macro executes the @var{body} forms but defers all calls to
@code{run-mode-hooks} within them until the end of @var{body}.
This macro enables a derived mode to arrange not to run
its parent modes' mode hooks until the end.
@end defmac
@defun run-hook-with-args hook &rest args
This function is the way to run an abnormal hook and always call all
of the hook functions. It calls each of the hook functions one by

View File

@ -2974,6 +2974,70 @@ Consecutive characters with the same @code{field} property constitute a
@code{beginning-of-line} stop moving at a field boundary.
@xref{Fields}.
@item cursor
@kindex cursor @r{(text property)}
Normally, the cursor is displayed at the end of any overlay and text
property strings present at the current window position. You can
place the cursor on any desired character of these strings by giving
that character a non-@code{nil} @var{cursor} text property.
@item pointer
@kindex pointer @r{(text property)}
This specifies a specific pointer shape when the mouse pointer is over
this text or image. See the variable @var{void-area-text-pointer}
for possible pointer shapes.
@item line-spacing
@kindex line-spacing @r{(text property)}
A newline can have a @code{line-spacing} text or overlay property
that controls the height of the corresponding display line.
@c ??? Which display line is "corresponding"?
The @code{line-spacing} property overrides the default frame line
spacing and the buffer local @code{line-spacing} variable. We will
call the property value @var{line-spacing}.
If @var{line-spacing} is a positive integer, the value specifies
additional vertical space, below the display line, in pixels.
If @var{line-spacing} is a floating point number or cons, the
additional vertical space is the product of @var{line-spacing} and the
default frame line height.
If the @var{line-spacing} value is a cons @code{(total .
@var{spacing})} where @var{spacing} is any of the forms described
above, the value of @var{spacing} specifies the total displayed height
of the line, regardless of the height of the characters in it. This
is equivalent to using the @code{line-height} property.
@item line-height
@kindex line-height @r{(text property)}
A newline can have a @code{line-height} text or overlay property that
controls the total height of the corresponding display line.
@c ??? Which display line is "corresponding"?
We will call the property value @var{line-height}.
If @var{line-height} is 0, the newline does not contribute to the
height of the display row; instead the height of the newline glyph is
reduced.
@c ??? That is not clear. Reduced how much?
In that case, any @code{line-spacing} property on
this newline is ignored. This can be used to tile small images or
image slices without adding blank areas between the images.
@c ??? Precisely which of these features does ``this'' mean?
If @var{line-height} is a positive integer, the value specifies the
minimum line height in pixels. The line's ascent height is
increased as necessary to achieve the specified height.
If @var{line-height} is a floating point number, the minimum line
height is the product of @var{line-height} and the default frame line
height.
If @var{line-height} is a cons @code{(@var{ratio} . @var{face})}, the
minimum line height is calculated as @var{ratio} times the height of
face @var{face}. The @var{ratio} is an integer or a floating point
number. If @var{face} is @code{t}, it refers to the current face.
@item modification-hooks
@cindex change hooks for a character
@cindex hooks for changing a character

View File

@ -1,3 +1,12 @@
2004-09-22 Luc Teirlinck <teirllm@auburn.edu>
* display.texi (Display Custom): Remove stray `@end defvar'.
2004-09-23 Kim F. Storm <storm@cua.dk>
* display.texi (Display Custom): Add `overflow-newline-into-fringe',
`indicate-buffer-boundaries' and `default-indicate-buffer-boundaries'.
2004-09-20 Richard M. Stallman <rms@gnu.org>
* custom.texi (Hooks): Explain using setq to clear out a hook.

View File

@ -4108,7 +4108,13 @@ graphics window. For other kinds of displays, the default is to
display the graph in Emacs itself using rough character graphics.
Press @kbd{q} when you are done viewing the character graphics.
Next, let's add the line we got from our least-squares fit:
Next, let's add the line we got from our least-squares fit.
@ifinfo
(If you are reading this tutorial on-line while running Calc, typing
@kbd{g a} may cause the tutorial to disappear from its window and be
replaced by a buffer named @samp{*Gnuplot Commands*}. The tutorial
will reappear when you terminate GNUPLOT by typing @kbd{g q}.)
@end ifinfo
@smallexample
@group

View File

@ -990,6 +990,45 @@ the value of @code{truncate-lines}. For information about side-by-side
windows, see @ref{Split Window}. See also @ref{Display,, Display,
elisp, The Emacs Lisp Reference Manual}.
@vindex overflow-newline-into-fringe
If the variable @code{overflow-newline-into-fringe} is
non-@code{nil} on a window system, it specifies that lines which are
exactly as wide as the window (not counting the final newline
character) shall not be broken into two lines on the display (with
just the newline on the second line). Instead, the newline
overflows into the right fringe, and the cursor will be displayed in
the fringe when positioned on that newline.
@vindex indicate-buffer-boundaries
On a window system, Emacs may indicate the buffer boundaries in the
fringes. The buffer boundaries, i.e. first and last line in the
buffer, can be marked with angle bitmaps in the left or right fringe.
This can be combined with up and down arrow bitmaps shown at the top
and bottom of the left or right fringe if the window can be scrolled
in either direction.
The buffer-local variable @code{indicate-buffer-boundaries} controls
how the buffer boundaries and window scrolling is indicated in the
fringes.
If the value is @code{left} or @code{right}, both angle and arrow
bitmaps are displayed in the left or right fringe, respectively.
Any other non-@code{nil} value causes the bitmap on the top line to be
displayed in the left fringe, and the bitmap on the bottom line in the
right fringe.
If value is a cons @code{(angles . arrows)}, the car specifies the
position of the angle bitmaps, and the cdr specifies the position of
the arrow bitmaps. For example, @code{(t . right)} places the top
angle bitmap in left fringe, the bottom angle bitmap in right fringe,
and both arrow bitmaps in right fringe. To show just the angle
bitmaps in the left fringe, but no arrow bitmaps, use @code{(left . nil)}.
@vindex default-indicate-buffer-boundaries
The value of the variable @code{default-indicate-buffer-boundaries}
is the default value for @code{indicate-buffer-boundaries} in buffers
that do not override it.
@vindex baud-rate
The variable @code{baud-rate} holds the output speed of the
terminal, as far as Emacs knows. Setting this variable does not

View File

@ -1,3 +1,9 @@
2004-09-24 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* config.in: Rebuild.
* Makefile.in: Run setarch i386 ./temacs if exec-shield is present.
2004-09-18 Stefan Monnier <monnier@iro.umontreal.ca>
* xterm.c (x_term_init): Work around a bug in some X servers.

View File

@ -887,6 +887,13 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) \
#define OBJECTS_MACHINE
#endif
#ifdef HAVE_EXECSHIELD
#undef i386
RUN_TEMACS = @SETARCH@ i386 ./temacs
#else
RUN_TEMACS = ./temacs
#endif
all: emacs${EXEEXT} OTHER_FILES
emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
@ -895,9 +902,9 @@ emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
ln temacs${EXEEXT} emacs${EXEEXT}
#else
#ifdef HAVE_SHM
LC_ALL=C ./temacs -nl -batch -l loadup dump
LC_ALL=C $(RUN_TEMACS) -nl -batch -l loadup dump
#else /* ! defined (HAVE_SHM) */
LC_ALL=C ./temacs -batch -l loadup dump
LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
#endif /* ! defined (HAVE_SHM) */
#endif /* ! defined (CANNOT_DUMP) */
-./emacs -q -batch -f list-load-path-shadows
@ -1326,9 +1333,9 @@ bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
ln temacs${EXEEXT} bootstrap-emacs${EXEEXT}
#else
#ifdef HAVE_SHM
./temacs -nl -batch -l loadup bootstrap
$(RUN_TEMACS) -nl -batch -l loadup bootstrap
#else /* ! defined (HAVE_SHM) */
./temacs --batch --load loadup bootstrap
$(RUN_TEMACS) --batch --load loadup bootstrap
#endif /* ! defined (HAVE_SHM) */
mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
#endif /* ! defined (CANNOT_DUMP) */

View File

@ -136,6 +136,9 @@ Boston, MA 02111-1307, USA. */
/* Define to 1 if you have the `euidaccess' function. */
#undef HAVE_EUIDACCESS
/* Define to 1 if this OS has exec shield. */
#undef HAVE_EXECSHIELD
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H