home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / vmsnet / tpu / 606 < prev    next >
Encoding:
Text File  |  1993-01-25  |  14.9 KB  |  413 lines

  1. Newsgroups: vmsnet.tpu
  2. Path: sparky!uunet!stanford.edu!agate!spool.mu.edu!uwm.edu!linac!unixhub!umahe1.slac.stanford.edu!fairfield
  3. From: fairfield@umahe1.slac.stanford.edu
  4. Subject: KHF$FORMAT.2-OF-3, V2.2  (EVE Justify/Unjustify)
  5. Message-ID: <1993Jan25.150957.1@umahe1.slac.stanford.edu>
  6. Lines: 402
  7. Sender: news@unixhub.SLAC.Stanford.EDU
  8. Organization: Stanford Linear Accelerator Center
  9. Date: Mon, 25 Jan 1993 23:09:57 GMT
  10.  
  11. -+-+-+-+-+-+-+-+ START OF PART 2 -+-+-+-+-+-+-+-+
  12. Xend\1D08;
  13. X
  14. Xif`20get_info`20(\4807_buffer,`20"system")
  15. Xthen
  16. X\4B04eve$message`20(EVE$_CANTSYSTEMBUF);
  17. X\2608learn_abort;\1505return`20(FALSE);
  18. Xendif;
  19. X
  20. X!`20Can't`20fill`20an`20empty`20\8406`20-`20avoid`20additional`20checks`20lat
  21. V\2003on\C405beginning_of\C810)`20=`20end\1A14\D81CNOFILL\D134if`20not`20eve$de
  22. Vclare_intention`20(eve$k_action_format)\880A\541Bdo_justify\D103tpu$k_unspecif
  23. Vied`09`09`09`09`09!`20KHF
  24. Xthen\0F05\130A\5B04\400B:=`20FALSE;`09\240B\6B06\390F\7907fill_edit`20\7B38
  25. V\420A:=`20\8B0A\8223position`20(TEXT);
  26. Xsaved_mark`20:=`20\0805(NONE);
  27. X
  28. X!`20Find`20beginning`20of`20paragraph.`20`20P\0C08`20breaks`20are`20blank`20li
  29. Vnes,`20DOCUMENT`20tags,
  30. X!`20runoff`20commands,`20FF`20(hard`20FF),`20or`20FF+NL`20(soft`20FF)\6703If
  31. V`20on`20a`20\7B09\6F06
  32. X!`20other`20than\1F03\6C0C\4904\6B0E\9205,`20then`20do`20preceding`20\D10A
  33. X
  34. Xposition`20(LINE_BEGIN);
  35. Xif`20search_quietly`20(ANCHOR`20+`20\290A`20+
  36. X`09`09`20`20`20(("."`20`7C`20"<")\2103any`20(eve$x_\9206_characters)),
  37. X\3405FORWARD)`20<>`200
  38. Xthen
  39. X`20\1703!`20on`20\D825go`20to`20next\1105\3E05\CE0FEND);
  40. X\1904move_horizontal`20(1\1907start_paragraph`20:=`20mark`20(NONE);
  41. Xelse\2905loop
  42. X`09!`20stop`20at`20\0704of`20buffer
  43. X`09exitif`20\3C0B`20=`20beginning_of`20(current_buffer);
  44. X`09move_vertic\9404-1\1504\C40FBEGIN);`20`20!`20incase`20set(column_m\410C,on)
  45. V\A20Ca`20break`20and`20move`20to\EF06\B804next`20line
  46. X`09if`20eve$paragraph_break
  47. X`09then
  48. X`09\FC04\930FEND);
  49. X`09\1A04move_horizont\C404\C305\1A04exitif;
  50. X`09endif;
  51. X\1405ndloop\0D06start_p\7608`20:=`20mark`20(NONE);
  52. X\790Esaved_mark);
  53. X\5307
  54. X!`20find`20end\D304\4B09
  55. X
  56. Xloop\410FLINE_BEGIN)\8D07xitif\740C`20=\4B04_of`20(current_buffer)\320Deve$
  57. V\6C09_break\2006move_vertical`20(1\AA06\F206
  58. Xif`20\F210\F10D
  59. Xthen
  60. X\6705ve$message`20(EVE$_NOFILL\8607\D30Asaved_mark\A108ve$learn_abort;\1505ret
  61. Vurn`20(FALSE);
  62. Xelse
  63. X\AF09horizont\B104-1\4807stop\A80B:=\A90C;
  64. X
  65. X\2404!`20Now`20fill`20the`20p\2E08
  66. X
  67. X\1F05the_right_margin`20:=`20get_info`20(current_buffer,`20"r\2B0B")\6307if
  68. V\D205$x_word_wrap_indent`20`7B\420E`7D`20<>`20tpu$k_unspecified\8908n
  69. X`09the_left\8E0B\5B28;
  70. X\4704else\4715\D51B\2A0B");
  71. X\4705ndif\DF11paragraph_\DF3B\3B07\DA0A\5621
  72. X`09`09`20\4404`20-\4704\D90C\F410\5C0A\EF28`20-\5E09\5C16ndif;
  73. X\0C05fill_range\6204create\1007(start\CB0A,`20stop\100CNONE);\4906if`20do_
  74. V\4F05edit`09`09`09`09\0303!`20KHF
  75. X\8A07n`09\160D`09khf$f\3108`20(\8B0A);\270C!`20`20Replace\4504`20previous`20li
  76. Vne`20by:\2B0E\DF03\4E0F,`20COMPRESS,`20TRIM,`20OFF)\6304\360Ato`20suppress`20e
  77. Vxtra`20space`20following`20sentences...\D80Celse\D80F\8112TRIM_LEADING\7F07
  78. V\3D06ndif\ED06\3F09\1905fill\430Eeve$x_fill_separators,
  79. X`09`20`20the_left_margin,`20the_righ\120Eindent);
  80. X\6105if`20do_justify`09\800C\1E04then`09\D50Ekhf$\2F07\990C);\3B0F\D319positio
  81. Vn`20(stop_paragraph);
  82. X\3805ve$show_first_line;
  83. X\4D06
  84. Xreturn`20(TRUE);
  85. X
  86. Xendprocedure;\6403eve$fill_\5509
  87. X
  88. X`0C
  89. X!`20EVE$FORMAT.TPU\9307Page`2012
  90. X
  91. Xp\4308\400Arange\B604Fill`20a`20range\9F05(range_arg\AF06`20do_justify,\3105la
  92. Vg`20whether`20to`20right-j\2206`20the\4C07\8204!`20\5003DEFAULT`20=`20FALSE)
  93. V\5609fill_edit)`09\5813callKhf$Fill_Edit`20befor\590Afill\5E0C\A80A)
  94. X
  95. Xlocal`09the\EA06,
  96. X`09start_mark,\4105Start`20of`20\B309\7604fill
  97. X`09the_right_margin,\1306left\120Eindent\5E06tus,
  98. X`09old_\3B0Fend_mark;`09\7804Marker`20for`20end\8104range
  99. X
  100. Xon_error
  101. X`20\DD03`5BTPU$_CONTROLC`5D:
  102. X`09eve$$release_scratch_buffer;
  103. X`09if`20\7A10`20<>`200
  104. X\A704n
  105. X`09`20\5403set`20(RIGHT_MARGIN,`20eve$$x_\4F0E,`20\4B10);\C605if\0804ve$learn_
  106. Vabort;
  107. X`09\0807\B705OTHERWISE`5D\B38Aendon_error;
  108. X
  109. Xif`20not`20eve$declare_intention`20(eve$k_action_format)
  110. Xthen
  111. X\8F04return`20(FALSE);
  112. Xendif;
  113. X\5404do_justify`20=`20TPU$K_UNSPECIFIED`09`09`09`09`09!`20KHF
  114. Xthen\0F05\130A\5B04\400B:=`20FALSE;`09\240B\6B06\390F\7907fill_edit`20\7B38
  115. V\420A:=`20\8B0A\8223the_range\3A04range_arg;
  116. Xif`20\1B0A<>`200
  117. Xthen\7005if`20get_info`20(\2509,`20"type")`20=`20ARRAY
  118. X\2C04then
  119. X\6C03box`20selection
  120. X`09if`20not`20eve$$reserve_scratch_buffer
  121. X`09t\3B05\4504eve$message`20(EVE$_ILLSCRATCHRES);
  122. X\2705return`20(FALSE);
  123. X`09\F206
  124. X`09erase`20(eve$$x_\680E\2804position\CE0B`20`7B1`7D\1B04!`20cut`20\BE04to`20s
  125. V\3A06`20b\A207eve$$box_cut`20\3C0A,`20\6A15,
  126. X`09`09\A704`20`20TRUE,`09!`20delete`20the\6204\1F09\C007\2103no`20m\F806s
  127. X\0F03set`20up\3005\8B0E\9D04be`20filled`20\0D04ox's`20width
  128. X`09old_right_margin`20:=`20get_info`20(\AC16`20"\320C");
  129. X`09if`20length\EB0B`20`7B1`7D)`20=`201
  130. X`09then`09!`20avoid`20left=right=1
  131. X`09\D504\BC04(RIGHT_MARGIN,`20e\7A162);
  132. X`09else\3930\9E16\4E05ndif\0804ve$trim\3307\FD17\3204position\231Bif\8905fill
  133. V\6F07(creat\7D08(BUFFER_BE\B505\0E07END),`09!`20KHF
  134. X`09`09\E204do_justify,`20do_fill_edit)`09`09`09\2807then
  135. X\2C04`20!`20Now`20overstrike`20the`20filled`20s\A306`20b\DD06over`20original
  136. V`20box.\4308This`20can't`20add`20more`20lines`20since`20no`20text`20that`20exc
  137. Veeds\6904\4008box`20right`20side`20is`20ever`20wrapped`20down\6C07position`20(
  138. Vbeginning_of`20(the_range`20`7B1`7D));
  139. X\2E05eve$$box_o\E00A(eve$$x_\DD07_buffer\320Cclear_message;\1806status`20:=
  140. V`20TRUE;
  141. X`09else\1B10FALS\1C05ndif\0804ve$$release\700F;
  142. X`09set`20(RIGHT_MARGIN,\B006\9B10,`20old_right_margin\AD04return`20(\7E06);
  143. X\BE05\7906\0C05!`20standard`20selection
  144. X\1A05if`20beginning_of`20(the_range)`20<=\4504\160F\3605then
  145. X`09start_mark`20:=`20\4718\FC04nd_\2708\5212\AF07lse
  146. X\2A0D\511B\7A0E\5319ndif\0B06\1B09\30040;\FC06position`20(\500A);
  147. X\1C05!`20Move`20s\690Aif`20on`20an`20DOCUMENT`20tag`20or`20runoff`20command
  148. V`20line\4406if`20search_quietly`20(eve$pattern_skip_paragraph_break,
  149. X`09`09\3B04\0303FORWARD)`20<>`200
  150. X\C507n
  151. X`09!`20skip`20past`20\8B0C,`20\8913,`20ff's
  152. X`09\EB0ALINE_END);
  153. X`09move_horizontal`20(1\1604\F40B:=`20m\0804(NONE);
  154. X\8604endif;\E206loop`09`09\9303Find`20the`20pa\D007`20bounds`20for`20all`20
  155. V\1909s
  156. X`09loop
  157. X`09\4104\9816\6705xitif`20\7F0B`20=\7C04_of`20(current_buffer)\3307\CF16\4D17>
  158. V`20end_mark\240Eeve$\AC09_break;
  159. X`09endloop;
  160. X`09\6511-1);
  161. X
  162. X`09\5F19
  163. X`09then\EF10\1E08\A204endif\4404the_right_margin`20:=`20get_info`20\F50F,`20"r
  164. V\2B0B")\8507eve$$x_word_wrap_indent`20`7B\3F0E`7D`20<>`20tpu$k_unspecified
  165. V\AC0Cthe_left\8C0B\5C28\D404lse
  166. X\4818\D41B\2A0B");
  167. X`09endif\DB0Eparagraph_\DB3C\3C07\D60A\5721
  168. X`09`09`09`20`20-`20\D10F\ED11\5A0A\E828`20-\5C06\5A13\FF08the_range`20:=`20cre
  169. Vate\1007(start_mark,`20mark`20(NONE),`20NONE)\3D04if`20do_fill_edit`09\6D03
  170. V\0303!`20KHF
  171. X\5A04n`09\130E\CA04khf$\3209`20(\8009);\2A10!`20`20Replace\C104`20previous`20l
  172. Vine`20by:\2F12`20`20\550F,`20COMPRESS,`20TRIM,`20OFF)\6A04\390Eto`20suppress
  173. V`20extra`20space`20following`20sentences...\3E09else\E313\8511TRIM_LEADING
  174. V\8307
  175. X`09endif\F506\3F09
  176. X`09fill\3C0Deve$x_fill_separators,`20the_left_margin,\7A06\CA03he_right\1908
  177. V\1205indent);
  178. X
  179. X`09if`20do_justify`09\BC0Dthen`09\CF12khf$\3007\9A0B);\280C\CD16loop\1006Skip
  180. V\8A04`20inter-paragraph`20break;\6906position`20(LINE_END);
  181. X\1A05move_horizontal`20(1\1A08exitif`20not`20eve$\5909_b\5907endloop;
  182. X`09start_mark`20:=`20\0805(NONE)\2604\4706\230B>=`20end_mark;
  183. X\6A05\4908\AB0E\2508);
  184. X!!!!!!!!\0808\1010\2020\0A0A\4B1B`20screen`20manager`20issue`20\4B1B\AF04updat
  185. Ve`20(current_window\B368\4B31
  186. Xelse
  187. X\B904eve$message`20(EVE$_SELFIRST);
  188. X\2108learn_abort;\1505return`20(FALSE);
  189. Xendif;
  190. Xeve$clear_m\5306;
  191. X\2A08TRUE);
  192. X
  193. Xendprocedure;`09!\5F05fill_range
  194. X
  195. X`0C
  196. X
  197. X!--------\0808\0C0CNew`20EVE/KHF`20P\4908s-\321B
  198. X
  199. X
  200. XP\2908`20Eve_Justify`09`09!`20Fill`20and`20j\1406`20a`20range`20or`20paragraph
  201. V
  202. X!`09`20`20\510DLocal`09the_selection,
  203. X`09the_status;
  204. X
  205. XOn_Error
  206. X`20`20`20`20`5BOTHERWISE`5D:
  207. XEndo\1D07;
  208. X
  209. XIf`20Get_Info`20(CURRENT_BUFFER,`20"system")
  210. XThen
  211. X\4B04Eve$Message`20(EVE$_CANTSYSTEMBUF);\2609Learn_Abort;\1505Return`20(FALSE)
  212. V;
  213. XEndif;
  214. X
  215. X\C80D`20:=`20Eve$Se\1108\3006,,,`20eve$x_\2B06_remove_flag,,`20TRUE);
  216. XIf`20(t\4F0D<>`200\BF0BSet`20(TIM\DE04ON,`20"Justifying..."\BF07the_status`20
  217. V\8F07Fill_Ran\F604\610D\7B09\5E11FF);
  218. XElse
  219. X\7941Paragraph`20(T\6E1Dndif;
  220. XReturn\A907tatus);
  221. X
  222. XEndprocedure;`09`09!`20Eve_J\8606
  223. X
  224. X
  225. X
  226. XPr\1D07\190C\7B0A
  227. X!`09`20`20------\0606\0909
  228. XLocal`09t\6E09;
  229. X
  230. X\EF22\EB29\E712\E032\C70B\E918Range
  231. X\E515\E106`20t\E10COn_Error
  232. X`20`20`20`20`5BOTHERWISE`5D:
  233. XEndon\1D06;
  234. X
  235. XIf`20Get_Info`20(CURRENT_BUFFER,`20"system")
  236. XThen\4B05Eve$Message`20(EVE$_CANTSYSTEMBUF);
  237. X\2608Learn_Abort;\1505Return`20(FALSE);
  238. XEndif;
  239. X
  240. XSet`20(TIM\7204ON,`20"\F307ing...");
  241. X\DA0A`20:=`20Eve$Fill_Ran\8605ve$Selectio\5F08,,,
  242. X`09`09`09`09`09`20\7A04eve$x_select_remove_flag,,TRUE),\2B0BTRUE);
  243. X\940DFF);
  244. X\BE08\8C0A);
  245. X
  246. XEndprocedure;`09`09!`20Eve_J\C006\A006
  247. X
  248. X`0C
  249. XPr\2307\1F05Unjustify\3004Fill_edit`20and`20fill`20a`20r\D905or`20paragraph
  250. X!\9F03-------------
  251. X
  252. XLocal`09the_s\FE08;
  253. X
  254. XOn_Error
  255. X`20\CE03`5BOTHERWISE`5D:
  256. XEndon\1D06;
  257. X
  258. XIf`20Get_Info`20(CURRENT_BUFFER,`20"system")
  259. XThen\4B05Eve$Message`20(EVE$_CANTSYSTEMBUF);\2609Learn_Abort;\1505Return`20(FA
  260. VLSE);
  261. XEndif;
  262. X
  263. X\BB0D`20:=`20Eve$Se\1108\3006,,,`20eve$x_\2B06_remove_flag,,`20TRUE);
  264. XIf`20(t\4F0D<>`200\BF0B\8408Eve$Fill_Ran\CA04\350D,`20\7306\5606);
  265. XElse
  266. X\3F15Paragraph`20\A707\340A\DE07Endprocedure;`09`09!`20Eve_Unjustify
  267. X
  268. X
  269. X
  270. XPr\1F07\1B0E\5C0A
  271. X!`09`20`20------\0606\0B0B
  272. X
  273. X\982F\911F\760B\9A1ARange
  274. X\9617
  275. X
  276. XOn_Error\9B05`5BOTHERWISE`5D:
  277. XEndon\1D06;
  278. X
  279. XIf`20Get_Info`20(CURRENT_BUFFER,`20"system")
  280. XThen
  281. X\4B04Eve$Message`20(EVE$_CANTSYSTEMBUF);
  282. X\2608Learn_Abort;\1505Return`20(FALSE);
  283. XEndif;
  284. X
  285. X\1808Eve$Fill\DB06\1006Selectio\3708,,,`20eve$x_select_remove_flag,,
  286. X`09`09`09`09`20\6C04`20`20TRUE),`20FALSE,\0E06);
  287. X
  288. XEndprocedure;`09`09!`20Eve_Unjustify\7B06
  289. X
  290. X`0C
  291. X!+
  292. X!\4604his`20\3109`20loops`20through`20all`20lines`20in`20the`20ra\B904provided
  293. V`20and
  294. X\4504right-\6306ies`20each`20so`20that\3805last`20word`20in`20\1E05line`20is
  295. V`20flush`20with\4A05\6505ight`20margin.
  296. X!\1804Notes:
  297. X!
  298. X!`09The`20EVE`20internal\BD0BEve$End_of_Word,`20foun\7305EVE$FORMAT.TPU,
  299. X!`09Version`20V02-100b,`20is`20used`20here`20to`20fill`20khf$x_word_array
  300. V\AA05`20MARKs
  301. X!`09corresponding`20to`20\BF04beginning`20of\EC06\F905(but\2005first)\9604a
  302. V`20line.
  303. X!`09Changes\4306at\D40Bmust`20be`20track\9E07.
  304. X!
  305. X!`09Khf$Justify`20expects`20the`20range_arg`20parameter`20to`20be`20a`20typica
  306. Vl`20para-
  307. X!`09graph`20range`20as`20defined`20in,`20e.g.,`20Eve_Fill_Paragraph,`20with
  308. V\6A05end
  309. X!`09of`20\7709`20a\E406LINE_END`20o\1D06last`20line\F704\1104paragraph\FE04Th
  310. V\220Ds`20NOT`20justified.\EE05Four\BF04es\5404space-fillin\E804tterns`20are
  311. V`20used:`20from`20\6904center`20of
  312. X!`09\8A05\6304toward`20either`20end,`20\3105both`20ends`20\2207\420A\2206
  313. V\4507right`20t\240Abeginn\8C04\F108ine,`20and`20\8A09left\4004\360Aend\300C.
  314. V`20`20The`20type\1704fill\DB0Aused`20may`20be
  315. X!`09restricted`20by`20limiting`20\9C05ange\5708variable\4D05_type,`20e.g.,
  316. X!`09at\2305point`20it`20is`20incremented`20followi\5607Endcase`20statement.
  317. X!`09\AE04order`20\AF1C`20alter\AA06simply`20changing
  318. X!`09\5D04\5A05labels.
  319. X!
  320. X!`20`20Acknowledgements:
  321. X!
  322. X!`09Wri\E705\DD05is`20procedure`20was`20motiva\BB04by`20previous`20justify
  323. V\6D06routines`20written`20by`20Hunter`20Goatley`20<goathunter@wkuvx1.bitnet>
  324. V`20and
  325. X!`09by`20Ken`20Selvia`20<ucs_kas@shsu\2A08.`20`20In`20particular,`20I`20made
  326. V`20use`20of
  327. X!`09\7506's`20idea`20of`20alterna\DF05the`20fill`20pattern`20from`20left`20to
  328. V`20right
  329. X!`09on`20successive`20li\D704(and`20added`20center-out\B804`20outside-in),`20
  330. V\C906Ken\8108to`20\9B04an`20array\9104\8504words`20on`20each\6305,`20retrieved
  331. V`20by
  332. X!`09Eve$Current_Word`20(although`20here\F903have`20used`20Eve$End_of_Word).
  333. V`20`20Both\CC04\7006earlier`20procedures`20implemented`20appending`20a`20secon
  334. Vd`20space
  335. X!`09follow\1B08ntence`20terminator,`20but`20\8C07mo\BE04that\F804the
  336. X!`09call\3E04\7A09.
  337. X!
  338. X!`20`20Author/Date:`09`09K.H.`20Fairfield,`09`0922-DEC-1992
  339. X\2E03\0404Revisions:\1208\3710`2025-JAN-1993:`20Intialization`20of`20"the_fill
  340. V"`20was\4105`09`09`09`20`20`20`20`20incorrect`20if`20"nbig\2405`20zero`20and
  341. X\2D0Csmall_fill\2405greater`20than`201`20space.
  342. X!\310BThis`20gave`20one`20too`20many\2A06s`20per
  343. X\2E03\2A05\0707\0E0E\0808gap`20and`20the`20last`20word`20of`20\1104sen-\4726te
  344. Vnce`20extended`20past`20\4204right`20margin.
  345. X!--
  346. X
  347. XProcedure`20Khf$Justify
  348. X!`09`20`20-----------
  349. X`09`20`20(range_arg)`09`09!`20Range\9A04lines`20to`20j\3C07
  350. XLocal`09saved_position,`20!`20Save\8705current`20\1D08
  351. X`09\2D06mode,`09\2913mode\6C04\1404buffer
  352. X`09the_end\3004Mark`20at`20end_o\2606range\2506rmarg\2704Ri\FE0A`20value\2104i
  353. Vs_mark\2104Just`20a\2204k...
  354. X`09last_column,\1F03Column`20number`20\FB04ast`20character`20in`20a`20line
  355. X`09fill_typ\CF05Fill`20pattern,`20one\3C04four`20types
  356. X`09nspaces\2C04Nu\5D08fill`20spaces`20required
  357. X`09sm_size\2B1Afor`20small`20gaps
  358. X`09nbig,`09\2F0D"big"`20\1F07small\2110small\2308the_fill\7404String\740F
  359. V\9604all\251E\9911indx\7805Index`20into`20word_array
  360. X\20051,indx2,\2606ic\4707center-out`20and`20outside-in`20filling
  361. X`09ngaps\D70Fgaps,`20equals`20words`20in`20\740A`20less`20one
  362. X`09temp;\3E04Just`20a`20temporary`20variable...
  363. X
  364. XOn_Error
  365. X`20`20`20`20`5BOTHERWISE`5D:
  366. XEndon\1D06;
  367. X
  368. X
  369. Xsaved_position`20:=`20Mark`20(NONE);\1F07mode\1B04Get_Info`20(CURRENT_BUFFER,
  370. V`20"mode");
  371. Xthe_rmarg`20\311Fright_margin\3908end`20\B003:=`20End_Of`20(range_arg);
  372. Xfill_type`20\22041;
  373. X
  374. X!+
  375. X!`20`20Create`20khf$x_word_array`20on`20first`20use.`20`20Should`20be`20big
  376. V`20enough`20for`20most`20lines;\4F04will\2604extended\4804the`20fly`20otherwis
  377. Ve.
  378. X!-
  379. XIf`20(\7611=`20TPU$K_UNSPECIFIED)
  380. XThen
  381. X`20`20\2D11:=`20\BE06_A\1005(40);
  382. XEndif\DF09Do`20a`20TRIM_TRAILING`20edit`20on`20range_arg`20since`20there`20co
  383. V\E807some\4204leftovers`20from\CD05Fill`20following`20Khf$Fill_Edit.
  384. X!-
  385. XEdit`20(\6109,`20\820D,`20OFF);
  386. XSet`20(INSERT,`20CURRENT_BUFFER);
  387. XPosition`20(Beginning_Of`20\560A))\E609Start`20loop`20over`20lines`20withi
  388. V\E80B.
  389. X!-
  390. XLoop
  391. X`20`20`20`20P\6009LINE_END);
  392. X\1904this_mark`20:=`20Mark`20(NONE)\1E06Exitif`20(\260A>=`20the_end)\2306last_
  393. Vcolumn`20:=`20Get_Info\340B,`20"offse\2708")`20-`201\3E06If`20(\420C<`20the_rm
  394. Varg)\2105Then
  395. X`09\BF0FBEGIN);
  396. X`09nspaces`20:=`20\3809\5D03\520B;
  397. X`09indx`09:=`200;
  398. X!+
  399. X!`20`20Loop`20over`20words`20in`20the`20current`20line,`20fill`20khf$x_word_ar
  400. Vray`20with`20marks
  401. X\4903corresponding`20to`20\4704beginn\1104each\6305`20except`20\1F04first.`20
  402. V`20Note`20that\4904Eve$End_of_W\3004po\F006s`20\5507_start_`20of\0F06next_`20w
  403. Vord.
  404. X!-
  405. X`09Loop
  406. +-+-+-+-+-+-+-+-  END  OF PART 2 +-+-+-+-+-+-+-+-
  407. -- 
  408.  Dr. Kenneth H. Fairfield    |  Internet: Fairfield@Slac.Stanford.Edu
  409.  SLAC, P.O.Box 4349, MS 98   |  DECnet:   45537::FAIRFIELD (45537=SLACVX)
  410.  Stanford, CA   94309        |  BITNET    Fairfield@Slacvx
  411.  ----------------------------------------------------------------------------
  412.  These opinions are mine, not SLAC's, Stanford's, nor the DOE's...
  413.