* keyboard.c (syms_of_keyboard): Doc fix for
extra-keyboard-modifiers; use the same modifier bits as we do for
characters.
(read_char): Apply all the modifiers in extra_keyboard_modifiers
to the input characters, so you can get hyper, super, and the rest
of the gang.
* xterm.c (x_emacs_to_x_modifiers): New function.
(x_convert_modifiers): Renamed to x_x_to_emacs_modifiers, for
consistency. Callers changed.
(XTread_socket): Apply x_emacs_to_x_modifiers to
extra_keyboard_modifiers before setting the state member of the
event; this will get all the modifiers on ASCII characters.
* xterm.c (x_text_icon): Don't call XSetIconName; it should be
unnecessary, and perhaps it's killing the icon pixmap.
* s/mach2.h: copied from the Emacs 18.59 distribution.
Don't define NO_REMAP, define START_FILES as
`pre-crt0.o' instead. Define LIB_MATH as `-lm', to override the
default `-lm -lc' (there is no libc on the NeXT).
* ymakefile (STARTFILES): Allow config.h to set this value even if
ORDINARY_LINK is defined.
* unexnext.c: Fix subdirectories for the machine dependent include
files for NeXTStep 3.0; #include <mach/mach.h> and
<mach-o/loader.h> instead of <mach.h> and <sys/loader.h>.
(getsectbyname): Remove prototype for this; the system #include
files take care of that.
(malloc_cookie): New variable.
(unexec_doit): Set malloc_cookie to the result returned by
malloc_freezedry.
* emacs.c (main): Declare malloc_cookie to be extern, so that we can
get the value set when we dumped and pass it to malloc_jumpstart.
* systime.h: The NeXT has a timezone function.
case we need them.
* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
shift_modifier, ctrl_modifier, meta_modifier): Define these in
terms of the CHAR_mumble macros, to avoid having the same thing
defined in two places.
Make the modifier manipulation functions more robust. The old way
caused a bug once, and probably would again.
* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
shift_modifier, ctrl_modifier, meta_modifier): Shift these all
down one bit in value, to avoid sign extension problems.
* lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too.
* keyboard.c (lispy_modifier_list): Ignore modifier bits beyond
what our table of modifier names can handle.
(apply_modifiers): Don't abort if you see extra modifier bits,
just remove them.
(EMACS_SET_USECS): Remember that a `usec' is a microsecond, not a
millisecond. What's three orders of magnitude between friends?
* dispnew.c (Fsit_for, Fsleep_for): Remember to multiply the
`milliseconds' argument by 1000 to get microseconds.
Changes for Emacs 19 from Thorsten Ohl <ohl@chico.harvard.edu>:
* s/mach2.h: copied from the Emacs 18.59 distribution.
Don't define NO_REMAP, define START_FILES as
`pre-crt0.o' instead. Define LIB_MATH as `-lm', to override the
default `-lm -lc' (there is no libc on the NeXT).
* ymakefile (STARTFILES): Allow config.h to set this value even if
ORDINARY_LINK is defined.
* unexnext.c: Fix subdirectories for the machine dependent include
files for NeXTStep 3.0; #include <mach/mach.h> and
<mach-o/loader.h> instead of <mach.h> and <sys/loader.h>.
(getsectbyname): Remove prototype for this; the system #include
files take care of that.
(malloc_cookie): New variable.
(unexec_doit): Set malloc_cookie to the result returned by
malloc_freezedry.
* emacs.c (main): Declare malloc_cookie to be extern, so that we can
get the value set when we dumped and pass it to malloc_jumpstart.
* systime.h: The NeXT has a timezone function.
functions in sysdep.c.
* sysdep.c (emacs_get_tty, emacs_set_tty): Here they are.
* sysdep.c (emacs_set_tty): Call tcsetattr over and over again
until it does all of what we ask it to, or returns an error.
* lread.c (read_filtered_char): New function, which contains the
code which used to be in Fread_char, Fread_event, and
Fread_char_exclusive; there was a lot of common code.
(Fread_char, Fread_event, Fread_char_exclusive): Rewrite in terms
of read_filtered_char.
* lisp.h (read_filtered_char): Declare this extern here.
* fns.c (Fy_or_n_p): Call read_filtered_char, arranging to delay
switch-frame events.
case we need them.
* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
shift_modifier, ctrl_modifier, meta_modifier): Define these in
terms of the CHAR_mumble macros, to avoid having the same thing
defined in two places.
Arrange for Fy_or_n_p to put off switch-frame events.
* lread.c (read_filtered_char): New function, which contains the
code which used to be in Fread_char, Fread_event, and
Fread_char_exclusive; there was a lot of common code.
(Fread_char, Fread_event, Fread_char_exclusive): Rewrite in terms
of read_filtered_char.
* lisp.h (read_filtered_char): Declare this extern here.
* fns.c (Fy_or_n_p): Call read_filtered_char, arranging to delay
switch-frame events.
Make the modifier manipulation functions more robust. The old way
caused a bug once, and probably would again.
* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
shift_modifier, ctrl_modifier, meta_modifier): Shift these all
down one bit in value, to avoid sign extension problems.
* lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too.
* keyboard.c (lispy_modifier_list): Ignore modifier bits beyond
what our table of modifier names can handle.
(apply_modifiers): Don't abort if you see extra modifier bits,
just remove them.
* lisp.h (Qrange_error, Qdomain_error, Qsingularity_error,
Qoverflow_error, Qunderflow_error): Add extern to these declarations.
* keyboard.c (syms_of_keyboard): Doc fix for
extra-keyboard-modifiers; use the same modifier bits as we do for
characters.
(read_char): Apply all the modifiers in extra_keyboard_modifiers
to the input characters, so you can get hyper, super, and the rest
of the gang.
* xterm.c (x_emacs_to_x_modifiers): New function.
(x_convert_modifiers): Renamed to x_x_to_emacs_modifiers, for
consistency. Callers changed.
(XTread_socket): Apply x_emacs_to_x_modifiers to
extra_keyboard_modifiers before setting the state member of the
event; this will get all the modifiers on ASCII characters.
* keyboard.c (kbd_buffer_get_event): Don't generate switch-frame
events if they'd only switch to the frame already selected. This
avoids lots of extra switch-frame events when using a separate
minibuffer.
* keyboard.c (Fcurrent_input_mode): New function.
* keyboard.c (read_key_sequence): Let the `modifiers' variable in
the code which deals with KEY being unbound be an int, not a
Lisp_Object.
Make the modifier manipulation functions more robust. The old way
caused a bug once, and probably would again.
* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
shift_modifier, ctrl_modifier, meta_modifier): Shift these all
down one bit in value, to avoid sign extension problems.
* lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too.
* keyboard.c (lispy_modifier_list): Ignore modifier bits beyond
what our table of modifier names can handle.
(apply_modifiers): Don't abort if you see extra modifier bits,
just remove them.
':' elsewhere, just have it default to ':' if not #defined, and
#define it to be ',' in s/vms.h; OS/2 will need it to be ';'.
* s/vms.h (SEPCHAR): #define this to be ','.
* s/template.h (SEPCHAR): Mention this.
Changes for Emacs 19 from Thorsten Ohl <ohl@chico.harvard.edu>:
* s/mach2.h: copied from the Emacs 18.59 distribution.
Don't define NO_REMAP, define START_FILES as
`pre-crt0.o' instead. Define LIB_MATH as `-lm', to override the
default `-lm -lc' (there is no libc on the NeXT).
* ymakefile (STARTFILES): Allow config.h to set this value even if
ORDINARY_LINK is defined.
* unexnext.c: Fix subdirectories for the machine dependent include
files for NeXTStep 3.0; #include <mach/mach.h> and
<mach-o/loader.h> instead of <mach.h> and <sys/loader.h>.
(getsectbyname): Remove prototype for this; the system #include
files take care of that.
(malloc_cookie): New variable.
(unexec_doit): Set malloc_cookie to the result returned by
malloc_freezedry.
* emacs.c (main): Declare malloc_cookie to be extern, so that we can
get the value set when we dumped and pass it to malloc_jumpstart.
* systime.h: The NeXT has a timezone function.
(EMACS_SET_USECS): Remember that a `usec' is a microsecond, not a
millisecond. What's three orders of magnitude between friends?
* dispnew.c (Fsit_for, Fsleep_for): Remember to multiply the
`milliseconds' argument by 1000 to get microseconds.
* dispnew.c (Fsleep_for, Fsit_for): Allow SECONDS to be a
floating point value.
* dispnew.c (getenv): Extern declaration deleted; this is done in
config.h.
should exclude the getenv declaration; instead, test NOT_C_CODE.
Per suggestion from Francesco Potorti`.
* ymakefile (NOT_C_CODE): Define this; it's true, and useful.
* config.h.in (volatile): Don't define this to be the empty string
if some file has #defined HAVE_VOLATILE.
* buffer.c (Fmake_overlay, Fmove_overlay): New optional BUFFER
arguments.
(recenter_overlay_lists): New argument BUF, to use instead of the
current buffer.
(Foverlay_recenter): Pass the appropriate arguments to
recenter_overlay_lists.
* buffer.c (Fdelete_overlay): Don't assume that overlay is in the
current buffer. Don't forget to declare the argument a Lisp_Object.
':' elsewhere, just have it default to ':' if not #defined, and
#define it to be ',' in s/vms.h; OS/2 will need it to be ';'.
* s/vms.h (SEPCHAR): #define this to be ','.
* s/template.h (SEPCHAR): Mention this.
* s/vms.h (xfree): #define this to emacs_xfree, to avoid case
conflict with XFree; on VMS, external symbols are case-insensitive.
':' elsewhere, just have it default to ':' if not #defined, and
#define it to be ',' in s/vms.h; OS/2 will need it to be ';'.
* s/vms.h (SEPCHAR): #define this to be ','.
* s/template.h (SEPCHAR): Mention this.
it to /[\/]/. This should work on all Posix-compliant awks.
It's slightly wrong with traditional (Unix version 7) awk, since it
also allows \, but that's a minor problem compared to awk syntax errors.
dereferencing links is inappropriate for dired.
* files.el (abbreviate-file-name): If abbreviated-home-dir ends
with a slash, don't remove the corresponding slash from filename
when we collapse the home directory to ~.
FORCE argument non-nil, so that we don't get an error if the mark
isn't set yet.
* edebug.el (global-edebug-prefix, global-edebug-map): Add
autoload cookies for these, so they are present when Emacs starts
up.
* edebug.el (global-edebug-map): Bind `C-x X d' to edebug-defun in
this map; we can't bind it to `C-x x', as the installation
instructions suggest, because that conflicts with
copy-to-register.
"rope"; we're using vectors of characters now.
(standard-display-8bit, standard-display-ascii): Set the element
of the display table to a vector, not an integer; the latter
doesn't mean anything.
variable to scan the machine and system description files.
* configure.in: Use the AC_HAVE_HEADERS to check for sys/timeb.h,
so that getdate.y builds correctly.
* configure.in (tempcname): Change this to "conftest.c", so it will
work properly on systems with short filenames; this is the name
autoconf uses.
* configure.in: Also detect the availability of dup2 and
gethostname.
* configure.in: Use the AC_ALLOCA test.
* Makefile.in (ALLOCA): New variable, to be set by ./configure.
(lib-src/Makefile): Edit the value of ALLOCA into lib-src/Makefile.
* Makefile.in: Add autoconf cookies so that the configure
script can comment out sections of path variable definitions to
choose between the installable configuration and the run-in-place
configuration.
* configure.in: Add new option `--run-in-place', to select the
run-in-place path definitions.
* configure.in: Add a clause to the big configuration name case
for the NeXT machine.
* Makefile.in (ALLOCA): New variable, to be set by ./configure.
(lib-src/Makefile): Edit the value of ALLOCA into lib-src/Makefile.
* Makefile.in (install): Print out the name of the directory we're
copying, so people can have some idea of whether we're making
progress.
* Makefile.in (install.aix, install.xenix, install.sysv, install):
Don't forget to re-create the COPYDESTS directories after we clear
them out.
* Makefile.in: Add autoconf cookies so that the configure
script can comment out sections of path variable definitions to
choose between the installable configuration and the run-in-place
configuration.
* configure.in: Add new option `--run-in-place', to select the
run-in-place path definitions.
* Makefile.in (install, install.sysv, install.xenix, install.aix):
Make sure that each source directory exists, and is different from
the destination directory; then, delete the destination before
copying over the source.