lxr-commits Mailing List for LXR Cross Referencer (Page 14)
Brought to you by:
ajlittoz
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(11) |
Sep
(13) |
Oct
(11) |
Nov
(19) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(11) |
Feb
(14) |
Mar
(10) |
Apr
|
May
|
Jun
|
Jul
(8) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2003 |
Jan
|
Feb
|
Mar
(10) |
Apr
|
May
(2) |
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
(26) |
Jul
(83) |
Aug
(4) |
Sep
(4) |
Oct
(9) |
Nov
|
Dec
(17) |
2005 |
Jan
(1) |
Feb
(71) |
Mar
(1) |
Apr
(3) |
May
(9) |
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
(1) |
Nov
(6) |
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
(35) |
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(12) |
2007 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(30) |
Apr
(55) |
May
(28) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(5) |
2013 |
Jan
(35) |
Feb
|
Mar
(7) |
Apr
(12) |
May
(1) |
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(32) |
Oct
|
Nov
(45) |
Dec
(18) |
2014 |
Jan
(9) |
Feb
|
Mar
(10) |
Apr
(2) |
May
(4) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(7) |
Nov
(4) |
Dec
|
From: Jan-Benedict G. <jb...@us...> - 2006-12-20 19:48:14
|
Update of /cvsroot/lxr/lxr/lib/LXR In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv31732/lib/LXR Modified Files: Common.pm Log Message: Remove redundant whitespace. Index: Common.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Common.pm,v retrieving revision 1.56 retrieving revision 1.57 diff -u -d -r1.56 -r1.57 --- Common.pm 20 Dec 2006 19:43:48 -0000 1.56 +++ Common.pm 20 Dec 2006 19:48:11 -0000 1.57 @@ -457,7 +457,7 @@ # httpinit - parses and cleans up the URL parameters and sets up the various variables # Also prints the HTTP header & sets up the signal handlers # This is also where we protect from malicious input -# +# # HTTP: # path_info - # param - Array of parameters @@ -490,7 +490,7 @@ # remove the param versions to prevent unclean versions being used delete $HTTP->{'param'}->{'i'}; delete $HTTP->{'param'}->{'identifier'}; - + $config = new LXR::Config($HTTP->{'this_url'}); die "Can't find config for " . $HTTP->{'this_url'} if !defined($config); $files = new LXR::Files($config->sourceroot, $config->sourceparams); @@ -505,7 +505,7 @@ $release = clean_release($config->variable('v')); $config->variable('v', $release); # put back into config obj - + $HTTP->{'param'}->{'file'} = clean_path($HTTP->{'param'}->{'file'}); $pathname = fixpaths($HTTP->{'path_info'} || $HTTP->{'param'}->{'file'}); @@ -517,7 +517,7 @@ my @rels= $config->varrange('v'); my %test; @test{@rels} = undef; - + if(!exists $test{$release}) { $release = $config->vardefault('v'); } @@ -535,7 +535,7 @@ sub clean_path { # Cleans up a string to path my $path = shift; - + if(defined $path) { # First suppress anything after a dodgy character $path =~ s!(^[\w_+\-,\.%\^/\!]+).*!$1!; @@ -544,10 +544,10 @@ $path =~ s!/\.\.?/!/!g; } } - + return $path; } - + sub httpclean { $config = undef; $files = undef; @@ -564,14 +564,14 @@ if (defined($expfun = $expfunc{$2})) { if ($3 eq '') { &$expfun(undef); - } + } else { $exppar = $4; $exppar =~ s#\01#\{#gs; $exppar =~ s#\02#\}#gs; &$expfun($exppar); } - } + } else { $1; } |
From: Jan-Benedict G. <jb...@us...> - 2006-12-20 19:43:57
|
Update of /cvsroot/lxr/lxr/lib/LXR In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv30105/lib/LXR Modified Files: Common.pm Log Message: Call the ->isdir() method with $release. Index: Common.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Common.pm,v retrieving revision 1.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- Common.pm 4 Apr 2006 22:23:43 -0000 1.55 +++ Common.pm 20 Dec 2006 19:43:48 -0000 1.56 @@ -376,7 +376,7 @@ while ($node =~ s|/[^/]+/\.\./|/|g) { } $node =~ s|/\.\./|/|g; - $node .= '/' if $files->isdir($node); + $node .= '/' if $files->isdir($node, $release); $node =~ s|//+|/|g; return $node; |
From: Malcolm B. <mb...@us...> - 2006-06-07 20:07:11
|
Update of /cvsroot/lxr/lxr In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv7363 Modified Files: initdb-mysql Log Message: Fix for bug 1209273: "release" a reserved word in MySQL 5.x Quote the "releases" column in the table definition, as suggested by Laurence Passmore (lmop) Index: initdb-mysql =================================================================== RCS file: /cvsroot/lxr/lxr/initdb-mysql,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- initdb-mysql 20 Jul 2004 15:31:24 -0000 1.10 +++ initdb-mysql 5 Jun 2006 10:15:02 -0000 1.11 @@ -34,7 +34,7 @@ create table lxr_releases (fileid int not null references lxr_files, - release char(255) binary not null, + `release` char(255) binary not null, primary key (fileid,release) ); |
From: Malcolm B. <mb...@us...> - 2006-06-07 19:59:51
|
Update of /cvsroot/lxr/lxr In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv31308 Modified Files: INSTALL Log Message: Update install instructions as we now support MySQL 5.x Index: INSTALL =================================================================== RCS file: /cvsroot/lxr/lxr/INSTALL,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- INSTALL 2 Nov 2005 23:39:55 -0000 1.21 +++ INSTALL 6 Jun 2006 21:33:57 -0000 1.22 @@ -5,7 +5,7 @@ 1) A recent version of the exuberant ctags program. Available from http://sf.net/projects/ctags -2) A relational database - MySQL 4.x (http://www.mysql.com), Postgresql +2) A relational database - MySQL 4.x/5.x (http://www.mysql.com), Postgresql (http://www.postgresql.org) and Oracle are supported. You will also need the right Perl DBI drivers for your particular database, usually available from CPAN. |
From: Malcolm B. <mb...@us...> - 2006-04-09 23:07:54
|
Update of /cvsroot/lxr/lxr/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv488/tests Modified Files: README Log Message: Update documentation on Bitkeeper tests Remove redundant file Index: README =================================================================== RCS file: /cvsroot/lxr/lxr/tests/README,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- README 6 Sep 2004 21:55:07 -0000 1.1 +++ README 9 Apr 2006 23:07:50 -0000 1.2 @@ -1,4 +1,10 @@ To run these tests: - Make sure Test::Unit is installed -- Execute TestRunner.pl AllTests \ No newline at end of file +- Execute TestRunner.pl AllTests + +Note: If you wish to run the Bitkeeper tests you will need to: +- untar the bk-test-repository.tgz file +- uncomment the BKTest line in AllTests.pm + + |
From: Malcolm B. <mb...@us...> - 2006-04-09 23:07:54
|
Update of /cvsroot/lxr/lxr/lib/LXR In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv488/lib/LXR Removed Files: JavaClassList.pm Log Message: Update documentation on Bitkeeper tests Remove redundant file --- JavaClassList.pm DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/BitKeeper/log In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/BitKeeper/log Removed Files: cmd_log repo_id repo_log Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- cmd_log DELETED --- --- repo_id DELETED --- --- repo_log DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865 Added Files: bk-test-repository.tgz Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- NEW FILE: bk-test-repository.tgz --- ~ù¿TTÿrÁïö? ªÒÿ1ü÷¿¬×Ã{ãYr¬6à4a°Qv¶È'ò@6ó?A³ÿ F3n6à#A^øû?0Î`2A2¦:#¼ð7È`Ñ¡'1Üá #Ç Á4;FJæà$Ya8)\ xÿºÑÃEâ¡õ d½b>bá^±"bQd*ÄótÑ'F+\ôÖI©êNçC/<þòÀi] 4ÀÂdVÃ=lbhÎÚyÎ%³á|¤Cッ(íäp[2F;]<^Ìt]="*+pJzFT-$²ýY%Äq#yC@ÖPÊÈÙh%a#ct-@#λÁ`±äb¬ú·½} :O³ÈCÚãx2ÍèÀXÌ^Ò0Ï$%(p@PÚ{þ ÍjÑ8 ÷Ï{Ö)ð§OÄV±?3 2ìÿ ÒX¹ÿ«Qªÿ˹÷G£þ7UÿTÌðÏÿ²Þ. .±l<Jéÿ¸ÙàÓÿ¡ó"ñÊþ¯"ô«Ô:!pBéjßhqµ\VQòD£U4¾µÀþCÚ-« v½Eö³S«Á@6cDy®¼WgMõ¢G<l?¨q²×õü¾g5ÏYÒ'å øUöÔ_9#7|öÈósó¶{ìÿÆä×ö:wêÔÛ·½ën7g×î®»òæÁ¢Çd¯Ú>zUÓ×'{þãnó¬1CÏÙqO§o7ÚræðâNX_fü¥Ç¥Ó_oæwMïÉ.7DzßÝ3ùdvì¬Í}v/ÞùíÖmnyà¦7Ñxß0aNÄ©·Ók¬Ô4ì35~i?µ_4ãPê;ªÚó½¼?}XV|÷[Zë4â«Ó÷gæN?³vÈïÖ]³Ê%µ¿|bð7Ç ½ÇOãWñCf¯;éÐõÍmràx½S¢®Õ0ÿÈ/ "noT×µíÚîiû¾?ñ¥®~1ýVÒÖ¦ñF;ϵµÌhõm|2¸iýS&Sè_ûÜoÒ¹fÇ_®÷ÆÌÏ¢®o¸=}ÿëó6&,sø´#xóüä¶ÆÏ«Ö¨ñÂñ6ìÏ;8~Û^9¦1)£Ö6:'aìÆ³ñ÷Nî{ÄH»Bb¯6È4êp@ÔÍÉÌ,³%ÿÌü_®ÌÿáóÖ Çn÷ø¼JóøÕô®.åg¿ùï³öVÍkr»ãVsÚé®}òVÇ ÃëÕYü ¶{kójòâ15{Æíɬc^ú©ë»®ýrÆêÒ§®cuf¯µ¿ÜíTÀÑÛr² £ûfu8ܹÆÂ±c^|娤øáÉôþ]vÑÝ^ß1¦'ÛL/¶ønùà;õUq<ß¶zÖ:º¯ê¬i]}Uëòi5¦lˬ=´ê[Å|·~g§ÐWoÜ0âǾÙYUºÍ¾é³Í¹ÿ¹N§}xô·Æg£º¿¶rõf6 ËÛüQÉÎN¹ôîïÌtîó¶3VµÍ;öñ¤_k.zä»Ì£«?X>a`Uù:v°Sµ¡±Ùo|³h÷¸%ûWÙÛTrän;ß?uêkV¿Ró3ËÚ9ÙõæÙØqsÖs£déÛ9¿tnùüÖj}}ÒýOè6_·Ø=öÌ©5ýú.mè:{îÏ÷\µCùAÊàw¯EmþEÃÒª×s_\77æ^bÈ÷ûðí¼wü{ýÚi/=h¿oßÑgXkÕê5 yÆÆwÿ¹½ÓËof?1yñ¢Eÿâ³ðãã2.ÔoVÝOGÏîиqã÷Î/^¸xİÃqªÞë úÎïÖøÊÃ÷ªÏÞºæñúûYqÿ]uß{Ì;¹ùÇ>»6ß¾âÂSñ'îu_ÚÔµvHæüíMîE6ø¼¿Ô>s{fÆÌÂÿö©=×õ<y);¥Öô>ç%äÎ`37nºb᣷ìX¿kÎ :óÚõ5³åN7Úl!¾©{þ¢ÙÒ·gísÛ¶Løéèyë CGOÔ]qoùµIÓ^yP;Ìÿ ªË~mK}ÃÞ¿´uäñDN88®ÅêË;¾zoå꽩õZò¸v-"Çé®^ÿWi>ûí kÉ KS:C¸#ÜR'~Þ4è{}Ù×Ç{>A8ú\9Q>>;pñ°ÞgÛkpàÎ¥SMRêµÍët¬ÖËØA7þÖðí¿ßÚLJ:{¤áì´ª5OØulßËæ©[xû6YßDfþ²s¼mlô_Û4{wØ´ ÝÖlÝ¡³§î¬\þ´Á]!É+æ×ð¹ÕîÓ¡»vÎѧG\o¶Ö½¼nüÇø/Yø¾Ô5Í-MÈFsªáê~Qç³êgfTu×Kù2pÏ)ëæ¡ Gztö¶þ¤ötîÅCÍ|]Ôbãè¼¥±±' Îmâ>ºq`\%<±¾þ ÝoyOXíü¾%vPoܵéô¬ú}½ãÞô¯\ÚÛtæÿ%nÙã>zaÙo¡GÃ-ù÷n íØvÈJ¶õV}»yg¦ÔLo²äçõ_Ä\`n6m9^£Yþõ.sbj'Ù³|Åu¹sh=ÕÿîÎðA·~iúZîçÇT¹qu>êìûù5Gr=ëü²ÜÞû¥ïÈÃß?&æ£ÿ©ùʹ ÿ¨î2»ßY½î}çõAc²ßC°¨S2Þîwh'y÷^óñ['{K'wvÄtÓ±áÙ\ý"½åóYë«üõe¥û¶¯ª^^>òfæÎØW¯,èýCߪÌIÙWçY÷.£üÿþ?MowÒRryÒÿÃCüÑþ0TÿVÈ(½é .Ó`"Li¶=ky+ÇÓþæ?6^eäQjþãÅó¬Ìÿ þúcFÚi{RB ´Ïÿ|ÔÿF©Òÿ1Zb8ÚçEuµzÖ¢jÅ;°tÑÉnÙÅÚLI¢Ñ/í9Zi%ÉíRX&9§OÇ$Ö)¦À3£èÞ¥r<ÙXxnss<<1eAl ¢äꢣñѱ}ºëÕ¥g·ÎÞ¹§neÐB$W×vcÜ'$bN:uÑ=)\ñ^¸NÃÈú bůè#|}(Ò@e¨ßÈxô«ØïûRËyR¾<)Ü¡~fñèÇsOâY©Åxʬ]ÄTIâ$ÆËÝèÃÝÆÜd¶3l¬µvwf»+\VZ¶ÝÎVi6,ÂÿÔ(ÿËsðï¥à¿Él6?òý2T~ÿ¯BF!þ#Àõ© Êk5-s²[µê4È:XKâlnd2MayhȪ<>§¬·Ø{HCá" X2ù/ÕüØ^ X2 ¬bXÙ.q.äÐL#þ*R$¤ËÄÁ«'pCÁ) 1ág> TÑl úÁòu¡ßh,Àô-²f T½^N·ª f#ÁçZ/J*5·jbna%Õ¬ +9e¯»vï"+Ø!Ì»0[2¬5erª¦Æ°ÚÍ£hX²*$^hʧµ " |à2)+ pU³feÕdb0AÐ6¾@/ÕöëÍÓÌ?ÄH@©D§ ØÕÔR±0ïP³éÚå¡ý<n(©¾4¸Ìªü3«QdajÂ4 &ðT$· bÂBDÈ+U(rl®R¹ <«Ì絨 {d ñB5[l,À| ǰA7 õªê?òD(³aêS'®ÂH¬ O¦{AUd}¡;§Á\4DÓ%J4W{[º£È´¦;Ú¥'RæY9ÒÆ)h« éÁ| _öD7½BÀ~¬DÀSí Éë,fRgµâ8â3` -$Ë-<ö Ãl"q4Gt¤*7=÷ Xj&o 0¡>k#¼_((¯ EA[û2Aï#°OÿU.ÑEÕ ¡j¤hê Sµð¸^5$qçòÙr«Ý úÓà 0JEQXÎPéBO»ÑÁ¥¡ºëDJ UóGYà Ø*»Uç e`~g14öÊп±²Æ9ÊÓ3¡_¤Ôj®O÷$²(Ý=]¨g:g@½dxÉVÐÅÔ&Ïíb6qvhÌ«udIPÈ %4'ÛQz¢ð¨9è5,q`:l;*`KR <£ó6¹è$ÁS@¼Í /go3ý´*pÉn ¢æ©Ë Ò\õ A§¢\;[AU©+ÏV¨ Lðíã}Z[ȶÀÈW¾åÑt÷{Ô<¡¨Öâß«h =ÚüjöîªÁ-|ùz{¶¸P`D¤ * ªÍìÕB0ªRåáí©Èu#à=Ìcý.p n´S(tVÅÙ92]àPÏ¡TÉ"0´/Dµ£Cîñ[ñtê `R¨7<̪m6Úª¸´¤! :¼QG úÆ|xH¡ytRQQMWèî°<zà¼aÓÕ[âÔôó×]H¯4¬g &¸6(OZÍdéû¨L }-ßAxPzR{St¼]ntLz<ìqÐ1Owé9'èáA-S2̾ÐNÓÙ1]ù%H`0SÅ%(°eáë~ó0TxHÿy¡uõw®/<ÜoyL$aö®¹L>u&¿yPÿsD䡬~ÇÉ`ÄËÄÃ`$ýäAXÍEíã'Xgñ7«ÕZXBëü% ýUOxÀ:¿mEYËâs´Îϸ²¬Æ²Ä¹ºî1qþìð¿Ôúow2å,ÿZý7J®ÿÐôTAÿg&)õÿÿ©üûÿÞh´Ibª@ó¬a¢ ·zwrIMî¬âý©HìûMòZåi,ØTL×g4VÒ P"*@ñ¿ì½`U×>Ò¥wA ÙÙÝ PB $¡× R ¤""Òi@ EPD4éÒDQ¤"øß -;çì½3»Ëûÿ}Ìû}/¯²Ï9÷{ÚmçFgn6JqnG&$;üRuÁ&È5h Yó¼Ô¸ø¤XC`j@@C`{î²ÖfgöLx¸ çVJºRR·È-=IäT;å×&Kdzô[õÙ5ÓÌ<ÿ`7¹(È u|SgbÎjËöØø47¿wIãUUMÊ"0$TcbbRc¢Ý'Ë6:²gªsIT¾9þ½£éOÜs¯4Á¡©Adn©ÚÀtv9O6nH4ÒªÑcºYÍ×í|Î-Fi Hß\ßÇ}\2ØçîV`Bçµg $*1ìfª@RfªdÍm 3Eú&ºÌÕTmÑE &ÇaZ`Ç¿×äqÔ:=Nv¹õ8®«ÿÇÈêqÜn6¸Å(õéI=°"`3ÙTÈ,ÉâÎlªA±Âd|;/.¿U 5ÊÕÄÚOG¨µéO"Ó$Ƴ£PÞf¬&ZÒf£Ñ¨Þ)$£¤ç0 $åuL°×aÛFÿ×âuT;½ÀÜyÅ»×Q d5 ·ÇOÜbôM÷ UKÁËëI}! ÃÞ% ²4eè)Æ®03£A`àh8¢I¯XE((±0( B` P$«¦.¹Â´ÈÒbå î$ À@¡ÈÆì¼;>2N0Æ-b&Áh1Rö ÆCapó!0hL) aìLZ¤(ñæ{$Kc`Û!ûaw#,¡oêOb +FVXð¬öÀÀÞØ;W¦ÞüÞFø=¬:s´ÔÛ88c¶¢·wV¨ÛH¦fúR;W³Éû¹Ú Æ ùù'ú$ ÁmT'Rt¥ÀØ;Á½ÃÆÞ1eG¿. îX£Àh<æ%1Xò%1XòVîÙ ÁýÁÜaì¦ÆÞê/4ÀÞ¹nA2òÁ S"®ØtÀ@!0½cÓ«I¯¸R`;{G`{Ç6Zú#Z$îÜ ¶Q¢m8Çd0 AÃCap/l"0¢l lm#0ZÚe-¹ç])ìý!0K `Ðdß3BüÀ ³±©î%C CC¢£0Ht© Aªà»þPgqãmo<²»1¸Kxj*±}ûC` *¨ ¶V(kV¹'°ú0¢KܱÕjùm#0ZÚFÁQ"0PS-`¨©¿¦Zø·(nÿÂÀñ±¸WPØûcU)Eâ¾?Ü[ê!dÀ[*75ÜÆà¶aÑ6Õ £ 1x´0÷FµÃï! ¸!Db¹iJ·løl ìÍÂnÉf~ã 0Ð87â¦øâÍÜK&Z!?&¹b´øojC$0¸w{Ç¿IïÀpoS¬´+ ÍhÓ9` L¤0H )d Ù&X¹½Ãß6C´_ÖÊú ?Ò ø°"òÙ !ÄåJ%ó-ÓÏÚg3!'kE((ûãùÎmzO´ÉõÝxPäÊØR®DMceqFÁ úªuÿ:áKÃG`4Ú{:@appÙ<@û1¸?"Æ`åá.½@b°øHnQõâÇT2ªMãpðÒYKÚµ$s¯E+0^¢Oé³yQ½¨$s¯<S¬ÕC{ÂS½ëÁÁôY-NV½æÞâd¢êeqê0RÜ×ú(ôÂÐWî½PYt)UC>Aàø±uÞ×?=Í4ÐШeÏð&Ã"ôlÖªîCeèo·§Ô5ÖÊü½MÂ#µ©ûèïxÛÓ>2¤®`4FÉf$RlÞºIÏȺ&£,8«ÀM }DðºY~Îïé|hXDdÝG½×zðb8÷¨¶ ëÙ¼±SQp8dQ0¯ÁFc+é ö¥Ã²Ç$Ä÷Oµ%N tþó£?Oy¥E÷³Jì`ÏxËè0[Ö CB´lÒ8¼¢û%4jìßYh=h`ß°!Iq4¬[7@4EvÉÍ/ôÌC¶F6 o]·ò {JÿÀبAñIÂÐ](ÅÄt YPö~0¯N ¸$ëù8Òc`U¹VMêJF Yr¦ãçlaIl*k1ãÙI¨ÊÆ"¢Ë_"s+¬è¢ÄN]·0°¡ûÎVV®{jÉíëÂ;ÿÛµ¤¾ÚK.*°ê]VÖTjXFÙ¢RSPd©a Ã\ÃR$jXfckX2>鯡¥zGP K5¹©aéhz NùP)[ KçMÝb\kXºêê[§ÆìZn1ÔªiZ(åT<ª¦è&Õê³J$¢+0î$]ÁPt¦weñï5)ºZG°¢g[Eµ=Ȥ|-UÑݾ±ë£Ptu}6\¯LNIpý$äY$ÌcHT A §LaGËãïñQbÖxRXã0õí5RÞÜ%ô5}&×Oa ë'@Ø5DtÔqõÏAÂîØIØÐ"ãÒà,F [ÁrfÕAA 2æjAõ]EÏ(ë#clÎÍlTUèLH6Q¨Sà¾Ù"Dåp¬9H01!FD«¾ìláfj¯¡»i¹`ÄKPR`<6¡§ÚÄf»WÆ2Ç-· Ç-2]²u0÷ð¡`ãÀpOü/h¼·þÁV1X0{Á1xüÕwÛx4û¾ « «7ôȧb¯ t,ÄjCÆB d`TëeÌFÊjçi¹°ùgÈÙ?w§v}6ÿ 0ûgW lþreöÏç Ð?»4ùgÌðÞ¬ù>[H`phÆ/{ÁÆJ%G`´ÈM*?Ьþòã6s?dÄhqÜ Ïæ¸»È($6Ç ¹2;n3~e %¹2;:ÑäÝeG®Áhs$®w;à *äÊìPE\c;TWJ°% ÿÕ= è<Ñ"7B5¹Ïü+0Þ°kgñ) dbMHJ¬Ô£§&C/ÐgK VP\Ù «ÎB£$Wl²+{U?¶í¹æ®I¶1Èb¦Ø!¦ìAsÅAqe²"ö98Ȫß6á ²-¶EÑÂJ-6Ï}IÂà¤Á³rÃÎRôîþoé3!ÄÓ³ÖvªÎF n\7Ë0Ô#î<i³0y×ÕþL à1%Óu À*)°d WÆÔIAßÙhî f£ ögýÆàÑúmÃÉgÇû0¯pÒ÷æ7%}Æ$c$ȧÑäã1:`BqÐÀHeÓ01H(4 Õ×éÛÕ"(xLÉtáè"!$ÞÝ&%FSÀD¦ÉÈ?Ã4Yø¿+Ý5ãlÙgéèhjVL¶òØfë«¶Q±±äèäZ1n.5àÀĨø$÷8³É¢À¥¤GQà\~õ¨JÑxI°ªñV"YÆ;0.ÒìEãH¢h|6&°h¼òîÆgû½¢ñêAEãÕæ¦h¼")<;[Ñx%h¼ÅR4^q-õM4ÃC&h»6|Hzp^^}Ñ"ËèÿÿäÓ o¯VIU"+sºC´Û#éMOþ±¥; c(áò?Ub4Y'æýâʹ¬Þ]Ùv¥Ï9à61F;̧8){Ä\qDEçÙ#$Q~GHÄ=Br¿i@b[ÔI{õ'}ÝY*¦@Gb\ØÄ¼o 8æ³&È Æãr§ÚÌjÛXQ\[Ê<¾/b|!LÛø"¿L¶¹  äÀð¾<Ob!xóuw_ÓgÊ¢(Ì¢(ᶦïi{'Þ CJ, SðØ 37½xëö(1²L5Q¡ÚMè;Ä`u¸ÏQì³0û,ÁÁc°Ü$¯¤è³ª¤isIcÌ :f¢MlÁÄ]9UÑâL®Ð@®ÌÎàC9dËì¶Zf&\ɰ_þlÜäÕ¢¨$}fK%ʪY%% "«D°ÿMz>[!0DÁ bµ`°bö6QøK¢ @èn{ÀC/Ü1»>3±>nU&G'±SàÒSSc¢¢ãÓúej2%2LXT5}«]§öNqÊ1H¶ Tþ«À±æ¿F:A¯nÐø>SþKa`þ+-¢,Æ`CÀl£,Æ`Áa6ÎZ Ü7MÁÏâÕ³2}Æàga<Mûä²£)øa®DðClÙÅËȧôÆP{õJñFçu®DQèH¥AFb ÓDX÷ !Voìùá- ´ßó¡áÇCØh½W()°%Ðð æZï; *gsX¼-ªT:p·À.¶¬ºkO{ìZ¨K٢䲲O;$É¥F¨J Ç-EMÁ4%· ëê2ÄÐêÕ- ÞôÖ})\÷¥¤«EgµûȤ£Á:(xõÈ$EÕeê<2© À´XéÀè<2)°F)¦Õ\{ûÂ{ûÂhé\¶IøQ 2zû=H%F£pÝÜeSãl{ÖÜÎE Á¡sqÅhq.Wÿ![f$᫴İp¯Qè)$¢¸¶Ñ!¯înRôÍ[ÓlXcÎ_%÷Ü4ÐZðêuÓgË_ Î_ éjÁ`w`æ>`NaphÀes±ñnÙ\ªM¸ï¸M¬Í_¨âJ{¢X1å daÃkT`¤N`N0_ @ZDÁ,Lîñ ¨aCëS2}Åtî3;(pZU`´DÙ¢s¤õL(.Ù¨!<¹<¯²Ñ»Ì>[²K``²+\Òõ¾:ý¦HV(ç(.w×3Ó(KwµÌd nìlÒR¶î¹R¥ð&^)!Ä 7G>³òÀ«}%qVapVCsbÃd Ó}¼ϻ»àÀàúQ8´{µ8>£»ÅmbÕC̱¥zyz`NaN8Ã"ä§Ecyç$ë.¸D$ ãsò)}ÆcwÕÆ¼)1Ò#DÁc@¼6Å¡'ÙÓ#D=ÕAo³§:øecB¥xv¸ß'VbøÓ»Z8Á^\À { àôâhÿ`8X÷a}«|3z#+TyÈÙ ^}´¤Ïæ!f)0û@íÆêv3;NÁ«U¥}M-!08yb63m,rB`¤Óã=kîÄðÖ 1ãìø]/4Diâ¤+á8´cqÈhÿÀ`k!§mÿ¦ ®\Ö· ¾ÎÏA·X¡S þĵàaôuKÚñ û>¯³À£<¯³Èàú£Z¹¯ðX ´mÍk+0úf+®LôN_-_'ïNúlS$+kBHz§HVTEydE5 }1dÊlþ6üf0LQlhëÙe\qÙ2û~ó¦¿6´Iè1]ó%}¶Çfä.;Dü]Ò7²õ-øÚðr-!þOhÿ Cÿ¬Ðð%ܪwáô¶c84¨Ô ÇåîcúLÆKa ñRÂEa 5£0Ðo;@ü;'$3AÄk`Xt¸¦'Õ®Ew^×\Þ«3y>?RP`òÌWi°ú0£|{CÂ0òÑ&îMFÃSð^êÛÄpй)°¦é(ëÜÄpPÐàæ0FU0FÝDDlÃõÔ ÆÃªF·I½ïtXæÊØRF·Ión!wFsÒ¢ þg8عÁ2çL²a8~&£`éeê 3ó%}Æ-uLc¿ÄYvÆýᬠ£ÍgrVÚ¡¸²¥:t»=¤¸zV>)l©E-Õ¡(°¥:4tàdõ5Üt-e'ÐÆ¹L ÃÑH rá#vf8Cå#@ÐKh 2¼a ëÄúñºîigRàwy²n)xÈåÉ2çQ67)ë{k6¶\rev²¾·f3)pîßÑ6ð ø>K:HbP:èñNäHÑ8Î¥ K`Ò3)wâñFFGB[¡ Ò3DhoBDb áI+1Z\ b!z§«°&EÁC® Ϻ9 èKÝ iA1 #(xL̾¤ÏRR¼yÒ¦Ïl1Ä{g¤kÅÔ =cN1A'è ¡Ð'û31áÞ&ÚÌøáõþÐõþÐõþÐ-ýQO_²a8í*W6Aeªn¡4Î+7S4HKá\TÎÄp½¡1êùT6·¥¹Æ©ë"9Ýný¡ ¦Ïñt_Hl¹Q&]iEÁcbö%} º#n¼ªV7iú̪!iÍcKö² *æ }ì &¦fÇ ôÔ ä¨ èø´~e# 37 kݺIÈ'qX£² \çÕÜjB,²M²¶ZqH½ñlIH,&¡Þ K¶uÙHnHX³8U¿:Ö¦,a@þ\tÙéÔÛ,Z²¶+&Ù is3öØø4ߩᲠ0&æâZákEF·\DeFìü9Ò")[s¸ý{=¤ìµ*¡ÖpÉE·£Ó¢âRâÓì]ö3T²¥{dj\|R¬Ã féIÊt|!áðLÈ©É)?MJ²³ý2¦ÝÑáÀC ãïM¼Òìý¢Òì©A1Éñ\ LÇ¿6+ÜÛáÇR´¨8Üè~ nMÀØÓñ×Iqñ½]Ç-J¥ïn1´-=Ô7Éh³w0sUbXºÇ{Ñ1È#ÌÀ<n H Î;Ö4óá-McÀDÄ`aȵ&ád@uðâÍ#Ógb4Å @¶aóBÛxEç~=÷æÜ¤Ï4 ")pôq a¤õóî¾d8>eÃh&ç&+ã:·@hú,ëTNºNýPשt¾vR°pp 1ØÏaösó,Á¾c°ýZ4(ÉcÍç43ÓÏa¶U®s4WBuu=C·Û3>ÆBÔÉcò1 -XÐRÔ)§máNÀå`îE`MáO¬ !?þÄÀh·G<¹oé³ <C!\Î31+á ̺KáD²eNÔ Ùy{lµGÛô(z!éôȵîS/W1Áß=×Ôäô»SÄ1ÉÑÉ µb1ÞNÇîHÆçèVæ½B £ÅA Ry¢W0¦mbsaS|0q0ØÒ$ÈÙU\±«l]¥¯ÞC#%08æ@pÞ¢§1Zø0vÈçKúlY!ÁY!Ñ2hÇyw/ Ï쬵íºâ£?ÊMapý©¦Å=W诣Çñ¬¾³ê!!$g5'Fä,[McpÛ0FKÛ°²aS\&b0/?-%_Úâ4¢ÍöKõ)}ÆX1D¬Óó4´Çñ¬Y¾fÚ&±®8ÆcpÅ"¥Æ bÔõ®\±ãG\Ù'¸Ý2;=5é)ì9D}b(°Ï±°¼-ffEÐv:×Çy9+2ÒÆ±bÍX g,δȺϴ\±Dti!Úíýǽ"ä¯ó+FEÑ}vàC§îó6W""¶ì~`«e\p1عèº÷¯Ä³æáÞcÊØQF¡áÁVìåÃH}Vß{¥ «f¢¢1QÑØ#-äÁyywçôçZÉta ¢øö\Ù( ü#Ù!Z(@ÌnÄC8~«"{+«UQ]÷£è³EJÞ >JÏò¿ïEÀ(ÏÄ ÇOIÂCãëKúLÂÀIuD¿¢¢seDû` ³)Ù&«dÈÌV,ñ;Ú@n$ø?üÞÄ@b´È ÍG#ôÑ W)A¶W>G!)¸Qr åY0To^Qó5}\Ä \0-!;Ϭ@¼{WÆ@øT%rt_HÐIAßkJ ¬®÷z!Âïõ2%wÞHHÔ·ô{ºB MWظ²MWd³d±rÞËá¦L<ï%¤®ë4FÝåfÃði&<M"DJîNò)ç=©lîHCsUw,W¶HC·[¤¡{¥îÆè61D'©º¿å%ÿ`°E47ª¯SlÙ ¶fÊèó=cõ_zMUw8/ÏÐB¯9wã³a¼aàº.TÑÜhÿÅ9ö¿)C/Ðg£Ñ0Gs¬¸ZÝjF`°³ ¸)tã7ç)JCs).FCh%ê Ê侨-sH´è6ç9FÓl«7+eÒ×U '¶ ¼*ÂhWæ<h··õ -ggî"¿óoH9v¥À?µ·êy¡>Ç<cËH ^RE_Òg˦̦,ódAáÂÀÌ¡à¨Àx|d|Liä)¦i'Bi !§kùÒÃx¦ÄÂ0òaöÞÀyH{!}¶$ÂC=cMÏ yÌØ¦^H(4 )Ä\YóÀ§©dLy {ù Ä:(^¬y ÿìWAmöËÄuöKµ g#i±ptbd Ù¬+§xn¦¼¾i9!FóE7B`ÃxÁ7ú>cz1Dz 1 82?½a§f#¥R" ³.tÓâ-êèÉ31ï©dÃpç¼w³á=îYô½º¥¡ ÏNQN {Sl³ÄiI6ö`¥¦@ØSÐS ®ìÁêå$¢Ï) nd«%0R ô÷;»±êÎn0½¾£ lY!äÊì.®8é l} ׿! ³¦-ÁöKTBÑÂ=2ëKêõã9¯LeÃpxE³¦C)Wï4PôY} ¦ÀÑ3æÁHæè[5Æ`Ç1ØÃ½X¨ÍçôÙ&£6·\U&HçÏ ÂÂõæ"d£`&DµÍ Q\[Ê8þgHº' C"û*(Ù8Á·2±å¾à¨Àð§ü ¾tÐA·Àm&¦½éLu0Ö´ÅAÁ«ñ¢Ï¶8èªï¤ ¬iv8¢âÓu¡Q7^t ÌÌìÍwïhúl``s Ì R`vh¤HÑÓñ®ÇñÞP+ïîÊYùÏAQ¸F`ðº=»CFàæÕ!6»[µhRàØöôDû½3ÁºÈ9&íöqé»§í 7&@ Ì1ÁOìàíVÈ9Pl¼D£`¢À)1V²MÀ[mbRm+cKYÝÉÀ0è@IN Ðú«qϸOl+Aº¦t45ÐÞû+Nï5+ÜB ®Õ¡ÓVÅã~'B ò3(tªP#ø+sè'ù«l(1¼¿¯gÆ Ä³yføï1ÆÂ 1 0ÈÂ(!ÞS_$*<B¥Àp+ÙPF¦ú£ ÇÄØ{ì ²("[î,ÎDDVñþiAÁ31EeZÄÑE~!1N 3'o®ð5}Ý$è~ªb¶-ÇP(qP3'##¡'ZÈ3ã÷W 7Ó͸MfâÅFgBsñHÕ8¶ôÀ0ö-$004ã'2 !0ܸg$*¹áI¥y¼KÝ$ÐÞr¶J?Lp%ÆK_ýw'o.#+é³Z®¥g)aÊ+òÄ` ÌyYçʳsqÿX®ÍýD/WæyÇÔXßRFZ¸º /abd¼¹ ìkúló áOD£ÅäY¦ÄhLÝg"ÞÍÂÙHogqe ¨¼² ZMa|)ìïÙ~Cô{à¡0ÈG(0¼ï¹y%FC¦)xÆûRô2ö.Bâ>*©ÀhÈT(®ëÜñPPà÷d» ËôÜæ ÷ÄGáEO 3Å!1eOÛ0WìWö´ s%Âb˶ٸOÁQ'ÙÜp¥½+fJ¤\ÙÓCWû>£ßµq?COTc§! &x>¦¤C8 +6îk G¾yQâ÷83©ó>CbÅ}6Ñ!îk 7<ÎS7j¤á¡7#KË2ìÕÓ> rg"Da¢è7ÔÒÈJG¸2§#V<Ï °âYÙ[+2<ºjuÀÀtÀ@÷N` {'dçCó-}6C&0Ø áBçOt1|XQªÎ<_<6 *ëÁiX @xUb4ÅÌðú^i#Ûíx,qW`4L!¦+Õ÷-Éú¾uRà¿ç© 4ªW(Smb äSÈÙEI÷®£!øS\¡×ÄlY?¦@FGºÃ]¼Â ×NõÉ3'{õ>>7¦07 <Q¥@Ø1{ ¢qÄ@øD!$§«â·ñns&¶+kÎä Æ" Öñs¿ßGµ5#Á\[Ê áÅÇߨï)R!oC6ϹûL9 !/ Acu©Cf7&Ò:d]æhéiö¤F-{7iÙ¤gÛð°È°°Vu²¡¿ÝR×X+ó?<ô:4 h֦ãmÃ_×FÑh3ÙLd¹{Ù¼uuMFY°9~%pp:ߺY~Îïé|hXDdÝT{=)>mHä¨þQmÖ³yc§$%£àÈuDÁd´¾b4®¤3Ú;þEjÐâg<0Èß?Õ08%ÐùÏþL³§¦¥E÷³Jì`ÏxËè0[Ö CB´lÒ8¼¢û%4jìßYh=h`ß°!Iq4¬[7@4EvÉÍ/ôÌC¶F6 o]·ò {JÿÀبAñIìa])ÅÄ´ Y ó¦Øû'§Æ§%§ zä0T£i¨¤ÞöT ±d,8sÊ%I®jÂ|ÀuaSðLr"é}J `ðKÄuh¹²Nø1Ö¹»äåWÅ(úÌÊ£©rðSÀñR¦@(¨{Òw²CZ¤<¯ã ô%}¦å ? þI´ زZ#f¤Äñ¶ù>[:C`p:#â#ÆD㸫QÂ=òGuQÛQk/ÁOßCÏ9vGÌmòãY<sÎáÕò¾}æ ©i_cÝ70Ò¾ø7P Â1ñ½T'ÍÑådâã(ºLOl|\Cà¡%óÓÉÙàÎw«÷Áÿãôl <°Ùpó͹³son0ª©ÜßQ+7ÕØìC¤Ãõ$¦i6xHßu{@@ÏöìÜg$W¦©®êdË4uqÃVurð }*^ñ÷3Âß@ZrQ@î0*ñe]nAjÁÄ=dV¾¤ïvñ×FuñWÄ7Ev;<Ö§}^í®Ýf©ºQoÒ!Lï;öI²æôÝOÂéz©ë08¢hI|V 1^!1µ·!ÁjLNëcO ´§¤$§ q)v»ã·¨¸4{¡EzÂ)Àà<ÁÊB¹JrbGsìÀ4úÉ1ýÄaª-¨ÆÒlZi2ªa¯ Dxú @gɨÄì5¾@ÌP &¬"¢×$">}X"ØH^ôô%"AX D%ÍRÅk±<}X D°Í<cõ@¬O_ V(é@Ôs3?µ/:ûÅ¡'óùäÞAÎ¿è« füÏ"Î?MVÉõÏÌÏdüLFÑ$JV£U²ø£düF=LY¿ôÔ´¨Áï¡@áïÜýýÿO?ß!TWÃgßSúHûOKìäN·J´Çiÿ³ÑbÌ~¿5IAò ý§ ½£ÿóíÚTú THh©bÛ§LíÝ6®ÒâEó;"©3µè8ËÀá¥ÎçþÕ§ÝUñÿ-æóu>Û¿]QºYÂ3:Þ=©¸_µÎùËíüî]Y^`òA@vÝ4©²³ÕÖõëºïK8öïû¹*Z]'~pÈC`ð¡ãf¯/roÕéé{lïÝ,sZxqG|5;Üÿ¾¡æmnæ¹ùöïï¦;÷ÕÁ2'V¶oò©ÖègkV«4!ÁÖ""¢ÂùwßiZnô×o,?xé³\¯~ýþÊÓñ9û©ÜήÇçíó»wéå;kµS Wî}>PîsÊ µÊÞZqáÒ÷´=r³÷]·-=37Ï>y1.niÀ°>×Î6 =PacÙß7öKÊH6®·ü{ròwé!µ|ce%![êÿüî~UK¾Þã¿;S7; ÿ;èË7ô[PSø¹Æ2ÿFßæh1ñ Gä¬s}A«¼ÿ_Øùw7mucÍ]/ýcôW ?¿³Xñ=Þ.3ùJ0¿@wo·5l±}²´ÝÁnýW*z§Ì±KÕk¦¯ûÇØ·Jç_ûÌfkµÞn=7ïëR±òç&Ä6þGl¾'20$ñT¡U¿-^ÖoôsíúD~1vϬ/Ê¿Óòòöy«ß»ÕkFËõ-¢æ×nÑjÿ¸þÃw6ãºùf¥ÉϵZwí\¿%Wj¾øú ǿõéÛæRãïqãv÷ümË¥Ðöë¾û¤ÐÙÉí-ÔXV¹[äêWÓÍzýöRÞ¸?¬×¯ß^r¸þo{:þ²µHÅ9Ë~~µïÿÎo§ÿ^ú³-þ?¸ø¤ÿMçf«ÿly¶þïÏ?T°Ùäç%«ÀÿmÁ&#ÿ®Ãéÿ.ä}ÿh¸7Âæ5C×ðÿY¸òö¡è¿®ë°ÔSM§~òoóW'îå}}h9§ÖuÜß®}íÌÚW±÷¬Õæý½çËÑ-ÿÝUï_;~úÆV¿çì/»þRJ ÓuOo¹ríJéáÖ^Í~»7ïvÁ_w2öÎ|uîÀ1§»ü¾npt³<yêÿZ1cËkßÙ{jÌÝéXâ!û#m鹺d¢|CìZ÷çë·>èÕæìí[îý¶»î¬¿ïÕª=-¦þ®ý7½ymÅMfnY¾fËø|_©|ô¥^Y^áê{?b½°sØ»Ëÿ}kàúÕÿ½úæÛ÷%¼¯êÆNSÆÍÝv|nµJÖ5Îj"_ ÔäíÝ7Ò_ì]£ëGt^}ö㳯 ø*¨ñoÛ/O~¶Æ{c»¯¼Ô¼Üª¨rDþQ«l±Ða3z6àùOGM)T?ºPKGþw7þëÃ.ÿÜíã5;nØ^#ÏÜKyü{o±øóÂ7&é®×Ëuy§Á¤ëwêÕéx mòL½2ãÃò-YigÜÂrË}Qýdúµ u«wo÷Ç e~·ÚSpÇéSë¬p7×Â5Ëô·±ëm9jLù¥Ø*=vM]mèrP(:2wý毦tν=¥W¾~E®þýßVad²½üÞnÕúTíÔhnÞ^É[?èö±WâëDFÍ5;¼V[s¥fE·Y_S}B¯í|½Ü?Sûn>¬÷«ëWðýÿüaü5lõù!ssï)S*}å¢ßhÓoÄøÀã« Ößp£âsϯù¹A½ñ%ªØÿ[¾ÒôJþþv½æ¼ ä}ÚÖ(PÂô_ü¿(z&±ò¼Ký9aø¯ÃöÑöëWê<0û;±l·Þ:¸+mÃ7oHÝuÄ8ùä!/ݹøqÖ5O-®fßX¥ãᢠ¢+Æçm!½Òq¸=jîJkÿõµKÛrÌl¾ìµcéµ ¿Öwßö·kå®8´ú²åã¢+Þ¿«ú¿ukYï¸ßÔeF~øùÍ7rµ«^-Wó:»;Wx>"¶ºe_·üZÐåñÅ̹èó\ä´Ô¹ÞfåþMWÎn¹ûkÐøfeçýiÂå¦üðõOk¬éÂÊv_^j=ìÈK?æ´El´¶UþóC®Y6pÿ®#Eû7ø½æínîß:\îà_R¿ûò°¥íþÜÓî÷iúÚÑoÃvMJNøËÐnýæÛÏ^_\÷Ö¦ ü§,,»Ó }täåÇåÿ.7Íca¨²°IÇÒ{J%:|rCÃÑ+ ]:øÃunnz{fÇO6lþ9b]ì½Ý^9äÅÆMËùæêns li½gÿ°©',/ÙóZ±9Ü«ôwÞ¹ç|5Ì¿T× wµwÀúæ×ÆÏ ;úÂß&/Nÿ1~c@¡åo»øJàݯ3]z5ñÛÛ¾_6ïJßÓ="·%åòÿ6ln×úS?û.¥\ï¦ßsmÒyèoË*Ìø¶àøZw_Oþ5ðêÉý&Ì¿Wwà±ú'å^»mpãsíÝà÷å?Nyó¯ sÿ+¨þùàÝG/¯ùoãU1¥®jYÿ׫µ×¾þË«K*_èTlûÖ1Ý¥F}X¨Ä«ûÖ»UíçÃ;_Ê»]Pµó ¦gý¥ûÍÚ:^;úÓk®¨óÖç_}õϧÍöôI=ÑèvlþÅ»l¯òwÉyfzknÏ7Û´Êo;°ëÓ~®$Vé¯ÞEóz©¸5|û{O._yÄÓæÜìWµÏ+?³³Òímÿ¬J`Ì%[à§ñ± J/?Øzqï¤ÛÓOßN¾>£îFá-òÌO<ѽqÁC½Q=ê±Íî.ï<þXdÀþÏýb#^26)§öûÝ-:Å.û«Ô¿;úÌ3#ʺ#½w«®K-óÝß·iyv\ëßfVx®íñÅß;vbmå2K»5±ÝÁf¾²¯Ìç{?)æsá|ÈÅ/f}Q%qxZðà?Kîöí^*8ï¸ço¬øç©á ûU+ZµëÊ«ë»Î¶|óÑû+åª>£é»Lh³?9ãDÅQÓ¯þ1cÃs[Lé6Éþy¯Ä¢CûÍïÜàøj¿æ¬u,àrD» ò»Ê¿¸Ðÿ°¸ªÎüKSfÛv¨×ÍQ÷ö׺;mÏà_øWÜ70à%ëÚ5Í{ç\ËÖö[8=ÿ¤#ú}6½þ´QS;80ãxRà ȫÏT¸ø¼Õ%¾Kú6 ïÛX(û=$hÆ®«û|åýñéF÷m¿ië8õ¹oVªaÿ,!Ï rUºì½¸¨ÄâÏ Æ^ÖÇÍ 7±ïø=w|·£¶¡SÅ5¦B)×dC®-·þ©é*$Ü¿;àë2¾:»½Ü¾f/û= ãNÿݦï¹~sÕo8uÛÛN5èòçòi{z~5·ZÙy:XoV«Þµ>ë»à»+Ç~]owóRw,)±èÞG*w¼yoÄoCÛU}ËÏòóôÕÆzÉyëDUl²ûÂO}rÞl8rçm¿å(Pþ¹q¶á9)¶2¶Nªþâı~ïå^RúÍY1O¶±;eç§âõ¤¥µ>¬ÔïÎÒ¹O ?ÿ[¡íµOVs4¢mÃýv«6±õµð·kÄ%½VhÒìír[+'Õ¹ØgbBXÑÇÏ^̨xáÖ}æÿ0å»ÜñÓkü>ç¥ ;·õÚc{ïw6>?¨õÍ]<?1§=¢èɵ¦ÿ\&êvç/ú4õô'G׫:¹X·bßä:Ô|«i¯q`rJ®Å}4ê`PFØèͺðµ½B×Þã«J]Ú µY~}Ù:t5»úÝëDNö_¡£wÚÏÕ¡ÊPáÔÞ·_Hðåú2öø./j]vE\îoNmùiư½wNÏ÷·õ³ykVuÿoÑ7jwø9·^8Z{ËÓªä3r÷غ~eûþ½Ý´ÐXdJÍÝÿ\t¶ÓêÊ]Òz Ý\nÝ_gz9ûõÖ#ÿ]÷Å×Örqò¦k.¸ã oR¾ynOÍÝçoá^Bå7la«òéVpäͯޯSjþO'B{Gªjï]xÑÑ ùWÄ´íMØoËó~U?m9wù´½]²íà ÷ÃÖæº÷Ìä3f®ªvuɹʡS^µñ«È¦¹ùí£¨ÓÄt^rý¨ÄáÚ¬ËSxëIñeÚ~¼öûjïÚÔ< ê ÷04bñ)/ù3£MÙµ9mýy«íö-2ÿBÒAñ1÷[%bfmçÇøuý¡£Uâ$lR7aÖ®o77ímþuööÖ³ÄùýÊhxvéìY÷qhÃYUë5£äk/ÉÇ´¬Széüò¾ûvã¯ûê =rß|xÎÕÒ¿Þpvyó®µiVÈÿù[±ßmÿV¦Õ<ýfÃWF\8ôßôõ Ók·°ªÞs<¸{ëNí?q0iþGÚYæÇô¶*wÅ)±åï·Èø«çÕ1>_ÕóõoµVç¿+e/.Ù¹~Äî¼».Ý]®£|°õ'7Çï¯5ëåV£övYUþçõ»ª7<Ön{û««=×£ÍÌòH¬½á~Ý/~÷÷§UÂ4»Ò·¢Ìîú¤ùÛgvGÿ³jnïæå¦ä|yné%í¥º©sí¯±Dý}dÅÜírrãn§b¡ÏÙY(àÃË{;Mî|ûûow{ï[zkJLYþʸÉ;«ï}çÕF'ÎoÑùºávÑ"7¶ }¹éê¤\Ó[WYþñŬ_üR`S¡í×÷¼Pý÷c¯¶>¶÷9ý¯]:ÖðNÑfü¡®Ü$¥]å.<Yõâ7ë3¥Ð^í0cÌKE¼øÓ=ËÌü«Z,ùrdµ*å\ùõÌ/ß»º3Ú¿k1¿fcK~7õËãÏõÁòÅ_»V«0Ü\ý¾};[RµÐ:q-v)ß!¾esrÏ:×qp}ÇÈ ;åå½^¯²noB«ZkøA×=?ßó}Íc¤Ðï4|½¦ìä?×þeÉó¥ÌMþM|O:8%, ÁÂÓÕ1ö¯ßÉð¦´9yëgÅo~Z©k_étåö:ù >`¬ÕbxƤAƶ,*ÓóL±ï>û}ýÏפ^Ø<u÷ÔÄ¢Æ#!öËïY϶'^îòsZVãâw~ðÆ{Kv¿ðWH'Tö^êÅÁ9gÍW(ã÷l¾ªXYG×f¬÷¿Ûzó¶U/¾poàÚyn6ΰûx±¿jѱâO'¬l¸9W®_·¿YzÅ7y?[ÝýõÀ£c²ÍÓs~ðÞûõ]~&Ýð¢güÐEehRyUùÍoüõÒݸÑ;ÇÆÿ=~ðs¿íÚìwaÈo£èÒnúÇ;slÿ(©QÛú,d±.Ïqõ±ÇÝõ'4:ð_Ù¯5;¹öµ¹»þrfßÜÓºÝÿÃÍï_ÛÑzãº;¾èµ6âíóÝQc¦ÁÃÄ¿öqRC±vïÆ®Ý[ãFÁAAs&LývÃþakÏôﺫIpµqs2ö.¹x:¢ÃÈoü81òýI·Äؾoåù§"õƽ½oÒæaÂ6m[5HøõÝV÷÷&/ͳ|ÔåA´úµôâÓ7øï</è=ôÛÕĬ_¡ÏÏÛF)ûÉ-ËÿÚÔèØ±¼¡!¯«>ôås;¦Ö<Þéï-ʳI*Ü¿àðwNÏWòï-÷4(ÿÿ ¯ÜöÝáCåïæ=ö~òïÚ´ _î÷Z¹³7×tm|åÔ+aµzåÉñBc¿QUn¼2ôõÀîõwäÿ¥ÀàW&ÿroùÜkh\¥ÐÙâ?m¨å÷VPÑ+9zLìþÚSÕ-Ïu¾~cßë{Ë1sü¼î/ô»[aDǺŢ&þ¥C³eã˯{ûh²Íß¹{w|fõÏVíx}cÁ¼åÿôëÿþ±+W~5ßÑ·fÿÚò¼¨Ç þçά-¶ïUùÎwé'êÅ<±ÖÁ~Í·Þôk rM[õïU>ï÷Kß]~Û¯iÞþM'Y¹²¼X8WùOî¾ûUß/9Röà ¿sDoÍ»`Ýâþ=.$Lþ©z¯ýW®\íþgH±>ëOx³VùVµ¢ÆZGnÎpf¬uïÂÖ§Ku°²x{Å}óCÓ{ÁñwO¯¾drß'î¯Ü¯Q·òIÅâý¯«éìÉJ«3ûÖVmÖÔh±´|dæ¢n©5Î\b)ÜѼ¦ÿÑ]µó½ºËÆÜÒ kêø¯{ÚìúÇÁFóo ¬0*G£É6Ëq÷|îq÷;¹uÚº ËÏ=ùGËÿæ[Òj´èüüKÕ>¿\}hû%§¯îóÎGlúá÷3¾ª?³o=5¿¼$÷ ÊMvé9û½ÂÒZJò{ýÐO«¦î8QxØâY-mÞÜþjÄ¿És.WY0î£ïûõ~î½ßÚ-~>¼|åC¾·Û¿7lX¾ùoÞº¡¸Ê¾7î×5ÖüãéåVþ9rô§öræÍ rÕø°uµôÀïîçè9¢î±S'·åóÛëó÷KÏÙþ§]gí¬^¬í¨¯iúí¶uú ß1xíÄ[SæE/ÝZÏðîýª[6çðKÃ_=ýõèå3vþúÖÖ×;Ï[´d!-¿èz¾éÖi7*¾8éèöåd¿¹yþ¨ÖrìáÈ¢Ý3ße+>öøõ{+WÙÉâß¿S®åëO_]Ưôê_"''Ô³*W£âÞol¼ç=[W{ößÃïëYÝx«dÞ´÷}wT{/È~qÈÕ´ÀÁ<¿³WÇÝ8{Mü]«ºÏzï+Ñ-r|³jNjƸR[}þ´AÿvÝÔöz\éG [6óPË?sÏ´ö ¥EZÌû÷âýF_7_ñåÂö_^~K¾Ùó±¥K^¹:ú´ýïår®n0)ïö¢+T\=ùFé/.Ö)pù·Ï×Zs¤·ñÕ·ì-køæK·îï½Ñgjïc§ÿ1lo÷Ûù(¾7¥HbÄÕÓ/ôZ{3çÁª%jûûç¾Æ:7jÕª?líõÁÕ¬ÿRjÀ|î®ôbBÝÛÞr=Ñ¿GbÅÕWæ¼P:ùÌÿm£óX¾ºï÷%_/¼tfý³G¯r¾p«1·ïÍØ¹±ap§¦Îe~Ö¹Áo(Srõ=¾¸úqµC[Uj¸nÔçí§âg6½.U±ï;çZè¡ñæ6¼ªûúí>¸øp®S:üòÁô!£Ë4_Ñi½mQõ-=Ú/×õw.µþoʽû©X»jéM#ôrº°{uï[û^ë¸rÙ7*°íÆÅz_5]÷Æ??_ÜVxâGßjÐ1%éügwÎåìUmbBú¿«ùÃΨնû?ö½¼±^í¾#¬½Æß¹²êÞßÛ ,ø´$}>ýÈeÑG¥Ætòà>ÿá\i}vÿ×'Óøë<¤aü-FñÙøûâcÿÔZ*òópsþÇl²Þÿq¿ 8ÇÿÙþ÷?ÿPÁl5><ÿã¦ý?3¾ÿý°þ¤®ý?³wî3(ú ÷Æ>`fO×}ÀlLÃe@õì^è|2´púçzµÏ9½ÈÔn]ºGnÚ`hKóÊóÒ꾿³Ç¸7¿ìWdå -?~»21øO~þEã¯Î2äbúîBÝli·ûµ)àWaãý¦]_óÓw%û¼«à}Ûï]üäî¾>Êo©3Ô¿Þ1µÞf¿{²=¡Ù {ÀâQ¯Mìøòâæå%Û½6(:®X¾ ý/ê4eÕÒ)Éq?úe¥ õ6uÿºÒ½»ä]ãμ|±óí=ãä>xí@XDáí ª·mWdX¹/¿¾4rï¬ñsk\Û^ebTÔÛ8ßøÐF/ ¯0¦ O ÅíR*>ùî;ÌlYamázUη|°h w&Z'þ÷ö±ÃúV]8ºùKu¬´kéï;:.bã_/ÞËWiZÄÍ1í¥+u¬þã?Ý>µioûO÷Ô Ï[co~õ\bÍ®oGU®þÎí~ÆÓsè±vQ£üæÉk¢¨ÔNÞûЩMÙmñQkëô6½[dz¾®¦Þ÷/î)&ðÒÁàÞÛÍÓÞ\;-èÜózìßp ÚV»0&¨`ø¶í6²:zýÂðAwN5&wÒÔþòòÄ¿ }öûÇ6o*z¸þru¬Ðí§_¢r4ÞÿAH®÷s¼]²Ô«_þz,êÀ©å!'òÍ¿¼0¹Û¨ö?.Søô¤«?÷þ}*0íRãÒ/róÅïÏl7(.mBÙJJÜh»?o½s½z"yÚñõåguÞ<á¹Å5O¶X¨FLÍOÛ§üÓ£^Ès´Êö¶I_Ð3dÑÐèPã¦û¯GF×4ý¶iäζùÆý|{p¹& ±`l k®Íu©÷¦%·9>R~aFÞϾh¿ÜìÛÉ_ù®fÿ9¾¼KÅY?Ö^7,uúª×Vù¼ylåéÆ FÔÈ;udÞ¿êI-kså̦Qyã>ºº#¾ø´Í])¿vnÚß»;EN¿3ç´âìÛpm߿۵záB½Äm^Ø|æâyî;-×[ÞávÃ_¯´-©rqÕ¤"_×Ð%ß±Z®XRsK¾¡Ë¥ÓÉ·Kê5âú´U»;æ®ùN½[ fFÝ/9åíuÏßçÒ·ûM¶¾ýöáîµîüSüéïß"C¾V:¼IûE mRsÌøe_¨úqX vNßõýÏ+×7¿¶ö[Ëâjµöò9 _<µíÅ,ì<<Oû¸íUkä[º®Dè²Â©¦»ÖçoSã·||Ùbiû£{ÞªQùõ3W·XPãHá Ff_ùÝÁ#¦5øöb¥Ý§¿¾ïTê©ÿDv+;ÍXkB9õ6¿£ó-Õ>;våÆ#7øoßÙïîß~³Úúv^lÜfáO{½¿ªcÞý»DØn=$EoﲪÓ*Ó7/4oõæínäþüpþÒ§"þ6¨¿¡Òãb^^/fÓÜûÍwKº _½>;näüuZ¿Y¡ô¥Jï\Ñ{ÐÄ;?´Å%îYÜxo©ÔbãwûÃlzoÜüòIâ2»~Ï|å§<7ãäçÇçZ½å·ó]oÌ=ÞõÄé¼aóú¾kpáÐöãòþû®uãmëÔò1±-Äòo|¿ß¬K^þºøÛùßYUøÛÃïY¾RúNQ_-'Hû½ñù?[oüýæY?÷÷5ïå>ûj7ýûõÅ{·YoÏéþç¨=Û?¶]lk}¿ôÄKÇä¶ELOöâµÈö?Mèûyã¾ï°¨«î5ZÕ~ýú¯¾ÿÿÚ;ЦÁ0{©B"¥dC¥%iÒñâð0üÀMÇ@P·Õjwh][=Ì"à çvèEEe*ÌÕ"¢Wõ°©'?J§Tü úDÍó¼ñü/´Íûçm Í[m¶Ç·v].Òú»kd6 Ó]ÓæZÙ@®ýtî]Yÿ×?ñ ÙãÓüéBÿñü*î?ì«*Èþéü£,ÿ1ÿ#ÈJkµ'Äø_UýwÞɧÿÃ*hp|¢ÑñöèRÏ®M¼U0¶ÿ\aýï°cþ*È~XùåVg?v{ÃRõ¨·:CRXé^ÅÀÏZ¦(ÿ4]PÿÔÿTÿõMQþ,þ;tüGÿ*t¨:{T |?ðæf=g-3S`}þ9Á xPKèøÿ«xSh< ú/pÚþ/gÿ4È]ñåaÜþ@øÐÌKH^'翱{ |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/seconddir/SCCS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/seconddir/SCCS Removed Files: s.file4 s.file7 Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- s.file4 DELETED --- --- s.file7 DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/sourcedir/SCCS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/sourcedir/SCCS Removed Files: s.cobol.c s.main.c Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- s.cobol.c DELETED --- --- s.main.c DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests/bk-reference-files In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-reference-files Removed Files: bk-file-tree-1.5 bk-file-tree-1.6 bk-file-tree-1.7 bk-file-tree-1.8 firstdir^file2^@1.3 firstdir^file2^@1.4 firstdir^file2^@1.8 seconddir^file4^@1.4 seconddir^file4^@1.7 seconddir^file7^@1.10 seconddir^thirddir^file5^@1.6 seconddir^thirddir^file6^@1.9 Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- bk-file-tree-1.5 DELETED --- --- bk-file-tree-1.6 DELETED --- --- bk-file-tree-1.7 DELETED --- --- bk-file-tree-1.8 DELETED --- --- firstdir^file2^@1.3 DELETED --- --- firstdir^file2^@1.4 DELETED --- --- firstdir^file2^@1.8 DELETED --- --- seconddir^file4^@1.4 DELETED --- --- seconddir^file4^@1.7 DELETED --- --- seconddir^file7^@1.10 DELETED --- --- seconddir^thirddir^file5^@1.6 DELETED --- --- seconddir^thirddir^file6^@1.9 DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/sourcedir/subdir1/SCCS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/sourcedir/subdir1/SCCS Removed Files: s.ruby.c Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- s.ruby.c DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/BitKeeper/tmp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/BitKeeper/tmp Removed Files: csetcache.1250095 Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- csetcache.1250095 DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/SCCS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/SCCS Removed Files: s.ChangeSet s.file1 Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- s.ChangeSet DELETED --- --- s.file1 DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:48
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/BitKeeper/etc/SCCS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/BitKeeper/etc/SCCS Removed Files: s.config x.cmark x.dfile x.id_cache Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- s.config DELETED --- --- x.cmark DELETED --- --- x.dfile DELETED --- --- x.id_cache DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:45
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/firstdir/SCCS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/firstdir/SCCS Removed Files: s.file2 Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- s.file2 DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:41
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/BitKeeper/deleted/SCCS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/BitKeeper/deleted/SCCS Removed Files: s..del-file2~7a40a14b3cb5ac42 s..del-file3~8c122dea36a73acd Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- s..del-file2~7a40a14b3cb5ac42 DELETED --- --- s..del-file3~8c122dea36a73acd DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-09 22:58:41
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/BitKeeper/etc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23865/bk-test-repository/BitKeeper/etc Removed Files: config ignore Log Message: Remove all the test files for Bitkeeper and replace with a tarball that should be untarred by the tester before running the tests. The BkTest.pm test should really be updated to do this automatically, but since the license change I can no longer run Bitkeeper and therefore have no interest in updating these tests. --- config DELETED --- --- ignore DELETED --- |
From: Malcolm B. <mb...@us...> - 2006-04-08 13:38:10
|
Update of /cvsroot/lxr/lxr/lib/LXR/Files In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22644/lib/LXR/Files Added Files: GIT.pm Log Message: New: preliminary GIT support Reorganised the generic.conf entries, and add support for some more ectags stuff Fix to glimpse support --- NEW FILE: GIT.pm --- # -*- tab-width: 4 -*- ############################################### # # $Id: GIT.pm,v 1.1 2006/04/08 13:37:58 mbox Exp $ # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. package LXR::Files::GIT; $CVSID = '$Id: GIT.pm,v 1.1 2006/04/08 13:37:58 mbox Exp $'; use strict; use FileHandle; use LXR::Common; use LXR::Author; # # We're adding ".git" to the path since we're only dealing with # low-level stuff and _never_ ever deal with checked-out files. # sub new { my ($self, $rootpath, $params) = @_; $self = bless({}, $self); $self->{'rootpath'} = $rootpath; $ENV{'GIT_DIR'} = $self->{'rootpath'}; return $self; } sub filerev { my ($self, $filename, $release) = @_; $filename = $self->sanitizePath ($filename); $release = $self->get_treehash_for_branchhead_or_tag ($release); my $pid = open(my $F, '-|'); die $! unless defined $pid; if (!$pid) { exec ("git-ls-tree", $release, $filename) or die "filerev: Cannot exec git-ls-tree"; } my $git_line=<$F>; chomp $git_line; close($F); if ($git_line =~ m/(\d+)\s(\w+)\s([[:xdigit:]]+)\t(.*)/ ) { return $3; } else { die "filerev( $filename, $release ): No entry found.\n"; } } sub getfiletime { my ($self, $filename, $release) = @_; $filename = $self->sanitizePath ($filename); if ($filename =~ m/\/\.\.$/ ) return undef; # if ($filename =~ /\/\.\.\$/) # return undef; my $pid1 = open(my $R, '-|' ); die $! unless defined $pid1; if(!$pid1) { exec("git-rev-list", "--max-count=1", "$release", "--", $filename ) or die "getfiletime ($filename, $release): Cannot exec git-rev-list\n"; } my $commit = <$R>; chomp $commit; close($R); my $pid = open(my $F, '-|'); die $! unless defined $pid; if(!$pid) { exec("git-cat-file", "commit", $commit) or die "getfiletime ($filename, $release): Cannot exec git-cat-file\n"; } while(<$F>) { chomp; if ( m/^author .*<.*> (\d+)\s.*$/ ) { close($F); return $1; } } close($F); die "getfiletime ($filename, $release) : Did not find GIT entry.\n"; } sub getfilesize { my ($self, $filename, $release) = @_; $filename = $self->sanitizePath ($filename); my $object_hash = $self->filerev ($filename, $release); print STDERR "getfilesize ($filename, $release)\n"; # return `git-cat-file -s $blobhash`; my $pid = open (my $F, '-|'); die $! unless defined $pid; if(!$pid) { exec ("git-cat-file", "-s", $object_hash) or die "getfilesize ($filename, $release): Cannot exec git-cat-file\n"; } my $size = <$F>; close ($F); chomp $size; if ( $size ) { return $size; } else { return undef; } close ($F); return undef; } sub getfile { my ($self, $filename, $release) = @_; my ($buffer); # my $blobhash = open( "git-ls-tree $release $filename | cut -f 3 -d ' ' | cut -f 1 -d \$'\t' |") or die "Cannot open git-ls-tree $release $filename in getfile\n"; my $blobhash = $self->filerev( $filename, $release ); # local ($/) = undef; open(FILE, "git-cat-file blob $blobhash|") || return undef; $buffer = <FILE>; close(FILE); return $buffer; } sub getfilehandle { my ($self, $filename, $release) = @_; my ($fileh); $filename = $self->sanitizePath ($filename); my $treeid = $self->get_treehash_for_branchhead_or_tag ($release); $filename = $self->sanitizePath ($filename); my $objectid = $self->getBlobOrTreeOfPathAndTree ($filename, $treeid); $fileh = new IO::File; $fileh->open ("git-cat-file blob $objectid |") or die "Cannot execute git-cat-file blob $objectid"; return $fileh; } sub tmpfile { my ($self, $filename, $release) = @_; my ($tmp, $fileh); local ($/) = undef; $tmp = $config->tmpdir . '/lxrtmp.' . time . '.' . $$ . '.' . &LXR::Common::tmpcounter; open(TMP, "> $tmp") || return undef; $fileh = $self->getfilehandle( $filename, $release ); print(TMP <$fileh>); close($fileh); close(TMP); return $tmp; } sub getannotations { return (); my ($self, $pathname, $release) = @_; my @authors = (); if ( $pathname =~ m#^/(.*)$# ) { $pathname = $1; } open( BLAME, "git-blame -l $pathname $release |"); while( <BLAME> ) { if ( m/(^[[:xdigit:]]+)\s.*$/ ) { my $linehash = $1; my $authorline = `git-cat-file commit $linehash`; if ($authorline =~ m/^author ([^<]+)<(([^@])\@[^>]+)>.*$/ ) { my ($authorname, $authoruser, $authoremail) = ($1, $2, $3); push(@authors, LXR::Author->new(chomp $authorname, $authoruser, $authoremail)); } else { push(@authors, LXR::Author->new("", "", "")); } } else { print STDERR "getannotations: JB HAT DOOFE OHREN: $_\n"; } } close(BLAME); print STDERR "authors: " . join(" ", @authors) . "\n"; return @authors; } sub getauthor { return (); my ($self, $filename, $release) = @_; $filename = $self->sanitizePath ($filename); print STDERR "getauthr( $filename, $release )\n"; my $commit = `git-rev-list --max-count=1 $release -- $filename | tr -d \$'\n'`; my $authorline = `git-cat-file commit $commit | grep '^author' | head -n1 | tr -d \$'\n'`; if ($authorline =~ m/^author ([^<]+)<(([^@])\@[^>]+)>.*$/ ) { my ($authorname, $authoruser, $authoremail) = ($1, $2, $3); return LXR::Author->new(chomp $authorname, $authoruser, $authoremail); } else { return LXR::Author->new("", "", ""); } } sub getdir { my ($self, $pathname, $release) = @_; my ($dir, $node, @dirs, @files); my $treeid = $self->get_treehash_for_branchhead_or_tag ($release); $pathname = $self->sanitizePath( $pathname ); if ( $pathname !~ m#..*/# ) { $pathname = $pathname . '/'; } open(DIRLIST, "git-ls-tree $treeid $pathname |") or die "Cannot open git-ls-tree $treeid $pathname"; while( <DIRLIST> ) { if ( m/(\d+)\s(\w+)\s([[:xdigit:]]+)\t(.*)/ ) { my ($entrymode, $entrytype, $objectid, $entryname) = ($1,$2,$3,$4); # Weed out things to ignore foreach my $ignoredir ($config->{ignoredirs}) { next if $entryname eq $ignoredir; } next if $entryname =~ /^\.$/; next if $entryname =~ /^\.\.$/; if ($entrytype eq "blob") { push(@files, $entryname); } elsif ($entrytype eq "tree") { push(@dirs, "$entryname/"); #push(@dirs, "$entryname"); } } } close(DIRLIST); return sort(@dirs), sort(@files); } # This function should not be used outside this module # except for printing error messages # (I'm not sure even that is legitimate use, considering # other possible File classes.) ##sub toreal { ## my ($self, $pathname, $release) = @_; ## ## nearly all (if not all) method calls eventually call toreal(), so this is a good place to block file access ## foreach my $ignoredir ($config->ignoredirs) { ## return undef if $pathname =~ m|/$ignoredir/|; ## } ## ## return ($self->{'rootpath'} . $release . $pathname); ##} sub isdir { my ($self, $pathname, $release) = @_; $pathname = $self->sanitizePath ($pathname); $release = $self->get_newest_commit_from_branchhead_or_tag ($release); print STDERR "isdir ($pathname, $release)\n"; my $treeid = $self->get_treehash_for_branchhead_or_tag ($release); return $self->getObjectType ($pathname, $treeid) eq "tree"; } sub isfile { my ($self, $pathname, $release) = @_; $pathname = $self->sanitizePath ($pathname); $release = $self->get_newest_commit_from_branchhead_or_tag ($release); print STDERR "isfile($pathname, $release)\n"; my $treeid = $self->get_treehash_for_branchhead_or_tag ($release); return $self->getObjectType ($pathname, $treeid) eq "blob"; } # # For a given commit (that is, the latest commit on a named branch or # a tag's name) return the tree object's hash corresponding to it. # sub get_treehash_for_branchhead_or_tag () { my ($self, $release) = @_; $release = $self->get_newest_commit_from_branchhead_or_tag ($release); return `git-cat-file commit $release | grep '^tree' | head -n1 | cut -f 2 -d ' ' | tr -d \$'\n'`; } sub getObjectType() { my ($self, $pathname, $treeid) = @_; open (DIRLIST, "git-ls-tree $treeid $pathname |") or die "Cannot open git-ls-tree $treeid $pathname"; while (<DIRLIST>) { if (m/(\d+)\s(\w+)\s([[:xdigit:]]+)\t(.*)/) { my ($entrymode, $entrytype, $objectid, $entryname) = ($1, $2, $3, $4); # Weed out things to ignore # # This should only be needed in the getdir function. # foreach my $ignoredir ($config->{ignoredirs}) { # next if $entryname eq $ignoredir; # } $entryname = $self->sanitizePath ($entryname); # print STDERR "getBlobOrTreeOfPathAndTree: pathname: \"$pathname\" :: entryname: \"$entryname\"\n"; next if ( ! $pathname eq $entryname ); close (DIRLIST); # print STDERR "Juhu, wir haben $pathname gefunden :: $objectid\n"; return $entrytype; } } close (DIRLIST); return undef; } sub getBlobOrTreeOfPathAndTree() { my ($self, $pathname, $treeid ) = @_; open (DIRLIST, "git-ls-tree $treeid $pathname |") or die "Cannot open git-ls-tree $treeid $pathname"; while (<DIRLIST>) { if (m/(\d+)\s(\w+)\s([[:xdigit:]]+)\t(.*)/) { my ($entrymode, $entrytype, $objectid, $entryname) = ($1, $2, $3, $4); # Weed out things to ignore foreach my $ignoredir ($config->{ignoredirs}) { next if $entryname eq $ignoredir; } $entryname = $self->sanitizePath( $entryname ); next if (! $pathname eq $entryname ); close (DIRLIST); return $objectid; } } close (DIRLIST); return undef; } # # This function will take a branch name ("master") or a tag name # (like "v2.6.15") and return either the branch commit object ID, # or descend from the tag object into the referenced commit object # and return its commit ID. XXX # sub get_newest_commit_from_branchhead_or_tag ($$) { my ($self, $head_or_tag) = @_; my $objtype = `git-cat-file -t $head_or_tag | tr -d \$'\n'`; if ($objtype eq "commit") { return $head_or_tag; } elsif ($objtype eq "tag") { return `git-cat-file tag $head_or_tag | grep '^object' | head -n1 | cut -f 2 -d ' ' | tr -d \$'\n'`; } else { die ("get_newest_commit_from_branchhead_or_tag: Unrecognized object type $objtype for $head_or_tag\n"); } } sub sanitizePath() { my ($self, $pathname) = @_; if ( $pathname eq "" ) { # Empty? Just beam the client to the root. $pathname = "."; } elsif ( $pathname =~ m#^/# ) { # Absolute? We want them to be relative! $pathname = ".$pathname"; } else { # Filename incurrent directory? Add "./" to # make them truly relative. $pathname = "./$pathname"; } # Don't let them exploit us easily. # if ( $pathname =~ m#/../# ) { # die("You are now dead because of $pathname\n"); # } # Doubled slashes? We remove them. $pathname =~ s#//#/#g; # Delete leading slashes. $pathname =~ s#/*$##g; return $pathname; } 1; |
From: Malcolm B. <mb...@us...> - 2006-04-08 13:38:10
|
Update of /cvsroot/lxr/lxr/lib/LXR In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22644/lib/LXR Modified Files: Files.pm Log Message: New: preliminary GIT support Reorganised the generic.conf entries, and add support for some more ectags stuff Fix to glimpse support Index: Files.pm =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Files.pm,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Files.pm 2 Nov 2005 23:39:55 -0000 1.9 +++ Files.pm 8 Apr 2006 13:37:58 -0000 1.10 @@ -36,6 +36,11 @@ $srcroot = $1; $files = new LXR::Files::BK($srcroot, $params); } + elsif ( $srcroot =~ /^git:(.*)/i ) { + require LXR::Files::GIT; + $srcroot = $1; + $files = new LXR::Files::GIT($srcroot, $params); + } else { require LXR::Files::Plain; $files = new LXR::Files::Plain($srcroot); |
From: Malcolm B. <mb...@us...> - 2006-04-08 13:38:10
|
Update of /cvsroot/lxr/lxr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22644 Modified Files: search Log Message: New: preliminary GIT support Reorganised the generic.conf entries, and add support for some more ectags stuff Fix to glimpse support Index: search =================================================================== RCS file: /cvsroot/lxr/lxr/search,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- search 7 Oct 2005 21:38:06 -0000 1.29 +++ search 8 Apr 2006 13:37:57 -0000 1.30 @@ -81,7 +81,7 @@ unless (open(GLIMPSE, "-|")) { open(STDERR, ">&STDOUT"); $! = ''; - exec($config->glimpsebin, "-i", "-H" . $config->glimpsedir . "/" . $release, + exec($config->glimpsebin, "-i", "-H" , $config->glimpsedir . "/" . $release, '-y', '-n', $searchtext); print("Glimpse subprocess died unexpextedly: $!\n"); exit; |
From: Malcolm B. <mb...@us...> - 2006-04-08 13:38:07
|
Update of /cvsroot/lxr/lxr/templates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22644/templates Modified Files: lxr.conf Log Message: New: preliminary GIT support Reorganised the generic.conf entries, and add support for some more ectags stuff Fix to glimpse support Index: lxr.conf =================================================================== RCS file: /cvsroot/lxr/lxr/templates/lxr.conf,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- lxr.conf 2 Nov 2005 23:39:55 -0000 1.26 +++ lxr.conf 8 Apr 2006 13:37:58 -0000 1.27 @@ -113,7 +113,15 @@ # the 'sourceparams' value below. This should point to a directory where the # code can write and read files. # 'sourceroot' => 'bk:/some/repository/here', - + + # Finally, you can also use GIT, Linux Kernel's new + # distributes SCM to access the history: + # 'sourceroot' => 'git:/some/repository/.git' + # 'sourceroot' => 'git:/some/repostitory.git' + # The `sourceroot' config variable points to the directory + # in which you find the `objects', `refs', `index' etc. + # directories. + # The name to display for this source tree 'sourcerootname' => 'Example', @@ -231,7 +239,9 @@ #'cvswebprefix' => 'http://cvs.myhost.com/cgi-bin/viewcvs.cgi/myroot', #'cvswebpostfix' => '', - # choose to ignore certain directories - 'ignoredirs' => ['CVSROOT'], # 'CVS' dir is always ignored + # Directories to always ignore. These usually are the SCM's + # private directories which possibly may contain non-public + # project history. + 'ignoredirs' => ['CVSROOT', '.git'], } ) |
From: Malcolm B. <mb...@us...> - 2006-04-08 13:38:06
|
Update of /cvsroot/lxr/lxr/lib/LXR/Lang In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22644/lib/LXR/Lang Modified Files: generic.conf Log Message: New: preliminary GIT support Reorganised the generic.conf entries, and add support for some more ectags stuff Fix to glimpse support Index: generic.conf =================================================================== RCS file: /cvsroot/lxr/lxr/lib/LXR/Lang/generic.conf,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- generic.conf 19 Oct 2004 19:19:21 -0000 1.18 +++ generic.conf 8 Apr 2006 13:37:58 -0000 1.19 @@ -44,6 +44,7 @@ 'e' => 'enumerator', 'f' => 'function definition', 'g' => 'enumeration name', + 'i' => 'interface', 'm' => 'class, struct, or union member', 'n' => 'namespace', 'p' => 'function prototype or declaration', @@ -52,7 +53,6 @@ 'u' => 'union name', 'v' => 'variable definition', 'x' => 'extern or forward variable declaration', - 'i' => 'interface' }, 'langid' => '1', }, @@ -91,6 +91,7 @@ 'e' => 'enumerator', 'f' => 'function definition', 'g' => 'enumeration name', + 'i' => 'interface', 'm' => 'class, struct, or union member', 'n' => 'namespace', 'p' => 'function prototype or declaration', @@ -99,7 +100,6 @@ 'u' => 'union name', 'v' => 'variable definition', 'x' => 'extern or forward variable declaration', - 'i' => 'interface' }, 'langid' => '2', @@ -562,8 +562,9 @@ 'string' => ("'", "'") ], 'typemap' => { - 's' => 'subroutine', + 'l' => 'label', 'p' => 'package', + 's' => 'subroutine', }, 'langid' => '7', @@ -587,6 +588,7 @@ 'typemap' => { 'c' => 'class', 'f' => 'function', + 'm' => 'class member', }, 'langid' => '8', }, @@ -990,17 +992,17 @@ 'string', "'", "'", 'atom', '\\\\.', '', ], 'typemap' => { - 'f' => 'field', 'c' => 'constraint', - 't' => 'table', - 'T' => 'trigger', - 'F' => 'function', - 'P' => 'procedure', 'C' => 'cursor', - 'p' => 'package', + 'f' => 'field', + 'F' => 'function', 'i' => 'index', + 'p' => 'package', + 'P' => 'procedure', 's' => 'sequence', 'S' => 'synonym', + 't' => 'table', + 'T' => 'trigger', 'v' => 'view', }, 'langid' => '11', @@ -1049,14 +1051,14 @@ 'atom', '\\\\.', '', ], 'typemap' => { - 's' => 'subroutine', - 'f' => 'function', 'c' => 'const', - 'n' => 'name', - 'l' => 'label', 'e' => 'enum', - 'v' => 'variable', + 'f' => 'function', + 'l' => 'label', + 'n' => 'name', + 's' => 'subroutine', 't' => 'type', + 'v' => 'variable', }, 'langid' => '12', }, |
From: Malcolm B. <mb...@us...> - 2006-04-04 22:24:41
|
Update of /cvsroot/lxr/lxr/tests/bk-reference-files In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19073/lxr/tests/bk-reference-files Added Files: bk-file-tree-1.8 seconddir^thirddir^file5^@1.6 seconddir^file7^@1.10 seconddir^file4^@1.4 bk-file-tree-1.6 bk-file-tree-1.5 firstdir^file2^@1.3 seconddir^file4^@1.7 seconddir^thirddir^file6^@1.9 bk-file-tree-1.7 firstdir^file2^@1.8 firstdir^file2^@1.4 Log Message: ectags update for new language types (JBG) |
From: Malcolm B. <mb...@us...> - 2006-04-04 22:24:36
|
Update of /cvsroot/lxr/lxr/tests/bk-test-repository/seconddir/SCCS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19073/lxr/tests/bk-test-repository/seconddir/SCCS Added Files: s.file4 s.file7 Log Message: ectags update for new language types (JBG) |