diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-26 06:00:52 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-26 06:00:52 +0000 |
commit | 32865ef821a045b1bf14c4cfcfc52c70125b3794 (patch) | |
tree | 8a6d594fa57ef58d6e7c9b5603cdb5840b26ee90 | |
parent | 27b35eddd6ee9f5844c636f8201f09281e32d9bb (diff) | |
download | ruby-32865ef821a045b1bf14c4cfcfc52c70125b3794.tar.gz |
* misc/ruby-style.el (ruby-style-{case,label}-indent): adjust for
labels inside switch block.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | misc/ruby-style.el | 22 | ||||
-rw-r--r-- | parse.y | 18 |
3 files changed, 27 insertions, 18 deletions
@@ -1,3 +1,8 @@ +Fri Oct 26 15:00:52 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * misc/ruby-style.el (ruby-style-{case,label}-indent): adjust for + labels inside switch block. + Fri Oct 26 05:48:57 UTC 2007 David Flanagan <davidflanagan@ruby-lang.org> * array.c: raise IndexError for negative length in rb_ary_fill diff --git a/misc/ruby-style.el b/misc/ruby-style.el index 609c7509ba..6591581103 100644 --- a/misc/ruby-style.el +++ b/misc/ruby-style.el @@ -20,18 +20,22 @@ (defun ruby-style-case-indent (x) (save-excursion - (goto-char (cdr x)) - (if (looking-at "\\<case\\|default\\>") '*))) + (unless (progn (backward-up-list) (back-to-indentation) + (> (point) (cdr x))) + (goto-char (cdr x)) + (if (looking-at "\\<case\\|default\\>") '*)))) (defun ruby-style-label-indent (x) (save-excursion - (goto-char (cdr x)) - (condition-case () - (progn - (backward-up-list) - (backward-sexp 2) - (if (looking-at "\\<switch\\>") '/)) - (error)))) + (unless (progn (backward-up-list) (back-to-indentation) + (> (point) (cdr x))) + (goto-char (cdr x)) + (condition-case () + (progn + (backward-up-list) + (backward-sexp 2) + (if (looking-at "\\<switch\\>") '/)) + (error))))) (require 'cc-styles) (c-add-style @@ -5870,11 +5870,11 @@ parser_yylex(struct parser_params *parser) space_seen++; break; case '.': { - if ((c = nextc()) != '.') { - pushback(c); - pushback('.'); - goto retry; - } + if ((c = nextc()) != '.') { + pushback(c); + pushback('.'); + goto retry; + } } default: pushback(c); @@ -5903,7 +5903,7 @@ parser_yylex(struct parser_params *parser) return tOP_ASGN; } pushback(c); - if (IS_ARG() && space_seen && !ISSPACE(c)){ + if (IS_ARG() && space_seen && !ISSPACE(c)) { rb_warning0("`*' interpreted as argument prefix"); c = tSTAR; } @@ -6084,8 +6084,8 @@ parser_yylex(struct parser_params *parser) compile_error(PARSER_ARG "incomplete character syntax"); return 0; } - if (rb_enc_isspace(c, parser->enc)){ - if (!IS_ARG()){ + if (rb_enc_isspace(c, parser->enc)) { + if (!IS_ARG()) { int c2 = 0; switch (c) { case ' ': @@ -6156,7 +6156,7 @@ parser_yylex(struct parser_params *parser) return tOP_ASGN; } pushback(c); - if (IS_ARG() && space_seen && !ISSPACE(c)){ + if (IS_ARG() && space_seen && !ISSPACE(c)) { rb_warning0("`&' interpreted as argument prefix"); c = tAMPER; } |