alt_printf 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: {}