view etc/ms-7bkermit @ 51207:7e176ef34c10

Make (many) trivial substitutions for renamed and new macros in dispextern.h, frame.h and window.h. (make_window): Initialize new members left_margin_cols, right_margin_cols, left_fringe_width, right_fringe_width, fringes_outside_margins, scroll_bar_width, and vertical_scroll_bar_type. (coordinates_in_window): Adapted to new fringe/margin positions and per-window fringes and scroll-bars. Fix bug related to incorrectly adjusting coordinates by frame's internal_border_width (the effect normally negible since the internal_border_width is typically 0 or 1 pixel, but very noticeable for an internal_border_width of e.g. 25 pixels). Upon successful return (other than ON_NOTHING), the coordinates are now always properly converted to window relative for the given display element. (window_from_coordinates): Add new parameters wx and wy to return the window relative x and y position in the returned window and part. A null arg means, don't return the position. All callers changed. (adjust_window_margins): New function which may reduce the width of the display margins if a window's text area is too small after resizing or splitting windows. (size_window): Fix bug that did not account for display margin widths when checking the minimum width of a window; use adjust_window_margins. (set_window_buffer): Call Fset_window_fringes and Fset_window_scroll_bars to setup per-window elements. Add new arg KEEP_MARGINS_P. Non-nil means to keep window's existing display margin, fringe widths, and scroll bar settings (e.g. after splitting a window or resizing the frame). All callers changed. (Fset_window_buffer): New arg KEEP_MARGINS. All callers changed. (Fsplit_window): Duplicate original window's display margin, fringe, and scroll-bar settings; then call Fset_window_buffer with KEEP_MARGINS non-nil. This fixes a bug which caused a split window to only preserve the display margins in one of the windows. When splitting horisontally, call adjust_window_margins on both windows to ensure that the text area of the new windows is non too narrow. This fixes a bug which could cause emacs to trap if the width of the split window was less than the width of the display margins. (window_box_text_cols): Renamed from window_internal_width. All uses changed. Adapt to per-window fringes and scroll bars. Fix bug that caused vertical separator to be subtracted also on window frames. Fix another bug that did not reduce the returned value by the columns used for display margins. (window_scroll_line_based): Fix bug related to scrolling too much when display margins are present (implicitly fixed by the fix to window_box_text_cols). (scroll_left, scroll_right): Fix bug related to scrolling too far by default when display margins are present (implicitly fixed by the fix to window_box_text_cols). (struct saved_window): Rename members left to left_col, top to top_line, width to total_cols, height to total_lines, orig_top to orig_top_line, orig_height to orig_total_lines. All uses changed. New members left_margin_cols, right_margin_cols, left_fringe_width, right_fringe_width, fringes_outside_margins, scroll_bar_width, and vertical_scroll_bar_type for saving per-window display elements. (Fset_window_configuration): Restore display margins, fringes, and scroll bar settings. This fixes a bug which caused display margins to be discarded when saving and restoring a window configuration. (save_window_save): Save display margins, fringes, and scroll bar settings. This fixes a bug which caused display margins to be discarded when saving and restoring a window configuration. (Fset_window_margins): Do nothing if display margins are not really changed. Otherwise, call adjust_window_margins to ensure the text area doesn't get too narrow. This fixes a bug which could cause emacs to trap if setting display margins wider than the width of the window. (Fset_window_fringes): New defun to allow user to specifically set this window's fringe widths and position vs. display margins. (Fwindow_fringes): New defun to return window's actual fringe settings. (Fset_window_scroll_bars): New defun to allow user to specifically set this window's scroll bar width and position. (Fwindow_scroll_bars): New defun to return window's actual scroll bar settings. (compare_window_configurations): Also compare display margins, fringes, and scroll bar settings. (syms_of_window): Defsubr new defuns for fringe and scroll bars.
author Kim F. Storm <storm@cua.dk>
date Sat, 24 May 2003 22:07:51 +0000
parents 23a1cea22d13
children 695cf19ef79e
line wrap: on
line source

;;; This file is designed for 7-bit connections.
;;; Use the file ms-kermit if you have an 8-bit connection.

;;; This kermit script maps the IBM-PC keyboard for use with Gnu Emacs.
;;; The ALT key is used to generate Meta characters and, in conjunction
;;; with the CTRL key, Control-Meta characters.  A few other useful
;;; mappings are also performed.
;;; Andy Lowry, May 1989

;;; Exchange ESC and backquote... tilde stays put (shift-backquote)
set key \27 `
set key ` \27

;;; BACKSPACE deletes backward one character
set key scan \270 \127

;;; The following mappings affect certain special keys... all the keys
;;; are duplicated on the numeric keypad when NUM LOCK is off, but
;;; the keypad versions are NOT mapped (string definition space too small
;;; for that)

