X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fscr_dump.5.html;h=0295c9d53b3d5eeee807065e084f50e2ae7b0f6c;hb=bf2c36c4930ac5bb04cd2b1ba209cd09b6f510ab;hp=3550c4b8c8115f99be000f4156d991405f44910b;hpb=9f479192e3ca3413d235c66bf058f8cc63764898;p=ncurses.git diff --git a/doc/html/man/scr_dump.5.html b/doc/html/man/scr_dump.5.html index 3550c4b8..0295c9d5 100644 --- a/doc/html/man/scr_dump.5.html +++ b/doc/html/man/scr_dump.5.html @@ -1,6 +1,6 @@ -scr_dump 5 +scr_dump 5 2023-12-30 ncurses 6.4 File formats - + -

scr_dump 5

+

scr_dump 5 2023-12-30 ncurses 6.4 File formats

-scr_dump(5)                   File Formats Manual                  scr_dump(5)
+scr_dump(5)                      File formats                      scr_dump(5)
 
 
 
 
 

NAME

-       scr_dump - format of curses screen-dumps.
-
-
-

SYNOPSIS

-       scr_dump
+       scr_dump - curses screen dump
 
 
 

DESCRIPTION

        The  curses library provides applications with the ability to write the
-       contents of a window to an external file using scr_dump or putwin,  and
-       read it back using scr_restore or getwin.
+       contents of a window to an external file using scr_dump or putwin,  and
+       read it back using scr_restore or getwin.
 
-       The  putwin  and  getwin  functions  do  the  work;  while scr_dump and
-       scr_restore conveniently save  and  restore  the  whole  screen,  i.e.,
-       stdscr.
+       The  putwin  and  getwin  functions  do  the  work;  while scr_dump and
+       scr_restore conveniently save  and  restore  the  whole  screen,  i.e.,
+       stdscr.
 
 
 

ncurses6

        A  longstanding implementation of screen-dump was revised with ncurses6
        to remedy problems with the earlier approach:
 
-       o   A "magic number" is written to the  beginning  of  the  dump  file,
-           allowing  applications  (such  as file(1)) to recognize curses dump
+       o   A "magic number" is written to the  beginning  of  the  dump  file,
+           allowing  applications  (such  as file(1)) to recognize curses dump
            files.
 
            Because ncurses6 uses a new  format,  that  requires  a  new  magic
@@ -82,7 +78,7 @@
 
                0x88888888 (octal "\210\210\210\210")
 
-           This is the pattern  submitted  to  the  maintainers  of  the  file
+           This is the pattern  submitted  to  the  maintainers  of  the  file
            program:
 
                #
@@ -93,84 +89,70 @@
                0    string    \210\210\210\210ncurses    ncurses6 screen image
                #
 
-       o   The screen dumps are written in textual form, so that internal data
+       o   The screen dumps are written in textual form, so that internal data
            sizes are not directly related to the dump-format, and enabling the
            library  to  read  dumps  from  either  narrow-  or wide-character-
            configurations.
 
-           The  narrow  library  configuration  holds  characters  and   video
-           attributes  in  a  32-bit  chtype, while the wide-character library
-           stores this information in the cchar_t  structure,  which  is  much
+           The  narrow  library  configuration  holds  characters  and   video
+           attributes  in  a  32-bit  chtype, while the wide-character library
+           stores this information in the cchar_t  structure,  which  is  much
            larger than 32-bits.
 
-       o   It  is  possible  to  read  a  screen  dump  into a terminal with a
+       o   It  is  possible  to  read  a  screen  dump  into a terminal with a
            different screen-size, because the library truncates or  fills  the
            screen as necessary.
 
-       o   The ncurses6 getwin reads the legacy screen dumps from ncurses5.
+       o   The ncurses6 getwin reads the legacy screen dumps from ncurses5.
 
 
-

ncurses5 (legacy)

-       The screen-dump feature was added to ncurses in June 1995.  While there
+

ncurses5 (Legacy)

+       The screen-dump feature was added to ncurses in June 1995.  While there
        were fixes and improvements in succeeding years, the basic  scheme  was
        unchanged:
 
-       o   The WINDOW structure was written in binary form.
+       o   The WINDOW structure was written in binary form.
 
