Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Add a configure time check for the existence of setenv(3) in libc for use by fossil_setenv() which has nicer semantics than its current underlying implementation on POSIX systems, putenv(3). This doesn't fix any known issue other than a technical memory leak, but I'm checking it in in case someone finds the code useful someday. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | setenv-alternative |
| Files: | files | file ages | folders |
| SHA3-256: |
ff8f2decf53f466db1677d45228445a5 |
| User & Date: | wyoung 2020-03-19 15:11:14.935 |
| Original Comment: | Add a configure tiem check for the existence of setenv(3) in libc for use by fossil_putenv() which has nicer semantics than putenv(3). This doesn't fix any known issue other than a technical memory leak, but I'm checking it in in case someone finds the code useful someday. |
Context
|
2020-03-19
| ||
| 15:11 | Add a configure time check for the existence of setenv(3) in libc for use by fossil_setenv() which has nicer semantics than its current underlying implementation on POSIX systems, putenv(3). This doesn't fix any known issue other than a technical memory leak, but I'm checking it in in case someone finds the code useful someday. Closed-Leaf check-in: ff8f2decf5 user: wyoung tags: setenv-alternative | |
|
2020-03-18
| ||
| 17:25 | Merged glob-docs branch down to trunk. check-in: b45a985c86 user: wyoung tags: trunk | |
Changes
Changes to auto.def.
| ︙ | ︙ | |||
269 270 271 272 273 274 275 276 277 278 279 280 281 282 |
} else {
define-append EXTRA_CFLAGS -DFOSSIL_DYNAMIC_BUILD=1
define FOSSIL_DYNAMIC_BUILD
}
# Check for libraries that need to be sorted out early
cc-check-function-in-lib iconv iconv
# Helper for OpenSSL checking
proc check-for-openssl {msg {cflags {}} {libs {-lssl -lcrypto}}} {
msg-checking "Checking for $msg..."
set rc 0
if {[is_mingw]} {
lappend libs -lgdi32 -lwsock32 -lcrypt32
| > > > > > > > > > > | 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 |
} else {
define-append EXTRA_CFLAGS -DFOSSIL_DYNAMIC_BUILD=1
define FOSSIL_DYNAMIC_BUILD
}
# Check for libraries that need to be sorted out early
cc-check-function-in-lib iconv iconv
# Check for existence of POSIX setenv(), which has nicer semantics than
# putenv() which we fall back on if it isn't available.
msg-checking "Checking for setenv(3) in libc..."
if {[cctest -includes stdlib.h -code {setenv("", "", 0);} -link 1]} {
msg-result "yes"
define HAVE_SETENV
} else {
msg-result "no"
}
# Helper for OpenSSL checking
proc check-for-openssl {msg {cflags {}} {libs {-lssl -lcrypto}}} {
msg-checking "Checking for $msg..."
set rc 0
if {[is_mingw]} {
lappend libs -lgdi32 -lwsock32 -lcrypt32
|
| ︙ | ︙ |
Changes to src/file.c.
| ︙ | ︙ | |||
1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 |
int rc;
char *zString = mprintf("%s=%s", zName, zValue);
#ifdef _WIN32
wchar_t *uString = fossil_utf8_to_unicode(zString);
rc = _wputenv(uString);
fossil_unicode_free(uString);
fossil_free(zString);
#else
rc = putenv(zString);
/* NOTE: Cannot free the string on POSIX. */
/* fossil_free(zString); */
#endif
return rc;
}
| > > > | 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 |
int rc;
char *zString = mprintf("%s=%s", zName, zValue);
#ifdef _WIN32
wchar_t *uString = fossil_utf8_to_unicode(zString);
rc = _wputenv(uString);
fossil_unicode_free(uString);
fossil_free(zString);
#elif defined(HAVE_SETENV)
rc = setenv(zName, zValue, 0);
fossil_free(zString);
#else
rc = putenv(zString);
/* NOTE: Cannot free the string on POSIX. */
/* fossil_free(zString); */
#endif
return rc;
}
|
| ︙ | ︙ |