home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / vmsnet / tpu / 541 < prev    next >
Encoding:
Text File  |  1992-12-21  |  14.5 KB  |  424 lines

  1. Newsgroups: vmsnet.tpu
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!unixhub!slacvx.slac.stanford.edu!fairfield
  3. From: fairfield@slacvx.slac.stanford.edu
  4. Subject: KHF$FORMAT.1-OF-3  (Eve Justify procedures)
  5. Message-ID: <1992Dec18.154126.1@slacvx.slac.stanford.edu>
  6. Lines: 413
  7. Sender: news@unixhub.SLAC.Stanford.EDU
  8. Organization: Stanford Linear Accelerator Center
  9. Date: Fri, 18 Dec 1992 23:41:26 GMT
  10.  
  11. $! ------------------ CUT HERE -----------------------
  12. $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))'
  13. $!
  14. $! This archive created by VMS_SHARE Version 8.1
  15. $!   On 18-DEC-1992 15:37:53.35   By user FAIRFIELD   
  16. $!
  17. $! The VMS_SHARE software that created this archive
  18. $!    was written by  Andy Harper, Kings College London UK
  19. $!    -- September 1992
  20. $!
  21. $! Credit is due to these people for their original ideas:
  22. $!    James Gray, Michael Bednarek 
  23. $!
  24. $!+ THIS PACKAGE DISTRIBUTED IN 3 PARTS, TO KEEP EACH PART
  25. $!  BELOW 30 BLOCKS
  26. $!
  27. $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
  28. $! AND EXECUTE AS A COMMAND PROCEDURE  (  @name  )
  29. $!
  30. $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
  31. $!       1. KHF$FORMAT.TPU;8
  32. $!
  33. $set="set"
  34. $set symbol/scope=(nolocal,noglobal)
  35. $f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID"))
  36. $e="write sys$error  ""%UNPACK"", "
  37. $w="write sys$output ""%UNPACK"", "
  38. $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!"
  39. $ ve=f$getsyi("version")
  40. $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start
  41. $ e "-E-OLDVER, Must run at least VMS 4.4"
  42. $ v=f$verify(v)
  43. $ exit 44
  44. $unpack: subroutine ! P1=filename, P2=checksum, P3=attributes
  45. $ if f$search(P1) .eqs. "" then $ goto file_absent
  46. $ e "-W-EXISTS, File ''P1' exists. Skipped."
  47. $ delete 'f'*
  48. $ exit
  49. $file_absent:
  50. $ if f$parse(P1) .nes. "" then $ goto dirok
  51. $ dn=f$parse(P1,,,"DIRECTORY")
  52. $ w "-I-CREDIR, Creating directory ''dn'"
  53. $ create/dir 'dn'
  54. $ if $status then $ goto dirok
  55. $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped."
  56. $ delete 'f'*
  57. $ exit
  58. $dirok:
  59. $ w "-I-UNPACK, Unpacking file ''P1'"
  60. $ n=P1
  61. $ if P3 .nes. "" then $ n=f
  62. $ if .not. f$verify() then $ define/user sys$output nl:
  63. $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='n'
  64. PROCEDURE GetHex LOCAL x1,x2;x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,
  65. ERASE_CHARACTER(1))-1;RETURN 16*x1+x2;ENDPROCEDURE;
  66. PROCEDURE SkipPartsep LOOP EXITIF INDEX(ERASE_LINE,"-+-+-+-+-+-+-+-+")=1;
  67. ENDLOOP;ENDPROCEDURE;
  68. PROCEDURE ExpandChar CASE CURRENT_CHARACTER FROM ' ' TO 'z' ["`"]
  69. :ERASE_CHARACTER(1);COPY_TEXT(ASCII(GetHex));[" "]:ERASE_CHARACTER(1);[
  70. OUTRANGE,INRANGE]:MOVE_HORIZONTAL(1);ENDCASE;ENDPROCEDURE;
  71. PROCEDURE ProcessLine s:=ERASE_CHARACTER(1);LOOP EXITIF CURRENT_OFFSET>=LENGTH(
  72. CURRENT_LINE);ExpandChar;ENDLOOP;IF s="V" THEN APPEND_LINE;ENDIF;ENDPROCEDURE;
  73. PROCEDURE AdvanceLine MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);
  74. ENDPROCEDURE;PROCEDURE Decode POSITION(BEGINNING_OF(b));LOOP EXITIF MARK(NONE)=
  75. END_OF(b);IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep;
  76. ELSE ProcessLine;AdvanceLine;ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME,
  77. "UNPACK");SET(SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:=
  78. GET_INFO(COMMAND_LINE,"file_name");b:=CREATE_BUFFER(f,f);Decode;WRITE_FILE(b,
  79. GET_INFO(COMMAND_LINE,"output_file"));QUIT;
  80. $ if p3 .eqs. "" then $ goto dl
  81. $ open/write fdl &f
  82. $ write fdl "RECORD"
  83. $ write fdl P3
  84. $ close fdl
  85. $ w "-I-CONVRFM, Converting record format to ", P3
  86. $ convert/fdl=&f &f-1 &P1
  87. $dl: delete 'f'*
  88. $ if P2 .eqs. "" then $ goto ckskip
  89. $ checksum 'P1'
  90. $ if checksum$checksum .nes. P2 then $ -
  91.   e "-E-CHKSMFAIL, Checksum of ''P1' failed."
  92. $ exit
  93. $ckskip: e "-W-CHKSUMSKIP, checksum validation unavailable for ''P1'"
  94. $ endsubroutine
  95. $start:
  96. $!
  97. $ create 'f'
  98. Xprocedure`20KHF$FORMAT_MODULE_IDENT
  99. X`20`20`20`20return`20"V02-001";
  100. Xendprocedure;
  101. X
  102. X!++
  103. X!`20`20`20KHF$FORMAT.TPU
  104. X!
  105. X!`20`20`20The`20procedures`20found`20here`20implement`20new`20EVE`20commands
  106. V`20JUSTIFY,`20JUSTIFY
  107. X!`20`20`20PARAGRAPH,`20and`20JUSTIFY`20RANGE.`20`20In`20order`20to`20avoid`20d
  108. Vuplicate`20code,`20the
  109. X!`20`20`20various`20EVE`20FILLxxxx`20procedures`20are`20found`20here,`20slight
  110. Vly`20modified`20to
  111. X!`20`20`20support`20calls`20to`20Khf$Fill_Edit`20and`20Khf$Justify.`20`20The
  112. V`20modifications
  113. X!`20`20`20are`20indicated`20by`20a`20"KHF"`20comments.`20`20Eve_Fill_paragraph
  114. V`20was`20split`20into
  115. X!`20`20`20two`20procedures`20to`20facilitate`20access`20from`20Eve_Justify_Par
  116. Vagraph.
  117. X!
  118. X!
  119. X!`20`20`20Modified`20procedures`20extracted`20from`20EVE$FORMAT.TPU`20(V02-100
  120. Vb):
  121. X!`09`09`09`09`20`20`20`20`20`20`20--------------
  122. X!`09eve_fill_paragraph`09`09Now`20calls`20eve$fill_paragraph
  123. X!`09eve$fill_paragraph`09`09Fill`20paragraph`20between`20margins`20using
  124. X!`09`09`09`09`09`20`20spaces
  125. X!`09eve$fill_range`09`09`09Fill`20a`20range
  126. X!
  127. X!`20`20`20New`20procedures`20in`20this`20file:
  128. X!
  129. X!`09Eve_Justify`09`09`09Fill`20and`20justify`20a`20range`20or`20paragraph
  130. X!`09Eve_Justify_Paragraph`09`09Fill`20and`20justify`20a`20paragraph
  131. X!`09Eve_Justify_Range`09`09Fill`20and`20justify`20the`20selected`20range
  132. X!`09Eve_Unjustify`09`09`09Fill_Edit`20and`20fill`20a`20range`20or`20paragraph
  133. X!`09Eve_Unjustify_Paragraph`09`09Fill_Edit`20and`20fill`20a`20paragraph
  134. X!`09Eve_Unjustify_Range`09`09Fill_Edit`20and`20fill`20the`20selected`20range
  135. X!`09Khf$Justify`09`09`09Does`20the`20work`20of`20right-justifying
  136. X!`09`09`09`09`09`20`20a`20range
  137. X!`09Khf$Fill_Edit`09`09`09Prepares`20a`20range`20for`20filling
  138. X!
  139. X!`20Author/Date:`09`09K.H.`20Fairfield,`09`0917-DEC-1992
  140. X!
  141. X!`20Revisions:
  142. X!
  143. X!--
  144. X
  145. X
  146. X!-------------------------Modified`20EVE`20Procedures-------------------------
  147. V-----
  148. X
  149. X
  150. Xprocedure`20eve_fill_paragraph
  151. X
  152. X`20`20`20`20return`20(eve$fill_paragraph);
  153. X
  154. Xendprocedure;`09`09!`20eve_fill_paragraph
  155. X
  156. X
  157. Xprocedure`20eve$fill_paragraph`09!`20Fill`20paragraph`20between`20margins`20us
  158. Ving`20spaces
  159. X!`09`20`20------------------
  160. X`09`20`20`20`20`20(;do_justify,`09!`20Flag`20whether`20to`20justify`20the`20pa
  161. Vragraph
  162. X`09`09`09`09!`20`20`20(DEFAULT`20=`20FALSE)
  163. X`09`20`20`20`20`20`20`20do_fill_edit)`09!`20Flag`20whether`20to`20callKhf$Fill
  164. V_Edit`20before
  165. X`09`09`09`09!`20`20`20fill`20(DEFAULT`20=`20do_justify)
  166. X
  167. Xlocal`09saved_mark,`09`09!`20Marker`20for`20current`20cursor`20position
  168. X`09start_paragraph,`09!`20Marker`20for`20start`20of`20current`20paragraph
  169. X`09stop_paragraph,`09`09!`20Marker`20for`20end`20of`20current`20paragraph
  170. X`09the_right_margin,
  171. X`09the_left_margin,
  172. X`09the_indent,
  173. X`09fill_range;`09`09!`20Range`20for`20current`20paragraph
  174. X
  175. Xon_error
  176. X`20`20`20`20`5BOTHERWISE`5D:
  177. Xendon_error;
  178. X
  179. Xif`20get_info`20(current_buffer,`20"system")
  180. Xthen
  181. X`20`20`20`20eve$message`20(EVE$_CANTSYSTEMBUF);
  182. X`20`20`20`20eve$learn_abort;
  183. X`20`20`20`20return`20(FALSE);
  184. Xendif;
  185. X
  186. X!`20Can't`20fill`20an`20empty`20buffer`20-`20avoid`20additional`20checks`20lat
  187. Ver`20on
  188. X
  189. Xif`20beginning_of`20(current_buffer)`20=`20end_of`20(current_buffer)
  190. Xthen
  191. X`20`20`20`20eve$message`20(EVE$_NOFILL);
  192. X`20`20`20`20eve$learn_abort;
  193. X`20`20`20`20return`20(FALSE);
  194. Xendif;
  195. X
  196. Xif`20not`20eve$declare_intention`20(eve$k_action_format)
  197. Xthen
  198. X`20`20`20`20return`20(FALSE);
  199. Xendif;
  200. X
  201. Xif`20do_justify`20=`20tpu$k_unspecified`09`09`09`09`09!`20KHF
  202. Xthen`09`09`09`09`09`09`09`09`09!`20KHF
  203. X`20`20`20`20do_justify`20:=`20FALSE;`09`09`09`09`09`09!`20KHF
  204. Xendif;`09`09`09`09`09`09`09`09`09!`20KHF
  205. X
  206. Xif`20do_fill_edit`20=`20tpu$k_unspecified`09`09`09`09`09!`20KHF
  207. Xthen`09`09`09`09`09`09`09`09`09!`20KHF
  208. X`20`20`20`20do_fill_edit`20:=`20do_justify;`09`09`09`09`09`09!`20KHF
  209. Xendif;`09`09`09`09`09`09`09`09`09!`20KHF
  210. X
  211. Xposition`20(TEXT);
  212. Xsaved_mark`20:=`20mark`20(NONE);
  213. X
  214. X!`20Find`20beginning`20of`20paragraph.`20`20Paragraph`20breaks`20are`20blank
  215. V`20lines,`20DOCUMENT`20tags,
  216. X!`20runoff`20commands,`20FF`20(hard`20FF),`20or`20FF+NL`20(soft`20FF).`20`20If
  217. V`20on`20a`20paragraph`20break
  218. X!`20other`20than`20a`20DOCUMENT`20tag`20or`20runoff`20command`20line,`20then
  219. V`20do`20preceding`20paragraph.
  220. X
  221. Xposition`20(LINE_BEGIN);
  222. Xif`20search_quietly`20(ANCHOR`20+`20LINE_BEGIN`20+
  223. X`09`09`20`20`20(("."`20`7C`20"<")`20+`20any`20(eve$x_runoff_characters)),
  224. X`09`09`20`20`20FORWARD)`20<>`200
  225. Xthen
  226. X`20`20`20`20!`20on`20DOCUMENT`20tag`20or`20runoff`20command`20line,`20go`20to
  227. V`20next`20line
  228. X`20`20`20`20position`20(LINE_END);
  229. X`20`20`20`20move_horizontal`20(1);
  230. X`20`20`20`20start_paragraph`20:=`20mark`20(NONE);
  231. Xelse
  232. X`20`20`20`20loop
  233. X`09!`20stop`20at`20top`20of`20buffer
  234. X`09exitif`20mark`20(NONE)`20=`20beginning_of`20(current_buffer);
  235. X`09move_vertical`20(-1);
  236. X`09position`20(LINE_BEGIN);`20`20!`20incase`20set(column_move_vertical,on)
  237. X`09!`20stop`20at`20a`20break`20and`20move`20to`20start`20of`20next`20line
  238. X`09if`20eve$paragraph_break
  239. X`09then
  240. X`09`20`20`20`20position`20(LINE_END);
  241. X`09`20`20`20`20move_horizontal`20(1);
  242. X`09`20`20`20`20exitif;
  243. X`09endif;
  244. X`20`20`20`20endloop;
  245. X`20`20`20`20start_paragraph`20:=`20mark`20(NONE);
  246. X`20`20`20`20position`20(saved_mark);
  247. Xendif;
  248. X
  249. X!`20find`20end`20of`20paragraph
  250. X
  251. Xloop
  252. X`20`20`20`20position`20(LINE_BEGIN);
  253. X`20`20`20`20exitif`20mark`20(NONE)`20=`20end_of`20(current_buffer);
  254. X`20`20`20`20exitif`20eve$paragraph_break;
  255. X`20`20`20`20move_vertical`20(1);
  256. Xendloop;
  257. X
  258. Xif`20start_paragraph`20=`20mark`20(NONE)
  259. Xthen
  260. X`20`20`20`20eve$message`20(EVE$_NOFILL);
  261. X`20`20`20`20position`20(saved_mark);
  262. X`20`20`20`20eve$learn_abort;
  263. X`20`20`20`20return`20(FALSE);
  264. Xelse
  265. X`20`20`20`20move_horizontal`20(-1);
  266. X`20`20`20`20stop_paragraph`20:=`20mark`20(NONE);
  267. X
  268. X`20`20`20`20!`20Now`20fill`20the`20paragraph
  269. X
  270. X
  271. X`20`20`20`20the_right_margin`20:=`20get_info`20(current_buffer,`20"right_margi
  272. Vn");
  273. X
  274. X`20`20`20`20if`20eve$$x_word_wrap_indent`20`7Bcurrent_buffer`7D`20<>`20tpu$k_u
  275. Vnspecified
  276. X`20`20`20`20then
  277. X`09the_left_margin`20:=`20eve$$x_word_wrap_indent`20`7Bcurrent_buffer`7D;
  278. X`20`20`20`20else
  279. X`09the_left_margin`20:=`20get_info`20(current_buffer,`20"left_margin");
  280. X`20`20`20`20endif;
  281. X
  282. X`20`20`20`20if`20eve$$x_paragraph_indent`20`7Bcurrent_buffer`7D`20<>`20tpu$k_u
  283. Vnspecified
  284. X`20`20`20`20then
  285. X`09the_indent`20:=`20eve$$x_paragraph_indent`20`7Bcurrent_buffer`7D
  286. X`09`09`20`20`20`20`20`20-`20the_left_margin;
  287. X`20`20`20`20else
  288. X`09the_indent`20:=`20get_info`20(current_buffer,`20"left_margin")`20-
  289. X`09`09`20`20`20`20`20`20the_left_margin;
  290. X`20`20`20`20endif;
  291. X
  292. X`20`20`20`20fill_range`20:=`20create_range`20(start_paragraph,`20stop_paragrap
  293. Vh,`20NONE);
  294. X
  295. X`20`20`20`20if`20do_fill_edit`09`09`09`09`09`09`09!`20KHF
  296. X`20`20`20`20then`09`09`09`09`09`09`09`09!`20KHF
  297. X`09khf$fill_edit`20(fill_range);`09`09`09`09`09!`20KHF
  298. X`09!`20`20Replace`20the`20previous`20line`20by:`09`09`09`09!`20KHF
  299. X`09!`20`20`20`20edit`20(fill_range,`20COMPRESS,`20TRIM,`20OFF);`09`09`09!`20KH
  300. VF
  301. X`09!`20`20to`20suppress`20extra`20space`20following`20sentences...`09`09!`20KH
  302. VF
  303. X`20`20`20`20else`09`09`09`09`09`09`09`09!`20KHF
  304. X`09edit`20(fill_range,`20TRIM_LEADING,`20OFF);
  305. X`20`20`20`20endif;`09`09`09`09`09`09`09`09!`20KHF
  306. X
  307. X`20`20`20`20fill`20(fill_range,`20eve$x_fill_separators,
  308. X`09`20`20the_left_margin,`20the_right_margin,`20the_indent);
  309. X
  310. X`20`20`20`20if`20do_justify`09`09`09`09`09`09`09!`20KHF
  311. X`20`20`20`20then`09`09`09`09`09`09`09`09!`20KHF
  312. X`09khf$justify`20(fill_range);`09`09`09`09`09!`20KHF
  313. X`20`20`20`20endif;`09`09`09`09`09`09`09`09!`20KHF
  314. X
  315. X`20`20`20`20position`20(stop_paragraph);
  316. X`20`20`20`20eve$show_first_line;
  317. Xendif;
  318. Xreturn`20(TRUE);
  319. X
  320. Xendprocedure;`09!`20eve$fill_paragraph
  321. X
  322. X`0C
  323. X!`20EVE$FORMAT.TPU`09`09`09`09`09`09`09Page`2012
  324. X
  325. Xprocedure`20eve$fill_range`09`09!`20Fill`20a`20range
  326. X`20`20`20`20(range_arg;
  327. X`20`20`20`20`20do_justify,`09`09!`20Flag`20whether`20to`20right-justify`20the
  328. V`20range
  329. X`09`09`09`09!`20`20`20(DEFAULT`20=`20FALSE)
  330. X`20`20`20`20`20do_fill_edit)`09`09!`20Flag`20whether`20to`20callKhf$Fill_Edit
  331. V`20before
  332. X`09`09`09`09!`20`20`20fill`20(DEFAULT`20=`20do_justify)
  333. X
  334. Xlocal`09the_range,
  335. X`09start_mark,`09`09`09!`20Start`20of`20the`20range`20to`20fill
  336. X`09the_right_margin,
  337. X`09the_left_margin,
  338. X`09the_indent,
  339. X`09status,
  340. X`09old_right_margin,
  341. X`09end_mark;`09`09`09!`20Marker`20for`20end`20of`20range
  342. X
  343. Xon_error
  344. X`20`20`20`20`5BTPU$_CONTROLC`5D:
  345. X`09eve$$release_scratch_buffer;
  346. X`09if`20old_right_margin`20<>`200
  347. X`09then
  348. X`09`20`20`20`20set`20(RIGHT_MARGIN,`20eve$$x_scratch_buffer,`20old_right_margi
  349. Vn);
  350. X`09endif;
  351. X`09eve$learn_abort;
  352. X`09abort;
  353. X`20`20`20`20`5BOTHERWISE`5D:
  354. X`09eve$$release_scratch_buffer;
  355. X`09if`20old_right_margin`20<>`200
  356. X`09then
  357. X`09`20`20`20`20set`20(RIGHT_MARGIN,`20eve$$x_scratch_buffer,`20old_right_margi
  358. Vn);
  359. X`09endif;
  360. Xendon_error;
  361. X
  362. Xif`20not`20eve$declare_intention`20(eve$k_action_format)
  363. Xthen
  364. X`20`20`20`20return`20(FALSE);
  365. Xendif;
  366. X
  367. Xif`20do_justify`20=`20TPU$K_UNSPECIFIED`09`09`09`09`09!`20KHF
  368. Xthen`09`09`09`09`09`09`09`09`09!`20KHF
  369. X`20`20`20`20do_justify`20:=`20FALSE;`09`09`09`09`09`09!`20KHF
  370. Xendif;`09`09`09`09`09`09`09`09`09!`20KHF
  371. X
  372. Xif`20do_fill_edit`20=`20TPU$K_UNSPECIFIED`09`09`09`09`09!`20KHF
  373. Xthen`09`09`09`09`09`09`09`09`09!`20KHF
  374. X`20`20`20`20do_fill_edit`20:=`20do_justify;`09`09`09`09`09`09!`20KHF
  375. Xendif;`09`09`09`09`09`09`09`09`09!`20KHF
  376. X
  377. Xthe_range`20:=`20range_arg;
  378. Xif`20the_range`20<>`200
  379. Xthen
  380. X`20`20`20`20if`20get_info`20(the_range,`20"type")`20=`20ARRAY
  381. X`20`20`20`20then
  382. X`09!`20box`20selection
  383. X`09if`20not`20eve$$reserve_scratch_buffer
  384. X`09then
  385. X`09`20`20`20`20eve$message`20(EVE$_ILLSCRATCHRES);
  386. X`09`20`20`20`20return`20(FALSE);
  387. X`09endif;
  388. X`09erase`20(eve$$x_scratch_buffer);
  389. X`09position`20(the_range`20`7B1`7D);
  390. X`09!`20cut`20box`20to`20scratch`20buffer
  391. X`09eve$$box_cut`20(the_range,`20eve$$x_scratch_buffer,
  392. X`09`09`20`20`20`20`20`20TRUE,`09!`20delete`20the`20box
  393. X`09`09`20`20`20`20`20`20FALSE);`09!`20no`20messages
  394. X`09!`20set`20up`20the`20scratch`20buffer`20to`20be`20filled`20to`20box's`20wid
  395. Vth
  396. X`09old_right_margin`20:=`20get_info`20(eve$$x_scratch_buffer,`20"right_margin"
  397. V);
  398. X`09if`20length`20(the_range`20`7B1`7D)`20=`201
  399. X`09then`09!`20avoid`20left=right=1
  400. X`09`20`20`20`20set`20(RIGHT_MARGIN,`20eve$$x_scratch_buffer,`202);
  401. X`09else
  402. X`09`20`20`20`20set`20(RIGHT_MARGIN,`20eve$$x_scratch_buffer,`20length`20(the_r
  403. Vange`20`7B1`7D));
  404. X`09endif;
  405. X`09eve$trim_buffer`20(eve$$x_scratch_buffer);
  406. X`09position`20(eve$$x_scratch_buffer);
  407. X`09if`20eve$fill_range`20(create_range`20(BUFFER_BEGIN,`20BUFFER_END),`09!`20K
  408. VHF
  409. X`09`09`09`20`20`20do_justify,`20do_fill_edit)`09`09`09!`20KHF
  410. X`09then
  411. X`09`20`20`20`20!`20Now`20overstrike`20the`20filled`20scratch`20buffer`20over
  412. V`20original`20box.
  413. X`09`20`20`20`20!`20This`20can't`20add`20more`20lines`20since`20no`20text`20tha
  414. Vt`20exceeds`20the
  415. X`09`20`20`20`20!`20box`20right`20side`20is`20ever`20wrapped`20down.
  416. X`09`20`20`20`20position`20(beginning_of`20(the_range`20`7B1`7D));
  417. X`09`20`20`20`20eve$$box_overstrike`20(eve$$x_scratch_buffer);
  418. X`09`20`20`20`20eve$clear_message;
  419. X`09`20`20`20`20status`20:=`20TRUE;
  420. X`09else
  421. X`09`20`20`20`20status`20:=`20FALSE;
  422. X`09endif;
  423. +-+-+-+-+-+-+-+-  END  OF PART 1 +-+-+-+-+-+-+-+-
  424.