# HG changeset patch # User igor # Date 1205023136 -7200 # Node ID 658b4ea105c194c707b4fdcac88a926276601734 # Parent 8287cb3530de8a735f7969e35376916fe9457e45 PS1 bug fixed diff -r 8287cb3530de -r 658b4ea105c1 install --- a/install Sun Mar 09 02:34:52 2008 +0200 +++ b/install Sun Mar 09 02:38:56 2008 +0200 @@ -22,6 +22,7 @@ url_l3bashrc="${url_lilalo}"/l3bashrc url_l3agent="${url_lilalo}"/l3-agent url_l3config="${url_lilalo}"/l3config.pm +url_l3prompt="${url_lilalo}"/l3prompt url_perl_modules=${url_lilalo}/ perl_modules="Term-VT102 Text-Iconv" @@ -92,6 +93,8 @@ cp l3-agent /usr/local/bin chmod 755 /usr/local/bin/l3-agent cp l3bashrc ${user_home}/${lilalo_home} + cp l3prompt ${user_home}/${lilalo_home} + chmod 755 ${user_home}/${lilalo_home}/l3prompt chown -R $user ${user_home}/${lilalo_home} echo l3cd=${lilalo_context}/$user > ${user_home}/${lilalo_rc} chown -R $user ${user_home}/${lilalo_rc} @@ -163,6 +166,7 @@ cd ${temp_dir} step "Installing dependencies" apt_get_install_deps step "Downloading l3bashrc" ${wget} ${url_l3bashrc} +step "Downloading l3prompt" ${wget} ${url_l3prompt} step "Downloading l3-agent" '${wget} ${url_l3agent}; ${wget} ${url_l3config}' step "Downloading perl modules for l3-agent" '{ for i in ${perl_modules}; do ${wget} ${url_perl_modules}/$i.tar.gz; done; }' step "Installing perl modules for l3-agent" '{ for i in ${perl_modules}; do tar xvfz $i.tar.gz; cd $i*[^z]; perl Makefile.PL; make; make install; cd ..; done; }' diff -r 8287cb3530de -r 658b4ea105c1 l3-agent --- a/l3-agent Sun Mar 09 02:34:52 2008 +0200 +++ b/l3-agent Sun Mar 09 02:38:56 2008 +0200 @@ -216,7 +216,7 @@ ([0-9]+)[\#] # uid ([0-9]+)[\#] # pid ([0-9]+)[\#] # time - (.*?)[\#] # pwd + (.*?)[\#] # pwd .\\[1024D.\\[K # killing symbols (.*?([\$\#]\\s?)) # prompt (.*) # command line @@ -226,6 +226,31 @@ my $cline_re_v2 = qr/$cline_re_v2_base/sx; my $cline_re2_v2 = qr/$cline_re_v2_base$/sx; + my $cline_re_v3_base = qq' + ( + v3[\#] # version + .* + ) + '; + my $cline_re_v3 = qr/$cline_re_v3_base/sx; + + my $cline_re2_v3_base = qq' + ( + v3[\#] # version + ([0-9]+)[\#] # history line number + ([0-9]+)[\#] # exitcode + ([0-9]+)[\#] # uid + ([0-9]+)[\#] # pid + ([0-9]+)[\#] # time + (.*?)[\#] # pwd + (.*?([\$\#]\\s?)) # prompt + (.*) # command line + ) + '; + my $cline_re2_v3 = qr/$cline_re2_v3_base$/sx; + + + my $vt = Term::VT102->new ( 'cols' => $Config{"terminal_width"}, 'rows' => $Config{"terminal_height"}); my $cline_vt = Term::VT102->new ( @@ -420,15 +445,19 @@ next; } - - elsif (m/$cline_re_v2/) { - - + elsif (m/$cline_re_v2/ || m/$cline_re_v3/) { # Разбираем командную строку версии 2 - s/.*\x0d(?!\x0a)//; - m/$cline_re2_v2/gs; + my $re; + if (m/$cline_re_v2/) { + $re=$cline_re2_v2; + } + else { + s/.\[1K.\[10D//gs; + $re=$cline_re2_v3; + } + m/$re/gs; $commandlines_loaded++; $last_output_length=0; diff -r 8287cb3530de -r 658b4ea105c1 l3-frontend --- a/l3-frontend Sun Mar 09 02:34:52 2008 +0200 +++ b/l3-frontend Sun Mar 09 02:38:56 2008 +0200 @@ -1960,8 +1960,8 @@ sub mywi_init { - our $MyWiFile = "/home/devi/mywi/mywi.txt"; - our $MyWiLog = "/home/devi/mywi/mywi.log"; + our $MyWiFile = "/home/igor/mywi/mywi.txt"; + our $MyWiLog = "/home/igor/mywi/mywi.log"; our $section=""; our @MywiTXT; # Массив текстовых записей mywi diff -r 8287cb3530de -r 658b4ea105c1 l3bashrc --- a/l3bashrc Sun Mar 09 02:34:52 2008 +0200 +++ b/l3bashrc Sun Mar 09 02:38:56 2008 +0200 @@ -128,7 +128,8 @@ l3_fix_prompt() { - export PS1='\[v2#\!#$?#$UID#$$#$(/bin/date +%s)$(l3_save_last_line)#$PWD#\033[1024D\033[K\]'$PS1 +# export PS1='\[v2#\!#$?#$UID#$$#$(/bin/date +%s)$(l3_save_last_line)#$PWD#\033[1024D\033[K\]'$PS1 + export PS1='\[$($L3_HOME/l3prompt "v3#\!#$?#$UID#$$#$(/bin/date +%s)#$PWD#")$(l3_save_last_line >& /dev/null)\]'$PS1 } _l3_tamper_editors() diff -r 8287cb3530de -r 658b4ea105c1 l3prompt --- a/l3prompt Sun Mar 09 02:34:52 2008 +0200 +++ b/l3prompt Sun Mar 09 02:38:56 2008 +0200 @@ -1,13 +1,13 @@ #!/usr/bin/perl -$string="abcdefghijklmnopqrstuvwxyz"; -$insert="\e[1K\e[10D"; -$max=5; +my $string=$_[0]; +my $insert="\e[1K\e[10D"; +my $max=5; while (length($string) > $max) { $res .= substr($string, 0, $max).$insert; $string = substr($string, $max); } $res .= $string.$insert; -print "$res\n"; +print "$res";