Re: filename pattern case-insensitive, but why?
Mike Stroyan wrote: On Tue, Sep 22, 2009 at 02:36:30AM -0700, thahn01 wrote: Hello, If I try something like: $ touch a.c b.c A.c $ ls [a-z]*.c a.c A.c b.c then I get A.c in the output, even if no capital letters are to be found. The "[a-z]" range expression matches characters between a and z in the current locale's collation order. The collation order for en_US.UTF-8 and other locales has uppercase and lowercase alphabetic characters together. So in those locales your range includes 'a' through 'z' and 'A' through 'Y'. You can change the locale to "C" or "POSIX" to get plain ascii collation order. You can see the collation order using the sort command. for c in {32..126}; do eval printf '"%c - %d\n"' $(printf "$'%o'" $c) $c;done | sort -k 1.1,1.1 for c in {32..126}; do eval printf '"%c - %d\n"' $(printf "$'%o'" $c) $c;done | LANG=C sort -k 1.1,1.1 The collation order lists 'a' before 'A', but actually lets a later character break a tie between otherwise equal uppercase and lowercase characters. Sort will arrange 'a1', 'A1', 'a2', and 'A2' with the '1' vs. '2' characters acting as a tiebreaker. ...and that it is why instead of using >> $ ls [a-z]*.c you should use >> $ ls [[:lower:]]*.c
Re: Bash 4.0.0 crash on completion
André Johansen wrote: > > Description: > When using tab-completion, Bash crashes. > I'm using the bash_completion package from > http://www.caliban.org/bash/index.shtml#completion. > > ... > > Repeat-By: > Press tab to get a completion; if Bash enters a programmed completion > (i.e. not a simple file name or variable name expansion), Bash > crashes. > Apply the patches (ftp://ftp.gnu.org/pub/gnu/bash/bash-4.0-patches/ ). I believe this was fixed by patch 002. -- View this message in context: http://www.nabble.com/Bash-4.0.0-crash-on-completion-tp22783625p22784131.html Sent from the Gnu - Bash mailing list archive at Nabble.com.
Re: Completion crashes the shell
Chris F.A. Johnson-3 wrote: > > > This completion function worked in previous versions, but fails in > bash4.0 when I press TAB: > > _cpsh() { > COMPREPLY=( ` > cd "$HOME/scripts" || return 3 > printf "%s\n" ${COMP_WORDS[$COMP_CWORD]}*-sh` > ) > COMPREPLY=( "${comprep...@]%-sh}" ) >} > complete -F _cpsh cpsh > > > This is what happens: > > $ cpsh > malloc: ./parse.y:5563: assertion botched > free: called with unallocated block argument > last command: _cpsh() { >COMPREPLY=( ` >cd "$HOME/scripts" || return 3 >printf "%s\n" ${COMP_WORDS[$COMP_CWORD]}*-sh` >) >COMPREPLY=( "${comprep...@]%-sh}" ) > } > Aborting...Aborted > Have you applied the tab completion patch that Chet provided here: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00153.html http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00153.html -- View this message in context: http://www.nabble.com/Completion-crashes-the-shell-tp22294334p22294834.html Sent from the Gnu - Bash mailing list archive at Nabble.com.
Re: Problem with function cd in bash 4.0
Chet Ramey wrote: > > Interesting. This happens only on Linux. FreeBSD, MacOS X, and Solaris > all interrupt and return to $PS1. > > Chet > Actually, this was happening for me on Solaris too, so looks like not just a Linux thing. But your patch fixed the issue on Solaris as well. Richard -- View this message in context: http://www.nabble.com/Problem-with-function-cd-in-bash-4.0-tp22171999p0451.html Sent from the Gnu - Bash mailing list archive at Nabble.com.
Re: Problem with function cd in bash 4.0
Chet Ramey wrote: > > I posted a patch for this earlier. Look at > > http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00153.html > > and see if it fixes things for you. > > Chet > Ah yes, that was indeed the problem. Fixed for me as well now. Thanks. -- View this message in context: http://www.nabble.com/Problem-with-function-cd-in-bash-4.0-tp22171999p22191924.html Sent from the Gnu - Bash mailing list archive at Nabble.com.
Re: Problem with function cd in bash 4.0
monoped wrote: > > Works for me, too. Thanks! > Unfortunately doesn't work for me I'm doing something to Bernd - i.e. I have a function called cd that calls the builtin cd after doing some extra things. In bash 4.0 with my cd function enabled I get a bus error and the shell quits each time I attempt a tab completion on cd. To make things easier I replaced my (rather complicated) function with the very simple: function cd { builtin cd "$1" } I've applied the patch and recompiled but still get the same bus error. Some info about my build though: Machine: sparc OS: solaris2.9 Compiler: gcc Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='sparc' -DCONF_OSTYPE='solaris2.9' -DCONF_MACHTYPE='sparc-sun-solaris2.9' -DCONF_VENDOR='sun' -DLOCALEDIR='/usr/local/share/l ocale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -DSOLARIS -I. -I. -I./include -I./lib -I/usr/local/include -g -O2 uname output: SunOS flapjack 5.9 Generic_122300-21 sun4u sparc SUNW,UltraSPARC-IIi-cEngine Machine Type: sparc-sun-solaris2.9 Bash Version: 4.0 Patch Level: 0 Release Status: release And some gdb output (after typing cd ): root|flapjack>cd Program received signal SIGSEGV, Segmentation fault. restore_token_state (ts=0xe8a41) at parse.y:1632 1632 last_read_token = ts[0]; (gdb) backtrace #0 restore_token_state (ts=0xe8a41) at parse.y:1632 #1 0x0002a560 in restore_parser_state (ps=0xffbfe070) at parse.y:5562 #2 0x00072e60 in gen_compspec_completions (cs=0x1f5888, cmd=0x20e688 "cd ", word=0xf0018 "", start=0, end=3) at pcomplete.c:1043 #3 0x0007372c in programmable_completions (cmd=0x1c9cd8 "cd", word=0xf0018 "", start=0, end=3, foundp=0xffbfe18c) at pcomplete.c:1444 #4 0x0006b560 in attempt_shell_completion (text=0xf0018 "", start=3, end=3) at bashline.c:1334 #5 0x0009bfb4 in gen_completion_matches (text=0xf0018 "", start=3, end=3, our_func=0x9c644 , found_quote=0, quote_char=0) at complete.c:1023 #6 0x0009c084 in rl_complete_internal (what_to_do=33) at complete.c:1746 #7 0x00094e5c in _rl_dispatch_subseq (key=9, map=0xe3550, got_subseq=0) at readline.c:769 #8 0x00095244 in readline_internal_char () at readline.c:548 #9 0x00095864 in readline (prompt=0xe7c00 "") at readline.c:575 #10 0x0002818c in yy_readline_get () at parse.y:1314 #11 0x00028128 in yy_getc () at parse.y:1247 #12 0x0002ac8c in shell_getc (remove_quoted_newline=1) at parse.y:2096 #13 0x0002d294 in read_token (command=0) at parse.y:2729 #14 0x00030a00 in yyparse () at parse.y:2362 #15 0x00027b08 in parse_command () at eval.c:228 #16 0x00027bd0 in read_command () at eval.c:272 #17 0x00027d60 in reader_loop () at eval.c:137 #18 0x00027010 in main (argc=1, argv=0xffbff2e4, env=0xffbff2ec) at shell.c:741 (gdb) Thanks, Richard -- View this message in context: http://www.nabble.com/Problem-with-function-cd-in-bash-4.0-tp22171999p22186602.html Sent from the Gnu - Bash mailing list archive at Nabble.com.