1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-05 15:11:30 -08:00
Commit graph

17751 commits

Author SHA1 Message Date
Karoly Lorentey
fa013bcef8 Fix mouse-position for tty+X combo sessions.
frame.c (Fmouse_position): Don't call mouse_position_hook if the frame
is a termcap frame.  (Reported by Romain Francoise <romain@orebokech.com>.)

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-40
2004-01-03 16:49:09 +00:00
Karoly Lorentey
72d785653d Merged in changes from CVS HEAD
Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-15
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-36
2004-01-03 08:33:31 +00:00
Karoly Lorentey
4d553a13ab Portability fixes (now it compiles & runs fine on Solaris).
lib-src/emacsclient.c: Removed tty proxy kludge.  Emacs should just
use the same terminal as emacsclient.
(ec_get_tty, ec_set_tty, master, pty_name, old_tty, tty, old_tty_valid)
(tty_erase_char, quit_char, flow_control, meta_key, _sobuf, init_tty)
(window_change, reset_tty, init_pty, copy_from_to)
(pty_conversation): Removed.
(window_change_signal): Just forward the signal to Emacs, don't do
anything else.
(init_signals): Don't set handlers for SIGHUP & SIGINT.
(strprefix): New function.
(main): Don't touch the terminal, simply tell its name to Emacs.

lisp/server.el (server-frames): Changed name and semantics to server-ttys.
(server-tty-live-p): New function.
(server-sentinel): Delete the whole tty, not just the frame.
(server-handle-delete-frame): Removed.
(server-handle-delete-tty): New function. Close the client connection if
the tty is deleted.
(server-start): Clean up server-ttys, not server-frames.  Set up
delete-tty-after-functions.
(server-process-filter): Set up server-ttys, not server-frames.
Updated protocol for sending our pid to emacsclient.
(server-buffer-done): Don't delete the client process directly, delete
the tty instead, and rely on the delete-tty hook to close the
connection.  Otherwise the terminal could be left in a bad state.

src/cm.c (cmputc): Don't abort on write errors.

src/indent.c: #include <stdio.h>, for termchar.h.
src/window.c: Ditto.
src/xfaces.c: Ditto.

src/sysdep.c (init_sigio, reset_sigio, request_sigio)[!SIGIO]
(unrequest_sigio)[!SIGIO]: If SIGIO is not supported, don't do
anything. (For Solaris.)
(init_sys_modes): Moved tty_set_terminal_modes call back to here,
disable window system check.
(reset_sys_modes): Reset the terminal even if X is running.

src/term.c (Vdelete_tty_after_functions): New variable.
(syms_of_term): Initialize it.
(Fdelete_tty): Updated docs.
(delete_tty): Run delete-tty-after-functions.
(term_init): Removed tty_set_terminal_modes call.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-35
2004-01-03 08:31:14 +00:00
Andreas Schwab
181e6a61ec (emacs_options, x_initialized, same_x_server): Remove
unused (and duplicated) definitions.
2004-01-02 22:17:42 +00:00
Karoly Lorentey
eb9332fa2e Merged in changes from CVS HEAD
Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-10
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-11
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-12
   Add section on button package to lisp reference manual

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-13
   Minor tweaks to Buttons section in lispref/display.texi

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-14
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-33
2004-01-02 04:37:46 +00:00
Karoly Lorentey
fa971ac34d Got rid of the rif (window-based redisplay interface) global variable.
src/dispextern.h (PRODUCE_GLYPHS): Use the rif in IT->f, not the global rif.
(rif): Removed.

src/dispnew.c (rif): Removed.
(direct_output_for_insert, direct_output_forward_char, update_frame)
(redraw_overlapped_rows, redraw_overlapping_rows, update_window)
(update_marginal_area, update_text_area, update_window_line)
(set_window_cursor_after_update, scrolling_window): Use the rif of the
current frame, not the global rif.

src/fontset.c: #include termhooks.h, for FRAME_RIF.
(Finternal_char_font): Use the rif of the current frame.

src/frame.c (x_set_frame_parameters): Use the rif of the current frame.

src/keyboard.c (detect_input_pending_run_timers): Use the rif of the
current frame.

src/minibuf.c: #include termhooks.h, for FRAME_RIF.
(read_minibuf): Use the rif of the current frame.

src/term.c (update_begin): Removed rif update hack.

src/termhooks.h (FRAME_RIF): New macro.

src/xdisp.c (init_iterator, expose_frame): Removed rif update hack.
(echo_area_display, x_cursor_to, draw_fringe_bitmap)
(try_window_reusing_current_matrix, try_window_id)
(get_glyph_face_and_encoding, x_get_glyph_overhangs)
(get_char_face_and_encoding, compute_overhangs_and_x, draw_glyphs)
(x_produce_glyphs, x_insert_glyphs, x_clear_end_of_line)
(erase_phys_cursor, display_and_set_cursor, show_mouse_face)
(define_frame_cursor1, x_draw_vertical_border): Use the rif of the
current frame.

src/xfns.c (Fx_create_frame): Removed rif update hack.
src/xterm.c (frame_highlight, frame_unhighlight): Ditto.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-32
2004-01-02 04:22:23 +00:00
Karoly Lorentey
7b00d185eb MULTI_KBOARD support for ttys. Input-related bugfixes for X+tty sessions.
lib-src/emacsclient.c (pty_conversation): Fix errno check for read from fileno(in).

src/config.in: Unconditionally define MULTI_KBOARD.

src/frame.c (make_terminal_frame): Initialize f->kboard.

src/keyboard.c (cmd_error_internal): Don't kill Emacs if a Quit was
pressed on the tty of a X+tty session.
(read_avail_input): Initialize nread to zero.  Abort if there is no
tty after a termcap read.
(interrupt_signal)[USG]: Always reset signal handler.
(init_keyboard): Always set signal handler for SIGINT/SIGQUIT if
noninteractive.

src/term.c (term_dummy_init): Initialize kboard to the initial_kboard.
(term_init): Free component structures of the initial tty. Clear xmalloced structures.
Moved rif initialization to syms_of_term.
(term_init)[MULTI_KBOARD]: Initialize tty->kboard.
(delete_tty)[MULTI_KBOARD]: Delete the keyboard.
(syms_of_term): Initialize tty_display_method_template.

src/termchar.h (tty_output)[MULTI_KBOARD]: Added kboard member.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-31
2004-01-02 02:54:17 +00:00
Karoly Lorentey
daf0170133 Fixed X support, preliminary support for X-tty combo sessions.
lib-src/emacsclient.c (copy_from_to, pty_conversation): Re-added SIGIO
hack.  (Sigh.)

lisp/frame.el (make-frame-on-tty): Use make-terminal-frame, not
make-frame.

src/dispnew.c (line_hash_code, line_draw_cost): Updated to use
the new display_method parameters.
(Fredraw_frame): fflush the tty only if f is a termcap frame.
(direct_output_for_insert): Updated to use the new display_method
parameters. fflush the tty only if f is a termcap frame.
(direct_output_forward_char, update_frame_1, scrolling): Ditto.
(update_frame_line, Fding, bitch_at_user): Ditto.
(Fsend_string_to_terminal): Fail if current frame is not on a tty.
(init_display): Frame size change is safe here.


src/frame.c (Vterminal_frame): Restored previously deleted variable.
(syms_of_frame): Initialize it.
(make_terminal_frame): Copy the frame's display_method from tty_display_info.
(Fmake_terminal_frame): Enable simultaneous X and tty frames (buggy).
(Fredirect_frame_focus): Don't call frame_rehighlight_hook if frame
is on a termcap device.

src/frame.h (struct frame): Renamed display to display_method.
(Vterminal_frame): Re-added declaration.

src/keyboard.c (flow_control): Moved to struct tty_display_info.
(read_avail_input): Check ttys even if there is a read_socket_hook.
(Fset_input_mode): Call reset_sys_modes/init_sys_modes and set
flow_control or meta_key only when the frame is a termcap frame.
(Fcurrent_input_mode): Handle flow_control and meta_key right on
non-termcap frames.

src/scroll.c (calculate_scrolling, calculate_direct_scrolling): Update
to use the new display_method parameters.
(scrolling_1, scroll_cost): Ditto.

src/sysdep.c (init_sys_modes, reset_sys_modes): Always set the
terminal parameters if tty_out->input is not stdin.  Updated to the
new location of flow_control.
(hft_init): Moved HFT init code to term_init, as it needs the frame.

