diff options
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -59,6 +59,27 @@ void server_setBase(const char *server, const char *base) entry->base[entry->baseLen] = '\0'; } +void server_setHomeTemplate(const char *server, const char *hometemplate) +{ + server_t *entry = server_create(server); + if (entry == NULL) return; + if (snprintf(entry->homeTemplate, MOUNTLEN, "%s", hometemplate) >= MOUNTLEN) printf("Warning: Home Template for %s is too long.\n", server); + // TODO: Better template system. Using a format string is too lazy + BOOL b = FALSE; + char *s = entry->homeTemplate; + int count = 0; + while (*s) { + if (b) { + if (*s != '%') count++; + b = FALSE; + } else if (*s == '%') b = TRUE; + if (count > 5) *s = '_'; + if (*s == '\\') *s = '/'; + s++; + } + if (count > 5) printf("WARNING: Too many '%%' in Home Template for %s. Don't forget to replace literal '%%' with '%%%%'\n", server); +} + void server_initServers() { int i; |