Use strbuf in template token handler
authorWilfried Goesgens <willi@arangodb.com>
Sat, 12 Dec 2015 14:23:00 +0000 (15:23 +0100)
committerWilfried Goesgens <willi@arangodb.com>
Sat, 12 Dec 2015 14:23:00 +0000 (15:23 +0100)
webcit/blogview_renderer.c

index 9caccc9ca30523cbef17f39f005c46a9a16d7950..9432181e75d93746d53364cd486e1de0a692c27d 100644 (file)
@@ -32,17 +32,11 @@ typedef struct __BLOG {
  * instead of writing it to the template)
  */
 void tmplput_blog_permalink(StrBuf *Target, WCTemplputParams *TP) {
-       char perma[SIZ];
-       
-       strcpy(perma, "/readfwd?go=");
-       urlesc(&perma[strlen(perma)], sizeof(perma)-strlen(perma), (char *)ChrPtr(WC->CurRoom.name));
-       snprintf(&perma[strlen(perma)], sizeof(perma)-strlen(perma), "?p=%d", WC->bptlid);
-       if (!Target) {
-               wc_printf("%s", perma);
-       }
-       else {
-               StrBufAppendPrintf(Target, "%s", perma);
-       }
+       StrBuf *buf = NewStrBufPlain(HKEY("/readfwd?go="));
+       StrBufUrlescAppend(buf, WC->CurRoom.name, 0);
+       StrBufAppendPrintf(buf, "?p=%d", WC->bptlid);
+       StrBufAppendTemplate(Target, TP, buf, 0);
+       FreeStrBuf(&buf);
 }
 
 
@@ -365,5 +359,5 @@ InitModule_BLOGVIEWRENDERERS
                blogview_render,
                blogview_Cleanup
        );
-       RegisterNamespace("BLOG:PERMALINK", 0, 0, tmplput_blog_permalink, NULL, CTX_NONE);
+       RegisterNamespace("BLOG:PERMALINK", 0, 1, tmplput_blog_permalink, NULL, CTX_NONE);
 }