did_you_mean 0.1.0 → 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 +4 -4
- data/.gitignore +7 -0
- data/.travis.yml +6 -0
- data/README.md +7 -5
- data/Rakefile +26 -0
- data/did_you_mean.gemspec +5 -3
- data/docs/better_errors_example.png +0 -0
- data/docs/irb_example.png +0 -0
- data/docs/rspec_example.png +0 -0
- data/ext/did_you_mean/extconf.rb +13 -0
- data/ext/did_you_mean/method_missing.c +109 -0
- data/ext/did_you_mean/ruby_headers/193/addr2line.h +21 -0
- data/ext/did_you_mean/ruby_headers/193/constant.h +34 -0
- data/ext/did_you_mean/ruby_headers/193/debug.h +41 -0
- data/ext/did_you_mean/ruby_headers/193/dln.h +50 -0
- data/ext/did_you_mean/ruby_headers/193/encdb.h +170 -0
- data/ext/did_you_mean/ruby_headers/193/eval_intern.h +234 -0
- data/ext/did_you_mean/ruby_headers/193/gc.h +99 -0
- data/ext/did_you_mean/ruby_headers/193/id.h +171 -0
- data/ext/did_you_mean/ruby_headers/193/internal.h +242 -0
- data/ext/did_you_mean/ruby_headers/193/iseq.h +126 -0
- data/ext/did_you_mean/ruby_headers/193/method.h +105 -0
- data/ext/did_you_mean/ruby_headers/193/node.h +504 -0
- data/ext/did_you_mean/ruby_headers/193/parse.h +183 -0
- data/ext/did_you_mean/ruby_headers/193/probes.h +83 -0
- data/ext/did_you_mean/ruby_headers/193/regenc.h +219 -0
- data/ext/did_you_mean/ruby_headers/193/regint.h +850 -0
- data/ext/did_you_mean/ruby_headers/193/regparse.h +362 -0
- data/ext/did_you_mean/ruby_headers/193/revision.h +1 -0
- data/ext/did_you_mean/ruby_headers/193/ruby_atomic.h +122 -0
- data/ext/did_you_mean/ruby_headers/193/siphash.h +48 -0
- data/ext/did_you_mean/ruby_headers/193/thread_pthread.h +51 -0
- data/ext/did_you_mean/ruby_headers/193/thread_win32.h +40 -0
- data/ext/did_you_mean/ruby_headers/193/timev.h +21 -0
- data/ext/did_you_mean/ruby_headers/193/transcode_data.h +117 -0
- data/ext/did_you_mean/ruby_headers/193/transdb.h +190 -0
- data/ext/did_you_mean/ruby_headers/193/verconf.h +13 -0
- data/ext/did_you_mean/ruby_headers/193/version.h +52 -0
- data/ext/did_you_mean/ruby_headers/193/vm_core.h +763 -0
- data/ext/did_you_mean/ruby_headers/193/vm_exec.h +184 -0
- data/ext/did_you_mean/ruby_headers/193/vm_insnhelper.h +220 -0
- data/ext/did_you_mean/ruby_headers/193/vm_opts.h +51 -0
- data/ext/did_you_mean/ruby_headers/200/addr2line.h +21 -0
- data/ext/did_you_mean/ruby_headers/200/constant.h +36 -0
- data/ext/did_you_mean/ruby_headers/200/dln.h +50 -0
- data/ext/did_you_mean/ruby_headers/200/encdb.h +170 -0
- data/ext/did_you_mean/ruby_headers/200/eval_intern.h +213 -0
- data/ext/did_you_mean/ruby_headers/200/gc.h +104 -0
- data/ext/did_you_mean/ruby_headers/200/id.h +171 -0
- data/ext/did_you_mean/ruby_headers/200/internal.h +392 -0
- data/ext/did_you_mean/ruby_headers/200/iseq.h +140 -0
- data/ext/did_you_mean/ruby_headers/200/method.h +138 -0
- data/ext/did_you_mean/ruby_headers/200/node.h +539 -0
- data/ext/did_you_mean/ruby_headers/200/parse.h +183 -0
- data/ext/did_you_mean/ruby_headers/200/probes.h +83 -0
- data/ext/did_you_mean/ruby_headers/200/probes_helper.h +67 -0
- data/ext/did_you_mean/ruby_headers/200/regenc.h +227 -0
- data/ext/did_you_mean/ruby_headers/200/regint.h +915 -0
- data/ext/did_you_mean/ruby_headers/200/regparse.h +367 -0
- data/ext/did_you_mean/ruby_headers/200/revision.h +1 -0
- data/ext/did_you_mean/ruby_headers/200/ruby_atomic.h +165 -0
- data/ext/did_you_mean/ruby_headers/200/siphash.h +48 -0
- data/ext/did_you_mean/ruby_headers/200/thread_pthread.h +56 -0
- data/ext/did_you_mean/ruby_headers/200/thread_win32.h +45 -0
- data/ext/did_you_mean/ruby_headers/200/timev.h +21 -0
- data/ext/did_you_mean/ruby_headers/200/transcode_data.h +127 -0
- data/ext/did_you_mean/ruby_headers/200/transdb.h +190 -0
- data/ext/did_you_mean/ruby_headers/200/verconf.h +13 -0
- data/ext/did_you_mean/ruby_headers/200/version.h +52 -0
- data/ext/did_you_mean/ruby_headers/200/vm_core.h +1013 -0
- data/ext/did_you_mean/ruby_headers/200/vm_debug.h +41 -0
- data/ext/did_you_mean/ruby_headers/200/vm_exec.h +173 -0
- data/ext/did_you_mean/ruby_headers/200/vm_insnhelper.h +274 -0
- data/ext/did_you_mean/ruby_headers/200/vm_opts.h +56 -0
- data/ext/did_you_mean/ruby_headers/210/addr2line.h +21 -0
- data/ext/did_you_mean/ruby_headers/210/constant.h +36 -0
- data/ext/did_you_mean/ruby_headers/210/dln.h +51 -0
- data/ext/did_you_mean/ruby_headers/210/encdb.h +170 -0
- data/ext/did_you_mean/ruby_headers/210/eval_intern.h +260 -0
- data/ext/did_you_mean/ruby_headers/210/gc.h +101 -0
- data/ext/did_you_mean/ruby_headers/210/id.h +171 -0
- data/ext/did_you_mean/ruby_headers/210/internal.h +889 -0
- data/ext/did_you_mean/ruby_headers/210/iseq.h +136 -0
- data/ext/did_you_mean/ruby_headers/210/method.h +142 -0
- data/ext/did_you_mean/ruby_headers/210/node.h +543 -0
- data/ext/did_you_mean/ruby_headers/210/parse.h +183 -0
- data/ext/did_you_mean/ruby_headers/210/probes.h +83 -0
- data/ext/did_you_mean/ruby_headers/210/probes_helper.h +67 -0
- data/ext/did_you_mean/ruby_headers/210/regenc.h +223 -0
- data/ext/did_you_mean/ruby_headers/210/regint.h +911 -0
- data/ext/did_you_mean/ruby_headers/210/regparse.h +363 -0
- data/ext/did_you_mean/ruby_headers/210/revision.h +1 -0
- data/ext/did_you_mean/ruby_headers/210/ruby_atomic.h +165 -0
- data/ext/did_you_mean/ruby_headers/210/siphash.h +48 -0
- data/ext/did_you_mean/ruby_headers/210/thread_native.h +23 -0
- data/ext/did_you_mean/ruby_headers/210/thread_pthread.h +56 -0
- data/ext/did_you_mean/ruby_headers/210/thread_win32.h +45 -0
- data/ext/did_you_mean/ruby_headers/210/timev.h +42 -0
- data/ext/did_you_mean/ruby_headers/210/transcode_data.h +123 -0
- data/ext/did_you_mean/ruby_headers/210/transdb.h +190 -0
- data/ext/did_you_mean/ruby_headers/210/verconf.h +13 -0
- data/ext/did_you_mean/ruby_headers/210/version.h +52 -0
- data/ext/did_you_mean/ruby_headers/210/vm_core.h +1043 -0
- data/ext/did_you_mean/ruby_headers/210/vm_debug.h +37 -0
- data/ext/did_you_mean/ruby_headers/210/vm_exec.h +182 -0
- data/ext/did_you_mean/ruby_headers/210/vm_insnhelper.h +273 -0
- data/ext/did_you_mean/ruby_headers/210/vm_opts.h +56 -0
- data/ext/did_you_mean/vm_method.c +28 -0
- data/lib/did_you_mean.rb +1 -2
- data/lib/did_you_mean/no_method_error_extension.rb +3 -1
- data/lib/did_you_mean/version.rb +1 -1
- metadata +122 -8
- data/lib/did_you_mean/core_ext/object.rb +0 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0c5b3dc36b35b52e37a232188f65dd9b6154c3e5
|
|
4
|
+
data.tar.gz: aa867699c042fc00954fe354c542e8a2ccb338ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7a5a1c114e904c2f615019f8ec411d27cf9bc00da0c78a546262b0213cf5691633df61aec59ea43f8c045f464ca80372315b070536dcb922c705e02910135d8f
|
|
7
|
+
data.tar.gz: 34e33ce5809e5f6e1f97234fac28039b8e96b4a68d94d261a3d4a9b516210766f8a57be8082cb7b81fbcc973e88e5d2688582fc749ddae2628cef891c6289e78
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/README.md
CHANGED
|
@@ -6,17 +6,15 @@ Google tells you the right keyword if you made a typo. This gem gives similar ex
|
|
|
6
6
|
|
|
7
7
|
On irb:
|
|
8
8
|
|
|
9
|
-

