🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: vmsnet.sources
Article #131

C Swing v3.6.4 patches, part 01/04

#131
From: flowers
Date: Mon, 04 Jan 1993 20:21
1618 lines
50045 bytes
Submitted-by: flowers@memstvx1.memst.edu
Posting-number: Volume 4, Issue 22
Archive-name: cswing/patch3_01
Patch-to: cswing: Volume 3, Issue 35-52,93,211-218

$! ------------------ CUT HERE -----------------------
$ v='f$verify(f$trnlnm("SHARE_VERIFY"))'
$!
$! This archive created by VMS_SHARE Version 7.2-007  22-FEB-1990
$!   On 10-DEC-1992 15:45:08.48   By user FLOWERS 
$!
$! This VMS_SHARE Written by:
$!    Andy Harper, Kings College London UK
$!
$! Acknowledgements to:
$!    James Gray       - Original VMS_SHARE
$!    Michael Bednarek - Original Concept and implementation
$!
$!+ THIS PACKAGE DISTRIBUTED IN 4 PARTS, TO KEEP EACH PART
$!  BELOW 100 BLOCKS
$!
$! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
$! AND EXECUTE AS A COMMAND PROCEDURE  (  @name  )
$!
$! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
$!       1. AAAREADME_1ST.PAT;364
$!       2. BUFFER_C.PAT;364
$!       3. CMD_C.PAT;364
$!       4. HELP_C.PAT;364
$!       5. KEYM_C.PAT;364
$!       6. LINE_C.PAT;364
$!       7. LINK_V5_COM.PAT;364
$!       8. MAIN_C.PAT;364
$!       9. MOST_DOC_FM.PAT;364
$!      10. MOST_H.PAT;364
$!      11. MOST_OPTIONS_OPT.PAT;364
$!      12. OPTIONS_FILE_OPT.PAT;364
$!      13. PATCH.COM;364
$!      14. SEARCH_C.PAT;364
$!      15. SWING_38_C.PAT;364
$!      16. SWING_C.PAT;364
$!      17. SWING_H.PAT;364
$!      18. WINDOW_C.PAT;364
$!
$set="set"
$set symbol/scope=(nolocal,noglobal)
$f=f$parse("SHARE_TEMP","SYS$SCRATCH:.TMP_"+f$getjpi("","PID"))
$e="write sys$error  ""%UNPACK"", "
$w="write sys$output ""%UNPACK"", "
$ if f$trnlnm("SHARE_LOG") then $ w = "!"
$ ve=f$getsyi("version")
$ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto START
$ e "-E-OLDVER, Must run at least VMS 4.4"
$ v=f$verify(v)
$ exit 44
$UNPACK: SUBROUTINE ! P1=filename, P2=checksum
$ if f$search(P1) .eqs. "" then $ goto file_absent
$ e "-W-EXISTS, File ''P1' exists. Skipped."
$ delete 'f'*
$ exit
$file_absent:
$ if f$parse(P1) .nes. "" then $ goto dirok
$ dn=f$parse(P1,,,"DIRECTORY")
$ w "-I-CREDIR, Creating directory ''dn'."
$ create/dir 'dn'
$ if $status then $ goto dirok
$ e "-E-CREDIRFAIL, Unable to create ''dn'. File skipped."
$ delete 'f'*
$ exit
$dirok:
$ w "-I-PROCESS, Processing file ''P1'."
$ if .not. f$verify() then $ define/user sys$output nl:
$ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='P1'
PROCEDURE Unpacker ON_ERROR ENDON_ERROR;SET(FACILITY_NAME,"UNPACK");SET(
SUCCESS,OFF);SET(INFORMATIONAL,OFF);f:=GET_INFO(COMMAND_LINE,"file_name");b:=
CREATE_BUFFER(f,f);p:=SPAN(" ")@r&LINE_END;POSITION(BEGINNING_OF(b));
LOOP EXITIF SEARCH(p,FORWARD)=0;POSITION(r);ERASE(r);ENDLOOP;POSITION(
BEGINNING_OF(b));g:=0;LOOP EXITIF MARK(NONE)=END_OF(b);x:=ERASE_CHARACTER(1);
IF g=0 THEN IF x="X" THEN MOVE_VERTICAL(1);ENDIF;IF x="V" THEN APPEND_LINE;
MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);ENDIF;IF x="+" THEN g:=1;
ERASE_LINE;ENDIF;ELSE IF x="-" THEN IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+")=
1 THEN g:=0;ENDIF;ENDIF;ERASE_LINE;ENDIF;ENDLOOP;t:="0123456789ABCDEF";
POSITION(BEGINNING_OF(b));LOOP r:=SEARCH("`",FORWARD);EXITIF r=0;POSITION(r);
ERASE(r);x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,ERASE_CHARACTER(1))-1;
COPY_TEXT(ASCII(16*x1+x2));ENDLOOP;WRITE_FILE(b,GET_INFO(COMMAND_LINE,
"output_file"));ENDPROCEDURE;Unpacker;QUIT;
$ delete/nolog 'f'*
$ CHECKSUM 'P1'
$ IF CHECKSUM$CHECKSUM .eqs. P2 THEN $ EXIT
$ e "-E-CHKSMFAIL, Checksum of ''P1' failed."
$ ENDSUBROUTINE
$START:
$ create 'f'
X*** `5B--.vmsnet`5Daaareadme.1st
X--- `5B--.src`5Daaareadme.1st
X**************
X*** 25,31
X `20
X  The C language version of SWING was written by Simon Brown, and maintained
V  by
X  him  through  V3.2.  It  has  been  modified  by many people, and is curre
Vntly
X! maintained primarily by Mats Akerberg and Harry Flowers  (see  end  of  fi
Vle).
X  Most  of  the  documentation  has  been rewitten by Chris Butler. Although
V the
X  online help is good, you should read the manual. The re-write was necessar
Vy as
X  he  did  not  have  a Fortran compiler, and felt that C was a more appropr
Viate
X--- 25,31 -----
X `20
X  The C language version of SWING was written by Simon Brown, and maintained
V  by
X  him  through  V3.2.  It  has  been  modified  by many people, and is curre
Vntly
X! maintained primarily by  Mats Akerberg,  Harry Flowers,  and  Foteos Macri
Vdes.
X  Most  of  the  documentation  has  been rewitten by Chris Butler. Although
V the
X  online help is good, you should read the manual. The re-write was necessar
Vy as
X  he  did  not  have  a Fortran compiler, and felt that C was a more appropr
Viate
X**************
X*** 160,166
X             Foteos Macrides
X             Worcester Foundation for Experimental Biology
X             Shrewsbury, MA   USA
X!            email: MACRIDES@WFEB2.BITNET                (on BITNET)
X `20
X             Chris Butler
X             NEW ZEALAND
X--- 160,167 -----
X             Foteos Macrides
X             Worcester Foundation for Experimental Biology
X             Shrewsbury, MA   USA
X!            email: MACRIDES@SCI.WFEB.EDU                (on INTERNET)
X!                   MACRIDES@WFEB2.BITNET                (on BITNET)
X `20
X             Chris Butler
X             NEW ZEALAND
$ CALL UNPACK AAAREADME_1ST.PAT;364 1681350502
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dbuffer.c;2
X--- disk$disk1:`5Bflowers.swing.src`5Dbuffer.c;4
X**************
X*** 14,19
X `20
X  unsigned char *C_POS;
X  int C_LINE;
X `20
X  unsigned char *beg_of_line1()
X  `7B
X--- 14,24 -----
X `20
X  unsigned char *C_POS;
X  int C_LINE;
X+ unsigned char *M_POS;
X+ int M_FLAG;
X+ int W_LINE;
X+ int TAB_R;
X+ int ESC_NUM;
X `20
X  unsigned char *beg_of_line1()
X  `7B
X**************
X*** 48,65
X      return pos;
X  `7D
X `20
X- unsigned char *beg_of_line()
X- `7B
X-     unsigned char *b;
X-     int d,n;
X-    `20
X-     if (!MOST_W_OPT) return beg_of_line1();
X-     b = beg_of_line1();
X-     d = C_POS - b;
X-     n = d / SCREEN_WIDTH_M1;
X-     return(b +  (int) (n * SCREEN_WIDTH_M1));
X- `7D
X-`20
X  /* does not move point */
X  unsigned char *end_of_line1()
X  `7B
X--- 53,58 -----
X      return pos;
X  `7D
X `20
X  /* does not move point */
X  unsigned char *end_of_line1()
X  `7B
X**************
X*** 89,95
X      return pos;
X  `7D
X `20
X! unsigned char *end_of_line()
X  `7B
X      unsigned char *b, *e;
X      int n;
X--- 82,88 -----
X      return pos;
X  `7D
X `20
X! unsigned char *beg_of_line()
X  `7B
X      unsigned char *b, *i, *e;
X      int ii = 0,j,k = 1,esc_num = 0;
X**************
X*** 91,98
X `20
X  unsigned char *end_of_line()
X  `7B
X!     unsigned char *b, *e;
X!     int n;
X     `20
X      if (!MOST_W_OPT) return end_of_line1();
X `20
X--- 84,91 -----
X `20
X  unsigned char *beg_of_line()
X  `7B
X!     unsigned char *b, *i, *e;
X!     int ii = 0,j,k = 1,esc_num = 0;
X     `20
X      b = beg_of_line1();
X     `20
X**************
X*** 94,100
X      unsigned char *b, *e;
X      int n;
X     `20
X!     if (!MOST_W_OPT) return end_of_line1();
X `20
X      b = beg_of_line();
X      e = end_of_line1();
X--- 87,98 -----
X      unsigned char *b, *i, *e;
X      int ii = 0,j,k = 1,esc_num = 0;
X     `20
X!     b = beg_of_line1();
X!    `20
X!     /*
X!     **  if not Wrap mode, return beginning of entire line
X!     */
X!     if (!MOST_W_OPT) return(b);
X `20
X      M_FLAG = 0;
X      W_LINE = 0;
X**************
X*** 96,101
X     `20
X      if (!MOST_W_OPT) return end_of_line1();
X `20
X      b = beg_of_line();
X      e = end_of_line1();
X      n = (e - b) / SCREEN_WIDTH;
X--- 94,225 -----
X      */
X      if (!MOST_W_OPT) return(b);
X `20
X+     M_FLAG = 0;
X+     W_LINE = 0;
X+     TAB_R = 0;
X+     ESC_NUM = 0;
X+     e = end_of_line1();
X+     M_POS = e + 1;
X+`20
X+     /*
X+     **  if a `5EM is in the line and not Verbose mode,
X+     **  set up overstriking for wrapped lines
X+     */
X+     if (!MOST_V_OPT)
X+       for (i = b; i <= e; i++)
X+         if (*i == '\015')
X+           `7B
X+               M_POS = i;
X+               M_FLAG = 1;
X+           `7D
X+`20
X+     /*
X+     **  wrap mode
X+     */
X+     for (i = b; i < C_POS; i++)
X+       `7B
X+           if (i == e - 1)
X+             `7B
X+                 return(b);
X+             `7D
X+`20
X+           /*
X+           **  make adjustments for non-printing characters
X+ `09  **  if not Verbose mode
X+           */
X+           else if (!MOST_V_OPT && (*i < ' ' `7C`7C *i > 126))
X+             `7B
X+                 /*
X+                 **  overstrike character via backspace (`5EH)
X+                 */
X+                 if (*i == '\b' && ii != 0) ii--;
X+`20
X+                 /*
X+                 **  overstrike line via `5EM
X+                 */
X+                 else if (*i == '\015') return(b);
X+                `20
X+                 /*
X+                 **  underline, bold, or reverse via <ESC>`5B#m
X+                 */
X+                 else if (*i == '\033' && i + 3 <= e &&
X+                           *(i + 1) == '`5B' &&
X+                          (*(i + 2) == '1' `7C`7C
X+                           *(i + 2) == '4' `7C`7C
X+                           *(i + 2) == '7' `7C`7C
X+                           *(i + 2) == '0') &&
X+                           *(i + 3) == 'm')
X+                   `7B
X+                       if      (*(i + 2) == '1') esc_num = 1;
X+                       else if (*(i + 2) == '4') esc_num = 4;
X+                       else if (*(i + 2) == '7') esc_num = 7;
X+                       else esc_num = 0;
X+                       ii -= 3;
X+                   `7D
X+`20
X+                 /*
X+                 **  tab (`5EI)
X+                 */
X+                 else if (*i == '\t')
X+                   `7B
X+                       j =  8 * (ii/8 + 1) - ii;  /* 8 column tabs */
X+                       while(j--)
X+                         `7B
X+                             ii++;
X+                             if (ii == k*SCREEN_WIDTH_M1 + 1 &&
X+                                 *(i + 1) != '\015')
X+                               `7B
X+                                   b = i;
X+                                   W_LINE++;
X+                                   TAB_R +=
X+ `09`09`09`09    8*(SCREEN_WIDTH_M1/8 + 1) - SCREEN_WIDTH_M1;
X+                                   k++;
X+                                   ESC_NUM = esc_num;
X+                               `7D
X+                         `7D
X+                    `7D
X+`20
X+                 /*
X+                 **  don't count other control characters except
X+                 **  bell (`5EG), vertical tab (`5EK), linefeed (`5EL),
X+                 **  or escape (`5E`5B) not followed by `5B#m
X+                 */
X+                 else if (*i != '\007' && *i != '\013' &&
X+                          *i != '\014' && *i != '\033') ;
X+             `7D
X+`20
X+           /*
X+           **  printable character or always-explicit control character
X+           */
X+           else
X+             `7B
X+                 ii++;
X+                 if (ii == k*SCREEN_WIDTH_M1 + 1 && *(i + 1) != '\015')
X+                   `7B
X+                       b = i;
X+                       W_LINE++;
X+                       TAB_R +=  8*(SCREEN_WIDTH_M1/8 + 1) - SCREEN_WIDTH_M
V1;
X+                       k++;
X+                       ESC_NUM = esc_num;
X+                   `7D
X+             `7D
X+       `7D
X+`20
X+     return(b);
X+ `7D
X+`20
X+ unsigned char *end_of_line()
X+ `7B
X+     unsigned char *b, *e, *i;
X+     int ii = 0,j;
X+    `20
X+     e = end_of_line1();
X+`20
X+     /*
X+     **  if not Wrap mode, return end of entire line
X+     */
X+     if (!MOST_W_OPT) return(e);
X+`20
X      b = beg_of_line();
X `20
X      /*
X**************
X*** 97,105
X      if (!MOST_W_OPT) return end_of_line1();
X `20
X      b = beg_of_line();
X!     e = end_of_line1();
X!     n = (e - b) / SCREEN_WIDTH;
X!     if (n) return(b + SCREEN_WIDTH_M1);
X      return (e);
X  `7D
X `20
X--- 221,307 -----
X      if (!MOST_W_OPT) return(e);
X `20
X      b = beg_of_line();
X!`20
X!     /*
X!     **  wrap mode
X!     */
X!     for (i = b; i <= e; i++)
X!       `7B
X!           /*
X!           **  make adjustments for non-printing characters
X! `09  **  if not Verbose mode
X!           */
X!           if (!MOST_V_OPT && (*i < ' ' `7C`7C *i > 126))
X!             `7B
X!                 /*
X!                 **  overstrike character via backspace (`5EH)
X!                 */
X!                 if (*i == '\b' && ii != 0) ii--;
X!`20
X!                 /*
X!                 **  overstrike line via `5EM
X!                 */
X!                 else if (*i == '\015') return(e);
X!`20
X!                 /*
X!                 **  underline, bold, or reverse via <ESC>`5B#m
X!                 */
X!                 else if (*i == '\033' && i + 3 <= e &&
X!                           *(i + 1) == '`5B' &&
X!                          (*(i + 2) == '1' `7C`7C
X!                           *(i + 2) == '4' `7C`7C
X!                           *(i + 2) == '7' `7C`7C
X!                           *(i + 2) == '0') &&
X!                           *(i + 3) == 'm')
X!                   `7B
X!                       ii -= 3;
X!                   `7D
X!`20
X!                 /*
X!                 **  tab (`5EI)
X!                 */
X!                 else if (*i == '\t')
X!                   `7B
X!                       if (W_LINE)
X!                         `7B
X!                             if (ii == 0)
X!                               j = TAB_R;
X!                             else
X!                               j = 8 * (ii/8 + 1) - ii + TAB_R;
X!                         `7D
X!                       else
X!                         j =  8 * (ii/8 + 1) - ii;  /* 8 column tabs */
X!`20
X!                       while(j--)
X!                         `7B
X!                             ii++;
X!                             if (ii == SCREEN_WIDTH + 1)
X!                               return (i);
X!                         `7D
X!                   `7D
X!`20
X!                 /*
X!                 **  don't count other control characters except
X!                 **  bell (`5EG), vertical tab (`5EK), linefeed (`5EL),
X!                 **  or escape (`5E`5B) not followed by `5B#m
X!                 */
X!                 else if (*i != '\007' && *i != '\013' &&
X!                          *i != '\014' && *i != '\033') ;
X!             `7D
X!`20
X!           /*
X!           **  printable character or always-explicit control character
X!           */
X!           else
X!             `7B
X!                 ii++;
X!                 if (ii == SCREEN_WIDTH + 1)
X!                   `7B
X!                       return (i);
X!                   `7D
X!             `7D
X!       `7D
X!`20
X      return (e);
X  `7D
X `20
X**************
X*** 122,128
X              `7B
X                  C_POS = end_of_line();
X                  /* next step handles newline at the EOB */
X!                 if ((C_POS == EOB) `7C`7C (C_POS == EOB - 1) && (*C_POS ==
V '\n')) return (save - n - 1);
X                  C_LINE++;
X                  C_POS++;
X                  if (SELECTIVE_I_DISPLAY)
X--- 324,331 -----
X              `7B
X                  C_POS = end_of_line();
X                  /* next step handles newline at the EOB */
X!                 if ((C_POS == EOB) `7C`7C (C_POS == EOB - 1) && (*C_POS ==
V '\n'))`20
X!                   return (save - n - 1);
X                  C_LINE++;
X                  C_POS++;
X                  if (SELECTIVE_I_DISPLAY && !MOST_W_OPT)
X**************
X*** 125,131
X                  if ((C_POS == EOB) `7C`7C (C_POS == EOB - 1) && (*C_POS ==
V '\n')) return (save - n - 1);
X                  C_LINE++;
X                  C_POS++;
X!                 if (SELECTIVE_I_DISPLAY)
X                    `7B
X                        p = C_POS;
X                        ok = 1;
X--- 328,334 -----
X                    return (save - n - 1);
X                  C_LINE++;
X                  C_POS++;
X!                 if (SELECTIVE_I_DISPLAY && !MOST_W_OPT)
X                    `7B
X                        p = C_POS;
X                        ok = 1;
X**************
X*** 160,166
X                  if (C_POS == BEG) return (n - save - 1);
X                  C_POS--;
X                  C_LINE--;
X!                 if (SELECTIVE_I_DISPLAY)
X                    `7B
X                        C_POS = beg_of_line();
X                        p = C_POS;
X--- 363,369 -----
X                  if (C_POS == BEG) return (n - save - 1);
X                  C_POS--;
X                  C_LINE--;
X!                 if (SELECTIVE_I_DISPLAY && !MOST_W_OPT)
X                    `7B
X                        C_POS = beg_of_line();
X                        p = C_POS;
X**************
X*** 188,194
X      int save_line = C_LINE, n;
X      unsigned char *save_beg = beg, *save_eob = EOB, *save_pos = C_POS;
X `20
X!     if (MOST_B_OPT) return((int)(end - beg) / 16);
X      BEG = C_POS = beg;
X      EOB = end;
X      n = 1;
X--- 391,402 -----
X      int save_line = C_LINE, n;
X      unsigned char *save_beg = beg, *save_eob = EOB, *save_pos = C_POS;
X `20
X!     if (MOST_B_OPT)
X!       `7B
X!           n = (int)(end - beg)/16;
X!           if ((n * 16) == (end - beg)) return(n);
X!           else return(n + 1);
X!       `7D
X      BEG = C_POS = beg;
X      EOB = end;
X      n = 1;
X**************
X*** 271,276
X      int save_line, dir;
X      register int dif_c, dif_b,dif_t;
X      int ret;
X `20
X      if (MOST_B_OPT)
X        `7B
X--- 479,485 -----
X      int save_line, dir;
X      register int dif_c, dif_b,dif_t;
X      int ret;
X+     extern int S_DIFF;
X `20
X      if (MOST_B_OPT)
X        `7B
X**************
X*** 277,283
X            return (1 + (pos - BEG)/16);
X        `7D
X     `20
X-        `20
X      save_pos = C_POS;
X      save_line = C_LINE;
X     `20
X--- 486,491 -----
X            return (1 + (pos - BEG)/16);
X        `7D
X     `20
X      save_pos = C_POS;
X      save_line = C_LINE;
X     `20
X**************
X*** 319,324
X                  C_POS++;
X                  C_LINE++;
X              `7D
X        `7D
X      else
X        `7B
X--- 527,542 -----
X                  C_POS++;
X                  C_LINE++;
X              `7D
X+`20
X+           /*
X+           **  if this is the unseen portion of a wrapped line,
X+           **  the display puts it on the next line
X+           */
X+           if (MOST_W_OPT &&
X+               (C_POS == pos `7C`7C
X+                (C_POS != end_of_line1() &&
X+                 apparant_distance(pos) + S_DIFF >= SCREEN_WIDTH)))
X+             C_LINE++;
X        `7D
X      else
X        `7B
X**************
X*** 335,341
X      return(ret);
X  `7D
X `20
X! /* given a buffer position, find the line and column */
X  void find_row_column(unsigned char *pos, int *r, int *c)
X  `7B
X      unsigned char *beg, *save_pos;
X--- 553,561 -----
X      return(ret);
X  `7D
X `20
X! /*
X! **  Given a buffer position, find the line and column.
X! */
X  void find_row_column(unsigned char *pos, int *r, int *c)
X  `7B
X      unsigned char *beg, *save_pos;
X**************
X*** 339,345
X  void find_row_column(unsigned char *pos, int *r, int *c)
X  `7B
X      unsigned char *beg, *save_pos;
X!     int save_line;
X `20
X `20
X      if (pos <= BEG)
X--- 559,566 -----
X  void find_row_column(unsigned char *pos, int *r, int *c)
X  `7B
X      unsigned char *beg, *save_pos;
X!     int save_line,p;
X!     extern int S_DIFF;
X `20
X      if (pos <= BEG)
X        `7B
X**************
X*** 341,347
X      unsigned char *beg, *save_pos;
X      int save_line;
X `20
X-`20
X      if (pos <= BEG)
X        `7B
X            *r = 1;
X--- 562,567 -----
X      int save_line,p;
X      extern int S_DIFF;
X `20
X      if (pos <= BEG)
X        `7B
X            *r = 1;
X**************
X*** 353,358
X      save_pos = C_POS;
X      *r = what_line(pos);
X     `20
X      if (MOST_B_OPT)
X        `7B
X            *c = (int) (pos - BEG) - *r * 16 + 1;
X--- 573,581 -----
X      save_pos = C_POS;
X      *r = what_line(pos);
X     `20
X+     /*`20
X+     **  Now we have found the line it is on so get the column.
X+     */
X      if (MOST_B_OPT)
X        `7B
X            *c = (unsigned char *)((int)(pos) - (((int)pos/16) * 16) + 41);
X**************
X*** 355,361
X     `20
X      if (MOST_B_OPT)
X        `7B
X!           *c = (int) (pos - BEG) - *r * 16 + 1;
X            return;
X        `7D
X      C_LINE = *r;
X--- 578,584 -----
X      */
X      if (MOST_B_OPT)
X        `7B
X!           *c = (unsigned char *)((int)(pos) - (((int)pos/16) * 16) + 41);
X            return;
X        `7D
X `20
X**************
X*** 358,363
X            *c = (int) (pos - BEG) - *r * 16 + 1;
X            return;
X        `7D
X      C_LINE = *r;
X      C_POS = pos;
X     `20
X--- 581,587 -----
X            *c = (unsigned char *)((int)(pos) - (((int)pos/16) * 16) + 41);
X            return;
X        `7D
X+`20
X      C_LINE = *r;
X      C_POS = pos;
X      *c = apparant_distance(pos) + S_DIFF;
X**************
X*** 360,370
X        `7D
X      C_LINE = *r;
X      C_POS = pos;
X!    `20
X!     /* Now we have found the line it is on so.... */
X!     beg = beg_of_line();
X!     *c = 1;
X!     while (beg++ < pos) *c = *c + 1;
X      C_LINE = save_line;
X      C_POS = save_pos;
X  `7D      `20
X--- 584,594 -----
X `20
X      C_LINE = *r;
X      C_POS = pos;
X!     *c = apparant_distance(pos) + S_DIFF;
X!     if (MOST_W_OPT)
X!       if (end_of_line() != end_of_line1())
X!         if (*c >= SCREEN_WIDTH) *c -= (SCREEN_WIDTH - 1);
X!`20
X      C_LINE = save_line;
X      C_POS = save_pos;
X  `7D      `20
X**************
X*** 392,397
X      Buffer *buf;
X `20
X      buf = (Buffer *) malloc(sizeof(Buffer));
X      strcpy(buf->file,file);
X      return(buf);
X  `7D
X--- 616,622 -----
X      Buffer *buf;
X `20
X      buf = (Buffer *) malloc(sizeof(Buffer));
X+     buf->mark = 0;
X      strcpy(buf->file,file);
X      return(buf);
X  `7D
X**************
X*** 395,397
X      strcpy(buf->file,file);
X      return(buf);
X  `7D
X--- 620,624 -----
X      strcpy(buf->file,file);
X      return(buf);
X  `7D
X+`20
X+`20
$ CALL UNPACK BUFFER_C.PAT;364 1165202775
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dcmd.c;2
X--- disk$disk1:`5Bflowers.swing.src`5Dcmd.c;3
X**************
X*** 14,20
X  int do_extended_key()
X  `7B
X      char ch, och, junk`5B80`5D;
X!     int quit = 0, n;
X      unsigned char *save;
X     `20
X      select_minibuffer();
X--- 14,20 -----
X  int do_extended_key()
X  `7B
X      char ch, och, junk`5B80`5D;
X!     int quit = 0, n, m_bell = 0;
X      unsigned char *save;
X     `20
X      select_minibuffer();
X**************
X*** 132,138
X                        NUM_LINES = count_lines(BEG,EOB);
X                    `7D
X                  if (SELECTIVE_I_DISPLAY)
X!                   sprintf(junk,
X                            "Selective Indentation Display set at column %u.
V",n);
X                  else
X                    sprintf(junk,
X--- 132,139 -----
X                        NUM_LINES = count_lines(BEG,EOB);
X                    `7D
X                  if (SELECTIVE_I_DISPLAY)
X!                   `7B
X!                         sprintf(junk,
X                            "Selective Indentation Display set at column %u.
V",n);
X                          if (MOST_W_OPT)
X                            `7B
X**************
X*** 134,139
X                  if (SELECTIVE_I_DISPLAY)
X                    sprintf(junk,
X                            "Selective Indentation Display set at column %u.
V",n);
X                  else
X                    sprintf(junk,
X      "Selective Indentation Display off.  Precede the :O with a number to s
Vet.");
X--- 135,146 -----
X                    `7B
X                          sprintf(junk,
X                            "Selective Indentation Display set at column %u.
V",n);
X+                         if (MOST_W_OPT)
X+                           `7B
X+                               strcat(junk,"  Disable Wrap to implement.");
X+                               m_bell = 1;
X+                           `7D
X+                   `7D
X                  else
X                    `7B
X                        strcpy(junk,"Selective Indentation Display off.");
X**************
X*** 135,143
X                    sprintf(junk,
X                            "Selective Indentation Display set at column %u.
V",n);
X                  else
X!                   sprintf(junk,
X!     "Selective Indentation Display off.  Precede the :O with a number to s
Vet.");
X!                 most_message(junk,0);
X                  break;
X `20
X              /*
X--- 142,152 -----
X                            `7D
X                    `7D
X                  else
X!                   `7B
X!                       strcpy(junk,"Selective Indentation Display off.");
X!                       strcat(junk,"  Precede the :O with a number to set."
V);
X!                   `7D
X!                 most_message(junk,m_bell);
X                  break;
X `20
X              /*
X**************
X*** 166,173
X                    `7B
X                        strcpy(junk,"Display Tabs as `5EI on.");
X                        if (!MOST_V_OPT)
X!                         strcat(junk,"  Toggle Verbose mode to implement.")
V;
X!                       most_message(junk,0);
X                    `7D
X                  break;
X `20
X--- 175,185 -----
X                    `7B
X                        strcpy(junk,"Display Tabs as `5EI on.");
X                        if (!MOST_V_OPT)
X!                         `7B
X!                             strcat(junk,"  Toggle Verbose mode to implemen
Vt.");
X!                             m_bell = 1;
X!                         `7D
X!                       most_message(junk,m_bell);
X                    `7D
X                  break;
X `20
X**************
X*** 192,198
X                  MOST_W_OPT = !MOST_W_OPT;
X                  NUM_LINES = count_lines(BEG,EOB);
X                  if (MOST_W_OPT)
X!                   most_message("Wrapping on.",0);
X                  else
X                    most_message("Wrapping off.",0);
X                  break;
X--- 204,219 -----
X                  MOST_W_OPT = !MOST_W_OPT;
X                  NUM_LINES = count_lines(BEG,EOB);
X                  if (MOST_W_OPT)
X!                   `7B
X!                       strcpy(junk,"Wrapping on.");
X!                       if (SELECTIVE_I_DISPLAY)
X!                         `7B
X!                             strcat(junk,
X!                                   "  Selective Identation Display suppress
Ved.");
X!                             m_bell = 1;
X!                         `7D
X!                       most_message(junk,m_bell);
X!                   `7D
X                  else
X                    `7B
X                        strcpy(junk,"Wrapping off.");
X**************
X*** 194,200
X                  if (MOST_W_OPT)
X                    most_message("Wrapping on.",0);
X                  else
X!                   most_message("Wrapping off.",0);
X                  break;
X `20
X              default:
X--- 215,230 -----
X                        most_message(junk,m_bell);
X                    `7D
X                  else
X!                   `7B
X!                       strcpy(junk,"Wrapping off.");
X!                       if (SELECTIVE_I_DISPLAY)
X!                         `7B
X!                             strcat(junk,
X!                                  "  Selective Identation Display implement
Ved.");
X!                             m_bell = 1;
X!                         `7D
X!                       most_message(junk,m_bell);
X!                   `7D
X                  break;
X `20
X              default:
$ CALL UNPACK CMD_C.PAT;364 1698939476
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dhelp.c;2
X--- disk$disk1:`5Bflowers.swing.src`5Dhelp.c;4
X**************
X*** 100,106
X            if (file_visible(buf_name)) return;
X            if (!split_window())
X              `7B
X!                 most_message("Two many windows.",1);
X                  return;
X              `7D
X            update_status(1);  /* create status line of prev. window */
X--- 100,106 -----
X            if (file_visible(buf_name)) return;
X            if (!split_window())
X              `7B
X!                 most_message("Too many windows.",1);
X                  return;
X              `7D
X            update_status(1);  /* create status line of prev. window */
$ CALL UNPACK HELP_C.PAT;364 487664408
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dkeym.c;2
X--- disk$disk1:`5Bflowers.swing.src`5Dkeym.c;4
X**************
X*** 1046,1053
X  `7B
X      int mark = BUF->mark;
X      BUF->mark = C_LINE;
X!     update_window(mark);
X!     most_message("Mark Set.",0);
X  `7D
X `20
X  void one_window_cmd()
X--- 1046,1058 -----
X  `7B
X      int mark = BUF->mark;
X      BUF->mark = C_LINE;
X!     if (!mark `7C`7C mark == BUF->mark)
X!       most_message("Mark Set.",0);
X!     else
X!       `7B
X!           update_window(mark);
X!           most_message("Mark Set.  Toggled to previous mark.",0);
X!       `7D
X  `7D
X `20
X  void one_window_cmd()
X**************
X*** 1078,1083
X      int col, line, n = 1;
X      unsigned char *pos;
X     `20
X      if (DIGIT_ARG != NULL) n = *DIGIT_ARG;
X      line = search(CURS_POS + SEARCH_DIR, n, &col);
X      if (line < 1) return;
X--- 1083,1094 -----
X      int col, line, n = 1;
X      unsigned char *pos;
X     `20
X+     if (SELECTIVE_I_DISPLAY)
X+       `7B
X+           most_message
X+                ("Search disabled when Selective Indentation Display is set
V",1);
X+           return;
X+       `7D
X      if (DIGIT_ARG != NULL) n = *DIGIT_ARG;
X      line = search(CURS_POS + SEARCH_DIR, n, &col);
X      if (line < 1) return;
X**************
X*** 1091,1096
X `20
X  void search_cmd()
X  `7B
X      SEARCH_DIR = 1;
X      if (read_from_minibuffer("Search /",SEARCH_STR) == -1)
X        `7B
X--- 1102,1113 -----
X `20
X  void search_cmd()
X  `7B
X+     if (SELECTIVE_I_DISPLAY)
X+       `7B
X+           most_message
X+                ("Search disabled when Selective Indentation Display is set
V",1);
X+           return;
X+       `7D
X      SEARCH_DIR = 1;
X      if (read_from_minibuffer("Search /",SEARCH_STR) == -1)
X        `7B
X**************
X*** 1106,1111
X `20
X  void search_back_cmd()
X  `7B
X      SEARCH_DIR = -1;
X      if (read_from_minibuffer("Search \\",SEARCH_STR) == -1)
X        `7B
X--- 1123,1134 -----
X `20
X  void search_back_cmd()
X  `7B
X+     if (SELECTIVE_I_DISPLAY)
X+       `7B
X+           most_message
X+                ("Search disabled when Selective Indentation Display is set
V",1);
X+           return;
X+       `7D
X      SEARCH_DIR = -1;
X      if (read_from_minibuffer("Search \\",SEARCH_STR) == -1)
X        `7B
X**************
X*** 1174,1179
X      if (SCREEN_WIDTH == 80)
X        `7B
X            set_width(132);
X        `7D         `20
X      else if (SCREEN_WIDTH == 132)
X        `7B
X--- 1197,1203 -----
X      if (SCREEN_WIDTH == 80)
X        `7B
X            set_width(132);
X+           most_message("Display Width toggled to 132.",0);
X        `7D         `20
X      else if (SCREEN_WIDTH == 132)
X        `7B
X**************
X*** 1178,1182
X      else if (SCREEN_WIDTH == 132)
X        `7B
X            set_width(80);
X!       `7D         `20
X  `7D
X--- 1202,1209 -----
X      else if (SCREEN_WIDTH == 132)
X        `7B
X            set_width(80);
X!           most_message("Display Width toggled to 80.",0);
X!       `7D
X!     else
X!       most_message("Width can only be toggled for 80 or 132 column windows
V",1);
X  `7D
$ CALL UNPACK KEYM_C.PAT;364 524160985
$ create 'f'
X*** disk$disk1:`5Bflowers.swing.vmsnet`5Dline.c;2
X--- disk$disk1:`5Bflowers.swing.src`5Dline.c;6
X**************
X*** 5,10
X  #include "line.h"
X   `20
X  extern int COLUMN;
X `20
X  #define MAX_LINE_LEN 500
X `20
X--- 5,15 -----
X  #include "line.h"
X   `20
X  extern int COLUMN;
X+ extern unsigned char *M_POS;
X+ extern int M_FLAG;
X+ extern int W_LINE;
X+ extern int TAB_R;
X+ extern int ESC_NUM;
X `20
X  #define MAX_LINE_LEN 500
X `20
X**************
X*** 85,92
X  int analyse_line(unsigned char *beg,
X                   unsigned char *end, char *out, char *attributes)
X  `7B
X!     int test, ii, fold, ii_max, j, ok;
X!     unsigned char ch,attr;
X `20
X      test = 0;
X      ii = 0;
X--- 90,97 -----
X  int analyse_line(unsigned char *beg,
X                   unsigned char *end, char *out, char *attributes)
X  `7B
X!     int test, ii, fold, ii_max, j, ok, esc_flag = 0;
X!     unsigned char *b,*e,*b1,*e1,ch,attr,at_esc = ' ';
X `20
X      test = 0;
X      ii = 0;
X**************
X*** 92,97
X      ii = 0;
X      ii_max = 0;
X      fold = 0;
X      /*
X      **  while character attributes need to be assigned
X      */
X--- 97,121 -----
X      ii = 0;
X      ii_max = 0;
X      fold = 0;
X+     if (MOST_W_OPT)
X+       `7B
X+           if (W_LINE)
X+             `7B
X+                 esc_flag = 1;
X+                 if      (ESC_NUM == 1) at_esc = 'b';
X+                 else if (ESC_NUM == 4) at_esc = 'u';
X+                 else if (ESC_NUM == 7) at_esc = 'r';
X+                 else esc_flag = 0;
X+             `7D
X+           if (M_FLAG)
X+             `7B
X+                 b = beg;
X+                 e = end;
X+ `09`09b1 = beg_of_line1();
X+                 e1 = end_of_line1();
X+             `7D
X+       `7D
X+`20
X      /*
X      **  while character attributes need to be assigned
X      */
X**************
X*** 103,109
X            attr = ' '; /* turn off underlining or bolding attribute */
X `20
X            /*
X!           **  set up bolding of line if `5EM
X            */
X            if (!MOST_V_OPT && ch == '\015')
X              `7B
X--- 127,133 -----
X            attr = ' '; /* turn off underlining or bolding attribute */
X `20
X            /*
X!           **  set up bolding of line via `5EM
X            */
X            if (!MOST_V_OPT && ch == '\015')
X              `7B
X**************
X*** 112,117
X                        fold = 1;
X                        if (ii > ii_max) ii_max = ii - 1; /* `5EM contribute
Vs nil */
X                        ii = 0;
X                    `7D
X              `7D
X `20
X--- 136,149 -----
X                        fold = 1;
X                        if (ii > ii_max) ii_max = ii - 1; /* `5EM contribute
Vs nil */
X                        ii = 0;
X+                       if (MOST_W_OPT && W_LINE)
X+                         `7B
X+                             beg = M_POS - b1 + b + 1;
X+                             if (beg > e1)
X+                               `7B
X+                                   beg = e1 + 1;
X+                               `7D
X+                         `7D
X                    `7D
X              `7D
X `20
X**************
X*** 125,131
X              `7D
X           `20
X            /*
X!           **  assign bolding or underlining attributes
X            */
X            else if (test `7C`7C fold)
X              `7B
X--- 157,164 -----
X              `7D
X           `20
X            /*
X!           **  set up or turn off bolding, underlining or reversing
X!           **  invoked via an <ESC>`5B#m found within the line
X            */
X            else if (!MOST_V_OPT && ch == '\033' && *beg == '`5B' &&
X                     (*(beg + 1) == '0' `7C`7C *(beg + 1) == '1' `7C`7C
X**************
X*** 127,132
X            /*
X            **  assign bolding or underlining attributes
X            */
X            else if (test `7C`7C fold)
X              `7B
X                  test = 0;
X--- 160,208 -----
X            **  set up or turn off bolding, underlining or reversing
X            **  invoked via an <ESC>`5B#m found within the line
X            */
X+           else if (!MOST_V_OPT && ch == '\033' && *beg == '`5B' &&
X+                    (*(beg + 1) == '0' `7C`7C *(beg + 1) == '1' `7C`7C
X+                     *(beg + 1) == '4' `7C`7C *(beg + 1) == '7') &&
X+                     *(beg + 2) == 'm')
X+             `7B
X+                 beg++;
X+                 esc_flag = 1;
X+                 if      (*beg == '1') at_esc = 'b';
X+                 else if (*beg == '4') at_esc = 'u';
X+                 else if (*beg == '7') at_esc = 'r';
X+                 else
X+                   `7B
X+                       at_esc = ' ';
X+                       esc_flag = 0;
X+                   `7D
X+                 beg += 2;
X+             `7D
X+`20
X+           /*
X+           **  expand tabs to 8 spaces if '\t' (`5EI)
X+           */
X+           else if (ch == '\t' && (!MOST_T_OPT `7C`7C !MOST_V_OPT))
X+             `7B
X+                 if (MOST_W_OPT && W_LINE)
X+                   `7B
X+                       if (ii == 0)
X+                         j = TAB_R;
X+                       else
X+                         j = 8 * (ii/8 + 1) - ii + TAB_R;
X+                   `7D
X+                 else
X+                   j = 8 * (ii/8 + 1) - ii;  /* 8 column tabs */
X+                 while(j--)
X+                   `7B
X+                       out`5Bii`5D = ' ';
X+                       attributes`5Bii++`5D = ' ';
X+                   `7D
X+             `7D
X+            `20
X+           /*
X+           **  assign bolding or underlining attributes
X+           **  invoked via `5EM or '\b' (`5EH)
X+           */
X            else if (test `7C`7C fold)
X              `7B
X                  test = 0;
X**************
X*** 146,152
X              `7D
X `20
X            /*
X!           **  expand tabs to 8 spaces if '\t' (`5EI)
X            */
X            else if (ch == '\t' && (!MOST_T_OPT `7C`7C !MOST_V_OPT))
X              `7B
X--- 222,229 -----
X              `7D
X `20
X            /*
X!           **  assign bolding, underlining or reversing attributes
X!           **  invoked via an <ESC>`5B#m found within the line
X            */
X            else if (esc_flag)
X              `7B
X**************
X*** 148,154
X            /*
X            **  expand tabs to 8 spaces if '\t' (`5EI)
X            */
X!           else if (ch == '\t' && (!MOST_T_OPT `7C`7C !MOST_V_OPT))
X              `7B
X                  j = 8 * (ii/8 + 1) - ii;  /* 8 column tabs */
X                  while(j--)
X--- 225,231 -----
X            **  assign bolding, underlining or reversing attributes
X            **  invoked via an <ESC>`5B#m found within the line
X            */
X!           else if (esc_flag)
X              `7B
X                  attributes`5Bii`5D = at_esc; /* assign attribute */
X                  out`5Bii++`5D = ch;
X**************
X*** 150,161
X            */
X            else if (ch == '\t' && (!MOST_T_OPT `7C`7C !MOST_V_OPT))
X              `7B
X!                 j = 8 * (ii/8 + 1) - ii;  /* 8 column tabs */
X!                 while(j--)
X!                   `7B
X!                       out`5Bii`5D = ' ';
X!                       attributes`5Bii++`5D = attr;
X!                   `7D
X              `7D
X             `20
X            /*
X--- 227,234 -----
X            */
X            else if (esc_flag)
X              `7B
X!                 attributes`5Bii`5D = at_esc; /* assign attribute */
X!                 out`5Bii++`5D = ch;
X              `7D
X `20
X            /*
X**************
X*** 157,163
X                        attributes`5Bii++`5D = attr;
X                    `7D
X              `7D
X!            `20
X            /*
X            **  no bold or underline attribute
X            */
X--- 230,236 -----
X                  attributes`5Bii`5D = at_esc; /* assign attribute */
X                  out`5Bii++`5D = ch;
X              `7D
X!`20
X            /*
X            **  no bold, underline, or reverse attribute
X            */
X**************
X*** 159,165
X              `7D
X             `20
X            /*
X!           **  no bold or underline attribute
X            */
X            else
X              `7B
X--- 232,238 -----
X              `7D
X `20
X            /*
X!           **  no bold, underline, or reverse attribute
X            */
X            else
X              `7B
X**************
X*** 166,171
X                  out`5Bii`5D = ch;
X                  attributes`5Bii++`5D = attr;
X              `7D
X        `7D /* while */
X      if (fold) ii = ii_max + 1;
X `20
X--- 239,272 -----
X                  out`5Bii`5D = ch;
X                  attributes`5Bii++`5D = attr;
X              `7D
X+`20
X+           /*
X+           **  handle overstriking of wrapped lines
X+           **  via `5EM if it is in a later line
X+           */
X+           if (!MOST_V_OPT && MOST_W_OPT && M_FLAG &&
X+ `09      (beg <= M_POS && beg == end + 1))
X+             `7B
X+                 if (!W_LINE)
X+                   `7B
X+                       beg = M_POS + 1;
X+                       end = M_POS - b1 + e + 1;
X+ `09`09      if (end > e1) end = e1;
X+                   `7D
X+                 else
X+                   `7B
X+                       beg = M_POS - b1 + b + 1;
X+                       if (beg > e1) beg = end + 1;
X+                       else
X+                         `7B
X+                             end = M_POS - b1 + e + 1;
X+                             if (end > e1) end = e1;
X+                         `7D
X+                   `7D
X+                 fold = 1;
X+                 ii_max = ii - 1;
X+                 ii = 0;
X+             `7D
X        `7D /* while */
X      if (fold) ii = ii_max + 1;
X `20
X**************
X*** 255,261
X            if (!MOST_V_OPT)
X              `7B
X                  /*
X!                 **  does bolding or underlining need to be turned on?
X                  */
X                  at = attr`5Bi`5D;
X                  if ((at != ' ') && (!bold `7C`7C count == COLUMN))
X--- 356,362 -----
X            if (!MOST_V_OPT)
X              `7B
X                  /*
X!                 **  does bold, underline, or reverse need to be turned on?
X                  */
X                  at = attr`5Bi`5D;
X                  if ((at != ' ') && (!bold `7C`7C count == COLUMN))
X**************
X*** 261,267
X                  if ((at != ' ') && (!bold `7C`7C count == COLUMN))
X                    `7B
X                        bold = 1;
X!                       /* u and b have same length */
X                        if (ok) for (j = 0; j < b_len; j++)
X                          `7B
X                              if (at == 'b') out`5Bii++`5D = b_str`5Bj`5D;
X--- 362,368 -----
X                  if ((at != ' ') && (!bold `7C`7C count == COLUMN))
X                    `7B
X                        bold = 1;
X!                       /* u, b and r have same length */
X                        if (ok) for (j = 0; j < b_len; j++)
X                          `7B
X                              if (at == 'b')
X**************
X*** 264,271
X                        /* u and b have same length */
X                        if (ok) for (j = 0; j < b_len; j++)
X                          `7B
X!                             if (at == 'b') out`5Bii++`5D = b_str`5Bj`5D;
X!                             else out`5Bii++`5D = u_str`5Bj`5D;
X                          `7D
X                       `20
X                    `7D
X--- 365,376 -----
X                        /* u, b and r have same length */
X                        if (ok) for (j = 0; j < b_len; j++)
X                          `7B
X!                             if (at == 'b')
X!                               out`5Bii++`5D = b_str`5Bj`5D;
X!                             else if (at == 'u')
X!                               out`5Bii++`5D = u_str`5Bj`5D;
X!                             else
X!                               out`5Bii++`5D = r_str`5Bj`5D;
X                          `7D
X                       `20
X                    `7D
X**************
X*** 269,274
X                          `7D
X                       `20
X                    `7D
X                  /*
X                  **  does bolding or underlining need to be turned off?
X                  */
X--- 374,380 -----
X                          `7D
X                       `20
X                    `7D
X+`20
X                  /*
X                  **  does bold, underline, or reverse need to be turned off
V?
X                  */
X**************
X*** 270,276
X                       `20
X                    `7D
X                  /*
X!                 **  does bolding or underlining need to be turned off?
X                  */
X                  else if ((at == ' ') && bold)
X                    `7B
X--- 376,382 -----
X                    `7D
X `20
X                  /*
X!                 **  does bold, underline, or reverse need to be turned off
V?
X                  */
X                  else if ((at == ' ') && bold)
X                    `7B
X**************
X*** 277,282
X                        bold = 0;
X                        if (ok) for (j = 0; j < n_len; j++) out`5Bii++`5D =
V n_str`5Bj`5D;
X                    `7D
X                  /*
X                  **  if its bold or underlined and line is wrapped,
X                  **  increment count by 2
X--- 383,389 -----
X                        bold = 0;
X                        if (ok) for (j = 0; j < n_len; j++) out`5Bii++`5D =
V n_str`5Bj`5D;
X                    `7D
X+`20
X                  /*
X                  **  if it's an escape or control character
X                  **  don't count it
X**************
X*** 278,285
X                        if (ok) for (j = 0; j < n_len; j++) out`5Bii++`5D =
V n_str`5Bj`5D;
X                    `7D
X                  /*
X!                 **  if its bold or underlined and line is wrapped,
X!                 **  increment count by 2
X                  */
X                  if (at != ' ' && MOST_W_OPT)
X                    count += 2;
X--- 385,392 -----
X                    `7D
X `20
X                  /*
X!                 **  if it's an escape or control character
X!                 **  don't count it
X                  */
X                  if (ch < ' ' `7C`7C ch > 126)
X                    `7B
X**************
X*** 281,297
X                  **  if its bold or underlined and line is wrapped,
X                  **  increment count by 2
X                  */
X!                 if (at != ' ' && MOST_W_OPT)
X!                   count += 2;
X!                 /*
X!                 **  if it's an escape sequence or control character
X!                 **  and line is not wrapped, don't count it
X!                 */
X!                 if (ch < ' ' && !MOST_W_OPT)
X!                   if (ch == '\033')
X!                     count -= b_len;
X!                   else
X!                     count--;
X              `7D /* if not Verbose mode */
X           `20
X            /*
X--- 388,397 -----
X                  **  if it's an escape or control character
X                  **  don't count it
X                  */
X!                 if (ch < ' ' `7C`7C ch > 126)
X!                   `7B
X!                       count--;
X!                   `7D
X              `7D /* if not Verbose mode */
X           `20
X            /*
X**************
X*** 331,337
X                        j = max_col - save;
X                    `7D
X                 `20
X!                 if (ok && (j > s_len))`20
X                    `7B
X                        ii = mark;
X                        sprintf(work,s_str,j);
X--- 431,437 -----
X                        j = max_col - save;
X                    `7D
X                 `20
X!                 if (ok && (j > s_len) && (count < max_col))`20
X                    `7B
X                        ii = mark;
X                        sprintf(work,s_str,j);
X**************
X*** 337,343
X                        sprintf(work,s_str,j);
X                        work_len = strlen(work);
X                        for (j = 0; j < work_len; j++) out`5Bii++`5D = work`
V5Bj`5D;
X-                       if (count > max_col) dollar = ii++;
X                    `7D
X                  else if (count > max_col)
X                    `7B
X--- 437,442 -----
+-+-+-+-+-+-+-+-  END  OF PART 1 +-+-+-+-+-+-+-+-
Technical Details
Message-ID: <9908347@MVB.SAIC.COM>
Path: arc1-ca.pugleaf.net!sparky!uunet!spool.mu.edu!sol.ctr.columbia.edu!ucselx!network.ucsd.edu!mvb.saic.com!vmsnet-sources

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!spool.mu.edu!sol.ctr.columbia.edu!ucselx!network.ucsd.edu!mvb.saic.com!vmsnet-sources
From: flowers@memstvx1.memst.edu
Newsgroups: vmsnet.sources
Subject: C Swing v3.6.4 patches, part 01/04
Message-ID: <9908347@MVB.SAIC.COM>
Date: Mon, 04 Jan 1993 20:21:04 GMT
Organization: Memphis State University
Lines: 1619
Approved: Mark.Berryman@Mvb.Saic.Com