]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - include/Caps.uwin
ncurses 6.4 - patch 20240120
[ncurses.git] / include / Caps.uwin
index 3c1ef9413ee78f3b1f4285e7903fb65529652de2..755c76974313bc767e41a77f932d27ae3b110199 100644 (file)
@@ -1,5 +1,6 @@
 ##############################################################################
-# Copyright (c) 2001-2016,2019 Free Software Foundation, Inc.                #
+# Copyright 2019-2023,2024 Thomas E. Dickey                                  #
+# Copyright 2001-2015,2016 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -28,7 +29,7 @@
 #
 # Author: Thomas Dickey
 #
-# $Id: Caps.uwin,v 1.9 2019/04/13 19:55:29 tom Exp $
+# $Id: Caps.uwin,v 1.20 2024/01/20 16:51:41 Branden.Robinson Exp $
 #
 # This is an adaptation of ncurses' termcap/terminfo capability table, which
 # is designed to align with U/Win's terminfo.
@@ -47,7 +48,7 @@
 #
 # Column 1: terminfo variable name
 # Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
+# Column 3: capability type (Boolean, numeric, or string)
 # Column 4: termcap capability name
 # Column 5: KEY_xxx name, if any, `-' otherwise
 # Column 6: value for KEY_xxx name, if any, `-' otherwise
@@ -57,7 +58,7 @@
 #
 # The codes following [Y-] in column 7 describe the versions of termcap which
 # use the given capability.  This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# proper; rather, it is there to help the terminfo maintainer avoid emitting
 # termcap entry translations that are more than 1023 bytes long (and tank a
 # lot of old termcap-using programs).  The codes read as follows:
 #      B = mentioned in the BSD man page for 4.4BSD curses
@@ -97,8 +98,8 @@
 # 3. List it in the standard table.  You almost certainly do *not* want
 # to do this -- the capabilities in that one, and their order, have been
 # carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad.  It's up to the ncurses
-# library what to do with the terminfo data after it's read in.
+# as a terminfo object, and breaking this would be bad.  It is up to the ncurses
+# library what to do with the terminfo data after it is read in.
 #
 # 4. List it in the aliases table with an IGNORE target field.  If you
 # do this, the capability will be ignored on input (though the user will
 # 5. List it in the extensions table. If you do this, the compiler will
 # silently accept the capability, but the curses library proper will never
 # see it (because it won't be written out as part of the terminfo object
-# format).  It's up to you what you have the compiler do with it.
+# format).  It is up to you what you have the compiler do with it.
 #
 # There are two opposite reasons to choose option 5.  One is when you want
 # to eat the capability silently and discard it when doing translations
 # to buy space for non-essentials Emacs is still using.  Capabilities high
 # on that hit list: rc, sc, uc.
 #
+# FORMATTING THE TABLES
+#
+# We manually specify a (minimum) column width for the capability name
+# and terminfo code columns in the tables to achieve a consistent
+# arrangement; as used here, tbl(1) cannot know the width required by
+# one table's data while formatting another's.
+#
+# The longest capability names (C variable) is
+# "hue_lightness_saturation" (24n), and the longest terminfo code is
+# "colornm" (7n).
+#
+# The tables are a tight fit on traditional man(7) implementations that
+# use a line length of 65n, and the "Description" column has little room
+# within which the formatter can make breaking or adjustment decisions.
+# Words like "micro_..._address" and "parm_..._micro" don't break.
+# Reducing the inter-column gaps to 2 ens gives them enough room.  --GBR
+#
 #############################################################################
 #
 # STANDARD CAPABILITIES
 #
 #%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code.  In each
-#%line of the table,
-#%
+#%terminfo description block and available to terminfo-using code.
+#%In each line of the table,
+#%.bP
 #%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
 #%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
+#%.bP
+#%The \fBcapname\fR (\fICap-name\fP)
+#%is the short name used in the text of the database,
 #%and is used by a person updating the database.
+#%.IP
 #%Whenever possible, capnames are chosen to be the same as or similar to
 #%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names).  Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
+#%identical or very similar names).
+#%Semantics are also intended to match those of the specification.
+#%.IP
 #%Capability names have no hard length limit, but an informal limit of 5
 #%characters has been adopted to keep them short and to allow the tabs in
 #%the source file
 #%.B Caps
 #%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability.  You may find some codes in the description field:
+#%.bP
+#%The \fBtermcap\fP (\fITcap\fP) code is the old capability name
+#%(some capabilities are new, and have names which termcap did not originate).
+#%.bP
+#%Finally, the \fBdescription\fP field attempts to convey the semantics of the
+#%capability.
+#%.PP
+#%You may find some codes in the description field:
 #%.TP
 #%(P)
 #%indicates that padding may be specified
 #%.TP
 #%#[1-9]
-#%in the description field indicates that the string is passed through tparm with
-#%parms as given (#\fIi\fP).
+#%in the description field indicates that the string is passed
+#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP).
+#%.IP
+#%If no parameters are listed in the description,
+#%passing the string through \fBtparm\fP(3X) may give unexpected results,
+#%e.g., if it contains percent (%%) signs.
 #%.TP
 #%(P*)
 #%indicates that padding may vary in proportion to the number of
 #%.TP
 #%(#\d\fIi\fP\u)
 #%indicates the \fIi\fP\uth\d parameter.
-#%
+#%.
 #%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable  Cap-    TCap    Description\fR
