add hyperlink templating and rename some functions
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmB8/+YACgkQO3+8IhRO Y5gIqhAAlCR1n7+GstDNZvPXgFi7CsBAbfJPck2BRfK9UzMlVuJcOQfwy9p9JLWd IC2j/B+5kNdedEWTKjx0m0hwwhMW3KcJUbtM4uLrDWfgABn9XyUcmiXI17ZnLy1B Q/xp99jfFVboWqAc6v7mP0Fw5CRAjpE9VpBPeru+2oleNumMhcp9Cpewq0LpyJ/f EL8cIDBcR1B90r6DZm0GaL7Iu5m34xe+Xr1eNhzkogpY2qmdHxKvcUlZhvqZeqZu 2GgKD/XZh3xJ6AYwNv/fcybK22j5do0gL0f5ObFwHvuD18i1c/u+iyip13XHdmOZ EkO+KT9WcP3NO6AK3v9ruvl6v0XegBlbvsRPOQTi71Sz7zSQ54JkcBPpFhruQIbD xnI1qLAQvBmtqUenlubMFKvq09vemMNV1JZ7zFbDVWA91CetzDW5hybKmKdHoCkb cYb4MYodsVRG6Fh8FQhZbBSWuQTk30X7+72ZLndyK9fACRnDFBWlj1kslXcQmHIr 8GIcj+l+fOlhmdk9z3/Ps+Yjjzfwx529Bu8UdpV22dv5AKqinkN0abSSRXAaOUaB CVF5yFRHSoXrNnb4CuyjRrfcOjMR4RDGtRa6/wGjAa/3EZUGCU3YOGDWw+M0kJdZ jFipzzv1ke1xG6IVwAindXp9ODqdL4S4G/E2q5WbtknoHz4jEgQ= =H75U -----END PGP SIGNATURE-----
1 files changed,
29 insertions(+),
2 deletions(-)
jump to
M
main.c
→
main.c
@@ -105,6 +105,31 @@ l->refs[target]++;
return 1; } +int fphref(FILE* f, char* s) { + char href[1024] = {0}; + char txt[1024] = {0}; + + char* c = s; + int i = 0; + while (i < 2) { + if (*c == '|' || !(*c)) { + i++; + c++; + continue; + } + switch (i) { + case 0: + ccat(href, *c++); + break; + case 1: + ccat(txt, *c++); + break; + } + } + fprintf(f, "<a href='%s'>%s</a>", href, txt); + return 1; +} + int fpimg(FILE* f, char* s) { char id[1024] = {0}; char src[1024] = {0};@@ -137,7 +162,7 @@ fputs("</a>", f);
return 1; } -int fpimgl(FILE* f, char* s) { +int fphimg(FILE* f, char* s) { char id[1024] = {0}; char href[1024] = {0}; char src[1024] = {0};@@ -184,10 +209,12 @@ int fptemplate(FILE* f, Lexicon* l, char* s) {
int target; if (s[0] == '/') return fpportal(f, l, s + 1, 1); + if (s[0] == '*') + return fphref(f, s + 1); if (s[0] == ':') return fpimg(f, s + 1); if (s[0] == '?') - return fpimgl(f, s + 1); + return fphimg(f, s + 1); if (s[0] == '_') return fpaudio(f, s + 1); target = findf(l, s);