@@ -21,10 +21,28 @@
21 21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include "config.h"
22 22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include <assert.h>
23 23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include <ctype.h>
24 24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include "wiki.h"
25 25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if INTERFACE
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** WikiClass struct holds information for matching a wiki page name.
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** It is constructed by load_wiki_classes() function and represents a
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** single well-formed line obtained from the 'wiki-classes' setting.
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct WikiClass {
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char * zPattern; /* pattern to match against */
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int isCaseIns; /* syntax flag: 0 for GLOB, 1 for LIKE */
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ short isAltPat; /* indicates an additional pattern for a class */
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char * zVisblty; /* visibility flag, one of: "s" "h" "d" "x" */
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char * zLabel; /* user-visible class name, same in HTML attrs */
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char * zParam; /* checkbox attr, like in <input name="..." /> */
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
26 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
27 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Return true if the input string is a well-formed wiki page name.
28 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
29 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Well-formed wiki page names do not begin or end with whitespace,
30 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and do not contain tabs or other control characters and do not
@@ -439,10 +457,126 @@
439 457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case WIKITYPE_TAG: return "tag";
440 458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case WIKITYPE_NORMAL:
441 459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default: return "normal";
442 460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
443 461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** load_wiki_classes() loads and parses the value of the 'wiki-classes'
465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** setting. Retrurns either NULL or a dynamically allocated array of
466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** WikiClasses (thus fossil_free() for the returned value is advised).
467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WikiClass* load_wiki_classes(
469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *nWC, /* number of well-formed elements in the returned array */
470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob *wcs /* holds a buffer for strings in the returned WikiClass'es */
471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char *zPN[] = { /* no malloc() for the common cases */
474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "wc0", "wc1", "wc2", "wc3", "wc4", "wc5", "wc6", "wc7",
475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "wc8", "wc9","wc10","wc11","wc12","wc13","wc14","wc15",
476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "wc16","wc17","wc18","wc19","wc20","wc21","wc22","wc23"
477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WikiClass* aWC = 0;
479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n = 0;
480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zWCS = db_get("wiki-classes",0);
481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zWCS && strlen(zWCS) >= 5 ){
482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob line = empty_blob;
483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nAlloc = 0;
484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_set_dynamic(wcs,zWCS);
485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( blob_line(wcs,&line) > 0 ){
486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob vis = empty_blob;
487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob lbl = empty_blob;
488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob pat = empty_blob;
489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WikiClass * wc;
490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *z;
491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int cins = 0;
492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char v;
493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( blob_token(&line,&vis) != 1 ){
494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue;
495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ v = vis.aData[0];
497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( v ){
498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'D':
499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'H':
500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'S':
501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'X':
502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cins = 1;
503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ vis.aData[0] = (char)tolower(v);
504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'd':
505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'h':
506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 's':
507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'x':
508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default:
510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ v = 0;
511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( v == 0 ) continue;
513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( blob_token(&line,&lbl) <= 0 ){
514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue;
515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_tail(&line,&pat);
517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* blob_to_lf_only(&pre); <-- this is redundant, isn't it ? */
518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_trim(&pat);
519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z = blob_terminate(&pat);
520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while(fossil_isspace(z[0])) z++;
521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( z[0] == 0 ){
522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue;
523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( n >= nAlloc ){
525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nAlloc += count(zPN);
526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aWC = (WikiClass*)( aWC ?
527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_realloc(aWC,sizeof(WikiClass)*nAlloc) :
528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_malloc_zero(sizeof(WikiClass)*nAlloc) );
529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wc = aWC + n;
531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wc->zPattern = z;
532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wc->isCaseIns = cins;
533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wc->zVisblty = blob_terminate(&vis);
534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wc->zLabel = blob_terminate(&lbl);
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wc->zParam = ( n < count(zPN) ? zPN[n] : mprintf("wc%d",n) );
536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( n > 0 && strcmp( wc->zLabel, wc[-1].zLabel ) == 0 ){
537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( wc->zVisblty[0] != wc[-1].zVisblty[0] ||
538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ strcmp( wc->zPattern, wc[-1].zPattern ) == 0 ){
539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue;
540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wc->isAltPat = 1;
542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wc->isAltPat = 0;
544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n++;
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nWC ) *nWC = n;
549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return aWC;
550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Find and return a WikiClass that matches a name of a wiki page.
553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Returns 0 if "fallback" pattern was not provisioned.
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const WikiClass* resolve_wiki_class(
556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zName, /* name of a wiki page that should be classified */
557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const WikiClass *aWC, /* pointer to the array of WikiClass'es */
558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nWC /* number of elements in the above array */
559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const WikiClass* fallback = 0;
561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( aWC && zName ){
562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for( i=0; i<nWC; i++ ){
564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const WikiClass* wc = aWC + i;
565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( wc->zPattern[0] == '*' && wc->zPattern[1] == 0 ){
566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !fallback ) fallback = wc;
567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( wc->isCaseIns ){
568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3_strlike( wc->zPattern, zName, 0 ) == 0 )
569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return wc;
570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3_strglob( wc->zPattern, zName ) == 0 )
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return wc;
573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return fallback;
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
444 578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
445 579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
446 580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Add an appropriate style_header() for either the /wiki or /wikiedit page
447 581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** for zPageName. zExtra is an empty string for /wiki but has the text
448 582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "Edit: " for /wikiedit.
@@ -1773,10 +1907,13 @@
1773 1907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void wcontent_page(void){
1774 1908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
1775 1909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double rNow;
1776 1910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int showAll = P("all")!=0;
1777 1911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int showRid = P("showid")!=0;
1912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob wcs = empty_blob;
1913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i, nWC = 0;
1914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WikiClass* aWC;
1778 1915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1779 1916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
1780 1917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
1781 1918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_set_current_feature("wiki");
1782 1919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_header("Available Wiki Pages");
@@ -1783,12 +1920,20 @@
1783 1920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( showAll ){
1784 1921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_submenu_element("Active", "%R/wcontent");
1785 1922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1786 1923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_submenu_element("All", "%R/wcontent?all=1");
1787 1924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aWC = load_wiki_classes(&nWC,&wcs);
1926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for( i=0; i<nWC; i++ ){
1927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const WikiClass * c = aWC + i;
1928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( c->isAltPat || c->zVisblty[0] == 'x' ) continue;
1929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ style_submenu_checkbox( c->zParam, c->zLabel,
1930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ c->zVisblty[0]=='d' ? STYLE_DISABLED : STYLE_NORMAL, c->zVisblty);
1931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1788 1932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wiki_standard_submenu(W_ALL_BUT(W_LIST));
1789 1933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q, listAllWikiPages/*works-like:""*/);
1934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <input hidden="hidden" id="page-reload-canary" type="checkbox"/>
1790 1935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <div class="brlist">
1791 1936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <table class='sortable' data-column-types='tKN' data-init-sort='1'>
1792 1937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <thead><tr>
1793 1938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <th>Name</th>
1794 1939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <th>Last Change</th>
@@ -1805,22 +1950,37 @@
1805 1950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
double rWmtime = db_column_double(&q, 3);
1806 1951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_int64 iMtime = (sqlite3_int64)(rWmtime*86400.0);
1807 1952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zAge;
1808 1953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int wcnt = db_column_int(&q, 4);
1809 1954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zWDisplayName;
1955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const WikiClass * wc = resolve_wiki_class(zWName,aWC,nWC);
1956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( wc && (wc->zVisblty[0] == 'x' || wc->zVisblty[0] == 'd') ){
1957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue;
1958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1810 1959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( sqlite3_strglob("checkin/*", zWName)==0 ){
1960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3_strglob("checkin/*", zWName)==0 ){ /* --?--> strncmp() */
1812 1961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zWDisplayName = mprintf("%.25s...", zWName);
1813 1962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zWDisplayName = mprintf("%s", zWName);
1963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zWDisplayName = mprintf("%s", zWName); /* --?--> fossil_strdup() */
1815 1964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1816 1966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( wrid==0 ){
1817 1967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !showAll ) continue;
1818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td data-sortkey="%h(zSort)">\
1968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(wc){
1969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr class="%h(wc->zLabel)">
1970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr>
1972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td data-sortkey="%h(zSort)">\
1819 1974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ %z(href("%R/whistory?name=%T",zWName))<s>%h(zWDisplayName)</s></a></td>
1820 1975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <tr><td data-sortkey="%h(zSort)">\
1976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(wc){
1977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr class="%h(wc->zLabel)">
1978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <tr>
1980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <td data-sortkey="%h(zSort)">\
1822 1982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ %z(href("%R/wiki?name=%T&p",zWName))%h(zWDisplayName)</a></td>
1823 1983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1824 1984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zAge = human_readable_age(rNow - rWmtime);
1825 1985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <td data-sortkey="%016llx(iMtime)">%s(zAge)</td>
1826 1986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(zAge);
@@ -1831,12 +1991,15 @@
1831 1991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tr>
1832 1992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(zWDisplayName);
1833 1993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1834 1994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </tbody></table></div>
1835 1995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
1996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ builtin_request_js("fossil.page.wcontent.js");
1836 1997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_table_sorter();
1837 1998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_finish_page();
1999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(aWC) fossil_free(aWC);
2000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&wcs); /* FIXME: it's an analog of fossil_free(), isn't it? */
1838 2001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1839 2002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1840 2003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1841 2004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** WEBPAGE: wfind
1842 2005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1843 2006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!