-#%\fBBooleans  name    Code\fR
+#%.TS
+#%center;
+#%Lb        Cb       S   Lb
+#%Lb        Lb       Lb  Lb
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
+#%\&   Code    \&
+#%Boolean Capability Name      TI      TC      Description
+#%_
 auto_left_margin               bw      bool    bw      -       -       YB-G-   cub1 wraps from column 0 to last column
 auto_right_margin              am      bool    am      -       -       YBCGE   terminal has automatic margins
 no_esc_ctlc                    xsb     bool    xb      -       -       YBCG-   beehive (f1=escape, f2=ctrl C)
@@ -240,18 +262,16 @@ back_color_erase          bce     bool    ut      -       -       -----   screen erased with background color
 can_change                     ccc     bool    cc      -       -       -----   terminal can re-define existing colors
 hue_lightness_saturation       hls     bool    hl      -       -       -----   terminal uses only HLS color notation (Tektronix)
 #%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable  Cap-    TCap    Description\fR
-#%\fBNumeric   name    Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb        Cb       S   Lb
+#%Lb        Lb       Lb  Lb
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
+#%\&   Code    \&
+#%Numeric Capability Name      TI      TC      Description
+#%_
 columns                                cols    num     co      -       -       YBCGE   number of columns in a line
 init_tabs                      it      num     it      -       -       YB-G-   tabs initially every # spaces
 lines                          lines   num     li      -       -       YBCGE   number of lines on screen or page
@@ -271,24 +291,16 @@ max_colors                        colors  num     Co      -       -       -----   maximum number of colors on screen
 max_pairs                      pairs   num     pa      -       -       -----   maximum number of color-pairs on the screen
 no_color_video                 ncv     num     NC      -       -       -----   video attributes that cannot be used with colors
 #%.TE
-#%.ad
-#%
-#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page.  They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable  Cap-    TCap    Description\fR
-#%\fBString    name    Code\fR
+#%.PP
+#%.
+#%.TS
+#%center;
+#%Lb        Cb       S   Lb
+#%Lb        Lb       Lb  Lb
+#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
+#%\&   Code    \&
+#%String Capability Name       TI      TC      Description
+#%_
 back_tab                       cbt     str     bt      -               -       YBCGE   back tab (P)
 bell                           bel     str     bl      -               -       YB-GE   audible signal (bell) (P)
 carriage_return                        cr      str     cr      -               -       YBCGE   carriage return (P*) (P*)
@@ -564,7 +576,7 @@ key_f62                             kf62    str     Fq      KEY_F(62)       -       ----E   F62 function key
 key_f63                                kf63    str     Fr      KEY_F(63)       -       ----E   F63 function key
 clr_bol                                el1     str     cb      -               -       -----   Clear to beginning of line
 clear_margins                  mgc     str     MC      -               -       -----   clear right and left soft margins
-set_left_margin                        smgl    str     ML      -               -       -----   set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
+set_left_margin                        smgl    str     ML      -               -       -----   set left soft margin at current column.  (ML is not in BSD termcap).
 set_right_margin               smgr    str     MR      -               -       -----   set right soft margin at current column
 device_type                    devt    str     dv      -               -       -----   Indicate language/codeset support
 code_set_init                  csin    str     ci      -               -       -----   Init sequence for multiple codesets
@@ -588,7 +600,6 @@ set_background                      setb    str     Sb      -               -       -----   Set background color #1
 set_color_pair                 scp     str     sp      -               -       -----   Set current color pair to #1
 set_foreground                 setf    str     Sf      -               -       -----   Set foreground color #1
 #%.TE
-#%.ad
 #%
 # The magic token below tells the tic compiler-generator code that all the caps
 # past it should be ignored (not written out) when dumping terminfo objects. It
@@ -667,9 +678,9 @@ gnu_has_meta_key            OTMT    bool    MT      -               -       ----E   has meta key
 # comma-separated list of capabilities for which there are corresponding keys.
 # The `kn' code is accepted but ignored.
 #
-# The `ma' capability seems to have been designed to map between the rogue(2)
-# motion keys (including jkhl) and characters emitted by arrow keys on some
-# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
+# The `ma' capability was a 4.0BSD feature used by vi version 2.
+# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
+# Besides being obsolete, that interpretation conflicts with max_attributes.
 #
 # Here is a description of memory_lock_above and memory_unlock:
 # "You can 'freeze' data on the screen by turning on Memory Lock in a line of
@@ -695,14 +706,14 @@ horizontal_tab_delay              OTdT    num     dT      -               -       YB-G-   padding required for ^I
 # vertical_tab_delay           OTdV    num     dV      -               -       -B---   padding required for ^V
 number_of_function_keys                OTkn    num     kn      -               -       -B-G-   count of function keys
 other_non_function_keys                OTko    str     ko      -               -       -B-G-   list of self-mapped keycaps
-arrow_key_map                  OTma    str     ma      -               -       YBC--   map arrow keys rogue(1) motion keys
+arrow_key_map                  OTma    str     ma      -               -       YBC--   map motion-keys for vi version 2
 # memory_lock_above            OTml    str     ml      -               -       -B---   lock visible screen memory above the current line
 # memory_unlock                        OTmu    str     mu      -               -       -B---   unlock visible screen memory above the current line
 has_hardware_tabs              OTpt    bool    pt      -               -       YB---   has 8-char tabs invoked with ^I
 return_does_clr_eol            OTxr    bool    xr      -               -       YB---   return clears the line
 # tek_4025_insert_line         OTxx    bool    xx      -               -       -BC--   Tektronix 4025 insert-line glitch
 #
-# mytinfo described this as a termcap capability, but it's not listed in the
+# mytinfo described this as a termcap capability, but it is not listed in the
 # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
 # package, like System V, behaves as though it is always true.
 #