@@ -20,18 +20,23 @@
20 20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include "config.h"
21 21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include <assert.h>
22 22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include <ctype.h>
23 23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include "pikchrshow.h"
24 24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #ifdef INTERFACE
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if INTERFACE
26 26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* These are described in pikchr_process()'s docs. */
27 27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define PIKCHR_PROCESS_TH1 0x01
28 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define PIKCHR_PROCESS_TH1_NOSVG 0x02
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define PIKCHR_PROCESS_DIV 0x04
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define PIKCHR_PROCESS_NONCE 0x08
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define PIKCHR_PROCESS_ERR_PRE 0x10
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define PIKCHR_PROCESS_NO_SRC 0x20
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_NONCE 0x04
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_ERR_PRE 0x08
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_SRC 0x10
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_SRC_HIDDEN 0x20
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_DIV 0x40
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_DIV_INDENT 0x0100
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_DIV_CENTER 0x0200
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_DIV_FLOAT_LEFT 0x0400
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define PIKCHR_PROCESS_DIV_FLOAT_RIGHT 0x0800
33 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
34 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
35 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
36 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Processes a pikchr script, optionally with embedded TH1. zIn is the
37 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** input script. pikFlags may be a bitmask of any of the
@@ -49,38 +54,62 @@
49 54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** init flags specified in the 3rd argument. If thFlags is non-0 then
50 55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** this flag is assumed even if it is not specified.
51 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
52 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** - PIKCHR_PROCESS_TH1_NOSVG means that processing stops after the
53 58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TH1 step, thus the output will be (presumably) a
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** TH1-generated/processed pikchr script, and not an SVG. If this flag
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is set, PIKCHR_PROCESS_TH1 is assumed even if it is not specified.
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** TH1-generated/processed pikchr script (or whatever else the TH1
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** outputs). If this flag is set, PIKCHR_PROCESS_TH1 is assumed even
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** if it is not specified.
56 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
57 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The remaining flags listed below are ignored if
58 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** PIKCHR_PROCESS_TH1_NOSVG is specified:
59 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - PIKCHR_PROCESS_NO_SRC: by default the contents of zIn are stored
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in the resulting SVG content, as part of the image metadata. That
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** is suppressed if this flag is set.
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
64 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** - PIKCHR_PROCESS_DIV: if set, the SVG result is wrapped in a DIV
65 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** element which specifies a max-width style value based on the SVG's
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** calculated size.
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** calculated size. This flag has multiple mutually exclusive forms:
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - PIKCHR_PROCESS_DIV uses default element alignment.
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - PIKCHR_PROCESS_DIV_INDENT indents the div.
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - PIKCHR_PROCESS_DIV_CENTER centers the div.
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - PIKCHR_PROCESS_DIV_FLOAT_LEFT floats the div left.
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - PIKCHR_PROCESS_DIV_FLOAT_RIGHT floats the div right.
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If more than one is specified, which one is used is undefined.
67 77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** - PIKCHR_PROCESS_NONCE: if set, the resulting SVG/DEV are wrapped
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - PIKCHR_PROCESS_NONCE: if set, the resulting SVG/DIV are wrapped
69 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** in "safe nonce" comments, which are a fossil-internal mechanism
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** which prevents the wiki/markdown processors from processing this
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** which prevents the wiki/markdown processors from re-processing this
71 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** output.
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - PIKCHR_PROCESS_SRC: if set, a new TEXTAREA.pikchr-src element is injected
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** adjacet to the SVG element which contains the HTML-escaped content of
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the input script.
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** - PIKCHR_PROCESS_SRC_HIDDEN: exactly like PIKCHR_PROCESS_SRC but
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** the .pikchr-src tag also gets the CSS class 'hidden' (which, in
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** fossil's default CSS, will hide that element).
72 90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
73 91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** - PIKCHR_PROCESS_ERR_PRE: if set and pikchr() fails, the resulting
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** error report is wrapped in PRE element.
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** error report is wrapped in a PRE element, else it is retained
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** as-is (intended for console output).
75 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
76 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int pikchr_process(const char * zIn, int pikFlags, int thFlags,
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob * pOut){
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob * pOut){
78 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob bIn = empty_blob;
79 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isErr = 0;
80 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!(PIKCHR_PROCESS_DIV & pikFlags)
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If any DIV_xxx flags are set, set DIV */
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && (PIKCHR_PROCESS_DIV_INDENT
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | PIKCHR_PROCESS_DIV_CENTER
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | PIKCHR_PROCESS_DIV_FLOAT_RIGHT
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | PIKCHR_PROCESS_DIV_FLOAT_LEFT
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ) & pikFlags){
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pikFlags |= PIKCHR_PROCESS_DIV;
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
81 109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!(PIKCHR_PROCESS_TH1 & pikFlags)
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If any TH1_xxx flags are set, set TH1 */
82 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& (PIKCHR_PROCESS_TH1_NOSVG & pikFlags || thFlags!=0)){
83 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pikFlags |= PIKCHR_PROCESS_TH1;
84 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
85 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(PIKCHR_PROCESS_TH1 & pikFlags){
86 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob out = empty_blob;
@@ -100,26 +129,45 @@
100 129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(pOut, blob_str(&bIn), blob_size(&bIn));
101 130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
102 131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int w = 0, h = 0;
103 132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char * zContent = blob_str(&bIn);
104 133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zOut;
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const unsigned int pikFlags2 = (PIKCHR_PROCESS_NO_SRC & pikFlags)
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ? 0 : PIKCHR_INCLUDE_SOURCE;
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zOut = pikchr(zContent, "pikchr", pikFlags2, &w, &h);
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zOut = pikchr(zContent, "pikchr", 0, &w, &h);
109 136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( w>0 && h>0 ){
110 137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zNonce = (PIKCHR_PROCESS_NONCE & pikFlags)
111 138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
? safe_html_nonce(1) : 0;
112 139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(zNonce){
113 140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(pOut, zNonce, -1);
114 141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
115 142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(PIKCHR_PROCESS_DIV & pikFlags){
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(pOut,"<div style='max-width:%dpx;'>\n", w);
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob css = empty_blob;
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&css, "max-width:%dpx;", w);
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(PIKCHR_PROCESS_DIV_CENTER & pikFlags){
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&css, "display:block;margin-auto;", -1);
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(PIKCHR_PROCESS_DIV_INDENT & pikFlags){
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&css, "margin-left:4em", -1);
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(PIKCHR_PROCESS_DIV_FLOAT_LEFT & pikFlags){
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&css, "float:left;padding=4em;", -1);
151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(PIKCHR_PROCESS_DIV_FLOAT_RIGHT & pikFlags){
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&css, "float:right;padding=4em;", -1);
153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pOut,"<div class=\"pikchr\" style=\"%b\">\n", &css);
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&css);
117 156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
118 157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(pOut, zOut, -1);
158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if((PIKCHR_PROCESS_SRC & pikFlags)
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (PIKCHR_PROCESS_SRC_HIDDEN & pikFlags)){
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(pOut, "<textarea rows='10' readonly "
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "class='pikchr-src%s'>"
162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "%h</textarea>\n",
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (PIKCHR_PROCESS_SRC_HIDDEN & pikFlags)
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ? " hidden" : "",
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_str(&bIn));
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
119 167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(PIKCHR_PROCESS_DIV & pikFlags){
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(pOut,"</div>\n", 7);
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(pOut, "</div>\n", 7);
121 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
122 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(zNonce){
123 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(pOut, zNonce, -1);
124 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125 173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
@@ -150,10 +198,13 @@
150 198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** value to pre-populate the editor with that code.
151 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
152 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void pikchrshow_page(void){
153 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zContent = 0;
154 202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isDark; /* true if the current skin is "dark" */
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int pikFlags = PIKCHR_PROCESS_DIV
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | PIKCHR_PROCESS_SRC_HIDDEN
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ | PIKCHR_PROCESS_ERR_PRE;
155 206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
156 207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
157 208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !g.perm.RdWiki && !g.perm.Read && !g.perm.RdForum ){
158 209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_redirectf("%s/login?g=%s/pikchrshow", g.zTop, g.zTop);
159 210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -162,13 +213,11 @@
162 213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Called from the JS-side preview updater. */
163 214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_set_content_type("text/html");
164 215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(zContent && *zContent){
165 216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob out = empty_blob;
166 217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const int isErr =
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pikchr_process(zContent,
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- PIKCHR_PROCESS_DIV | PIKCHR_PROCESS_ERR_PRE,
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 0, &out);
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pikchr_process(zContent, pikFlags, 0, &out);
170 219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(isErr){
171 220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_printf_header("x-pikchrshow-is-error: %d\r\n", isErr);
172 221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
173 222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("%b", &out);
174 223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&out);
@@ -268,12 +317,11 @@
268 317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Reminder: Firefox does not properly flexbox a LEGEND
269 318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
element, always flowing it in column mode. */);
270 319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("<div id='pikchrshow-output'>");
271 320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(*zContent){
272 321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob out = empty_blob;
273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pikchr_process(zContent, PIKCHR_PROCESS_ERR_PRE
274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- | PIKCHR_PROCESS_DIV, 0, &out);
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pikchr_process(zContent, pikFlags, 0, &out);
275 323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
CX("%b", &out);
276 324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&out);
277 325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} CX("</div>"/*#pikchrshow-output*/);
278 326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} CX("</fieldset>"/*#pikchrshow-output-wrapper*/);
279 327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} CX("</div>"/*sbs-wrapper*/);
@@ -299,15 +347,23 @@
299 347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
300 348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Options:
301 349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
302 350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -div On success, adds a DIV wrapper around the
303 351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** resulting SVG output which limits its max-width to
304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** its computed maximum ideal size, in order to mimic
305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** how fossil's web-based components work.
352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** its computed maximum ideal size.
353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -div-indent Like -div but indents the div.
355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -div-center Like -div but centers the div.
357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -div-left Like -div but floats the div left.
359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -div-right Like -div but floats the div right.
306 361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -svg-src Stores the input pikchr's source code in the SVG's
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** metadata.
362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -svg-src Stores the input pikchr's source code in the output as
363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a separate element adjacent to the SVG one. The
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** source element initially has the "hidden" CSS class.
309 365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
310 366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -th Process the input using TH1 before passing it to pikchr.
311 367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
312 368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -th-novar Disable $var and $<var> TH1 processing. Use this if the
313 369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pikchr script uses '$' for its own purposes and that
@@ -340,20 +396,32 @@
340 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void pikchr_cmd(void){
341 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob bIn = empty_blob;
342 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob bOut = empty_blob;
343 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char * zInfile = "-";
344 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char * zOutfile = "-";
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const int fWithDiv = find_option("div",0,0)!=0;
346 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const int fTh1 = find_option("th",0,0)!=0;
347 402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const int fNosvg = find_option("th-nosvg",0,0)!=0;
348 403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isErr = 0;
349 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int pikFlags = find_option("svg-src",0,0)!=0
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ? 0 : PIKCHR_PROCESS_NO_SRC;
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ? PIKCHR_PROCESS_SRC_HIDDEN : 0;
351 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u32 fThFlags = TH_INIT_NO_ENCODE
352 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
| (find_option("th-novar",0,0)!=0 ? TH_R2B_NO_VARS : 0);
353 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
354 409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Th_InitTraceLog()/*processes -th-trace flag*/;
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(find_option("div",0,0)!=0){
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pikFlags |= PIKCHR_PROCESS_DIV;
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(find_option("div-indent",0,0)!=0){
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pikFlags |= PIKCHR_PROCESS_DIV_INDENT;
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(find_option("div-center",0,0)!=0){
416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pikFlags |= PIKCHR_PROCESS_DIV_CENTER;
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(find_option("div-float-left",0,0)!=0){
418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pikFlags |= PIKCHR_PROCESS_DIV_FLOAT_LEFT;
419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(find_option("div-float-right",0,0)!=0){
420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pikFlags |= PIKCHR_PROCESS_DIV_FLOAT_RIGHT;
421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
355 423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
verify_all_options();
356 424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(g.argc>4){
357 425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
usage("?INFILE? ?OUTFILE?");
358 426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
359 427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(g.argc>2){
@@ -367,13 +435,10 @@
367 435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_find_and_open_repository(OPEN_ANY_SCHEMA | OPEN_OK_NOT_FOUND, 0)
368 436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* ^^^ needed for certain TH1 functions to work */;;
369 437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pikFlags |= PIKCHR_PROCESS_TH1;
370 438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(fNosvg) pikFlags |= PIKCHR_PROCESS_TH1_NOSVG;
371 439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(fWithDiv){
373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pikFlags |= PIKCHR_PROCESS_DIV;
374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
375 440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isErr = pikchr_process(blob_str(&bIn), pikFlags,
376 441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fTh1 ? fThFlags : 0, &bOut);
377 442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(isErr){
378 443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*fossil_print("ERROR: raw input:\n%b\n", &bIn);*/
379 444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("%s ERROR: %b", 1==isErr ? "TH1" : "pikchr",
380 445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!