mirror of
https://github.com/janet-lang/janet
synced 2025-06-13 20:14:12 +00:00
Be explicit about 64 bit offset on windows.
This commit is contained in:
parent
fd5315793c
commit
fe348187cc
@ -2,6 +2,9 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
## Unreleased - ???
|
## Unreleased - ???
|
||||||
|
- Add extra optional `env` argument to `eval` and `eval-string`.
|
||||||
|
- Allow naming function literals with a keyword. This allows better stacktraces for macros without
|
||||||
|
accidentally adding new bindings.
|
||||||
- Add `bundle/` module for managing packages within Janet. This should replace the jpm packaging
|
- Add `bundle/` module for managing packages within Janet. This should replace the jpm packaging
|
||||||
format eventually and is much simpler and amenable to more complicated builds.
|
format eventually and is much simpler and amenable to more complicated builds.
|
||||||
- Add macros `ev/with-lock`, `ev/with-rlock`, and `ev/with-wlock` for using mutexes and rwlocks.
|
- Add macros `ev/with-lock`, `ev/with-rlock`, and `ev/with-wlock` for using mutexes and rwlocks.
|
||||||
|
@ -41,6 +41,11 @@ static void io_file_marshal(void *p, JanetMarshalContext *ctx);
|
|||||||
static void *io_file_unmarshal(JanetMarshalContext *ctx);
|
static void *io_file_unmarshal(JanetMarshalContext *ctx);
|
||||||
static Janet io_file_next(void *p, Janet key);
|
static Janet io_file_next(void *p, Janet key);
|
||||||
|
|
||||||
|
#ifdef JANET_WINDOWS
|
||||||
|
#define ftell _ftelli64
|
||||||
|
#define fseek _fseeki64
|
||||||
|
#endif
|
||||||
|
|
||||||
const JanetAbstractType janet_file_type = {
|
const JanetAbstractType janet_file_type = {
|
||||||
"core/file",
|
"core/file",
|
||||||
cfun_io_gc,
|
cfun_io_gc,
|
||||||
@ -337,7 +342,7 @@ JANET_CORE_FN(cfun_io_fseek,
|
|||||||
JanetFile *iof = janet_getabstract(argv, 0, &janet_file_type);
|
JanetFile *iof = janet_getabstract(argv, 0, &janet_file_type);
|
||||||
if (iof->flags & JANET_FILE_CLOSED)
|
if (iof->flags & JANET_FILE_CLOSED)
|
||||||
janet_panic("file is closed");
|
janet_panic("file is closed");
|
||||||
long int offset = 0;
|
int64_t offset = 0;
|
||||||
int whence = SEEK_CUR;
|
int whence = SEEK_CUR;
|
||||||
if (argc >= 2) {
|
if (argc >= 2) {
|
||||||
const uint8_t *whence_sym = janet_getkeyword(argv, 1);
|
const uint8_t *whence_sym = janet_getkeyword(argv, 1);
|
||||||
@ -351,7 +356,7 @@ JANET_CORE_FN(cfun_io_fseek,
|
|||||||
janet_panicf("expected one of :cur, :set, :end, got %v", argv[1]);
|
janet_panicf("expected one of :cur, :set, :end, got %v", argv[1]);
|
||||||
}
|
}
|
||||||
if (argc == 3) {
|
if (argc == 3) {
|
||||||
offset = (long) janet_getinteger64(argv, 2);
|
offset = (int64_t) janet_getinteger64(argv, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (fseek(iof->file, offset, whence)) janet_panic("error seeking file");
|
if (fseek(iof->file, offset, whence)) janet_panic("error seeking file");
|
||||||
@ -365,7 +370,7 @@ JANET_CORE_FN(cfun_io_ftell,
|
|||||||
JanetFile *iof = janet_getabstract(argv, 0, &janet_file_type);
|
JanetFile *iof = janet_getabstract(argv, 0, &janet_file_type);
|
||||||
if (iof->flags & JANET_FILE_CLOSED)
|
if (iof->flags & JANET_FILE_CLOSED)
|
||||||
janet_panic("file is closed");
|
janet_panic("file is closed");
|
||||||
long pos = ftell(iof->file);
|
int64_t pos = ftell(iof->file);
|
||||||
if (pos == -1) janet_panic("error getting position in file");
|
if (pos == -1) janet_panic("error getting position in file");
|
||||||
return janet_wrap_number((double)pos);
|
return janet_wrap_number((double)pos);
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,8 @@
|
|||||||
(rmrf syspath)
|
(rmrf syspath)
|
||||||
(assert (os/mkdir syspath))
|
(assert (os/mkdir syspath))
|
||||||
(put root-env *syspath* (bundle-rpath syspath))
|
(put root-env *syspath* (bundle-rpath syspath))
|
||||||
#(setdyn *out* @"")
|
(unless (os/getenv "VERBOSE")
|
||||||
|
(setdyn *out* @""))
|
||||||
(assert (empty? (bundle/list)) "initial bundle/list")
|
(assert (empty? (bundle/list)) "initial bundle/list")
|
||||||
(assert (empty? (bundle/topolist)) "initial bundle/topolist")
|
(assert (empty? (bundle/topolist)) "initial bundle/topolist")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user