Compare commits
5 Commits
4f2e0245d3
...
0ec862eaac
| Author | SHA1 | Date | |
|---|---|---|---|
| 0ec862eaac | |||
| 7e1621dfb4 | |||
| c4d4e3822d | |||
| d2e5015eac | |||
| 510c2f81bd |
@@ -23,7 +23,7 @@ VERSION_NAME := This program kills fascists.
|
|||||||
|
|
||||||
IPHONEOS_VERSION_MIN=14.5
|
IPHONEOS_VERSION_MIN=14.5
|
||||||
|
|
||||||
SQLITE_URL := https://www.sqlite.org/2025/sqlite-amalgamation-3510000.zip
|
SQLITE_URL := https://www.sqlite.org/2025/sqlite-amalgamation-3510100.zip
|
||||||
BUNDLETOOL_URL := https://github.com/google/bundletool/releases/download/1.18.2/bundletool-all-1.18.2.jar
|
BUNDLETOOL_URL := https://github.com/google/bundletool/releases/download/1.18.2/bundletool-all-1.18.2.jar
|
||||||
APPIMAGETOOL_URL := https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
APPIMAGETOOL_URL := https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||||
APPIMAGETOOL_MD5 := e989fadfc4d685fd3d6aeeb9b525d74d out/appimagetool
|
APPIMAGETOOL_MD5 := e989fadfc4d685fd3d6aeeb9b525d74d out/appimagetool
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"type": "tildefriends-app",
|
"type": "tildefriends-app",
|
||||||
"emoji": "🦀",
|
"emoji": "🦀",
|
||||||
"previous": "&t4hk+Y6NB+TftzDLhJ9gUKLPU5YcFYvTEbJuTT2qPCQ=.sha256"
|
"previous": "&g0o5rMFQcyi3GwyWGrSQcQPPABae0yrUpVehztef3XE=.sha256"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,26 +196,6 @@ class TfMessageElement extends LitElement {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
flag(event) {
|
|
||||||
let reason = prompt(
|
|
||||||
'What is the reason for reporting this content (spam, nsfw, ...)?',
|
|
||||||
'offensive'
|
|
||||||
);
|
|
||||||
if (reason !== undefined) {
|
|
||||||
tfrpc.rpc
|
|
||||||
.appendMessage(this.whoami, {
|
|
||||||
type: 'flag',
|
|
||||||
flag: {
|
|
||||||
link: this.message.id,
|
|
||||||
reason: reason.length ? reason : undefined,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.catch(function (error) {
|
|
||||||
alert(error?.message);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
show_image(link) {
|
show_image(link) {
|
||||||
let div = document.createElement('div');
|
let div = document.createElement('div');
|
||||||
div.style.left = 0;
|
div.style.left = 0;
|
||||||
@@ -519,14 +499,11 @@ class TfMessageElement extends LitElement {
|
|||||||
</button>
|
</button>
|
||||||
`
|
`
|
||||||
: undefined}
|
: undefined}
|
||||||
<button class="w3-button w3-bar-item" @click=${this.react}>
|
|
||||||
👍 React
|
|
||||||
</button>
|
|
||||||
<button
|
<button
|
||||||
class="w3-button w3-bar-item w3-border-bottom"
|
class="w3-button w3-bar-item w3-border-bottom"
|
||||||
@click=${this.flag}
|
@click=${this.react}
|
||||||
>
|
>
|
||||||
⚠️ Flag
|
👍 React
|
||||||
</button>
|
</button>
|
||||||
${formats.map(
|
${formats.map(
|
||||||
([format, name]) => html`
|
([format, name]) => html`
|
||||||
@@ -988,11 +965,7 @@ class TfMessageElement extends LitElement {
|
|||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
@click=${(x) => this.toggle_expanded(':cw')}
|
@click=${(x) => this.toggle_expanded(':cw')}
|
||||||
>
|
>
|
||||||
<p>
|
<p>${content.contentWarning}</p>
|
||||||
${this.message.flags
|
|
||||||
? `Caution: This message has been flagged ${this.message.flags.length} time${this.message.flags.length == 1 ? '' : 's'}.`
|
|
||||||
: content.contentWarning}
|
|
||||||
</p>
|
|
||||||
<p class="w3-small">
|
<p class="w3-small">
|
||||||
${this.is_expanded(':cw') ? 'Show less' : 'Show more'}
|
${this.is_expanded(':cw') ? 'Show less' : 'Show more'}
|
||||||
</p>
|
</p>
|
||||||
@@ -1003,12 +976,11 @@ class TfMessageElement extends LitElement {
|
|||||||
<div @click=${this.body_click}>${body}</div>
|
<div @click=${this.body_click}>${body}</div>
|
||||||
${this.render_mentions()}
|
${this.render_mentions()}
|
||||||
`;
|
`;
|
||||||
let payload =
|
let payload = content.contentWarning
|
||||||
this.message.flags || content.contentWarning
|
? self.expanded[(this.message.id || '') + ':cw']
|
||||||
? self.expanded[(this.message.id || '') + ':cw']
|
? html` ${content_warning} ${content_html} `
|
||||||
? html` ${content_warning} ${content_html} `
|
: content_warning
|
||||||
: content_warning
|
: content_html;
|
||||||
: content_html;
|
|
||||||
return this.render_frame(html`
|
return this.render_frame(html`
|
||||||
${this.render_header()}
|
${this.render_header()}
|
||||||
<div class="w3-container">${payload}</div>
|
<div class="w3-container">${payload}</div>
|
||||||
@@ -1027,15 +999,13 @@ class TfMessageElement extends LitElement {
|
|||||||
`);
|
`);
|
||||||
} else if (content.type === 'blog') {
|
} else if (content.type === 'blog') {
|
||||||
let self = this;
|
let self = this;
|
||||||
tfrpc.rpc.get_blob(content.blog).then(function (data) {
|
self.blog_data = tfrpc.rpc.get_blob(content.blog).then(function (data) {
|
||||||
self.blog_data = data;
|
return data
|
||||||
|
? unsafeHTML(tfutils.markdown(data))
|
||||||
|
: html`Blog post content unavailable.`;
|
||||||
});
|
});
|
||||||
let payload = this.expanded[(this.message.id || '') + ':blog']
|
let payload = this.expanded[(this.message.id || '') + ':blog']
|
||||||
? html`<div>
|
? until(this.blog_data, 'Loading...')
|
||||||
${this.blog_data
|
|
||||||
? unsafeHTML(tfutils.markdown(this.blog_data))
|
|
||||||
: 'Loading...'}
|
|
||||||
</div>`
|
|
||||||
: undefined;
|
: undefined;
|
||||||
let body;
|
let body;
|
||||||
switch (this.format) {
|
switch (this.format) {
|
||||||
@@ -1048,15 +1018,24 @@ class TfMessageElement extends LitElement {
|
|||||||
case 'message':
|
case 'message':
|
||||||
body = html`
|
body = html`
|
||||||
<div
|
<div
|
||||||
style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px; cursor: pointer"
|
class="w3-border w3-theme-l4 w3-round-xlarge"
|
||||||
@click=${(x) => self.toggle_expanded(':blog')}>
|
style="padding: 8px; margin: 4px; cursor: pointer"
|
||||||
|
@click=${(x) => self.toggle_expanded(':blog')}
|
||||||
|
>
|
||||||
<h2>${content.title}</h2>
|
<h2>${content.title}</h2>
|
||||||
<div style="display: flex; flex-direction: row">
|
<div style="display: flex; flex-direction: row; gap: 8px">
|
||||||
<img src=/${content.thumbnail}/view></img>
|
${content.thumbnail
|
||||||
|
? html`<img src=/${content.thumbnail}/view style="max-width: 25vw; max-height: 25vw"></img>`
|
||||||
|
: undefined}
|
||||||
<span>${content.summary}</span>
|
<span>${content.summary}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<p class="w3-small">
|
||||||
|
${this.expanded[(this.message.id || '') + ':blog']
|
||||||
|
? 'Show less'
|
||||||
|
: 'Show more'}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
${payload}
|
<div class="w3-container">${payload}</div>
|
||||||
`;
|
`;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
2
deps/codemirror/cm6.js
vendored
2
deps/codemirror/cm6.js
vendored
File diff suppressed because one or more lines are too long
12
deps/codemirror_src/package-lock.json
generated
vendored
12
deps/codemirror_src/package-lock.json
generated
vendored
@@ -217,9 +217,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@lezer/common": {
|
"node_modules/@lezer/common": {
|
||||||
"version": "1.3.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.4.0.tgz",
|
||||||
"integrity": "sha512-L9X8uHCYU310o99L3/MpJKYxPzXPOS7S0NmBaM7UO/x2Kb2WbmMLSkfvdr1KxRIFYOpbY0Jhn7CfLSUDzL8arQ==",
|
"integrity": "sha512-DVeMRoGrgn/k45oQNu189BoW4SZwgZFzJ1+1TV5j2NJ/KFC83oa/enRqZSGshyeMk5cPWMhsKs9nx+8o0unwGg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@lezer/css": {
|
"node_modules/@lezer/css": {
|
||||||
@@ -276,9 +276,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@lezer/lr": {
|
"node_modules/@lezer/lr": {
|
||||||
"version": "1.4.3",
|
"version": "1.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.4.tgz",
|
||||||
"integrity": "sha512-yenN5SqAxAPv/qMnpWW0AT7l+SxVrgG+u0tNsRQWqbrz66HIl8DnEbBObvy21J5K7+I1v7gsAnlE2VQ5yYVSeA==",
|
"integrity": "sha512-LHL17Mq0OcFXm1pGQssuGTQFPPdxARjKM8f7GA5+sGtHi0K3R84YaSbmche0+RKWHnCsx9asEe5OWOI4FHfe4A==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@lezer/common": "^1.0.0"
|
"@lezer/common": "^1.0.0"
|
||||||
|
|||||||
2
deps/sqlite/shell.c
vendored
2
deps/sqlite/shell.c
vendored
@@ -14944,6 +14944,7 @@ static char *intckMprintf(sqlite3_intck *p, const char *zFmt, ...){
|
|||||||
sqlite3_free(zRet);
|
sqlite3_free(zRet);
|
||||||
zRet = 0;
|
zRet = 0;
|
||||||
}
|
}
|
||||||
|
va_end(ap);
|
||||||
return zRet;
|
return zRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29053,6 +29054,7 @@ static int do_meta_command(char *zLine, ShellState *p){
|
|||||||
}
|
}
|
||||||
p->showHeader = savedShowHeader;
|
p->showHeader = savedShowHeader;
|
||||||
p->shellFlgs = savedShellFlags;
|
p->shellFlgs = savedShellFlags;
|
||||||
|
rc = p->nErr>0;
|
||||||
}else
|
}else
|
||||||
|
|
||||||
if( c=='e' && cli_strncmp(azArg[0], "echo", n)==0 ){
|
if( c=='e' && cli_strncmp(azArg[0], "echo", n)==0 ){
|
||||||
|
|||||||
58
deps/sqlite/sqlite3.c
vendored
58
deps/sqlite/sqlite3.c
vendored
@@ -1,6 +1,6 @@
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
** This file is an amalgamation of many separate C source files from SQLite
|
** This file is an amalgamation of many separate C source files from SQLite
|
||||||
** version 3.51.0. By combining all the individual C code files into this
|
** version 3.51.1. By combining all the individual C code files into this
|
||||||
** single large file, the entire code can be compiled as a single translation
|
** single large file, the entire code can be compiled as a single translation
|
||||||
** unit. This allows many compilers to do optimizations that would not be
|
** unit. This allows many compilers to do optimizations that would not be
|
||||||
** possible if the files were compiled separately. Performance improvements
|
** possible if the files were compiled separately. Performance improvements
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
** separate file. This file contains only code for the core SQLite library.
|
** separate file. This file contains only code for the core SQLite library.
|
||||||
**
|
**
|
||||||
** The content in this amalgamation comes from Fossil check-in
|
** The content in this amalgamation comes from Fossil check-in
|
||||||
** fb2c931ae597f8d00a37574ff67aeed3eced with changes in files:
|
** 281fc0e9afc38674b9b0991943b9e9d1e64c with changes in files:
|
||||||
**
|
**
|
||||||
**
|
**
|
||||||
*/
|
*/
|
||||||
@@ -467,12 +467,12 @@ extern "C" {
|
|||||||
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
||||||
** [sqlite_version()] and [sqlite_source_id()].
|
** [sqlite_version()] and [sqlite_source_id()].
|
||||||
*/
|
*/
|
||||||
#define SQLITE_VERSION "3.51.0"
|
#define SQLITE_VERSION "3.51.1"
|
||||||
#define SQLITE_VERSION_NUMBER 3051000
|
#define SQLITE_VERSION_NUMBER 3051001
|
||||||
#define SQLITE_SOURCE_ID "2025-11-04 19:38:17 fb2c931ae597f8d00a37574ff67aeed3eced4e5547f9120744ae4bfa8e74527b"
|
#define SQLITE_SOURCE_ID "2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88"
|
||||||
#define SQLITE_SCM_BRANCH "trunk"
|
#define SQLITE_SCM_BRANCH "branch-3.51"
|
||||||
#define SQLITE_SCM_TAGS "release major-release version-3.51.0"
|
#define SQLITE_SCM_TAGS "release version-3.51.1"
|
||||||
#define SQLITE_SCM_DATETIME "2025-11-04T19:38:17.314Z"
|
#define SQLITE_SCM_DATETIME "2025-11-28T17:28:25.933Z"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Run-Time Library Version Numbers
|
** CAPI3REF: Run-Time Library Version Numbers
|
||||||
@@ -10747,7 +10747,7 @@ SQLITE_API int sqlite3_vtab_in(sqlite3_index_info*, int iCons, int bHandle);
|
|||||||
** ){
|
** ){
|
||||||
** // do something with pVal
|
** // do something with pVal
|
||||||
** }
|
** }
|
||||||
** if( rc!=SQLITE_OK ){
|
** if( rc!=SQLITE_DONE ){
|
||||||
** // an error has occurred
|
** // an error has occurred
|
||||||
** }
|
** }
|
||||||
** </pre></blockquote>)^
|
** </pre></blockquote>)^
|
||||||
@@ -38004,6 +38004,7 @@ SQLITE_PRIVATE void *sqlite3HashInsert(Hash *pH, const char *pKey, void *data){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/************** End of hash.c ************************************************/
|
/************** End of hash.c ************************************************/
|
||||||
/************** Begin file opcodes.c *****************************************/
|
/************** Begin file opcodes.c *****************************************/
|
||||||
/* Automatically generated. Do not edit */
|
/* Automatically generated. Do not edit */
|
||||||
@@ -130655,6 +130656,7 @@ SQLITE_PRIVATE void sqlite3SchemaClear(void *p){
|
|||||||
for(pElem=sqliteHashFirst(&temp2); pElem; pElem=sqliteHashNext(pElem)){
|
for(pElem=sqliteHashFirst(&temp2); pElem; pElem=sqliteHashNext(pElem)){
|
||||||
sqlite3DeleteTrigger(&xdb, (Trigger*)sqliteHashData(pElem));
|
sqlite3DeleteTrigger(&xdb, (Trigger*)sqliteHashData(pElem));
|
||||||
}
|
}
|
||||||
|
|
||||||
sqlite3HashClear(&temp2);
|
sqlite3HashClear(&temp2);
|
||||||
sqlite3HashInit(&pSchema->tblHash);
|
sqlite3HashInit(&pSchema->tblHash);
|
||||||
for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){
|
for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){
|
||||||
@@ -160976,9 +160978,12 @@ SQLITE_PRIVATE int sqlite3VtabEponymousTableInit(Parse *pParse, Module *pMod){
|
|||||||
addModuleArgument(pParse, pTab, sqlite3DbStrDup(db, pTab->zName));
|
addModuleArgument(pParse, pTab, sqlite3DbStrDup(db, pTab->zName));
|
||||||
addModuleArgument(pParse, pTab, 0);
|
addModuleArgument(pParse, pTab, 0);
|
||||||
addModuleArgument(pParse, pTab, sqlite3DbStrDup(db, pTab->zName));
|
addModuleArgument(pParse, pTab, sqlite3DbStrDup(db, pTab->zName));
|
||||||
|
db->nSchemaLock++;
|
||||||
rc = vtabCallConstructor(db, pTab, pMod, pModule->xConnect, &zErr);
|
rc = vtabCallConstructor(db, pTab, pMod, pModule->xConnect, &zErr);
|
||||||
|
db->nSchemaLock--;
|
||||||
if( rc ){
|
if( rc ){
|
||||||
sqlite3ErrorMsg(pParse, "%s", zErr);
|
sqlite3ErrorMsg(pParse, "%s", zErr);
|
||||||
|
pParse->rc = rc;
|
||||||
sqlite3DbFree(db, zErr);
|
sqlite3DbFree(db, zErr);
|
||||||
sqlite3VtabEponymousTableClear(db, pMod);
|
sqlite3VtabEponymousTableClear(db, pMod);
|
||||||
}
|
}
|
||||||
@@ -174040,8 +174045,22 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){
|
|||||||
sqlite3VdbeAddOp2(v, OP_Goto, 1, pLevel->p2);
|
sqlite3VdbeAddOp2(v, OP_Goto, 1, pLevel->p2);
|
||||||
}
|
}
|
||||||
#endif /* SQLITE_DISABLE_SKIPAHEAD_DISTINCT */
|
#endif /* SQLITE_DISABLE_SKIPAHEAD_DISTINCT */
|
||||||
if( pTabList->a[pLevel->iFrom].fg.fromExists ){
|
if( pTabList->a[pLevel->iFrom].fg.fromExists && i==pWInfo->nLevel-1 ){
|
||||||
sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+2);
|
/* If the EXISTS-to-JOIN optimization was applied, then the EXISTS
|
||||||
|
** loop(s) will be the inner-most loops of the join. There might be
|
||||||
|
** multiple EXISTS loops, but they will all be nested, and the join
|
||||||
|
** order will not have been changed by the query planner. If the
|
||||||
|
** inner-most EXISTS loop sees a single successful row, it should
|
||||||
|
** break out of *all* EXISTS loops. But only the inner-most of the
|
||||||
|
** nested EXISTS loops should do this breakout. */
|
||||||
|
int nOuter = 0; /* Nr of outer EXISTS that this one is nested within */
|
||||||
|
while( nOuter<i ){
|
||||||
|
if( !pTabList->a[pLevel[-nOuter-1].iFrom].fg.fromExists ) break;
|
||||||
|
nOuter++;
|
||||||
|
}
|
||||||
|
testcase( nOuter>0 );
|
||||||
|
sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel[-nOuter].addrBrk);
|
||||||
|
VdbeComment((v, "EXISTS break"));
|
||||||
}
|
}
|
||||||
/* The common case: Advance to the next row */
|
/* The common case: Advance to the next row */
|
||||||
if( pLevel->addrCont ) sqlite3VdbeResolveLabel(v, pLevel->addrCont);
|
if( pLevel->addrCont ) sqlite3VdbeResolveLabel(v, pLevel->addrCont);
|
||||||
@@ -186225,6 +186244,7 @@ SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3 *db){
|
|||||||
/* Clear the TEMP schema separately and last */
|
/* Clear the TEMP schema separately and last */
|
||||||
if( db->aDb[1].pSchema ){
|
if( db->aDb[1].pSchema ){
|
||||||
sqlite3SchemaClear(db->aDb[1].pSchema);
|
sqlite3SchemaClear(db->aDb[1].pSchema);
|
||||||
|
assert( db->aDb[1].pSchema->trigHash.count==0 );
|
||||||
}
|
}
|
||||||
sqlite3VtabUnlockList(db);
|
sqlite3VtabUnlockList(db);
|
||||||
|
|
||||||
@@ -187553,7 +187573,7 @@ SQLITE_API const char *sqlite3_errmsg(sqlite3 *db){
|
|||||||
*/
|
*/
|
||||||
SQLITE_API int sqlite3_set_errmsg(sqlite3 *db, int errcode, const char *zMsg){
|
SQLITE_API int sqlite3_set_errmsg(sqlite3 *db, int errcode, const char *zMsg){
|
||||||
int rc = SQLITE_OK;
|
int rc = SQLITE_OK;
|
||||||
if( !sqlite3SafetyCheckSickOrOk(db) ){
|
if( !sqlite3SafetyCheckOk(db) ){
|
||||||
return SQLITE_MISUSE_BKPT;
|
return SQLITE_MISUSE_BKPT;
|
||||||
}
|
}
|
||||||
sqlite3_mutex_enter(db->mutex);
|
sqlite3_mutex_enter(db->mutex);
|
||||||
@@ -249220,6 +249240,7 @@ static void fts5SegIterReverseInitPage(Fts5Index *p, Fts5SegIter *pIter){
|
|||||||
while( 1 ){
|
while( 1 ){
|
||||||
u64 iDelta = 0;
|
u64 iDelta = 0;
|
||||||
|
|
||||||
|
if( i>=n ) break;
|
||||||
if( eDetail==FTS5_DETAIL_NONE ){
|
if( eDetail==FTS5_DETAIL_NONE ){
|
||||||
/* todo */
|
/* todo */
|
||||||
if( i<n && a[i]==0 ){
|
if( i<n && a[i]==0 ){
|
||||||
@@ -260283,7 +260304,7 @@ static void fts5SourceIdFunc(
|
|||||||
){
|
){
|
||||||
assert( nArg==0 );
|
assert( nArg==0 );
|
||||||
UNUSED_PARAM2(nArg, apUnused);
|
UNUSED_PARAM2(nArg, apUnused);
|
||||||
sqlite3_result_text(pCtx, "fts5: 2025-11-04 19:38:17 fb2c931ae597f8d00a37574ff67aeed3eced4e5547f9120744ae4bfa8e74527b", -1, SQLITE_TRANSIENT);
|
sqlite3_result_text(pCtx, "fts5: 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88", -1, SQLITE_TRANSIENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -265104,7 +265125,12 @@ static int fts5VocabOpenMethod(
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Restore cursor pCsr to the state it was in immediately after being
|
||||||
|
** created by the xOpen() method.
|
||||||
|
*/
|
||||||
static void fts5VocabResetCursor(Fts5VocabCursor *pCsr){
|
static void fts5VocabResetCursor(Fts5VocabCursor *pCsr){
|
||||||
|
int nCol = pCsr->pFts5->pConfig->nCol;
|
||||||
pCsr->rowid = 0;
|
pCsr->rowid = 0;
|
||||||
sqlite3Fts5IterClose(pCsr->pIter);
|
sqlite3Fts5IterClose(pCsr->pIter);
|
||||||
sqlite3Fts5StructureRelease(pCsr->pStruct);
|
sqlite3Fts5StructureRelease(pCsr->pStruct);
|
||||||
@@ -265114,6 +265140,12 @@ static void fts5VocabResetCursor(Fts5VocabCursor *pCsr){
|
|||||||
pCsr->nLeTerm = -1;
|
pCsr->nLeTerm = -1;
|
||||||
pCsr->zLeTerm = 0;
|
pCsr->zLeTerm = 0;
|
||||||
pCsr->bEof = 0;
|
pCsr->bEof = 0;
|
||||||
|
pCsr->iCol = 0;
|
||||||
|
pCsr->iInstPos = 0;
|
||||||
|
pCsr->iInstOff = 0;
|
||||||
|
pCsr->colUsed = 0;
|
||||||
|
memset(pCsr->aCnt, 0, sizeof(i64)*nCol);
|
||||||
|
memset(pCsr->aDoc, 0, sizeof(i64)*nCol);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
14
deps/sqlite/sqlite3.h
vendored
14
deps/sqlite/sqlite3.h
vendored
@@ -146,12 +146,12 @@ extern "C" {
|
|||||||
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
|
||||||
** [sqlite_version()] and [sqlite_source_id()].
|
** [sqlite_version()] and [sqlite_source_id()].
|
||||||
*/
|
*/
|
||||||
#define SQLITE_VERSION "3.51.0"
|
#define SQLITE_VERSION "3.51.1"
|
||||||
#define SQLITE_VERSION_NUMBER 3051000
|
#define SQLITE_VERSION_NUMBER 3051001
|
||||||
#define SQLITE_SOURCE_ID "2025-11-04 19:38:17 fb2c931ae597f8d00a37574ff67aeed3eced4e5547f9120744ae4bfa8e74527b"
|
#define SQLITE_SOURCE_ID "2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88"
|
||||||
#define SQLITE_SCM_BRANCH "trunk"
|
#define SQLITE_SCM_BRANCH "branch-3.51"
|
||||||
#define SQLITE_SCM_TAGS "release major-release version-3.51.0"
|
#define SQLITE_SCM_TAGS "release version-3.51.1"
|
||||||
#define SQLITE_SCM_DATETIME "2025-11-04T19:38:17.314Z"
|
#define SQLITE_SCM_DATETIME "2025-11-28T17:28:25.933Z"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** CAPI3REF: Run-Time Library Version Numbers
|
** CAPI3REF: Run-Time Library Version Numbers
|
||||||
@@ -10426,7 +10426,7 @@ SQLITE_API int sqlite3_vtab_in(sqlite3_index_info*, int iCons, int bHandle);
|
|||||||
** ){
|
** ){
|
||||||
** // do something with pVal
|
** // do something with pVal
|
||||||
** }
|
** }
|
||||||
** if( rc!=SQLITE_OK ){
|
** if( rc!=SQLITE_DONE ){
|
||||||
** // an error has occurred
|
** // an error has occurred
|
||||||
** }
|
** }
|
||||||
** </pre></blockquote>)^
|
** </pre></blockquote>)^
|
||||||
|
|||||||
@@ -179,14 +179,14 @@ try:
|
|||||||
select(driver, ['//button[text()="✅ Allow"]'], ('click',))
|
select(driver, ['//button[text()="✅ Allow"]'], ('click',))
|
||||||
words = select(driver, ['#document', 'frame', '//li//textarea']).get_attribute('value')
|
words = select(driver, ['#document', 'frame', '//li//textarea']).get_attribute('value')
|
||||||
select(driver, ['#document', 'frame', '//li/button[text()="Delete Identity"]'], ('click',))
|
select(driver, ['#document', 'frame', '//li/button[text()="Delete Identity"]'], ('click',))
|
||||||
driver.switch_to.alert.send_keys('DELETE')
|
wait.until(expected_conditions.alert_is_present()).send_keys('DELETE')
|
||||||
driver.switch_to.alert.accept()
|
wait.until(expected_conditions.alert_is_present()).accept()
|
||||||
select(driver, ['//button[text()="✅ Allow"]'], ('click',))
|
select(driver, ['//button[text()="✅ Allow"]'], ('click',))
|
||||||
driver.switch_to.alert.accept()
|
wait.until(expected_conditions.alert_is_present()).accept()
|
||||||
words = select(driver, ['#document', 'frame', '//textarea'], ('send_keys', words))
|
words = select(driver, ['#document', 'frame', '//textarea'], ('send_keys', words))
|
||||||
select(driver, ['#document', 'frame', '//button[text()="Import Identity"]'], ('click',))
|
select(driver, ['#document', 'frame', '//button[text()="Import Identity"]'], ('click',))
|
||||||
select(driver, ['//button[text()="✅ Allow"]'], ('click',))
|
select(driver, ['//button[text()="✅ Allow"]'], ('click',))
|
||||||
driver.switch_to.alert.accept()
|
wait.until(expected_conditions.alert_is_present()).accept()
|
||||||
driver.switch_to.frame(wait.until(expected_conditions.presence_of_element_located((By.ID, 'document'))))
|
driver.switch_to.frame(wait.until(expected_conditions.presence_of_element_located((By.ID, 'document'))))
|
||||||
id1 = select(driver, ['#document', 'frame', 'li']).text.split(' ')[-1]
|
id1 = select(driver, ['#document', 'frame', 'li']).text.split(' ')[-1]
|
||||||
assert id0 == id1
|
assert id0 == id1
|
||||||
@@ -197,16 +197,16 @@ try:
|
|||||||
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
||||||
select(driver, ['//label[text()="Remember this decision."]'], ('click',))
|
select(driver, ['//label[text()="Remember this decision."]'], ('click',))
|
||||||
select(driver, ['//button[text()="❌ Deny"]'], ('click',))
|
select(driver, ['//button[text()="❌ Deny"]'], ('click',))
|
||||||
driver.switch_to.alert.accept()
|
wait.until(expected_conditions.alert_is_present()).accept()
|
||||||
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
||||||
driver.switch_to.alert.accept()
|
wait.until(expected_conditions.alert_is_present()).accept()
|
||||||
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
||||||
select(driver, ['tf-navigation', 'shadow_root', '=🎛️'], ('click',))
|
select(driver, ['tf-navigation', 'shadow_root', '=🎛️'], ('click',))
|
||||||
select(driver, ['tf-navigation', 'shadow_root', '#permission_reset:ssb_append'], ('click',))
|
select(driver, ['tf-navigation', 'shadow_root', '#permission_reset:ssb_append'], ('click',))
|
||||||
select(driver, ['tf-navigation', 'shadow_root', '#permissions_close'], ('click',))
|
select(driver, ['tf-navigation', 'shadow_root', '#permissions_close'], ('click',))
|
||||||
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
||||||
select(driver, ['//button[text()="❌ Deny"]'], ('click',))
|
select(driver, ['//button[text()="❌ Deny"]'], ('click',))
|
||||||
driver.switch_to.alert.accept()
|
wait.until(expected_conditions.alert_is_present()).accept()
|
||||||
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#submit'], ('click',))
|
||||||
select(driver, ['//button[text()="✅ Allow"]'], ('click',))
|
select(driver, ['//button[text()="✅ Allow"]'], ('click',))
|
||||||
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#edit'], ('send_keys', 'Hello, world 2!'))
|
select(driver, ['#document', 'frame', 'tf-app', 'shadow_root', '#tf-tab-news', 'shadow_root', '#tf-compose', 'shadow_root', '#edit'], ('send_keys', 'Hello, world 2!'))
|
||||||
|
|||||||
Reference in New Issue
Block a user