mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	Merge branch 'master' of github.com:janet-lang/janet
This commit is contained in:
		| @@ -92,7 +92,8 @@ static Janet makef(FILE *f, int flags) { | |||||||
| #ifndef JANET_WINDOWS | #ifndef JANET_WINDOWS | ||||||
|     /* While we would like fopen to set cloexec by default (like O_CLOEXEC) with the e flag, that is |     /* While we would like fopen to set cloexec by default (like O_CLOEXEC) with the e flag, that is | ||||||
|      * not standard. */ |      * not standard. */ | ||||||
|     fcntl(fileno(f), F_SETFD, FD_CLOEXEC); |     if (!(flags & JANET_FILE_NOT_CLOSEABLE)) | ||||||
|  |       fcntl(fileno(f), F_SETFD, FD_CLOEXEC); | ||||||
| #endif | #endif | ||||||
|     return janet_wrap_abstract(iof); |     return janet_wrap_abstract(iof); | ||||||
| } | } | ||||||
| @@ -136,22 +137,10 @@ static Janet cfun_io_popen(int32_t argc, Janet *argv) { | |||||||
| static Janet cfun_io_temp(int32_t argc, Janet *argv) { | static Janet cfun_io_temp(int32_t argc, Janet *argv) { | ||||||
|     (void)argv; |     (void)argv; | ||||||
|     janet_fixarity(argc, 0); |     janet_fixarity(argc, 0); | ||||||
|  |     // XXX use mkostemp when we can to avoid CLOEXEC race. | ||||||
|     FILE *tmp = tmpfile(); |     FILE *tmp = tmpfile(); | ||||||
|     if (!tmp) |     if (!tmp) | ||||||
|         janet_panicf("unable to create temporary file - %s", strerror(errno)); |         janet_panicf("unable to create temporary file - %s", strerror(errno)); | ||||||
|  |  | ||||||
| #ifndef JANET_WINDOWS |  | ||||||
|     /* It seems highly unlikely a typical janet user wants a tempfile to be inherited and |  | ||||||
|        libc tmpfile does NOT set O_CLOEXEC by default. |  | ||||||
|  |  | ||||||
|        For threaded programs we should use mkostemp |  | ||||||
|        which is coming to POSIX at a later time. */ |  | ||||||
|     if (fcntl(fileno(tmp), F_SETFD, FD_CLOEXEC) != 0) { |  | ||||||
|         fclose(tmp); |  | ||||||
|         janet_panic("unable initialize temporary file"); |  | ||||||
|     } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|     return janet_makefile(tmp, JANET_FILE_WRITE | JANET_FILE_READ | JANET_FILE_BINARY); |     return janet_makefile(tmp, JANET_FILE_WRITE | JANET_FILE_READ | JANET_FILE_BINARY); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -413,7 +413,7 @@ static const JanetReg math_cfuns[] = { | |||||||
|         "math/rng", cfun_rng_make, |         "math/rng", cfun_rng_make, | ||||||
|         JDOC("(math/rng &opt seed)\n\n" |         JDOC("(math/rng &opt seed)\n\n" | ||||||
|              "Creates a Psuedo-Random number generator, with an optional seed. " |              "Creates a Psuedo-Random number generator, with an optional seed. " | ||||||
|              "The seed should be an unsigned 32 bit integer. " |              "The seed should be an unsigned 32 bit integer or a buffer. " | ||||||
|              "Do not use this for cryptography. Returns a core/rng abstract type.") |              "Do not use this for cryptography. Returns a core/rng abstract type.") | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Calvin Rose
					Calvin Rose