@@ -867,47 +867,130 @@
867 867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !validate16(z, n) ) return 0;
868 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 1;
869 869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
870 870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
871 871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Return true if the given hyperlink should be implemented for
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the current login.
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int okToHyperlink(const char *zTarget){
876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( g.okHistory ) return 1;
877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( strncmp(zTarget, "http:", 5)==0
878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || strncmp(zTarget, "https:", 6)==0
879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || strncmp(zTarget, "ftp:", 4)==0
880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || strncmp(zTarget, "mailto:", 7)==0
881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zTarget[0]=='/' || is_valid_uuid(zTarget) ) return 0;
885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( wiki_name_is_wellformed(zTarget) ) return 1;
886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Resolve a hyperlink. The argument is the content of the [...]
891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** in the wiki. Append the URL to the output of the Renderer.
892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void resolveHyperlink(const char *zTarget, Renderer *p){
894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( strncmp(zTarget, "http:", 5)==0
895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || strncmp(zTarget, "https:", 6)==0
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || strncmp(zTarget, "ftp:", 4)==0
897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- || strncmp(zTarget, "mailto:", 7)==0
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(p->pOut, zTarget);
900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( zTarget[0]=='/' ){
901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(p->pOut, "%s%h", g.zBaseURL, zTarget);
902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( is_valid_uuid(zTarget) ){
903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(p->pOut, "%s/info/%s", g.zBaseURL, zTarget);
904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( wiki_name_is_wellformed(zTarget) ){
905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(p->pOut, "%s/wiki?name=%T", g.zBaseURL, zTarget);
906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(p->pOut, "error");
908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** zTarget is guaranteed to be a UUID. It might be the UUID of a ticket.
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If it is, fill zDisplay[0..nDisplay-1] with the title of the ticket
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** (or a prefix if the title is too long) and return true. If zTarget
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is not the UUID of a ticket, return false.
876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int is_ticket(
878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zTarget, /* Ticket UUID */
879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zDisplay, /* Space in which to write ticket title */
880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nDisplay, /* Bytes available in zDisplay[] */
881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int *pClosed /* True if the ticket is closed */
882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static Stmt q;
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int once = 1;
885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n;
886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc;
887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char zLower[UUID_SIZE+1];
888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char zUpper[UUID_SIZE+1];
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n = strlen(zTarget);
890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memcpy(zLower, zTarget, n+1);
891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ canonical16(zLower, n+1);
892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memcpy(zUpper, zLower, n+1);
893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zUpper[n-1]++;
894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( once ){
895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zTitleExpr = db_get("ticket-title-expr", "title");
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zClosedExpr = db_get("ticket-closed-expr", "status='Closed'");
897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_static_prepare(&q,
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "SELECT %s, %s FROM ticket "
899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE tkt_uuid>=:lwr AND tkt_uuid<:upr",
900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zTitleExpr, zClosedExpr
901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_bind_text(&q, ":lwr", zLower);
904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_bind_text(&q, ":upr", zUpper);
905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db_step(&q)==SQLITE_ROW ){
906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n = db_column_bytes(&q,0);
907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( n>nDisplay-1 ) n = nDisplay - 1;
908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memcpy(zDisplay, db_column_text(&q, 0), n);
909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDisplay[n] = 0;
910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 1;
911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ *pClosed = db_column_int(&q, 1);
912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 0;
914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_reset(&q);
916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Resolve a hyperlink. The zTarget argument is the content of the [...]
921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** in the wiki. Append an <a> markup to the output of the Renderer.
922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Actually, this routine might or might not append the hyperlink, depending
924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** on current rendering rules: specifically does the current user have
925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** "History" permission. If this routine does append the <a> and thus needs
926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** a </a> to follow, it returns true. If the <a> is suppressed, then return
927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** false.
928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If nDisplay>0 then optionally write up to nDisplay bytes of
930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** alternative display text into zDisplay. The text must be zero
931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** terminated. The final zero is included in the nDisplay byte count
932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** limit.
933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int resolveHyperlink(
935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Renderer *p, /* Rendering context */
936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zTarget, /* Hyperlink traget; text within [...] */
937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zDisplay, /* Space in which to write alternative display */
938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nDisplay /* Bytes available in zDisplay[] */
939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rc = 0;
941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strncmp(zTarget, "http:", 5)==0
942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || strncmp(zTarget, "https:", 6)==0
943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || strncmp(zTarget, "ftp:", 4)==0
944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || strncmp(zTarget, "mailto:", 7)==0
945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut, "<a href=\"%s\">", zTarget);
947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 1;
948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zTarget[0]=='/' ){
949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.okHistory ){
950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut, "<a href=\"%s%h\">", g.zBaseURL, zTarget);
951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 1;
952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( is_valid_uuid(zTarget) ){
954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int isClosed;
955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nDisplay && is_ticket(zTarget, zDisplay, nDisplay, &isClosed) ){
956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Special display processing for tickets. Display the hyperlink
957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** as crossed out if the ticket is closed. Add the title after the
958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** hyperlink.
959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( isClosed ){
961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.okHistory ){
962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut,"<a href=\"%s/info/%s\">[<s>%s</s>]</a>: %s",
963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.zBaseURL, zTarget, zTarget, zDisplay
964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut,"[<s>%s</s>]: %s", zTarget, zDisplay);
967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.okHistory ){
970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut,"<a href=\"%s/info/%s\">[%s]</a>: %s",
971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.zBaseURL, zTarget, zTarget, zDisplay
972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut,"[%s]: %s", zTarget, zDisplay);
975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDisplay[0] = ' ';
978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDisplay[1] = 0;
979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 0;
980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( g.okHistory ){
981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut, "<a href=\"%s/info/%s\">", g.zBaseURL, zTarget);
982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 1;
983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( wiki_name_is_wellformed(zTarget) ){
985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut, "<a href=\"%s/wiki?name=%T\">", g.zBaseURL, zTarget);
986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 1;
987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut, "[bad-link: %h]", zTarget);
989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = 0;
990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rc;
909 992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
910 993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
911 994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
912 995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Check to see if the given parsed markup is the correct
913 996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** </verbatim> tag.
@@ -1028,11 +1111,14 @@
1028 1111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TOKEN_LINK: {
1029 1112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zTarget;
1030 1113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zDisplay = 0;
1031 1114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, j;
1032 1115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int savedState;
1033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int ok;
1116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int needCloseA;
1117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int altSize;
1118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char zAltDisplay[100];
1119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1034 1120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
startAutoParagraph(p);
1035 1121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTarget = &z[1];
1036 1122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=1; z[i] && z[i]!=']'; i++){
1037 1123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( z[i]=='|' && zDisplay==0 ){
1038 1124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDisplay = &z[i+1];
@@ -1041,25 +1127,27 @@
1041 1127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1042 1128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1043 1129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z[i] = 0;
1044 1130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zDisplay==0 ){
1045 1131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDisplay = zTarget;
1132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ altSize = sizeof(zAltDisplay);
1046 1133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1047 1134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( isspace(*zDisplay) ) zDisplay++;
1135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ altSize = 0;
1048 1136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ok = okToHyperlink(zTarget);
1050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( ok ){
1051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(p->pOut, "<a href=\"", -1);
1052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- resolveHyperlink(zTarget, p);
1053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(p->pOut, "\">", -1);
1054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zAltDisplay[0] = 0;
1138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ needCloseA = resolveHyperlink(p, zTarget, zAltDisplay, altSize);
1055 1139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
savedState = p->state;
1056 1140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->state &= ~ALLOW_WIKI;
1057 1141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->state |= FONT_MARKUP_ONLY;
1058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- wiki_render(p, zDisplay);
1142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zAltDisplay[0] ){
1143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wiki_render(p, zAltDisplay);
1144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wiki_render(p, zDisplay);
1146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1059 1147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->state = savedState;
1060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( ok ) blob_append(p->pOut, "</a>", 4);
1148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( needCloseA ) blob_append(p->pOut, "</a>", 4);
1061 1149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
1062 1150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1063 1151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case TOKEN_TEXT: {
1064 1152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
startAutoParagraph(p);
1065 1153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(p->pOut, z, n);
1066 1154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!