src/term.c (tty_display_method_template): New variable.
(update_begin): Added rif hack.
(set_terminal_window, ins_del_lines, term_init): Updated to use the
new display_method parameters.
(insert_glyphs, ins_del_lines): Only call insert_glyphs_hook if the
current frame is not on a tty.
(calculate_costs): Don't calculate costs if not on a tty.
(term_dummy_init): Fixed tty->output initialization. Preallocate Wcm
and display_method.
(term_init): Allocate & initialize display_method.  Blindly fixed
WINDOWSNT-specific parts.  Added HFT-specific initialization
exception from hft_init.
(delete_tty): Only delete termcap frames.  Free() the display_method.

src/termchar.h (struct tty_display_info): Moved high-level terminal
characteristics to struct display_method.  Added flow_control and
display_method members.

src/termhooks.h (struct display_method): New struct (renamed from
struct device).  Added accessor macros.

src/window.c (init_window_once): Initialize Vterminal_frame.

src/xdisp.c (init_iterator, expose_frame): Added rif hack.
(try_window_id): Updated to use the new display_method parameters.

src/xfaces.c (realize_basic_faces): Don't call
x_update_menu_appearance if the frame is a tty frame.

src/xfns.c (Fx_create_frame): Added rif hack.  Initialize
display_method.
(x_create_tip_frame): Initialize display_method.

src/xterm.c (x_display_method): New variable.
(x_flush, x_frame_of_widget, XTmouse_position): Ignore non-X frames.
(x_window_to_scroll_bar, x_window_to_menu_bar): Ditto.
(xim_destroy_callback, xim_instantiate_callback): Ditto.
(frame_highlight, frame_unhighlight): Added rif hack.
(x_initialize): Don't initialize rif.  Do initialize x_display_method.

src/xterm.h (x_display_method): New declaration.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-30
2004-01-02 01:15:26 +00:00
Kim F. Storm
31e0fbdd43 *** empty log message *** 2004-01-01 23:44:00 +00:00
Kim F. Storm
2d942bfadf (ADAPTIVE_READ_BUFFERING): New conditional.
(READ_OUTPUT_DELAY_INCREMENT, READ_OUTPUT_DELAY_MAX)
(READ_OUTPUT_DELAY_MAX_MAX): New constants.
(process_output_delay_count, process_output_skip): New vars.
(Vprocess_adaptive_read_buffering): New variable.
(make_process): Initialize adaptive read buffering members.
(Fstart_process): Set adaptive_read_buffering member.
(deactivate_process): Cleanup adaptive read buffering.
(wait_reading_process_input): Temporarily omit delayed
subprocesses from the set of file descriptors to read from;
adjust the select timeout if we skipped any subprocesses.
(read_process_output): Increase adaptive read buffering delay if
we read less than a full buffer; reduce delay when we read a
full buffer.
(send_process): Simplify using local Lisp_Process var.
Reset adaptive read buffering delay after write.
(init_process): Initialize process_output_delay_count and
process_output_skip.
(syms_of_process): DEFVAR_LISP Vprocess_adaptive_read_buffering.
2004-01-01 23:34:14 +00:00
Kim F. Storm
2ba4be11b7 (struct Lisp_Process): New members for adaptive read
buffering: adaptive_read_buffering, read_output_delay, and
read_output_skip.
2004-01-01 23:33:58 +00:00
Jason Rumney
68c6a789cc (w32_text_out): Use s->font, for consistency with callers. 2004-01-01 22:51:46 +00:00
Karoly Lorentey
28d7d09f84 Separate frame-local, tty-dependent parameters from tty-local parameters.
src/termchar.h (struct tty_output): Redefined to contain frame-local
tty-dependent parameters.  (Currently there are no such parameters, so
it consists of the tty_display_info pointer.)
(struct tty_display_info): New structure, with reference_count.
(FRAME_TTY): Updated to reflect new termcap frame structure.

src/term.c: Update prototypes. Use tty_display_info instead of tty_output.

src/cm.c (current_tty, cmcheckmagic, cmcostinit, calccost, cmgoto, Wcm_clear)
(Wcm_init): Use tty_display_info instead of tty_output.

src/cm.h: Update prototypes.
src/dispextern.h: Ditto.

src/dispnew.c (window_change_signal, init_display, make_terminal_frame):
Use tty_display_info instead of tty_output.