;;; INSERT toggles overwrite mode
set key scan \4434 \27xoverwrite-mode\13
;;; HOME moves point to beginning of buffer
set key scan \4423 \27<
;;; PAGE-UP scrolls backward one screen
set key scan \4425 \27v
;;; DELETE deletes one character *forward*
set key scan \4435 \4
;;; END moves point to end of buffer
set key scan \4431 \27>
;;; PAGE-DOWN scrolls forward one screen
set key scan \4433 \22
;;; ARROW keys move in the appropriate directions
set key scan \4424 \16
set key scan \4427 \2
set key scan \4432 \14
set key scan \4429 \6

;;; META versions of all the printing characters except uppercase
;;; letters are generated by using the ALT key.  The definition string
;;; consists of an ESC character followed by the META-ized character.
;;; The characters are listed roughly left-to-right and top-to-bottom
;;; as they appear on the keyboard
set key scan \2345 \27`
set key scan \2424 \27\o61	; need to use char code, since digit
set key scan \2425 \27\o62	; would not terminate '\27'
set key scan \2426 \27\o63
set key scan \2427 \27\o64
set key scan \2428 \27\o65
set key scan \2429 \27\o66
set key scan \2430 \27\o67
set key scan \2431 \27\o70
set key scan \2432 \27\o71
set key scan \2433 \27\o60
set key scan \2434 \27\45
set key scan \2435 \27=
set key scan \2857 \27~
set key scan \2936 \27!
set key scan \2937 \27@
set key scan \2938 \27#
set key scan \2939 \27$
set key scan \2940 \27%
set key scan \2941 \27^
set key scan \2942 \27&
set key scan \2943 \27*
set key scan \2944 \27(
set key scan \2945 \27)
set key scan \2946 \27_
set key scan \2947 \27+
set key scan \2469 \27\9
set key scan \2320 \27q
set key scan \2321 \27w
set key scan \2322 \27e
set key scan \2323 \27r
set key scan \2324 \27t
set key scan \2325 \27y
set key scan \2326 \27u
set key scan \2327 \27i
set key scan \2328 \27o
set key scan \2329 \27p
set key scan \2330 \27[
set key scan \2842 \27{
set key scan \2331 \27]
set key scan \2843 \27}
set key scan \2347 \27\
set key scan \2859 \27|
set key scan \2334 \27a
set key scan \2335 \27s
set key scan \2336 \27d
set key scan \2337 \27f
set key scan \2338 \27g
set key scan \2339 \27h
set key scan \2340 \27j
set key scan \2341 \27k
set key scan \2342 \27l
set key scan \2343 \27\59
set key scan \2855 \27:
set key scan \2344 \27'
set key scan \2856 \27"
set key scan \2348 \27z
set key scan \2349 \27x
set key scan \2350 \27c
set key scan \2351 \27v
set key scan \2352 \27b
set key scan \2353 \27n
set key scan \2354 \27m
set key scan \2355 \27,
set key scan \2867 \27<
set key scan \2356 \27.
set key scan \2868 \27>
set key scan \2357 \27/
set key scan \2869 \27?

;;; CONTROL-META characters are generated by using both the CTRL and
;;; ALT keys simultaneously.  All the lowercase letters are included.
;;; The definition string consists of an ESC character followed by
;;; the control character corresponding to the letter.
set key scan \3344 \27\17
set key scan \3345 \27\23
set key scan \3346 \27\5
set key scan \3347 \27\18
set key scan \3348 \27\20
set key scan \3349 \27\25
set key scan \3350 \27\21
set key scan \3351 \27\9
set key scan \3352 \27\15
set key scan \3353 \27\16
set key scan \3358 \27\1
set key scan \3359 \27\19
set key scan \3360 \27\4
set key scan \3361 \27\6
set key scan \3362 \27\7
set key scan \3363 \27\8
set key scan \3364 \27\10
set key scan \3365 \27\11
set key scan \3366 \27\12
set key scan \3372 \27\26
set key scan \3373 \27\24
set key scan \3374 \27\3
set key scan \3375 \27\22
set key scan \3376 \27\2
set key scan \3377 \27\14
set key scan \3378 \27\13

end of msiem2.ini
------------------

msiema.hlp
-----------
Date:     Wed, 14 Sep 88 05:20:08 GMT
From:     spolsky@YALE.ARPA
Subject:  Using MS kermit 2.31 with emacs
Keywords: MS-DOS Kermit 2.31, EMACS, Meta Key

If you are using kermit (version 2.31 only) with emacs on a mainframe, the
following file may help you. It assigns all the Alt-keys so that the Alt key
may be used as a "Meta" shift, e.g. Alt-x produces M-x, etc.  Note that it
will distinguish correctly between upper and lower case and accepts all
printables. (If anybody has the patience to do the Meta-Ctrl combinations,
please post them!)  This actually sends "escapes" so you don't need 8 bits.
This file also sets up the cursor keys to behave as expected.

On extended keyboards (the ones with a separate cursor pad, like PS/2s) you
also get assignments for Page Up/Down, Home, End, Insert, Delete, etc.

Please let me know if you find any problems with this.

Joel Spolsky             bitnet: spolsky@yalecs     uucp: ...!yale!spolsky
Yale University          arpa:   spolsky@yale.edu   voicenet: 203-436-1483

[Ed. - Thanks, Joel!  Your key definitions file has been put in the kermit
distribution area as msiema.ini ("ms" for MS-Kermit, "i" because it's an
initialization file, "ema" for EMACS), along with this message as msiema.hlp.]

end of msiema.hlp
-----------------


msiema.ini
------------
; Emacs keyboard layout for Kermit 2.31
; by Joel Spolsky, Yale Univ.  Save this in a file, then
; initialize it by issuing the kermit command
; take filename
; It will set up the keyboard to allow ALT to be used
; as a meta-key, and will allow cursor keys to be used
; with emacs.

; First, define all the ALT keys to send ESC+key
; to simulate "meta"

set key \2320 \27q  ;; letters: unshifted
set key \2321 \27w
set key \2322 \27e
set key \2323 \27r
set key \2324 \27t
set key \2325 \27y
set key \2326 \27u
set key \2327 \27i
set key \2328 \27o
set key \2329 \27p
set key \2334 \27a
set key \2335 \27s
set key \2336 \27d
set key \2337 \27f
set key \2338 \27g
set key \2339 \27h
set key \2340 \27j
set key \2341 \27k
set key \2342 \27l
set key \2348 \27z
set key \2349 \27x
set key \2350 \27c
set key \2351 \27v
set key \2352 \27b
set key \2353 \27n
set key \2354 \27m
set key \2832 \27Q ;; letters: shifted
set key \2833 \27W
set key \2834 \27E
set key \2835 \27R
set key \2836 \27T
set key \2837 \27Y
set key \2838 \27U
set key \2839 \27I
set key \2840 \27O
set key \2841 \27P
set key \2846 \27A
set key \2847 \27S
set key \2848 \27D
set key \2849 \27F
set key \2850 \27G
set key \2851 \27H
set key \2852 \27J
set key \2853 \27K
set key \2854 \27L
set key \2860 \27Z
set key \2861 \27X
set key \2862 \27C
set key \2863 \27V
set key \2864 \27B
set key \2865 \27N
set key \2866 \27M
set key \2857 \27\126    ; ALT + ~   ;; special symbols begin here
set key \2345 \27\96     ; ALT + `
set key \2936 \27\33     ; ALT + !
set key \2937 \27\64     ; ALT + @
set key \2938 \27\35     ; ALT + #
set key \2939 \27\36     ; ALT + $
set key \2940 \27\37     ; ALT + %
set key \2941 \27\94     ; ALT + ^
set key \2942 \27\38     ; ALT + &
set key \2943 \27\42     ; ALT + *
set key \2944 \27\40     ; ALT + (
set key \2945 \27\41     ; ALT + )
set key \2946 \27\95     ; ALT + _
set key \2947 \27\43     ; ALT + +
set key \2842 \27\123    ; ALT + {
set key \2843 \27\125    ; ALT + }
set key \2330 \27\91     ; ALT + [
set key \2331 \27\93     ; ALT + ]
set key \2859 \27\124    ; ALT + :
set key \2347 \27\92     ; ALT + \
set key \2867 \27<       ; ALT + <
set key \2868 \27>       ; ALT + >
set key \2343 \27\59     ; ALT + ;
set key \2855 \27\58     ; ALT + :
set key \2344 \27\39     ; ALT + '
set key \2856 \27\34     ; ALT + "
set key \2355 \27\44     ; ALT + ,
set key \2356 \27\46     ; ALT + .
set key \2357 \27\47     ; ALT + /
set key \2869 \27\63     ; ALT + ?
set key \2424 \27\49  ;; numbers
set key \2425 \27\50
set key \2426 \27\51
set key \2427 \27\52
set key \2428 \27\53
set key \2429 \27\54
set key \2430 \27\55
set key \2431 \27\56
set key \2432 \27\57
set key \2433 \27\48

;; These 6 special keys for extended (PS/2) keyboards:
set key \4434 \25      ;; Insert is like ^Y - yank from kill ring
set key \4435 \23      ;; Delete is like ^W - kill to ring
set key \4423 \1       ;; Home is ^A
set key \4431 \5       ;; End is ^E
set key \4425 \27V     ;; Page up is Esc-V
set key \4433 \22      ;; Page dn is ^v

set key \328 \16       ;; up cursor is ^P
set key \331 \2        ;; left cursor is ^B
set key \333 \6        ;; right cursor is ^F
set key \336 \14       ;; down cursor is ^N
set key \4427 \2       ;; left cursor on extended kbd
set key \4432 \14      ;; down cursor on extended kbd
set key \4424 \16      ;; up cursor on extended kbd
set key \4429 \6       ;; right cursor on extended kbd

set key \5491 \27b     ;; ctrl-left cursor is M-b
set key \5492 \27f     ;; ctrl-right cursor is M-f

;; move kermit's screen scroll (playback) features to Alt- Home,End,PgUp,PgDn
;; (this is an issue for extended keyboards only)

set key \2455 \khomscn
set key \2463 \kendscn
set key \2457 \kupscn
set key \2465 \kdnscn