alt_printf 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 21ad918ab6294134e9518f00a5668eafc8589d2bd434cd151544407cf771ed1f
4
- data.tar.gz: 50f52442cef28318a12c87a14c7d4d4ce1d61b086e898811ff038995f4202018
3
+ metadata.gz: a5438acf4a5225e42c00957920226485739baf979781fc57e410991e72243782
4
+ data.tar.gz: 1e6ae5550d67812a7e9a1f93e604b80e278e04d7b1ec844db6d0a43613bf3b3e
5
5
  SHA512:
6
- metadata.gz: b6a76f53245ab159d89fed59ef4c2026c813a0a3fbde2fdc6ee4508238f1ce7b634641a582fdba85f929f3d882914ebebc812cb33adfcdb767ba3aaaf22d8858
7
- data.tar.gz: d049337a26d25eace4667bda2a040cad2066bd51d09a7e22aa3d36b8e39dbd1364e3b34940d0c731b206e7c379a2a58b3cb39476c7c22e31f6a2ddfffa4c7e8d
6
+ metadata.gz: 536d1192de11c8517104d62b97236ea1169d1ebe87298f8271615963eca856dd849579f8a1a07e33f3a21b97fc9751d8d38fe29f9f5c59a2c682d18352de864e
7
+ data.tar.gz: 4a20448521fe228a1bf2dd20a3de7ad7a14274ce9cfb7c8748e88e590d4d6b5583a1e18ce6625ab4bac2da724417954bb0ce22be150a17266528f2011767cd19
data/alt_printf.gemspec CHANGED
@@ -8,7 +8,7 @@ AltPrintf::SPEC = Gem::Specification.new do |s|
8
8
  s.summary = 'A powerful printf-like template language'
9
9
  s.authors = ['Stone Tickle']
10
10
  s.email = 'lattis@mochiro.moe'
11
- s.homepage = 'https://github.com/annacrombie/altprintf/gem'
11
+ s.homepage = 'https://github.com/annacrombie/altprintf/tree/master/gem'
12
12
  s.license = 'MIT'
13
13
 
14
14
  s.files = Dir['{**/*}']
data/ext/alt_printf/fmt.c CHANGED
@@ -28,8 +28,33 @@ void fmt_tern(struct strbuf *sb, struct fmte *f) {
28
28
  }
29
29
  }
30
30
 
31
+ wchar_t process_escape_seq(wchar_t seq) {
32
+ switch (seq) {
33
+ case FS_ESC:
34
+ return FS_ESC;
35
+ case FS_ESC_NL:
36
+ return L'\n';
37
+ case FS_ESC_ESC:
38
+ return L'\e';
39
+ default:
40
+ return seq;
41
+ }
42
+ }
43
+
31
44
  void fmt_raw(struct strbuf *sb, struct fmte *f) {
32
- strbuf_append_str(sb, f->parenarg_start, -1 * f->parenarg_len);
45
+ wchar_t *p;
46
+ wchar_t c;
47
+ long i;
48
+
49
+ p = f->parenarg_start;
50
+ i = f->parenarg_len;
51
+
52
+ for (; i > 1; i--) {
53
+ c = (*p == FS_ESC) ? process_escape_seq(*++p) : *p;
54
+
55
+ strbuf_append(sb, c);
56
+ p++;
57
+ }
33
58
  }
34
59
 
35
60
  void fmt_string(struct strbuf *sb, struct fmte *f) {
data/ext/alt_printf/fmt.h CHANGED
@@ -1,5 +1,6 @@
1
1
  #ifndef FMT_H_
2
2
  #define FMT_H_
3
+ #include "syntax.h"
3
4
  #include "strbuf.h"
4
5
  #include "fmte.h"
5
6
  #include "log.h"
@@ -4,7 +4,7 @@
4
4
  #define FS_START '%'
5
5
  #define FS_DOUBLE_SEP '.'
6
6
 
7
- #define FS_ESC '\\'
7
+ #define FS_ESC L'\\'
8
8
  #define FS_ESC_NL 'n'
9
9
  #define FS_ESC_ESC 'e'
10
10
 
Binary file
@@ -1,3 +1,3 @@
1
1
  module AltPrintf
2
- VERSION = [0, 1, 4]
2
+ VERSION = [0, 2, 0]
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alt_printf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stone Tickle
@@ -70,7 +70,7 @@ files:
70
70
  - lib/alt_printf.rb
71
71
  - lib/alt_printf/alt_printf.so
72
72
  - lib/alt_printf/version.rb
73
- homepage: https://github.com/annacrombie/altprintf/gem
73
+ homepage: https://github.com/annacrombie/altprintf/tree/master/gem
74
74
  licenses:
75
75
  - MIT
76
76
  metadata: {}