-
src/sbbs3/js_file.c
From
rswindell@VERT to
CVS commit on Sunday, January 05, 2014 22:09:19
src/sbbs3 js_file.c 1.156 1.157
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv30614
Modified Files:
js_file.c
Log Message:
Fix bug introduced in rev 1.147 (Feb-2013):
File.iniGetValue() method returned a garbage string if the value requested
did not exist in the ini section and the default value specified was a string: cstr2 will point to cstr in this case, so we can't free(cstr) before copying cstr2 into a new JSVAL.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
deuce@VERT to
CVS commit on Friday, August 21, 2015 22:36:55
src/sbbs3 js_file.c 1.157 1.158
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv26555
Modified Files:
js_file.c
Log Message:
len is unsigned so can't be -1 which is the return value of b64_decode()
when it fails (neither uudecode nor ydecode can fail currently).
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
deuce@VERT to
CVS commit on Tuesday, November 10, 2015 02:04:07
src/sbbs3 js_file.c 1.158 1.159
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv20166
Modified Files:
js_file.c
Log Message:
Add writeable bufsize and bufmode properties to the File class that allows controlling the vbuf of a stream.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
deuce@VERT to
CVS commit on Tuesday, November 10, 2015 03:49:37
src/sbbs3 js_file.c 1.159 1.160
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv22177
Modified Files:
js_file.c
Log Message:
Fix bugs in last commit and check the return value of setvbuf().
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
deuce@VERT to
CVS commit on Tuesday, November 10, 2015 04:22:57
src/sbbs3 js_file.c 1.160 1.161
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv22921
Modified Files:
js_file.c
Log Message:
Revert last two commits. You can't use setvbuf() for this type of thing portably.
Also, we're really interested in termios stuff, so we don't actually want
to call setvbuf anyway.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
deuce@VERT to
CVS commit on Tuesday, November 10, 2015 04:46:20
src/sbbs3 js_file.c 1.161 1.162
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv23710
Modified Files:
js_file.c
Log Message:
I reverted too far... move back to 1.158, not 1.157.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
deuce@VERT to
CVS commit on Monday, November 16, 2015 08:51:06
src/sbbs3 js_file.c 1.162 1.163
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv14202
Modified Files:
js_file.c
Log Message:
Add raw_read() and raw_write() which access the underlying descriptor,
not the file object itself.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
deuce@VERT to
CVS commit on Monday, November 16, 2015 10:34:40
src/sbbs3 js_file.c 1.163 1.164
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv19256
Modified Files:
js_file.c
Log Message:
Add File.raw_pollin() method which implements a timeout/poll on the underlying file descriptor (and seems to work on Win32).
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
rswindell@VERT to
CVS commit on Friday, December 04, 2015 02:36:00
src/sbbs3 js_file.c 1.164 1.165
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv5107
Modified Files:
js_file.c
Log Message:
#include <conio.h> for non-*nix builds, for kbhit() declaration.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
rswindell@VERT to
CVS commit on Monday, December 14, 2015 00:16:53
src/sbbs3 js_file.c 1.165 1.166
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv9832
Modified Files:
js_file.c
Log Message:
Fix bug reported by Deuce:
File.crc32 contained the bit-inverted result of the CRC-32 calculation.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ
telnet://vert.synchro.net
-
From
rswindell@VERT to
CVS commit on Monday, April 02, 2018 15:37:56
src/sbbs3 js_file.c 1.170 1.171
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv11679
Modified Files:
js_file.c
Log Message:
The 'e' (exclusive-open) mode flag (introduced in v3.12) never worked. It was simply ignored when converted to the underlying open mode passed to sopen(). Deprecate this flag and log a warning when it is detected as used in a script: Deprecated open flag used: 'e'
Added 'x' (exclsuive-open) mode flag which:
1. was tested to work as intended
2. is consistent with the C11 standard for fopen() mode flags
3. won't cause existing scripts to suddenly break
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Monday, April 02, 2018 16:22:57
src/sbbs3 js_file.c 1.171 1.172
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv14685
Modified Files:
js_file.c
Log Message:
Updated JS warning when using old/deprecated file open mode 'e':
"Deprecated file open mode: 'e'"
If this is your script generating this warning, either remove the 'e' from
the File open() mode string (it had no effect anyway) or change to 'x' to
get the real/working exclusive-open functionality (added in v3.17).
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Tuesday, August 28, 2018 14:47:10
src/sbbs3 js_file.c 1.172 1.173
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv16344
Modified Files:
js_file.c
Log Message:
New File properties to change .ini file style attributes:
- ini_key_len
- ini_key_prefix
- ini_section_separator
- ini_value_separator
- ini_bit_separator
- ini_literal_separator
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Tuesday, August 28, 2018 15:47:26
src/sbbs3 js_file.c 1.173 1.174
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/home/rswindell/sbbs/src/sbbs3
Modified Files:
js_file.c
Log Message:
Fix a number of problems in the previous commit (ini styles).
Also, the File() constructor will now properly complain if no filename
is passed.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Wednesday, January 09, 2019 02:54:45
src/sbbs3 js_file.c 1.174 1.175
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv20725
Modified Files:
js_file.c
Log Message:
Updated JSDOCS descriptions of File.ini methods.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Thursday, January 10, 2019 03:51:00
src/sbbs3 js_file.c 1.175 1.176
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/home/rswindell/jsdocs/src/sbbs3
Modified Files:
js_file.c
Log Message:
Fix JSDOCS_BUILD issue introduced in previous commit.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Sunday, July 14, 2019 20:35:45
src/sbbs3 js_file.c 1.180 1.181
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv2257
Modified Files:
js_file.c
Log Message:
Fix long-standing issue with File.attributes on Windows: the value *read*
was based on _finddata_t.attrib value while the value *written* was based on struct stat.st_mode, and totally incompatible.
Just use the stat/chmod compatible value for both read and write (for all OSes). If you need the old Windows-centric attribute values (e.g. to determine "hidden" or "archive" attributes), use file_attrib() instead.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Wednesday, July 17, 2019 20:14:48
src/sbbs3 js_file.c 1.181 1.182
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv18853
Modified Files:
js_file.c
Log Message:
Bug in JSDOCS: File.iniSetAllObjects returns a Boolean, not an Array.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Thursday, August 15, 2019 11:34:04
src/sbbs3 js_file.c 1.182 1.183
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv6042
Modified Files:
js_file.c
Log Message:
Fix "off-by-one" error in File.readln() and readAll() with regards to the 'maxlen' argument. E.g. passing 10 would result in a maximum read string length of 9 characters.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Tuesday, August 20, 2019 19:28:01
src/sbbs3 js_file.c 1.183 1.184
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv21798
Modified Files:
js_file.c
Log Message:
Fix potential double-close() call in File.open() method implementation:
if fdopen() failed, we'd close the file descriptor but leave it dangling with
a >= 0 value and then call close() again on it later in the function.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Wednesday, August 21, 2019 11:32:34
src/sbbs3 js_file.c 1.184 1.185
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv20572
Modified Files:
js_file.c
Log Message:
Report a JS warning, with details, when fdopen() fails.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Tuesday, August 27, 2019 09:47:58
src/sbbs3 js_file.c 1.185 1.186
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv11820
Modified Files:
js_file.c
Log Message:
Actually honour File.network_byte_order.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Wednesday, September 18, 2019 23:03:53
src/sbbs3 js_file.c 1.186 1.187
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv17577
Modified Files:
js_file.c
Log Message:
Address some debug-log output issues with the File object:
"4294967295 File closed"
"0000 File closed: /path/to/file"
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Wednesday, September 18, 2019 23:49:02
src/sbbs3 js_file.c 1.187 1.188
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv27489
Modified Files:
js_file.c
Log Message:
Don't leak FILE streams for calls to js_CreateFileObject(), setting external
to TRUE meant the FILE* (created with fdopen) would never be closed. So we now duplicate the file descriptor and get rid of the external flag, always closing Files (FILE streams) upon File object finalize.
This fixes the resource leak leading to the eventual "Error 24 opening ..." in the ircd.js when loaded via jsexec, on Windows. This error happened after
169 calls to load(true,...), because each background load creates 3 Files
(for stdin/out/err) and those FILE streams were never closed/freed, and
169 * 3 = 507, plus a few open files = 512, the maximum number of open file streams in the Microsoft CRTL apparently. Thanks to Deuce for recognizing these numbers as "magic" and pointing to the likely cause.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
deuce@VERT to
CVS commit on Wednesday, September 18, 2019 23:54:49
src/sbbs3 js_file.c 1.188 1.189
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv29285
Modified Files:
js_file.c
Log Message:
Even more leak paranoia...
If dup() fails, return NULL
If callog() fails, fclose() the new FILE*
No functional change (hopefully).
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Sunday, April 05, 2020 22:21:02
src/sbbs3 js_file.c 1.190 1.191
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv9740
Modified Files:
js_file.c
Log Message:
Don't try to convert null or undefined arguments to integers.
Moved some dbprintf() lines around a bit.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Monday, April 06, 2020 18:31:21
src/sbbs3 js_file.c 1.191 1.192
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv15683
Modified Files:
js_file.c
Log Message:
Special handling of negative numbers in the writeBin() method implementation. JS numbers are double-precision floating points (doubles) and doubles cannot
be converted to unsigned integers uniformly across all architectures (e.g. specifically on ARM, negative numbers would mostly get converted to 0U).
For details, see
https://www.embeddeduse.com/2013/08/25/casting-a-negative-float-to-an-unsigned-int/
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Saturday, April 11, 2020 19:25:31
src/sbbs3 js_file.c 1.192 1.193
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv18066
Modified Files:
js_file.c
Log Message:
Added optional "lowercase" argument to File.iniGetObject() and iniGetAllObjects() to sort of "normalize" the key names into easily-useable (and consistent) JavaScript property names.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Sunday, April 12, 2020 00:27:25
src/sbbs3 js_file.c 1.193 1.194
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv428
Modified Files:
js_file.c
Log Message:
Restore the previous behavior of File.iniGetObject(null), even though not documented (it says if the section is *undefined*, the root section is read)
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Sunday, April 12, 2020 00:58:01
src/sbbs3 js_file.c 1.194 1.195
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv4839
Modified Files:
js_file.c
Log Message:
Document the iniGetObject(null) behavior.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
rswindell@VERT to
CVS commit on Thursday, April 16, 2020 22:37:14
src/sbbs3 js_file.c 1.195 1.196
Update of /cvsroot/sbbs/src/sbbs3
In directory cvs:/tmp/cvs-serv894
Modified Files:
js_file.c
Log Message:
Update to File.iniGetAllObjects(): read the .ini file all in one go using iniReadFile():
- enables the use of the !include directive in the read .in file
- reduces rewinds/re-reads of the .ini file, speeding up the total operation
I also removed the old crash dump comments from here.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Rob Swindell@VERT to
Git commit to sbbs/master on Friday, November 13, 2020 13:55:10
https://gitlab.synchro.net/sbbs/sbbs/-/commit/1af02470226933aa5f04a0f7
Modified Files:
src/sbbs3/js_file.c
Log Message:
JS File.iniGetObject() and .iniGetAllObjects() now support blank strings
If an .ini file is read by either the iniGetObject() or iniGetAllObjects() methods and contains a key with a blank value, that property would be created with an "undefined" value.
Both the iniGetObject() and iniGetAllObjects() methods now accept an additional Boolean argument (which defaults to false), to specify that "blanks" are acceptable. When the "blanks" argument is true, then keys with empty values in the .ini file are created as properties with empty string values (length of 0).
This is going to be useful for modopts.js to read potentially-blank strings from modopts.ini and differentiate between a blank string key and a missing key.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Sunday, January 03, 2021 14:16:24
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Sunday, January 24, 2021 13:52:29
https://gitlab.synchro.net/main/sbbs/-/commit/8fdbb1692b8ad6c1959f8f3e
Modified Files:
src/sbbs3/js_file.c
Log Message:
More support for !include in .ini files
Some (important) File methods did not support .ini files that used the !include directive because they were using the xpdev iniRead* API (which performs no "pre-processing") instead of xpdev iniGet*.
Impacted methods:
- iniGetValue()
- iniGetKeys()
- iniGetObject()
The other existing ini* methods already worked fine with nested (!include'd) .ini files. It's possible there's a slight performance penalty with the new implementation since the entire .ini file is always read for each operation and previously it was possible that only a few "lines" were read to find the key(s) of interest. However, since .ini files are not typically huge and the iniRead/file-stream method likely read large (e.g. 8-32K) blocks anyway (which is usually the entire .ini file) - I don't actually suspect any observable impact to performance.
This change was needed for the new ctrl/modopts.d support.
Added new method useful for debugging nested .ini files:
- iniReadAll()
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Deuce@VERT to
Git commit to main/sbbs/master on Monday, January 25, 2021 17:05:31
-
From
Deuce@VERT to
Git commit to main/sbbs/master on Tuesday, January 26, 2021 10:19:30
-
From
Deuc¨@VERT to
Git commit to main/sbbs/master on Thursday, March 04, 2021 17:05:54
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Sunday, April 04, 2021 13:38:22
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Sunday, April 04, 2021 15:13:57
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Thursday, April 22, 2021 20:22:12
https://gitlab.synchro.net/main/sbbs/-/commit/8f79438d2ca277e2c8a25a24
Modified Files:
src/sbbs3/js_file.c
Log Message:
Use JS_ValueToECMAUint32 for File position, date, and length properties
This resolves errors when setting these properties to values > 2147483647 example:
!JavaScript /sbbs/exec/load/sauce_lib.js line 69: Error: can't convert 2430770157 to an integer
That means you can now seek around (set position) within files > 2GB, truncate or extend a file > 2GB, or set a file's date to > Jan-19-2038.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Thursday, December 30, 2021 14:31:31
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Saturday, January 01, 2022 23:58:45
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Sunday, January 02, 2022 15:58:28
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Tuesday, March 01, 2022 22:43:08
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Wednesday, March 02, 2022 10:07:45
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Saturday, June 25, 2022 15:20:45
-
From
Rob Swindell@VERT to
Git commit to main/sbbs/master on Monday, January 16, 2023 20:41:25
-
From
Rob Swindell (in GitKraken)@VERT to
Git commit to main/sbbs/master on Tuesday, March 14, 2023 21:25:14
-
From
Deuc¨@VERT to
Git commit to main/sbbs/master on Sunday, March 24, 2024 15:41:49