Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Release "2.8.32". Fix embedded nulls in format() and elsewhere. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | 53d32b6f33514f25c56e676a9808c88d |
User & Date: | pmacdona 2019-05-23 14:24:19 |
References
2019-05-23
| ||
14:48 | • Ticket [f8d3a82011] NUL bytes not encodable status still Open with 3 other changes artifact: 9be0178ca1 user: pmacdona | |
Context
2019-05-24
| ||
00:33 | Release "2.8.33". Fix issue [f8d3a82011]: NUL bytes not encodable. Now supports strings with \u0000 and \0. check-in: d58a5de09b user: pmacdona tags: trunk | |
2019-05-23
| ||
14:24 | Release "2.8.32". Fix embedded nulls in format() and elsewhere. check-in: 53d32b6f33 user: pmacdona tags: trunk | |
04:15 | Release "2.8.31". Fix parser bug in strings with line ending in backslash. check-in: 10502f4b73 user: pmacdona tags: trunk | |
Changes
Changes to src/jsi.c.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..... 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 ..... 18387 18388 18389 18390 18391 18392 18393 18394 18395 18396 18397 18398 18399 18400 18401 18402 18403 18404 18405 18406 18407 18408 18409 18410 ..... 27069 27070 27071 27072 27073 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 ..... 31935 31936 31937 31938 31939 31940 31941 31942 31943 31944 31945 31946 31947 31948 31949 31950 31951 31952 31953 31954 31955 31956 31957 31958 31959 31960 31961 31962 31963 31964 31965 31966 31967 31968 31969 31970 ..... 34105 34106 34107 34108 34109 34110 34111 34112 34113 34114 34115 34116 34117 34118 34119 34120 ..... 36220 36221 36222 36223 36224 36225 36226 36227 36228 36229 36230 36231 36232 36233 36234 ..... 37883 37884 37885 37886 37887 37888 37889 37890 37891 37892 37893 37894 37895 37896 37897 37898 ..... 50995 50996 50997 50998 50999 51000 51001 51002 51003 51004 51005 51006 51007 51008 51009 |
/* jsi.h : External API header file for Jsi. */ #ifndef __JSI_H__ #define __JSI_H__ #define JSI_VERSION_MAJOR 2 #define JSI_VERSION_MINOR 8 #define JSI_VERSION_RELEASE 31 #define JSI_VERSION (JSI_VERSION_MAJOR + ((Jsi_Number)JSI_VERSION_MINOR/100.0) + ((Jsi_Number)JSI_VERSION_RELEASE/10000.0)) #ifndef JSI_EXTERN #define JSI_EXTERN extern #endif ................................................................................ int ui; for (ui=0; ui<4; ui++) ibuf[ui] = lexer_getchar(lex); ibuf[4] = 0; ui = Jsi_UtfDecode(ibuf, buf+bufi); if (ui>0) { if (!buf[bufi]) { Jsi_LogError("code literal utf null unsupported (u0000)"); buf[bufi++] = 0; goto done; } bufi+=ui; } else { Jsi_LogError("Unexpected utf encoding."); buf[bufi++] = 0; ................................................................................ Jsi_ValueMakeStringDup(interp, &rPtr, obj->d.s.str); } break; case JSI_OT_FUNCTION: { Jsi_DString dStr; Jsi_DSInit(&dStr); Jsi_FuncObjToString(interp, obj->d.fobj->func, &dStr, 3); Jsi_ValueMakeStringDup(interp, &rPtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } case JSI_OT_USEROBJ: { Jsi_DString dStr; Jsi_DSInit(&dStr); jsi_UserObjToName(interp, obj->d.uobj, &dStr); Jsi_ValueMakeStringDup(interp, &rPtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } default: Jsi_ValueMakeStringKey(interp,&rPtr, "[object Object]"); break; } Jsi_ValueReset(interp, vPtr); ................................................................................ Jsi_DSFree(&jStr); Jsi_DSFree(&kStr); return code; } else if (interp && interp->stdoutStr) { Jsi_DString dStr = {}; Jsi_DSAppend(&dStr, Jsi_ValueString(interp, interp->stdoutStr, NULL), NULL); Jsi_DSAppend(&dStr, str, NULL); Jsi_ValueMakeStringDup(interp, &interp->stdoutStr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); } else return chan->fsPtr->putsProc(chan, str); } return 0; } ................................................................................ Jsi_ValueMakeNumber(interp, valuePtr, *(short *)ptr); break; case JSI_OPTION_USHORT: Jsi_ValueMakeNumber(interp, valuePtr, *(ushort *)ptr); break; case JSI_OPTION_DSTRING: Jsi_ValueMakeStringDup(interp, valuePtr, Jsi_DSValue((Jsi_DString*)ptr)); break; case JSI_OPTION_TIME_W: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, (Jsi_Number)(*(Jsi_Wide*)ptr), "", 0, &dStr); Jsi_ValueMakeStringDup(interp, valuePtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } case JSI_OPTION_TIME_D: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, (Jsi_Number)(*(double*)ptr), "", 0, &dStr); Jsi_ValueMakeStringDup(interp, valuePtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } case JSI_OPTION_TIME_T: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, 1000LL* (Jsi_Number)*(time_t*)ptr, "%Y-%m-%d %H:%M:%S", 0, &dStr); Jsi_ValueMakeStringDup(interp, valuePtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } case JSI_OPTION_STRBUF: if (ptr) Jsi_ValueMakeStringDup(interp, valuePtr, ptr); else Jsi_ValueMakeNull(interp, valuePtr); ................................................................................ if (jsv && Jsi_ValueGetBoolean(interp, jsv, &strict) != JSI_OK) return Jsi_LogError("Expected boolean"); int quote = JSI_OUTPUT_JSON; if (strict) quote|=JSI_JSON_STRICT; Jsi_DString dStr = {}; Jsi_Value *arg = Jsi_ValueArrayIndex(interp, args, 0); Jsi_ValueGetDString(interp, arg, &dStr, quote); Jsi_ValueMakeStringDup(interp, ret, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); return JSI_OK; } Jsi_RC Jsi_CommandInvoke(Jsi_Interp *interp, const char *cmdstr, Jsi_Value *args, Jsi_Value **ret) { Jsi_Value *func = Jsi_NameLookup(interp, cmdstr); if (func) ................................................................................ if (opts.secs) num = (Jsi_Number)((Jsi_Wide)(num*1000)); rc = Jsi_DatetimeFormat(interp, num, fmt, opts.utc, &dStr); } if (rc != JSI_OK) Jsi_LogError("%s", errMsg); else Jsi_ValueMakeStringDup(interp, ret, Jsi_DSValue(&dStr)); if (isOpt) Jsi_OptionsFree(interp, DateOptions, &opts, 0); Jsi_DSFree(&dStr); return rc; } #define FN_infovars JSI_INFO("\ ................................................................................ static Jsi_RC SysFormatCmd(Jsi_Interp *interp, Jsi_Value *args, Jsi_Value *_this, Jsi_Value **ret, Jsi_Func *funcPtr) { Jsi_DString dStr; Jsi_RC rc = Jsi_FormatString(interp, args, &dStr); if (rc != JSI_OK) return rc; Jsi_ValueMakeStringDup(interp, ret, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); return JSI_OK; } static Jsi_RC SysQuoteCmd(Jsi_Interp *interp, Jsi_Value *args, Jsi_Value *_this, Jsi_Value **ret, Jsi_Func *funcPtr) { Jsi_DString dStr = {}; ................................................................................ goto bail; break; } } if (opts.retChanged) Jsi_ValueMakeNumber(interp, ret, (Jsi_Number)sqlite3_changes(jdb->db)); else Jsi_ValueMakeStringDup(interp, ret, Jsi_DSValue(dStr)); if( rc==JSI_BREAK ) rc = JSI_OK; bail: dbEvalFinalize(&sEval); if (isopts) { Jsi_OptionsFree(interp, ExecFmtOptions, &opts, 0); } |
| | | < | < | < | | < | < | < | < | | < | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..... 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 ..... 18387 18388 18389 18390 18391 18392 18393 18394 18395 18396 18397 18398 18399 18400 18401 18402 18403 18404 18405 18406 18407 18408 ..... 27067 27068 27069 27070 27071 27072 27073 27074 27075 27076 27077 27078 27079 27080 27081 ..... 31932 31933 31934 31935 31936 31937 31938 31939 31940 31941 31942 31943 31944 31945 31946 31947 31948 31949 31950 31951 31952 31953 31954 31955 31956 31957 31958 31959 31960 31961 31962 31963 31964 ..... 34099 34100 34101 34102 34103 34104 34105 34106 34107 34108 34109 34110 34111 34112 34113 ..... 36213 36214 36215 36216 36217 36218 36219 36220 36221 36222 36223 36224 36225 36226 36227 ..... 37876 37877 37878 37879 37880 37881 37882 37883 37884 37885 37886 37887 37888 37889 37890 ..... 50987 50988 50989 50990 50991 50992 50993 50994 50995 50996 50997 50998 50999 51000 51001 |
/* jsi.h : External API header file for Jsi. */ #ifndef __JSI_H__ #define __JSI_H__ #define JSI_VERSION_MAJOR 2 #define JSI_VERSION_MINOR 8 #define JSI_VERSION_RELEASE 32 #define JSI_VERSION (JSI_VERSION_MAJOR + ((Jsi_Number)JSI_VERSION_MINOR/100.0) + ((Jsi_Number)JSI_VERSION_RELEASE/10000.0)) #ifndef JSI_EXTERN #define JSI_EXTERN extern #endif ................................................................................ int ui; for (ui=0; ui<4; ui++) ibuf[ui] = lexer_getchar(lex); ibuf[4] = 0; ui = Jsi_UtfDecode(ibuf, buf+bufi); if (ui>0) { if (!buf[bufi]) { Jsi_LogError("unsupported code literal utf null (u0000)"); buf[bufi++] = 0; goto done; } bufi+=ui; } else { Jsi_LogError("Unexpected utf encoding."); buf[bufi++] = 0; ................................................................................ Jsi_ValueMakeStringDup(interp, &rPtr, obj->d.s.str); } break; case JSI_OT_FUNCTION: { Jsi_DString dStr; Jsi_DSInit(&dStr); Jsi_FuncObjToString(interp, obj->d.fobj->func, &dStr, 3); Jsi_ValueFromDS(interp, &dStr, &rPtr); break; } case JSI_OT_USEROBJ: { Jsi_DString dStr; Jsi_DSInit(&dStr); jsi_UserObjToName(interp, obj->d.uobj, &dStr); Jsi_ValueFromDS(interp, &dStr, &rPtr); break; } default: Jsi_ValueMakeStringKey(interp,&rPtr, "[object Object]"); break; } Jsi_ValueReset(interp, vPtr); ................................................................................ Jsi_DSFree(&jStr); Jsi_DSFree(&kStr); return code; } else if (interp && interp->stdoutStr) { Jsi_DString dStr = {}; Jsi_DSAppend(&dStr, Jsi_ValueString(interp, interp->stdoutStr, NULL), NULL); Jsi_DSAppend(&dStr, str, NULL); Jsi_ValueFromDS(interp, &dStr, &interp->stdoutStr); } else return chan->fsPtr->putsProc(chan, str); } return 0; } ................................................................................ Jsi_ValueMakeNumber(interp, valuePtr, *(short *)ptr); break; case JSI_OPTION_USHORT: Jsi_ValueMakeNumber(interp, valuePtr, *(ushort *)ptr); break; case JSI_OPTION_DSTRING: Jsi_ValueFromDS(interp, (Jsi_DString*)ptr, valuePtr); break; case JSI_OPTION_TIME_W: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, (Jsi_Number)(*(Jsi_Wide*)ptr), "", 0, &dStr); Jsi_ValueFromDS(interp, &dStr, valuePtr); break; } case JSI_OPTION_TIME_D: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, (Jsi_Number)(*(double*)ptr), "", 0, &dStr); Jsi_ValueFromDS(interp, &dStr, valuePtr); break; } case JSI_OPTION_TIME_T: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, 1000LL* (Jsi_Number)*(time_t*)ptr, "%Y-%m-%d %H:%M:%S", 0, &dStr); Jsi_ValueFromDS(interp, &dStr, valuePtr); break; } case JSI_OPTION_STRBUF: if (ptr) Jsi_ValueMakeStringDup(interp, valuePtr, ptr); else Jsi_ValueMakeNull(interp, valuePtr); ................................................................................ if (jsv && Jsi_ValueGetBoolean(interp, jsv, &strict) != JSI_OK) return Jsi_LogError("Expected boolean"); int quote = JSI_OUTPUT_JSON; if (strict) quote|=JSI_JSON_STRICT; Jsi_DString dStr = {}; Jsi_Value *arg = Jsi_ValueArrayIndex(interp, args, 0); Jsi_ValueGetDString(interp, arg, &dStr, quote); Jsi_ValueFromDS(interp, &dStr, ret); return JSI_OK; } Jsi_RC Jsi_CommandInvoke(Jsi_Interp *interp, const char *cmdstr, Jsi_Value *args, Jsi_Value **ret) { Jsi_Value *func = Jsi_NameLookup(interp, cmdstr); if (func) ................................................................................ if (opts.secs) num = (Jsi_Number)((Jsi_Wide)(num*1000)); rc = Jsi_DatetimeFormat(interp, num, fmt, opts.utc, &dStr); } if (rc != JSI_OK) Jsi_LogError("%s", errMsg); else Jsi_ValueFromDS(interp, &dStr, ret); if (isOpt) Jsi_OptionsFree(interp, DateOptions, &opts, 0); Jsi_DSFree(&dStr); return rc; } #define FN_infovars JSI_INFO("\ ................................................................................ static Jsi_RC SysFormatCmd(Jsi_Interp *interp, Jsi_Value *args, Jsi_Value *_this, Jsi_Value **ret, Jsi_Func *funcPtr) { Jsi_DString dStr; Jsi_RC rc = Jsi_FormatString(interp, args, &dStr); if (rc != JSI_OK) return rc; Jsi_ValueFromDS(interp, &dStr, ret); return JSI_OK; } static Jsi_RC SysQuoteCmd(Jsi_Interp *interp, Jsi_Value *args, Jsi_Value *_this, Jsi_Value **ret, Jsi_Func *funcPtr) { Jsi_DString dStr = {}; ................................................................................ goto bail; break; } } if (opts.retChanged) Jsi_ValueMakeNumber(interp, ret, (Jsi_Number)sqlite3_changes(jdb->db)); else Jsi_ValueFromDS(interp, dStr, ret); if( rc==JSI_BREAK ) rc = JSI_OK; bail: dbEvalFinalize(&sEval); if (isopts) { Jsi_OptionsFree(interp, ExecFmtOptions, &opts, 0); } |
Changes to src/jsi.h.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/* jsi.h : External API header file for Jsi. */
#ifndef __JSI_H__
#define __JSI_H__
#define JSI_VERSION_MAJOR 2
#define JSI_VERSION_MINOR 8
#define JSI_VERSION_RELEASE 31
#define JSI_VERSION (JSI_VERSION_MAJOR + ((Jsi_Number)JSI_VERSION_MINOR/100.0) + ((Jsi_Number)JSI_VERSION_RELEASE/10000.0))
#ifndef JSI_EXTERN
#define JSI_EXTERN extern
#endif
|
| |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/* jsi.h : External API header file for Jsi. */
#ifndef __JSI_H__
#define __JSI_H__
#define JSI_VERSION_MAJOR 2
#define JSI_VERSION_MINOR 8
#define JSI_VERSION_RELEASE 32
#define JSI_VERSION (JSI_VERSION_MAJOR + ((Jsi_Number)JSI_VERSION_MINOR/100.0) + ((Jsi_Number)JSI_VERSION_RELEASE/10000.0))
#ifndef JSI_EXTERN
#define JSI_EXTERN extern
#endif
|
Changes to src/jsiCmds.c.
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
....
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
|
if (opts.secs) num = (Jsi_Number)((Jsi_Wide)(num*1000)); rc = Jsi_DatetimeFormat(interp, num, fmt, opts.utc, &dStr); } if (rc != JSI_OK) Jsi_LogError("%s", errMsg); else Jsi_ValueMakeStringDup(interp, ret, Jsi_DSValue(&dStr)); if (isOpt) Jsi_OptionsFree(interp, DateOptions, &opts, 0); Jsi_DSFree(&dStr); return rc; } #define FN_infovars JSI_INFO("\ ................................................................................ static Jsi_RC SysFormatCmd(Jsi_Interp *interp, Jsi_Value *args, Jsi_Value *_this, Jsi_Value **ret, Jsi_Func *funcPtr) { Jsi_DString dStr; Jsi_RC rc = Jsi_FormatString(interp, args, &dStr); if (rc != JSI_OK) return rc; Jsi_ValueMakeStringDup(interp, ret, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); return JSI_OK; } static Jsi_RC SysQuoteCmd(Jsi_Interp *interp, Jsi_Value *args, Jsi_Value *_this, Jsi_Value **ret, Jsi_Func *funcPtr) { Jsi_DString dStr = {}; |
|
|
<
|
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
....
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
|
if (opts.secs) num = (Jsi_Number)((Jsi_Wide)(num*1000)); rc = Jsi_DatetimeFormat(interp, num, fmt, opts.utc, &dStr); } if (rc != JSI_OK) Jsi_LogError("%s", errMsg); else Jsi_ValueFromDS(interp, &dStr, ret); if (isOpt) Jsi_OptionsFree(interp, DateOptions, &opts, 0); Jsi_DSFree(&dStr); return rc; } #define FN_infovars JSI_INFO("\ ................................................................................ static Jsi_RC SysFormatCmd(Jsi_Interp *interp, Jsi_Value *args, Jsi_Value *_this, Jsi_Value **ret, Jsi_Func *funcPtr) { Jsi_DString dStr; Jsi_RC rc = Jsi_FormatString(interp, args, &dStr); if (rc != JSI_OK) return rc; Jsi_ValueFromDS(interp, &dStr, ret); return JSI_OK; } static Jsi_RC SysQuoteCmd(Jsi_Interp *interp, Jsi_Value *args, Jsi_Value *_this, Jsi_Value **ret, Jsi_Func *funcPtr) { Jsi_DString dStr = {}; |
Changes to src/jsiFilesys.c.
1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 |
Jsi_DSFree(&jStr); Jsi_DSFree(&kStr); return code; } else if (interp && interp->stdoutStr) { Jsi_DString dStr = {}; Jsi_DSAppend(&dStr, Jsi_ValueString(interp, interp->stdoutStr, NULL), NULL); Jsi_DSAppend(&dStr, str, NULL); Jsi_ValueMakeStringDup(interp, &interp->stdoutStr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); } else return chan->fsPtr->putsProc(chan, str); } return 0; } |
| < |
1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 |
Jsi_DSFree(&jStr);
Jsi_DSFree(&kStr);
return code;
} else if (interp && interp->stdoutStr) {
Jsi_DString dStr = {};
Jsi_DSAppend(&dStr, Jsi_ValueString(interp, interp->stdoutStr, NULL), NULL);
Jsi_DSAppend(&dStr, str, NULL);
Jsi_ValueFromDS(interp, &dStr, &interp->stdoutStr);
} else
return chan->fsPtr->putsProc(chan, str);
}
return 0;
}
|
Changes to src/jsiJSON.c.
443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 |
if (jsv && Jsi_ValueGetBoolean(interp, jsv, &strict) != JSI_OK) return Jsi_LogError("Expected boolean"); int quote = JSI_OUTPUT_JSON; if (strict) quote|=JSI_JSON_STRICT; Jsi_DString dStr = {}; Jsi_Value *arg = Jsi_ValueArrayIndex(interp, args, 0); Jsi_ValueGetDString(interp, arg, &dStr, quote); Jsi_ValueMakeStringDup(interp, ret, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); return JSI_OK; } Jsi_RC Jsi_CommandInvoke(Jsi_Interp *interp, const char *cmdstr, Jsi_Value *args, Jsi_Value **ret) { Jsi_Value *func = Jsi_NameLookup(interp, cmdstr); if (func) |
| < |
443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 |
if (jsv && Jsi_ValueGetBoolean(interp, jsv, &strict) != JSI_OK) return Jsi_LogError("Expected boolean"); int quote = JSI_OUTPUT_JSON; if (strict) quote|=JSI_JSON_STRICT; Jsi_DString dStr = {}; Jsi_Value *arg = Jsi_ValueArrayIndex(interp, args, 0); Jsi_ValueGetDString(interp, arg, &dStr, quote); Jsi_ValueFromDS(interp, &dStr, ret); return JSI_OK; } Jsi_RC Jsi_CommandInvoke(Jsi_Interp *interp, const char *cmdstr, Jsi_Value *args, Jsi_Value **ret) { Jsi_Value *func = Jsi_NameLookup(interp, cmdstr); if (func) |
Changes to src/jsiLexer.c.
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
int ui;
for (ui=0; ui<4; ui++)
ibuf[ui] = lexer_getchar(lex);
ibuf[4] = 0;
ui = Jsi_UtfDecode(ibuf, buf+bufi);
if (ui>0) {
if (!buf[bufi]) {
Jsi_LogError("code literal utf null unsupported (u0000)");
buf[bufi++] = 0;
goto done;
}
bufi+=ui;
} else {
Jsi_LogError("Unexpected utf encoding.");
buf[bufi++] = 0;
|
| |
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
int ui;
for (ui=0; ui<4; ui++)
ibuf[ui] = lexer_getchar(lex);
ibuf[4] = 0;
ui = Jsi_UtfDecode(ibuf, buf+bufi);
if (ui>0) {
if (!buf[bufi]) {
Jsi_LogError("unsupported code literal utf null (u0000)");
buf[bufi++] = 0;
goto done;
}
bufi+=ui;
} else {
Jsi_LogError("Unexpected utf encoding.");
buf[bufi++] = 0;
|
Changes to src/jsiOptions.c.
705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 |
Jsi_ValueMakeNumber(interp, valuePtr, *(short *)ptr); break; case JSI_OPTION_USHORT: Jsi_ValueMakeNumber(interp, valuePtr, *(ushort *)ptr); break; case JSI_OPTION_DSTRING: Jsi_ValueMakeStringDup(interp, valuePtr, Jsi_DSValue((Jsi_DString*)ptr)); break; case JSI_OPTION_TIME_W: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, (Jsi_Number)(*(Jsi_Wide*)ptr), "", 0, &dStr); Jsi_ValueMakeStringDup(interp, valuePtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } case JSI_OPTION_TIME_D: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, (Jsi_Number)(*(double*)ptr), "", 0, &dStr); Jsi_ValueMakeStringDup(interp, valuePtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } case JSI_OPTION_TIME_T: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, 1000LL* (Jsi_Number)*(time_t*)ptr, "%Y-%m-%d %H:%M:%S", 0, &dStr); Jsi_ValueMakeStringDup(interp, valuePtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } case JSI_OPTION_STRBUF: if (ptr) Jsi_ValueMakeStringDup(interp, valuePtr, ptr); else Jsi_ValueMakeNull(interp, valuePtr); |
| | < | < | < |
705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 |
Jsi_ValueMakeNumber(interp, valuePtr, *(short *)ptr); break; case JSI_OPTION_USHORT: Jsi_ValueMakeNumber(interp, valuePtr, *(ushort *)ptr); break; case JSI_OPTION_DSTRING: Jsi_ValueFromDS(interp, (Jsi_DString*)ptr, valuePtr); break; case JSI_OPTION_TIME_W: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, (Jsi_Number)(*(Jsi_Wide*)ptr), "", 0, &dStr); Jsi_ValueFromDS(interp, &dStr, valuePtr); break; } case JSI_OPTION_TIME_D: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, (Jsi_Number)(*(double*)ptr), "", 0, &dStr); Jsi_ValueFromDS(interp, &dStr, valuePtr); break; } case JSI_OPTION_TIME_T: { Jsi_DString dStr = {}; Jsi_DatetimeFormat(interp, 1000LL* (Jsi_Number)*(time_t*)ptr, "%Y-%m-%d %H:%M:%S", 0, &dStr); Jsi_ValueFromDS(interp, &dStr, valuePtr); break; } case JSI_OPTION_STRBUF: if (ptr) Jsi_ValueMakeStringDup(interp, valuePtr, ptr); else Jsi_ValueMakeNull(interp, valuePtr); |
Changes to src/jsiSqlite.c.
3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 |
goto bail; break; } } if (opts.retChanged) Jsi_ValueMakeNumber(interp, ret, (Jsi_Number)sqlite3_changes(jdb->db)); else Jsi_ValueMakeStringDup(interp, ret, Jsi_DSValue(dStr)); if( rc==JSI_BREAK ) rc = JSI_OK; bail: dbEvalFinalize(&sEval); if (isopts) { Jsi_OptionsFree(interp, ExecFmtOptions, &opts, 0); } |
| |
3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 |
goto bail; break; } } if (opts.retChanged) Jsi_ValueMakeNumber(interp, ret, (Jsi_Number)sqlite3_changes(jdb->db)); else Jsi_ValueFromDS(interp, dStr, ret); if( rc==JSI_BREAK ) rc = JSI_OK; bail: dbEvalFinalize(&sEval); if (isopts) { Jsi_OptionsFree(interp, ExecFmtOptions, &opts, 0); } |
Changes to src/jsiValue.c.
840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 |
Jsi_ValueMakeStringDup(interp, &rPtr, obj->d.s.str); } break; case JSI_OT_FUNCTION: { Jsi_DString dStr; Jsi_DSInit(&dStr); Jsi_FuncObjToString(interp, obj->d.fobj->func, &dStr, 3); Jsi_ValueMakeStringDup(interp, &rPtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } case JSI_OT_USEROBJ: { Jsi_DString dStr; Jsi_DSInit(&dStr); jsi_UserObjToName(interp, obj->d.uobj, &dStr); Jsi_ValueMakeStringDup(interp, &rPtr, Jsi_DSValue(&dStr)); Jsi_DSFree(&dStr); break; } default: Jsi_ValueMakeStringKey(interp,&rPtr, "[object Object]"); break; } Jsi_ValueReset(interp, vPtr); |
| < | < |
840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 |
Jsi_ValueMakeStringDup(interp, &rPtr, obj->d.s.str); } break; case JSI_OT_FUNCTION: { Jsi_DString dStr; Jsi_DSInit(&dStr); Jsi_FuncObjToString(interp, obj->d.fobj->func, &dStr, 3); Jsi_ValueFromDS(interp, &dStr, &rPtr); break; } case JSI_OT_USEROBJ: { Jsi_DString dStr; Jsi_DSInit(&dStr); jsi_UserObjToName(interp, obj->d.uobj, &dStr); Jsi_ValueFromDS(interp, &dStr, &rPtr); break; } default: Jsi_ValueMakeStringKey(interp,&rPtr, "[object Object]"); break; } Jsi_ValueReset(interp, vPtr); |
Changes to tools/protos.jsi.
1 2 3 4 5 6 7 8 |
//JSI Command Prototypes: version 2.8.31
throw("NOT EXECUTABLE: USE FILE IN GEANY EDITOR FOR CMD LINE COMPLETION + GOTO TAG");
var Array = function(cmd,args) {};
Array.prototype.concat = function(...):array {};
Array.prototype.every = function(callback:function):any {};
Array.prototype.fill = function(value:any, start:number=0, end:number=-1):array {};
Array.prototype.filter = function(callback:function, this:object=void):array {};
|
| |
1 2 3 4 5 6 7 8 |
//JSI Command Prototypes: version 2.8.32
throw("NOT EXECUTABLE: USE FILE IN GEANY EDITOR FOR CMD LINE COMPLETION + GOTO TAG");
var Array = function(cmd,args) {};
Array.prototype.concat = function(...):array {};
Array.prototype.every = function(callback:function):any {};
Array.prototype.fill = function(value:any, start:number=0, end:number=-1):array {};
Array.prototype.filter = function(callback:function, this:object=void):array {};
|