src/frame.c (Fdelete_frame): Use tty_display_info instead of
tty_output.  Fix delete_tty check.
(make_terminal_frame): Allocate f->output_data.tty.  Increase
reference count of tty device.
(delete_frame): Free f->output_data.tty.  Use reference count to
decide if the tty should be closed.

src/frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): New,
unconditional definitions.
(struct device): New declaration (at the moment, it is defined as
empty in termhooks.h).
(struct frame): Added display, background_pixel, foreground_pixel member.

src/keyboard.c (read_avail_input): Use tty_display_info instead of tty_output.

src/lisp.h: Declare struct display.  Update prototypes.

src/sysdep.c: Update prototypes.
(discard_tty_input, init_all_sys_modes, init_sys_modes, reset_all_sys_modes)
(reset_sys_modes, hft_init, hft_reset): Use tty_display_info instead
of tty_output.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-29
2004-01-01 17:55:53 +00:00
Karoly Lorentey
819b8f00ed A few more bugfixes and new features.
(Sigh.)  I obviously need to remember to separate individual changes
to multiple commits.

src/emacsclient.c: Improved error handling.
(decode_options): Changed frame option (again) from -f to -t.
(print_help_and_exit): Ditto.
(copy_from_to): Check EINTR after write, not EAGAIN.  Removed SIGIO hack.
(pty_conversation): Handle errors transmitted through the socket.
Handle pty errors by not reading from it anymore.
(main): Restore correct errno after socket_status failed.  Send -tty
on -t, not -pty.

lisp/server.el (server-process-filter): Watch -tty, not -pty.
Use make-frame-on-tty instead of make-terminal-frame.
Don't set newframe to t if make-frame-on-tty failed.
Don't delete frames here.  Print correct message when there are no
files to edit, but a new frame was requested.
(server-sentinel): Delete the frame after the process.
(server-handle-delete-frame): New function for delete-frame-functions.
(server-start): Add server-handle-delete-frame to delete-frame-functions.
(server-buffer-done): Don't delete frames here.

src/alloc.c (mark_ttys): Add prototype.
(Fgarbage_collect): Call mark_ttys.

src/emacs.c: (shut_down_emacs): Don't flush stdout before
reset_sys_modes().

src/process.c (add_keyboard_wait_descriptor_called_flag): Removed.
(add_keyboard_wait_descriptor): Removed stdin hack.

src/sysdep.c: Unconditionally include sysselect.h.
(old_fcntl_flags): Changed to an array.
(init_sigio, reset_sigio): Use it.
(narrow_foreground_group, widen_foreground_group): Use setpgid, not
setpgrp.
(old_fcntl_owner): Changed to an array.
(init_sys_modes, reset_sys_modes): Use it.  Fix fsync() and reset_sigio() calls.
src/term.c (Qframe_tty_name, Qframe_tty_type): New variables.
(syms_of_term): Initialize them.
(Fframe_tty_name, Fframe_tty_type): New functions.
(term_init): Call add_keyboard_wait_descriptor().
(Fdelete_tty): New function.
(delete_tty): Call delete_keyboard_wait_descriptor().
(get_current_tty): Removed.
(mark_ttys): New function.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-28
2003-12-31 05:09:29 +00:00
Luc Teirlinck
3f70fe8247 *** empty log message *** 2003-12-31 00:32:19 +00:00
Luc Teirlinck
3297ec22bd (Fsignal): Add hyperlink to the definition of `signal' in the Elisp manual. 2003-12-31 00:27:07 +00:00
Luc Teirlinck
f82ec1e6ee (Ferror_message_string): Add hyperlink to the definition of `signal'
in the Elisp manual.
2003-12-31 00:24:28 +00:00
Karoly Lorentey
16c290d8c1 Major bugfixes and slight enhancements.
src/dispextern.h (get_tty_size, tabs_safe_p, init_baud_rate): Update
prototypes.

src/dispnew.c (window_change_signal): Update call to get_tty_size.
src/frame.c (Fmake_terminal_frame): Ditto.
src/keyboard.c (Fsuspend_emacs): Ditto.

