📄 i77vers.c
字号:
#ifndef NON_UNIX_STDIO; Version date not changed. *//* 10 Nov. 1993: backspace.c: add nonsense for #ifdef MSDOS *//* 8 Dec. 1993: iio.c: adjust internal formatted reads to treat short records as though padded with blanks (rather than causing an "off end of record" error). *//* 22 Feb. 1994: lread.c: check that realloc did not return NULL. *//* 6 June 1994: Under NON_UNIX_STDIO, use binary mode for direct formatted files (avoiding any confusion regarding \n). *//* 5 July 1994: Fix bug (introduced 6 June 1994?) in reopening files under NON_UNIX_STDIO. *//* 6 July 1994: wref.c: protect with #ifdef GOOD_SPRINTF_EXPONENT an optimization that requires exponents to have 2 digits when 2 digits suffice. lwrite.c wsfe.c (list and formatted external output): omit ' ' carriage-control when compiled with -DOMIT_BLANK_CC . Off-by-one bug fixed in character count for list output of character strings. Omit '.' in list-directed printing of Nan, Infinity. *//* 12 July 1994: wrtfmt.c: under G11.4, write 0. as " .0000 " rather than " .0000E+00". *//* 3 Aug. 1994: lwrite.c: do not insert a newline when appending an oversize item to an empty line. *//* 12 Aug. 1994: rsli.c rsne.c: fix glitch (reset nml_read) that kept ERR= (in list- or format-directed input) from working after a NAMELIST READ. *//* 7 Sept. 1994: typesize.c: adjust to allow types LOGICAL*1, LOGICAL*2, INTEGER*1, and (under -DAllow_TYQUAD) INTEGER*8 in NAMELISTs. *//* 6 Oct. 1994: util.c: omit f__mvgbt, as it is never used. *//* 2 Nov. 1994: add #ifdef ALWAYS_FLUSH logic. *//* 26 Jan. 1995: wref.c: fix glitch in printing the exponent of 0 when GOOD_SPRINTF_EXPONENT is not #defined. *//* 24 Feb. 1995: iio.c: z_getc: insert (unsigned char *) to allow internal reading of characters with high-bit set (on machines that sign-extend characters). *//* 14 March 1995:lread.c and rsfe.c: adjust s_rsle and s_rsfe to check for end-of-file (to prevent infinite loops with empty read statements). *//* 26 May 1995: iio.c: z_wnew: fix bug in handling T format items in internal writes whose last item is written to an earlier position than some previous item. *//* 29 Aug. 1995: backspace.c: adjust MSDOS logic. *//* 6 Sept. 1995: Adjust namelist input to treat a subscripted name whose subscripts do not involve colons similarly to the name without a subscript: accept several values, stored in successive elements starting at the indicated subscript. Adjust namelist output to quote character strings (avoiding confusion with arrays of character strings). Adjust f_init calls for people who don't use libF77's main(); now open and namelist read statements invoke f_init if needed. *//* 7 Sept. 1995: Fix some bugs with -DAllow_TYQUAD (for integer*8). Add -DNo_Namelist_Comments lines to rsne.c. *//* 5 Oct. 1995: wrtfmt.c: fix bug with t editing (f__cursor was not always zeroed in mv_cur). *//* 11 Oct. 1995: move defs of f__hiwater, f__svic, f__icptr from wrtfmt.c to err.c *//* 15 Mar. 1996: lread.c, rsfe.c: honor END= in READ stmt with empty iolist *//* 13 May 1996: add ftell_.c and fseek_.c *//* 9 June 1996: Adjust rsli.c and lread.c so internal list input with too few items in the input string will honor end= . *//* 12 Sept. 1995:fmtlib.c: fix glitch in printing the most negative integer. *//* 25 Sept. 1995:fmt.h: for formatted writes of negative integer*1 values, make ic signed on ANSI systems. If formatted writes of integer*1 values trouble you when using a K&R C compiler, switch to an ANSI compiler or use a compiler flag that makes characters signed. *//* 9 Dec. 1996: d[fu]e.c, err.c: complain about non-positive rec= in direct read and write statements. ftell_.c: change param "unit" to "Unit" for -DKR_headers. *//* 26 Feb. 1997: ftell_.c: on systems that define SEEK_SET, etc., use SEEK_SET, SEEK_CUR, SEEK_END for *whence = 0, 1, 2. *//* 7 Apr. 1997: fmt.c: adjust to complain at missing numbers in formats (but still treat missing ".nnn" as ".0"). *//* 11 Apr. 1997: err.c: attempt to make stderr line buffered rather than fully buffered. (Buffering is needed for format items T and TR.) *//* 27 May 1997: ftell_.c: fix typo (that caused the third argument to be treated as 2 on some systems). *//* 5 Aug. 1997: lread.c: adjust to accord with a change to the Fortran 8X draft (in 1990 or 1991) that rescinded permission to elide quote marks in namelist input of character data; compile with -DF8X_NML_ELIDE_QUOTES to get the old behavior. wrtfmt.o: wrt_G: tweak to print the right number of 0's for zero under G format. *//* 16 Aug. 1997: iio.c: fix bug in internal writes to an array of character strings that sometimes caused one more array element than required by the format to be blank-filled. Example: format(1x). *//* 16 Sept. 1997:fmt.[ch] rdfmt.c wrtfmt.c: tweak struct syl for machines with 64-bit pointers and 32-bit ints that did not 64-bit align struct syl (e.g., Linux on the DEC Alpha). *//* 19 Jan. 1998: backspace.c: for b->ufmt==0, change sizeof(int) to sizeof(uiolen). On machines where this would make a difference, it is best for portability to compile libI77 with -DUIOLEN_int (which will render the change invisible). *//* 4 March 1998: open.c: fix glitch in comparing file names under -DNON_UNIX_STDIO *//* 17 March 1998: endfile.c, open.c: acquire temporary files from tmpfile(), unless compiled with -DNON_ANSI_STDIO, which uses mktemp(). New buffering scheme independent of NON_UNIX_STDIO for handling T format items. Now -DNON_UNIX_STDIO is no longer be necessary for Linux, and libf2c no longer causes stderr to be buffered -- the former setbuf or setvbuf call for stderr was to make T format items work. open.c: use the Posix access() function to check existence or nonexistence of files, except under -DNON_POSIX_STDIO, where trial fopen calls are used. *//* 5 April 1998: wsfe.c: make $ format item work: this was lost in the changes of 17 March 1998. *//* 28 May 1998: backspace.c dfe.c due.c iio.c lread.c rsfe.c sue.c wsfe.c: set f__curunit sooner so various error messages will correctly identify the I/O unit involved. *//* 17 June 1998: lread.c: unless compiled with ALLOW_FLOAT_IN_INTEGER_LIST_INPUT #defined, treat floating-point numbers (containing either a decimal point or an exponent field) as errors when they appear as list input for integer data. *//* 7 Sept. 1998: move e_wdfe from sfe.c to dfe.c, where it was originally. Why did it ever move to sfe.c? *//* 2 May 1999: open.c: set f__external (to get "external" versus "internal" right in the error message if we cannot open the file). err.c: cast a pointer difference to (int) for %d. rdfmt.c: omit fixed-length buffer that could be overwritten by formats Inn or Lnn with nn > 83. *//* 3 May 1999: open.c: insert two casts for machines with 64-bit longs. *//* 18 June 1999: backspace.c: allow for b->ufd changing in t_runc *//* 27 June 1999: rsne.c: fix bug in namelist input: a misplaced increment *//* could cause wrong array elements to be assigned; e.g., *//* "&input k(5)=10*1 &end" assigned k(5) and k(15..23) *//* 15 Nov. 1999: endfile.c: set state to writing (b->uwrt = 1) when an *//* endfile statement requires copying the file. *//* (Otherwise an immediately following rewind statement *//* could make the file appear empty.) Also, supply a *//* missing (long) cast in the sprintf call. *//* sfe.c: add #ifdef ALWAYS_FLUSH logic, for formatted I/O: *//* Compiling libf2c with -DALWAYS_FLUSH should prevent losing *//* any data in buffers should the program fault. It also *//* makes the program run more slowly. *//* 20 April 2000: rsne.c, xwsne.c: tweaks that only matter if ftnint and *//* ftnlen are of different fundamental types (different numbers *//* of bits). Since these files will not compile when this *//* change matters, the above VERSION string remains unchanged. *//* 4 July 2000: adjustments to permit compilation by C++ compilers; *//* VERSION string remains unchanged. *//* 5 Dec. 2000: lread.c: under namelist input, when reading a logical array, *//* treat Tstuff= and Fstuff= as new assignments rather than as *//* logical constants. *//* 22 Feb. 2001: endfile.c: adjust to use truncate() unless compiled with *//* -DNO_TRUNCATE (or with -DMSDOS). *//* 1 March 2001: endfile.c: switch to ftruncate (absent -DNO_TRUNCATE), *//* thus permitting truncation of scratch files on true Unix *//* systems, where scratch files have no name. Add an fflush() *//* (surprisingly) needed on some Linux systems. *//* 11 Oct. 2001: backspac.c dfe.c due.c endfile.c err.c fio.h fmt.c fmt.h *//* inquire.c open.c rdfmt.c sue.c util.c: change fseek and *//* ftell to FSEEK and FTELL (#defined to be fseek and ftell, *//* respectively, in fio.h unless otherwise #defined), and use *//* type OFF_T (#defined to be long unless otherwise #defined) *//* to permit handling files over 2GB long where possible, *//* with suitable -D options, provided for some systems in new *//* header file sysdep1.h (copied from sysdep1.h0 by default). *//* 15 Nov. 2001: endfile.c: add FSEEK after FTRUNCATE. *//* 28 Nov. 2001: fmt.h lwrite.c wref.c and (new) signbit.c: on IEEE systems, *//* print -0 as -0 when compiled with -DSIGNED_ZEROS. See *//* comments in makefile or (better) libf2c/makefile.* . *//* 6 Sept. 2002: rsne.c: fix bug with multiple repeat counts in reading *//* namelists, e.g., &nl a(2) = 3*1.0, 2*2.0, 3*3.0 / *//* 21 March 2003: err.c: before writing to a file after reading from it, *//* f_seek(file, 0, SEEK_CUR) to make writing legal in ANSI C. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -