about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--edit.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/edit.c b/edit.c
index 446e0e9..e142507 100644
--- a/edit.c
+++ b/edit.c
@@ -14,17 +14,31 @@
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-#include <err.h>
+#include <assert.h>
+#include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <sysexits.h>
+#include <wchar.h>
 
 #include "chat.h"
 
+enum { Cap = 512 };
+static wchar_t buf[Cap] = L"foo\0033bar\3baz";
+static size_t len = 12;
+static size_t pos = 6;
+
 const char *editHead(void) {
-	return "foo\0033bar";
+	static char mbs[MB_LEN_MAX * Cap];
+	const wchar_t *ptr = buf;
+	size_t n = wcsnrtombs(mbs, &ptr, pos, sizeof(mbs), NULL);
+	assert(n != (size_t)-1);
+	return mbs;
 }
 
 const char *editTail(void) {
-	return "baz\3";
+	static char mbs[MB_LEN_MAX * Cap];
+	const wchar_t *ptr = &buf[pos];
+	size_t n = wcsnrtombs(mbs, &ptr, len - pos, sizeof(mbs), NULL);
+	assert(n != (size_t)-1);
+	return mbs;
 }
f.c?h=1.4.0&id=68de710c1c0e9b823a156b1398643601a682fbf9&follow=1'>ui-ssdiff: ban strncat()Christian Hesse 2019-06-05global: make 'char *path' const where possibleChristian Hesse 2019-05-20ui-shared: restrict to 15 levelsJason A. Donenfeld 2019-02-23ui-diff,ui-tag: don't use htmlf with non-formatted stringsChris Mayo 2019-02-23ui-ssdiff: resolve HTML5 validation errorsChris Mayo 2019-01-03filters: migrate from luacrypto to luaosslJason A. Donenfeld 2019-01-02ui-shared: fix broken sizeof in title setting and rewriteJason A. Donenfeld 2018-12-09git: update to v2.20.0Christian Hesse 2018-11-25ui-blame: set repo for sbJason A. Donenfeld 2018-11-25auth-filter: pass url with query string attachedJason A. Donenfeld 2018-11-21git: use xz compressed archive for downloadChristian Hesse 2018-10-12git: update to v2.19.1Christian Hesse 2018-09-11ui-ssdiff: ban strcat()Christian Hesse 2018-09-11ui-ssdiff: ban strncpy()Christian Hesse 2018-09-11ui-shared: ban strcat()Christian Hesse 2018-09-11ui-patch: ban sprintf()Christian Hesse 2018-09-11ui-log: ban strncpy()Christian Hesse 2018-09-11ui-log: ban strcpy()Christian Hesse 2018-09-11parsing: ban sprintf()Christian Hesse 2018-09-11parsing: ban strncpy()Christian Hesse 2018-08-28filters: generate anchor links from markdownChristian Hesse 2018-08-03Bump version.Jason A. Donenfeld 2018-08-03clone: fix directory traversalJason A. Donenfeld 2018-08-03config: record repo.snapshot-prefix in the per-repo configKonstantin Ryabitsev