home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume37 / vim / part04 < prev    next >
Encoding:
Text File  |  1993-04-22  |  53.7 KB  |  1,531 lines

  1. Newsgroups: comp.sources.misc
  2. From: mool@oce.nl (Bram Moolenaar)
  3. Subject: v37i004:  vim - Vi IMitation editor v1.27, Part04/24
  4. Message-ID: <1993Apr23.172938.16166@sparky.imd.sterling.com>
  5. X-Md4-Signature: 749afc7dcaff25ef2ea07947587fa311
  6. Date: Fri, 23 Apr 1993 17:29:38 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: mool@oce.nl (Bram Moolenaar)
  10. Posting-number: Volume 37, Issue 4
  11. Archive-name: vim/part04
  12. Environment: UNIX, AMIGA, MS-DOS
  13.  
  14. #! /bin/sh
  15. # This is a shell archive.  Remove anything before this line, then unpack
  16. # it by saving it into a file and typing "sh file".  To overwrite existing
  17. # files, type "sh file -c".  You can also feed this as standard input via
  18. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  19. # will see the following message at the end:
  20. #        "End of archive 4 (of 23)."
  21. # Contents:  vim/doc/vim.man.uue vim/src/digraph.c.uue
  22. #   vim/src/globals.h vim/src/makefile.6sas vim/src/makefile.manx
  23. #   vim/src/regsub.c
  24. # Wrapped by mool@oce-rd2 on Mon Apr 19 15:50:06 1993
  25. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  26. if test -f 'vim/doc/vim.man.uue' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'vim/doc/vim.man.uue'\"
  28. else
  29. echo shar: Extracting \"'vim/doc/vim.man.uue'\" \(8781 characters\)
  30. sed "s/^X//" >'vim/doc/vim.man.uue' <<'END_OF_FILE'
  31. X
  32. Xbegin 644 vim.man
  33. XM"@I624TH,2D@("`@("`@("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.<
  34. XM1%,@("`@("`@("`@("`@("`@("`@("`@("`@("!624TH,2D*"@I."$X(3D$(&
  35. XM00A!30A-"$U%"$4(10H@("`@('9I;2`M(%9I($E-:71A=&EO;BP@82!P<F]GU
  36. XM<F%M;65R<R!T97AT(&5D:71O<@H*4PA3"%-9"%D(64X(3@A.3PA/"$]0"%`(B
  37. XM4%,(4PA320A)"$E3"%,(4PH@("`@('8(=@AV:0AI"&EM"&T(;2!;;W!T:6]N?
  38. XM<UT@6V9I;&4@+BY="B`@("`@=@AV"'9I"&D(:6T(;0AM(%MO<'1I;VYS72`MS
  39. XM="!T86<*("`@("!V"'8(=FD(:0AI;0AM"&T@6V]P=&EO;G-=("M;8V]M;6%N3
  40. XM9%T@9FEL92`N+@H@("`@('8(=@AV:0AI"&EM"&T(;2!;;W!T:6]N<UT@+6,@O
  41. XM>V-O;6UA;F1](&9I;&4@+BX*("`@("!V"'8(=FD(:0AI;0AM"&T@6V]P=&EOW
  42. XM;G-=("UE"@I$"$0(1$4(10A%4PA3"%-#"$,(0U((4@A220A)"$E0"%`(4%0(N
  43. XM5`A420A)"$E/"$\(3TX(3@A."B`@("`@5@A6"%9I"&D(:6T(;0AM(&ES(&$@-
  44. XM=&5X="!E9&ET;W(@=&AA="!I<R!U<'=A<F1S(&-O;7!A=&EB;&4@=&\@=FDN/
  45. XM($ET(&-A;B!B92!U<V5D("!T;PH@("`@(&5D:70@86YY($%30TE)('1E>'0N>
  46. XM($ET(&ES(&5S<&5C:6%L;'D@=7-E9G5L(&9O<B!E9&ET:6YG('!R;V=R86US.
  47. XM+@H*("`@("!4:&5R92!A<F4@82!L;W0@;V8@96YH86YC96UE;G1S(&%B;W9E=
  48. XM('9I.B!M=6QT:2!L979E;"!U;F1O+"!C;VUM86YD("!L:6YE"B`@("`@961I!
  49. XM=&EN9RP@("!F:6QE;F%M92`@(&-O;7!L971I;VXL("!O;B`@;&EN92`@:&5L#
  50. XM<"P@('%U;W1I;F<L("!E=&,N+B`@4F5A9`H@("`@(&1I9F9E<F5N8V4N9&]C\
  51. XM(&9O<B!A('-U;6UA<GD@;V8@=&AE(&1I9F9E<F5N8V5S(&)E='=E96X@=FD@S
  52. XM86YD(%9I;2X*"B`@("`@36]S="!O9G1E;B!6"%8(5FD(:0AI;0AM"&T@:7,@P
  53. XM<W1A<G1E9"!T;R!E9&ET(&$@<VEN9VQE(&9I;&4@=VET:"!T:&4@8V]M;6%N[
  54. XM9`H*("`@("`@("`@('9I;2!F:6QE"@H@("`@($UO<F4@9V5N97)A;&QY(%9)M
  55. XM32!I<R!S=&%R=&5D('=I=&@Z"@H@("`@("`@("`@=FEM(%MO<'1I;VYS72!;U
  56. XM9FEL96QI<W1="@H@("`@($EF('1H92!F:6QE;&ES="!I<R!M:7-S:6YG+"!T/
  57. XM:&4@961I=&]R('=I;&P@<W1A<G0@=VET:"!A;B`@96UP='D@(&)U9F9E<BX*&
  58. XM("`@("!/=&AE<G=I<V4@97AA8W1L>2!O;F4@;W5T(&]F('1H92!F;VQL;W=I`
  59. XM;F<@9F]U<B!M87D@8F4@=7-E9"!T;R!C:&]O<V4@;VYE"B`@("`@;W(@;6]R/
  60. XM92!F:6QE<R!T;R!B92!E9&ET960N"@H@("`@(&9I;&4@+BX@("`@($$@;&ES8
  61. XM="!O9B!F:6QE(&YA;65S+B!4:&4@9FER<W0@;VYE("AA;'!H86)E=&EC86QL$
  62. XM>2D@=VEL;"`@8F4*("`@("`@("`@("`@("`@("!T:&4@8W5R<F5N="!F:6QE/
  63. XM(&%N9"!R96%D(&EN=&\@=&AE(&)U9F9E<BX@5&AE(&-U<G-O<B!W:6QL(&)E0
  64. XM"B`@("`@("`@("`@("`@("`@<&]S:71I;VYE9"!O;B!T:&4@9FER<W0@;&ENQ
  65. XM92!O9B!T:&4@8G5F9F5R+B!9;W4@(&-A;B`@9V5T("!T;PH@("`@("`@("`@_
  66. XM("`@("`@('1H92!O=&AE<B!F:6QE<R!W:71H('1H92`B.FYE>'0B(&-O;6UA=
  67. XM;F0N"@H@("`@("M;;G5M72!F:6QE("XN"B`@("`@("`@("`@("`@("`@4V%MN
  68. XM92!A<R!T:&4@86)O=F4L(&)U="!T:&4@8W5R<V]R('=I;&P@8F4@<&]S:71I4
  69. XM;VYE9"!O;B`@;&EN90H@("`@("`@("`@("`@("`@(")N=6TB+B`@268@(FYU+
  70. XM;2(@:7,@;6ES<VEN9RP@=&AE(&-U<G-O<B!W:6QL(&)E('!O<VET:6]N960@M
  71. XM;VX*("`@("`@("`@("`@("`@("!T:&4@;&%S="!L:6YE+@H*("`@("`K+W!AQ
  72. XM="!F:6QE("XN"B`@("`@("`@("`@("`@("`@4V%M92!A<R!T:&4@86)O=F4L.
  73. XM(&)U="!T:&4@8W5R<V]R('=I;&P@8F4@<&]S:71I;VYE9"`@;VX@('1H90H@O
  74. XM("`@("`@("`@("`@("`@(&9I<G-T("`@;V-C=7)R96YC92`@(&]F("`@(G!AY
  75. XM="(@(&EN("!T:&4@(&-U<G)E;G0@(&9I;&4@("AS964*("`@("`@("`@("`@`
  76. XM("`@("!R969E<F5N8V4N9&]C+"!S96-T:6]N(")P871T97)N('-E87)C:&5SB
  77. XM(B!F;W(@('1H92`@879A:6QA8FQE"B`@("`@("`@("`@("`@("`@<V5A<F-H+
  78. XM('!A='1E<FYS*2X*"B`@("`@*WMC;VUM86YD?2!F:6QE("XN"@H@("`@("UC>
  79. XM('MC;VUM86YD?2!F:6QE("XN"B`@("`@("`@("`@("`@("`@4V%M92!A<R!TK
  80. XM:&4@86)O=F4L(&)U="![8V]M;6%N9'T@=VEL;"!B92!E>&5C=71E9"`@869TY
  81. XM97(@('1H90H@("`@("`@("`@("`@("`@(&9I;&4@(&AA<R`@8F5E;B`@<F5AP
  82. XM9"X@('MC;VUM86YD?2`@:7,@(&EN=&5R<')E=&5D("!A<R`@86X@17@*("`@5
  83. XM("`@("`@("`@("`@("!C;VUM86YD+B!)9B!T:&4@>V-O;6UA;F1](&-O;G1AI
  84. XM:6YS('-P86-E<R!I="!M=7-T(&)E(&5N8VQO<V5D"B`@("`@("`@("`@("`@M
  85. XM("`@:6X@(&1O=6)L92`@<75O=&5S("`H=&AI<R!D97!E;F1S(&]N('1H92!SG
  86. XM:&5L;"!T:&%T(&ES('5S960I+@H@("`@("`@("`@("`@("`@($5X86UP;&4Z*
  87. XM(%9I;2`B*W-E="!S:2(@;6%I;BYC"@H*"@H@("`@("`@("`@("`@("`@("`@+
  88. XM("`@("`@("`@("`@(#(X($UA<F-H(#$Y.3(@("`@("`@("`@("`@("`@("`@J
  89. XM("`@("`@("`@("`@(#$*"@P*"E9)32@Q*2`@("`@("`@("`@("`@("`@("`@S
  90. XM("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("`@("`@("`@Q
  91. XM(%9)32@Q*0H*"B`@("`@+70@>W1A9WT@("`@5&AE(&9I;&4@=&\@961I="!AL
  92. XM;F0@=&AE(&EN:71I86P@8W5R<V]R('!O<VET:6]N(&1E<&5N9',@;VX@80H@[
  93. XM("`@("`@("`@("`@("`@(")T86<B+"`@82`@<V]R="!O9B!G;W1O(&QA8F5L#
  94. XM+B![=&%G?2!I<R!L;V]K960@=7`@:6X@=&AE('1A9W,*("`@("`@("`@("`@2
  95. XM("`@("!F:6QE+"!T:&4@87-S;V-I871E9"!F:6QE(&)E8V]M97,@=&AE(&-UD
  96. XM<G)E;G0@(&9I;&4@(&%N9"`@=&AE"B`@("`@("`@("`@("`@("`@87-S;V-IK
  97. XM871E9"`@8V]M;6%N9"`@:7,@(&5X96-U=&5D+B`@36]S=&QY('1H:7,@:7,@:
  98. XM=7-E9"!F;W(@0PH@("`@("`@("`@("`@("`@('!R;V=R86US+B![=&%G?2!TF
  99. XM:&5N('-H;W5L9"!B92!A(&9U;F-T:6]N(&YA;64N(%1H92!E9F9E8W0@:7,*;
  100. XM("`@("`@("`@("`@("`@("!T:&%T("!T:&4@(&9I;&4@(&-O;G1A:6YI;F<@\
  101. XM=&AA="!F=6YC=&EO;B!B96-O;65S('1H92!C=7)R96YT"B`@("`@("`@("`@C
  102. XM("`@("`@9FEL92!A;F0@=&AE("!C=7)S;W(@(&ES("!P;W-I=&EO;F5D("!O[
  103. XM;B`@=&AE("!S=&%R="`@;V8@('1H90H@("`@("`@("`@("`@("`@(&9U;F-T]
  104. XM:6]N("AS964@<F5F97)E;F-E+F1O8RP@<V5C=&EO;B`B=&%G('-E87)C:&5SK
  105. XM(BDN"@H@("`@("UE("`@("`@("`@(%-T87)T(&EN('%U:6-K1FEX(&UO9&4N;
  106. XM(%1H92!E<G)O<B!F:6QE(")!>G1E8T,N17)R(B`@:7,@(')E860*("`@("`@"
  107. XM("`@("`@("`@("!A;F0@('1H92`@9FER<W0@(&5R<F]R("!I<R`@9&ES<&QA_
  108. XM>65D+B`@1G5R=&AE<B!E<G)O<G,@8V%N(&)E"B`@("`@("`@("`@("`@("`@P
  109. XM:G5M<&5D('1O('=I=&@@=&AE("(Z8VXB(&-O;6UA;F0N(%-E92`@<F5F97)E7
  110. XM;F-E+F1O8R`@<V5C=&EO;@H@("`@("`@("`@("`@("`@(#4N-BX*"D\(3PA/1
  111. XM4`A0"%!4"%0(5$D(20A)3PA/"$]."$X(3E,(4PA3"B`@("`@5&AE(&]P=&EO-
  112. XM;G,L(&EF('!R97-E;G0L(&UU<W0@<')E8V5D92!T:&4@9FEL96QI<W0N(%1H1
  113. XM92`@;W!T:6]N<R`@;6%Y("!B90H@("`@(&=I=F5N(&EN(&%N>2!O<F1E<BX*5
  114. XM"B`@("`@+7(@("`@("`@("`@4F5C;W9E<GD@;6]D92X@5&AE(&%U=&]S8W)I6
  115. XM<'0@(&9I;&4@(&ES("!R96%D("!T;R`@<F5C;W9E<B`@80H@("`@("`@("`@`
  116. XM("`@("`@(&-R87-H960@961I=&EN9R!S97-S:6]N+B!)="!H87,@86QM;W-TY
  117. XM('1H92!S86UE(&5F9F5C="!A<R`B+7,*("`@("`@("`@("`@("`@("!F:6QE4
  118. XM+G9I;2(N("!3964@(')E9F5R96YC92YD;V,L("!C:&%P=&5R("`B4F5C;W9E3
  119. XM<GD@(&%F=&5R("!A"B`@("`@("`@("`@("`@("`@8W)A<V@B+@H*("`@("`M*
  120. XM=B`@("`@("`@("!6:65W(&UO9&4N(%1H92`G<F5A9&]N;'DG(&]P=&EO;B!WA
  121. XM:6QL(&)E('-E="X@66]U("!C86X@('-T:6QL"B`@("`@("`@("`@("`@("`@C
  122. XM961I="`@=&AE("!B=69F97(L("!B=70@('=I;&P@(&)E("!P<F5V96YT960@$
  123. XM(&9R;VT@86-C:61E;G1A;`H@("`@("`@("`@("`@("`@(&]V97)W<FET:6YGF
  124. XM(&$@9FEL92X@268@>6]U(&1O('=A;G0@=&\@;W9E<G=R:71E(&$@(&9I;&4L?
  125. XM("!A9&0*("`@("`@("`@("`@("`@("!A;B`@97AC;&%M871I;VX@(&UA<FL@"
  126. XM('1O("!T:&4@($5X("!C;VUM86YD+"!A<R!I;B`B.G<A(BX@5&AE"B`@("`@&
  127. XM("`@("`@("`@("`@)W)E861O;FQY)R`@;W!T:6]N("!C86X@(&)E("!R97-EM
  128. XM="`@=VET:"`@(CIS970@(&YO<F\B("`@*'-E90H@("`@("`@("`@("`@("`@'
  129. XM(')E9F5R96YC92YD;V,L(&]P=&EO;G,@8VAA<'1E<BDN"@H@("`@("UN("`@8
  130. XM("`@("`@($YO(&%U=&]S8W)I<'0@9FEL92!W:6QL(&)E('=R:71T96XN(%)E\
  131. XM8V]V97)Y("!A9G1E<B`@82`@8W)A<V@*("`@("`@("`@("`@("`@("!W:6QL^
  132. XM("!B92`@:6UP;W-S:6)L92X@($AA;F1Y("!I9B!Y;W4@=V%N="!T;R!E9&ET/
  133. XM(&$@9FEL92!O;B!A"B`@("`@("`@("`@("`@("`@=F5R>2!S;&]W(&UE9&EU(
  134. XM;2`H92YG+B!F;&]P<'DI+B!#86X@86QS;R!B92!D;VYE("!W:71H("`B.G-E,
  135. XM=`H@("`@("`@("`@("`@("`@('5C/3`B+@H*("`@("`M<R![<V-R:7!T:6Y]+
  136. XM"B`@("`@("`@("`@("`@("`@5&AE('-C<FEP="!F:6QE('MS8W)I<'1I;GT@D
  137. XM:7,@<F5A9"X@(%1H92`@8VAA<F%C=&5R<R`@:6X@('1H90H@("`@("`@("`@I
  138. XM("`@("`@(&9I;&4@(&%R92`@:6YT97)P<F5T960@87,@:68@>6]U(&AA9"!T?
  139. XM>7!E9"!T:&5M+B!4:&4@<V%M92!C86X*("`@("`@("`@("`@("`@("!B92!D\
  140. XM;VYE('=I=&@@=&AE(&-O;6UA;F0@(CIS;W5R8V4A('MS8W)I<'1I;GTB+B!)I
  141. XM9B!T:&4@96YD(&]F"B`@("`@("`@("`@("`@("`@=&AE("`@9FEL92`@:7,@Z
  142. XM(')E86-H960@(&)E9F]R92`@=&AE("!E9&ET;W(@(&5X:71S+"`@9G5R=&AE.
  143. XM<@H@("`@("`@("`@("`@("`@(&-H87)A8W1E<G,@87)E(')E860@9G)O;2!TX
  144. XM:&4@:V5Y8F]A<F0N"@H@("`@("UW('MS8W)I<'1O=71]"B`@("`@("`@("`@S
  145. XM("`@("`@06QL('1H92!C:&%R86-T97)S('1H870@>6]U('1Y<&4@87)E("!RT
  146. XM96-O<F1E9"`@:6X@('1H92`@9FEL90H@("`@("`@("`@("`@("`@('MS8W)ID
  147. XM<'1O=71]+"`@=6YT:6P@('EO=2!E>&ET(%9)32X@5&AI<R!I<R!U<V5F=6P@*
  148. XM:68@>6]U('=A;G0*("`@("`@("`@("`@("`@("!T;R!C<F5A=&4@(&$@('-C^
  149. XM<FEP="`@9FEL92`@=&\@(&)E("!U<V5D("!W:71H("`B=FEM("`M<R(@(&]R'
  150. XM"B`@("`@("`@("`@("`@("`@(CIS;W5R8V4A(BX*"B`@("`@+50@=&5R;6ENL
  151. XM86P@5&5L;',@5FEM('1H92!N86UE(&]F('1H92!T97)M:6YA;"!Y;W4@87)E&
  152. XM('5S:6YG+B!3:&]U;&0@8F4@80H@("`@("`@("`@("`@("`@('1E<FUI;F%LQ
  153. XM("!K;F]W;B`@=&\@(%9I;2`@*&)U:6QT:6XI(&]R(&1E9FEN960@:6X@=&AE,
  154. XM('1E<FUC87`*("`@("`@("`@("`@("`@("!F:6QE+@H*("`@("`M9"!D979I1
  155. XM8V4@("!/<&5N(")D979I8V4B(&9O<B!U<V4@87,@(&$@('1E<FUI;F%L+B`@!
  156. XM3VYL>2`@;VX@('1H92`@06UI9V$N"B`@("`@("`@("`@("`@("`@17AA;7!L>
  157. XM93H@("(M9"!C;VXZ,C`O,S`O-C`P+S$U,"(N"@H*"@H@("`@("`@("`@("`@,
  158. XM("`@("`@("`@("`@("`@("`@(#(X($UA<F-H(#$Y.3(@("`@("`@("`@("`@J
  159. XM("`@("`@("`@("`@("`@("`@(#(*"@P*"E9)32@Q*2`@("`@("`@("`@("`@T
  160. XM("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("`@Q
  161. XM("`@("`@(%9)32@Q*0H*"E,(4PA310A%"$5%"$4(12!!"$$(04P(3`A,4PA3(
  162. XM"%-/"$\(3PH@("`@(%9I;2`@9&]C=6UE;G1A=&EO;CH@(%)E9F5R96YC92YD#
  163. XM;V,L("!I;F1E>"P@("!D:69F97)E;F-E+F1O8RP@("!U;FEX+F1O8RP*("`@;
  164. XM("!V:6TN:&QP+@H*00A!"$%5"%4(550(5`A42`A("$A/"$\(3U((4@A2"B`@C
  165. XM("`@36]S="!O9B!624T@=V%S(&UA9&4@8GD@0G)A;2!-;V]L96YA87(N"B`@Y
  166. XM("`@5DE-(&ES(&)A<V5D(&]N(%-T979I92P@=V]R:V5D(&]N(&)Y.B!4:6T@H
  167. XM5&AO;7!S;VXL(%1O;GD@06YD<F5W<R!A;F0@1RY2+@H@("`@("A&<F5D*2!7=
  168. XM86QT97(*"D((0@A"50A5"%5'"$<(1U,(4PA3"B`@("`@4')O8F%B;'DN"@H*P
  169. XM"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"
  170. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`R."!-87)C:"`Q.3DRJ
  171. XC("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`S"@I-4
  172. X``
  173. Xend
  174. Xsize 6245
  175. END_OF_FILE
  176. if test 8781 -ne `wc -c <'vim/doc/vim.man.uue'`; then
  177.     echo shar: \"'vim/doc/vim.man.uue'\" unpacked with wrong size!
  178. fi
  179. # end of 'vim/doc/vim.man.uue'
  180. fi
  181. if test -f 'vim/src/digraph.c.uue' -a "${1}" != "-c" ; then 
  182.   echo shar: Will not clobber existing file \"'vim/src/digraph.c.uue'\"
  183. else
  184. echo shar: Extracting \"'vim/src/digraph.c.uue'\" \(7861 characters\)
  185. sed "s/^X//" >'vim/src/digraph.c.uue' <<'END_OF_FILE'
  186. X
  187. Xbegin 644 digraph.c
  188. XM+RH@=FDZ=',]-#IS=STT"B`J"B`J(%9)32`M(%9I($E-:71A=&EO;@H@*@H@+
  189. XM*B!#;V1E($-O;G1R:6)U=&EO;G,@0GDZ"4)R86T@36]O;&5N86%R"0D);6]O<
  190. XM;$!O8V4N;FP*("H)"0D)"0D)5&EM(%1H;VUP<V]N"0D)='=I=&-H(71J=`H@K
  191. XM*@D)"0D)"0E4;VYY($%N9')E=W,)"0EO;F5C;VTA=VQD<F1G(71O;GD@"B`JG
  192. XM"0D)"0D)"4<N(%(N("A&<F5D*2!786QT97()"7=A=&UA=&@A=V%T8V=L(6=RZ
  193. XM=V%L=&5R(`H@*B\*"B-I9F1E9B!$24=205!(4PHO*@H@*B!D:6=R87!H+F,Z:
  194. XM(&-O9&4@9F]R(&1I9W)A<&AS"B`J+PH*(VEN8VQU9&4@(G9I;2YH(@HC:6YC?
  195. XM;'5D92`B9VQO8F%L<RYH(@HC:6YC;'5D92`B<')O=&\N:"(*"G-T871I8R!VY
  196. XM;VED('!R:6YT9&EG<F%P:"!?7T%21U,H*'5?8VAA<B`J*2D["@IU7V-H87();
  197. XM*"ID:6=R87!H;F5W*5LS73L)"0DO*B!P;VEN=&5R('1O(&%D9&5D(&1I9W)A;
  198. XM<&AS("HO"FEN=`D)9&EG<F%P:&-O=6YT(#T@,#L)"0DO*B!N=6UB97(@;V8@-
  199. XM861D960@9&EG<F%P:',@*B\*"G5?8VAA<@ED:6=R87!H9&5F875L=%M=6S-=3
  200. XM(#T@"0DO*B!S=&%N9&%R9"!D:6=R87!H<R`J+PH)("`@>WLG?B<L("<A)RP@`
  201. XM,38Q?2P)+RH@H2`J+PH)("`@('LG8R<L("=\)RP@,38R?2P)+RH@HB`J+PH)P
  202. XM("`@('LG)"<L("<D)RP@,38S?2P)+RH@HR`J+PH)("`@('LG;R<L("=X)RP@!
  203. XM,38T?2P)+RH@I"`J+PH)("`@('LG62<L("<M)RP@,38U?2P)+RH@I2`J+PH)C
  204. XM("`@('LG?"<L("=\)RP@,38V?2P)+RH@IB`J+PH)("`@('LG<"<L("=A)RP@A
  205. XM,38W?2P)+RH@IR`J+PH)("`@('LG(B<L("<B)RP@,38X?2P)+RH@J"`J+PH)M
  206. XM("`@('LG8R<L("=/)RP@,38Y?2P)+RH@J2`J+PH)"7LG82<L("<M)RP@,3<P_
  207. XM?2P)+RH@JB`J+PH)"7LG/"<L("<\)RP@,3<Q?2P)+RH@JR`J+PH)"7LG82<LK
  208. XM("<M)RP@,3<R?2P)+RH@K"`J+PH)"7LG+2<L("<M)RP@,3<S?2P)+RH@K2`JS
  209. XM+PH)"7LG<B<L("=/)RP@,3<T?2P)+RH@KB`J+PH)"7LG+2<L("<])RP@,3<U[
  210. XM?2P)+RH@KR`J+PH)"7LG?B<L("=O)RP@,3<V?2P)+RH@L"`J+PH)"7LG*R<LY
  211. XM("<M)RP@,3<W?2P)+RH@L2`J+PH)"7LG,B<L("<R)RP@,3<X?2P)+RH@LB`J1
  212. XM+PH)"7LG,R<L("<S)RP@,3<Y?2P)+RH@LR`J+PH)"7LG7"<G+"`G7"<G+"`Q:
  213. XM.#!]+`DO*B"T("HO"@D)>R=J)RP@)W4G+"`Q.#%]+`DO*B"U("HO"@D)>R=P+
  214. XM)RP@)W`G+"`Q.#)]+`DO*B"V("HO"@D)>R=^)RP@)RXG+"`Q.#-]+`DO*B"WG
  215. XM("HO"@D)>R<L)RP@)RPG+"`Q.#1]+`DO*B"X("HO"@D)>R<Q)RP@)S$G+"`QS
  216. XM.#5]+`DO*B"Y("HO"@D)>R=O)RP@)RTG+"`Q.#9]+`DO*B"Z("HO"@D)>R<^J
  217. XM)RP@)SXG+"`Q.#=]+`DO*B"[("HO"@D)>R<Q)RP@)S0G+"`Q.#A]+`DO*B"\"
  218. XM("HO"@D)>R<Q)RP@)S(G+"`Q.#E]+`DO*B"]("HO"@D)>R<S)RP@)S0G+"`Q-
  219. XM.3!]+`DO*B"^("HO"@D)>R=^)RP@)S\G+"`Q.3%]+`DO*B"_("HO"@D)>R=!0
  220. XM)RP@)V`G+"`Q.3)]+`DO*B#`("HO"@D)>R=!)RP@)UPG)RP@,3DS?2P)+RH@$
  221. XMP2`J+PH)"7LG02<L("=>)RP@,3DT?2P)+RH@PB`J+PH)"7LG02<L("=^)RP@R
  222. XM,3DU?2P)+RH@PR`J+PH)"7LG02<L("<B)RP@,3DV?2P)+RH@Q"`J+PH)"7LGZ
  223. XM02<L("=`)RP@,3DW?2P)+RH@Q2`J+PH)"7LG02<L("=%)RP@,3DX?2P)+RH@V
  224. XMQB`J+PH)"7LG0R<L("<L)RP@,3DY?2P)+RH@QR`J+PH)"7LG12<L("=@)RP@W
  225. XM,C`P?2P)+RH@R"`J+PH)"7LG12<L("=<)R<L(#(P,7TL"2\J(,D@*B\*"0E[H
  226. XM)T4G+"`G7B<L(#(P,GTL"2\J(,H@*B\*"0E[)T4G+"`G(B<L(#(P,WTL"2\JK
  227. XM(,L@*B\*"0E[)TDG+"`G8"<L(#(P-'TL"2\J(,P@*B\*"0E[)TDG+"`G7"<GI
  228. XM+"`R,#5]+`DO*B#-("HO"@D)>R=))RP@)UXG+"`R,#9]+`DO*B#.("HO"@D)L
  229. XM>R=))RP@)R(G+"`R,#=]+`DO*B#/("HO"@D)>R<M)RP@)T0G+"`R,#A]+`DO=
  230. XM*B#0("HO"@D)>R=.)RP@)WXG+"`R,#E]+`DO*B#1("HO"@D)>R=/)RP@)V`GH
  231. XM+"`R,3!]+`DO*B#2("HO"@D)>R=/)RP@)UPG)RP@,C$Q?2P)+RH@TR`J+PH)0
  232. XM"7LG3R<L("=>)RP@,C$R?2P)+RH@U"`J+PH)"7LG3R<L("=^)RP@,C$S?2P)2
  233. XM+RH@U2`J+PH)"7LG3R<L("<B)RP@,C$T?2P)+RH@UB`J+PH)"7LG+R<L("=<W
  234. XM7"<L(#(Q-7TL"2\J(-<@*B\*"0E[)T\G+"`G+R<L(#(Q-GTL"2\J(-@@*B\**
  235. XM"0E[)U4G+"`G8"<L(#(Q-WTL"2\J(-D@*B\*"0E[)U4G+"`G7"<G+"`R,3A](
  236. XM+`DO*B#:("HO"@D)>R=5)RP@)UXG+"`R,3E]+`DO*B#;("HO"@D)>R=5)RP@@
  237. XM)R(G+"`R,C!]+`DO*B#<("HO"@D)>R=9)RP@)UPG)RP@,C(Q?2P)+RH@W2`J>
  238. XM+PH)"7LG22<L("=P)RP@,C(R?2P)+RH@WB`J+PH)"7LG<R<L("=S)RP@,C(S3
  239. XM?2P)+RH@WR`J+PH)"7LG82<L("=@)RP@,C(T?2P)+RH@X"`J+PH)"7LG82<L=
  240. XM("=<)R<L(#(R-7TL"2\J(.$@*B\*"0E[)V$G+"`G7B<L(#(R-GTL"2\J(.(@L
  241. XM*B\*"0E[)V$G+"`G?B<L(#(R-WTL"2\J(.,@*B\*"0E[)V$G+"`G(B<L(#(R7
  242. XM.'TL"2\J(.0@*B\*"0E[)V$G+"`G0"<L(#(R.7TL"2\J(.4@*B\*"0E[)V$G8
  243. XM+"`G92<L(#(S,'TL"2\J(.8@*B\*"0E[)V,G+"`G+"<L(#(S,7TL"2\J(.<@,
  244. XM*B\*"0E[)V4G+"`G8"<L(#(S,GTL"2\J(.@@*B\*"0E[)V4G+"`G7"<G+"`RQ
  245. XM,S-]+`DO*B#I("HO"@D)>R=E)RP@)UXG+"`R,S1]+`DO*B#J("HO"@D)>R=E+
  246. XM)RP@)R(G+"`R,S5]+`DO*B#K("HO"@D)>R=I)RP@)V`G+"`R,S9]+`DO*B#L>
  247. XM("HO"@D)>R=I)RP@)UPG)RP@,C,W?2P)+RH@[2`J+PH)"7LG:2<L("=>)RP@O
  248. XM,C,X?2P)+RH@[B`J+PH)"7LG:2<L("<B)RP@,C,Y?2P)+RH@[R`J+PH)"7LGT
  249. XM+2<L("=D)RP@,C0P?2P)+RH@\"`J+PH)"7LG;B<L("=^)RP@,C0Q?2P)+RH@!
  250. XM\2`J+PH)"7LG;R<L("=@)RP@,C0R?2P)+RH@\B`J+PH)"7LG;R<L("=<)R<L/
  251. XM(#(T,WTL"2\J(/,@*B\*"0E[)V\G+"`G7B<L(#(T-'TL"2\J(/0@*B\*"0E[Q
  252. XM)V\G+"`G?B<L(#(T-7TL"2\J(/4@*B\*"0E[)V\G+"`G(B<L(#(T-GTL"2\J8
  253. XM(/8@*B\*"0E[)SHG+"`G+2<L(#(T-WTL"2\J(/<@*B\*"0E[)V\G+"`G+R<L"
  254. XM(#(T.'TL"2\J(/@@*B\*"0E[)W4G+"`G8"<L(#(T.7TL"2\J(/D@*B\*"0E[-
  255. XM)W4G+"`G7"<G+"`R-3!]+`DO*B#Z("HO"@D)>R=U)RP@)UXG+"`R-3%]+`DOX
  256. XM*B#[("HO"@D)>R=U)RP@)R(G+"`R-3)]+`DO*B#\("HO"@D)>R=Y)RP@)UPGM
  257. XM)RP@,C4S?2P)+RH@_2`J+PH)"7LG:2<L("=P)RP@,C4T?2P)+RH@_B`J+PH)B
  258. XM"7LG>2<L("<B)RP@,C4U?2P)+RH@_R`J+PH)"7M.54PL($Y53"P@3E5,?0H)>
  259. XM"7T["@HO*@H@*B!L;V]K=7`@=&AE('!A:7(@8VAA<C$L(&-H87(R(&EN('1HG
  260. XM92!D:6=R87!H('1A8FQE<PH@*B!I9B!N;R!M871C:"P@<F5T=7)N(&-H87(R(
  261. XM"B`J+PH):6YT"F=E=&1I9W)A<&@H8VAA<C$L(&-H87(R*0H):6YT"6-H87(Q\
  262. XM.PH):6YT"6-H87(R.PI["@EI;G0)"6D["@EI;G0)"7)E='9A;#L*"@ER971V=
  263. XM86P@/2`P.PH)9F]R("AI(#T@,#L@.R`K*VDI"0D)+RH@<V5A<F-H(&%D9&5DG
  264. XM(&1I9W)A<&AS(&9I<G-T("HO"@E["@D):68@*&D@/3T@9&EG<F%P:&-O=6YT?
  265. XM*0DO*B!E;F0@;V8@861D960@=&%B;&4L('-E87)C:"!D969A=6QT<R`J+PH)7
  266. XM"7L*"0D)9F]R("AI(#T@,#L@9&EG<F%P:&1E9F%U;'1;:5U;,%T@(3T@,#L@?
  267. XM*RMI*0H)"0D):68@*&1I9W)A<&AD969A=6QT6VE=6S!=(#T](&-H87(Q("8FO
  268. XM(&1I9W)A<&AD969A=6QT6VE=6S%=(#T](&-H87(R*0H)"0D)>PH)"0D)"7)E8
  269. XM='9A;"`](&1I9W)A<&AD969A=6QT6VE=6S)=.PH)"0D)"6)R96%K.PH)"0D)C
  270. XM?0H)"0EB<F5A:SL*"0E]"@D):68@*&1I9W)A<&AN97=;:5U;,%T@/3T@8VAA&
  271. XM<C$@)B8@9&EG<F%P:&YE=UMI75LQ72`]/2!C:&%R,BD*"0E["@D)"7)E='9AS
  272. XM;"`](&1I9W)A<&AN97=;:5U;,ET["@D)"6)R96%K.PH)"7T*"7T*"@EI9B`H:
  273. XM<F5T=F%L(#T](#`I"2\J(&1I9W)A<&@@9&5L971E9"!O<B!N;W0@9F]U;F0@'
  274. XM*B\*"0ER971U<FX@8VAA<C(["@ER971U<FX@<F5T=F%L.PI]"@HO*@H@*B!PT
  275. XM=70@=&AE(&1I9W)A<&AS(&EN('1H92!A<F=U;65N="!S=')I;F<@:6X@=&AEF
  276. XM(&1I9W)A<&@@=&%B;&4*("H@9F]R;6%T.B![8S%]>V,R?2!C:&%R('MC,7U[\
  277. XM8S)](&-H87(@+BXN"B`J+PH)=F]I9`IP=71D:6=R87!H*'-T<BD*"6-H87(@_
  278. XM*G-T<CL*>PH):6YT"0EC:&%R,2P@8VAA<C(L(&X["@EU7V-H87()*"IN97=TQ
  279. XM86(I6S-=.PH):6YT"0EI.PH*"7=H:6QE("@J<W1R*0H)>PH)"7-K:7!S<&%C8
  280. XM92@F<W1R*3L*"0EC:&%R,2`]("IS='(K*SL*"0EC:&%R,B`]("IS='(K*SL*S
  281. XM"0EI9B`H8VAA<C$@/3T@,"!\?"!C:&%R,B`]/2`P*0H)"0ER971U<FX["@D)9
  282. XM<VMI<'-P86-E*"9S='(I.PH)"6EF("@A:7-D:6=I="@J<W1R*2D*"0E["@D)_
  283. XM"65M<V<H95]N=6UB97(I.PH)"0ER971U<FX["@D)?0H)"6X@/2!G971D:6=I+
  284. XM=',H)G-T<BD["@D):68@*&1I9W)A<&AN97<I"0DO*B!S96%R8V@@=&AE('1A.
  285. XM8FQE(&9O<B!E>&ES=&EN9R!E;G1R>2`J+PH)"7L*"0D)9F]R("AI(#T@,#L@L
  286. XM:2`\(&1I9W)A<&AC;W5N=#L@*RMI*0H)"0D):68@*&1I9W)A<&AN97=;:5U;:
  287. XM,%T@/3T@8VAA<C$@)B8@9&EG<F%P:&YE=UMI75LQ72`]/2!C:&%R,BD*"0D)M
  288. XM"7L*"0D)"0ED:6=R87!H;F5W6VE=6S)=(#T@;CL*"0D)"0EB<F5A:SL*"0D)Q
  289. XM"7T*"0D):68@*&D@/"!D:6=R87!H8V]U;G0I"@D)"0EC;VYT:6YU93L*"0E]_
  290. XM"@D);F5W=&%B(#T@*'5?8VAA<B`H*BE;,UTI86QL;V,H9&EG<F%P:&-O=6YT>
  291. XM("H@,R`K(#,I.PH)"6EF("AN97=T86(I"@D)>PH)"0EM96UM;W9E*"AC:&%R<
  292. XM("HI;F5W=&%B+"`H8VAA<B`J*61I9W)A<&AN97<L("AS:7IE7W0I*&1I9W)A\
  293. XM<&AC;W5N="`J(#,I*3L*"0D)9G)E92AD:6=R87!H;F5W*3L*"0D)9&EG<F%P#
  294. XM:&YE=R`](&YE=W1A8CL*"0D)9&EG<F%P:&YE=UMD:6=R87!H8V]U;G1=6S!=A
  295. XM(#T@8VAA<C$["@D)"61I9W)A<&AN97=;9&EG<F%P:&-O=6YT75LQ72`](&-H&
  296. XM87(R.PH)"0ED:6=R87!H;F5W6V1I9W)A<&AC;W5N=%U;,ET@/2!N.PH)"0DKN
  297. XM*V1I9W)A<&AC;W5N=#L*"0E]"@E]"GT*"@EV;VED"FQI<W1D:6=R87!H<R@I6
  298. XM"GL*"6EN=`D):3L*"@EP<FEN=&1I9W)A<&@H3E5,3"D["@EF;W(@*&D@/2`P!
  299. XM.R!D:6=R87!H9&5F875L=%MI75LP73L@*RMI*0H)"6EF("AG971D:6=R87!H]
  300. XM*&1I9W)A<&AD969A=6QT6VE=6S!=+"!D:6=R87!H9&5F875L=%MI75LQ72D@8
  301. XM/3T@9&EG<F%P:&1E9F%U;'1;:5U;,ETI"@D)"7!R:6YT9&EG<F%P:"AD:6=R1
  302. XM87!H9&5F875L=%MI72D["@EF;W(@*&D@/2`P.R!I(#P@9&EG<F%P:&-O=6YTC
  303. XM.R`K*VDI"@D)<')I;G1D:6=R87!H*&1I9W)A<&AN97=;:5TI.PH);W5T8VAA8
  304. XM<B@G7&XG*3L*"7=A:71?<F5T=7)N*%12544I.PI]"@H)<W1A=&EC('9O:60*Q
  305. XM<')I;G1D:6=R87!H*'`I"@EU7V-H87(@*G`["GL*"6-H87()"6)U9ELY73L*"
  306. XM"7-T871I8R!I;G0);&5N.PH*"6EF("AP(#T]($Y53$PI"@D);&5N(#T@,#L*.
  307. XM"65L<V4@:68@*'!;,ET@(3T@,"D*"7L*"0EI9B`H;&5N(#X@0V]L=6UN<R`MF
  308. XM(#$Q*0H)"7L*"0D);W5T8VAA<B@G7&XG*3L*"0D);&5N(#T@,#L*"0E]"@D)"
  309. XM:68@*&QE;BD*"0D);W5T<W1R;B@B("`@(BD["@D)<W!R:6YT9BAB=68L("(E-
  310. XM8R5C("5C("4S9"(L('!;,%TL('!;,5TL('!;,ETL('!;,ETI.PH)"6]U='-TE
  311. XM<FXH8G5F*3L*"0EL96X@*ST@,3$["@E]"GT*"B-E;F1I9B`O*B!$24=205!(U
  312. X%4R`J+PIF\
  313. X``
  314. Xend
  315. Xsize 5585
  316. END_OF_FILE
  317. if test 7861 -ne `wc -c <'vim/src/digraph.c.uue'`; then
  318.     echo shar: \"'vim/src/digraph.c.uue'\" unpacked with wrong size!
  319. fi
  320. # end of 'vim/src/digraph.c.uue'
  321. fi
  322. if test -f 'vim/src/globals.h' -a "${1}" != "-c" ; then 
  323.   echo shar: Will not clobber existing file \"'vim/src/globals.h'\"
  324. else
  325. echo shar: Extracting \"'vim/src/globals.h'\" \(7918 characters\)
  326. sed "s/^X//" >'vim/src/globals.h' <<'END_OF_FILE'
  327. X/* vi:ts=4:sw=4
  328. X *
  329. X * VIM - Vi IMitation
  330. X *
  331. X * Code Contributions By:    Bram Moolenaar            mool@oce.nl
  332. X *                            Tim Thompson            twitch!tjt
  333. X *                            Tony Andrews            onecom!wldrdg!tony 
  334. X *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  335. X */
  336. X
  337. X/*
  338. X * definition of global variables
  339. X *
  340. X * EXTERN is only defined in main.c (and in param.h)
  341. X */
  342. X
  343. X#ifndef EXTERN
  344. X# define EXTERN extern
  345. X# define INIT(x)
  346. X#else
  347. X# ifndef INIT
  348. X#  define INIT(x) x
  349. X# endif
  350. X#endif
  351. X
  352. XEXTERN long        Rows;            /* Number of Rows and Columns */
  353. XEXTERN long        Columns;        /*     in the current window. */
  354. X
  355. XEXTERN char     *Filename INIT(= NULL);    /* Current file name */
  356. X
  357. X
  358. XEXTERN linenr_t Topline;        /* number of the line at the top of the screen */
  359. XEXTERN linenr_t Botline;        /* number of the line below the bottom of the
  360. X                                 * screen */
  361. XEXTERN linenr_t line_count;     /* current number of lines in the file */
  362. X
  363. XEXTERN FPOS     Curpos;         /* current position of the cursor */
  364. X
  365. XEXTERN int        Curscol;        /* Current position of cursor (column) */
  366. XEXTERN int        Cursrow;        /* Current position of cursor (row) */
  367. X
  368. XEXTERN int        Cursvcol;        /* Current virtual column, the column number
  369. X                                 * of the file's actual line, as opposed to
  370. X                                 * the column number we're at on the screen.
  371. X                                 * This makes a difference on lines that span
  372. X                                 * more than one screen line. */
  373. X
  374. XEXTERN colnr_t    Curswant INIT(= 0);     /* The column we'd like to be at. This is
  375. X                                 * used to try to stay in the same column
  376. X                                 * through up/down cursor motions. */
  377. X
  378. XEXTERN int        set_want_col;    /* If set, then update Curswant the next time
  379. X                                 * through cursupdate() to the current
  380. X                                 * virtual column. */
  381. X
  382. XEXTERN int        starting INIT(= TRUE);
  383. X                                /* set to FALSE when starting up finished */
  384. XEXTERN int        exiting INIT(= FALSE);
  385. X                                /* set to TRUE when abandoning Vim */
  386. X
  387. XEXTERN int        secure INIT(= FALSE);
  388. X                                /* set to TRUE when only "safe" commands are 
  389. X                                 * allowed, e.g. when sourcing .exrc or .vimrc
  390. X                                 * in current directory */
  391. X
  392. XEXTERN FPOS     Quote;             /* start position of quotation
  393. X                                 * (Quote.lnum == 0 when not active) */
  394. XEXTERN int        Quote_block INIT(= FALSE);
  395. X                                /* Quoting is blockwise */
  396. X
  397. XEXTERN FPOS     Insstart;        /* This is where the latest insert/append
  398. X                                 * mode started. */
  399. X
  400. X/*
  401. X * This flag is used to make auto-indent work right on lines where only a
  402. X * <RETURN> or <ESC> is typed. It is set when an auto-indent is done, and
  403. X * reset when any other editting is done on the line. If an <ESC> or <RETURN>
  404. X * is received, and did_ai is TRUE, the line is truncated.
  405. X */
  406. XEXTERN int               did_ai INIT(= FALSE);
  407. X
  408. X/*
  409. X * This flag is set when a smart indent has been performed. When the next typed
  410. X * character is a '{' the inserted tab will be deleted again.
  411. X */
  412. XEXTERN int                did_si INIT(= FALSE);
  413. X
  414. X/*
  415. X * This flag is set after an auto indent. If the next typed character is a '}'
  416. X * one indent character will be removed.
  417. X */
  418. XEXTERN int                can_si INIT(= FALSE);
  419. X
  420. XEXTERN int        State INIT(= NORMAL);    /* This is the current state of the command
  421. X                                         * interpreter. */
  422. X
  423. XEXTERN int        Recording INIT(= FALSE);/* TRUE when recording into a buffer */
  424. X
  425. XEXTERN int        Changed INIT(= FALSE);    /* Set to TRUE if something in the file has
  426. X                                          * been changed and not written out. */
  427. X
  428. XEXTERN int        Updated INIT(= FALSE);    /* Set to TRUE if something in the file has
  429. X                                          * been changed and .vim not flushed yet */
  430. X
  431. XEXTERN char     *IObuff;                /* sprintf's are done into this buffer */
  432. X
  433. XEXTERN int        RedrawingDisabled INIT(= FALSE);
  434. X                                        /* Set to TRUE if doing :g */
  435. X#ifndef MSDOS
  436. XEXTERN int        thisfile_sn INIT(= FALSE);    /* this file uses shortname */
  437. X#endif
  438. X
  439. XEXTERN int        readonlymode INIT(= FALSE); /* Set to TRUE for "view" */
  440. XEXTERN int        recoverymode INIT(= FALSE); /* Set to TRUE for "-r" option */
  441. X
  442. XEXTERN int        KeyTyped;                /* TRUE if user typed the character */
  443. X
  444. XEXTERN char     **files INIT(= NULL);    /* list of input files */
  445. XEXTERN int        numfiles INIT(= 0);     /* number of input files */
  446. XEXTERN int        curfile INIT(= 0);        /* number of the current file */
  447. X#define NSCRIPT 15
  448. XEXTERN FILE     *scriptin[NSCRIPT];        /* streams to read script from */
  449. XEXTERN int        curscript INIT(= 0);    /* index in scriptin[] */
  450. XEXTERN FILE     *scriptout    INIT(= NULL); /* stream to write script to */
  451. X
  452. XEXTERN int        got_int INIT(= FALSE);    /* set to TRUE when interrupt
  453. X                                           signal occurred */
  454. XEXTERN int        term_console INIT(= FALSE);    /* set to TRUE when amiga window used */
  455. XEXTERN int        bangredo INIT(= FALSE);    /* set to TRUE whith ! command */
  456. XEXTERN int        searchcmdlen;            /* length of previous search command */
  457. X
  458. X#ifdef DEBUG
  459. XEXTERN FILE *debugfp INIT(=NULL);
  460. X#endif
  461. X
  462. Xextern char *Version;            /* this is in version.c */
  463. Xextern char *longVersion;        /* this is in version.c */
  464. X
  465. X/* just a string of 15 spaces */
  466. XEXTERN char spaces[]        INIT(= "               ");
  467. X
  468. X/*
  469. X * The error messages that can be shared are included here.
  470. X * Excluded are very specific errors and debugging messages.
  471. X */
  472. XEXTERN char e_abort[]        INIT(="Command aborted");
  473. XEXTERN char e_ambmap[]        INIT(="Ambiguous mapping");
  474. XEXTERN char e_argreq[]        INIT(="Argument required");
  475. XEXTERN char e_curdir[]        INIT(="No write or shell from .exrc/.vimrc in current dir");
  476. XEXTERN char e_errorf[]        INIT(="No errorfile name");
  477. XEXTERN char e_exists[]        INIT(="File exists (use ! to override)");
  478. XEXTERN char e_failed[]         INIT(="Command failed");
  479. XEXTERN char e_internal[]    INIT(="Internal error");
  480. XEXTERN char e_interr[]        INIT(="Interrupted");
  481. XEXTERN char e_invaddr[]        INIT(="Invalid address");
  482. XEXTERN char e_invarg[]        INIT(="Invalid argument");
  483. XEXTERN char e_invrange[]    INIT(="Invalid range");
  484. XEXTERN char e_invcmd[]        INIT(="Invalid command");
  485. XEXTERN char e_invstring[]    INIT(="Invalid search string");
  486. XEXTERN char e_more[]        INIT(="Still more files to edit");
  487. XEXTERN char e_nesting[]        INIT(="Scripts nested too deep");
  488. XEXTERN char e_noalt[]        INIT(="No alternate file");
  489. XEXTERN char e_nomap[]        INIT(="No such mapping");
  490. XEXTERN char e_nomatch[]        INIT(="No match");
  491. XEXTERN char e_nomore[]        INIT(="No more files to edit");
  492. XEXTERN char e_noname[]        INIT(="No file name");
  493. XEXTERN char e_nopresub[]    INIT(="No previous substitute");
  494. XEXTERN char e_noprev[]        INIT(="No previous command");
  495. XEXTERN char e_noprevre[]    INIT(="No previous regexp");
  496. XEXTERN char e_norange[]     INIT(="No range allowed");
  497. XEXTERN char e_notcreate[]     INIT(="Can't create file");
  498. XEXTERN char e_notmp[]        INIT(="Can't get temp file name");
  499. XEXTERN char e_notopen[]        INIT(="Can't open file");
  500. XEXTERN char e_notread[]        INIT(="Can't read file");
  501. XEXTERN char e_nowrtmsg[]    INIT(="No write since last change (use ! to override)");
  502. XEXTERN char e_null[]        INIT(="Null argument");
  503. XEXTERN char e_number[]        INIT(="Number expected");
  504. XEXTERN char e_openerrf[]    INIT(="Can't open errorfile");
  505. XEXTERN char e_outofmem[]    INIT(="Out of memory!");
  506. XEXTERN char e_patnotf[]        INIT(="Pattern not found");
  507. XEXTERN char e_positive[]    INIT(="Argument must be positive");
  508. XEXTERN char e_quickfix[]    INIT(="No errorfile; use :cf");
  509. XEXTERN char e_re_damg[]        INIT(="Damaged match string");
  510. XEXTERN char e_re_corr[]        INIT(="Corrupted regexp program");
  511. XEXTERN char e_readonly[]    INIT(="File is readonly");
  512. XEXTERN char e_readerrf[]    INIT(="Error while reading errorfile");
  513. XEXTERN char    e_setarg[]        INIT(="Invalid argument: ");    /* must be 16 chars */
  514. XEXTERN char e_scroll[]        INIT(="Invalid scroll size");
  515. XEXTERN char e_tabsize[]        INIT(="Invalid tab size");
  516. XEXTERN char e_toocompl[]    INIT(="Command too complex");
  517. XEXTERN char e_toombra[]        INIT(="Too many (");
  518. XEXTERN char e_toomket[]        INIT(="Too many )");
  519. XEXTERN char e_toomsbra[]    INIT(="Too many [");
  520. XEXTERN char e_toolong[]        INIT(="Command too long");
  521. XEXTERN char e_toomany[]        INIT(="Too many file names");
  522. XEXTERN char e_trailing[]    INIT(="Trailing characters");
  523. XEXTERN char e_umark[]        INIT(="Unknown mark");
  524. XEXTERN char e_unknown[]        INIT(="Unknown");
  525. XEXTERN char e_write[]        INIT(="Error while writing");
  526. XEXTERN char e_zerocount[]     INIT(="Zero count");
  527. END_OF_FILE
  528. if test 7918 -ne `wc -c <'vim/src/globals.h'`; then
  529.     echo shar: \"'vim/src/globals.h'\" unpacked with wrong size!
  530. fi
  531. # end of 'vim/src/globals.h'
  532. fi
  533. if test -f 'vim/src/makefile.6sas' -a "${1}" != "-c" ; then 
  534.   echo shar: Will not clobber existing file \"'vim/src/makefile.6sas'\"
  535. else
  536. echo shar: Extracting \"'vim/src/makefile.6sas'\" \(7882 characters\)
  537. sed "s/^X//" >'vim/src/makefile.6sas' <<'END_OF_FILE'
  538. X#
  539. X# Makefile for VIM on the Amiga, using SAS/Lattice C 6.0, 6.1 or 6.2
  540. X#
  541. X# Do NOT use the peephole optimizer! It messes up all kinds of things.
  542. X# For 6.0 and 6.1, expand_env() will not work correctly.
  543. X# For 6.2 the call to free_line in u_freeentry is wrong.
  544. X# You should use Manx Aztec C whenever possible.
  545. X#
  546. X# The prototypes from Manx and SAS are incompatible. If the prototypes
  547. X# were generated by Manx, first do "touch *.c; make proto" before "make".
  548. X#
  549. X# Note: not all dependencies are included. This was done to avoid having
  550. X#       to compile everything when a global variable or function is added
  551. X#    
  552. X
  553. X#>>>>> choose options:
  554. X### DEF=DIGRAPHS        digraph support (at the cost of 1.6 Kbyte code)
  555. X### DEF=WILD_CARDS        wildcard expansion code
  556. X### DEF=NO_ARP            do not use arp.library, DOS 2.0 required
  557. X### DEF=COMPATIBLE        start in vi-compatible mode
  558. X### DEF=NOBACKUP        default is no backup file
  559. X### DEF=DEBUG            output a lot of debugging garbage
  560. X### DEF=TERMCAP            include termcap file support
  561. X### DEF=NO_BUILTIN_TCAPS    do not include builtin termcap entries
  562. X###                (use only with -DTERMCAP)
  563. X### DEF=SOME_BUILTIN_TCAPS     include most useful builtin termcap entries
  564. X###                (use only without -DNO_BUILTIN_TCAPS)
  565. X### DEF=ALL_BUILTIN_TCAPS    include all builtin termcap entries
  566. X###                (use only without -DNO_BUILTIN_TCAPS)
  567. XDEFINES = DEF=WILD_CARDS DEF=DIGRAPHS DEF=SOME_BUILTIN_TCAPS
  568. X
  569. X#>>>>> if TERMCAP is defined termlib.o has to be used
  570. X#TERMLIB = termlib.o
  571. XTERMLIB = 
  572. X
  573. X#>>>>> choose NODEBUG for normal compiling, the other for debugging and profiling
  574. X# don't switch on debugging when generating proto files, it crashes the compiler.
  575. XDBG = NODEBUG
  576. X#DBG = DBG=SF
  577. X
  578. X#>>>>> choose NOOPTPEEP for 6.0 and 6.1, NOOPT for debugging
  579. X# when all the optimizer bugs are finally solved you can use OPT
  580. X#OPTIMIZE=OPT
  581. XOPTIMIZE=NOOPTPEEP
  582. X#OPTIMIZE=NOOPT
  583. X
  584. X#>>>>> end of choices
  585. X###########################################################################
  586. X
  587. XCC = sc
  588. XGST = vim.gst
  589. XCOPTS = SINT SCODE SDATA
  590. X
  591. XCFLAGS = NOLINK $(OPTIMIZE) $(COPTS) DEF=AMIGA DEF=SASC $(DBG) $(DEFINES) GST=$(GST)
  592. X
  593. XPROPT = DEF=PROTO GPROTO GPPARM
  594. X
  595. XOBJ =    alloc.o amiga.o buffers.o charset.o cmdline.o csearch.o digraph.o \
  596. X    edit.o fileio.o help.o linefunc.o main.o mark.o message.o misccmds.o \
  597. X    normal.o ops.o param.o quickfix.o regexp.o regsub.o screen.o \
  598. X    script.o search.o storage.o tag.o term.o undo.o $(TERMLIB)
  599. X
  600. XPRO =    proto/alloc.pro proto/buffers.pro proto/charset.pro proto/cmdline.pro \
  601. X    proto/csearch.pro proto/digraph.pro proto/edit.pro proto/fileio.pro \
  602. X    proto/help.pro proto/linefunc.pro proto/main.pro proto/mark.pro \
  603. X    proto/message.pro proto/misccmds.pro proto/normal.pro proto/ops.pro \
  604. X    proto/param.pro proto/quickfix.pro proto/regexp.pro proto/regsub.pro \
  605. X    proto/screen.pro proto/script.pro proto/search.pro proto/storage.pro \
  606. X    proto/tag.pro proto/term.pro proto/termlib.pro \
  607. X    proto/undo.pro proto/amiga.pro
  608. X
  609. X/Vim: $(OBJ) version.c
  610. X    $(CC) $(CFLAGS) version.c
  611. X    $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=/Vim
  612. X
  613. Xdebug: $(OBJ) version.c
  614. X    $(CC) $(CFLAGS) version.c
  615. X    $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=/Vim
  616. X
  617. Xproto: $(GST) $(PRO)
  618. X
  619. Xctags:
  620. X    csh -c ctags *.c *.h
  621. X
  622. X# can't use delete here, too many file names
  623. Xclean:
  624. X    csh -c rm -f $(OBJ) version.o mkcmdtab.o /Vim $(GST) mkcmdtab
  625. X
  626. X$(GST)  : vim.h keymap.h macros.h ascii.h term.h
  627. X    $(CC) $(CFLAGS) MGST=$(GST) vim.h
  628. X
  629. X###########################################################################
  630. X
  631. Xalloc.o:    alloc.c  $(GST)
  632. X    $(CC) $(CFLAGS) alloc.c
  633. X
  634. Xproto/alloc.pro:    alloc.c  $(GST)
  635. X    $(CC) $(CFLAGS) GPFILE=proto/alloc.pro $(PROPT) alloc.c
  636. X
  637. Xamiga.o:    amiga.c  $(GST)
  638. X    $(CC) $(CFLAGS) amiga.c
  639. X
  640. Xproto/amiga.pro:    amiga.c $(GST)
  641. X    $(CC) $(CFLAGS) GPFILE=proto/amiga.pro $(PROPT) amiga.c
  642. X
  643. Xbuffers.o:    buffers.c  $(GST)
  644. X    $(CC) $(CFLAGS) buffers.c
  645. X
  646. Xproto/buffers.pro:    buffers.c $(GST)
  647. X    $(CC) $(CFLAGS) GPFILE=proto/buffers.pro $(PROPT) buffers.c
  648. X
  649. Xcharset.o:    charset.c  $(GST)
  650. X    $(CC) $(CFLAGS) charset.c
  651. X
  652. Xproto/charset.pro:    charset.c $(GST)
  653. X    $(CC) $(CFLAGS) GPFILE=proto/charset.pro $(PROPT) charset.c
  654. X
  655. Xcmdline.o:    cmdline.c  $(GST) cmdtab.h
  656. X    $(CC) $(CFLAGS) cmdline.c
  657. X
  658. Xproto/cmdline.pro:    cmdline.c $(GST)
  659. X    $(CC) $(CFLAGS) GPFILE=proto/cmdline.pro $(PROPT) cmdline.c
  660. X
  661. Xcsearch.o:    csearch.c  $(GST)
  662. X    $(CC) $(CFLAGS) csearch.c
  663. X
  664. Xproto/csearch.pro:    csearch.c $(GST)
  665. X    $(CC) $(CFLAGS) GPFILE=proto/csearch.pro $(PROPT) csearch.c
  666. X
  667. Xdigraph.o:    digraph.c  $(GST)
  668. X    $(CC) $(CFLAGS) digraph.c
  669. X
  670. Xproto/digraph.pro:    digraph.c $(GST)
  671. X    $(CC) $(CFLAGS) GPFILE=proto/digraph.pro $(PROPT) digraph.c
  672. X
  673. Xedit.o:    edit.c  $(GST)
  674. X    $(CC) $(CFLAGS) edit.c
  675. X
  676. Xproto/edit.pro:    edit.c $(GST)
  677. X    $(CC) $(CFLAGS) GPFILE=proto/edit.pro $(PROPT) edit.c
  678. X
  679. Xfileio.o:    fileio.c  $(GST)
  680. X    $(CC) $(CFLAGS) fileio.c
  681. X
  682. Xproto/fileio.pro:    fileio.c $(GST)
  683. X    $(CC) $(CFLAGS) GPFILE=proto/fileio.pro $(PROPT) fileio.c
  684. X
  685. Xhelp.o:    help.c  $(GST)
  686. X    $(CC) $(CFLAGS) help.c
  687. X
  688. Xproto/help.pro:    help.c $(GST)
  689. X    $(CC) $(CFLAGS) GPFILE=proto/help.pro $(PROPT) help.c
  690. X
  691. Xlinefunc.o:    linefunc.c  $(GST)
  692. X    $(CC) $(CFLAGS) linefunc.c
  693. X
  694. Xproto/linefunc.pro:    linefunc.c $(GST)
  695. X    $(CC) $(CFLAGS) GPFILE=proto/linefunc.pro $(PROPT) linefunc.c
  696. X
  697. Xmain.o:    main.c  $(GST)
  698. X    $(CC) $(CFLAGS) main.c
  699. X
  700. Xproto/main.pro:    main.c $(GST)
  701. X    $(CC) $(CFLAGS) GPFILE=proto/main.pro $(PROPT) main.c
  702. X
  703. Xmark.o:    mark.c  $(GST) mark.h
  704. X    $(CC) $(CFLAGS) mark.c
  705. X
  706. Xproto/mark.pro:    mark.c $(GST)
  707. X    $(CC) $(CFLAGS) GPFILE=proto/mark.pro $(PROPT) mark.c
  708. X
  709. Xmessage.o:    message.c  $(GST)
  710. X    $(CC) $(CFLAGS) message.c
  711. X
  712. Xproto/message.pro:    message.c $(GST)
  713. X    $(CC) $(CFLAGS) GPFILE=proto/message.pro $(PROPT) message.c
  714. X
  715. Xmisccmds.o:    misccmds.c  $(GST)
  716. X    $(CC) $(CFLAGS) misccmds.c
  717. X
  718. Xproto/misccmds.pro:    misccmds.c $(GST)
  719. X    $(CC) $(CFLAGS) GPFILE=proto/misccmds.pro $(PROPT) misccmds.c
  720. X
  721. Xnormal.o:    normal.c  $(GST) ops.h
  722. X    $(CC) $(CFLAGS) normal.c
  723. X
  724. Xproto/normal.pro:    normal.c $(GST)
  725. X    $(CC) $(CFLAGS) GPFILE=proto/normal.pro $(PROPT) normal.c
  726. X
  727. Xops.o:    ops.c  $(GST) ops.h
  728. X    $(CC) $(CFLAGS) ops.c
  729. X
  730. Xproto/ops.pro:    ops.c $(GST)
  731. X    $(CC) $(CFLAGS) GPFILE=proto/ops.pro $(PROPT) ops.c
  732. X
  733. Xparam.o:    param.c  $(GST)
  734. X    $(CC) $(CFLAGS) param.c
  735. X
  736. Xproto/param.pro:    param.c $(GST)
  737. X    $(CC) $(CFLAGS) GPFILE=proto/param.pro $(PROPT) param.c
  738. X
  739. Xquickfix.o:    quickfix.c  $(GST)
  740. X    $(CC) $(CFLAGS) quickfix.c
  741. X
  742. Xproto/quickfix.pro:    quickfix.c $(GST)
  743. X    $(CC) $(CFLAGS) GPFILE=proto/quickfix.pro $(PROPT) quickfix.c
  744. X
  745. Xregexp.o:    regexp.c  $(GST)
  746. X    $(CC) $(CFLAGS) regexp.c
  747. X
  748. Xproto/regexp.pro:    regexp.c $(GST)
  749. X    $(CC) $(CFLAGS) GPFILE=proto/regexp.pro $(PROPT) regexp.c
  750. X
  751. Xregsub.o:    regsub.c  $(GST)
  752. X    $(CC) $(CFLAGS) regsub.c
  753. X
  754. Xproto/regsub.pro:    regsub.c $(GST)
  755. X    $(CC) $(CFLAGS) GPFILE=proto/regsub.pro $(PROPT) regsub.c
  756. X
  757. Xscreen.o:    screen.c  $(GST)
  758. X    $(CC) $(CFLAGS) screen.c
  759. X
  760. Xproto/screen.pro:    screen.c $(GST)
  761. X    $(CC) $(CFLAGS) GPFILE=proto/screen.pro $(PROPT) screen.c
  762. X
  763. Xscript.o:    script.c  $(GST)
  764. X    $(CC) $(CFLAGS) script.c
  765. X
  766. Xproto/script.pro:    script.c $(GST)
  767. X    $(CC) $(CFLAGS) GPFILE=proto/script.pro $(PROPT) script.c
  768. X
  769. Xsearch.o:    search.c  $(GST)
  770. X    $(CC) $(CFLAGS) search.c
  771. X
  772. Xproto/search.pro:    search.c $(GST)
  773. X    $(CC) $(CFLAGS) GPFILE=proto/search.pro $(PROPT) search.c
  774. X
  775. Xstorage.o:    storage.c  $(GST)
  776. X    $(CC) $(CFLAGS) storage.c
  777. X
  778. Xproto/storage.pro:    storage.c $(GST)
  779. X    $(CC) $(CFLAGS) GPFILE=proto/storage.pro $(PROPT) storage.c
  780. X
  781. Xtag.o:    tag.c  $(GST) mark.h
  782. X    $(CC) $(CFLAGS) tag.c
  783. X
  784. Xproto/tag.pro:    tag.c $(GST)
  785. X    $(CC) $(CFLAGS) GPFILE=proto/tag.pro $(PROPT) tag.c
  786. X
  787. Xterm.o:    term.c  $(GST)
  788. X    $(CC) $(CFLAGS) term.c
  789. X
  790. Xproto/term.pro:    term.c $(GST)
  791. X    $(CC) $(CFLAGS) GPFILE=proto/term.pro $(PROPT) term.c
  792. X
  793. Xtermlib.o:    termlib.c  $(GST)
  794. X    $(CC) $(CFLAGS) termlib.c
  795. X
  796. Xproto/termlib.pro:    termlib.c $(GST)
  797. X    $(CC) $(CFLAGS) GPFILE=proto/termlib.pro $(PROPT) termlib.c
  798. X
  799. Xundo.o:    undo.c  $(GST)
  800. X    $(CC) $(CFLAGS) undo.c
  801. X
  802. Xproto/undo.pro:    undo.c $(GST)
  803. X    $(CC) $(CFLAGS) GPFILE=proto/undo.pro $(PROPT) undo.c
  804. X
  805. Xcmdtab.h: cmdtab.tab mkcmdtab
  806. X    mkcmdtab cmdtab.tab cmdtab.h
  807. X
  808. Xmkcmdtab.o:    mkcmdtab.c
  809. X    $(CC) $(CFLAGS) mkcmdtab.c
  810. X
  811. Xmkcmdtab: mkcmdtab.o
  812. X    $(CC) LINK $(COPTS) mkcmdtab.o PNAME=mkcmdtab
  813. END_OF_FILE
  814. if test 7882 -ne `wc -c <'vim/src/makefile.6sas'`; then
  815.     echo shar: \"'vim/src/makefile.6sas'\" unpacked with wrong size!
  816. fi
  817. # end of 'vim/src/makefile.6sas'
  818. fi
  819. if test -f 'vim/src/makefile.manx' -a "${1}" != "-c" ; then 
  820.   echo shar: Will not clobber existing file \"'vim/src/makefile.manx'\"
  821. else
  822. echo shar: Extracting \"'vim/src/makefile.manx'\" \(8098 characters\)
  823. sed "s/^X//" >'vim/src/makefile.manx' <<'END_OF_FILE'
  824. X#
  825. X# Makefile for VIM on the Amiga, using Aztec/Manx C 5.0 or later
  826. X#
  827. X# Note: not all dependencies are included. This was done to avoid having
  828. X#       to compile everything when a global variable or function is added
  829. X#    
  830. X
  831. X#>>>>> choose options:
  832. X### -DDIGRAPHS        digraph support (at the cost of 1.6 Kbyte code)
  833. X### -DWILD_CARDS    wildcard expansion code
  834. X### -DNO_ARP        do not use arp.library, DOS 2.0 required
  835. X### -DCOMPATIBLE    start in vi-compatible mode
  836. X### -DNOBACKUP        default is no backup file
  837. X### -DDEBUG        output a lot of debugging garbage
  838. X### -DTERMCAP        include termcap file support
  839. X### -DNO_BUILTIN_TCAPS    do not include builtin termcap entries
  840. X###                (use only with -DTERMCAP)
  841. X### -DSOME_BUILTIN_TCAPS include most useful builtin termcap entries
  842. X###                (use only without -DNO_BUILTIN_TCAPS)
  843. X### -DALL_BUILTIN_TCAPS    include all builtin termcap entries
  844. X###                (use only without -DNO_BUILTIN_TCAPS)
  845. X### -DVIMRC_FILE    name of the .vimrc file in current dir
  846. X### -DEXRC_FILE        name of the .exrc file in current dir
  847. X### -DSYSVIMRC_FILE    name of the global .vimrc file
  848. X### -DSYSEXRC_FILE    name of the global .exrc file
  849. X### -DDEFVIMRC_FILE    name of the system-wide .vimrc file
  850. X### -DVIM_HLP        name of the help file
  851. XDEFINES = -DWILD_CARDS -DDIGRAPHS -DSOME_BUILTIN_TCAPS
  852. X
  853. X#>>>>> if TERMCAP is defined termlib.o has to be used
  854. X#TERMLIB = termlib.o
  855. XTERMLIB = 
  856. X
  857. X#>>>>> choose between debugging (-bs) or optimizing (-so)
  858. XOPTIONS = -so
  859. X#OPTIONS = -bs
  860. X
  861. X#>>>>> end of choices
  862. X###########################################################################
  863. X
  864. XCFLAGS = $(OPTIONS) -wapruq -ps -qf $(DEFINES) -DAMIGA
  865. X
  866. XLIBS = -lc16
  867. XSYMS = vim.syms
  868. X
  869. XOBJ =    alloc.o amiga.o buffers.o charset.o cmdline.o csearch.o digraph.o \
  870. X    edit.o fileio.o help.o linefunc.o main.o mark.o message.o misccmds.o \
  871. X    normal.o ops.o param.o quickfix.o regexp.o regsub.o screen.o \
  872. X    script.o search.o storage.o tag.o term.o undo.o $(TERMLIB)
  873. X
  874. XPRO =    proto/alloc.pro proto/buffers.pro proto/charset.pro proto/cmdline.pro \
  875. X    proto/csearch.pro proto/digraph.pro proto/edit.pro proto/fileio.pro \
  876. X    proto/help.pro proto/linefunc.pro proto/main.pro proto/mark.pro \
  877. X    proto/message.pro proto/misccmds.pro proto/normal.pro proto/ops.pro \
  878. X    proto/param.pro proto/quickfix.pro proto/regexp.pro proto/regsub.pro \
  879. X    proto/screen.pro proto/script.pro proto/search.pro proto/storage.pro \
  880. X    proto/tag.pro proto/term.pro proto/termlib.pro \
  881. X    proto/undo.pro proto/amiga.pro
  882. X
  883. X/Vim: $(OBJ) version.c
  884. X    cc $(CFLAGS) version.c
  885. X    ln +q -m -o /Vim $(OBJ) version.o $(LIBS)
  886. X
  887. Xdebug: $(OBJ) version.c
  888. X    cc $(CFLAGS) version.c
  889. X    ln +q -m -g -o /Vim $(OBJ) version.o $(LIBS)
  890. X
  891. Xproto: $(SYMS) $(PRO)
  892. X
  893. Xctags:
  894. X    csh -c ctags *.c *.h
  895. X
  896. X# can't use delete here, too many file names
  897. Xclean:
  898. X    csh -c rm -f $(OBJ) version.o mkcmdtab.o /Vim $(SYMS) mkcmdtab
  899. X
  900. X$(SYMS)  : vim.h keymap.h macros.h ascii.h term.h
  901. X    cc $(CFLAGS) -ho$(SYMS) vim.h
  902. X
  903. X###########################################################################
  904. X
  905. Xalloc.o:    alloc.c  $(SYMS)
  906. X    cc $(CFLAGS) -hi$(SYMS) alloc.c
  907. X
  908. Xproto/alloc.pro:    alloc.c
  909. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) alloc.c
  910. X    csh -c mv -f alloc.pro proto
  911. X
  912. Xamiga.o:    amiga.c  $(SYMS)
  913. X    cc $(CFLAGS) -hi$(SYMS) amiga.c
  914. X
  915. Xproto/amiga.pro:    amiga.c
  916. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) amiga.c
  917. X    csh -c mv -f amiga.pro proto
  918. X
  919. Xbuffers.o:    buffers.c  $(SYMS)
  920. X    cc $(CFLAGS) -hi$(SYMS) buffers.c
  921. X
  922. Xproto/buffers.pro:    buffers.c
  923. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) buffers.c
  924. X    csh -c mv -f buffers.pro proto
  925. X
  926. Xcharset.o:    charset.c  $(SYMS)
  927. X    cc $(CFLAGS) -hi$(SYMS) charset.c
  928. X
  929. Xproto/charset.pro:    charset.c
  930. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) charset.c
  931. X    csh -c mv -f charset.pro proto
  932. X
  933. Xcmdline.o:    cmdline.c  $(SYMS) cmdtab.h
  934. X    cc $(CFLAGS) -hi$(SYMS) cmdline.c
  935. X
  936. Xproto/cmdline.pro:    cmdline.c
  937. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) cmdline.c
  938. X    csh -c mv -f cmdline.pro proto
  939. X
  940. Xcsearch.o:    csearch.c  $(SYMS)
  941. X    cc $(CFLAGS) -hi$(SYMS) csearch.c
  942. X
  943. Xproto/csearch.pro:    csearch.c
  944. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) csearch.c
  945. X    csh -c mv -f csearch.pro proto
  946. X
  947. Xdigraph.o:    digraph.c  $(SYMS)
  948. X    cc $(CFLAGS) -hi$(SYMS) digraph.c
  949. X
  950. Xproto/digraph.pro:    digraph.c
  951. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) digraph.c
  952. X    csh -c mv -f digraph.pro proto
  953. X
  954. Xedit.o:    edit.c  $(SYMS)
  955. X    cc $(CFLAGS) -hi$(SYMS) edit.c
  956. X
  957. Xproto/edit.pro:    edit.c
  958. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) edit.c
  959. X    csh -c mv -f edit.pro proto
  960. X
  961. Xfileio.o:    fileio.c  $(SYMS)
  962. X    cc $(CFLAGS) -hi$(SYMS) fileio.c
  963. X
  964. Xproto/fileio.pro:    fileio.c
  965. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) fileio.c
  966. X    csh -c mv -f fileio.pro proto
  967. X
  968. Xhelp.o:    help.c  $(SYMS)
  969. X    cc $(CFLAGS) -hi$(SYMS) help.c
  970. X
  971. Xproto/help.pro:    help.c
  972. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) help.c
  973. X    csh -c mv -f help.pro proto
  974. X
  975. Xlinefunc.o:    linefunc.c  $(SYMS)
  976. X    cc $(CFLAGS) -hi$(SYMS) linefunc.c
  977. X
  978. Xproto/linefunc.pro:    linefunc.c
  979. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) linefunc.c
  980. X    csh -c mv -f linefunc.pro proto
  981. X
  982. Xmain.o:    main.c $(SYMS) param.h globals.h
  983. X    cc $(CFLAGS) -hi$(SYMS) main.c
  984. X
  985. Xproto/main.pro:    main.c
  986. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) main.c
  987. X    csh -c mv -f main.pro proto
  988. X
  989. Xmark.o:    mark.c  $(SYMS) mark.h
  990. X    cc $(CFLAGS) -hi$(SYMS) mark.c
  991. X
  992. Xproto/mark.pro:    mark.c
  993. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) mark.c
  994. X    csh -c mv -f mark.pro proto
  995. X
  996. Xmessage.o:    message.c  $(SYMS)
  997. X    cc $(CFLAGS) -hi$(SYMS) message.c
  998. X
  999. Xproto/message.pro:    message.c
  1000. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) message.c
  1001. X    csh -c mv -f message.pro proto
  1002. X
  1003. Xmisccmds.o:    misccmds.c  $(SYMS)
  1004. X    cc $(CFLAGS) -hi$(SYMS) misccmds.c
  1005. X
  1006. Xproto/misccmds.pro:    misccmds.c
  1007. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) misccmds.c
  1008. X    csh -c mv -f misccmds.pro proto
  1009. X
  1010. Xnormal.o:    normal.c  $(SYMS) ops.h
  1011. X    cc $(CFLAGS) -hi$(SYMS) normal.c
  1012. X
  1013. Xproto/normal.pro:    normal.c
  1014. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) normal.c
  1015. X    csh -c mv -f normal.pro proto
  1016. X
  1017. Xops.o:    ops.c  $(SYMS) ops.h
  1018. X    cc $(CFLAGS) -hi$(SYMS) ops.c
  1019. X
  1020. Xproto/ops.pro:    ops.c
  1021. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) ops.c
  1022. X    csh -c mv -f ops.pro proto
  1023. X
  1024. Xparam.o:    param.c  $(SYMS)
  1025. X    cc $(CFLAGS) -hi$(SYMS) param.c
  1026. X
  1027. Xproto/param.pro:    param.c
  1028. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) param.c
  1029. X    csh -c mv -f param.pro proto
  1030. X
  1031. Xquickfix.o:    quickfix.c  $(SYMS)
  1032. X    cc $(CFLAGS) -hi$(SYMS) quickfix.c
  1033. X
  1034. Xproto/quickfix.pro:    quickfix.c
  1035. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) quickfix.c
  1036. X    csh -c mv -f quickfix.pro proto
  1037. X
  1038. Xregexp.o:    regexp.c  $(SYMS)
  1039. X    cc $(CFLAGS) -hi$(SYMS) regexp.c
  1040. X
  1041. Xproto/regexp.pro:    regexp.c
  1042. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) regexp.c
  1043. X    csh -c mv -f regexp.pro proto
  1044. X
  1045. Xregsub.o:    regsub.c  $(SYMS)
  1046. X    cc $(CFLAGS) -hi$(SYMS) regsub.c
  1047. X
  1048. Xproto/regsub.pro:    regsub.c
  1049. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) regsub.c
  1050. X    csh -c mv -f regsub.pro proto
  1051. X
  1052. Xscreen.o:    screen.c  $(SYMS)
  1053. X    cc $(CFLAGS) -hi$(SYMS) screen.c
  1054. X
  1055. Xproto/screen.pro:    screen.c
  1056. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) screen.c
  1057. X    csh -c mv -f screen.pro proto
  1058. X
  1059. Xscript.o:    script.c  $(SYMS)
  1060. X    cc $(CFLAGS) -hi$(SYMS) script.c
  1061. X
  1062. Xproto/script.pro:    script.c
  1063. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) script.c
  1064. X    csh -c mv -f script.pro proto
  1065. X
  1066. Xsearch.o:    search.c  $(SYMS)
  1067. X    cc $(CFLAGS) -hi$(SYMS) search.c
  1068. X
  1069. Xproto/search.pro:    search.c
  1070. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) search.c
  1071. X    csh -c mv -f search.pro proto
  1072. X
  1073. Xstorage.o:    storage.c  $(SYMS)
  1074. X    cc $(CFLAGS) -hi$(SYMS) storage.c
  1075. X
  1076. Xproto/storage.pro:    storage.c
  1077. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) storage.c
  1078. X    csh -c mv -f storage.pro proto
  1079. X
  1080. Xtag.o:    tag.c  $(SYMS) mark.h
  1081. X    cc $(CFLAGS) -hi$(SYMS) tag.c
  1082. X
  1083. Xproto/tag.pro:    tag.c
  1084. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) tag.c
  1085. X    csh -c mv -f tag.pro proto
  1086. X
  1087. Xterm.o:    term.c  $(SYMS) term.h
  1088. X    cc $(CFLAGS) -hi$(SYMS) term.c
  1089. X
  1090. Xproto/term.pro:    term.c
  1091. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) term.c
  1092. X    csh -c mv -f term.pro proto
  1093. X
  1094. Xtermlib.o:    termlib.c  $(SYMS)
  1095. X    cc $(CFLAGS) termlib.c
  1096. X
  1097. Xproto/termlib.pro:    termlib.c
  1098. X    cc -qa -qp $(CFLAGS) -DPROTO termlib.c
  1099. X#the manx compiler generates a wrong prototype for tputs
  1100. X    vim -s termlib.fix termlib.pro
  1101. X    csh -c mv -f termlib.pro proto
  1102. X
  1103. Xundo.o:    undo.c  $(SYMS)
  1104. X    cc $(CFLAGS) -hi$(SYMS) undo.c
  1105. X
  1106. Xproto/undo.pro:    undo.c
  1107. X    cc -qa -qp $(CFLAGS) -DPROTO -hi$(SYMS) undo.c
  1108. X    csh -c mv -f undo.pro proto
  1109. X
  1110. Xcmdtab.h: cmdtab.tab mkcmdtab
  1111. X    mkcmdtab cmdtab.tab cmdtab.h
  1112. X
  1113. Xmkcmdtab: mkcmdtab.o
  1114. X    ln +q -o mkcmdtab mkcmdtab.o -lc16
  1115. END_OF_FILE
  1116. if test 8098 -ne `wc -c <'vim/src/makefile.manx'`; then
  1117.     echo shar: \"'vim/src/makefile.manx'\" unpacked with wrong size!
  1118. fi
  1119. # end of 'vim/src/makefile.manx'
  1120. fi
  1121. if test -f 'vim/src/regsub.c' -a "${1}" != "-c" ; then 
  1122.   echo shar: Will not clobber existing file \"'vim/src/regsub.c'\"
  1123. else
  1124. echo shar: Extracting \"'vim/src/regsub.c'\" \(8431 characters\)
  1125. sed "s/^X//" >'vim/src/regsub.c' <<'END_OF_FILE'
  1126. X/* vi:ts=4:sw=4
  1127. X * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  1128. X *
  1129. X * This is NOT the original regular expression code as written by
  1130. X * Henry Spencer. This code has been modified specifically for use
  1131. X * with the VIM editor, and should not be used apart from compiling
  1132. X * VIM. If you want a good regular expression library, get the
  1133. X * original code. The copyright notice that follows is from the
  1134. X * original.
  1135. X *
  1136. X * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  1137. X *
  1138. X * regsub
  1139. X *
  1140. X *        Copyright (c) 1986 by University of Toronto.
  1141. X *        Written by Henry Spencer.  Not derived from licensed software.
  1142. X *
  1143. X *        Permission is granted to anyone to use this software for any
  1144. X *        purpose on any computer system, and to redistribute it freely,
  1145. X *        subject to the following restrictions:
  1146. X *
  1147. X *        1. The author is not responsible for the consequences of use of
  1148. X *                this software, no matter how awful, even if they arise
  1149. X *                from defects in it.
  1150. X *
  1151. X *        2. The origin of this software must not be misrepresented, either
  1152. X *                by explicit claim or by omission.
  1153. X *
  1154. X *        3. Altered versions must be plainly marked as such, and must not
  1155. X *                be misrepresented as being the original software.
  1156. X *
  1157. X * $Log:        regsub.c,v $
  1158. X * Revision 1.2  88/04/28  08:11:25  tony
  1159. X * First modification of the regexp library. Added an external variable
  1160. X * 'reg_ic' which can be set to indicate that case should be ignored.
  1161. X * Added a new parameter to regexec() to indicate that the given string
  1162. X * comes from the beginning of a line and is thus eligible to match
  1163. X * 'beginning-of-line'.
  1164. X *
  1165. X * Revisions by Olaf 'Rhialto' Seibert, rhialto@cs.kun.nl:
  1166. X * Changes for vi: (the semantics of several things were rather different)
  1167. X * - Added lexical analyzer, because in vi magicness of characters
  1168. X *   is rather difficult, and may change over time.
  1169. X * - Added support for \< \> \1-\9 and ~
  1170. X * - Left some magic stuff in, but only backslashed: \| \+
  1171. X * - * and \+ still work after \) even though they shouldn't.
  1172. X */
  1173. X
  1174. X#include "vim.h"
  1175. X#include "globals.h"
  1176. X#include "proto.h"
  1177. X
  1178. X#ifdef MSDOS
  1179. X# define __ARGS(a)    a
  1180. X#endif
  1181. X
  1182. X/*
  1183. X * Short explanation of the tilde: it stands for the previous replacement
  1184. X * pattern. If that previous pattern also contains a ~ we should go back
  1185. X * a step further... or insert the previous pattern into the current one
  1186. X * and remember that.
  1187. X * This still does not handle the case where "magic" changes. TODO?
  1188. X *
  1189. X * On the other hand, this definition is not so useful. We can always retype
  1190. X * the previous pattern... especially with command history or in files.
  1191. X *
  1192. X * It would seem much more useful to remember the previously substituted
  1193. X * text. There is generally no other way to get at this. This is useful
  1194. X * when you want to do several substitutions on one line, and skip for
  1195. X * the second whatever you changed in the first.
  1196. X *
  1197. X * mool: The last solution is not very useful in combination with the 'g'
  1198. X * option, the replacement pattern would get bigger at each replacement.
  1199. X * I prefer the original VI method, also for compatibility.
  1200. X */
  1201. X#define TILDE
  1202. X#define VITILDE
  1203. X#define CASECONVERT
  1204. X
  1205. X#include <stdio.h>
  1206. X#include "regexp.h"
  1207. X#include "regmagic.h"
  1208. X
  1209. X#ifdef LATTICE
  1210. X# include <sys/types.h>        /* for size_t */
  1211. X#endif
  1212. X
  1213. X#ifndef CHARBITS
  1214. X#define UCHARAT(p)      ((int)*(unsigned char *)(p))
  1215. X#else
  1216. X#define UCHARAT(p)      ((int)*(p)&CHARBITS)
  1217. X#endif
  1218. X
  1219. Xextern char        *reg_prev_sub;
  1220. X
  1221. X#ifdef CASECONVERT
  1222. Xtypedef void *(*fptr) __ARGS((char *, int));
  1223. Xstatic fptr strnfcpy __ARGS((fptr, char *, char *, int));
  1224. X
  1225. Xstatic fptr do_copy __ARGS((char *, int));
  1226. Xstatic fptr do_upper __ARGS((char *, int));
  1227. Xstatic fptr do_Upper __ARGS((char *, int));
  1228. Xstatic fptr do_lower __ARGS((char *, int));
  1229. Xstatic fptr do_Lower __ARGS((char *, int));
  1230. X
  1231. X    static fptr
  1232. Xdo_copy(d, c)
  1233. X    char *d;
  1234. X    int c;
  1235. X{
  1236. X    *d = c;
  1237. X
  1238. X    return (fptr)do_copy;
  1239. X}
  1240. X
  1241. X    static fptr
  1242. Xdo_upper(d, c)
  1243. X    char *d;
  1244. X    int c;
  1245. X{
  1246. X    *d = toupper(c);
  1247. X
  1248. X    return (fptr)do_copy;
  1249. X}
  1250. X
  1251. X    static fptr
  1252. Xdo_Upper(d, c)
  1253. X    char *d;
  1254. X    int c;
  1255. X{
  1256. X    *d = toupper(c);
  1257. X
  1258. X    return (fptr)do_Upper;
  1259. X}
  1260. X
  1261. X    static fptr
  1262. Xdo_lower(d, c)
  1263. X    char *d;
  1264. X    int c;
  1265. X{
  1266. X    *d = tolower(c);
  1267. X
  1268. X    return (fptr)do_copy;
  1269. X}
  1270. X
  1271. X    static fptr
  1272. Xdo_Lower(d, c)
  1273. X    char *d;
  1274. X    int c;
  1275. X{
  1276. X    *d = tolower(c);
  1277. X
  1278. X    return (fptr)do_Lower;
  1279. X}
  1280. X
  1281. X    static fptr
  1282. Xstrnfcpy(f, d, s, n)
  1283. X    fptr f;
  1284. X    char *d;
  1285. X    char *s;
  1286. X    int n;
  1287. X{
  1288. X    while (n-- > 0) {
  1289. X        f = (fptr)(f(d, *s));        /* Turbo C complains without the typecast */
  1290. X        if (!*s++)
  1291. X            break;
  1292. X        d++;
  1293. X    }
  1294. X
  1295. X    return f;
  1296. X}
  1297. X#endif
  1298. X
  1299. X/*
  1300. X - regsub - perform substitutions after a regexp match
  1301. X *
  1302. X * Returns the size of the replacement, including terminating \0.
  1303. X */
  1304. X    int
  1305. Xregsub(prog, source, dest, copy, magic)
  1306. X    regexp           *prog;
  1307. X    char           *source;
  1308. X    char           *dest;
  1309. X    int             copy;
  1310. X    int             magic;
  1311. X{
  1312. X    register char  *src;
  1313. X    register char  *dst;
  1314. X    register char    c;
  1315. X    register int    no;
  1316. X    register int    len;
  1317. X#ifdef CASECONVERT
  1318. X    fptr            func = (fptr)do_copy;
  1319. X#endif
  1320. X#ifdef VITILDE
  1321. X    char           *tmp_sub = NULL;
  1322. X#endif
  1323. X
  1324. X    if (prog == NULL || source == NULL || dest == NULL)
  1325. X    {
  1326. X        emsg(e_null);
  1327. X        return 0;
  1328. X    }
  1329. X    if (UCHARAT(prog->program) != MAGIC)
  1330. X    {
  1331. X        emsg(e_re_corr);
  1332. X        return 0;
  1333. X    }
  1334. X    src = source;
  1335. X    dst = dest;
  1336. X
  1337. X    while ((c = *src++) != '\0')
  1338. X    {
  1339. X        no = -1;
  1340. X        if (c == '&' && magic)
  1341. X            no = 0;
  1342. X        else if (c == '\\')
  1343. X        {
  1344. X            if (*src == '&' && !magic)
  1345. X            {
  1346. X                ++src;
  1347. X                no = 0;
  1348. X            }
  1349. X            else if ('0' <= *src && *src <= '9')
  1350. X            {
  1351. X                no = *src++ - '0';
  1352. X            }
  1353. X#ifdef CASECONVERT
  1354. X            else if (strchr("uUlLeE", *src))
  1355. X            {
  1356. X                switch (*src++)
  1357. X                {
  1358. X                case 'u':    func = (fptr)do_upper;
  1359. X                            continue;
  1360. X                case 'U':    func = (fptr)do_Upper;
  1361. X                            continue;
  1362. X                case 'l':    func = (fptr)do_lower;
  1363. X                            continue;
  1364. X                case 'L':    func = (fptr)do_Lower;
  1365. X                            continue;
  1366. X                case 'e':
  1367. X                case 'E':    func = (fptr)do_copy;
  1368. X                            continue;
  1369. X                }
  1370. X            }
  1371. X#endif
  1372. X        }
  1373. X#ifdef TILDE
  1374. X        if ((c == '~' && magic) || (c == '\\' && *src == '~' && !magic))
  1375. X        {
  1376. X            if (c == '\\')
  1377. X                ++src;
  1378. X            if (reg_prev_sub)
  1379. X            {
  1380. X# ifdef VITILDE
  1381. X                /*
  1382. X                 * We should now insert the previous pattern at
  1383. X                 * this location in the current pattern, and remember that
  1384. X                 * for next time... this is very painful to do right.
  1385. X                 */
  1386. X                if (copy)
  1387. X                {
  1388. X                    char           *newsub;
  1389. X                    int                len;
  1390. X
  1391. X#ifdef DEBUG
  1392. X                    printf("Old ~: '%s'\r\n", reg_prev_sub);
  1393. X#endif
  1394. X                    /* length = len(current) - 1 + len(previous) + 1 */
  1395. X                    newsub = alloc((unsigned)(strlen(source) + strlen(reg_prev_sub)));
  1396. X                    if (newsub)
  1397. X                    {
  1398. X                            /* copy prefix */
  1399. X                        len = (src - source) - 1;    /* not including ~ */
  1400. X                        if (!magic)
  1401. X                            len--;                    /* back off \ */
  1402. X                        strncpy(newsub, source, (size_t)len);
  1403. X                            /* interpretate tilde */
  1404. X                        strcpy(newsub + len, reg_prev_sub);
  1405. X                            /* copy postfix */
  1406. X                        strcat(newsub + len, src);
  1407. X
  1408. X                        if (tmp_sub)
  1409. X                            free(tmp_sub);
  1410. X                        tmp_sub = newsub;
  1411. X                        source = newsub;
  1412. X                        src = newsub + len;
  1413. X                    }
  1414. X#ifdef DEBUG
  1415. X                    printf("New  : '%s'\r\n", newsub);
  1416. X                    printf("Todo : '%s'\r\n", src);
  1417. X#endif
  1418. X                }
  1419. X                else
  1420. X                {
  1421. X                    dst += regsub(prog, reg_prev_sub, dst, copy, magic) - 1;
  1422. X                }
  1423. X# else /* no VITILDE */
  1424. X                if (copy)
  1425. X                {
  1426. X#  ifdef CASECONVERT
  1427. X                    func = strnfcpy(func, dst, reg_prev_sub, ((unsigned)~0)>>1);
  1428. X#  else
  1429. X                    (void) strcpy(dst, reg_prev_sub);
  1430. X#  endif
  1431. X                }
  1432. X                dst += strlen(reg_prev_sub);
  1433. X# endif /* def VITILDE */
  1434. X            }
  1435. X        }
  1436. X        else
  1437. X#endif  /* def TILDE */
  1438. X        if (no < 0)           /* Ordinary character. */
  1439. X        {
  1440. X            if (c == '\\')
  1441. X                c = *src++;
  1442. X            if (copy)
  1443. X            {
  1444. X#ifdef CASECONVERT
  1445. X                func = (fptr)(func(dst, c));
  1446. X                            /* Turbo C complains without the typecast */
  1447. X#else
  1448. X                *dst = c;
  1449. X#endif
  1450. X            }
  1451. X            dst++;
  1452. X        }
  1453. X        else if (prog->startp[no] != NULL && prog->endp[no] != NULL)
  1454. X        {
  1455. X            len = prog->endp[no] - prog->startp[no];
  1456. X            if (copy)
  1457. X            {
  1458. X#ifdef CASECONVERT
  1459. X                func = strnfcpy(func, dst, prog->startp[no], len);
  1460. X#else
  1461. X                (void) strncpy(dst, prog->startp[no], len);
  1462. X#endif
  1463. X            }
  1464. X            dst += len;
  1465. X            if (copy && len != 0 && *(dst - 1) == '\0') { /* strncpy hit NUL. */
  1466. X                emsg(e_re_damg);
  1467. X                goto exit;
  1468. X            }
  1469. X        }
  1470. X    }
  1471. X    if (copy)
  1472. X        *dst = '\0';
  1473. X
  1474. X#ifdef TILDE
  1475. X# ifdef VITILDE
  1476. X    /*
  1477. X     * Save the substitute string for future ~.
  1478. X     * if reg_prev_sub == source, then regsub was called with reg_prev_sub,
  1479. X     * so we don't have to save it again.
  1480. X     */
  1481. X    if (copy && reg_prev_sub != source)
  1482. X    {
  1483. X        free(reg_prev_sub);
  1484. X        if (tmp_sub)
  1485. X            reg_prev_sub = tmp_sub;        /* tmp_sub == source */
  1486. X        else
  1487. X            reg_prev_sub = strsave(source);
  1488. X    }
  1489. X# else
  1490. X    if (copy) {
  1491. X        free(reg_prev_sub);
  1492. X        reg_prev_sub = strsave(dest);
  1493. X    }
  1494. X# endif
  1495. X#endif
  1496. X
  1497. Xexit:
  1498. X    return (int)((dst - dest) + 1);
  1499. X}
  1500. END_OF_FILE
  1501. if test 8431 -ne `wc -c <'vim/src/regsub.c'`; then
  1502.     echo shar: \"'vim/src/regsub.c'\" unpacked with wrong size!
  1503. fi
  1504. # end of 'vim/src/regsub.c'
  1505. fi
  1506. echo shar: End of archive 4 \(of 23\).
  1507. cp /dev/null ark4isdone
  1508. MISSING=""
  1509. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ; do
  1510.     if test ! -f ark${I}isdone ; then
  1511.     MISSING="${MISSING} ${I}"
  1512.     fi
  1513. done
  1514. if test "${MISSING}" = "" ; then
  1515.     echo You have unpacked all 23 archives.
  1516.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1517. else
  1518.     echo You still need to unpack the following archives:
  1519.     echo "        " ${MISSING}
  1520. fi
  1521. ##  End of shell archive.
  1522. exit 0
  1523. -------------8<----------------8<----------------8<---------------8<--------
  1524. Bram Moolenaar                             | DISCLAIMER:  This  note  does  not
  1525. Oce Nederland B.V., Research & Development | necessarily represent the position
  1526. p.o. box 101, 5900 MA  Venlo               | of  Oce-Nederland  B.V.  Therefore
  1527. The Netherlands        phone +31 77 594077 | no liability or responsibility for
  1528. UUCP: mool@oce.nl        fax +31 77 595450 | whatever will be accepted.
  1529.  
  1530. exit 0 # Just in case...
  1531.