unichars 0.4 → 0.5
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.
- data/ext/glib/Makefile +186 -0
- data/ext/glib/glib.bundle +0 -0
- data/ext/glib/glib.c +14 -6
- data/ext/glib/glib.o +0 -0
- data/ext/glib/mkmf.log +5 -0
- data/lib/chars.rb +10 -4
- metadata +11 -6
data/ext/glib/Makefile
ADDED
@@ -0,0 +1,186 @@
|
|
1
|
+
|
2
|
+
SHELL = /bin/sh
|
3
|
+
|
4
|
+
#### Start of system configuration section. ####
|
5
|
+
|
6
|
+
srcdir = .
|
7
|
+
topdir = /Users/manfred/.rvm/ruby-1.9.2-preview1/include/ruby-1.9.1
|
8
|
+
hdrdir = /Users/manfred/.rvm/ruby-1.9.2-preview1/include/ruby-1.9.1
|
9
|
+
arch_hdrdir = /Users/manfred/.rvm/ruby-1.9.2-preview1/include/ruby-1.9.1/$(arch)
|
10
|
+
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
|
11
|
+
prefix = $(DESTDIR)/Users/manfred/.rvm/ruby-1.9.2-preview1
|
12
|
+
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
|
13
|
+
exec_prefix = $(prefix)
|
14
|
+
vendorhdrdir = $(rubyhdrdir)/vendor_ruby
|
15
|
+
sitehdrdir = $(rubyhdrdir)/site_ruby
|
16
|
+
rubyhdrdir = $(includedir)/$(RUBY_BASE_NAME)-$(ruby_version)
|
17
|
+
vendordir = $(rubylibprefix)/vendor_ruby
|
18
|
+
sitedir = $(rubylibprefix)/site_ruby
|
19
|
+
ridir = $(datarootdir)/$(RI_BASE_NAME)
|
20
|
+
mandir = $(datarootdir)/man
|
21
|
+
localedir = $(datarootdir)/locale
|
22
|
+
libdir = $(exec_prefix)/lib
|
23
|
+
psdir = $(docdir)
|
24
|
+
pdfdir = $(docdir)
|
25
|
+
dvidir = $(docdir)
|
26
|
+
htmldir = $(docdir)
|
27
|
+
infodir = $(datarootdir)/info
|
28
|
+
docdir = $(datarootdir)/doc/$(PACKAGE)
|
29
|
+
oldincludedir = $(DESTDIR)/usr/include
|
30
|
+
includedir = $(prefix)/include
|
31
|
+
localstatedir = $(prefix)/var
|
32
|
+
sharedstatedir = $(prefix)/com
|
33
|
+
sysconfdir = $(prefix)/etc
|
34
|
+
datadir = $(datarootdir)
|
35
|
+
datarootdir = $(prefix)/share
|
36
|
+
libexecdir = $(exec_prefix)/libexec
|
37
|
+
sbindir = $(exec_prefix)/sbin
|
38
|
+
bindir = $(exec_prefix)/bin
|
39
|
+
rubylibdir = $(rubylibprefix)/$(ruby_version)
|
40
|
+
archdir = $(rubylibdir)/$(arch)
|
41
|
+
sitelibdir = $(sitedir)/$(ruby_version)
|
42
|
+
sitearchdir = $(sitelibdir)/$(sitearch)
|
43
|
+
vendorlibdir = $(vendordir)/$(ruby_version)
|
44
|
+
vendorarchdir = $(vendorlibdir)/$(sitearch)
|
45
|
+
|
46
|
+
CC = gcc
|
47
|
+
CXX = g++
|
48
|
+
LIBRUBY = $(LIBRUBY_A)
|
49
|
+
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
50
|
+
LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
|
51
|
+
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
52
|
+
OUTFLAG = -o
|
53
|
+
COUTFLAG = -o
|
54
|
+
|
55
|
+
RUBY_EXTCONF_H =
|
56
|
+
cflags = $(optflags) $(debugflags) $(warnflags)
|
57
|
+
optflags = -O3
|
58
|
+
debugflags = -g
|
59
|
+
warnflags = -Wall -Wno-unused-parameter -Wno-parentheses -Wno-missing-field-initializers -Wshorten-64-to-32 -Wpointer-arith -Wwrite-strings
|
60
|
+
CFLAGS = -fno-common $(cflags) -pipe -I/opt/homebrew/Cellar/glib/2.20.5/include/glib-2.0 -I/opt/homebrew/Cellar/glib/2.20.5/lib/glib-2.0/include
|
61
|
+
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
|
62
|
+
DEFS =
|
63
|
+
CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE $(DEFS) $(cppflags)
|
64
|
+
CXXFLAGS = $(CFLAGS) $(cxxflags)
|
65
|
+
ldflags = -L. -L/usr/local/lib -L/opt/homebrew/Cellar/glib/2.20.5/lib -L/opt/homebrew/Cellar/gettext/0.17/lib
|
66
|
+
dldflags =
|
67
|
+
archflag =
|
68
|
+
DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
|
69
|
+
LDSHARED = $(CC) -dynamic -bundle -undefined suppress -flat_namespace
|
70
|
+
LDSHAREDXX = $(CXX) -dynamic -bundle -undefined suppress -flat_namespace
|
71
|
+
AR = ar
|
72
|
+
EXEEXT =
|
73
|
+
|
74
|
+
RUBY_BASE_NAME = ruby
|
75
|
+
RUBY_INSTALL_NAME = ruby
|
76
|
+
RUBY_SO_NAME = ruby
|
77
|
+
arch = i386-darwin10.2.0
|
78
|
+
sitearch = $(arch)
|
79
|
+
ruby_version = 1.9.1
|
80
|
+
ruby = /Users/manfred/.rvm/ruby-1.9.2-preview1/bin/ruby
|
81
|
+
RUBY = $(ruby)
|
82
|
+
RM = rm -f
|
83
|
+
RM_RF = $(RUBY) -run -e rm -- -rf
|
84
|
+
RMDIRS = $(RUBY) -run -e rmdir -- -p
|
85
|
+
MAKEDIRS = mkdir -p
|
86
|
+
INSTALL = /usr/bin/install -c
|
87
|
+
INSTALL_PROG = $(INSTALL) -m 0755
|
88
|
+
INSTALL_DATA = $(INSTALL) -m 644
|
89
|
+
COPY = cp
|
90
|
+
|
91
|
+
#### End of system configuration section. ####
|
92
|
+
|
93
|
+
preload =
|
94
|
+
|
95
|
+
libpath = . $(libdir)
|
96
|
+
LIBPATH = -L. -L$(libdir)
|
97
|
+
DEFFILE =
|
98
|
+
|
99
|
+
CLEANFILES = mkmf.log
|
100
|
+
DISTCLEANFILES =
|
101
|
+
DISTCLEANDIRS =
|
102
|
+
|
103
|
+
extout =
|
104
|
+
extout_prefix =
|
105
|
+
target_prefix =
|
106
|
+
LOCAL_LIBS =
|
107
|
+
LIBS = -lglib-2.0 -lintl -lpthread -ldl -lobjc
|
108
|
+
SRCS = glib.c
|
109
|
+
OBJS = glib.o
|
110
|
+
TARGET = glib
|
111
|
+
DLLIB = $(TARGET).bundle
|
112
|
+
EXTSTATIC =
|
113
|
+
STATIC_LIB =
|
114
|
+
|
115
|
+
BINDIR = $(bindir)
|
116
|
+
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
117
|
+
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
118
|
+
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
119
|
+
HDRDIR = $(rubyhdrdir)/ruby$(target_prefix)
|
120
|
+
ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)
|
121
|
+
|
122
|
+
TARGET_SO = $(DLLIB)
|
123
|
+
CLEANLIBS = $(TARGET).bundle
|
124
|
+
CLEANOBJS = *.o *.bak
|
125
|
+
|
126
|
+
all: $(DLLIB)
|
127
|
+
static: $(STATIC_LIB)
|
128
|
+
.PHONY: all install static install-so install-rb
|
129
|
+
.PHONY: clean clean-so clean-rb
|
130
|
+
|
131
|
+
clean-rb-default::
|
132
|
+
clean-rb::
|
133
|
+
clean-so::
|
134
|
+
clean: clean-so clean-rb-default clean-rb
|
135
|
+
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
|
136
|
+
|
137
|
+
distclean-rb-default::
|
138
|
+
distclean-rb::
|
139
|
+
distclean-so::
|
140
|
+
distclean: clean distclean-so distclean-rb-default distclean-rb
|
141
|
+
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
142
|
+
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
143
|
+
@-$(RMDIRS) $(DISTCLEANDIRS)
|
144
|
+
|
145
|
+
realclean: distclean
|
146
|
+
install: install-so install-rb
|
147
|
+
|
148
|
+
install-so: $(RUBYARCHDIR)
|
149
|
+
install-so: $(RUBYARCHDIR)/$(DLLIB)
|
150
|
+
$(RUBYARCHDIR)/$(DLLIB): $(RUBYARCHDIR) $(DLLIB)
|
151
|
+
$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
|
152
|
+
install-rb: pre-install-rb install-rb-default
|
153
|
+
install-rb-default: pre-install-rb-default
|
154
|
+
pre-install-rb: Makefile
|
155
|
+
pre-install-rb-default: Makefile
|
156
|
+
$(RUBYARCHDIR):
|
157
|
+
$(MAKEDIRS) $@
|
158
|
+
|
159
|
+
site-install: site-install-so site-install-rb
|
160
|
+
site-install-so: install-so
|
161
|
+
site-install-rb: install-rb
|
162
|
+
|
163
|
+
.SUFFIXES: .c .m .cc .cxx .cpp .C .o
|
164
|
+
|
165
|
+
.cc.o:
|
166
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
167
|
+
|
168
|
+
.cxx.o:
|
169
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
170
|
+
|
171
|
+
.cpp.o:
|
172
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
173
|
+
|
174
|
+
.C.o:
|
175
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
176
|
+
|
177
|
+
.c.o:
|
178
|
+
$(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
|
179
|
+
|
180
|
+
$(DLLIB): $(OBJS) Makefile
|
181
|
+
@-$(RM) $(@)
|
182
|
+
$(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
$(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h $(arch_hdrdir)/ruby/config.h
|
Binary file
|
data/ext/glib/glib.c
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
#include <ruby.h>
|
2
2
|
#include <glib.h>
|
3
3
|
|
4
|
+
#ifndef RSTRING_LEN
|
5
|
+
#define RSTRING_LEN(string) RSTRING(string)->len
|
6
|
+
#endif
|
7
|
+
|
8
|
+
#ifndef RSTRING_PTR
|
9
|
+
#define RSTRING_PTR(string) RSTRING(string)->ptr
|
10
|
+
#endif
|
11
|
+
|
4
12
|
/*
|
5
13
|
* call-seq:
|
6
14
|
* utf8_size(string)
|
@@ -14,7 +22,7 @@ static VALUE utf8_size(VALUE self, VALUE string)
|
|
14
22
|
VALUE result;
|
15
23
|
|
16
24
|
Check_Type(string, T_STRING);
|
17
|
-
result = ULONG2NUM(g_utf8_strlen(StringValuePtr(string),
|
25
|
+
result = ULONG2NUM(g_utf8_strlen(StringValuePtr(string), RSTRING_LEN(string)));
|
18
26
|
|
19
27
|
return result;
|
20
28
|
}
|
@@ -33,7 +41,7 @@ static VALUE utf8_upcase(VALUE self, VALUE string)
|
|
33
41
|
gchar *temp;
|
34
42
|
|
35
43
|
Check_Type(string, T_STRING);
|
36
|
-
temp = g_utf8_strup(StringValuePtr(string),
|
44
|
+
temp = g_utf8_strup(StringValuePtr(string), RSTRING_LEN(string));
|
37
45
|
result = rb_str_new2(temp);
|
38
46
|
free(temp);
|
39
47
|
|
@@ -54,7 +62,7 @@ static VALUE utf8_downcase(VALUE self, VALUE string)
|
|
54
62
|
gchar *temp;
|
55
63
|
|
56
64
|
Check_Type(string, T_STRING);
|
57
|
-
temp = g_utf8_strdown(StringValuePtr(string),
|
65
|
+
temp = g_utf8_strdown(StringValuePtr(string), RSTRING_LEN(string));
|
58
66
|
result = rb_str_new2(temp);
|
59
67
|
free(temp);
|
60
68
|
|
@@ -75,7 +83,7 @@ static VALUE utf8_reverse(VALUE self, VALUE string)
|
|
75
83
|
gchar *temp;
|
76
84
|
|
77
85
|
Check_Type(string, T_STRING);
|
78
|
-
temp = g_utf8_strreverse(StringValuePtr(string),
|
86
|
+
temp = g_utf8_strreverse(StringValuePtr(string), RSTRING_LEN(string));
|
79
87
|
result = rb_str_new2(temp);
|
80
88
|
free(temp);
|
81
89
|
|
@@ -114,10 +122,10 @@ static VALUE utf8_normalize(VALUE self, VALUE string, VALUE form)
|
|
114
122
|
} else if (ID2SYM(rb_intern("kc")) == form) {
|
115
123
|
mode = G_NORMALIZE_NFKC;
|
116
124
|
} else {
|
117
|
-
rb_raise(rb_eArgError, "%s is not a valid normalization form, options are: :d, :kd, :c, or :kc",
|
125
|
+
rb_raise(rb_eArgError, "%s is not a valid normalization form, options are: :d, :kd, :c, or :kc", RSTRING_PTR(rb_inspect(form)));
|
118
126
|
}
|
119
127
|
|
120
|
-
temp = g_utf8_normalize(StringValuePtr(string),
|
128
|
+
temp = g_utf8_normalize(StringValuePtr(string), RSTRING_LEN(string), mode);
|
121
129
|
result = rb_str_new2(temp);
|
122
130
|
free(temp);
|
123
131
|
|
data/ext/glib/glib.o
ADDED
Binary file
|
data/ext/glib/mkmf.log
ADDED
data/lib/chars.rb
CHANGED
@@ -9,9 +9,15 @@ class Chars
|
|
9
9
|
alias to_s wrapped_string
|
10
10
|
alias to_str wrapped_string
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
if 'string'.respond_to?(:force_encoding)
|
13
|
+
# Creates a new Chars instance by wrapping _string_.
|
14
|
+
def initialize(string)
|
15
|
+
@wrapped_string = string.dup.force_encoding(Encoding::UTF_8)
|
16
|
+
end
|
17
|
+
else
|
18
|
+
def initialize(string) #:nodoc:
|
19
|
+
@wrapped_string = string.dup
|
20
|
+
end
|
15
21
|
end
|
16
22
|
|
17
23
|
# Forward all undefined methods to the wrapped string.
|
@@ -42,7 +48,7 @@ class Chars
|
|
42
48
|
def <=>(other)
|
43
49
|
@wrapped_string <=> other.to_s
|
44
50
|
end
|
45
|
-
|
51
|
+
|
46
52
|
# Returns a new Chars object containing the _other_ object concatenated to the string.
|
47
53
|
#
|
48
54
|
# Example:
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unichars
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "0.
|
4
|
+
version: "0.5"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manfred Stienstra
|
@@ -9,11 +9,11 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-02-22 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description: Unichars is a wrapper around Glib2 UTF8 functions
|
16
|
+
description: " Unichars is a wrapper around Glib2 UTF8 functions.\n"
|
17
17
|
email: manfred@fngtps.com
|
18
18
|
executables: []
|
19
19
|
|
@@ -26,13 +26,18 @@ extra_rdoc_files:
|
|
26
26
|
files:
|
27
27
|
- lib/chars.rb
|
28
28
|
- lib/unichars.rb
|
29
|
-
- ext/glib
|
30
29
|
- ext/glib/extconf.rb
|
30
|
+
- ext/glib/glib.bundle
|
31
31
|
- ext/glib/glib.c
|
32
|
+
- ext/glib/glib.o
|
33
|
+
- ext/glib/Makefile
|
34
|
+
- ext/glib/mkmf.log
|
32
35
|
- README
|
33
36
|
- LICENSE
|
34
37
|
has_rdoc: true
|
35
38
|
homepage:
|
39
|
+
licenses: []
|
40
|
+
|
36
41
|
post_install_message:
|
37
42
|
rdoc_options:
|
38
43
|
- --charset=utf-8
|
@@ -53,9 +58,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
53
58
|
requirements: []
|
54
59
|
|
55
60
|
rubyforge_project:
|
56
|
-
rubygems_version: 1.3.
|
61
|
+
rubygems_version: 1.3.5
|
57
62
|
signing_key:
|
58
|
-
specification_version:
|
63
|
+
specification_version: 3
|
59
64
|
summary: Unichars is a wrapper around Glib2 UTF8 functions. It was written to speed up ActiveSupport::Multibyte, but I'm sure people can find other uses for it.
|
60
65
|
test_files: []
|
61
66
|
|