diff -uNr ../enscript-1.6.4.mp_patched/states/hl/Makefile.in ./states/hl/Makefile.in --- ../enscript-1.6.4.mp_patched/states/hl/Makefile.in 2009-07-22 00:44:57.000000000 +0900 +++ ./states/hl/Makefile.in 2009-07-22 00:46:44.000000000 +0900 @@ -188,9 +188,9 @@ diffs.st diffu.st elisp.st fortran.st fortran_pp.st haskell.st html.st \ idl.st inf.st java.st javascript.st ksh.st m4.st mail.st makefile.st \ matlab.st nroff.st objc.st outline.st pascal.st passthrough.st perl.st \ -postscript.st python.st pyrex.st rfc.st scheme.st sh.st skill.st \ -sql.st states.st synopsys.st tcl.st tcsh.st tex.st vba.st verilog.st \ -vhdl.st vrml.st wmlscript.st zsh.st +postscript.st python.st pyrex.st ruby.st rfc.st scheme.st sh.st \ +skill.st sql.st states.st synopsys.st tcl.st tcsh.st tex.st vba.st \ +verilog.st vhdl.st vrml.st wmlscript.st zsh.st states = $(misc) $(styles) $(languages) $(highlightings) diff -uNr ../enscript-1.6.4.mp_patched/states/hl/enscript.st ./states/hl/enscript.st --- ../enscript-1.6.4.mp_patched/states/hl/enscript.st 2003-03-05 17:31:31.000000000 +0900 +++ ./states/hl/enscript.st 2009-07-22 00:54:38.000000000 +0900 @@ -489,6 +489,7 @@ /\.idl$/ idl; /\.(hs|lhs|gs|lgs)$/ haskell; /\.(pm|pl)$/ perl; + /\.(rb|rbw)$/ ruby; /\.(eps|EPS|ps|PS)$/ postscript; /\.py$/ python; /\.pyx$/ pyrex; @@ -530,6 +531,8 @@ /-\*- [Ii][Dd][Ll] -\*-/ idl; /-\*- [Pp][Ee][Rr][Ll] -\*-/ perl; /^#![ \t]*\/.*\/perl/ perl; + /-\*- [Rr][Uu][Bb][Yy] -\*-/ ruby; + /^#![ \t]*\/.*\/(env )?ruby/ ruby; /^From:/ mail; /^#![ \t]*(\/usr)?\/bin\/[ngmt]?awk/ awk; /^#![ \t]*(\/usr)?\/bin\/sh/ sh; diff -uNr ../enscript-1.6.4.mp_patched/states/hl/ruby.st ./states/hl/ruby.st --- ../enscript-1.6.4.mp_patched/states/hl/ruby.st 1970-01-01 09:00:00.000000000 +0900 +++ ./states/hl/ruby.st 2009-07-22 00:45:47.000000000 +0900 @@ -0,0 +1,213 @@ +/** + * Name: ruby + * Description: Ruby programming language. + * Author: Mike Wilson + */ + +state ruby_comment +{ + /\*\\\// { + language_print ($0); + return; + } + LANGUAGE_SPECIALS { + language_print ($0); + } +} + +state ruby_dquot_string +{ + /\\\\./ { + language_print ($0); + } + /\"/ { + language_print ($0); + return; + } + LANGUAGE_SPECIALS { + language_print ($0); + } +} + +state ruby_quot_string +{ + /\\\\./ { + language_print ($0); + } + /[\']/ { + language_print ($0); + return; + } + LANGUAGE_SPECIALS { + language_print ($0); + } +} + +state ruby_bquot_string +{ + /\\\\./ { + language_print ($0); + } + /`/ { + language_print ($0); + return; + } + LANGUAGE_SPECIALS { + language_print ($0); + } +} + +state ruby +{ + BEGIN { + header (); + } + END { + trailer (); + } + + /* Comments. */ + /#[^{].*$/ { + comment_face (true); + language_print ($0); + comment_face (false); + } + + /* Ignore escaped quote marks */ + /\\\"/ { + language_print ($0); + } + /\\\'/ { + language_print ($0); + } + /\\\`/ { + language_print ($0); + } + + /* In cgi files, JavaScript might be imbedded, so we need to look out + * for the JavaScript comments, because they might contain something + * we don't like, like a contraction (don't, won't, etc.) + * We won't put them in comment face, because they are not ruby + * comments. + */ + /\/\// { + language_print ($0); + call (eat_one_line); + } + + /* String constants. */ + /\"/ { + string_face (true); + language_print ($0); + call (ruby_dquot_string); + string_face (false); + } + /[\']/ { + string_face (true); + language_print ($0); + call (ruby_quot_string); + string_face (false); + } + + /* Backquoted command string */ + /`/ { + string_face (true); + language_print ($0); + call (ruby_bquot_string); + string_face (false); + } + + /* Variables globals and instance */ + /[$@]\w+/ { + variable_name_face (true); + language_print ($0); + variable_name_face (false); + } + + /* Variables class variable */ + /@@\w+/ { + variable_name_face (true); + language_print ($0); + variable_name_face (false); + } + + /([ \t]*)(def)([ \t]+)([^(]*)/ { + /* indentation */ + language_print ($1); + + /* def */ + keyword_face (true); + language_print ($2); + keyword_face (false); + + /* middle */ + language_print ($3); + + /* Function name. */ + function_name_face (true); + language_print ($4); + function_name_face (false); + } + + /\$[!@&`'+~=\/\\,;.<>_*$?:"]/ { + variable_name_face (true); + language_print ($0); + variable_name_face (false); + } + + /* Highlighting + --Type face + private protected public + + --Reference face + require include load + + --Builtin face (I consider these to be somewhat special) + alias alias_method attr attr_accessor attr_reader attr_writer + module_alias module_function self super + + --Keyword face + and begin break case class def defined? do else elsif end + ensure eval extend false for if in method module next nil not + or redo rescue retry return then true undef unless until when + while yield proc lambda loop catch throw __LINE__ __FILE__ END BEGIN + */ +/\\b(private|protected|public)\\b/ { + type_face (true); + language_print ($0); + type_face (false); + } + +/\\b(include|require|load)\\b/ { + reference_face (true); + language_print ($0); + reference_face (false); + } + +/\\b(alias|alias_method|attr|attr_accessor|attr_reader|attr_writer\\ +|module_alias|module_function|self|super)\\b/ { + builtin_face (true); + language_print ($0); + builtin_face (false); + } + +/\\b(and|begin|break|case|class|def|defined?|do|else|elsif|end|ensure|eval\\ +|extend|false|for|if|in|method|module|next|nil|not|or|raise|redo|rescue|retry\\ +|return|then|true|undef|unless|until|when|while|yield|proc|lambda|loop|catch\\ +|throw|__LINE__|__FILE__|END|BEGIN)\\b/ { + keyword_face (true); + language_print ($0); + keyword_face (false); + } + + LANGUAGE_SPECIALS { + language_print ($0); + } +} + + +/* +Local variables: +mode: c +End: +*/