src/sysdep.c: Eliminate tty_outputs, wherever possible.  (The
exceptions are init_sys_modes and reset_sys_modes, which need access
to tty-local parameters).
(init_baud_rate): Change tty_output parameter to a simple file descriptor.
(narrow_foreground_group, widen_foreground_group): Ditto.
(tabs_safe_p, get_tty_size): Ditto.
(init_sys_modes): Update narrow_foreground_group invocation.
(reset_sys_modes): Update widen_foreground_group invocation.
(request_sigio)[!FASYNC && STRIDE]: Fix function signature.

src/term.c (delete_tty): Only close output file handle if it is
different from input.  Re-enable freeing of Wcm.
(term_init): Update get_tty_size, tabs_safe_p and init_baud_rate
invocations.

lib-src/emacsclient.c (here): Renamed to frame.
(longopts): Change --here to --frame.  The -h short option may be
confused with --help.
(decode_options, print_help_and_exit): Update to reflect above changes.
(main): Ditto.

lisp/server.el (server-start): Fix frame-live-p call syntax.
(server-process-filter): Handle 'emacsclient -f' without file
arguments.  Don't return any values to emacsclient when 'emacsclient
-f -e'.
(server-switch-buffer): Prevent infinite recursion when there are no
files to edit.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-27
2003-12-30 19:27:57 +00:00
Karoly Lorentey
9d9f18127f Undo patch-23. I need a coffee.
src/sysdep.c (sys_select): Restore previous #ifdef.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-26
2003-12-30 17:51:52 +00:00
Karoly Lorentey
7c3a261587 Merged in changes from CVS head
Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-5
   Add =cvs-sync-make-log script

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-6
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-7
   Use absolute tla-tools filenames in =cvs-sync-make-log

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-8
   Use proper arch-tag: syntax for lispintro/texinfo.tex

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-9
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-24
2003-12-30 17:05:05 +00:00
Karoly Lorentey
c1c63edb79 Don't compile sys_select on systems that don't need it.
src/sysdep.c (sys_select): This function is unnecessary on most
systems, so #ifdef it out.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-23
2003-12-30 17:02:33 +00:00
Eli Zaretskii
c2be49ed92 *** empty log message *** 2003-12-29 14:06:29 +00:00
Karoly Lorentey
096d4be33f Merged in changes from CVS head
Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-4
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-22
2003-12-29 13:59:23 +00:00
Eli Zaretskii
74a47d1fba (internal_equal): Return t for two NaN arguments. 2003-12-29 13:51:54 +00:00
Richard M. Stallman
7abd90ea98 (store_symval_forwarding): Handle setting default-fill-column, etc.,
by changing buffers that use the default.
2003-12-29 11:29:18 +00:00
Richard M. Stallman
dea7e2ba84 (Fset_minibuffer_window): Doc fix. 2003-12-29 11:25:21 +00:00
Richard M. Stallman
dc2628c113 (choose_write_coding_system): Ignore auto_saving
if using the visited file for auto saves.
(Fwrite_region): Don't update SAVE_MODIFF
if auto-saving in visited file.
2003-12-29 11:24:14 +00:00
Richard M. Stallman
6c2ef89342 Comment change. 2003-12-29 11:22:31 +00:00
Karoly Lorentey
b2af72d2f0 Make sure secondary frames are deleted when emacsclient quits.
lisp/server.el (server-sentinel): Delete frame if alive.  Fix delq
invocation on server-frames.  
(server-process-filter, server-buffer-done): Fix delq invocation on
server-frames.

src/cm.c (cmputc): Abort on write error, see what happens.

src/keyboard.c (read_avail_input): Do delete_tty on read errors.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-21
2003-12-29 08:28:35 +00:00
Karoly Lorentey
0a1258976b Bugfix festival.
lib-src/emacsclient.c (main_argc, main_argv): New variables.
(main): Initialize them.
(fail): Use them.
(window_change, copy_from_to): Don't kill if emacs_pid is zero.
(pty_conversation): Watch the command socket, too.  Read emacs_pid
here.  Emacs and emacsclient could deadlock if Emacs tried to do a
reset_sys_modes before sending its pid.