-       o   The WINDOW structure refers to lines of data, which were written as
-           an array of binary data following the WINDOW.
+       o   The WINDOW structure refers to lines of data, which were written as
+           an array of binary data following the WINDOW.
 
-       o   When getwin restored the window, it would  keep  track  of  offsets
-           into  the  array of line-data and adjust the WINDOW structure which
+       o   When getwin restored the window, it would  keep  track  of  offsets
+           into  the  array of line-data and adjust the WINDOW structure which
            was read back into memory.
 
-       This is similar to Unix SystemV, but does not write a "magic number" to
-       identify the file format.
+       This is similar to Unix System V, but does not write a  "magic  number"
+       to identify the file format.
 
 
 

PORTABILITY

-       There  is  no  standard  format for putwin.  This section gives a brief
-       description of the existing formats.
+       There is no standard format for curses screen dumps.  A brief survey of
+       the existing implementations follows.
 
 
 

X/Open Curses

-       Refer to X/Open Curses, Issue 7 (2009).
-
-       X/Open's documentation for enhanced curses says only:
+       X/Open Curses, Issue 7 specifies little.  It  says  (boldface  emphasis
+       added)
 
-          The getwin( ) function reads window-related data stored in the  file
-          by  putwin( ).   The  function  then  creates  and initializes a new
+          "[t]he  getwin()  function  reads  window-related data stored in the
+          file by putwin().  The function then creates and initializes  a  new
           window using that data.
 
-          The putwin( ) function writes all data associated with win into  the
-          stdio  stream  to  which  filep points, using an unspecified format.
-          This information can be retrieved later using getwin( ).
+          The  putwin()  function writes all data associated with win into the
+          stdio stream to which filep points,  using  an  unspecified  format.
+          This information can be retrieved later using getwin()."
 
-       In the mid-1990s when the X/Open Curses  document  was  written,  there
-       were  still  systems  using older, less capable curses libraries (aside
-       from the BSD curses library which was not relevant to X/Open because it
-       did not meet the criteria for base curses).  The document explained the
-       term "enhanced" as follows:
+       In  the  mid-1990s  when  the X/Open Curses document was written, there
+       were still System V systems using older, less capable curses libraries.
+       BSD  curses  was  not  relevant  to  X/Open because it did not meet the
+       criteria for base-level conformance; see ncurses(3x).
 
-          o   Shading is used to identify  X/Open  Enhanced  Curses  material,
-              relating to interfaces included to provide enhanced capabilities
-              for applications originally written to be  compiled  on  systems
-              based  on  the  UNIX  operating system.  Therefore, the features
-              described may not be present on systems that conform to XPG4  or
-              to  earlier  XPG  releases.   The  relevant  reference pages may
-              provide additional or more specific portability  warnings  about
-              use of the material.
 
-       In  the foregoing, emphasis was added to unspecified format and to XPG4
-       or to earlier XPG releases, for clarity.
+

System V

+       System V curses identified the file format by writing a "magic  number"
+       at  the  beginning  of the dump.  The WINDOW data and the lines of text
+       follow, all in binary form.
 
-
-

Unix SystemV

-       Unix SystemV curses identified the file  format  by  writing  a  "magic
-       number" at the beginning of the dump.  The WINDOW data and the lines of
-       text follow, all in binary form.
-
-       The Solaris curses source has these definitions:
+       Solaris curses has the following definitions.
 
            /* terminfo magic number */
            #define MAGNUM  0432
@@ -180,86 +162,87 @@
            #define SVR3_DUMP_MAGIC_NUMBER  0434
 
        That is, the feature was likely introduced in SVr2 (1984), and improved
-       in SVr3 (1987).  The Solaris curses source has no magic number for SVr4
-       (1989).  Other operating systems (AIX and  HPUX)  use  a  magic  number
-       which would correspond to this definition:
+       in  SVr3  (1987).   Solaris curses has no magic number for SVr4 (1989).
+       Other System V operating systems (AIX and HP-UX)  use  a  magic  number
+       that would correspond to the following.
 
            /* curses screen dump magic number */
            #define SVR4_DUMP_MAGIC_NUMBER  0435
 
