home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume35 / xvi / patch01a next >
Text File  |  1993-03-02  |  59KB  |  2,241 lines

  1. Newsgroups: comp.sources.misc
  2. From: jmd@cyclone.bt.co.uk (John Downey)
  3. Subject: v35i098:  xvi - portable multi-window vi-like editor, Patch01a/7
  4. Message-ID: <csm-v35i098=xvi.122551@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 32e16ff982d0fad63f2217c0bbe4b4d2
  6. Date: Tue, 23 Feb 1993 18:30:52 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: jmd@cyclone.bt.co.uk (John Downey)
  10. Posting-number: Volume 35, Issue 98
  11. Archive-name: xvi/patch01a
  12. Environment: Unix, MS-DOS, OS/2, QNX
  13. Patch-To: xvi: Volume 33, Issue 10-27
  14.  
  15. These are some updates to the source release of the xvi editor which
  16. was posted last October. The most significant changes are:
  17.  
  18.     + xterm/vt100 screen updating problems should now be fixed.
  19.  
  20.     + Compiling on Xenix, System V or similar flavours of Unix should
  21.       now be much easier.
  22.  
  23.     + The fixed limit on line length of input files is removed.
  24.  
  25.     + The line number information given in each window's status line
  26.       can optionally be updated continuously as the cursor is moved up
  27.       or down within the buffer. This option is enabled with the
  28.       command
  29.  
  30.       :se iu=continuous
  31.  
  32.       It works well on PC's, but is not recommended for serial
  33.       terminals or other slow displays.
  34.  
  35.     + PostScript versions of the documents are provided.
  36.  
  37. These patches, given the source for version 2.15, will generate
  38. version 2.19.
  39.  
  40. Please let us know of any problems.
  41.  
  42. Regards,
  43.  
  44. Chris & John Downey
  45. ------------------
  46. #! /bin/sh
  47. # This is a shell archive.  Remove anything before this line, then unpack
  48. # it by saving it into a file and typing "sh file".  To overwrite existing
  49. # files, type "sh file -c".  You can also feed this as standard input via
  50. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  51. # will see the following message at the end:
  52. #        "End of archive 1 (of 7)."
  53. # Contents:  doc/makefile src/patch01 src/patch02 src/patch03
  54. #   src/patch04 src/patch05 src/patch06 src/patch07 src/patch08
  55. #   src/patch10 src/patch11 src/patch12 src/patch13 src/patch16
  56. #   src/patch18 src/patch20 src/patch21 src/patch22 src/patch23
  57. #   src/patch24 src/patch25 src/patch26 src/patch27 src/patch28
  58. #   src/patch29 src/patch31
  59. # Wrapped by jmd@bealfeirste on Mon Feb  8 19:57:06 1993
  60. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  61. if test -f 'doc/makefile' -a "${1}" != "-c" ; then 
  62.   echo shar: Will not clobber existing file \"'doc/makefile'\"
  63. else
  64. echo shar: Extracting \"'doc/makefile'\" \(356 characters\)
  65. sed "s/^X//" >'doc/makefile' <<'END_OF_FILE'
  66. X#
  67. X# Copyright (C) 1991,1992 Chris and John Downey.
  68. X#
  69. X# These files are PostScript versions of the nroff/troff source
  70. X# distributed with xvi 2.15.
  71. X#
  72. X# To get source.ps, just concatenate source.ps1, source.ps2 &
  73. X# source.ps3.
  74. X#
  75. XSPS123=    source.ps1 source.ps2 source.ps3
  76. X
  77. Xsource.ps:
  78. X    cat $(SPS123) > $@
  79. X
  80. Xprint:
  81. X    cat $(SPS123) | lpr
  82. X    lpr summary.ps
  83. X    lpr xvi.ps
  84. END_OF_FILE
  85. if test 356 -ne `wc -c <'doc/makefile'`; then
  86.     echo shar: \"'doc/makefile'\" unpacked with wrong size!
  87. fi
  88. # end of 'doc/makefile'
  89. fi
  90. if test -f 'src/patch01' -a "${1}" != "-c" ; then 
  91.   echo shar: Will not clobber existing file \"'src/patch01'\"
  92. else
  93. echo shar: Extracting \"'src/patch01'\" \(3260 characters\)
  94. sed "s/^X//" >'src/patch01' <<'END_OF_FILE'
  95. X*** old/alloc.c    Tue Jul 28 17:46:04 1992
  96. X--- new/alloc.c    Tue Dec 22 18:13:31 1992
  97. X***************
  98. X*** 109,115 ****
  99. X--- 109,131 ----
  100. X      return(space);
  101. X  }
  102. X  
  103. X+ #ifdef MSDOS
  104. X+ #   define MC_SHIFT    (sizeof (int) > 2 ? 5 : 3)
  105. X+ #else
  106. X+ #   define MC_SHIFT    (sizeof (int) > 2 ? 5 : 4)
  107. X+ #endif
  108. X+ 
  109. X  /*
  110. X+  * This is 8 for real mode MS-DOS, 16 for other 16-bit systems,
  111. X+  * otherwise 32.
  112. X+  */
  113. X+ #define MEMCHUNK    (1 << MC_SHIFT)
  114. X+ 
  115. X+ #define MC_MASK        (~0 << MC_SHIFT)
  116. X+ 
  117. X+ #define MC_ROUNDUP(n)    (((n) + MEMCHUNK - 1) & MC_MASK)
  118. X+ 
  119. X+ /*
  120. X   * Allocate and initialize a new line structure with room for
  121. X   * 'nchars' characters.
  122. X   */
  123. X***************
  124. X*** 165,172 ****
  125. X       * parameter - but we must never call malloc(0) as
  126. X       * this will break on many systems.
  127. X       */
  128. X!     if (nchars == 0)
  129. X!     nchars = 1;
  130. X      ltp = alloc((unsigned) nchars);
  131. X      if (ltp == NULL) {
  132. X      free((char *) l);
  133. X--- 181,187 ----
  134. X       * parameter - but we must never call malloc(0) as
  135. X       * this will break on many systems.
  136. X       */
  137. X!     nchars = (nchars == 0 ? MEMCHUNK : MC_ROUNDUP(nchars));
  138. X      ltp = alloc((unsigned) nchars);
  139. X      if (ltp == NULL) {
  140. X      free((char *) l);
  141. X***************
  142. X*** 217,222 ****
  143. X--- 232,278 ----
  144. X  }
  145. X  
  146. X  /*
  147. X+  * Adjust the text size of a Line.
  148. X+  */
  149. X+ bool_t
  150. X+ lnresize(lp, newsize)
  151. X+ Line    *lp;
  152. X+ register unsigned    newsize;
  153. X+ {
  154. X+     register char    *oldtext;
  155. X+     register char    *newtext;
  156. X+     register unsigned    oldsize;
  157. X+ 
  158. X+     oldsize = (unsigned) lp->l_size;
  159. X+ 
  160. X+     if ((newsize = MC_ROUNDUP(newsize)) == 0)
  161. X+     return(TRUE);
  162. X+ 
  163. X+     if (newsize == oldsize)
  164. X+     return(TRUE);
  165. X+ 
  166. X+     oldtext = lp->l_text;
  167. X+ 
  168. X+     if (newsize < oldsize && oldtext != NULL) {
  169. X+     if ((newtext = realloc(oldtext, newsize)) == NULL) {
  170. X+         newtext = oldtext;
  171. X+     }
  172. X+     } else {
  173. X+     if ((newtext = alloc(newsize)) == NULL) {
  174. X+         return(FALSE);
  175. X+     }
  176. X+     if (oldtext) {
  177. X+         (void) strncpy(newtext, oldtext, oldsize - 1);
  178. X+         newtext[oldsize - 1] = '\0';
  179. X+         free(oldtext);
  180. X+     }
  181. X+     }
  182. X+     lp->l_text = newtext;
  183. X+     lp->l_size = (int) newsize;
  184. X+     return(TRUE);
  185. X+ }
  186. X+ 
  187. X+ /*
  188. X   * grow_line(lp, n)
  189. X   *    - increase the size of the space allocated for the line by n bytes.
  190. X   *
  191. X***************
  192. X*** 228,259 ****
  193. X  bool_t
  194. X  grow_line(lp, n)
  195. X  Line    *lp;
  196. X! register int    n;
  197. X  {
  198. X!     register int    nsize;
  199. X!     register char    *s;        /* pointer to new space */
  200. X  
  201. X!     nsize = strlen(lp->l_text) + 1 + n;    /* size required */
  202. X  
  203. X      if (nsize <= lp->l_size)
  204. X      return(TRUE);
  205. X  
  206. X!     /*
  207. X!      * Need to allocate more space for the string. Allow some extra
  208. X!      * space on the assumption that we may need it soon. This avoids
  209. X!      * excessive numbers of calls to malloc while entering new text.
  210. X!      */
  211. X!     s = alloc((unsigned) nsize + SLOP);
  212. X!     if (s == NULL) {
  213. X!     return(FALSE);
  214. X!     }
  215. X! 
  216. X!     lp->l_size = nsize + SLOP;
  217. X!     (void) strcpy(s, lp->l_text);
  218. X!     free(lp->l_text);
  219. X!     lp->l_text = s;
  220. X! 
  221. X!     return(TRUE);
  222. X  }
  223. X  
  224. X  /*
  225. X--- 284,301 ----
  226. X  bool_t
  227. X  grow_line(lp, n)
  228. X  Line    *lp;
  229. X! int    n;
  230. X  {
  231. X!     int        nsize;
  232. X!     char    *ctp;
  233. X  
  234. X!     ctp = lp->l_text;
  235. X!     nsize = (ctp ? strlen(ctp) : 0) + 1 + n;    /* size required */
  236. X  
  237. X      if (nsize <= lp->l_size)
  238. X      return(TRUE);
  239. X  
  240. X!     return lnresize(lp, nsize);
  241. X  }
  242. X  
  243. X  /*
  244. END_OF_FILE
  245. if test 3260 -ne `wc -c <'src/patch01'`; then
  246.     echo shar: \"'src/patch01'\" unpacked with wrong size!
  247. fi
  248. # end of 'src/patch01'
  249. fi
  250. if test -f 'src/patch02' -a "${1}" != "-c" ; then 
  251.   echo shar: Will not clobber existing file \"'src/patch02'\"
  252. else
  253. echo shar: Extracting \"'src/patch02'\" \(1726 characters\)
  254. sed "s/^X//" >'src/patch02' <<'END_OF_FILE'
  255. X*** old/ascii.h    Tue Jul 28 17:46:06 1992
  256. X--- new/ascii.h    Mon Nov 30 15:25:22 1992
  257. X***************
  258. X*** 1,7 ****
  259. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  260. X  /***
  261. X  
  262. X! * @(#)ascii.h    2.1 (Chris & John Downey) 7/29/92
  263. X  
  264. X  * program name:
  265. X      xvi
  266. X--- 1,7 ----
  267. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  268. X  /***
  269. X  
  270. X! * @(#)ascii.h    2.3 (Chris & John Downey) 11/6/92
  271. X  
  272. X  * program name:
  273. X      xvi
  274. X***************
  275. X*** 39,50 ****
  276. X  #define is_digit(c)    (isascii(c) && isdigit(c))
  277. X  #define is_xdigit(c)    (isascii(c) && isxdigit(c))
  278. X  #define is_octdigit(c)    ((c) >= '0' && (c) <= '7')
  279. X- #define is_space(c)    (isascii(c) && isspace(c))
  280. X  #define is_punct(c)    (isascii(c) && ispunct(c))
  281. X  #define is_alnum(c)    (isascii(c) && isalnum(c))
  282. X  #define is_print(c)    (isascii(c) && isprint(c))
  283. X  #define is_graph(c)    (isascii(c) && isgraph(c))
  284. X  #define is_cntrl(c)    (isascii(c) && iscntrl(c))
  285. X  
  286. X  /*
  287. X   * Conversions.
  288. X--- 39,57 ----
  289. X  #define is_digit(c)    (isascii(c) && isdigit(c))
  290. X  #define is_xdigit(c)    (isascii(c) && isxdigit(c))
  291. X  #define is_octdigit(c)    ((c) >= '0' && (c) <= '7')
  292. X  #define is_punct(c)    (isascii(c) && ispunct(c))
  293. X  #define is_alnum(c)    (isascii(c) && isalnum(c))
  294. X  #define is_print(c)    (isascii(c) && isprint(c))
  295. X  #define is_graph(c)    (isascii(c) && isgraph(c))
  296. X  #define is_cntrl(c)    (isascii(c) && iscntrl(c))
  297. X+ 
  298. X+ /*
  299. X+  * This is not like the usual isspace() macro; it only recognises space
  300. X+  * and tab characters as being whitespace. This is important for the
  301. X+  * editor, as other control characters do not normally occur, and if they
  302. X+  * do they should not be treated as whitespace but as control characters.
  303. X+  */
  304. X+ #define is_space(c)    ((c) == ' ' || (c) == '\t')
  305. X  
  306. X  /*
  307. X   * Conversions.
  308. END_OF_FILE
  309. if test 1726 -ne `wc -c <'src/patch02'`; then
  310.     echo shar: \"'src/patch02'\" unpacked with wrong size!
  311. fi
  312. # end of 'src/patch02'
  313. fi
  314. if test -f 'src/patch03' -a "${1}" != "-c" ; then 
  315.   echo shar: Will not clobber existing file \"'src/patch03'\"
  316. else
  317. echo shar: Extracting \"'src/patch03'\" \(1791 characters\)
  318. sed "s/^X//" >'src/patch03' <<'END_OF_FILE'
  319. X*** old/cmdline.c    Tue Jul 28 17:46:08 1992
  320. X--- new/cmdline.c    Mon Nov 30 15:25:23 1992
  321. X***************
  322. X*** 1,6 ****
  323. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  324. X  #ifndef lint
  325. X! static char *sccsid = "@(#)cmdline.c    2.2 (Chris & John Downey) 8/6/92";
  326. X  #endif
  327. X  
  328. X  /***
  329. X--- 1,6 ----
  330. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  331. X  #ifndef lint
  332. X! static char *sccsid = "@(#)cmdline.c    2.4 (Chris & John Downey) 11/6/92";
  333. X  #endif
  334. X  
  335. X  /***
  336. X***************
  337. X*** 507,513 ****
  338. X      move_window_to_cursor(curwin);
  339. X      update_buffer(curbuf);
  340. X  #if 0
  341. X!     show_file_info(curwin);
  342. X  #endif
  343. X      break;
  344. X  
  345. X--- 507,513 ----
  346. X      move_window_to_cursor(curwin);
  347. X      update_buffer(curbuf);
  348. X  #if 0
  349. X!     show_file_info(curwin, TRUE);
  350. X  #endif
  351. X      break;
  352. X  
  353. X***************
  354. X*** 521,527 ****
  355. X          curbuf->b_tempfname = NULL;
  356. X          }
  357. X      }
  358. X!     show_file_info(curwin);
  359. X      break;
  360. X  
  361. X      case EX_GLOBAL:
  362. X--- 521,527 ----
  363. X          curbuf->b_tempfname = NULL;
  364. X          }
  365. X      }
  366. X!     show_file_info(curwin, TRUE);
  367. X      break;
  368. X  
  369. X      case EX_GLOBAL:
  370. X***************
  371. X*** 570,577 ****
  372. X      break;
  373. X  
  374. X      case EX_PRESERVE:
  375. X!     if (do_preserve())
  376. X!         show_file_info(curwin);
  377. X      break;
  378. X  
  379. X      case EX_LIST:
  380. X--- 570,580 ----
  381. X      break;
  382. X  
  383. X      case EX_PRESERVE:
  384. X!     if (do_preserve()) {
  385. X! #if 0
  386. X!         show_file_info(curwin, TRUE);
  387. X! #endif
  388. X!     }
  389. X      break;
  390. X  
  391. X      case EX_LIST:
  392. X***************
  393. X*** 636,642 ****
  394. X      if (arg == NULL) {
  395. X          badcmd(interactive, "Missing filename");
  396. X      } else if (do_source(interactive, arg) && interactive) {
  397. X!         show_file_info(curwin);
  398. X      }
  399. X      break;
  400. X  
  401. X--- 639,648 ----
  402. X      if (arg == NULL) {
  403. X          badcmd(interactive, "Missing filename");
  404. X      } else if (do_source(interactive, arg) && interactive) {
  405. X! #if 0
  406. X!         show_file_info(curwin, TRUE);
  407. X! #endif
  408. X!         ;
  409. X      }
  410. X      break;
  411. X  
  412. END_OF_FILE
  413. if test 1791 -ne `wc -c <'src/patch03'`; then
  414.     echo shar: \"'src/patch03'\" unpacked with wrong size!
  415. fi
  416. # end of 'src/patch03'
  417. fi
  418. if test -f 'src/patch04' -a "${1}" != "-c" ; then 
  419.   echo shar: Will not clobber existing file \"'src/patch04'\"
  420. else
  421. echo shar: Extracting \"'src/patch04'\" \(839 characters\)
  422. sed "s/^X//" >'src/patch04' <<'END_OF_FILE'
  423. X*** old/cursor.c    Tue Jul 28 17:46:10 1992
  424. X--- new/cursor.c    Mon Nov 30 15:25:23 1992
  425. X***************
  426. X*** 1,6 ****
  427. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  428. X  #ifndef lint
  429. X! static char *sccsid = "@(#)cursor.c    2.2 (Chris & John Downey) 9/1/92";
  430. X  #endif
  431. X  
  432. X  /***
  433. X--- 1,6 ----
  434. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  435. X  #ifndef lint
  436. X! static char *sccsid = "@(#)cursor.c    2.6 (Chris & John Downey) 11/6/92";
  437. X  #endif
  438. X  
  439. X  /***
  440. X***************
  441. X*** 42,49 ****
  442. X      if (win->w_curs_new == FALSE) {
  443. X          return;
  444. X      }
  445. X- #endif
  446. X      win->w_curs_new = FALSE;
  447. X  
  448. X      /*
  449. X       * Calculate physical lines from logical lines.
  450. X--- 42,49 ----
  451. X      if (win->w_curs_new == FALSE) {
  452. X          return;
  453. X      }
  454. X      win->w_curs_new = FALSE;
  455. X+ #endif
  456. X  
  457. X      /*
  458. X       * Calculate physical lines from logical lines.
  459. END_OF_FILE
  460. if test 839 -ne `wc -c <'src/patch04'`; then
  461.     echo shar: \"'src/patch04'\" unpacked with wrong size!
  462. fi
  463. # end of 'src/patch04'
  464. fi
  465. if test -f 'src/patch05' -a "${1}" != "-c" ; then 
  466.   echo shar: Will not clobber existing file \"'src/patch05'\"
  467. else
  468. echo shar: Extracting \"'src/patch05'\" \(1411 characters\)
  469. sed "s/^X//" >'src/patch05' <<'END_OF_FILE'
  470. X*** old/defscr.c    Tue Jul 28 17:46:10 1992
  471. X--- new/defscr.c    Mon Nov 30 15:25:24 1992
  472. X***************
  473. X*** 1,6 ****
  474. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  475. X  #ifndef lint
  476. X! static char *sccsid = "@(#)defscr.c    2.4 (Chris & John Downey) 9/4/92";
  477. X  #endif
  478. X  
  479. X  /***
  480. X--- 1,6 ----
  481. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  482. X  #ifndef lint
  483. X! static char *sccsid = "@(#)defscr.c    2.5 (Chris & John Downey) 11/6/92";
  484. X  #endif
  485. X  
  486. X  /***
  487. X***************
  488. X*** 64,72 ****
  489. X  
  490. X      ins_str,        /* v_insert        */
  491. X      scroll,        /* v_scroll        */
  492. X!     NULL,        /* v_flash        */
  493. X!     NULL,        /* v_status        */
  494. X!     NULL,        /* v_activate        */
  495. X  };
  496. X  
  497. X  int
  498. X--- 64,72 ----
  499. X  
  500. X      ins_str,        /* v_insert        */
  501. X      scroll,        /* v_scroll        */
  502. X!     NOFUNC,        /* v_flash        */
  503. X!     NOFUNC,        /* v_status        */
  504. X!     NOFUNC,        /* v_activate        */
  505. X  };
  506. X  
  507. X  int
  508. X***************
  509. X*** 85,94 ****
  510. X      sys_init();
  511. X  
  512. X      if (!can_inschar) {
  513. X!     defscr.v_insert = NULL;
  514. X      }
  515. X      if (!can_scroll_area && !can_ins_line && !can_del_line) {
  516. X!     defscr.v_scroll = NULL;
  517. X      }
  518. X      defscr.pv_rows = Rows;
  519. X      defscr.pv_cols = Columns;
  520. X--- 85,94 ----
  521. X      sys_init();
  522. X  
  523. X      if (!can_inschar) {
  524. X!     defscr.v_insert = NOFUNC;
  525. X      }
  526. X      if (!can_scroll_area && !can_ins_line && !can_del_line) {
  527. X!     defscr.v_scroll = NOFUNC;
  528. X      }
  529. X      defscr.pv_rows = Rows;
  530. X      defscr.pv_cols = Columns;
  531. END_OF_FILE
  532. if test 1411 -ne `wc -c <'src/patch05'`; then
  533.     echo shar: \"'src/patch05'\" unpacked with wrong size!
  534. fi
  535. # end of 'src/patch05'
  536. fi
  537. if test -f 'src/patch06' -a "${1}" != "-c" ; then 
  538.   echo shar: Will not clobber existing file \"'src/patch06'\"
  539. else
  540. echo shar: Extracting \"'src/patch06'\" \(786 characters\)
  541. sed "s/^X//" >'src/patch06' <<'END_OF_FILE'
  542. X*** old/events.c    Tue Jul 28 17:46:12 1992
  543. X--- new/events.c    Mon Nov 30 15:25:45 1992
  544. X***************
  545. X*** 1,6 ****
  546. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  547. X  #ifndef lint
  548. X! static char *sccsid = "@(#)events.c    1.1 (Chris & John Downey) 7/31/92";
  549. X  #endif
  550. X  
  551. X  /***
  552. X--- 1,6 ----
  553. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  554. X  #ifndef lint
  555. X! static char *sccsid = "@(#)events.c    1.3 (Chris & John Downey) 11/6/92";
  556. X  #endif
  557. X  
  558. X  /***
  559. X***************
  560. X*** 155,161 ****
  561. X      /*
  562. X       * Put the status line back as it should be.
  563. X       */
  564. X!     show_file_info(curwin);
  565. X      update_window(curwin);
  566. X      return(FALSE);
  567. X  
  568. X--- 155,161 ----
  569. X      /*
  570. X       * Put the status line back as it should be.
  571. X       */
  572. X!     show_file_info(curwin, TRUE);
  573. X      update_window(curwin);
  574. X      return(FALSE);
  575. X  
  576. END_OF_FILE
  577. if test 786 -ne `wc -c <'src/patch06'`; then
  578.     echo shar: \"'src/patch06'\" unpacked with wrong size!
  579. fi
  580. # end of 'src/patch06'
  581. fi
  582. if test -f 'src/patch07' -a "${1}" != "-c" ; then 
  583.   echo shar: Will not clobber existing file \"'src/patch07'\"
  584. else
  585. echo shar: Extracting \"'src/patch07'\" \(2911 characters\)
  586. sed "s/^X//" >'src/patch07' <<'END_OF_FILE'
  587. X*** old/ex_cmds1.c    Tue Jul 28 17:46:14 1992
  588. X--- new/ex_cmds1.c    Mon Nov 30 15:25:24 1992
  589. X***************
  590. X*** 1,6 ****
  591. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  592. X  #ifndef lint
  593. X! static char *sccsid = "@(#)ex_cmds1.c    2.1 (Chris & John Downey) 7/29/92";
  594. X  #endif
  595. X  
  596. X  /***
  597. X--- 1,6 ----
  598. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  599. X  #ifndef lint
  600. X! static char *sccsid = "@(#)ex_cmds1.c    2.6 (Chris & John Downey) 11/23/92";
  601. X  #endif
  602. X  
  603. X  /***
  604. X***************
  605. X*** 100,106 ****
  606. X       * Also update the window - this will almost certainly
  607. X       * have no effect on the screen, but is necessary.
  608. X       */
  609. X!     show_file_info(window);
  610. X      update_window(window);
  611. X  
  612. X      /*
  613. X--- 100,106 ----
  614. X       * Also update the window - this will almost certainly
  615. X       * have no effect on the screen, but is necessary.
  616. X       */
  617. X!     show_file_info(window, TRUE);
  618. X      update_window(window);
  619. X  
  620. X      /*
  621. X***************
  622. X*** 108,114 ****
  623. X       */
  624. X      init_sline(newwin);
  625. X      update_window(newwin);
  626. X!     show_file_info(newwin);
  627. X  
  628. X      /*
  629. X       * Update the global window variable.
  630. X--- 108,114 ----
  631. X       */
  632. X      init_sline(newwin);
  633. X      update_window(newwin);
  634. X!     show_file_info(newwin, TRUE);
  635. X  
  636. X      /*
  637. X       * Update the global window variable.
  638. X***************
  639. X*** 163,169 ****
  640. X       * Note that we don't need to call move_window_to_cursor() for
  641. X       * the old window until it becomes the current window again.
  642. X       */
  643. X!     show_file_info(window);
  644. X      init_sline(newwin);
  645. X  
  646. X      if (filename != NULL) {
  647. X--- 163,169 ----
  648. X       * Note that we don't need to call move_window_to_cursor() for
  649. X       * the old window until it becomes the current window again.
  650. X       */
  651. X!     show_file_info(window, TRUE);
  652. X      init_sline(newwin);
  653. X  
  654. X      if (filename != NULL) {
  655. X***************
  656. X*** 170,176 ****
  657. X      (void) do_edit(newwin, FALSE, filename);
  658. X      } else {
  659. X      new->b_filename = new->b_tempfname = NULL;
  660. X!     show_file_info(newwin);
  661. X      }
  662. X  
  663. X      update_window(window);
  664. X--- 170,176 ----
  665. X      (void) do_edit(newwin, FALSE, filename);
  666. X      } else {
  667. X      new->b_filename = new->b_tempfname = NULL;
  668. X!     show_file_info(newwin, TRUE);
  669. X      }
  670. X  
  671. X      update_window(window);
  672. X***************
  673. X*** 298,304 ****
  674. X  
  675. X      }
  676. X      update_window(curwin);
  677. X!     show_file_info(curwin);
  678. X      }
  679. X  }
  680. X  
  681. X--- 298,304 ----
  682. X  
  683. X      }
  684. X      update_window(curwin);
  685. X!     show_file_info(curwin, TRUE);
  686. X      }
  687. X  }
  688. X  
  689. X***************
  690. X*** 448,453 ****
  691. X--- 448,464 ----
  692. X                      " [New file]");
  693. X  
  694. X      update_sline(window);        /* ensure colour is updated */
  695. X+ 
  696. X+     wp = window;
  697. X+     while ((wp = next_window(wp)) != window) {
  698. X+     /*
  699. X+      * If there are any other windows on to the same buffer, make
  700. X+      * sure they're properly updated.
  701. X+      */
  702. X+     if (wp->w_buffer == buffer) {
  703. X+         show_message(wp, "%s", sline_text(window));
  704. X+     }
  705. X+     }
  706. X  
  707. X      if (nlines == gf_NEWFILE) {    /* no such file */
  708. X      return(FALSE);
  709. END_OF_FILE
  710. if test 2911 -ne `wc -c <'src/patch07'`; then
  711.     echo shar: \"'src/patch07'\" unpacked with wrong size!
  712. fi
  713. # end of 'src/patch07'
  714. fi
  715. if test -f 'src/patch08' -a "${1}" != "-c" ; then 
  716.   echo shar: Will not clobber existing file \"'src/patch08'\"
  717. else
  718. echo shar: Extracting \"'src/patch08'\" \(865 characters\)
  719. sed "s/^X//" >'src/patch08' <<'END_OF_FILE'
  720. X*** old/ex_cmds2.c    Tue Jul 28 17:46:14 1992
  721. X--- new/ex_cmds2.c    Mon Nov 30 15:25:25 1992
  722. X***************
  723. X*** 1,6 ****
  724. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  725. X  #ifndef lint
  726. X! static char *sccsid = "@(#)ex_cmds2.c    2.2 (Chris & John Downey) 8/3/92";
  727. X  #endif
  728. X  
  729. X  /***
  730. X--- 1,6 ----
  731. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  732. X  #ifndef lint
  733. X! static char *sccsid = "@(#)ex_cmds2.c    2.4 (Chris & John Downey) 11/6/92";
  734. X  #endif
  735. X  
  736. X  /***
  737. X***************
  738. X*** 161,167 ****
  739. X       */
  740. X      curbuf->b_flags |= FL_READONLY | FL_NOEDIT;
  741. X      move_window_to_cursor(curwin);
  742. X!     show_file_info(curwin);
  743. X      update_window(curwin);
  744. X      }
  745. X      echo = savecho;
  746. X--- 161,167 ----
  747. X       */
  748. X      curbuf->b_flags |= FL_READONLY | FL_NOEDIT;
  749. X      move_window_to_cursor(curwin);
  750. X!     show_file_info(curwin, TRUE);
  751. X      update_window(curwin);
  752. X      }
  753. X      echo = savecho;
  754. END_OF_FILE
  755. if test 865 -ne `wc -c <'src/patch08'`; then
  756.     echo shar: \"'src/patch08'\" unpacked with wrong size!
  757. fi
  758. # end of 'src/patch08'
  759. fi
  760. if test -f 'src/patch10' -a "${1}" != "-c" ; then 
  761.   echo shar: Will not clobber existing file \"'src/patch10'\"
  762. else
  763. echo shar: Extracting \"'src/patch10'\" \(1706 characters\)
  764. sed "s/^X//" >'src/patch10' <<'END_OF_FILE'
  765. X*** old/makefile.xen    Tue Jul 28 17:46:36 1992
  766. X--- new/makefile.xen    Mon Nov 30 15:25:30 1992
  767. X***************
  768. X*** 1,7 ****
  769. X  # Copyright (c) 1990,1991,1992 Chris and John Downey
  770. X  #***
  771. X  #
  772. X! # @(#)makefile.xen    2.2 (Chris & John Downey) 7/31/92
  773. X  #
  774. X  # program name:
  775. X  #    xvi
  776. X--- 1,7 ----
  777. X  # Copyright (c) 1990,1991,1992 Chris and John Downey
  778. X  #***
  779. X  #
  780. X! # @(#)makefile.xen    2.3 (Chris & John Downey) 11/6/92
  781. X  #
  782. X  # program name:
  783. X  #    xvi
  784. X***************
  785. X*** 37,51 ****
  786. X          edit.c ex_cmds1.c ex_cmds2.c events.c fileio.c \
  787. X          find.c flexbuf.c map.c mark.c misccmds.c movement.c \
  788. X          normal.c param.c pipe.c preserve.c ptrfunc.c \
  789. X!         regexp.c screen.c search.c startup.c status.c tags.c \
  790. X!         undo.c version.c windows.c yankput.c
  791. X  
  792. X  GENOBJ=        alloc.o ascii.o buffers.o cmdline.o cursor.o \
  793. X          edit.o ex_cmds1.o ex_cmds2.o events.o fileio.o \
  794. X          find.o flexbuf.o map.o mark.o misccmds.o movement.o \
  795. X          normal.o param.o pipe.o preserve.o ptrfunc.o \
  796. X!         regexp.o screen.o search.o startup.o status.o tags.o \
  797. X!         undo.o version.o windows.o yankput.o
  798. X  
  799. X  all:        xvi
  800. X  
  801. X--- 37,51 ----
  802. X          edit.c ex_cmds1.c ex_cmds2.c events.c fileio.c \
  803. X          find.c flexbuf.c map.c mark.c misccmds.c movement.c \
  804. X          normal.c param.c pipe.c preserve.c ptrfunc.c \
  805. X!         regexp.c screen.c search.c signal.c startup.c status.c \
  806. X!         tags.c undo.c version.c windows.c yankput.c
  807. X  
  808. X  GENOBJ=        alloc.o ascii.o buffers.o cmdline.o cursor.o \
  809. X          edit.o ex_cmds1.o ex_cmds2.o events.o fileio.o \
  810. X          find.o flexbuf.o map.o mark.o misccmds.o movement.o \
  811. X          normal.o param.o pipe.o preserve.o ptrfunc.o \
  812. X!         regexp.o screen.o search.o signal.o startup.o status.o \
  813. X!         tags.o undo.o version.o windows.o yankput.o
  814. X  
  815. X  all:        xvi
  816. X  
  817. END_OF_FILE
  818. if test 1706 -ne `wc -c <'src/patch10'`; then
  819.     echo shar: \"'src/patch10'\" unpacked with wrong size!
  820. fi
  821. # end of 'src/patch10'
  822. fi
  823. if test -f 'src/patch11' -a "${1}" != "-c" ; then 
  824.   echo shar: Will not clobber existing file \"'src/patch11'\"
  825. else
  826. echo shar: Extracting \"'src/patch11'\" \(3519 characters\)
  827. sed "s/^X//" >'src/patch11' <<'END_OF_FILE'
  828. X*** old/misccmds.c    Tue Jul 28 17:46:40 1992
  829. X--- new/misccmds.c    Tue Dec 29 11:22:32 1992
  830. X***************
  831. X*** 1,6 ****
  832. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  833. X  #ifndef lint
  834. X! static char *sccsid = "@(#)misccmds.c    2.2 (Chris & John Downey) 8/28/92";
  835. X  #endif
  836. X  
  837. X  /***
  838. X--- 1,6 ----
  839. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  840. X  #ifndef lint
  841. X! static char *sccsid = "@(#)misccmds.c    2.4 (Chris & John Downey) 11/6/92";
  842. X  #endif
  843. X  
  844. X  /***
  845. X***************
  846. X*** 53,59 ****
  847. X       * By asking for as much space as the prior line had we make sure
  848. X       * that we'll have enough space for any auto-indenting.
  849. X       */
  850. X!     l = newline(strlen(otext) + SLOP);
  851. X      if (l == NULL)
  852. X      return(FALSE);
  853. X  
  854. X--- 53,59 ----
  855. X       * By asking for as much space as the prior line had we make sure
  856. X       * that we'll have enough space for any auto-indenting.
  857. X       */
  858. X!     l = newline(strlen(otext) + 1);
  859. X      if (l == NULL)
  860. X      return(FALSE);
  861. X  
  862. X***************
  863. X*** 114,120 ****
  864. X      /*
  865. X       * First find space for new line.
  866. X       */
  867. X!     l = newline(strlen(otext) + SLOP);
  868. X      if (l == NULL)
  869. X      return(FALSE);
  870. X  
  871. X--- 114,120 ----
  872. X      /*
  873. X       * First find space for new line.
  874. X       */
  875. X!     l = newline(strlen(otext) + 1);
  876. X      if (l == NULL)
  877. X      return(FALSE);
  878. X  
  879. X***************
  880. X*** 321,329 ****
  881. X  {
  882. X      register char    *cp;        /* temp char pointer for loops */
  883. X      register int    ntabs;        /* number of tabs to use */
  884. X-     unsigned        nnew;        /* no of chars used in old line */
  885. X      unsigned        nold;        /* no of chars used in new version */
  886. X!     char        *newstr;    /* allocated string for new indent */
  887. X  
  888. X      if (lp == NULL || lp->l_text == NULL) {
  889. X      show_error(curwin, "Internal error: set_indent(0)");
  890. X--- 321,328 ----
  891. X  {
  892. X      register char    *cp;        /* temp char pointer for loops */
  893. X      register int    ntabs;        /* number of tabs to use */
  894. X      unsigned        nold;        /* no of chars used in new version */
  895. X!     static Flexbuf    newstr;        /* space for new chars */
  896. X  
  897. X      if (lp == NULL || lp->l_text == NULL) {
  898. X      show_error(curwin, "Internal error: set_indent(0)");
  899. X***************
  900. X*** 346,381 ****
  901. X      nold = cp - lp->l_text;
  902. X  
  903. X      /*
  904. X!      * "nnew" is the number of characters we will use
  905. X!      * for indentation in the new version of the line.
  906. X       */
  907. X!     nnew = ntabs + indent;
  908. X! 
  909. X!     /*
  910. X!      * Get some space, and place into it the string of tabs
  911. X!      * and spaces which will form the new indentation.
  912. X!      * If no space available, return nold as we have not
  913. X!      * changed the line; this is the correct action.
  914. X!      */
  915. X!     newstr = alloc((unsigned) nnew + 1);
  916. X!     if (newstr == NULL)
  917. X!     return(nold);
  918. X! 
  919. X!     cp = newstr;
  920. X      while (ntabs-- > 0)
  921. X!     *cp++ = '\t';
  922. X      while (indent-- > 0)
  923. X!     *cp++ = ' ';
  924. X!     *cp = '\0';
  925. X  
  926. X      /*
  927. X       * Finally, replace the old with the new.
  928. X       */
  929. X!     replchars(curwin, lp, 0, (int) nold, newstr);
  930. X  
  931. X!     free(newstr);
  932. X! 
  933. X!     return(nnew);
  934. X  }
  935. X  
  936. X  /*
  937. X--- 345,368 ----
  938. X      nold = cp - lp->l_text;
  939. X  
  940. X      /*
  941. X!      * Collect the string of tabs and spaces which will form the new
  942. X!      * indentation.
  943. X       */
  944. X!     flexclear(&newstr);
  945. X      while (ntabs-- > 0)
  946. X!     flexaddch(&newstr, '\t');
  947. X      while (indent-- > 0)
  948. X!     flexaddch(&newstr, ' ');
  949. X  
  950. X      /*
  951. X       * Finally, replace the old with the new.
  952. X       */
  953. X!     replchars(curwin, lp, 0, (int) nold, flexgetstr(&newstr));
  954. X  
  955. X!     /*
  956. X!      * This is the number of characters we've inserted.
  957. X!      */
  958. X!     return flexlen(&newstr);
  959. X  }
  960. X  
  961. X  /*
  962. END_OF_FILE
  963. if test 3519 -ne `wc -c <'src/patch11'`; then
  964.     echo shar: \"'src/patch11'\" unpacked with wrong size!
  965. fi
  966. # end of 'src/patch11'
  967. fi
  968. if test -f 'src/patch12' -a "${1}" != "-c" ; then 
  969.   echo shar: Will not clobber existing file \"'src/patch12'\"
  970. else
  971. echo shar: Extracting \"'src/patch12'\" \(864 characters\)
  972. sed "s/^X//" >'src/patch12' <<'END_OF_FILE'
  973. X*** old/mouse.c    Tue Jul 28 17:46:42 1992
  974. X--- new/mouse.c    Mon Nov 30 15:25:31 1992
  975. X***************
  976. X*** 1,6 ****
  977. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  978. X  #ifndef lint
  979. X! static char *sccsid = "@(#)mouse.c    2.1 (Chris & John Downey) 7/29/92";
  980. X  #endif
  981. X  
  982. X  /***
  983. X--- 1,6 ----
  984. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  985. X  #ifndef lint
  986. X! static char *sccsid = "@(#)mouse.c    2.3 (Chris & John Downey) 11/6/92";
  987. X  #endif
  988. X  
  989. X  /***
  990. X***************
  991. X*** 209,215 ****
  992. X       * applies whether or not it was already the current
  993. X       * window.
  994. X       */
  995. X!     show_file_info(wp);
  996. X      } else {
  997. X      /*
  998. X       * Move the cursor as near as possible to where the
  999. X--- 209,215 ----
  1000. X       * applies whether or not it was already the current
  1001. X       * window.
  1002. X       */
  1003. X!     show_file_info(wp, TRUE);
  1004. X      } else {
  1005. X      /*
  1006. X       * Move the cursor as near as possible to where the
  1007. END_OF_FILE
  1008. if test 864 -ne `wc -c <'src/patch12'`; then
  1009.     echo shar: \"'src/patch12'\" unpacked with wrong size!
  1010. fi
  1011. # end of 'src/patch12'
  1012. fi
  1013. if test -f 'src/patch13' -a "${1}" != "-c" ; then 
  1014.   echo shar: Will not clobber existing file \"'src/patch13'\"
  1015. else
  1016. echo shar: Extracting \"'src/patch13'\" \(2776 characters\)
  1017. sed "s/^X//" >'src/patch13' <<'END_OF_FILE'
  1018. X*** old/movement.c    Tue Jul 28 17:46:42 1992
  1019. X--- new/movement.c    Mon Nov 30 15:25:32 1992
  1020. X***************
  1021. X*** 1,6 ****
  1022. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1023. X  #ifndef lint
  1024. X! static char *sccsid = "@(#)movement.c    2.2 (Chris & John Downey) 9/1/92";
  1025. X  #endif
  1026. X  
  1027. X  /***
  1028. X--- 1,6 ----
  1029. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1030. X  #ifndef lint
  1031. X! static char *sccsid = "@(#)movement.c    2.6 (Chris & John Downey) 11/30/92";
  1032. X  #endif
  1033. X  
  1034. X  /***
  1035. X***************
  1036. X*** 167,172 ****
  1037. X--- 167,174 ----
  1038. X      pp->p_index = 0;
  1039. X      win->w_curs_new = TRUE;
  1040. X  
  1041. X+     info_update(win);
  1042. X+ 
  1043. X      /*
  1044. X       * Try to advance to the column we want to be at.
  1045. X       */
  1046. X***************
  1047. X*** 209,214 ****
  1048. X--- 211,218 ----
  1049. X      pp->p_index = 0;
  1050. X      win->w_curs_new = TRUE;
  1051. X  
  1052. X+     info_update(win);
  1053. X+ 
  1054. X      /*
  1055. X       * Try to advance to the column we want to be at.
  1056. X       */
  1057. X***************
  1058. X*** 336,344 ****
  1059. X  do_goto(line)
  1060. X  long line;
  1061. X  {
  1062. X!     curwin->w_cursor->p_line = gotoline(curbuf, line);
  1063. X!     curwin->w_cursor->p_index = 0;
  1064. X!     curwin->w_curs_new = TRUE;
  1065. X      begin_line(curwin, TRUE);
  1066. X  }
  1067. X  
  1068. X--- 340,346 ----
  1069. X  do_goto(line)
  1070. X  long line;
  1071. X  {
  1072. X!     move_cursor(curwin, gotoline(curbuf, line), 0);
  1073. X      begin_line(curwin, TRUE);
  1074. X  }
  1075. X  
  1076. X***************
  1077. X*** 351,359 ****
  1078. X  Line    *lp;
  1079. X  int    index;
  1080. X  {
  1081. X!     win->w_cursor->p_line = lp;
  1082. X!     win->w_cursor->p_index = index;
  1083. X      win->w_curs_new = TRUE;
  1084. X  }
  1085. X  
  1086. X  /*
  1087. X--- 353,368 ----
  1088. X  Line    *lp;
  1089. X  int    index;
  1090. X  {
  1091. X!     Posn *p;
  1092. X!     Line *oldline;
  1093. X! 
  1094. X!     p = win->w_cursor;
  1095. X!     oldline = p->p_line;
  1096. X!     p->p_line = lp;
  1097. X!     p->p_index = index;
  1098. X      win->w_curs_new = TRUE;
  1099. X+     if (oldline != lp)
  1100. X+     info_update(win);
  1101. X  }
  1102. X  
  1103. X  /*
  1104. X***************
  1105. X*** 392,398 ****
  1106. X       * - the status line is updated with the correct line number.
  1107. X       * This is a small cost compared to updating the whole window.
  1108. X       */
  1109. X!     show_file_info(win);
  1110. X  }
  1111. X  
  1112. X  /*
  1113. X--- 401,409 ----
  1114. X       * - the status line is updated with the correct line number.
  1115. X       * This is a small cost compared to updating the whole window.
  1116. X       */
  1117. X!     show_file_info(win, TRUE);
  1118. X! 
  1119. X!     win->w_curs_new = TRUE;
  1120. X  }
  1121. X  
  1122. X  /*
  1123. X***************
  1124. X*** 584,589 ****
  1125. X--- 595,601 ----
  1126. X          }
  1127. X  
  1128. X          win->w_topline = newtopline;
  1129. X+         win->w_curs_new = TRUE;
  1130. X          update_window(win);
  1131. X      }
  1132. X      }
  1133. X***************
  1134. X*** 604,613 ****
  1135. X--- 616,627 ----
  1136. X  
  1137. X      if (earlier(cp->p_line, win->w_topline)) {
  1138. X      cp->p_line = win->w_topline;
  1139. X+     info_update(win);
  1140. X      coladvance(win, win->w_curswant);
  1141. X      } else if (!earlier(cp->p_line, win->w_botline)
  1142. X             && earlier(win->w_topline, win->w_botline)) {
  1143. X      cp->p_line = win->w_botline->l_prev;
  1144. X+     info_update(win);
  1145. X      coladvance(win, win->w_curswant);
  1146. X      }
  1147. X      win->w_curs_new = TRUE;
  1148. END_OF_FILE
  1149. if test 2776 -ne `wc -c <'src/patch13'`; then
  1150.     echo shar: \"'src/patch13'\" unpacked with wrong size!
  1151. fi
  1152. # end of 'src/patch13'
  1153. fi
  1154. if test -f 'src/patch16' -a "${1}" != "-c" ; then 
  1155.   echo shar: Will not clobber existing file \"'src/patch16'\"
  1156. else
  1157. echo shar: Extracting \"'src/patch16'\" \(2072 characters\)
  1158. sed "s/^X//" >'src/patch16' <<'END_OF_FILE'
  1159. X*** old/param.c    Tue Jul 28 17:46:54 1992
  1160. X--- new/param.c    Mon Nov 30 15:25:35 1992
  1161. X***************
  1162. X*** 1,6 ****
  1163. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1164. X  #ifndef lint
  1165. X! static char *sccsid = "@(#)param.c    2.1 (Chris & John Downey) 7/29/92";
  1166. X  #endif
  1167. X  
  1168. X  /***
  1169. X--- 1,6 ----
  1170. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1171. X  #ifndef lint
  1172. X! static char *sccsid = "@(#)param.c    2.5 (Chris & John Downey) 11/6/92";
  1173. X  #endif
  1174. X  
  1175. X  /***
  1176. X***************
  1177. X*** 49,55 ****
  1178. X  
  1179. X  #include "xvi.h"
  1180. X  
  1181. X! #define nofunc    PFUNCADDR(NULL)
  1182. X  
  1183. X  /*
  1184. X   * Default settings for string parameters.
  1185. X--- 49,55 ----
  1186. X  
  1187. X  #include "xvi.h"
  1188. X  
  1189. X! #define nofunc    PFUNCADDR(NOFUNC)
  1190. X  
  1191. X  /*
  1192. X   * Default settings for string parameters.
  1193. X***************
  1194. X*** 118,123 ****
  1195. X--- 118,124 ----
  1196. X  {   "hardtabs",     "ht",           P_NUM,      0,              not_imp,   },
  1197. X  {   "helpfile",     "hf",           P_STRING,   0,              nofunc,    },
  1198. X  {   "ignorecase",   "ic",           P_BOOL,     0,              nofunc,    },
  1199. X+ {   "infoupdate",   "iu",        P_ENUM,     0,        nofunc,    },
  1200. X  {   "jumpscroll",   "js",           P_ENUM,     0,              nofunc,    },
  1201. X  {   "lisp",         "lisp",         P_BOOL,     0,              not_imp,   },
  1202. X  {   "list",         "ls",           P_BOOL,     0,              nofunc,    },
  1203. X***************
  1204. X*** 199,204 ****
  1205. X--- 200,218 ----
  1206. X      NULL
  1207. X  };
  1208. X  
  1209. X+ /*
  1210. X+  * Names of values for the P_infoupdate enumerated parameter.
  1211. X+  *
  1212. X+  * It is essential that these are in the same order as the iu_...
  1213. X+  * symbolic constants defined in xvi.h.
  1214. X+  */
  1215. X+ static char *iu_strings[] =
  1216. X+ {
  1217. X+     "terse",        /* iu_TERSE */
  1218. X+     "continuous",    /* iu_CONTINUOUS */
  1219. X+     NULL
  1220. X+ };
  1221. X+ 
  1222. X  static struct {
  1223. X      int        index;
  1224. X      int        value;
  1225. X***************
  1226. X*** 205,210 ****
  1227. X--- 219,225 ----
  1228. X      char    **elist;
  1229. X  } init_enum[] = {    /* enumerations */
  1230. X      P_format,        DEF_TFF,    fmt_strings,
  1231. X+     P_infoupdate,    iu_TERSE,    iu_strings,
  1232. X      P_jumpscroll,    js_AUTO,    js_strings,
  1233. X      P_preserve,        psv_STANDARD,    psv_strings,
  1234. X      P_regextype,    rt_GREP,    rt_strings,
  1235. END_OF_FILE
  1236. if test 2072 -ne `wc -c <'src/patch16'`; then
  1237.     echo shar: \"'src/patch16'\" unpacked with wrong size!
  1238. fi
  1239. # end of 'src/patch16'
  1240. fi
  1241. if test -f 'src/patch18' -a "${1}" != "-c" ; then 
  1242.   echo shar: Will not clobber existing file \"'src/patch18'\"
  1243. else
  1244. echo shar: Extracting \"'src/patch18'\" \(2046 characters\)
  1245. sed "s/^X//" >'src/patch18' <<'END_OF_FILE'
  1246. X*** old/pipe.c    Tue Jul 28 17:46:58 1992
  1247. X--- new/pipe.c    Tue Dec 22 17:04:19 1992
  1248. X***************
  1249. X*** 1,6 ****
  1250. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1251. X  #ifndef lint
  1252. X! static char *sccsid = "@(#)pipe.c    2.1 (Chris & John Downey) 7/29/92";
  1253. X  #endif
  1254. X  
  1255. X  /***
  1256. X--- 1,6 ----
  1257. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1258. X  #ifndef lint
  1259. X! static char *sccsid = "@(#)pipe.c    2.3 (Chris & John Downey) 11/23/92";
  1260. X  #endif
  1261. X  
  1262. X  /***
  1263. X***************
  1264. X*** 160,166 ****
  1265. X           * the lines we've read in so far, &
  1266. X           * return gf_NOMEM.
  1267. X           */
  1268. X!         lp = newline(MAX_LINE_LENGTH);
  1269. X          if (lp == NULL) {
  1270. X              if (lptr != NULL)
  1271. X              throw(lptr);
  1272. X--- 160,166 ----
  1273. X           * the lines we've read in so far, &
  1274. X           * return gf_NOMEM.
  1275. X           */
  1276. X!         lp = newline(1);
  1277. X          if (lp == NULL) {
  1278. X              if (lptr != NULL)
  1279. X              throw(lptr);
  1280. X***************
  1281. X*** 175,187 ****
  1282. X          }
  1283. X      }
  1284. X  
  1285. X!     /*
  1286. X!      * Fake eoln for lines which are too long.
  1287. X!      * Don't lose the input character.
  1288. X!      */
  1289. X!     if (col >= MAX_LINE_LENGTH - 1) {
  1290. X!         (void) ungetc(c, fp);
  1291. X!         state = at_eoln;
  1292. X      }
  1293. X  
  1294. X      switch (state) {
  1295. X--- 175,187 ----
  1296. X          }
  1297. X      }
  1298. X  
  1299. X!     if (col >= lp->l_size - 1) {
  1300. X!         if (!lnresize(lp, col + 2)) {
  1301. X!         if (lptr != NULL)
  1302. X!             throw(lptr);
  1303. X!         return(-1);
  1304. X!         }
  1305. X!         buff = lp->l_text;
  1306. X      }
  1307. X  
  1308. X      switch (state) {
  1309. X***************
  1310. X*** 206,219 ****
  1311. X           * If this fails, we squeak at the user and
  1312. X           * then throw away the lines read in so far.
  1313. X           */
  1314. X!         buff = realloc(buff, (unsigned) col + 1);
  1315. X!         if (buff == NULL) {
  1316. X          if (lptr != NULL)
  1317. X              throw(lptr);
  1318. X          return(-1);
  1319. X          }
  1320. X-         lp->l_text = buff;
  1321. X-         lp->l_size = col + 1;
  1322. X  
  1323. X          /*
  1324. X           * Tack the line onto the end of the list,
  1325. X--- 206,216 ----
  1326. X           * If this fails, we squeak at the user and
  1327. X           * then throw away the lines read in so far.
  1328. X           */
  1329. X!         if (!lnresize(lp, (unsigned) col + 1)) {
  1330. X          if (lptr != NULL)
  1331. X              throw(lptr);
  1332. X          return(-1);
  1333. X          }
  1334. X  
  1335. X          /*
  1336. X           * Tack the line onto the end of the list,
  1337. END_OF_FILE
  1338. if test 2046 -ne `wc -c <'src/patch18'`; then
  1339.     echo shar: \"'src/patch18'\" unpacked with wrong size!
  1340. fi
  1341. # end of 'src/patch18'
  1342. fi
  1343. if test -f 'src/patch20' -a "${1}" != "-c" ; then 
  1344.   echo shar: Will not clobber existing file \"'src/patch20'\"
  1345. else
  1346. echo shar: Extracting \"'src/patch20'\" \(1068 characters\)
  1347. sed "s/^X//" >'src/patch20' <<'END_OF_FILE'
  1348. X*** old/search.c    Tue Jul 28 17:47:12 1992
  1349. X--- new/search.c    Mon Nov 30 15:25:39 1992
  1350. X***************
  1351. X*** 1,6 ****
  1352. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1353. X  #ifndef lint
  1354. X! static char *sccsid = "@(#)search.c    2.1 (Chris & John Downey) 7/29/92";
  1355. X  #endif
  1356. X  
  1357. X  /***
  1358. X--- 1,6 ----
  1359. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1360. X  #ifndef lint
  1361. X! static char *sccsid = "@(#)search.c    2.2 (Chris & John Downey) 11/30/92";
  1362. X  #endif
  1363. X  
  1364. X  /***
  1365. X***************
  1366. X*** 764,771 ****
  1367. X      curline = lp;
  1368. X      lastline = up;
  1369. X      greptype = matchtype;
  1370. X!     disp_init(window, grep_line, (int) Columns,
  1371. X!           (cmdchar == 'l'));
  1372. X      return;
  1373. X      }
  1374. X  
  1375. X--- 764,770 ----
  1376. X      curline = lp;
  1377. X      lastline = up;
  1378. X      greptype = matchtype;
  1379. X!     disp_init(window, grep_line, (int) window->w_ncols, (cmdchar == 'l'));
  1380. X      return;
  1381. X      }
  1382. X  
  1383. X***************
  1384. X*** 797,803 ****
  1385. X       * we are going to produce some more output anyway.
  1386. X       */
  1387. X      gotocmd(window, FALSE);
  1388. X-     flush_output();
  1389. X  
  1390. X      /*
  1391. X       * Try every line from lp up to (but not including) up.
  1392. X--- 796,801 ----
  1393. END_OF_FILE
  1394. if test 1068 -ne `wc -c <'src/patch20'`; then
  1395.     echo shar: \"'src/patch20'\" unpacked with wrong size!
  1396. fi
  1397. # end of 'src/patch20'
  1398. fi
  1399. if test -f 'src/patch21' -a "${1}" != "-c" ; then 
  1400.   echo shar: Will not clobber existing file \"'src/patch21'\"
  1401. else
  1402. echo shar: Extracting \"'src/patch21'\" \(1623 characters\)
  1403. sed "s/^X//" >'src/patch21' <<'END_OF_FILE'
  1404. X*** old/startup.c    Tue Jul 28 17:47:16 1992
  1405. X--- new/startup.c    Mon Nov 30 15:25:39 1992
  1406. X***************
  1407. X*** 1,6 ****
  1408. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1409. X  #ifndef lint
  1410. X! static char *sccsid = "@(#)startup.c    2.3 (Chris & John Downey) 9/4/92";
  1411. X  #endif
  1412. X  
  1413. X  /***
  1414. X--- 1,6 ----
  1415. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1416. X  #ifndef lint
  1417. X! static char *sccsid = "@(#)startup.c    2.6 (Chris & John Downey) 11/30/92";
  1418. X  #endif
  1419. X  
  1420. X  /***
  1421. X***************
  1422. X*** 300,312 ****
  1423. X      }
  1424. X  
  1425. X      /*
  1426. X!      * Initialise the cursor and top of screen pointers
  1427. X!      * to the start of the first buffer. Note that the
  1428. X!      * bottom of screen pointer is also set up, as some
  1429. X!      * code (e.g. move_window_to_cursor) depends on it.
  1430. X       */
  1431. X-     curwin->w_topline = curbuf->b_file;
  1432. X-     curwin->w_botline = curbuf->b_file->l_next;
  1433. X      move_cursor(curwin, curbuf->b_file, 0);
  1434. X      curwin->w_col = 0;
  1435. X      curwin->w_row = 0;
  1436. X--- 300,307 ----
  1437. X      }
  1438. X  
  1439. X      /*
  1440. X!      * Initialise the cursor.
  1441. X       */
  1442. X      move_cursor(curwin, curbuf->b_file, 0);
  1443. X      curwin->w_col = 0;
  1444. X      curwin->w_row = 0;
  1445. X***************
  1446. X*** 342,352 ****
  1447. X           * display the "no file" message.
  1448. X           */
  1449. X          sleep(2);
  1450. X!         show_file_info(curwin);
  1451. X      }
  1452. X      } else {
  1453. X      echo = e_CHARUPDATE | e_SHOWINFO;
  1454. X!     show_file_info(curwin);
  1455. X      }
  1456. X  
  1457. X      setpcmark(curwin);
  1458. X--- 337,347 ----
  1459. X           * display the "no file" message.
  1460. X           */
  1461. X          sleep(2);
  1462. X!         show_file_info(curwin, TRUE);
  1463. X      }
  1464. X      } else {
  1465. X      echo = e_CHARUPDATE | e_SHOWINFO;
  1466. X!     show_file_info(curwin, TRUE);
  1467. X      }
  1468. X  
  1469. X      setpcmark(curwin);
  1470. END_OF_FILE
  1471. if test 1623 -ne `wc -c <'src/patch21'`; then
  1472.     echo shar: \"'src/patch21'\" unpacked with wrong size!
  1473. fi
  1474. # end of 'src/patch21'
  1475. fi
  1476. if test -f 'src/patch22' -a "${1}" != "-c" ; then 
  1477.   echo shar: Will not clobber existing file \"'src/patch22'\"
  1478. else
  1479. echo shar: Extracting \"'src/patch22'\" \(2596 characters\)
  1480. sed "s/^X//" >'src/patch22' <<'END_OF_FILE'
  1481. X*** old/status.c    Tue Jul 28 17:47:16 1992
  1482. X--- new/status.c    Mon Nov 30 15:25:40 1992
  1483. X***************
  1484. X*** 1,6 ****
  1485. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1486. X  #ifndef lint
  1487. X! static char *sccsid = "@(#)status.c    2.1 (Chris & John Downey) 7/29/92";
  1488. X  #endif
  1489. X  
  1490. X  /***
  1491. X--- 1,6 ----
  1492. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1493. X  #ifndef lint
  1494. X! static char *sccsid = "@(#)status.c    2.2 (Chris & John Downey) 11/6/92";
  1495. X  #endif
  1496. X  
  1497. X  /***
  1498. X***************
  1499. X*** 82,116 ****
  1500. X  }
  1501. X  
  1502. X  void
  1503. X! show_file_info(window)
  1504. X  Xviwin    *window;
  1505. X  {
  1506. X      if (echo & e_SHOWINFO) {
  1507. X      Buffer    *buffer;
  1508. X      Flexbuf    *slp;
  1509. X-     long    position, total;
  1510. X-     long    percentage;
  1511. X  
  1512. X      buffer = window->w_buffer;
  1513. X  
  1514. X-     position = lineno(buffer, window->w_cursor->p_line);
  1515. X-     total = lineno(buffer, buffer->b_lastline->l_prev);
  1516. X-     percentage = (total > 0) ? (position * 100) / total : 0;
  1517. X- 
  1518. X      slp = &window->w_statusline;
  1519. X      flexclear(slp);
  1520. X      if (buffer->b_filename == NULL) {
  1521. X!         (void) lformat(slp, "No File ");
  1522. X      } else {
  1523. X!         (void) lformat(slp, "\"%s\" ", buffer->b_filename);
  1524. X      }
  1525. X!     (void) lformat(slp, "%s%s%sline %ld of %ld (%ld%%)",
  1526. X!         is_readonly(buffer) ? "[Read only] " : "",
  1527. X!         not_editable(buffer) ? "[Not editable] " : "",
  1528. X!         is_modified(buffer) ? "[Modified] " : "",
  1529. X!         position,
  1530. X!         total,
  1531. X!         percentage);
  1532. X      }
  1533. X      update_sline(window);
  1534. X  }
  1535. X--- 82,133 ----
  1536. X  }
  1537. X  
  1538. X  void
  1539. X! show_file_info(window, show_numbers)
  1540. X  Xviwin    *window;
  1541. X+ bool_t    show_numbers;
  1542. X  {
  1543. X      if (echo & e_SHOWINFO) {
  1544. X      Buffer    *buffer;
  1545. X      Flexbuf    *slp;
  1546. X  
  1547. X      buffer = window->w_buffer;
  1548. X  
  1549. X      slp = &window->w_statusline;
  1550. X      flexclear(slp);
  1551. X      if (buffer->b_filename == NULL) {
  1552. X!         (void) lformat(slp, "No File");
  1553. X!         if (bufempty(buffer)) {
  1554. X!         show_numbers = FALSE;
  1555. X!         }
  1556. X      } else {
  1557. X!         (void) lformat(slp, "\"%s\"", buffer->b_filename);
  1558. X      }
  1559. X!     if (is_readonly(buffer))
  1560. X!         (void) lformat(slp, " [Read only]");
  1561. X!     if (not_editable(buffer))
  1562. X!         (void) lformat(slp, " [Not editable]");
  1563. X!     if (is_modified(buffer))
  1564. X!         (void) lformat(slp, " [Modified]");
  1565. X!     if (show_numbers) {
  1566. X!         long    position, total;
  1567. X!         long    percentage;
  1568. X! 
  1569. X!         position = lineno(buffer, window->w_cursor->p_line);
  1570. X!         total = lineno(buffer, buffer->b_lastline->l_prev);
  1571. X!         percentage = (total > 0) ? (position * 100) / total : 0;
  1572. X! 
  1573. X!         (void) lformat(slp, " line %ld of %ld --%ld%%--",
  1574. X!             position,
  1575. X!             total,
  1576. X!             percentage);
  1577. X!     }
  1578. X      }
  1579. X      update_sline(window);
  1580. X+ }
  1581. X+ 
  1582. X+ void
  1583. X+ info_update(win)
  1584. X+     Xviwin *win;
  1585. X+ {
  1586. X+     show_file_info(win, Pen(P_infoupdate) == iu_CONTINUOUS);
  1587. X  }
  1588. END_OF_FILE
  1589. if test 2596 -ne `wc -c <'src/patch22'`; then
  1590.     echo shar: \"'src/patch22'\" unpacked with wrong size!
  1591. fi
  1592. # end of 'src/patch22'
  1593. fi
  1594. if test -f 'src/patch23' -a "${1}" != "-c" ; then 
  1595.   echo shar: Will not clobber existing file \"'src/patch23'\"
  1596. else
  1597. echo shar: Extracting \"'src/patch23'\" \(1290 characters\)
  1598. sed "s/^X//" >'src/patch23' <<'END_OF_FILE'
  1599. X*** old/sunback.c    Tue Jul 28 17:47:18 1992
  1600. X--- new/sunback.c    Mon Nov 30 15:25:40 1992
  1601. X***************
  1602. X*** 1,5 ****
  1603. X  #ifndef lint
  1604. X! static char *sccsid = "@(#)sunback.c    2.1 (Chris & John Downey) 7/29/92";
  1605. X  #endif
  1606. X  
  1607. X  /***
  1608. X--- 1,5 ----
  1609. X  #ifndef lint
  1610. X! static char *sccsid = "@(#)sunback.c    2.2 (Chris & John Downey) 11/6/92";
  1611. X  #endif
  1612. X  
  1613. X  /***
  1614. X***************
  1615. X*** 65,78 ****
  1616. X  static void
  1617. X  xyupdate()
  1618. X  {
  1619. X!     int hdisp,    /* horizontal (rightward) displacement wanted */
  1620. X!     vdisp,    /* vertical (downward) displacement wanted */
  1621. X!     ahdisp,    /* absolute horizontal displacement wanted */
  1622. X!     avdisp,    /* absolute vertical displacement wanted */
  1623. X      homedisp;    /* total displacement from home position */
  1624. X  
  1625. X      if (optimize) {
  1626. X!     if (virt_col == real_col && virt_row == real_row)
  1627. X          /*
  1628. X           * Nothing to do.
  1629. X           */
  1630. X--- 65,78 ----
  1631. X  static void
  1632. X  xyupdate()
  1633. X  {
  1634. X!     int hdisp,        /* horizontal (rightward) displacement wanted */
  1635. X!     vdisp,        /* vertical (downward) displacement wanted */
  1636. X!     ahdisp,        /* absolute horizontal displacement wanted */
  1637. X!     avdisp,        /* absolute vertical displacement wanted */
  1638. X      homedisp;    /* total displacement from home position */
  1639. X  
  1640. X      if (optimize) {
  1641. X!     if (virt_col == real_col && virt_row == real_row) {
  1642. X          /*
  1643. X           * Nothing to do.
  1644. X           */
  1645. END_OF_FILE
  1646. if test 1290 -ne `wc -c <'src/patch23'`; then
  1647.     echo shar: \"'src/patch23'\" unpacked with wrong size!
  1648. fi
  1649. # end of 'src/patch23'
  1650. fi
  1651. if test -f 'src/patch24' -a "${1}" != "-c" ; then 
  1652.   echo shar: Will not clobber existing file \"'src/patch24'\"
  1653. else
  1654. echo shar: Extracting \"'src/patch24'\" \(856 characters\)
  1655. sed "s/^X//" >'src/patch24' <<'END_OF_FILE'
  1656. X*** old/tags.c    Tue Jul 28 17:47:20 1992
  1657. X--- new/tags.c    Mon Nov 30 15:25:41 1992
  1658. X***************
  1659. X*** 1,6 ****
  1660. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1661. X  #ifndef lint
  1662. X! static char *sccsid = "@(#)tags.c    2.1 (Chris & John Downey) 7/29/92";
  1663. X  #endif
  1664. X  
  1665. X  /***
  1666. X--- 1,6 ----
  1667. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1668. X  #ifndef lint
  1669. X! static char *sccsid = "@(#)tags.c    2.2 (Chris & John Downey) 11/6/92";
  1670. X  #endif
  1671. X  
  1672. X  /***
  1673. X***************
  1674. X*** 221,227 ****
  1675. X          set_param(P_regextype, rt_TAGS, (char **) NULL);
  1676. X  
  1677. X          if (dosearch(curwin, field3, '/')) {
  1678. X!         show_file_info(curwin);
  1679. X          } else {
  1680. X          beep(curwin);
  1681. X          }
  1682. X--- 221,227 ----
  1683. X          set_param(P_regextype, rt_TAGS, (char **) NULL);
  1684. X  
  1685. X          if (dosearch(curwin, field3, '/')) {
  1686. X!         show_file_info(curwin, TRUE);
  1687. X          } else {
  1688. X          beep(curwin);
  1689. X          }
  1690. END_OF_FILE
  1691. if test 856 -ne `wc -c <'src/patch24'`; then
  1692.     echo shar: \"'src/patch24'\" unpacked with wrong size!
  1693. fi
  1694. # end of 'src/patch24'
  1695. fi
  1696. if test -f 'src/patch25' -a "${1}" != "-c" ; then 
  1697.   echo shar: Will not clobber existing file \"'src/patch25'\"
  1698. else
  1699. echo shar: Extracting \"'src/patch25'\" \(2380 characters\)
  1700. sed "s/^X//" >'src/patch25' <<'END_OF_FILE'
  1701. X*** old/termcap.c    Tue Jul 28 17:47:24 1992
  1702. X--- new/termcap.c    Mon Nov 30 15:25:41 1992
  1703. X***************
  1704. X*** 1,6 ****
  1705. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1706. X  #ifndef lint
  1707. X! static char *sccsid = "@(#)termcap.c    2.1 (Chris & John Downey) 7/29/92";
  1708. X  #endif
  1709. X  
  1710. X  /***
  1711. X--- 1,6 ----
  1712. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1713. X  #ifndef lint
  1714. X! static char *sccsid = "@(#)termcap.c    2.6 (Chris & John Downey) 11/10/92";
  1715. X  #endif
  1716. X  
  1717. X  /***
  1718. X***************
  1719. X*** 615,624 ****
  1720. X       * xyupdate(), or we will get infinite recursion.
  1721. X       * The "right" place is:
  1722. X       *    if we have sf or SF:
  1723. X!      *        assume they will work with the cursor placed
  1724. X!      *        anywhere inside the scroll region; so if we
  1725. X!      *        are already there, we don't need to move.
  1726. X!      *        This is a big win for normal editing usage.
  1727. X       *    if no sf or SF capability:
  1728. X       *        if we have a dl capability:
  1729. X       *            the first row of the area
  1730. X--- 615,624 ----
  1731. X       * xyupdate(), or we will get infinite recursion.
  1732. X       * The "right" place is:
  1733. X       *    if we have sf or SF:
  1734. X!      *        It would be nice to assume that "sf" / "SF"
  1735. X!      *        would work anywhere within the scroll region;
  1736. X!      *        unfortunately, this just isn't true. Sigh.
  1737. X!      *        So we have to put the cursor on the last row.
  1738. X       *    if no sf or SF capability:
  1739. X       *        if we have a dl capability:
  1740. X       *            the first row of the area
  1741. X***************
  1742. X*** 632,653 ****
  1743. X       *            optimise will be turned off afterwards,
  1744. X       *            and the caller save the cursor anyway.
  1745. X       */
  1746. X!     if (SF != NULL || sf != NULL) {
  1747. X!     if (virt_row < start_row || virt_row > end_row) {
  1748. X          virt_row = start_row;
  1749. X          virt_col = 0;
  1750. X      }
  1751. X!     } else {    /* don't have sf or SF */
  1752. X!     if (DL != NULL) {
  1753. X!         if (virt_row != start_row) {
  1754. X!         virt_row = start_row;
  1755. X!         virt_col = 0;
  1756. X!         }
  1757. X!     } else {    /* no DL; use DO */
  1758. X!         if (virt_row != end_row) {
  1759. X!         virt_row = end_row;
  1760. X!         virt_col = 0;
  1761. X!         }
  1762. X      }
  1763. X      }
  1764. X  
  1765. X--- 632,646 ----
  1766. X       *            optimise will be turned off afterwards,
  1767. X       *            and the caller save the cursor anyway.
  1768. X       */
  1769. X!     if (SF == NULL && sf == NULL && DL != NULL) {
  1770. X!     if (virt_row != start_row) {
  1771. X          virt_row = start_row;
  1772. X          virt_col = 0;
  1773. X      }
  1774. X!     } else /* use SF or sf or DO */ {
  1775. X!     if (virt_row != end_row) {
  1776. X!         virt_row = end_row;
  1777. X!         virt_col = 0;
  1778. X      }
  1779. X      }
  1780. X  
  1781. END_OF_FILE
  1782. if test 2380 -ne `wc -c <'src/patch25'`; then
  1783.     echo shar: \"'src/patch25'\" unpacked with wrong size!
  1784. fi
  1785. # end of 'src/patch25'
  1786. fi
  1787. if test -f 'src/patch26' -a "${1}" != "-c" ; then 
  1788.   echo shar: Will not clobber existing file \"'src/patch26'\"
  1789. else
  1790. echo shar: Extracting \"'src/patch26'\" \(3285 characters\)
  1791. sed "s/^X//" >'src/patch26' <<'END_OF_FILE'
  1792. X*** old/unix.c    Tue Jul 28 17:47:28 1992
  1793. X--- new/unix.c    Mon Nov 30 15:25:43 1992
  1794. X***************
  1795. X*** 1,6 ****
  1796. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1797. X  #ifndef lint
  1798. X! static char *sccsid = "@(#)unix.c    2.1 (Chris & John Downey) 7/29/92";
  1799. X  #endif
  1800. X  
  1801. X  /***
  1802. X--- 1,6 ----
  1803. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1804. X  #ifndef lint
  1805. X! static char *sccsid = "@(#)unix.c    2.7 (Chris & John Downey) 11/25/92";
  1806. X  #endif
  1807. X  
  1808. X  /***
  1809. X***************
  1810. X*** 262,272 ****
  1811. X      return(c);
  1812. X  }
  1813. X  
  1814. X! #if !(defined(__STDC__) || (defined(ultrix) && defined(mips)))
  1815. X! /*
  1816. X!  * If we have ANSI C, we should have strerror() anyway. Also, Ultrix
  1817. X!  * on DECStations provides it.
  1818. X!  */
  1819. X  const char *
  1820. X  strerror(err)
  1821. X  int    err;
  1822. X--- 262,268 ----
  1823. X      return(c);
  1824. X  }
  1825. X  
  1826. X! #ifdef    NEED_STRERROR
  1827. X  const char *
  1828. X  strerror(err)
  1829. X  int    err;
  1830. X***************
  1831. X*** 284,292 ****
  1832. X          "Unknown error"
  1833. X      );
  1834. X  }
  1835. X  
  1836. X- #endif /* !(defined(__STDC__) || (defined(ultrix) && defined(mips))) */
  1837. X- 
  1838. X  static int
  1839. X  runvp(args)
  1840. X  char    **args;
  1841. X--- 280,287 ----
  1842. X          "Unknown error"
  1843. X      );
  1844. X  }
  1845. X+ #endif /* NEED_STRERROR */
  1846. X  
  1847. X  static int
  1848. X  runvp(args)
  1849. X  char    **args;
  1850. X***************
  1851. X*** 432,467 ****
  1852. X  
  1853. X      getstate(&cooked_state);
  1854. X      raw_state = cooked_state;
  1855. X! #   ifdef   POSIX
  1856. X!     raw_state.c_oflag &= ~(OPOST
  1857. X! #    ifdef    ONLCR
  1858. X!                 | ONLCR
  1859. X! #    endif
  1860. X! #    ifdef    OXTABS
  1861. X!                 | OXTABS
  1862. X! #    endif
  1863. X!                 );
  1864. X!     raw_state.c_iflag &= ~(ICRNL | IGNCR | INLCR);
  1865. X!     raw_state.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL
  1866. X! #    ifdef    ECHOCTL
  1867. X!                 | ECHOCTL
  1868. X! #    endif
  1869. X! #    ifdef    ECHOPRT
  1870. X!                 | ECHOPRT
  1871. X! #    endif
  1872. X! #    ifdef    ECHOKE
  1873. X!                 | ECHOKE
  1874. X! #    endif
  1875. X!                 );
  1876. X! #   else    /* not POSIX */
  1877. X!     /*
  1878. X!      * Assume this is a Sun, but it might not be ...
  1879. X!      */
  1880. X!     raw_state.c_oflag &= ~(OLCUC | ONLCR | OCRNL | ONLRET | XTABS);
  1881. X!     raw_state.c_iflag &= ~(ICRNL | IGNCR | INLCR);
  1882. X!     raw_state.c_lflag &= ~(ICANON | XCASE | ECHO | ECHOE | ECHOK |
  1883. X!            ECHONL | ECHOCTL | ECHOPRT | ECHOKE);
  1884. X! #   endif
  1885. X      raw_state.c_cc[VMIN] = 1;
  1886. X      raw_state.c_cc[VTIME] = 0;
  1887. X  #   ifdef    TERMIOS
  1888. X--- 427,472 ----
  1889. X  
  1890. X      getstate(&cooked_state);
  1891. X      raw_state = cooked_state;
  1892. X! 
  1893. X!     raw_state.c_oflag &= ~(0
  1894. X! #ifdef   OPOST
  1895. X!             | OPOST
  1896. X! #else    /* no OPOST */
  1897. X!             /*
  1898. X!              * Not a POSIX system. If it's a Sun, this might work:
  1899. X!              */
  1900. X!             | OLCUC | OCRNL | ONLRET
  1901. X! #endif
  1902. X! #ifdef    ONLCR
  1903. X!             | ONLCR
  1904. X! #endif
  1905. X! #ifdef    OXTABS
  1906. X!             | OXTABS
  1907. X! #endif
  1908. X! #ifdef    XTABS
  1909. X!             | XTABS
  1910. X! #endif
  1911. X! #ifdef    TAB3
  1912. X!             | TAB3
  1913. X! #endif
  1914. X!     );
  1915. X! 
  1916. X!     raw_state.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL
  1917. X! #ifdef    XCASE
  1918. X!             | XCASE
  1919. X! #endif
  1920. X! #ifdef    ECHOCTL
  1921. X!             | ECHOCTL
  1922. X! #endif
  1923. X! #ifdef    ECHOPRT
  1924. X!             | ECHOPRT
  1925. X! #endif
  1926. X! #ifdef    ECHOKE
  1927. X!             | ECHOKE
  1928. X! #endif
  1929. X!     );
  1930. X! 
  1931. X!     raw_state.c_iflag &= ~(ICRNL | IGNCR | INLCR);
  1932. X      raw_state.c_cc[VMIN] = 1;
  1933. X      raw_state.c_cc[VTIME] = 0;
  1934. X  #   ifdef    TERMIOS
  1935. X***************
  1936. X*** 519,525 ****
  1937. X       */
  1938. X  #ifdef    TERMIO
  1939. X  #   ifdef    POSIX
  1940. X!     ospeed = cooked_state.c_ospeed;
  1941. X  #   else    /* not POSIX */
  1942. X      ospeed = speeds[cooked_state.c_cflag & CBAUD];
  1943. X  #   endif
  1944. X--- 524,530 ----
  1945. X       */
  1946. X  #ifdef    TERMIO
  1947. X  #   ifdef    POSIX
  1948. X!     ospeed = cfgetospeed(&cooked_state);
  1949. X  #   else    /* not POSIX */
  1950. X      ospeed = speeds[cooked_state.c_cflag & CBAUD];
  1951. X  #   endif
  1952. END_OF_FILE
  1953. if test 3285 -ne `wc -c <'src/patch26'`; then
  1954.     echo shar: \"'src/patch26'\" unpacked with wrong size!
  1955. fi
  1956. # end of 'src/patch26'
  1957. fi
  1958. if test -f 'src/patch27' -a "${1}" != "-c" ; then 
  1959.   echo shar: Will not clobber existing file \"'src/patch27'\"
  1960. else
  1961. echo shar: Extracting \"'src/patch27'\" \(2251 characters\)
  1962. sed "s/^X//" >'src/patch27' <<'END_OF_FILE'
  1963. X*** old/unix.h    Tue Jul 28 17:47:30 1992
  1964. X--- new/unix.h    Mon Nov 30 15:25:43 1992
  1965. X***************
  1966. X*** 1,7 ****
  1967. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1968. X  /***
  1969. X  
  1970. X! * @(#)unix.h    2.1 (Chris & John Downey) 7/29/92
  1971. X  
  1972. X  * program name:
  1973. X      xvi
  1974. X--- 1,7 ----
  1975. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  1976. X  /***
  1977. X  
  1978. X! * @(#)unix.h    2.5 (Chris & John Downey) 11/25/92
  1979. X  
  1980. X  * program name:
  1981. X      xvi
  1982. X***************
  1983. X*** 20,25 ****
  1984. X--- 20,32 ----
  1985. X  ***/
  1986. X  
  1987. X  #include <errno.h>
  1988. X+ #if defined(sel)
  1989. X+     /*
  1990. X+      * errno is not defined by <errno.h> on the Gould PowerNode.
  1991. X+      */
  1992. X+     extern    int    errno;
  1993. X+ #endif
  1994. X+ 
  1995. X  #include <fcntl.h>
  1996. X  #if defined(BSD) && !defined(__STDC__)
  1997. X  #   include <sys/time.h>
  1998. X***************
  1999. X*** 27,32 ****
  2000. X--- 34,43 ----
  2001. X  #   include <time.h>
  2002. X  #endif
  2003. X  
  2004. X+ #ifdef __STDC__
  2005. X+ #   include <unistd.h>
  2006. X+ #endif
  2007. X+ 
  2008. X  #if defined(SUNVIEW) || defined(XVIEW)
  2009. X  #   include "sunview.h"
  2010. X  #else
  2011. X***************
  2012. X*** 50,63 ****
  2013. X  #endif
  2014. X  
  2015. X  /*
  2016. X!  * If we don't have an ANSI compiler, strerror() is implemented in unix.c.
  2017. X   */
  2018. X  #define STRERROR_AVAIL
  2019. X! 
  2020. X! #ifndef    __STDC__
  2021. X!     /*
  2022. X!      * Conditionally compile this to be safe.
  2023. X!      */
  2024. X      extern const char    *strerror P((int));
  2025. X  #endif
  2026. X  
  2027. X--- 61,77 ----
  2028. X  #endif
  2029. X  
  2030. X  /*
  2031. X!  * Strerror() is always available, because we define it in unix.c.
  2032. X!  * Working out when it is already defined is a bit tricky.
  2033. X!  *
  2034. X!  * If we have ANSI C, we must have it. Ultrix on DECStations provides it.
  2035. X!  * If it's defined as a macro, then that's okay. Otherwise, do it ourselves.
  2036. X   */
  2037. X  #define STRERROR_AVAIL
  2038. X! #if defined(__STDC__) || (defined(ultrix)&&defined(mips)) || defined(strerror)
  2039. X!     /* got it already */
  2040. X! #else
  2041. X! #    define    NEED_STRERROR
  2042. X      extern const char    *strerror P((int));
  2043. X  #endif
  2044. X  
  2045. X***************
  2046. X*** 80,86 ****
  2047. X   * ANSI C libraries should have remove(), but unlink() does exactly
  2048. X   * the same thing.
  2049. X   */
  2050. X! #define remove(f)    unlink(f)
  2051. X  
  2052. X  /*
  2053. X   * BSD doesn't provide memcpy, but bcopy does the same thing.
  2054. X--- 94,102 ----
  2055. X   * ANSI C libraries should have remove(), but unlink() does exactly
  2056. X   * the same thing.
  2057. X   */
  2058. X! #ifndef    __STDC__
  2059. X! #   define remove(f)    unlink(f)
  2060. X! #endif
  2061. X  
  2062. X  /*
  2063. X   * BSD doesn't provide memcpy, but bcopy does the same thing.
  2064. END_OF_FILE
  2065. if test 2251 -ne `wc -c <'src/patch27'`; then
  2066.     echo shar: \"'src/patch27'\" unpacked with wrong size!
  2067. fi
  2068. # end of 'src/patch27'
  2069. fi
  2070. if test -f 'src/patch28' -a "${1}" != "-c" ; then 
  2071.   echo shar: Will not clobber existing file \"'src/patch28'\"
  2072. else
  2073. echo shar: Extracting \"'src/patch28'\" \(783 characters\)
  2074. sed "s/^X//" >'src/patch28' <<'END_OF_FILE'
  2075. X*** old/version.c    Tue Jul 28 17:47:30 1992
  2076. X--- new/version.c    Thu Dec  3 19:32:54 1992
  2077. X***************
  2078. X*** 1,6 ****
  2079. X  /* Copyright (c) 1992 Chris and John Downey */
  2080. X  #ifndef lint
  2081. X! static char *sccsid = "@(#)version.c    2.4 (Chris & John Downey) 10/15/92";
  2082. X  #endif
  2083. X  
  2084. X  /***
  2085. X--- 1,6 ----
  2086. X  /* Copyright (c) 1992 Chris and John Downey */
  2087. X  #ifndef lint
  2088. X! static char *sccsid = "@(#)version.c    2.10 (Chris & John Downey) 11/23/92";
  2089. X  #endif
  2090. X  
  2091. X  /***
  2092. X***************
  2093. X*** 26,32 ****
  2094. X  #endif
  2095. X  
  2096. X  #ifdef __DATE__
  2097. X!     char    Version[] = "Xvi 2.15 " __DATE__;
  2098. X  #else
  2099. X!     char    Version[] = "Xvi 2.15 15th October 1992";
  2100. X  #endif
  2101. X--- 26,32 ----
  2102. X  #endif
  2103. X  
  2104. X  #ifdef __DATE__
  2105. X!     char    Version[] = "Xvi 2.19 " __DATE__;
  2106. X  #else
  2107. X!     char    Version[] = "Xvi 2.19 4th February 1993";
  2108. X  #endif
  2109. END_OF_FILE
  2110. if test 783 -ne `wc -c <'src/patch28'`; then
  2111.     echo shar: \"'src/patch28'\" unpacked with wrong size!
  2112. fi
  2113. # end of 'src/patch28'
  2114. fi
  2115. if test -f 'src/patch29' -a "${1}" != "-c" ; then 
  2116.   echo shar: Will not clobber existing file \"'src/patch29'\"
  2117. else
  2118. echo shar: Extracting \"'src/patch29'\" \(1292 characters\)
  2119. sed "s/^X//" >'src/patch29' <<'END_OF_FILE'
  2120. X*** old/windows.c    Tue Jul 28 17:47:32 1992
  2121. X--- new/windows.c    Mon Nov 30 15:25:44 1992
  2122. X***************
  2123. X*** 1,6 ****
  2124. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  2125. X  #ifndef lint
  2126. X! static char *sccsid = "@(#)windows.c    2.2 (Chris & John Downey) 8/28/92";
  2127. X  #endif
  2128. X  
  2129. X  /***
  2130. X--- 1,6 ----
  2131. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  2132. X  #ifndef lint
  2133. X! static char *sccsid = "@(#)windows.c    2.3 (Chris & John Downey) 11/6/92";
  2134. X  #endif
  2135. X  
  2136. X  /***
  2137. X***************
  2138. X*** 413,419 ****
  2139. X          nextwin->w_nrows += amount;
  2140. X          (void) shiftdown(nextwin, (unsigned) amount);
  2141. X          if (wp->w_nrows > 0) {
  2142. X!         show_file_info(wp);
  2143. X          }
  2144. X      }
  2145. X      nlines = -amount;    /* return value */
  2146. X--- 413,419 ----
  2147. X          nextwin->w_nrows += amount;
  2148. X          (void) shiftdown(nextwin, (unsigned) amount);
  2149. X          if (wp->w_nrows > 0) {
  2150. X!         show_file_info(wp, TRUE);
  2151. X          }
  2152. X      }
  2153. X      nlines = -amount;    /* return value */
  2154. X***************
  2155. X*** 439,445 ****
  2156. X          nextwin->w_nrows -= nlines;
  2157. X          (void) shiftup(nextwin, (unsigned) nlines);
  2158. X          if (wp->w_nrows > 0) {
  2159. X!         show_file_info(wp);
  2160. X          }
  2161. X      }
  2162. X      }
  2163. X--- 439,445 ----
  2164. X          nextwin->w_nrows -= nlines;
  2165. X          (void) shiftup(nextwin, (unsigned) nlines);
  2166. X          if (wp->w_nrows > 0) {
  2167. X!         show_file_info(wp, TRUE);
  2168. X          }
  2169. X      }
  2170. X      }
  2171. END_OF_FILE
  2172. if test 1292 -ne `wc -c <'src/patch29'`; then
  2173.     echo shar: \"'src/patch29'\" unpacked with wrong size!
  2174. fi
  2175. # end of 'src/patch29'
  2176. fi
  2177. if test -f 'src/patch31' -a "${1}" != "-c" ; then 
  2178.   echo shar: Will not clobber existing file \"'src/patch31'\"
  2179. else
  2180. echo shar: Extracting \"'src/patch31'\" \(865 characters\)
  2181. sed "s/^X//" >'src/patch31' <<'END_OF_FILE'
  2182. X*** old/yankput.c    Tue Jul 28 17:47:50 1992
  2183. X--- new/yankput.c    Tue Dec 29 11:24:11 1992
  2184. X***************
  2185. X*** 1,6 ****
  2186. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  2187. X  #ifndef lint
  2188. X! static char *sccsid = "@(#)yankput.c    2.4 (Chris & John Downey) 8/6/92";
  2189. X  #endif
  2190. X  
  2191. X  /***
  2192. X--- 1,6 ----
  2193. X  /* Copyright (c) 1990,1991,1992 Chris and John Downey */
  2194. X  #ifndef lint
  2195. X! static char *sccsid = "@(#)yankput.c    2.5 (Chris & John Downey) 10/12/92";
  2196. X  #endif
  2197. X  
  2198. X  /***
  2199. X***************
  2200. X*** 303,309 ****
  2201. X          Line    *newl;
  2202. X  
  2203. X          end_of_1st_text = l + strlen(yp_buf->y_1st_text);
  2204. X!         newl = newline(strlen(yp_buf->y_1st_text) + SLOP);
  2205. X          if (newl == NULL)
  2206. X          return;
  2207. X  
  2208. X--- 303,309 ----
  2209. X          Line    *newl;
  2210. X  
  2211. X          end_of_1st_text = l + strlen(yp_buf->y_1st_text);
  2212. X!         newl = newline(strlen(yp_buf->y_1st_text) + 1);
  2213. X          if (newl == NULL)
  2214. X          return;
  2215. X  
  2216. END_OF_FILE
  2217. if test 865 -ne `wc -c <'src/patch31'`; then
  2218.     echo shar: \"'src/patch31'\" unpacked with wrong size!
  2219. fi
  2220. # end of 'src/patch31'
  2221. fi
  2222. echo shar: End of archive 1 \(of 7\).
  2223. cp /dev/null ark1isdone
  2224. MISSING=""
  2225. for I in 1 2 3 4 5 6 7 ; do
  2226.     if test ! -f ark${I}isdone ; then
  2227.     MISSING="${MISSING} ${I}"
  2228.     fi
  2229. done
  2230. if test "${MISSING}" = "" ; then
  2231.     echo You have unpacked all 7 archives.
  2232.     rm -f ark[1-9]isdone
  2233. else
  2234.     echo You still need to unpack the following archives:
  2235.     echo "        " ${MISSING}
  2236. fi
  2237. ##  End of shell archive.
  2238. exit 0
  2239.  
  2240. exit 0 # Just in case...
  2241.