123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- ! TITLE CVTHELP.TPU
- ! IDENT 01-001
- !
- !++
- ! Copyright (c) 1990-2001 Info-ZIP. All rights reserved.
- !
- ! See the accompanying file LICENSE, version 2000-Apr-09 or later
- ! (the contents of which are also included in zip.h) for terms of use.
- ! If, for some reason, all these files are missing, the Info-ZIP license
- ! also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
- !
- !++
- !
- ! Program: CVTHELP.TPU
- !
- ! Author: Hunter Goatley
- !
- ! Date: January 12, 1992
- !
- ! Purpose: Convert .HELP files to RUNOFF .RNH files. Substitutes
- ! RUNOFF commands for tags imbedded in the .HELP file.
- !
- ! Calling sequence:
- !
- ! $ EDIT/TPU/NOJOURNAL/NODISPLAY/COMMAND=CVTHELP file.HELP
- !
- ! Modified by:
- !
- ! 01-001 Hunter Goatley 7-FEB-2001 15:40
- ! Added <NEXT> for qualifier separators.
- !
- ! 01-000 Hunter Goatley 12-JAN-1992 15:15
- ! Original version.
- !
- !--
- Procedure eve_convert_help
- Local temp
- ,x
- ;
- qualifier_level := 0;
- hg$substitute_topic(current_buffer, "<MAIN>", ".indent-3", "1");
- hg$substitute_topic(current_buffer, "<QUALIFIER>", ".sk;.indent-3", "");
- hg$substitute_topic(current_buffer, "<TOPIC>", ".indent-3", "2");
- hg$substitute_topic(current_buffer, "<SUBTOPIC>", ".indent-3", "3");
- hg$substitute_topic(current_buffer, "<SUBSUBTOPIC>", ".indent-3", "4");
- hg$substitute_comment(current_buffer,"<QUALIFIERS>",".indent-3;2 Qualifiers");
- hg$substitute_comment(current_buffer,"<PARAMETER>",".indent-2");
- hg$substitute_comment(current_buffer,"<PTEXT>",".lm+3");
- hg$substitute_comment(current_buffer,"<TXETP>",".lm-3");
- hg$substitute_comment(current_buffer,"<ETEXT>",".lm+4");
- hg$substitute_comment(current_buffer,"<TXETE>",".lm-4");
- hg$substitute_comment(current_buffer,"<INIT>",".noflags;.lm3;.rm70");
- hg$substitute_comment(current_buffer,"<LITERAL>",".lm+4;.literal");
- hg$substitute_comment(current_buffer,"<LARETIL>",".end literal;.lm-4");
- hg$substitute_comment(current_buffer,"<DOT1LIST>",'.list 1,"o"');
- hg$substitute_comment(current_buffer,"<DOT0LIST>",'.list 0,"o"');
- hg$substitute_comment(current_buffer,"<ENTRY>",".le");
- hg$substitute_comment(current_buffer,"<TSIL>",".end list");
- hg$substitute_comment(current_buffer,"<CENTER>",".center");
- hg$substitute_comment(current_buffer,"<FORMAT>",".sk;.indent2");
- hg$substitute_comment(current_buffer,"<NOTE>",".note");
- hg$substitute_comment(current_buffer,"<ETON>",".end note");
- hg$substitute_comment(current_buffer, LINE_BEGIN & LINE_END,".sk");
- hg$substitute_comment(current_buffer, LINE_BEGIN & "|", "");
- hg$substitute_comment(current_buffer,"<NEXT>",".br");
- EndProcedure; ! eve_convert_help
- Procedure hg$substitute_comment (the_buffer, target, new)
- Local temp
- ,save_pos
- ,x
- ;
- on_error;
- endon_error;
- save_pos := mark(none);
- position(beginning_of(the_buffer));
- loop
- x := search(target, forward);
- exitif x = 0;
- position (x);
- erase_character(length(x));
- copy_text(new);
- endloop;
- position(save_pos);
- EndProcedure; ! hg$substitute_comment
- Procedure hg$substitute_topic (the_buffer, target, new, level)
- Local temp
- ,save_pos
- ,x
- ;
- on_error;
- endon_error;
- save_pos := mark(none);
- position(beginning_of(the_buffer));
- loop
- x := search(target, forward);
- exitif x = 0;
- position (x);
- erase_character(length(x));
- move_vertical(-1);
- if (length(current_line) = 0)
- then copy_text("|");
- endif;
- move_vertical(1);
- copy_text(".!------------------------------------------------------");
- split_line;
- copy_text(new);
- move_horizontal(-current_offset);
- move_vertical(1);
- if level <> "" then
- copy_text(level + " ");
- ! else
- ! if qualifier_level = 0
- ! then
- ! copy_text("2 Qualifiers");
- ! split_line; split_line;
- ! copy_text(new); split_line;
- ! qualifier_level := 1;
- ! endif;
- endif;
- move_horizontal(-current_offset);
- move_vertical(1);
- if length(current_line) = 0
- then
- if (target = "<MAIN>") OR (target = "<TOPIC>")
- OR (target = "<SUBTOPIC>") or (target = "<SUBSUBTOPIC>")
- then copy_text(".br");
- else copy_text(".sk");
- endif;
- endif;
- endloop;
- position(save_pos);
- EndProcedure; ! hg$substitute_topic
- !===============================================================================
- Procedure tpu$init_procedure
- Local temp
- ,orig_filespec
- ,f
- ;
- on_error
- endon_error;
- !Prompt user for information
- orig_filespec := get_info(command_line, "file_name");
- if orig_filespec = ""
- then
- message("No .HELP file given");
- quit;
- endif;
- f := file_parse(orig_filespec, ".HELP"); !Add .LIS ending
- ! Create a buffer and window for editing
- main_buf := create_buffer ("MAIN",f);
- set (eob_text, main_buf, "[End of buffer]");
- position (beginning_of(main_buf));
- eve_convert_help;
- f := file_parse(orig_filespec,"","",NAME);
- write_file (main_buf, f+".RNH");
- quit;
- EndProcedure; !TPU$INIT_PROCEDURE
- tpu$init_procedure;
|