-       That  octal number in bytes is 001, 035.  Because most Unix vendors use
-       big-endian hardware, the magic number is written  with  the  high-order
-       byte first, e.g.,
+       That  octal  number in bytes is 001, 035.  Because most Unix vendors at
+       the time used big-endian hardware, the magic number is written with the
+       high-order byte first.
 
-            01 35
+           \001\035
 
-       After  the magic number, the WINDOW structure and line-data are written
-       in binary format.  While the magic number used by the Unix systems  can
-       be seen using od(1), none of the Unix systems documents the format used
-       for screen-dumps.
+       After  the magic number, the WINDOW structure and line data are written
+       in binary format.  While the magic number used by these systems can  be
+       observed  with od(1), none of them documents the format used for screen
+       dumps.
 
-       The Unix systems  do  not  use  identical  formats.   While  collecting
-       information  for  for  this  manual  page,  the savescreen test-program
-       produced dumps of different size (all  on  64-bit  hardware,  on  40x80
-       screens):
+       Nor do they use an identical format, even  with  the  System V  family.
+       The ncurses savescreen test program was used to collect information for
+       this manual page.  It produced dumps of different size (all  on  64-bit
+       hardware, on 40x80 screens):
 
-       o   AIX (51817 bytes)
+       o   AIX (51817 bytes)
 
-       o   HPUX (90093 bytes)
+       o   HP-UX (90093 bytes)
 
-       o   Solaris 10 (13273 bytes)
+       o   Solaris 10 (13273 bytes)
 
-       o   ncurses5 (12888 bytes)
+       o   ncurses5 (12888 bytes)
 
 
 

Solaris

-       As  noted  above,  Solaris  curses has no magic number corresponding to
-       SVr4 curses.  This is odd since Solaris was the first operating  system
-       to pass the SVr4 guidelines.  Solaris has two versions of curses:
+       As  noted  above,  Solaris  curses has no magic number corresponding to
+       SVr4 curses.  This is odd, since Solaris was the first operating system
+       to meet the SVr4 guidelines.  Solaris furthermore supplies two versions
+       of curses.
 
-       o   The default curses library uses the SVr3 magic number.
+       o   The default curses library uses the SVr3 magic number.
 
-       o   There  is  an  alternate  curses library in /usr/xpg4.  This uses a
-           textual format with no magic number.
+       o   An alternate curses library (which we term xcurses),  available  in
+           /usr/xpg4, uses a textual format with no magic number.
 
-           According to the copyright notice, the xpg4 Solaris curses  library
-           was developed by MKS (Mortice Kern Systems) from 1990 to 1995.
+           According  to  its  copyright  notice,  this  xcurses  library  was
+           developed by MKS (Mortice Kern Systems) from 1990 to 1995.
 
-           Like  ncurses6,  there  is  a  file-header with parameters.  Unlike
-           ncurses6, the contents of the window are  written  piecemeal,  with
-           coordinates  and  attributes  for  each  chunk  of text rather than
+           Like ncurses6,  it  includes  a  header  with  parameters.   Unlike
+           ncurses6,  the  contents  of the window are written piecemeal, with
+           coordinates and attributes for  each  chunk  of  text  rather  than
            writing the whole window from top to bottom.
 
 
 

PDCurses

-       PDCurses added support for screen dumps in version  2.7  (2005).   Like
-       Unix  SystemV  and  ncurses5, it writes the WINDOW structure in binary,
-       but begins the file with its three-byte identifier "PDC", followed by a
-       one-byte version, e.g.,
+       PDCurses  added  support  for screen dumps in version 2.7 (2005).  Like
+       System V and ncurses5, it writes the WINDOW structure  in  binary,  but
+       begins  the  file  with  its three-byte identifier "PDC", followed by a
+       single-byte version number.
 
                 "PDC\001"
 
 
 

NetBSD

-       As  of  April  2017,  NetBSD  curses  does  not  support  scr_dump  and
-       scr_restore (or scr_init, scr_set), although it has putwin and getwin.
+       As  of  April  2017,  NetBSD  curses  does  not  support  scr_dump  and
+       scr_restore (or scr_init, scr_set), although it has putwin and getwin.
 
-       Like ncurses5, NetBSD putwin does not identify its dumps with a  useful
+       Like  ncurses5, NetBSD putwin does not identify its dumps with a useful
        magic number.  It writes
 
