state csh extends HighlightEntry
{
/#/ {
comment_face (true);
language_print ($0);
call (eat_one_line);
comment_face (false);
}
/\"/ {
string_face (true);
language_print ($0);
call (c_string);
string_face (false);
}
/^#!/ {
reference_face (true);
language_print ($0);
call (eat_one_line);
reference_face (false);
}
/\b(%|:|@|alias|b(g|reak(|sw))|c(ase()|d|hdir|ontinue)|d(efault|irs)\
|e(cho|lse|nd(|if|sw)|val|x(ec|it))|f(g|oreach)|g(lob|oto)\
|h(ashstat|istory)|if|jobs|kill|l(imit|og(in|out))|n(ice|o(hup|tify))\
|onintr|p(opd|ushd)|re(hash|peat)\
|s(et(|env)|hift|ource|top|uspend|witch)|t(hen|ime)\
|u(mask|n(alias|hash|limit|set))|w(ait|hile))\b/ {
keyword_face (true);
language_print ($0);
keyword_face (false);
}
/\b(argv|c(dpath|wd)|echo|fi(gnore|lec)|h(ardpaths|ist(chars|ory)|ome)\
|ignoreeof|mail|no(beep|clobber|glob|nomatch|tify)|p(ath|rompt)\
|s(avehist|hell|tatus)|verbose)\b/ {
builtin_face (true);
language_print ($0);
builtin_face (false);
}
}