lisp/server.el: Automatically delete the client frame when done editing.
(server-frames): New variable.
(server-process-filter, server-sentinel, server-buffer-done): Use it.
(server-process-filter): Do a redisplay before evaluating other
parameters.  (Prevents "emacsclient -h -e '(delete-frame)'" from
messing up the system.

src/dispextern.h: Update prototypes.

src/dispnew.c (window_change_signal): Do nothing if !term_initted.
(init_display): Set the frame size from the tty data after term_init.

src/emacs.c (main): Make sure things that init_sys_modes needs are 
initialized before init_display (which calls init_sys_modes now).
(sort_args): Use xfree, not free.
(shut_down_emacs) [!EMACS_HAVE_TTY_PGRP]: Use reset_all_sys_modes
instead of reset_sys_modes.

src/frame.c (make_terminal_frame): Sigh. Move terminal initialization
back to the middle of frame setup.  Handle errors by making sure that
the delete_tty() called from term_init() will see and delete this
frame.
(Fdelete_frame): Kill the frame before calling delete_tty().  Fix
condition for tty deletion.

src/keyboard.c (Fset_input_mode): Use reset_sys_modes on the current
terminal only.

src/lisp.h: Remove duplicate prototypes.

src/msdos.c (croak): use reset_all_sys_modes().

src/sysdeps.c (init_baud_rate): Added tty parameter, use it instead of CURTTY.
(child_setup_tty): Reset sigio on stdin, not CURTTY().
(reset_sigio): Added fd parameter, put explicit fcntl there.
(request_sigio, unrequest_sigio)[FASYNC]: Simply block/unblock the
SIGIO signal, don't touch the file params.  There are multiple ttys
now, and we can't disable the SIGIO from emacsclient.
(get_tty_size)[VMS]: Use tty_out instead of CURTTY().
(reset_sys_modes): Don't call cursor_to, clear_end_of_line; call
cmgoto and tty_clear_end_of_line instead.  The frame may already be
dead.  Updated reset_sigio call.

src/term.c (clear_and_of_line): Separate tty-dependent stuff to
tty_clear_end_of_line() for reset_sys_modes.
(tty_clear_end_of_line): New function.
(term_init): Added frame parameter, don't use selected_frame.
Set the frame's output_data.tty value (in case there is an error
later).  Set the frame size in Wcm, not in the frame.  Only free the
termcap buffer if there is a termcap-related error.  Call
init_sys_modes last, not first.
(deleting_tty): New variable.
(delete_tty): Use it for handling recursive calls.  Free deleted tty,
except its Wcm (there is still a dangling reference somewhere).

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-19
2003-12-29 07:16:26 +00:00
Kenichi Handa
3e7cfcdc3d *** empty log message *** 2003-12-29 07:11:58 +00:00
Kenichi Handa
b64c9a0407 (face_font_available_p): New function. 2003-12-29 06:54:55 +00:00
Kenichi Handa
2f65c7b5ef (Voverriding_fontspec_alist): New variable.
(lookup_overriding_fontspec): New function.
(fontset_ref_via_base): Call lookup_overriding_fontspec if
necessary.
(fontset_font_pattern): Likewise.
(regulalize_fontname): New function.
(Fset_fontset_font): Call regulalize_fontname.
(Fset_overriding_fontspec_internal): New function.
(syms_of_fontset): Initialize and staticprop
Voverriding_fontspec_alist.
(syms_of_fontset): Defsubr Sset_overriding_fontspec_internal.
2003-12-29 06:53:50 +00:00
Kenichi Handa
475a1234b7 (face_font_available_p): Extern it. 2003-12-29 06:53:28 +00:00
Karoly Lorentey
04c3243c2a Trivial changes
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-18
2003-12-28 22:28:52 +00:00
Richard M. Stallman
d674d13e14 (Fother_buffer): Don't crash if BUF is nil
or if its name is nil.