|
|
10
10
|
|
|
11
11
|
On rspec:
|
|
12
12
|
|
|
13
|
-

|
|
14
14
|
|
|
15
15
|
On BetterErrors:
|
|
16
16
|
|
|
17
|
-

|
|
20
18
|
|
|
21
19
|
## Installation
|
|
22
20
|
|
|
@@ -26,6 +24,10 @@ Add this line to your application's Gemfile:
|
|
|
26
24
|
gem 'did_you_mean', :group => :development
|
|
27
25
|
```
|
|
28
26
|
|
|
27
|
+
### Support
|
|
28
|
+
|
|
29
|
+
This gem only supports Ruby 1.9.3, 2.0.0 and 2.1.0. All other ruby implementations are **not** supported.
|
|
30
|
+
|
|
29
31
|
## Contributing
|
|
30
32
|
|
|
31
33
|
1. Fork it (http://github.com/yuki24/did_you_mean/fork)
|
data/Rakefile
CHANGED
|
@@ -1 +1,27 @@
|
|
|
1
1
|
require "bundler/gem_tasks"
|
|
2
|
+
|
|
3
|
+
begin
|
|
4
|
+
require 'rake/extensiontask'
|
|
5
|
+
|
|
6
|
+
Rake::ExtensionTask.new('did_you_mean') do |ext|
|
|
7
|
+
ext.name = "method_missing"
|
|
8
|
+
ext.lib_dir = "lib/did_you_mean"
|
|
9
|
+
end
|
|
10
|
+
rescue LoadError
|
|
11
|
+
abort "This Rakefile requires rake-compiler (gem install rake-compiler)"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
desc "run tests"
|
|
15
|
+
task :default => [:test]
|
|
16
|
+
|
|
17
|
+
desc "Run tests"
|
|
18
|
+
task :test do
|
|
19
|
+
Rake::Task['compile'].reenable
|
|
20
|
+
Rake::Task['compile'].invoke
|
|
21
|
+
|
|
22
|
+
$stdout.puts("\033[33m")
|
|
23
|
+
sh "bundle exec ruby test/all_test.rb"
|
|
24
|
+
$stdout.puts("\033[0m")
|
|
25
|
+
|
|
26
|
+
Rake::Task['clobber'].execute
|
|
27
|
+
end
|
data/did_you_mean.gemspec
CHANGED
|
@@ -8,12 +8,13 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.version = DidYouMean::VERSION
|
|
9
9
|
spec.authors = ["Yuki Nishijima"]
|
|
10
10
|
spec.email = ["mail@yukinishijima.net"]
|
|
11
|
-
spec.summary =
|
|
12
|
-
spec.description =
|
|
13
|
-
spec.homepage = ""
|
|
11
|
+
spec.summary = '"Did you mean?" experience in Ruby'
|
|
12
|
+
spec.description = 'It adds "did you mean?" experience on NoMethodError and NameError because of a typo.'
|
|
13
|
+
spec.homepage = "https://github.com/yuki24/did_you_mean"
|
|
14
14
|
spec.license = "MIT"
|
|
15
15
|
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
|
17
|
+
spec.extensions = ["ext/did_you_mean/extconf.rb"]
|
|
17
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
20
|
spec.require_paths = ["lib"]
|
|
@@ -23,4 +24,5 @@ Gem::Specification.new do |spec|
|
|
|
23
24
|
|
|
24
25
|
spec.add_development_dependency "bundler", "~> 1.5"
|
|
25
26
|
spec.add_development_dependency "rake"
|
|
27
|
+
spec.add_development_dependency "rake-compiler"
|
|
26
28
|
end
|
|
Binary file
|
data/docs/irb_example.png
CHANGED
|
Binary file
|
data/docs/rspec_example.png
CHANGED
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'mkmf'
|
|
2
|
+
|
|
3
|
+
case RUBY_VERSION
|
|
4
|
+
when /1.9.3/, /2.0.0/, /2.1.0/
|
|
5
|
+
abs_ruby_header_path = File.join(File.dirname(File.realpath(__FILE__)), "ruby_headers")
|
|
6
|
+
version_suffix = RUBY_VERSION.tr(".", "")
|
|
7
|
+
|
|
8
|
+
$CFLAGS += " -I#{abs_ruby_header_path}/#{version_suffix}"
|
|
9
|
+
else
|
|
10
|
+
raise "Sorry, but did_you_mean #{DidYouMean::VERSION} doesn't work with Ruby #{RUBY_VERSION}."
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
create_makefile 'did_you_mean/method_missing'
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
#include <ruby.h>
|
|
2
|
+
#include "internal.h"
|
|
3
|
+
#include "vm_method.c"
|
|
4
|
+
|
|
5
|
+
#ifndef UNREACHABLE
|
|
6
|
+
# define UNREACHABLE /* unreachable */
|
|
7
|
+
#endif
|
|
8
|
+
|
|
9
|
+
static inline const rb_data_type_t *
|
|
10
|
+
threadptr_data_type(void)
|
|
11
|
+
{
|
|
12
|
+
static const rb_data_type_t *thread_data_type;
|
|
13
|
+
if (!thread_data_type) {
|
|
14
|
+
VALUE current_thread = rb_thread_current();
|
|
15
|
+
thread_data_type = RTYPEDDATA_TYPE(current_thread);
|
|
16
|
+
}
|
|
17
|
+
return thread_data_type;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
#define ruby_thread_data_type *threadptr_data_type()
|
|
21
|
+
#define ruby_threadptr_data_type *threadptr_data_type()
|
|
22
|
+
|
|
23
|
+
#define ruby_current_thread ((rb_thread_t *)RTYPEDDATA_DATA(rb_thread_current()))
|
|
24
|
+
|
|
25
|
+
NORETURN(static void raise_method_missing(rb_thread_t *th, int argc, const VALUE *argv,
|
|
26
|
+
VALUE obj, int call_status));
|
|
27
|
+
|
|
28
|
+
static VALUE
|
|
29
|
+
rb_method_missing(int argc, const VALUE *argv, VALUE obj)
|
|
30
|
+
{
|
|
31
|
+
rb_thread_t *th;
|
|
32
|
+
GetThreadPtr(rb_thread_current(), th);
|
|
33
|
+
raise_method_missing(th, argc, argv, obj, th->method_missing_reason);
|
|
34
|
+
UNREACHABLE;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
#define NOEX_MISSING 0x80
|
|
38
|
+
|
|
39
|
+
static VALUE
|
|
40
|
+
make_no_method_exception(VALUE exc, const char *format, VALUE obj, int argc, const VALUE *argv)
|
|
41
|
+
{
|
|
42
|
+
int n = 0;
|
|
43
|
+
VALUE mesg;
|
|
44
|
+
VALUE args[3];
|
|
45
|
+
|
|
46
|
+
if (!format) {
|
|
47
|
+
format = "undefined method `%s' for %s";
|
|
48
|
+
}
|
|
49
|
+
mesg = rb_const_get(exc, rb_intern("message"));
|
|
50
|
+
// if (rb_method_basic_definition_p(CLASS_OF(mesg), '!')) {
|
|
51
|
+
// args[n++] = rb_name_err_mesg_new(mesg, rb_str_new2(format), obj, argv[0]);
|
|
52
|
+
// }
|
|
53
|
+
// else {
|
|
54
|
+
args[n++] = rb_funcall(mesg, '!', 3, rb_str_new2(format), obj, argv[0]);
|
|
55
|
+
// }
|
|
56
|
+
|
|
57
|
+
args[n++] = argv[0];
|
|
58
|
+
if (exc == rb_eNoMethodError) {
|
|
59
|
+
args[n++] = rb_ary_new4(argc - 1, argv + 1);
|
|
60
|
+
rb_ary_store(args[n - 1], 0, obj);
|
|
61
|
+
}
|
|
62
|
+
return rb_class_new_instance(n, args, exc);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static void
|
|
66
|
+
raise_method_missing(rb_thread_t *th, int argc, const VALUE *argv, VALUE obj,
|
|
67
|
+
int last_call_status)
|
|
68
|
+
{
|
|
69
|
+
VALUE exc = rb_eNoMethodError;
|
|
70
|
+
const char *format = 0;
|
|
71
|
+
|
|
72
|
+
if (argc == 0 || !SYMBOL_P(argv[0])) {
|
|
73
|
+
rb_raise(rb_eArgError, "no id given");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
ruby_stack_check();
|
|
77
|
+
|
|
78
|
+
if (last_call_status & NOEX_PRIVATE) {
|
|
79
|
+
format = "private method `%s' called for %s";
|
|
80
|
+
}
|
|
81
|
+
else if (last_call_status & NOEX_PROTECTED) {
|
|
82
|
+
format = "protected method `%s' called for %s";
|
|
83
|
+
}
|
|
84
|
+
else if (last_call_status & NOEX_VCALL) {
|
|
85
|
+
format = "undefined local variable or method `%s' for %s";
|
|
86
|
+
exc = rb_eNameError;
|
|
87
|
+
}
|
|
88
|
+
else if (last_call_status & NOEX_SUPER) {
|
|
89
|
+
format = "super: no superclass method `%s' for %s";
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
{
|
|
93
|
+
exc = make_no_method_exception(exc, format, obj, argc, argv);
|
|
94
|
+
if (!(last_call_status & NOEX_MISSING)) {
|
|
95
|
+
th->cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(th->cfp);
|
|
96
|
+
}
|
|
97
|
+
rb_exc_raise(exc);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
void
|
|
102
|
+
Init_method_missing()
|
|
103
|
+
{
|
|
104
|
+
VALUE defined_class;
|
|
105
|
+
rb_method_entry_t *me;
|
|
106
|
+
|
|
107
|
+
me = search_method(rb_cBasicObject, rb_intern("method_missing"), &defined_class);
|
|
108
|
+
me->def->body.cfunc.func = rb_method_missing;
|
|
109
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
|
|
3
|
+
addr2line.h -
|
|
4
|
+
|
|
5
|
+
$Author$
|
|
6
|
+
|
|
7
|
+
Copyright (C) 2010 Shinichiro Hamaji
|
|
8
|
+
|
|
9
|
+
**********************************************************************/
|
|
10
|
+
|
|
11
|
+
#ifndef RUBY_ADDR2LINE_H
|
|
12
|
+
#define RUBY_ADDR2LINE_H
|
|
13
|
+
|
|
14
|
+
#ifdef USE_ELF
|
|
15
|
+
|
|
16
|
+
void
|
|
17
|
+
rb_dump_backtrace_with_lines(int num_traces, void **traces, char **syms);
|
|
18
|
+
|
|
19
|
+
#endif /* USE_ELF */
|
|
20
|
+
|
|
21
|
+
#endif /* RUBY_ADDR2LINE_H */
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
|
|
3
|
+
constant.h -
|
|
4
|
+
|
|
5
|
+
$Author$
|
|
6
|
+
created at: Sun Nov 15 00:09:33 2009
|
|
7
|
+
|
|
8
|
+
Copyright (C) 2009 Yusuke Endoh
|
|
9
|
+
|
|
10
|
+
**********************************************************************/
|
|
11
|
+
#ifndef CONSTANT_H
|
|
12
|
+
#define CONSTANT_H
|
|
13
|
+
|
|
14
|
+
typedef enum {
|
|
15
|
+
CONST_PUBLIC = 0x00,
|
|
16
|
+
CONST_PRIVATE = 0x01
|
|
17
|
+
} rb_const_flag_t;
|
|
18
|
+
|
|
19
|
+
typedef struct rb_const_entry_struct {
|
|
20
|
+
rb_const_flag_t flag;
|
|
21
|
+
VALUE value; /* should be mark */
|
|
22
|
+
} rb_const_entry_t;
|
|
23
|
+
|
|
24
|
+
VALUE rb_mod_private_constant(int argc, VALUE *argv, VALUE obj);
|
|
25
|
+
VALUE rb_mod_public_constant(int argc, VALUE *argv, VALUE obj);
|
|
26
|
+
void rb_free_const_table(st_table *tbl);
|
|
27
|
+
VALUE rb_public_const_get(VALUE klass, ID id);
|
|
28
|
+
VALUE rb_public_const_get_at(VALUE klass, ID id);
|
|
29
|
+
VALUE rb_public_const_get_from(VALUE klass, ID id);
|
|
30
|
+
int rb_public_const_defined(VALUE klass, ID id);
|
|
31
|
+
int rb_public_const_defined_at(VALUE klass, ID id);
|
|
32
|
+
int rb_public_const_defined_from(VALUE klass, ID id);
|
|
33
|
+
|
|
34
|
+
#endif /* CONSTANT_H */
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
|
|
3
|
+
debug.h - YARV Debug function interface
|
|
4
|
+
|
|
5
|
+
$Author$
|
|
6
|
+
created at: 04/08/25 02:33:49 JST
|
|
7
|
+
|
|
8
|
+
Copyright (C) 2004-2007 Koichi Sasada
|
|
9
|
+
|
|
10
|
+
**********************************************************************/
|
|
11
|
+
|
|
12
|
+
#ifndef RUBY_DEBUG_H
|
|
13
|
+
#define RUBY_DEBUG_H
|
|
14
|
+
|
|
15
|
+
#include "ruby/ruby.h"
|
|
16
|
+
#include "node.h"
|
|
17
|
+
|
|
18
|
+
#if defined __GNUC__ && __GNUC__ >= 4
|
|
19
|
+
#pragma GCC visibility push(default)
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
#define dpv(h,v) ruby_debug_print_value(-1, 0, (h), (v))
|
|
23
|
+
#define dp(v) ruby_debug_print_value(-1, 0, "", (v))
|
|
24
|
+
#define dpi(i) ruby_debug_print_id(-1, 0, "", (i))
|
|
25
|
+
#define dpn(n) ruby_debug_print_node(-1, 0, "", (n))
|
|
26
|
+
|
|
27
|
+
#define bp() ruby_debug_breakpoint()
|
|
28
|
+
|
|
29
|
+
VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v);
|
|
30
|
+
ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id);
|
|
31
|
+
NODE *ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node);
|
|
32
|
+
int ruby_debug_print_indent(int level, int debug_level, int indent_level);
|
|
33
|
+
void ruby_debug_breakpoint(void);
|
|
34
|
+
void ruby_debug_gc_check_func(void);
|
|
35
|
+
void ruby_set_debug_option(const char *str);
|
|
36
|
+
|
|
37
|
+
#if defined __GNUC__ && __GNUC__ >= 4
|
|
38
|
+
#pragma GCC visibility pop
|
|
39
|
+
#endif
|
|
40
|
+
|
|
41
|
+
#endif /* RUBY_DEBUG_H */
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
|
|
3
|
+
dln.h -
|
|
4
|
+
|
|
5
|
+
$Author$
|
|
6
|
+
created at: Wed Jan 19 16:53:09 JST 1994
|
|
7
|
+
|
|
8
|
+
Copyright (C) 1993-2007 Yukihiro Matsumoto
|
|
9
|
+
|
|
10
|
+
**********************************************************************/
|
|
11
|
+
|
|
12
|
+
#ifndef DLN_H
|
|
13
|
+
#define DLN_H
|
|
14
|
+
|
|
15
|
+
#ifdef __cplusplus
|
|
16
|
+
# ifndef HAVE_PROTOTYPES
|
|
17
|
+
# define HAVE_PROTOTYPES 1
|
|
18
|
+
# endif
|
|
19
|
+
# ifndef HAVE_STDARG_PROTOTYPES
|
|
20
|
+
# define HAVE_STDARG_PROTOTYPES 1
|
|
21
|
+
# endif
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
#undef _
|
|
25
|
+
#ifdef HAVE_PROTOTYPES
|
|
26
|
+
# define _(args) args
|
|
27
|
+
#else
|
|
28
|
+
# define _(args) ()
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
#if defined __GNUC__ && __GNUC__ >= 4
|
|
32
|
+
#pragma GCC visibility push(default)
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
DEPRECATED(char *dln_find_exe(const char*,const char*));
|
|
36
|
+
DEPRECATED(char *dln_find_file(const char*,const char*));
|
|
37
|
+
char *dln_find_exe_r(const char*,const char*,char*,size_t);
|
|
38
|
+
char *dln_find_file_r(const char*,const char*,char*,size_t);
|
|
39
|
+
|
|
40
|
+
#ifdef USE_DLN_A_OUT
|
|
41
|
+
extern char *dln_argv0;
|
|
42
|
+
#endif
|
|
43
|
+
|
|
44
|
+
void *dln_load(const char*);
|
|
45
|
+
|
|
46
|
+
#if defined __GNUC__ && __GNUC__ >= 4
|
|
47
|
+
#pragma GCC visibility pop
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
#endif
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
ENC_DEFINE("ASCII-8BIT");
|
|
2
|
+
ENC_DEFINE("UTF-8");
|
|
3
|
+
ENC_DEFINE("US-ASCII");
|
|
4
|
+
ENC_DEFINE("Big5");
|
|
5
|
+
ENC_DEFINE("Big5-HKSCS");
|
|
6
|
+
ENC_DEFINE("Big5-UAO");
|
|
7
|
+
ENC_DEFINE("CP949");
|
|
8
|
+
ENC_DEFINE("Emacs-Mule");
|
|
9
|
+
ENC_DEFINE("EUC-JP");
|
|
10
|
+
ENC_DEFINE("EUC-KR");
|
|
11
|
+
ENC_DEFINE("EUC-TW");
|
|
12
|
+
ENC_DEFINE("GB2312");
|
|
13
|
+
ENC_DEFINE("GB18030");
|
|
14
|
+
ENC_DEFINE("GBK");
|
|
15
|
+
ENC_DEFINE("ISO-8859-1");
|
|
16
|
+
ENC_DEFINE("ISO-8859-2");
|
|
17
|
+
ENC_DEFINE("ISO-8859-3");
|
|
18
|
+
ENC_DEFINE("ISO-8859-4");
|
|
19
|
+
ENC_DEFINE("ISO-8859-5");
|
|
20
|
+
ENC_DEFINE("ISO-8859-6");
|
|
21
|
+
ENC_DEFINE("ISO-8859-7");
|
|
22
|
+
ENC_DEFINE("ISO-8859-8");
|
|
23
|
+
ENC_DEFINE("ISO-8859-9");
|
|
24
|
+
ENC_DEFINE("ISO-8859-10");
|
|
25
|
+
ENC_DEFINE("ISO-8859-11");
|
|
26
|
+
ENC_DEFINE("ISO-8859-13");
|
|
27
|
+
ENC_DEFINE("ISO-8859-14");
|
|
28
|
+
ENC_DEFINE("ISO-8859-15");
|
|
29
|
+
ENC_DEFINE("ISO-8859-16");
|
|
30
|
+
ENC_DEFINE("KOI8-R");
|
|
31
|
+
ENC_DEFINE("KOI8-U");
|
|
32
|
+
ENC_DEFINE("Shift_JIS");
|
|
33
|
+
ENC_DEFINE("UTF-16BE");
|
|
34
|
+
ENC_DEFINE("UTF-16LE");
|
|
35
|
+
ENC_DEFINE("UTF-32BE");
|
|
36
|
+
ENC_DEFINE("UTF-32LE");
|
|
37
|
+
ENC_DEFINE("Windows-31J");
|
|
38
|
+
ENC_DEFINE("Windows-1251");
|
|
39
|
+
ENC_ALIAS("BINARY", "ASCII-8BIT");
|
|
40
|
+
ENC_REPLICATE("IBM437", "ASCII-8BIT");
|
|
41
|
+
ENC_ALIAS("CP437", "IBM437");
|
|
42
|
+
ENC_REPLICATE("IBM737", "ASCII-8BIT");
|
|
43
|
+
ENC_ALIAS("CP737", "IBM737");
|
|
44
|
+
ENC_REPLICATE("IBM775", "ASCII-8BIT");
|
|
45
|
+
ENC_ALIAS("CP775", "IBM775");
|
|
46
|
+
ENC_REPLICATE("CP850", "ASCII-8BIT");
|
|
47
|
+
ENC_ALIAS("IBM850", "CP850");
|
|
48
|
+
ENC_REPLICATE("IBM852", "ASCII-8BIT");
|
|
49
|
+
ENC_REPLICATE("CP852", "IBM852");
|
|
50
|
+
ENC_REPLICATE("IBM855", "ASCII-8BIT");
|
|
51
|
+
ENC_REPLICATE("CP855", "IBM855");
|
|
52
|
+
ENC_REPLICATE("IBM857", "ASCII-8BIT");
|
|
53
|
+
ENC_ALIAS("CP857", "IBM857");
|
|
54
|
+
ENC_REPLICATE("IBM860", "ASCII-8BIT");
|
|
55
|
+
ENC_ALIAS("CP860", "IBM860");
|
|
56
|
+
ENC_REPLICATE("IBM861", "ASCII-8BIT");
|
|
57
|
+
ENC_ALIAS("CP861", "IBM861");
|
|
58
|
+
ENC_REPLICATE("IBM862", "ASCII-8BIT");
|
|
59
|
+
ENC_ALIAS("CP862", "IBM862");
|
|
60
|
+
ENC_REPLICATE("IBM863", "ASCII-8BIT");
|
|
61
|
+
ENC_ALIAS("CP863", "IBM863");
|
|
62
|
+
ENC_REPLICATE("IBM864", "ASCII-8BIT");
|
|
63
|
+
ENC_ALIAS("CP864", "IBM864");
|
|
64
|
+
ENC_REPLICATE("IBM865", "ASCII-8BIT");
|
|
65
|
+
ENC_ALIAS("CP865", "IBM865");
|
|
66
|
+
ENC_REPLICATE("IBM866", "ASCII-8BIT");
|
|
67
|
+
ENC_ALIAS("CP866", "IBM866");
|
|
68
|
+
ENC_REPLICATE("IBM869", "ASCII-8BIT");
|
|
69
|
+
ENC_ALIAS("CP869", "IBM869");
|
|
70
|
+
ENC_REPLICATE("Windows-1258", "ASCII-8BIT");
|
|
71
|
+
ENC_ALIAS("CP1258", "Windows-1258");
|
|
72
|
+
ENC_REPLICATE("GB1988", "ASCII-8BIT");
|
|
73
|
+
ENC_REPLICATE("macCentEuro", "ASCII-8BIT");
|
|
74
|
+
ENC_REPLICATE("macCroatian", "ASCII-8BIT");
|
|
75
|
+
ENC_REPLICATE("macCyrillic", "ASCII-8BIT");
|
|
76
|
+
ENC_REPLICATE("macGreek", "ASCII-8BIT");
|
|
77
|
+
ENC_REPLICATE("macIceland", "ASCII-8BIT");
|
|
78
|
+
ENC_REPLICATE("macRoman", "ASCII-8BIT");
|
|
79
|
+
ENC_REPLICATE("macRomania", "ASCII-8BIT");
|
|
80
|
+
ENC_REPLICATE("macThai", "ASCII-8BIT");
|
|
81
|
+
ENC_REPLICATE("macTurkish", "ASCII-8BIT");
|
|
82
|
+
ENC_REPLICATE("macUkraine", "ASCII-8BIT");
|
|
83
|
+
ENC_REPLICATE("CP950", "Big5");
|
|
84
|
+
ENC_SET_BASE("Big5-HKSCS", "Big5");
|
|
85
|
+
ENC_ALIAS("Big5-HKSCS:2008", "Big5-HKSCS");
|
|
86
|
+
ENC_REPLICATE("CP951", "Big5-HKSCS");
|
|
87
|
+
ENC_SET_BASE("Big5-UAO", "Big5");
|
|
88
|
+
ENC_REPLICATE("stateless-ISO-2022-JP", "Emacs-Mule");
|
|
89
|
+
ENC_ALIAS("eucJP", "EUC-JP") /* UI-OSF Application Platform Profile for Japanese Environment Version 1.1 */;
|
|
90
|
+
ENC_REPLICATE("eucJP-ms", "EUC-JP") /* TOG/JVC CDE/Motif Technical WG */;
|
|
91
|
+
ENC_ALIAS("euc-jp-ms", "eucJP-ms");
|
|
92
|
+
ENC_REPLICATE("CP51932", "EUC-JP");
|
|
93
|
+
ENC_REPLICATE("EUC-JIS-2004", "EUC-JP") /* defined at JIS X 0213:2004 */;
|
|
94
|
+
ENC_ALIAS("EUC-JISX0213", "EUC-JIS-2004") /* defined at JIS X 0213:2000, and obsolete at JIS X 0213:2004 */;
|
|
95
|
+
ENC_ALIAS("eucKR", "EUC-KR");
|
|
96
|
+
ENC_ALIAS("eucTW", "EUC-TW");
|
|
97
|
+
ENC_ALIAS("EUC-CN", "GB2312");
|
|
98
|
+
ENC_ALIAS("eucCN", "GB2312");
|
|
99
|
+
ENC_REPLICATE("GB12345", "GB2312");
|
|
100
|
+
ENC_ALIAS("CP936", "GBK");
|
|
101
|
+
ENC_DUMMY("ISO-2022-JP");
|
|
102
|
+
ENC_ALIAS("ISO2022-JP", "ISO-2022-JP");
|
|
103
|
+
ENC_REPLICATE("ISO-2022-JP-2", "ISO-2022-JP");
|
|
104
|
+
ENC_ALIAS("ISO2022-JP2", "ISO-2022-JP-2");
|
|
105
|
+
ENC_REPLICATE("CP50220", "ISO-2022-JP");
|
|
106
|
+
ENC_REPLICATE("CP50221", "ISO-2022-JP");
|
|
107
|
+
ENC_ALIAS("ISO8859-1", "ISO-8859-1");
|
|
108
|
+
ENC_REPLICATE("Windows-1252", "ISO-8859-1");
|
|
109
|
+
ENC_ALIAS("CP1252", "Windows-1252");
|
|
110
|
+
ENC_ALIAS("ISO8859-2", "ISO-8859-2");
|
|
111
|
+
ENC_REPLICATE("Windows-1250", "ISO-8859-2");
|
|
112
|
+
ENC_ALIAS("CP1250", "Windows-1250");
|
|
113
|
+
ENC_ALIAS("ISO8859-3", "ISO-8859-3");
|
|
114
|
+
ENC_ALIAS("ISO8859-4", "ISO-8859-4");
|
|
115
|
+
ENC_ALIAS("ISO8859-5", "ISO-8859-5");
|
|
116
|
+
ENC_ALIAS("ISO8859-6", "ISO-8859-6");
|
|
117
|
+
ENC_REPLICATE("Windows-1256", "ISO-8859-6");
|
|
118
|
+
ENC_ALIAS("CP1256", "Windows-1256");
|
|
119
|
+
ENC_ALIAS("ISO8859-7", "ISO-8859-7");
|
|
120
|
+
ENC_REPLICATE("Windows-1253", "ISO-8859-7");
|
|
121
|
+
ENC_ALIAS("CP1253", "Windows-1253");
|
|
122
|
+
ENC_ALIAS("ISO8859-8", "ISO-8859-8");
|
|
123
|
+
ENC_REPLICATE("Windows-1255", "ISO-8859-8");
|
|
124
|
+
ENC_ALIAS("CP1255", "Windows-1255");
|
|
125
|
+
ENC_ALIAS("ISO8859-9", "ISO-8859-9");
|
|
126
|
+
ENC_REPLICATE("Windows-1254", "ISO-8859-9");
|
|
127
|
+
ENC_ALIAS("CP1254", "Windows-1254");
|
|
128
|
+
ENC_ALIAS("ISO8859-10", "ISO-8859-10");
|
|
129
|
+
ENC_ALIAS("ISO8859-11", "ISO-8859-11");
|
|
130
|
+
ENC_REPLICATE("TIS-620", "ISO-8859-11");
|
|
131
|
+
ENC_REPLICATE("Windows-874", "ISO-8859-11");
|
|
132
|
+
ENC_ALIAS("CP874", "Windows-874");
|
|
133
|
+
ENC_ALIAS("ISO8859-13", "ISO-8859-13");
|
|
134
|
+
ENC_REPLICATE("Windows-1257", "ISO-8859-13");
|
|
135
|
+
ENC_ALIAS("CP1257", "Windows-1257");
|
|
136
|
+
ENC_ALIAS("ISO8859-14", "ISO-8859-14");
|
|
137
|
+
ENC_ALIAS("ISO8859-15", "ISO-8859-15");
|
|
138
|
+
ENC_ALIAS("ISO8859-16", "ISO-8859-16");
|
|
139
|
+
ENC_ALIAS("CP878", "KOI8-R");
|
|
140
|
+
ENC_REPLICATE("MacJapanese", "Shift_JIS");
|
|
141
|
+
ENC_ALIAS("MacJapan", "MacJapanese");
|
|
142
|
+
ENC_ALIAS("ASCII", "US-ASCII");
|
|
143
|
+
ENC_ALIAS("ANSI_X3.4-1968", "US-ASCII");
|
|
144
|
+
ENC_ALIAS("646", "US-ASCII");
|
|
145
|
+
ENC_DUMMY("UTF-7");
|
|
146
|
+
ENC_ALIAS("CP65000", "UTF-7");
|
|
147
|
+
ENC_ALIAS("CP65001", "UTF-8");
|
|
148
|
+
ENC_REPLICATE("UTF8-MAC", "UTF-8");
|
|
149
|
+
ENC_ALIAS("UTF-8-MAC", "UTF8-MAC");
|
|
150
|
+
ENC_ALIAS("UTF-8-HFS", "UTF8-MAC") /* Emacs 23.2 */;
|
|
151
|
+
ENC_DUMMY_UNICODE("UTF-16");
|
|
152
|
+
ENC_DUMMY_UNICODE("UTF-32");
|
|
153
|
+
ENC_ALIAS("UCS-2BE", "UTF-16BE");
|
|
154
|
+
ENC_ALIAS("UCS-4BE", "UTF-32BE");
|
|
155
|
+
ENC_ALIAS("UCS-4LE", "UTF-32LE");
|
|
156
|
+
ENC_ALIAS("CP932", "Windows-31J");
|
|
157
|
+
ENC_ALIAS("csWindows31J", "Windows-31J") /* IANA. IE6 don't accept Windows-31J but csWindows31J. */;
|
|
158
|
+
ENC_ALIAS("SJIS", "Windows-31J");
|
|
159
|
+
ENC_ALIAS("PCK", "Windows-31J");
|
|
160
|
+
ENC_ALIAS("CP1251", "Windows-1251");
|
|
161
|
+
ENC_REPLICATE("UTF8-DoCoMo", "UTF-8");
|
|
162
|
+
ENC_REPLICATE("SJIS-DoCoMo", "Windows-31J");
|
|
163
|
+
ENC_REPLICATE("UTF8-KDDI", "UTF-8");
|
|
164
|
+
ENC_REPLICATE("SJIS-KDDI", "Windows-31J");
|
|
165
|
+
ENC_REPLICATE("ISO-2022-JP-KDDI", "ISO-2022-JP");
|
|
166
|
+
ENC_REPLICATE("stateless-ISO-2022-JP-KDDI", "stateless-ISO-2022-JP");
|
|
167
|
+
ENC_REPLICATE("UTF8-SoftBank", "UTF-8");
|
|
168
|
+
ENC_REPLICATE("SJIS-SoftBank", "Windows-31J");
|
|
169
|
+
|
|
170
|
+
#define ENCODING_COUNT 100
|