summaryrefslogtreecommitdiffstats
path: root/utf8.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-01-28 21:39:03 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-01-28 21:39:03 -0800
commit7266ebf56acbd34978d8bb99a2a87a15d0afdea9 (patch)
treefd745cc17615ac3adaf0c246753107bb32ec870f /utf8.c
parentfbf48de67c4ba652b22fe379cb27f7f3b01f314b (diff)
downloadtxr-7266ebf56acbd34978d8bb99a2a87a15d0afdea9.tar.gz
txr-7266ebf56acbd34978d8bb99a2a87a15d0afdea9.tar.bz2
txr-7266ebf56acbd34978d8bb99a2a87a15d0afdea9.zip
* stream.c (remove_path, rename_path): New functions.
* stream.h (remove_path, rename_path): Declared. * utf8.c (w_remove, w_rename): New functions. * utf8.h (w_remove, w_rename): Declared. * eval.c (eval_init): Registered remove_path and rename_path as intrinsics.
Diffstat (limited to 'utf8.c')
-rw-r--r--utf8.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/utf8.c b/utf8.c
index 36354277..26e5795d 100644
--- a/utf8.c
+++ b/utf8.c
@@ -383,3 +383,21 @@ FILE *w_freopen(const wchar_t *wname, const wchar_t *wmode, FILE *fold)
free(mode);
return f;
}
+
+int w_remove(const wchar_t *wpath)
+{
+ char *path = utf8_dup_to(wpath);
+ int err = remove(path);
+ free(path);
+ return err;
+}
+
+int w_rename(const wchar_t *wfrom, const wchar_t *wto)
+{
+ char *from = utf8_dup_to(wfrom);
+ char *to = utf8_dup_to(wto);
+ int err = rename(from, to);
+ free(to);
+ free(from);
+ return err;
+}