From 0e50aa690af6cd9f37fa97b4a521fe523cce3c39 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sun, 25 Nov 2012 19:17:55 +0000 Subject: libs/web: rewrite template engine, merge lmo library - template parser: merge lmo library - template parser: rewrite to operate on memory mapped files - template parser: implement proper line number reporting on syntax errors - template parser: process translate tags directly and bypass Lua - template lmo: introduce load_catalog(), change_catalog() and close_catalog() - template lmo: rewrite index processing to operate directly on the memory mapped file - template lmo: implement binary search keys, reducing the lookup complexity to O(log n) - po2lmo: write sorted indixes when generating *.lmo archives - i18n: use the template parser for translations - i18n: stub load(), loadc() and clear() - i18n: map setlanguage() to load_catalog() --- libs/web/src/template_utils.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'libs/web/src/template_utils.h') diff --git a/libs/web/src/template_utils.h b/libs/web/src/template_utils.h index 1f7d438c6..371b6a37c 100644 --- a/libs/web/src/template_utils.h +++ b/libs/web/src/template_utils.h @@ -1,7 +1,7 @@ /* * LuCI Template - Utility header * - * Copyright (C) 2010 Jo-Philipp Wich + * Copyright (C) 2010-2012 Jo-Philipp Wich * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,17 +22,28 @@ #include #include #include +#include /* buffer object */ struct template_buffer { - unsigned char *data; - unsigned char *dptr; + char *data; + char *dptr; unsigned int size; unsigned int fill; }; +struct template_buffer * buf_init(int size); +int buf_grow(struct template_buffer *buf, int size); +int buf_putchar(struct template_buffer *buf, char c); +int buf_append(struct template_buffer *buf, const char *s, int len); +int buf_length(struct template_buffer *buf); +char * buf_destroy(struct template_buffer *buf); + char * sanitize_utf8(const char *s, unsigned int l); char * sanitize_pcdata(const char *s, unsigned int l); +void escape_luastr(struct template_buffer *out, const char *s, unsigned int l, int escape_xml); +void translate_luastr(struct template_buffer *out, const char *s, unsigned int l, int escape_xml); + #endif -- cgit v1.2.3