Last active
July 18, 2025 10:52
-
-
Save tdewin/8133efb2806e3e2c5bb188d0d95d2602 to your computer and use it in GitHub Desktop.
Patch for pikchr adding "data-orig-name" and "data-orig" to box and text for easier post parsing; patch pikchr.y ../data-orig.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- /pikchr/pikchr.y | |
+++ pikchr.y | |
@@ -433,6 +433,7 @@ | |
/* Forward declarations */ | |
static void pik_append(Pik*, const char*,int); | |
+static void pik_append_data_orig(Pik*,PObj*); | |
static void pik_append_text(Pik*,const char*,int,int); | |
static void pik_append_num(Pik*,const char*,PNum); | |
static void pik_append_point(Pik*,const char*,PPoint*); | |
@@ -1221,7 +1222,9 @@ | |
pik_append(p,"Z\" ",-1); | |
} | |
pik_append_style(p,pObj,3); | |
- pik_append(p,"\" />\n", -1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n", -1); | |
} | |
pik_append_txt(p, pObj, 0); | |
} | |
@@ -1284,7 +1287,9 @@ | |
pik_append_y(p," cy=\"", pt.y, "\""); | |
pik_append_dis(p," r=\"", r, "\" "); | |
pik_append_style(p,pObj,3); | |
- pik_append(p,"\" />\n", -1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n", -1); | |
} | |
pik_append_txt(p, pObj, 0); | |
} | |
@@ -1319,7 +1324,9 @@ | |
pik_append_arc(p,w2,rad,pt.x+w2,pt.y+h2-rad); | |
pik_append(p,"\" ",-1); | |
pik_append_style(p,pObj,3); | |
- pik_append(p,"\" />\n", -1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n", -1); | |
} | |
pik_append_txt(p, pObj, 0); | |
} | |
@@ -1381,7 +1388,9 @@ | |
pik_append_y(p," cy=\"", pt.y, "\""); | |
pik_append_dis(p," r=\"", r, "\""); | |
pik_append_style(p,pObj,2); | |
- pik_append(p,"\" />\n", -1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n", -1); | |
} | |
pik_append_txt(p, pObj, 0); | |
} | |
@@ -1437,7 +1446,9 @@ | |
pik_append_xy(p,"L", pt.x,pt.y+h2); | |
pik_append(p,"Z\" ",-1); | |
pik_append_style(p,pObj,3); | |
- pik_append(p,"\" />\n", -1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n", -1); | |
} | |
pik_append_txt(p, pObj, 0); | |
} | |
@@ -1495,7 +1506,9 @@ | |
pik_append_dis(p," rx=\"", w/2.0, "\""); | |
pik_append_dis(p," ry=\"", h/2.0, "\" "); | |
pik_append_style(p,pObj,3); | |
- pik_append(p,"\" />\n", -1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n", -1); | |
} | |
pik_append_txt(p, pObj, 0); | |
} | |
@@ -1560,7 +1573,9 @@ | |
pik_append_xy(p,"L", pt.x+w2, pt.y+(h2-rad)); | |
pik_append(p,"\" ",-1); | |
pik_append_style(p,pObj,0); | |
- pik_append(p,"\" />\n",-1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n",-1); | |
} | |
pik_append_txt(p, pObj, 0); | |
} | |
@@ -1607,7 +1622,9 @@ | |
} | |
pik_append(p,"\" ",-1); | |
pik_append_style(p,pObj,pObj->bClose?3:0); | |
- pik_append(p,"\" />\n", -1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n", -1); | |
} | |
pik_append_txt(p, pObj, 0); | |
} | |
@@ -1707,7 +1724,9 @@ | |
} | |
pik_append(p,"\" ",-1); | |
pik_append_style(p,pObj,pObj->bClose?3:0); | |
- pik_append(p,"\" />\n", -1); | |
+ pik_append(p,"\"", -1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," />\n", -1); | |
} | |
static void splineRender(Pik *p, PObj *pObj){ | |
if( pObj->sw>0.0 ){ | |
@@ -2032,6 +2051,17 @@ | |
p->zOut[p->nOut] = 0; | |
} | |
+static void pik_append_data_orig(Pik* p,PObj *pObj) { | |
+ if (pObj->zName != NULL) { | |
+ pik_append(p," data-orig-name=\"",-1); | |
+ pik_append(p,pObj->zName,-1); | |
+ pik_append(p,"\"",-1); | |
+ } | |
+ pik_append(p," data-orig=\"", -1); | |
+ pik_append(p,pObj->type->zName,-1); | |
+ pik_append(p,"\"", -1); | |
+} | |
+ | |
/* | |
** Given a string and its length, returns true if the string begins | |
** with a construct which syntactically matches an HTML entity escape | |
@@ -2567,7 +2597,9 @@ | |
pik_append(p,")\"",2); | |
} | |
} | |
- pik_append(p," dominant-baseline=\"central\">",-1); | |
+ pik_append(p," dominant-baseline=\"central\"",-1); | |
+ pik_append_data_orig(p,pObj); | |
+ pik_append(p," >",-1); | |
if( t->n>=2 && t->z[0]=='"' ){ | |
z = t->z+1; | |
nz = t->n-2; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment