- if (strncmp(walk+1, "title", strlen("title")) == 0) {
- outwalk += sprintf(outwalk, "%s", title);
- walk += strlen("title");
- } else if (strncmp(walk+1, "status", strlen("status")) == 0) {
- outwalk += sprintf(outwalk, "%s", (running ? "yes" : "no"));
- walk += strlen("status");
- }
+ for (; *walk != '\0'; walk++) {
+ if (*walk != '%') {
+ *(outwalk++) = *walk;
+
+ } else if (BEGINS_WITH(walk + 1, "title")) {
+ outwalk += sprintf(outwalk, "%s", title);
+ walk += strlen("title");
+
+ } else if (BEGINS_WITH(walk + 1, "status")) {
+ outwalk += sprintf(outwalk, "%s", (running ? "yes" : "no"));
+ walk += strlen("status");
+
+ } else {
+ *(outwalk++) = '%';