Bug 77322
Summary: | en_US locale means [A-Z] matches *some* lower case letters | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | luke |
Component: | glibc | Assignee: | Jakub Jelinek <jakub> |
Status: | CLOSED NOTABUG | QA Contact: | Brian Brock <bbrock> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 8.0 | CC: | fweimer, mitr |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i686 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2002-11-05 04:24:18 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
luke
2002-11-05 04:24:12 UTC
This is not a bug, the bug was when regex weren't doing this. In en_US collation, a comes before A which comes before b before B etc. If your script depends on C collation, you have to say so. I agree. The change could have been better publicised though. Below are some consequences for Red Hat itself. I set LC_COLLATE=C and then in /usr/bin did this: grep A-Z `file * 2> /dev/null | grep text | sed 's/:.*//'` to find some examples of (Red Hat?) scripts in /usr/bin that should therefore be changed to use expressions like [:upper:]. These are listed below. The man page for regex(3) is also wrong now: [4] [set] Matches one of the characters in the set. If the first character in the set is ^, it matches a character NOT in the set. A shorthand S-E is used to specify a set of characters S up to E, inclusive. The spe- cial characters ] and - have no special meaning if they appear as the first chars in the set. examples: match: [a-z] any lowercase alpha [^]-] any char except ] and - [^A-Z] any char except uppercase alpha [a-zA-Z0-9] any alphanumeric Let me know if you'd prefer me to submit a fresh bug report, for these consequences of the correct implementation of collation semantics. aclocal: if (! &search && /(^|\s+)(AM_[A-Z0-9_]+)/) aclocal: if (! &search && /(^|\s+)(AM_[A-Z0-9_]+)/) as86_encap: [A-Za-z_]* ) PREFIX="$1" audiofile-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; autoconf: sed -n "s/^[^#]*\\(${pattern}[_A-Za-z0-9]*\\).*/\\1/p" $tmpout | autoheader: sym="`echo ${func} | sed 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`" autoheader: sym="`echo ${header} | sed 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`" autoheader: sym="`echo ${lib} | sed 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`" automake:$RULE_PATTERN = "^([\$a-zA-Z_.][-.a-zA-Z0-9_(){}/\$]*) *:([^=].*|)\$"; automake:$SUFFIX_RULE_PATTERN = "^\\.([a-zA-Z]+)\\.([a-zA-Z]+)\$"; automake:$MACRO_PATTERN = "^([A-Za-z][A-Za-z0-9_]*)[ \t]*([:+]?)=[ \t]*(.*)\$"; automake:$GNITS_VERSION_PATTERN = '[0-9]+\.[0-9]+([a-z]|\.[0-9]+)?(-[A-Za-z0-9]+)?'; automake:$IF_PATTERN = "^if[ \t]+\([A-Za-z][A-Za-z0-9_]*\)[ \t]*\(#.*\)?\$"; automake: if $VERSION !~ /(\d+)\.(\d+)([a-z]?)-?([A-Za-z0-9]+)?/; automake: elsif (/([0-9]+)\.([0-9]+)([a-z]?)(-[A-Za-z0-9]+)?/) automake: ($xname = $name) =~ tr/A-Za-z0-9_/_/c; automake: ($xname = $one_file) =~ tr/A-Za-z0-9_/_/c; automake: ($xlib = $onelib) =~ tr/A-Za-z0-9_/_/c; automake: ($xlib = $onelib) =~ tr/A-Za-z0-9_/_/c; automake: ($canonical = $infobase) =~ tr/A-Za-z0-9_/_/c; automake: elsif ($one_dep =~ /^\// || $one_dep =~ /^[A-Za-z]:\\/) autoscan: while (s/\W([a-zA-Z_]\w*)\s*\(/ /) { autoscan: while (s/\W([a-zA-Z_]\w*)\W/ /) { autoscan: while (s/\W([a-zA-Z_]\w*)\s*=/ /) { autoscan: while (s/\W-l([a-zA-Z_]\w*)\W/ /) { autoscan: while (s/\W([a-zA-Z_][\w\+\.-]*)\W/ /) { autoscan: while (s/\W([a-zA-Z_]\w*)\W/ /) { c2ph:eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_]+=)(.*)/ && shift; c2ph:eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_]+=)(.*)/ && shift; composeglyphs: if(/^Start([a-zA-Z0-9]*).*/) { composeglyphs: elsif(/^N *([a-zA-Z0-9\.]*)/) { $characterName=$1 ; } composeglyphs: if(/^CC *([a-zA-Z0-9\.]*) *([0-9]*)/) { composeglyphs: elsif(/^PCC *([a-zA-Z0-9.]*) *(-?[0-9]*) *(-?[0-9]*)/) { composeglyphs:# elsif (/^ *([-_$a-zA-Z0-9]*) *([-_$a-zA-Z0-9]*)* ([0-9]*) *$/) { curl-config: -*=*) value=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; cvsbug:/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;; cvsbug:/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;; cvsbug:/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;; cvsbug:/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;; cvsbug:/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;; cvsbug:/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;; dsirc: $a =~ tr/A-Z/a-z/; dsirc: $b =~ tr/A-Z/a-z/; dsirc: $t =~ tr/A-Z/a-z/; dsirc: $n =~ tr/A-Z/a-z/; dsirc: $n =~ tr/A-Z/a-z/; dsirc: $what =~ tr/a-z/A-Z/; dsirc: $n =~ tr/A-Z/a-z/; dsirc: $var =~ tr/a-z/A-Z/; dsirc: $val =~ tr/A-Z/a-z/; dsirc: $val =~ tr/A-Z/a-z/; dsirc: $ctcp =~ tr/a-z/A-Z/; dsirc: $cmd =~ tr/a-z/A-Z/; dsirc: $cmd =~ tr/a-z/A-Z/; dsirc: $a =~ tr/a-z/A-Z/; dsirc: $newarg =~ tr/a-z/A-Z/; dsirc: $s =~ tr/a-z/A-Z/; dsirc: $n =~ tr/A-Z/a-z/; dsirc: $n =~ tr/A-Z/a-z/; dsirc: $newarg =~ tr/A-Z/a-z/; dsirc: $newarg =~ tr/A-Z/a-z/; dsirc: $newarg =~ tr/a-z/A-Z/; dsirc: $cmd =~ tr/a-z/A-Z/; dsirc: $cmd =~ tr/A-Z/a-z/; dsirc: $var =~ tr/a-z/A-Z/; dsirc: $type =~ tr/A-Z/a-z/; dsirc: $type =~ tr/A-Z/a-z/; dsirc: $chnl =~ tr/A-Z/a-z/; dsirc: $c =~ tr/A-Z/a-z/; dsirc: $c =~ tr/A-Z/a-z/; dsirc: $n =~ tr/A-Z/a-z/; dsirc: $cmd =~ tr/a-z/A-Z/; dsirc: $channel =~ tr/A-Z/a-z/; dsirc: $newarg =~ tr/A-Z/a-z/; esd-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; fax: case "$1" in [A-Z]*=*) eval $1 ; shift ;; *) break ;; esac fax: [A-Za-z]*) fixsgml:pat = re.compile("(<\w*)([A-Z])") fixsgml:pat = re.compile("(</\w*)([A-Z])") fontimport: -e 's@.*mode=\([a-zA-Z0-9_]*\).*@\1@; q' freetype-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; gconf-config-1: -*=*) af_optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; gdk-pixbuf-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; gimptool: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; glib-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; glibcbug:/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;; glibcbug:/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;; glibcbug:/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;; glibcbug:/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;; glibcbug:/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;; glibcbug:/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;; gnome-bug:/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;; gnome-bug:/^X-Gnome-CC:/s;<[ A-Za-z0-9]+>;; gnome-bug:/^>Gnome-Libs-Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;; gnome-bug:/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;; gnome-bug:/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;; gnome-bug:/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;; gnome-bug:/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;; gnome-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; gnome-config: up_name=`echo $1 | tr '[a-z]' '[A-Z]'` gnome-convert: s#([-a-zA-Z._0-9]+\@[-a-zA-Z._0-9]+)#<A HREF="mailto:$1">$1</A>#g; gnome-convert: s:>+(\S+\@[-a-zA-Z._0-9]*):<A HREF=\"mailto\:$1\">$1</A>:; gnome-convert: s#(\S+\@[-a-zA-Z._0-9]*)#<A HREF="mailto:$1">$1</A>#; gnome-convert: s#([a-zA-Z]*\.[a-zA-Z.]*)#<A HREF="$1">$1</A>#g; gnome-doc: $id =~ s/[^A-Za-z0-9]/-/g; gnome-doc: $id =~ s/[^A-Za-z0-9]/-/g; gnome-doc: if ($prototype =~ m/^()([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || gnome-doc: $prototype =~ m/^(\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || gnome-doc: $prototype =~ m/^(\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || gnome-doc: $prototype =~ m/^(\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || gnome-doc: $prototype =~ m/^(\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/) { gnome-upgrade.py: /bin/mv ~/.gtkrc ~/.gtkrc.PREUPGRADE && cat ~/.gtkrc.PREUPGRADE | sed -e 's/themes\/[a-zA-Z0-9]*/themes\/Raleigh/g' > ~/.gtkrc gnome-upgrade.py: session_re = re.compile ('^ *(\[[A-Za-z0-9]+\]) *$\n', re.MULTILINE | re.DOTALL) gnome-upgrade.py: session_name_re = re.compile ('\[([A-Za-z0-9]+)\]') gtk-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; h2ph: } elsif(/^\s*(typedef\s*)?enum\s*(\s+[a-zA-Z_]\w*\s*)?\{/) { h2ph: /^\s?(typedef\s?)?enum\s?([a-zA-Z_]\w*)?\s?\{(.*)\}\s?([a-zA-Z_]\w*)?\s?;/; h2ph: my ($enum_name, $enum_value) = $enum =~ /^([a-zA-Z_]\w*)(=.+)?$/; h2ph: s/^([_A-Z]\w*(\[[^\]]+\])?((\.|->)[_A-Z]\w*(\[[^\]]+\])?)+)//i && do { h2ph: s/^([_a-zA-Z]\w*)// && do { ifnames: if (sym ~ /^[A-Za-z_]/) { ifnames: sub(/[^A-Za-z_0-9].*/, "", $0) ifnames: for (i = split($0, field, /[^A-Za-z_0-9]+/); 1 <= i; i--) { imlib-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; latex2html:unless ($ISO_LANGUAGE =~ /^[A-Z.]+$/) { latex2html:if($ACCENT_IMAGES && $ACCENT_IMAGES !~ /^[a-zA-Z,]+$/) { latex2html: s/\\verb()(\;SPM\w+\;|[^a-zA-Z*\s])/"<verb$1".++$id.">$2"/e || latex2html: s/\\newedcommand(<<\d+>>)([A-Za-z]+|[^A-Za-z])\1(\[\d+\])?(\[[^]]*\])?(<<\d+>>)[\w\W\n]*\5($comment_mark\d*)?//gm; latex2html: } elsif ($contents =~ /^\s*\\([a-zA-Z]+)\b/s) { latex2html: if ($contents =~/;SPM([a-zA-Z]+);/) { $has_special_chars=1 }; latex2html: /\\((boldsymbol|bm)|(math|text)(bf|rm|it|tt)|times|[{}@#^_])(\b|[^A-Za-z]|$)/)) { latex2html: $mathcontents =~ s/\^(\\[a-zA-Z]+|.)/<SUP>$1<\/SUP>/g; latex2html: $mathcontents =~ s/_(\\[a-zA-Z]+|.)/<SUB>$1<\/SUB>/g; latex2html: $mathcontents =~ s/(^|\s|[,;:'\?\.\[\]\(\)\+\-\=\!>]|[^\\<]\/|\d)(<(I|TT|B)>)?([a-zA-Z]([a-zA-Z ]*[a-zA-Z])?)(<\/\3>)?/ latex2html: $mathcontents =~ s/\\times($|\b|[^A-Za-z])/ x $1/g; latex2html: $mathcontents =~ s/\\times($|\b|[^A-Za-z])/ x $1/g; latex2html: $mathcontents =~ s/;<I>SPM([a-zA-Z]+)<\/I>;/;SPM$1;/go; latex2html: elsif ( $fontinfo =~ /[a-zA-Z]+(\d+)\b/ ) { $size = $1.'pt' } latex2html: elsif ( $fontinfo =~ /[a-zA-Z]+(\d+)\b/ ) { $size = $1.'pt' } latex2html: elsif (/latex2htmlLength ([a-zA-Z]+)=(\-?[\d\.]+)pt/) { latex2html: $alt =~ s/^(\\vbox\{)?\#[A-Za-z]*\s*//; latex2html: $alt =~ s/\n?\#[A-Za-z]*\s*\}?$//s; latex2html: $after =~ s/^\s*\\([a-zA-Z]+|.)/$nextcmd = $1;''/eo; latex2html: $after =~ s/^\s*\\([a-zA-Z]+|.)/$nextcmd = $1;''/eo; latex2html: $after =~ s/^\s*(\\[a-zA-Z]+|.)/$arg = $1;''/e; latex2html: if ($before=~/(^|[^\\])\\[a-zA-Z]+$/ && /^$/ && $after=~/^[a-zA-Z]/) || latex2html: ($before=~/(^|[^\\])\\[a-zA-Z]+$/ && /^[a-zA-Z]/); latex2html: if /(^|[^\\])\\[a-zA-Z]+$/ && $after=~/^[a-zA-Z]/; latex2html:# s/(^|,)\s*([a-zA-Z]+)\s*\=\s*"?([\#\%\w\d]+)"?\s*/$attributes{$2}="$3";''/eg; latex2html:# s/(^|,)\s*([a-zA-Z]+)\s*\=\s*(\"([^"]*)\"|\'([^\']*)\'|([#%\w\d]*))\s*/ latex2html:# s/(^|,)\s*([a-zA-Z]+)\s*\=\s*(\"([^"]*)\"|\'([^\']*)\'|([#%&@;:+-\/\w\d]*))\s*/ latex2html: s/(^|,)\s*([a-zA-Z]+)\s*\=\s*(\"([^"]*)\"|\'([^\']*)\'|([^<>,=\s]*))\s*/ latex2html: $KEY =~ tr/a-z/A-Z/; latex2html:# $atts =~ tr/A-Z/a-z/; latex2html:# $atts =~ tr/A-Z/a-z/; latex2html:# $atts =~ tr/A-Z/a-z/; latex2html: $KEY =~ tr/a-z/A-Z/; latex2html: $atts =~ tr/A-Z/a-z/; latex2html: $KEY =~ tr/a-z/A-Z/; latex2html: $KEY =~ tr/a-z/A-Z/; latex2html: $atts =~ tr/A-Z/a-z/; latex2html: $preamble =~ s/\\par([^A-Za-z]|$)/\n$1/g; latex2html: tr/A-Z/a-z/; latex2html: s/<\/(TT|[^PTH][A-Z]+)><\1>//g; latex2html: s/<([A-Z]+)[^>]*>\s*<\/\1>\s*//g; latex2html: s/^\s*(\\([a-zA-Z]+|.)|[&;]\w+;(#\w+;)?|.)/$tok=$1;''/e; latex2html: if (s/^\s*\\lq(\b|$|[^A-Za-z])/$1/) { latex2html: if ($cmd=~s/^\\([a-zA-Z]+)//s) { $cmd = $1 }; latex2html: $_[0] =~ s/\\item[\s\r]*(\b(\[(([^\[\]]|\[[^]]*\])*)\])?|[^a-zA-Z\s])/ latex2html:# grep (do {tr/a-z/A-Z/ unless /(^\\)|(tex2html)/}, @words); latex2html: my $padding = ($after =~ /^[a-zA-Z]/s)? ($cmd =~ /\W$/ ? '':' '):''; latex2html: if $use_label =~ (/<\/([A-Z]+)>($math_verbatim_rx.*)<\1>/); latex2html: return($text) unless ($text =~ /<\/([A-Z]+)>(\s*$math_verbatim_rx.*)(<\1( [^>]*)?>)/); latex2html: if $use_label =~ (/<\/([A-Z]+)>($math_verbatim_rx.*)<\1>/); latex2html: $number =~ tr/a-z/A-Z/; latex2html: if (!(s/^\s*\\if([a-zA-Z]+)//)) { latex2html: if (s/^\\([ij])([^a-zA-Z]|$)/$2/) { latex2html: while ($text =~ /(\\[a-zA-Z]+|[&;]SPM\w+;|<[^>]+>)+/m ) { latex2html: eval "\$next =~ tr/a-z$sclower/A-Z$scupper/"; latex2html: eval "\$next =~ tr/a-z$sclower/A-Z$scupper/"; latex2html: while ($text =~ /(\\[a-zA-Z]+|[&;]SPM\w+;)/ ) { latex2html: $next =~ tr /a-z/A-Z/ if ($next); latex2html: $text =~ tr /a-z/A-Z/ if ($text); latex2html: while ($text =~ /(\\[a-zA-Z]+|[&;]SPM\w+;)/ ) { latex2html: $next =~ tr /A-Z/a-z/ if ($next); latex2html: $text =~ tr /A-Z/a-z/ if ($text); latex2html: $_ =~ tr/A-Z/a-z/; latex2html: $letters = 'a-zA-Z'; latex2html:# $single_cmd_atletter_rx = "\\\\([a-zA-Z\\\@]+\\*?|[$cmd_delims]|\\\\)"; latex2html:# $single_cmd_atother_rx = "\\\\([a-zA-Z]+\\*?|[$cmd_delims]|\\\\)"; latex2html: $next_token_rx = "^[\\s%]*(\\\\[A-Za-z]+|\\\\[^a-zA-Z]|.)"; latex2html: # Eg. \\(\@|...|\+)|\\(abc|...|xyz)(([^a-zA-Z \t])|[ \t]+) libIDL-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; libart-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; libefs-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; libglade-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; libgtop-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; libmikmod-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; libtool:global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGISTW][ABCDGISTW]*\\)[ ][ ]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2\\3 \\3/p'" libtool: -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) ;; libtool: -L[A-Z][A-Z]*:*) libtool: [\\/]* | [A-Za-z]:[\\/]*) ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; libtool: [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) libtool: [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; libtool: [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; libtool: [\\/]* | [A-Za-z]:[\\/]*) ;; licensecheck: header=`head -30 $file| sed 's/ / /g;s/$/ /g' | tr -d -c ' A-Za-z.,/@1-9()'` lsdev: next if /^[ \t]*[A-Z]/; mailserver:set BARLC=(`echo "$FOO" | tr A-Z a-z`) mailshar: | tr '[A-Z]' '[a-z]'`" in mailstat: -e '/^ Folder/s/\/msg\.[-0-9A-Za-z_][-0-9A-Za-z_]* /\/ /' \ mailstat: -e '/^ Folder/s/\/new\/[-0-9A-Za-z_][-0-9A-Za-z_.,+:%@]* /\/ /' \ mailstat: -e '/^ Folder/s/\/msg\.[-0-9A-Za-z_][-0-9A-Za-z_]* /\/ /' \ mailstat: -e '/^ Folder/s/\/new\/[-0-9A-Za-z_][-0-9A-Za-z_.,+:%@]* /\/ /' \ mm-config: -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; oaf-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; orbit-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; pcre-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; pl2pm: @export = m/sub\s+([A-Za-z]\w*)/g; ppmshadow: $opt =~ tr/A-Z/a-z/; ps2epsi: -e '/^%%[A-Za-z][A-Za-z]*[^!-~]*$/d' -e '/^%%[A-Za-z][A-Za-z]*: /d' ${infile} pstruct:eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_]+=)(.*)/ && shift; pstruct:eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_]+=)(.*)/ && shift; qtdoc: fname=`echo $1 | tr '[A-Z]' '[a-z]'` remsync: $email =~ tr/A-Z/a-z/; remsync: $remote =~ tr/A-Z/a-z/; remsync: $here_email_received =~ tr/A-Z/a-z/; remsync: $remote_received =~ tr/A-Z/a-z/; remsync: $here_email =~ tr/A-Z/a-z/; remsync: $string =~ tr/A-Z/a-z/; remsync: tr/A-Z/a-z/; s2p: s/[^a-zA-Z0-9]/_/g; s2p: $label =~ s/[^a-zA-Z0-9]/_/g; s2p: substr($label,0,1) =~ y/a-z/A-Z/ s2p: s/ABCDEFGHIJKLMNOPQRSTUVWXYZ/A-Z/g; s2p: $delim = '' if $ch =~ /^[(){}A-Za-mo-z]$/; scrollkeeper-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; splain: $header =~ s/[A-Z]<(.*?)>/$1/g; splain: ( [A-Za-z]+ ) switchdesk-helper:DESKTOP=`echo $1 |tr a-z A-Z` sync-plan: $pilotname =~ s/[^A-Za-z0-9]+/_/g; texexec: { if (!/^[a-zA-Z\s]/oi) texi2html: $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i); texi2html: $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i); texi2html: $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; texi2html: if ($a =~ /^[A-Za-z]/) texi2html: if ($b =~ /^[A-Za-z]/) texi2html: elsif ($b =~ /^[A-Za-z]/) texi2html: if ($letter =~ /^[A-Za-z]/) texi2html: $sec_name =~ s/.*? // if $sec_name =~ /^([A-Z]|\d+)\./; texi2html: $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; texi2html: $clean_entry =~ s/^.*? // if ($clean_entry =~ /^([A-Z]|\d+)\.[\d\.]* /); texutil:# $copied =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$ASCII{$1}/gio ; texutil:# $string =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$2/gio ; texutil:# $string =~ s/\\[a-zA-Z]*| |\{|\}//gio ; texutil: $copied =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$ASCII{$1}/gio ; texutil: $string =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$2/gio ; texutil: $string =~ s/\\[a-zA-Z]*| |\{|\}//gio ; texutil: $Key =~ s/^([^a-zA-Z])/ $1/go ; unicode-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; winemaker: $name =~ tr/a-zA-Z0-9_/_/c; winemaker: if (($opt_lower == $OPT_LOWER_ALL and $dentry =~ /[A-Z]/) or winemaker: if ($filename =~ /^([a-zA-Z]:)?[\/]/ or $filename =~ /^[a-zA-Z]:[\/]?/) { xdelta-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; xml-config: -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; xmlizer:pat = re.compile("(<\w*)([A-Z])") xmlizer:pat = re.compile("(</\w*)([A-Z])") Regards, luke |