summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-15 00:06:13 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-15 00:06:13 +0000
commit57fb2199059cb55b632d093c2e64c8a3c60acfbb (patch)
treee35e0fb134907d12cee224d3750f4cc00c7b7634 /file.c
parentb860144680e3af51f7fc0d7185185a92c4fa6aca (diff)
* reduce UNREACHABLE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r--file.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/file.c b/file.c
index 1c31086d26..59de83c5fd 100644
--- a/file.c
+++ b/file.c
@@ -4182,13 +4182,8 @@ test_check(int n, int argc, VALUE *argv)
n+=1;
rb_check_arity(argc, n, n);
for (i=1; i<n; i++) {
- switch (TYPE(argv[i])) {
- case T_STRING:
- default:
+ if (!RB_TYPE_P(argv[i], T_FILE)) {
FilePathValue(argv[i]);
- break;
- case T_FILE:
- break;
}
}
}
@@ -4260,7 +4255,16 @@ rb_f_test(int argc, VALUE *argv)
if (argc == 0) rb_check_arity(argc, 2, 3);
cmd = NUM2CHR(argv[0]);
- if (cmd == 0) goto unknown;
+ if (cmd == 0) {
+ unknown:
+ /* unknown command */
+ if (ISPRINT(cmd)) {
+ rb_raise(rb_eArgError, "unknown command '%s%c'", cmd == '\'' || cmd == '\\' ? "\\" : "", cmd);
+ }
+ else {
+ rb_raise(rb_eArgError, "unknown command \"\\x%02X\"", cmd);
+ }
+ }
if (strchr("bcdefgGkloOprRsSuwWxXz", cmd)) {
CHECK(1);
switch (cmd) {
@@ -4379,16 +4383,7 @@ rb_f_test(int argc, VALUE *argv)
return Qfalse;
}
}
- unknown:
- /* unknown command */
- if (ISPRINT(cmd)) {
- rb_raise(rb_eArgError, "unknown command '%s%c'", cmd == '\'' || cmd == '\\' ? "\\" : "", cmd);
- }
- else {
- rb_raise(rb_eArgError, "unknown command \"\\x%02X\"", cmd);
- }
-
- UNREACHABLE;
+ goto unknown;
}