-       o   the curses shared library major and minor versions as the first two
-           bytes (e.g., 7 and 1),
+       o   the curses shared library major and minor versions as the first two
+           bytes (for example, 7 and 1),
 
-       o   followed by a binary dump of the WINDOW,
+       o   followed by a binary dump of the WINDOW,
 
-       o   some data for wide-characters referenced by the  WINDOW  structure,
+       o   some  data  for wide characters referenced by the WINDOW structure,
            and
 
-       o   finally, lines as done by other implementations.
+       o   finally, lines as done by other implementations.
 
 
-

EXAMPLE

-       Given  a  simple  program  which writes text to the screen (and for the
+

EXAMPLES

+       Given a simple program which writes text to the  screen  (and  for  the
        sake of example, limiting the screen-size to 10x20):
 
            #include <curses.h>
@@ -273,13 +256,13 @@
                start_color();
                init_pair(1, COLOR_WHITE, COLOR_BLUE);
                init_pair(2, COLOR_RED, COLOR_BLACK);
-               bkgd(COLOR_PAIR(1));
+               bkgd(COLOR_PAIR(1));
                move(4, 5);
                attron(A_BOLD);
                addstr("Hello");
                move(5, 5);
                attroff(A_BOLD);
-               attrset(A_REVERSE | COLOR_PAIR(2));
+               attrset(A_REVERSE | COLOR_PAIR(2));
                addstr("World!");
                refresh();
                scr_dump("foo.out");
@@ -315,18 +298,18 @@
        The first four octal escapes are actually nonprinting characters, while
        the remainder of the file is printable text.  You may notice:
 
-       o   The actual color pair values are not written to the file.
+       o   The actual color pair values are not written to the file.
 
-       o   All  characters  are  shown  in  printable form; spaces are "\s" to
+       o   All characters are shown in printable  form;  spaces  are  "\s"  to
            ensure they are not overlooked.
 
-       o   Attributes are written in escaped curly  braces,  e.g.,  "\{BOLD}",
-           and may include a color-pair (C1 or C2 in this example).
+       o   Attributes  are  written  in escaped curly braces, e.g., "\{BOLD}",
+           and may include a color pair (C1 or C2 in this example).
 
-       o   The  parameters  in  the  header  are  written out only if they are
+       o   The parameters in the header are  written  out  only  if  they  are
            nonzero.  When reading back, order does not matter.
 
-       Running the same program with Solaris xpg4 curses gives this dump:
+       Running the same program with Solaris xpg4 curses gives this dump:
 
            MAX=10,20
            BEG=0,0
@@ -362,12 +345,12 @@
            9,19,0,0,
            CUR=11,5
 
-       Solaris getwin requires that all parameters are  present,  and  in  the
-       same  order.  The xpg4 curses library does not know about the bce (back
+       Solaris  getwin  requires  that  all parameters are present, and in the
+       same order.  The xpg4 curses library does not know about the bce  (back
        color erase) capability, and does not color the window background.
 
-       On the other  hand,  the  SVr4  curses  library  does  know  about  the
-       background  color.   However,  its screen dumps are in binary.  Here is
+       On  the  other  hand,  the  SVr4  curses  library  does  know about the
+       background color.  However, its screen dumps are in  binary.   Here  is
        the corresponding dump (using "od -t x1"):
 
            0000000 1c 01 c3 d6 f3 58 05 00 0b 00 0a 00 14 00 00 00
@@ -394,43 +377,42 @@
            0002371
 
 
-

SEE ALSO

-       curs_scr_dump(3X), curs_util(3X).
-
-
 

AUTHORS

        Thomas E. Dickey
-       extended screen-dump format for ncurses 6.0 (2015)
+       extended screen-dump format for ncurses 6.0 (2015)
 
        Eric S. Raymond
-       screen dump feature in ncurses 1.9.2d (1995)
+       screen dump feature in ncurses 1.9.2d (1995)
 
 
+

SEE ALSO

+       curs_scr_dump(3x), curs_util(3x)
+
 
-                                                                   scr_dump(5)
+
+ncurses 6.4                       2023-12-30                       scr_dump(5)