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