(Fkill_buffer): Don't delete auto-save file
if it's the same as the visited file.
2003-12-28 22:16:57 +00:00
Luc Teirlinck
de1d1a4051 (Fcheck_coding_system): Further doc fix. 2003-12-28 19:54:24 +00:00
Luc Teirlinck
303cdc2dfd (Fcheck_coding_system): Doc fix. 2003-12-28 19:47:58 +00:00
Karoly Lorentey
8ed48c277a Merged in changes from CVS HEAD
Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-1
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-2
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-3
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-17
2003-12-28 16:05:28 +00:00
Karoly Lorentey
2e7f2ec031 Merged in changes from CVS HEAD
Patches applied:

 * miles@gnu.org--gnu-2003/emacs--cvs-trunk--0--patch-138
   Update from CVS

 * miles@gnu.org--gnu-2003/emacs--cvs-trunk--0--patch-139
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-15
2003-12-28 16:03:57 +00:00
Kim F. Storm
204fb75e80 Fix cursor glyph height on tall rows.
Add image map feature.
Add pointer text property.
2003-12-28 00:15:01 +00:00
Kim F. Storm
83c6eb57fc (Qface, Qmouse_face): Remove unused externs.
(x_draw_hollow_cursor): Draw cursor using glyph's rather than
row's ascent and descent, to get a sensible height on tall rows.
2003-12-28 00:13:34 +00:00
Kim F. Storm
15aa58c18e (x_set_mouse_color): Remove bogus x_check_errors call.
(Qimage): Remove extern (now in lisp.h).
(valid_image_p, parse_image_spec): Use IMAGEP macro.
2003-12-28 00:13:10 +00:00
Kim F. Storm
d7078aefa0 (cache_face): Abort if c->size exceeds MAX_FACE_ID. 2003-12-28 00:12:45 +00:00
Kim F. Storm
493fdc3cc3 (Qarrow, Qhand, Qtext, Qpointer): New variables for
pointer types.
(Qrelative_width, Qalign_to): Remove unused variables.
(Vvoid_text_area_pointer): Replace Vshow_text_cursor_in_void.
(QCmap, QCpointer, Qrect, Qcircle, Qpoly): New variables for
image maps.
(x_y_to_hpos_vpos): Return glyph relative coordinates through
new dx and dy args.
Remove buffer_only_p arg (always 0).  Simplify code accordingly.
(get_glyph_string_clip_rect): Draw cursor using glyph's rather
than row's ascent and height, to get sensible height on tall rows.
(build_desired_tool_bar_string): Remove Qimage extern.
(get_tool_bar_item): Fix call to x_y_to_hpos_vpos.
(produce_image_glyph): Adjust it.ascent to minimum row ascent if
image glyph is alone on the last line.
(append_glyph, append_composite_glyph, produce_image_glyph)
(append_stretch_glyph): Set glyph's ascent and descent.
(on_hot_spot_p): New function to check if position is inside an
rectangular, circular, or polygon-shaped image hot-spot,
(find_hot_spot): New function to search for image hot-spot.
(Flookup_image_map): New defun to search for image hot-spot.
(define_frame_cursor1): New aux function to determine frame pointer.
(note_mode_line_or_margin_highlight, note_mouse_highlight):
Handle `pointer' text property and :pointer image property to
control frame pointer shape.  Detect image hot-spots for pointer
and help_echo properties.  Use define_frame_cursor1.
(note_mouse_highlight):	Use Vvoid_text_area_pointer.
(syms_of_xdisp): Defsubr new defun. Intern and staticpro new variables.
DEFVAR_LISP Vvoid_text_area_pointer instead of Vshow_text_cursor_in_void.
2003-12-28 00:12:27 +00:00
Kim F. Storm
82cf95a792 (Qimage): Remove extern (now in lisp.h).
(valid_image_p, parse_image_spec): Use IMAGEP macro.
2003-12-28 00:11:49 +00:00
Kim F. Storm
dea9b52152 (IMAGEP): New macro to test for image object type.
(Qimage): Declare extern.
2003-12-28 00:11:03 +00:00
Kim F. Storm
2e3f0f616b (Qimage): Remove extern (now in lisp.h).
(QCmap): Declare extern.
(make_lispy_position): When position is inside image hot-spot,
use hot-spot element as posn element.
2003-12-28 00:10:41 +00:00
Kim F. Storm
60bf162981 (buffer_posn_from_coords): Fix calculation of dy for
image glyph using image's ascent.
(mode_line_string): Return image glyph as object clicked on.
Adjust y0 for image glyph using image's ascent.
2003-12-28 00:10:12 +00:00
Kim F. Storm
01b1f0c05b (FACE_ID_BITS, MAX_FACE_ID): New defines.
(struct glyph): New members, ascent and descent.  Used to save
this glyph's ascent and descent, instead of having.
(struct glyph): Declare member face_id using FACE_ID_BITS.
(find_hot_spot): Add prototype.
2003-12-28 00:09:49 +00:00