Merge github.com:cisco/ChezScheme
original commit: c5d71168eb4315f7e8ec9c0acf615fa0b9a2fc88
This commit is contained in:
commit
ce9df2f827
12
LOG
12
LOG
|
@ -1419,10 +1419,20 @@
|
||||||
BUILDING, c/vs.bat, wininstall/locate-vcredist.bat
|
BUILDING, c/vs.bat, wininstall/locate-vcredist.bat
|
||||||
- fixed open-string-input-port on immutable strings
|
- fixed open-string-input-port on immutable strings
|
||||||
cpnanopass.ss, io.ms, release_notes.stex
|
cpnanopass.ss, io.ms, release_notes.stex
|
||||||
|
- use setenv rather than putenv on non WIN32 environments
|
||||||
|
prim5.c, system.stex
|
||||||
- restore {Free,Open,Net}BSD build, support Windows cross-compile
|
- restore {Free,Open,Net}BSD build, support Windows cross-compile
|
||||||
via MinGW, add configuration options, and add helper makefile targets
|
via MinGW, add configuration options, and add helper makefile targets
|
||||||
expenditor.c, thread.c, stats.c, statics.c, scheme.c, main.c, types.h,
|
expenditor.c, thread.c, stats.c, statics.c, scheme.c, main.c, types.h,
|
||||||
externs.h, globals.h, nocurses.h, version.h, system.h, segment.h,
|
externs.h, globals.h, nocurses.h, version.h, system.h, segment.h,
|
||||||
a6ob.def, ta6ob.def, a6nb.def, ta6nb.def, i3nt.def, ti3nt.def,
|
a6ob.def, ta6ob.def, a6nb.def, ta6nb.def, i3nt.def, ti3nt.def,
|
||||||
c/Mf-*, build.bat, makefiles/Makefile.in, makefiles/Mf-install.in,
|
c/Mf-*, build.bat, makefiles/Makefile.in, makefiles/Mf-install.in,
|
||||||
misc.ms, s/update-revision, BUILDING
|
s/update-revision, BUILDING
|
||||||
|
- export `ee-backward-delete-sexp` binding in the expression-editor module.
|
||||||
|
expeditor.ss
|
||||||
|
- fix ee_read_char to handle ^@ properly
|
||||||
|
expeditor.c
|
||||||
|
- prevent access before start of array
|
||||||
|
scheme.c
|
||||||
|
- remove dead stores in files
|
||||||
|
compress-io.c, new-io.c
|
||||||
|
|
|
@ -329,7 +329,7 @@ INT S_glzclose(glzFile glz) {
|
||||||
#ifdef EINTR
|
#ifdef EINTR
|
||||||
if (r < 0 && errno == EINTR) continue;
|
if (r < 0 && errno == EINTR) continue;
|
||||||
#endif
|
#endif
|
||||||
if (r == 0) { r = Z_ERRNO; saved_errno = errno; }
|
if (r == 0) { saved_errno = errno; }
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
(void)LZ4F_freeDecompressionContext(lz4->dctx);
|
(void)LZ4F_freeDecompressionContext(lz4->dctx);
|
||||||
|
|
|
@ -691,11 +691,15 @@ static ptr s_ee_read_char(IBOOL blockp) {
|
||||||
#endif /* PTHREADS */
|
#endif /* PTHREADS */
|
||||||
|
|
||||||
if (n == 1) {
|
if (n == 1) {
|
||||||
old_locale = uselocale(term_locale);
|
if (buf[0] == '\0') {
|
||||||
sz = mbrtowc(&wch, buf, 1, &term_out_mbs);
|
return Schar('\0');
|
||||||
uselocale(old_locale);
|
} else {
|
||||||
if (sz == 1) {
|
old_locale = uselocale(term_locale);
|
||||||
return Schar(wch);
|
sz = mbrtowc(&wch, buf, 1, &term_out_mbs);
|
||||||
|
uselocale(old_locale);
|
||||||
|
if (sz == 1) {
|
||||||
|
return Schar(wch);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -842,8 +842,6 @@ ptr S_bytevector_compress(ptr dest_bv, iptr d_start, iptr d_count,
|
||||||
if (!is_valid_lz4_length(s_count))
|
if (!is_valid_lz4_length(s_count))
|
||||||
return Sstring("source bytevector ~s is too large");
|
return Sstring("source bytevector ~s is too large");
|
||||||
|
|
||||||
destLen = (int)d_count;
|
|
||||||
|
|
||||||
destLen = LZ4_compress_default((char *)&BVIT(src_bv, s_start), (char *)&BVIT(dest_bv, d_start), (int)s_count, (int)d_count);
|
destLen = LZ4_compress_default((char *)&BVIT(src_bv, s_start), (char *)&BVIT(dest_bv, d_start), (int)s_count, (int)d_count);
|
||||||
|
|
||||||
if (destLen > 0)
|
if (destLen > 0)
|
||||||
|
|
|
@ -1372,11 +1372,7 @@ static void s_putenv(name, value) char *name, *value; {
|
||||||
if (rc == 0)
|
if (rc == 0)
|
||||||
S_error1("putenv", "environment extension failed: ~a", S_LastErrorString());
|
S_error1("putenv", "environment extension failed: ~a", S_LastErrorString());
|
||||||
#else /* WIN32 */
|
#else /* WIN32 */
|
||||||
iptr n; char *s;
|
if (setenv(name, value, 1) != 0) {
|
||||||
n = strlen(name) + strlen(value) + 2;
|
|
||||||
if ((s = malloc(n)) == (char *)NULL
|
|
||||||
|| snprintf(s, n, "%s=%s", name, value) < 0
|
|
||||||
|| putenv(s) != 0) {
|
|
||||||
ptr msg = S_strerror(errno);
|
ptr msg = S_strerror(errno);
|
||||||
|
|
||||||
if (msg != Sfalse)
|
if (msg != Sfalse)
|
||||||
|
|
|
@ -534,7 +534,7 @@ static IBOOL next_path(path, name, ext, sp, dsp) char *path; const char *name, *
|
||||||
/* unless entry was null, append name and ext onto path and return true with
|
/* unless entry was null, append name and ext onto path and return true with
|
||||||
* updated path, sp, and possibly dsp */
|
* updated path, sp, and possibly dsp */
|
||||||
if (s != *sp) {
|
if (s != *sp) {
|
||||||
if (!DIRMARKERP(*(p - 1))) { setp(PATHSEP); }
|
if ((p > path) && !DIRMARKERP(*(p - 1))) { setp(PATHSEP); }
|
||||||
t = name;
|
t = name;
|
||||||
while (*t != 0) setp(*t++);
|
while (*t != 0) setp(*t++);
|
||||||
t = ext;
|
t = ext;
|
||||||
|
|
|
@ -5329,8 +5329,6 @@ is associated with \var{key}.
|
||||||
environment of the process,
|
environment of the process,
|
||||||
where it is available to the current process (e.g., via \var{getenv})
|
where it is available to the current process (e.g., via \var{getenv})
|
||||||
and any spawned processes.
|
and any spawned processes.
|
||||||
The key and value are copied into storage allocated outside of
|
|
||||||
the Scheme heap; this space is never reclaimed on non-Windows systems.
|
|
||||||
|
|
||||||
\schemedisplay
|
\schemedisplay
|
||||||
(putenv "SCHEME" "rocks!")
|
(putenv "SCHEME" "rocks!")
|
||||||
|
|
|
@ -1749,6 +1749,12 @@ in fasl files does not generally make sense.
|
||||||
%-----------------------------------------------------------------------------
|
%-----------------------------------------------------------------------------
|
||||||
\section{Bug Fixes}\label{section:bugfixes}
|
\section{Bug Fixes}\label{section:bugfixes}
|
||||||
|
|
||||||
|
\subsection{\protect\code{putenv} memory leak (9.5.3)}
|
||||||
|
|
||||||
|
\scheme{putenv} now calls the host system's \scheme{setenv} instead of
|
||||||
|
\scheme{putenv} on non-Windows hosts and avoids allocating memory that
|
||||||
|
is never freed, although \scheme{setenv} might do so.
|
||||||
|
|
||||||
\subsection{String ports from immutable strings (9.5.4)}
|
\subsection{String ports from immutable strings (9.5.4)}
|
||||||
|
|
||||||
A bug that miscalculated the buffer size for
|
A bug that miscalculated the buffer size for
|
||||||
|
|
|
@ -82,8 +82,8 @@
|
||||||
ee-beginning-of-entry ee-end-of-entry
|
ee-beginning-of-entry ee-end-of-entry
|
||||||
ee-delete-to-eol ee-delete-line
|
ee-delete-to-eol ee-delete-line
|
||||||
ee-delete-between-point-and-mark ee-set-mark
|
ee-delete-between-point-and-mark ee-set-mark
|
||||||
ee-delete-entry ee-reset-entry ee-delete-sexp ee-redisplay
|
ee-delete-entry ee-reset-entry ee-delete-sexp ee-backward-delete-sexp
|
||||||
ee-yank-kill-buffer ee-yank-selection
|
ee-redisplay ee-yank-kill-buffer ee-yank-selection
|
||||||
ee-string-macro ee-eof ee-delete-char ee-eof/delete-char
|
ee-string-macro ee-eof ee-delete-char ee-eof/delete-char
|
||||||
ee-backward-delete-char ee-insert-paren
|
ee-backward-delete-char ee-insert-paren
|
||||||
ee-flash-matching-delimiter ee-goto-matching-delimiter
|
ee-flash-matching-delimiter ee-goto-matching-delimiter
|
||||||
|
|
Loading…
Reference in New Issue
Block a user