[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] dynamic-modules eae5da9 20/22: yaml module: add `yaml-pars
From: |
Noah Friedman |
Subject: |
[Emacs-diffs] dynamic-modules eae5da9 20/22: yaml module: add `yaml-parse-string'. |
Date: |
Mon, 8 May 2017 19:46:15 -0400 (EDT) |
branch: dynamic-modules
commit eae5da99db78c541ce9f29607d57feeb1cff6049
Author: Aurélien Aptel <address@hidden>
Commit: Ted Zlatanov <address@hidden>
yaml module: add `yaml-parse-string'.
---
modules/yaml/yaml.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/modules/yaml/yaml.c b/modules/yaml/yaml.c
index 4096205..6d2647f 100644
--- a/modules/yaml/yaml.c
+++ b/modules/yaml/yaml.c
@@ -56,7 +56,7 @@ parse_element (struct context *ctx)
case YAML_SCALAR_EVENT:
res = parse_scalar (ctx, &e);
if (s)
- Fputhash (make_string (s, strlen (s)), res, ctx->anchors);
+ Fputhash (make_string (s, strlen (s)), res, ctx->anchors);
break;
case YAML_SEQUENCE_START_EVENT:
@@ -143,6 +143,25 @@ context_init (struct context *ctx)
ctx->anchors = Fmake_hash_table (2, args);
}
+EXFUN (Fyaml_parse_string, 1);
+DEFUN ("yaml-parse-string", Fyaml_parse_string, Syaml_parse_string, 1, 1, 0,
+ doc: "Parse STRING as yaml.")
+ (Lisp_Object string)
+{
+ struct context ctx;
+ Lisp_Object res = Qnil;
+
+ context_init (&ctx);
+
+ yaml_parser_initialize (&ctx.p);
+ yaml_parser_set_input_string (&ctx.p, SDATA (string), SBYTES (string));
+ res = parse_element (&ctx);
+ yaml_parser_delete (&ctx.p);
+
+ return res;
+}
+
+
EXFUN (Fyaml_parse, 0);
DEFUN ("yaml-parse", Fyaml_parse, Syaml_parse, 0, 0, 0,
doc: "Parse current buffer as yaml.")
@@ -206,6 +225,7 @@ void init ()
DEFSYM (Qyaml, "yaml");
defsubr (&Syaml_parse_file);
+ defsubr (&Syaml_parse_string);
defsubr (&Syaml_parse);
Fprovide (Qyaml, Qnil);
- [Emacs-diffs] branch dynamic-modules created (now 9313182), Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 14ea9e0 03/22: intern literal strings as regular string., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 2010646 04/22: add sample module `fmod'., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules fa450f8 07/22: doc.c: use DOC format sanity checks instead of bytecompiled checks on module doc files., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 5c710fb 01/22: add libltdl configure option/dependency., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules cc5fe95 09/22: move fmod module in modules/fmod/., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules eae5da9 20/22: yaml module: add `yaml-parse-string'.,
Noah Friedman <=
- [Emacs-diffs] dynamic-modules 01e2303 17/22: update modules examples with `provide' call., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules d2271bc 06/22: alloc.c: protect doc field from GC., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 1be03fd 08/22: doc.c: don't prefix doc path by ../etc/ for modules, Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules c0eb5a6 05/22: change Subr doc field from char* to Lisp_Object., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules db69d49 12/22: new module: elisp, Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 334564f 15/22: fix docstring., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 18920eb 19/22: new yaml parsing module using libyaml, Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 3f762bd 02/22: add `load-module' function to emacs lisp., Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 1be7b68 10/22: new module: opaque, Noah Friedman, 2017/05/08
- [Emacs-diffs] dynamic-modules 4efd6a2 21/22: yaml module: rename `yaml-parse' to `yaml-parse-buffer'., Noah Friedman, 2017/05/08