JOE@FHCRCVAX.BITNET (Joe Meadows) (09/15/87)
Thanks to Charles Karney for pointing out a few bugs with multiple
file handling, and /OUTPUT behaviour.
The following is output from DIFFERENCES/SLP and is suitable for
doing $ EDIT/SUM FILE.C/UPDATE=FILE.DIF assuming you call the file
FILE.DIF. The checking for /OUTPUT is moved to the beginning of the
program, rather than being inside the main loop. This fixes the problem
with multiple output files being created. A dummy call to cli$get_value
is added to reset the context of the parser. This fixes the problem with
things such as FILE FIXED.*/RECORD_SIZE=512, which crashes when there is
more than one file-spec that matches. I also added a check for the presence
of /characteristics, /attributes, and /journal qualifiers, before checking
for the presence of any of their keywords. This doesn't affect anything,
except that it saves some cpu cycles.
If you have made modifications to FILE.C I would suggest that
you apply these fixes by hand, rather than using the EDIT/SUM command.
It should be fairly easy to figure out where they go...
Cheers,
Joe Meadows
!--- cut this line and above out of file and do EDIT/SUM on it ----
- 25
15-SEP-1987
modified handling of qualifiers, move check for /OUTPUT outside of
loop, get values of all other qualifiers before looping through
wildcarded filenames.
- 85, 85
static short int output = 0;
if (cli_present("OUTPUT") & 1) {
/* see if they want output to go to a file or to SYS$OUTPUT */
status = cli_get_value("OUTPUT",&retval);
if (status & 1)
freopen(retval,"w",stdout,"rfm=var","rat=cr");
output = 1;
};
- 107
/* dummy cli_get_value, used merely to reset context */
status = cli_get_value("OUTPUT",&retval);
- 133, 137
if (output) {
- 150, 150
- 228, 254
if (cli_present(t_attr) & 1) {
Fat.fat$v_fortrancc = change(Fat.fat$v_fortrancc,t_attr,t_fortrancc);
Fat.fat$v_impliedcc = change(Fat.fat$v_impliedcc,t_attr,t_impliedcc);
Fat.fat$v_printcc = change(Fat.fat$v_printcc,t_attr,t_printcc);
Fat.fat$v_nospan = antichange(Fat.fat$v_nospan,t_attr,t_nospan);
};
if (cli_present(t_char) & 1) {
uchar.fch.fch$v_badacl = change(uchar.fch.fch$v_badacl,t_char,t_badacl);
uchar.fch.fch$v_nobackup =
antichange(uchar.fch.fch$v_nobackup,t_char,t_nobackup);
uchar.fch.fch$v_contigb =
change(uchar.fch.fch$v_contigb,t_char,t_contigb);
uchar.fch.fch$v_nocharge =
antichange(uchar.fch.fch$v_nocharge,t_char,t_nocharge);
uchar.fch.fch$v_contig = change(uchar.fch.fch$v_contig,t_char,t_contig);
uchar.fch.fch$v_directory =
change(uchar.fch.fch$v_directory,t_char,t_directory);
uchar.fch.fch$v_erase = change(uchar.fch.fch$v_erase,t_char,t_erase);
uchar.fch.fch$v_badblock =
change(uchar.fch.fch$v_badblock,t_char,t_badblock);
uchar.fch.fch$v_locked = change(uchar.fch.fch$v_locked,t_char,t_locked);
uchar.fch.fch$v_markdel =
change(uchar.fch.fch$v_markdel,t_char,t_markdel);
uchar.fch.fch$v_spool = change(uchar.fch.fch$v_spool,t_char,t_spool);
uchar.fch.fch$v_readcheck =
change(uchar.fch.fch$v_readcheck,t_char,t_readcheck);
uchar.fch.fch$v_writeback =
change(uchar.fch.fch$v_writeback,t_char,t_writeback);
uchar.fch.fch$v_writcheck =
change(uchar.fch.fch$v_writcheck,t_char,t_writcheck);
};
- 306, 313
if (cli_present(t_journal) & 1) {
jnl.fjn$v_journal_file =
change(jnl.fjn$v_journal_file,t_journal,t_journal_file);
jnl.fjn$v_aijnl = change(jnl.fjn$v_aijnl,t_journal,t_aijnl);
jnl.fjn$v_atjnl = change(jnl.fjn$v_atjnl,t_journal,t_atjnl);
jnl.fjn$v_bijnl = change(jnl.fjn$v_bijnl,t_journal,t_bijnl);
jnl.fjn$v_rujnl = change(jnl.fjn$v_rujnl,t_journal,t_rujnl);
jnl.fjn$v_never_ru = change(jnl.fjn$v_never_ru,t_journal,t_never_ru);
jnl.fjn$v_only_ru = change(jnl.fjn$v_only_ru,t_journal,t_only_ru);
};
/ROTONDI@IBACSATA.BITNET (Domenico Rotondi) (09/17/87)
How can a poor mVMS 4.4 user benefit or your SLP update file? Under the curren VMS version that editor has disapperead? Any hints! Thanks Domenico --------------------------------- Domenico Rotondi CSATA Strada Provinciale per CASAMASSIMA Km.3 70010 VALENZANO (BARI) ITALY Tel +39-80-8770233 / 8770111 Tlx 810371 TECPOL I Ttx 2221-818506 CSATABA I Fax +39-80-651868 (CCITT G3) EARN ROTONDI @ IBACSATA