diff lisp/simple.el @ 83420:521d3f18b3d1

Reimplement terminal parameters in C; clean up term.c, create terminal.c. * lisp/termdev.el (terminal-parameter-alist, terminal-parameters, terminal-parameter-p) (terminal-parameter, set-terminal-parameter, terminal-handle-delete-frame): Remove. * src/term.c (Vring_bell_function, device_list, initial_device) (next_device_id, ring_bell, update_begin, update_end) (set_terminal_window, cursor_to, raw_cursor_to) (clear_to_end, clear_frame, clear_end_of_line) (write_glyphs, insert_glyphs, delete_glyphs, ins_del_lines) (get_device, Fdisplay_name, create_device, delete_device) (Fdelete_display, Fdisplay_live_p, Fdisplay_list) Move to terminal.c. (syms_of_term): Move their initialization to terminal.c. * src/terminal.c: New file. (device_list, next_device_id, initial_device, Vring_bell_function) (ring_bell, update_begin, update_end, set_terminal_window) (cursor_to, raw_cursor_to, clear_to_end, clear_frame) (clear_end_of_line, write_glyphs, insert_glyphs, delete_glyphs) (ins_del_lines, get_device, create_device, delete_device) (Fdelete_display, Fdisplay_live_p, Fdisplay_list, Fdisplay_name): Move here. (mark_devices, get_terminal_param, store_terminal_param) (Fterminal_parameters, Fterminal_parameter) (Fmodify_terminal_parameters, Fset_terminal_parameter) (init_initial_device, delete_initial_device) (syms_of_terminal): New functions. * lisp/simple.el (normal-erase-is-backspace-setup-frame) (normal-erase-is-backspace-mode): Rephrase things without terminal-parameter-p. * lisp/termdev.el (terminal-getenv, terminal-setenv) (with-terminal-environment): Ditto. * mac/makefile.MPW (EmacsObjects): Add terminal.c.x. ({Src}terminal.c.x): Add dependencies. * src/Makefile.in (obj): Add terminal.o. (terminal.o): Add dependencies. [HAVE_CARBON]: Make terminal.o depend on macgui.h. * src/alloc.c (mark_devices): Declare. (Fgarbage_collect): Call `mark_devices'. * src/dispextern.h (set_scroll_region, turn_off_insert) (turn_off_highlight, background_highlight, clear_end_of_line_raw) (tty_clear_end_of_line, tty_setup_colors, delete_tty): Remove. (raw_cursor_to, clear_to_end, tty_turn_off_insert) (tty_turn_off_highlight): Add declaration. * src/emacs.c (main): Call `syms_of_terminal'. * src/frame.c (get_future_frame_param): New function. (Fmake_terminal_frame): Use it. * src/keyboard.c (pop_kboard): Remove unused variable. (Fset_output_flow_control): Return nil. * src/keymap.h (Fset_keymap_parent): Add EXFUN. * src/lisp.h (syms_of_terminal): Declare it. * src/sysdep.c (reset_sys_modes): Update for renames. * src/term.c (set_scroll_region): Rename to `tty_set_scroll_region'. (turn_on_insert): Rename to `tty_turn_on_insert'. (turn_off_insert): Rename to `tty_turn_off_insert'. (turn_off_highlight): Rename to `tty_turn_off_highlight'. (turn_on_highlight): Rename to `tty_turn_on_highlight'. (toggle_highligh): Rename to `tty_toggle_highlight'. (background_highlight): Rename to `tty_background_highlight'. (highlight_if_desired): Rename to `tty_highlight_if_desired'. (tty_ring_bell, tty_update_end, tty_set_terminal_window) (tty_set_scroll_region, tty_background_highlight) (tty_cursor_to, tty_raw_cursor_to, tty_clear_to_end) (tty_clear_frame, tty_clear_end_of_line, tty_write_glyphs) (tty_insert_glyphs, tty_delete_glyphs, tty_ins_del_lines) (term_get_fkeys, tty_setup_colors, dissociate_if_controlling_tty) (delete_tty): Add static modifier. (tty_reset_terminal_modes, tty_set_terminal_window) (tty_set_scroll_region, tty_background_highlight) (tty_highlight_if_desired, tty_cursor_to) (tty_raw_cursor_to, tty_clear_to_end, tty_clear_frame) (tty_clear_end_of_line, tty_write_glyphs, tty_insert_glyphs) (tty_delete_glyphs, tty_ins_del_lines, turn_on_face): Update for renames. * src/termhooks.h (param_alist): New member to struct device. * src/xterm.h (x_delete_device): Declare. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-460
author Karoly Lorentey <lorentey@elte.hu>
date Sun, 25 Dec 2005 20:06:58 +0000
parents d2c799f58129
children d0eee3282e6b
line wrap: on
line diff
--- a/lisp/simple.el	Fri Dec 23 03:36:01 2005 +0000
+++ b/lisp/simple.el	Sun Dec 25 20:06:58 2005 +0000
@@ -5323,10 +5323,8 @@
   "Set up `normal-erase-is-backspace-mode' on FRAME, if necessary."
   (unless frame (setq frame (selected-frame)))
   (with-selected-frame frame
-    (unless (terminal-parameter-p nil 'normal-erase-is-backspace)
-      (if (cond ((terminal-parameter-p nil 'normal-erase-is-backspace)
-		 (terminal-parameter nil 'normal-erase-is-backspace))
-		((eq normal-erase-is-backspace 'maybe)
+    (unless (terminal-parameter nil 'normal-erase-is-backspace)
+      (if (cond ((eq normal-erase-is-backspace 'maybe)
 		 (and (not noninteractive)
 		      (or (memq system-type '(ms-dos windows-nt))
 			  (eq window-system 'mac)
@@ -5376,9 +5374,10 @@
   (interactive "P")
   (set-terminal-parameter
    nil 'normal-erase-is-backspace
-   (if arg
-       (> (prefix-numeric-value arg) 0)
-     (not (terminal-parameter nil 'normal-erase-is-backspace))))
+   (if (or (and arg (> (prefix-numeric-value arg) 0))
+	   (not (eq 1 (terminal-parameter nil 'normal-erase-is-backspace))))
+       0
+     1))
 
   (cond ((or (memq window-system '(x w32 mac pc))
 	     (memq system-type '(ms-dos windows-nt)))
@@ -5390,7 +5389,7 @@
 		    [C-delete] [C-backspace])))
 		(old-state (lookup-key local-function-key-map [delete])))
 
-	   (if (terminal-parameter nil 'normal-erase-is-backspace)
+	   (if (eq 1 (terminal-parameter nil 'normal-erase-is-backspace))
 	       (progn
 		 (define-key local-function-key-map [delete] [?\C-d])
 		 (define-key local-function-key-map [kp-delete] [?\C-d])
@@ -5412,7 +5411,7 @@
 		   (define-key map key1 binding2)
 		   (define-key map key2 binding1)))))))
 	 (t
-	  (if (terminal-parameter nil 'normal-erase-is-backspace)
+	  (if (eq 1 (terminal-parameter nil 'normal-erase-is-backspace))
 	      (progn
 		(keyboard-translate ?\C-h ?\C-?)
 		(keyboard-translate ?\C-? ?\C-d))
@@ -5422,7 +5421,8 @@
   (run-hooks 'normal-erase-is-backspace-hook)
   (if (interactive-p)
       (message "Delete key deletes %s"
-	       (if normal-erase-is-backspace "forward" "backward"))))
+	       (if (terminal-parameter nil 'normal-erase-is-backspace)
+		   "forward" "backward"))))
 
 (defvar vis-mode-saved-buffer-invisibility-spec nil
   "Saved value of `buffer-invisibility-spec' when Visible mode is on.")