From: <pdo...@us...> - 2007-02-03 00:10:26
|
Revision: 12217 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12217&view=rev Author: pdontthink Date: 2007-02-02 16:10:25 -0800 (Fri, 02 Feb 2007) Log Message: ----------- Add display of version numbers next to plugin listings Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-02-02 23:24:09 UTC (rev 12216) +++ trunk/squirrelmail/config/conf.pl 2007-02-03 00:10:25 UTC (rev 12217) @@ -723,7 +723,7 @@ $num = 0; for ( $count = 0 ; $count <= $#plugins ; $count++ ) { $num = $count + 1; - print " $num. $plugins[$count]\n"; + print " $num. $plugins[$count]" . get_plugin_version($plugins[$count]) . "\n"; } print "\n Available Plugins:\n"; opendir( DIR, "../plugins" ); @@ -747,7 +747,7 @@ for ( $i = 0 ; $i <= $#unused_plugins ; $i++ ) { $num = $num + 1; - print " $num. $unused_plugins[$i]\n"; + print " $num. $unused_plugins[$i]" . get_plugin_version($unused_plugins[$i]) . "\n"; } closedir DIR; @@ -5104,6 +5104,68 @@ return $string; } +# determine a plugin's version number +# +# parses the setup.php file, looking for the +# version string in the <plugin>_info() or the +# <plugin>_version functions. +# +sub get_plugin_version() { + + my $plugin_name = shift(@_); + + $setup_file = '../plugins/' . $plugin_name . '/setup.php'; + if ( -e "$setup_file" ) { + # Make sure that file is readable + if (! -r "$setup_file") { + print "\n"; + print "WARNING:\n"; + print "The file \"$setup_file\" was found, but you don't\n"; + print "have rights to read it. The plugin \""; + print $plugin_name . "\" may not work correctly until you fix this.\n"; + print "\nPress enter to continue"; + $ctu = <STDIN>; + print "\n"; + next; + } + + $version = ' '; +# FIXME: grep the file instead of reading it into memory? + $whole_file = ''; + open( FILE, "$setup_file" ); + while ( $line = <FILE> ) { + $whole_file .= $line; + } + close(FILE); + + # ideally, there is a version in the <plugin>_info function... + # + if ($whole_file =~ /('version'\s*=>\s*['"](.*?)['"])/) { + $version .= $2; + + # this assumes there is only one function that returns + # a static string in the setup file + # + } elsif ($whole_file =~ /(return\s*['"](.*?)['"])/) { + $version .= $2; + } + + return $version; + + } else { + print "\n"; + print "WARNING:\n"; + print "The file \"$setup_file\" was not found.\n"; + print "The plugin \"" . $plugin_name; + print "\" may not work correctly until you fix this.\n"; + print "\nPress enter to continue"; + $ctu = <STDIN>; + print "\n"; + next; + } + +} + # parses the setup.php files for all activated plugins and # builds static plugin hooks array so we don't have to load # ALL plugins are runtime and build the hook array on every This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2007-02-08 20:28:21
|
Revision: 12244 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12244&view=rev Author: pdontthink Date: 2007-02-08 12:28:20 -0800 (Thu, 08 Feb 2007) Log Message: ----------- Fix default value for hide attributions Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-02-08 15:12:09 UTC (rev 12243) +++ trunk/squirrelmail/config/conf.pl 2007-02-08 20:28:20 UTC (rev 12244) @@ -2370,7 +2370,7 @@ print ""; print "\n"; - if ( lc($default_hide_attribution) eq 'true' ) { + if ( lc($hide_sm_attributions) eq 'true' ) { $default_value = "y"; } else { $default_value = "n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2007-02-28 04:54:52
|
Revision: 12288 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12288&view=rev Author: pdontthink Date: 2007-02-27 20:54:51 -0800 (Tue, 27 Feb 2007) Log Message: ----------- Comment change Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-02-27 19:43:58 UTC (rev 12287) +++ trunk/squirrelmail/config/conf.pl 2007-02-28 04:54:51 UTC (rev 12288) @@ -4160,7 +4160,7 @@ return $use_iframe; } -# display html emails in iframe +# ask user info sub command_ask_user_info { print "New users need to supply their real name and email address to\n"; print "send out proper mails. When this option is enabled, a user that\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2007-03-06 16:05:27
|
Revision: 12320 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12320&view=rev Author: kink Date: 2007-03-06 08:05:21 -0800 (Tue, 06 Mar 2007) Log Message: ----------- fix typo Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-03-06 16:03:45 UTC (rev 12319) +++ trunk/squirrelmail/config/conf.pl 2007-03-06 16:05:21 UTC (rev 12320) @@ -2187,7 +2187,7 @@ #noselect fix sub command216 { - print "Some IMAP server allow subfolders to exist even if the parent\n"; + print "Some IMAP servers allow subfolders to exist even if the parent\n"; print "folders do not. This fixes some problems with the folder list\n"; print "when this is the case, causing the /NoSelect folders to be displayed\n"; print "\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2007-06-02 19:37:48
|
Revision: 12436 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12436&view=rev Author: pdontthink Date: 2007-06-02 12:37:44 -0700 (Sat, 02 Jun 2007) Log Message: ----------- Templates also known as skins; also alphabetize list of available plugins (whew) Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-06-01 14:03:03 UTC (rev 12435) +++ trunk/squirrelmail/config/conf.pl 2007-06-02 19:37:44 UTC (rev 12436) @@ -685,7 +685,7 @@ print "1. Use Icons? : $WHT$use_icons$NRM\n"; # print "3. Default Icon Set : $WHT$icon_theme_def$NRM\n"; print "2. Default font size : $WHT$default_fontsize$NRM\n"; - print "3. Manage template sets\n"; + print "3. Manage template sets (skins)\n"; print "4. Manage user themes\n"; print "5. Manage font sets\n"; print "6. Manage icon themes\n"; @@ -728,7 +728,7 @@ } print "\n Available Plugins:\n"; opendir( DIR, "../plugins" ); - @files = readdir(DIR); + @files = sort(readdir(DIR)); $pos = 0; @unused_plugins = (); for ( $i = 0 ; $i <= $#files ; $i++ ) { @@ -3042,7 +3042,7 @@ } sub command_templates { - print "\nDefine the template sets that you wish to use. If you have added\n"; + print "\nDefine the template sets (skins) that you wish to use. If you have added\n"; print "a template set of your own, just follow the instructions (?) about\n"; print "how to add them. You can also change the default template.\n"; @@ -3083,7 +3083,7 @@ . "| - N (remove template set) |\n" . "| m N (mark default template set) |\n" . "| f N (set fallback template set) |\n" - . "| l (list template sets) |\n" + . "| l (list template sets/skins) |\n" . "| d (done) |\n" . "|-------------------------------------|\n" . "| where N is a template set number |\n" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2007-07-18 09:26:57
|
Revision: 12554 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12554&view=rev Author: kink Date: 2007-07-18 02:26:56 -0700 (Wed, 18 Jul 2007) Log Message: ----------- Sort output of readdir, as this is not by default. Thanks Tomas Kuliavas for finding this. Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-07-18 09:25:53 UTC (rev 12553) +++ trunk/squirrelmail/config/conf.pl 2007-07-18 09:26:56 UTC (rev 12554) @@ -2770,7 +2770,7 @@ print "\nStarting detection...\n\n"; opendir( DIR, "../css" ); - @files = readdir(DIR); + @files = sort(readdir(DIR)); $cnt = 0; while ( $cnt <= $#files ) { $filename = "../css/" . $files[$cnt] .'/'; @@ -2975,7 +2975,7 @@ print "\nStarting detection...\n\n"; opendir( DIR, "../images/themes/" ); - @files = readdir(DIR); + @files = sort(readdir(DIR)); $cnt = 0; while ( $cnt <= $#files ) { $filename = "../images/themes/" . $files[$cnt] .'/'; @@ -3171,7 +3171,7 @@ } elsif ( $input =~ /^\s*t\s*/i ) { print "\nStarting detection...\n\n"; opendir( DIR, "../templates" ); - @files = readdir(DIR); + @files = sort(readdir(DIR)); $cnt = 0; while ( $cnt <= $#files ) { if ( -d "../templates/" . $files[$cnt] && $files[$cnt] !~ /^\./ && $files[$cnt] ne "CVS" ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2007-08-14 21:17:11
|
Revision: 12585 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12585&view=rev Author: pdontthink Date: 2007-08-14 14:17:09 -0700 (Tue, 14 Aug 2007) Log Message: ----------- Show plugin English names in conf.pl plugin listing page. Note that get_plugin_english_name() and get_plugin_version() both read the setup.php file into memory, so that should at some point be refactored. Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-08-14 20:57:42 UTC (rev 12584) +++ trunk/squirrelmail/config/conf.pl 2007-08-14 21:17:09 UTC (rev 12585) @@ -724,7 +724,12 @@ $num = 0; for ( $count = 0 ; $count <= $#plugins ; $count++ ) { $num = $count + 1; - print " $num. $plugins[$count]" . get_plugin_version($plugins[$count]) . "\n"; + $english_name = get_plugin_english_name($plugins[$count]); + if ( $english_name eq "" ) { + print " $num. $plugins[$count]" . get_plugin_version($plugins[$count]) . "\n"; + } else { + print " $num. $english_name ($plugins[$count])" . get_plugin_version($plugins[$count]) . "\n"; + } } print "\n Available Plugins:\n"; opendir( DIR, "../plugins" ); @@ -748,7 +753,12 @@ for ( $i = 0 ; $i <= $#unused_plugins ; $i++ ) { $num = $num + 1; - print " $num. $unused_plugins[$i]" . get_plugin_version($unused_plugins[$i]) . "\n"; + $english_name = get_plugin_english_name($unused_plugins[$i]); + if ( $english_name eq "" ) { + print " $num. $unused_plugins[$i]" . get_plugin_version($unused_plugins[$i]) . "\n"; + } else { + print " $num. $english_name ($unused_plugins[$i])" . get_plugin_version($unused_plugins[$i]) . "\n"; + } } closedir DIR; @@ -5190,6 +5200,61 @@ } +# determine a plugin's English name +# +# parses the setup.php file, looking for the +# English name in the <plugin>_info() function. +# +sub get_plugin_english_name() { + + my $plugin_name = shift(@_); + + $setup_file = '../plugins/' . $plugin_name . '/setup.php'; + if ( -e "$setup_file" ) { + # Make sure that file is readable + if (! -r "$setup_file") { + print "\n"; + print "WARNING:\n"; + print "The file \"$setup_file\" was found, but you don't\n"; + print "have rights to read it. The plugin \""; + print $plugin_name . "\" may not work correctly until you fix this.\n"; + print "\nPress enter to continue"; + $ctu = <STDIN>; + print "\n"; + next; + } + + $english_name = ''; +# FIXME: grep the file instead of reading it into memory? + $whole_file = ''; + open( FILE, "$setup_file" ); + while ( $line = <FILE> ) { + $whole_file .= $line; + } + close(FILE); + + # the English name is in the <plugin>_info function or nothing... + # + if ($whole_file =~ /('english_name'\s*=>\s*['"](.*?)['"])/) { + $english_name .= $2; + } + + return $english_name; + + } else { + print "\n"; + print "WARNING:\n"; + print "The file \"$setup_file\" was not found.\n"; + print "The plugin \"" . $plugin_name; + print "\" may not work correctly until you fix this.\n"; + print "\nPress enter to continue"; + $ctu = <STDIN>; + print "\n"; + next; + } + +} + # parses the setup.php files for all activated plugins and # builds static plugin hooks array so we don't have to load # ALL plugins are runtime and build the hook array on every This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2007-08-31 23:21:15
|
Revision: 12659 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12659&view=rev Author: pdontthink Date: 2007-08-31 16:21:05 -0700 (Fri, 31 Aug 2007) Log Message: ----------- Improve autodetection and add default input Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-08-31 23:20:48 UTC (rev 12658) +++ trunk/squirrelmail/config/conf.pl 2007-08-31 23:21:05 UTC (rev 12659) @@ -737,7 +737,7 @@ $pos = 0; @unused_plugins = (); for ( $i = 0 ; $i <= $#files ; $i++ ) { - if ( -d "../plugins/" . $files[$i] && $files[$i] !~ /^\./ && $files[$i] ne "CVS" ) { + if ( -d "../plugins/" . $files[$i] && $files[$i] !~ /^\./ && $files[$i] ne ".svn" ) { $match = 0; for ( $k = 0 ; $k <= $#plugins ; $k++ ) { if ( $plugins[$k] eq $files[$i] ) { @@ -2784,7 +2784,7 @@ $cnt = 0; while ( $cnt <= $#files ) { $filename = "../css/" . $files[$cnt] .'/'; - if ( $filename ne "../css/rtl.css" && -e $filename . "default.css" ) { + if ( $files[$cnt] !~ /^\./ && $filename ne "../css/rtl.css" && -e $filename . "default.css" ) { $found = 0; for ( $x = 0 ; $x <= $#user_theme_path ; $x++ ) { if ( $user_theme_path[$x] eq $filename ) { @@ -2793,9 +2793,16 @@ } if ( $found != 1 ) { print "** Found user theme: $filename\n"; - print " What is its name? "; + $def = $files[$cnt]; + $def =~ s/_/ /g; + $def = lc($def); + #$def =~ s/(^\w+)/ucfirst $1/eg; + #$def =~ s/(\s+)(\w+)/$1 . ucfirst $2/eg; + $def =~ s/(^\w+)|(\s+)(\w+)/ucfirst $1 . $2 . ucfirst $3/eg; + print " What is its name? [$def]: "; $nm = <STDIN>; - $nm =~ s/[\n\r]//g; + $nm =~ s/^\s+|\s+$|[\n\r]//g; + if ( $nm eq '' ) { $nm = $def; } $user_theme_name[ $#user_theme_name + 1 ] = $nm; $user_theme_path[ $#user_theme_path + 1 ] = $filename; } @@ -2989,7 +2996,7 @@ $cnt = 0; while ( $cnt <= $#files ) { $filename = "../images/themes/" . $files[$cnt] .'/'; - if ( -d "../images/themes/" . $files[$cnt] && $files[$cnt] !~ /^\./ && $files[$cnt] ne "CVS" ) { + if ( -d "../images/themes/" . $files[$cnt] && $files[$cnt] !~ /^\./ && $files[$cnt] ne ".svn" ) { $found = 0; for ( $x = 0 ; $x <= $#icon_theme_path ; $x++ ) { if ( $icon_theme_path[$x] eq $filename ) { @@ -2998,9 +3005,16 @@ } if ( $found != 1 ) { print "** Found icon theme: $filename\n"; - print " What is its name? "; + $def = $files[$cnt]; + $def =~ s/_/ /g; + $def = lc($def); + #$def =~ s/(^\w+)/ucfirst $1/eg; + #$def =~ s/(\s+)(\w+)/$1 . ucfirst $2/eg; + $def =~ s/(^\w+)|(\s+)(\w+)/ucfirst $1 . $2 . ucfirst $3/eg; + print " What is its name? [$def]: "; $nm = <STDIN>; - $nm =~ s/[\n\r]//g; + $nm =~ s/^\s+|\s+$|[\n\r]//g; + if ( $nm eq '' ) { $nm = $def; } $icon_theme_name[ $#icon_theme_name + 1 ] = $nm; $icon_theme_path[ $#icon_theme_path + 1 ] = $filename; } @@ -3184,7 +3198,7 @@ @files = sort(readdir(DIR)); $cnt = 0; while ( $cnt <= $#files ) { - if ( -d "../templates/" . $files[$cnt] && $files[$cnt] !~ /^\./ && $files[$cnt] ne "CVS" ) { + if ( -d "../templates/" . $files[$cnt] && $files[$cnt] !~ /^\./ && $files[$cnt] ne ".svn" ) { $filename = $files[$cnt]; $found = 0; for ( $x = 0 ; $x <= $#templateset_id ; $x++ ) { @@ -3195,9 +3209,16 @@ } if ( $found != 1) { print "** Found template set: $filename\n"; - print " What is it's name (as shown to your users)? "; + $def = $files[$cnt]; + $def =~ s/_/ /g; + $def = lc($def); + #$def =~ s/(^\w+)/ucfirst $1/eg; + #$def =~ s/(\s+)(\w+)/$1 . ucfirst $2/eg; + $def =~ s/(^\w+)|(\s+)(\w+)/ucfirst $1 . $2 . ucfirst $3/eg; + print " What is it's name (as shown to your users)? [$def]: "; $nm = <STDIN>; - $nm =~ s/[\n\r]//g; + $nm =~ s/^\s+|\s+$|[\n\r]//g; + if ( $nm eq '' ) { $nm = $def; } $templateset_id[ $#templateset_id + 1 ] = $filename; $templateset_name[ $#templateset_name + 1 ] = $nm; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2007-09-18 20:58:19
|
Revision: 12693 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12693&view=rev Author: pdontthink Date: 2007-09-18 13:58:18 -0700 (Tue, 18 Sep 2007) Log Message: ----------- Standardize syntax Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-09-18 20:57:29 UTC (rev 12692) +++ trunk/squirrelmail/config/conf.pl 2007-09-18 20:58:18 UTC (rev 12693) @@ -1554,10 +1554,10 @@ print "SMTP connections?"; if ($smtp_sitewide_user ne '') { $default = 'y'; - print " [Yn]:"; + print " [Y/n]:"; } else { $default = 'n'; - print " [yN]:"; + print " [y/N]:"; } $tmp=<STDIN>; $tmp = trim($tmp); @@ -5139,7 +5139,7 @@ } elsif ($folder_name =~ /[&\*\%]/) { # check for ampersand and list-wildcards print "Folder name contains special UTF7-IMAP characters.\n"; - print "Are you sure that folder name is correct? (yN): "; + print "Are you sure that folder name is correct? (y/N): "; my $tmp = <STDIN>; $tmp = lc(trim($tmp)); if ($tmp =~ /^y$/) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2007-12-16 15:24:27
|
Revision: 12823 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12823&view=rev Author: kink Date: 2007-12-16 07:24:23 -0800 (Sun, 16 Dec 2007) Log Message: ----------- give an error when trying to enable a nonexistent plugin through the conf.pl commandline, thanks Tomas Kuliavas. Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2007-12-16 10:00:29 UTC (rev 12822) +++ trunk/squirrelmail/config/conf.pl 2007-12-16 15:24:23 UTC (rev 12823) @@ -482,9 +482,14 @@ if ( $ARGV[0] eq '--install-plugin' ) { print "Activating plugin " . $ARGV[1] . "\n"; - push @plugins, $ARGV[1]; - save_data(); - exit(0); + if ( -d "../plugins/" . $ARGV[1]) { + push @plugins, $ARGV[1]; + save_data(); + exit(0); + } else { + print "No such plugin.\n"; + exit(1); + } } elsif ( $ARGV[0] eq '--remove-plugin' ) { print "Removing plugin " . $ARGV[1] . "\n"; foreach $plugin (@plugins) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2008-02-20 19:12:35
|
Revision: 12950 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=12950&view=rev Author: pdontthink Date: 2008-02-20 11:12:32 -0800 (Wed, 20 Feb 2008) Log Message: ----------- Fix broken default value for 'save as draft' and fix explanation of 'move to sent' functionality Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2008-02-20 19:11:41 UTC (rev 12949) +++ trunk/squirrelmail/config/conf.pl 2008-02-20 19:12:32 UTC (rev 12950) @@ -649,24 +649,24 @@ print "R Return to Main Menu\n"; } elsif ( $menu == 3 ) { print $WHT. "Folder Defaults\n" . $NRM; - print "1. Default Folder Prefix : $WHT$default_folder_prefix$NRM\n"; - print "2. Show Folder Prefix Option : $WHT$show_prefix_option$NRM\n"; - print "3. Trash Folder : $WHT$trash_folder$NRM\n"; - print "4. Sent Folder : $WHT$sent_folder$NRM\n"; - print "5. Drafts Folder : $WHT$draft_folder$NRM\n"; - print "6. By default, move to trash : $WHT$default_move_to_trash$NRM\n"; - print "7. By default, move to sent : $WHT$default_move_to_sent$NRM\n"; - print "8. By default, save as draft : $WHT$default_save_as_draft$NRM\n"; - print "9. List Special Folders First : $WHT$list_special_folders_first$NRM\n"; - print "10. Show Special Folders Color : $WHT$use_special_folder_color$NRM\n"; - print "11. Auto Expunge : $WHT$auto_expunge$NRM\n"; - print "12. Default Sub. of INBOX : $WHT$default_sub_of_inbox$NRM\n"; - print "13. Show 'Contain Sub.' Option : $WHT$show_contain_subfolders_option$NRM\n"; - print "14. Default Unseen Notify : $WHT$default_unseen_notify$NRM\n"; - print "15. Default Unseen Type : $WHT$default_unseen_type$NRM\n"; - print "16. Auto Create Special Folders : $WHT$auto_create_special$NRM\n"; - print "17. Folder Delete Bypasses Trash : $WHT$delete_folder$NRM\n"; - print "18. Enable /NoSelect folder fix : $WHT$noselect_fix_enable$NRM\n"; + print "1. Default Folder Prefix : $WHT$default_folder_prefix$NRM\n"; + print "2. Show Folder Prefix Option : $WHT$show_prefix_option$NRM\n"; + print "3. Trash Folder : $WHT$trash_folder$NRM\n"; + print "4. Sent Folder : $WHT$sent_folder$NRM\n"; + print "5. Drafts Folder : $WHT$draft_folder$NRM\n"; + print "6. By default, move to trash : $WHT$default_move_to_trash$NRM\n"; + print "7. By default, save sent messages : $WHT$default_move_to_sent$NRM\n"; + print "8. By default, save as draft : $WHT$default_save_as_draft$NRM\n"; + print "9. List Special Folders First : $WHT$list_special_folders_first$NRM\n"; + print "10. Show Special Folders Color : $WHT$use_special_folder_color$NRM\n"; + print "11. Auto Expunge : $WHT$auto_expunge$NRM\n"; + print "12. Default Sub. of INBOX : $WHT$default_sub_of_inbox$NRM\n"; + print "13. Show 'Contain Sub.' Option : $WHT$show_contain_subfolders_option$NRM\n"; + print "14. Default Unseen Notify : $WHT$default_unseen_notify$NRM\n"; + print "15. Default Unseen Type : $WHT$default_unseen_type$NRM\n"; + print "16. Auto Create Special Folders : $WHT$auto_create_special$NRM\n"; + print "17. Folder Delete Bypasses Trash : $WHT$delete_folder$NRM\n"; + print "18. Enable /NoSelect folder fix : $WHT$noselect_fix_enable$NRM\n"; print "\n"; print "R Return to Main Menu\n"; } elsif ( $menu == 4 ) { @@ -1939,11 +1939,12 @@ return $default_move_to_trash; } -# default move to sent +# default move to sent (save sent messages) sub command24b { - print "By default, should messages get moved to the sent folder? You\n"; - print "can specify the default sent folder in option 4. If this is set\n"; - print "to false, messages will get sent and no copy will be made.\n"; + print "By default, should copies of outgoing messages get saved in the\n"; + print "sent folder? You can specify the default sent folder in option 4.\n"; + print "If this is set to false, messages will get sent and no copy will\n"; + print "be made.\n"; print "\n"; print "Sent folder is currently: $sent_folder\n"; print "\n"; @@ -1953,7 +1954,7 @@ } else { $default_value = "n"; } - print "By default, move to sent (y/n) [$WHT$default_value$NRM]: $WHT"; + print "By default, save sent messages (y/n) [$WHT$default_value$NRM]: $WHT"; $new_show = <STDIN>; if ( ( $new_show =~ /^y\n/i ) || ( ( $new_show =~ /^\n/ ) && ( $default_value eq "y" ) ) ) { $default_move_to_sent = 'true'; @@ -1972,7 +1973,7 @@ print "Drafts folder is currently: $draft_folder\n"; print "\n"; - if ( lc($default_move_to_draft) eq 'true' ) { + if ( lc($default_save_as_draft) eq 'true' ) { $default_value = "y"; } else { $default_value = "n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2008-03-15 08:55:44
|
Revision: 13041 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=13041&view=rev Author: pdontthink Date: 2008-03-15 01:55:42 -0700 (Sat, 15 Mar 2008) Log Message: ----------- Add ability to show plugin list in columns. This should probably be adapted to other lists like skins, themes, whatever. The new column generator function is generic enough to accomodate, but the code that generates the UI for things like skins is not so well designed methinks. Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2008-03-14 20:38:54 UTC (rev 13040) +++ trunk/squirrelmail/config/conf.pl 2008-03-15 08:55:42 UTC (rev 13041) @@ -543,6 +543,11 @@ $config_use_color = 2; } +# lists can be printed in more than one column; default is just one +# +$columns = 1; +$screen_width = 80; + while ( ( $command ne "q" ) && ( $command ne "Q" ) && ( $command ne ":q" ) ) { clear_screen(); print $WHT. "SquirrelMail Configuration : " . $NRM; @@ -733,14 +738,18 @@ print $WHT. "Plugins\n" . $NRM; } print " Installed Plugins\n"; - $num = 0; - for ( $count = 0 ; $count <= $#plugins ; $count++ ) { - $num = $count + 1; - $english_name = get_plugin_english_name($plugins[$count]); - if ( $english_name eq "" ) { - print " $num. $plugins[$count]" . get_plugin_version($plugins[$count]) . "\n"; - } else { - print " $num. $english_name ($plugins[$count])" . get_plugin_version($plugins[$count]) . "\n"; + if ($columns > 1) { + $num = print_multi_col_list(1, $columns, $screen_width, 1, @plugins); + } else { + $num = 0; + for ( $count = 0 ; $count <= $#plugins ; $count++ ) { + $num = $count + 1; + $english_name = get_plugin_english_name($plugins[$count]); + if ( $english_name eq "" ) { + print " $WHT$num.$NRM $plugins[$count]" . get_plugin_version($plugins[$count]) . "\n"; + } else { + print " $WHT$num.$NRM $english_name ($plugins[$count])" . get_plugin_version($plugins[$count]) . "\n"; + } } } print "\n Available Plugins:\n"; @@ -763,13 +772,17 @@ } } - for ( $i = 0 ; $i <= $#unused_plugins ; $i++ ) { - $num = $num + 1; - $english_name = get_plugin_english_name($unused_plugins[$i]); - if ( $english_name eq "" ) { - print " $num. $unused_plugins[$i]" . get_plugin_version($unused_plugins[$i]) . "\n"; - } else { - print " $num. $english_name ($unused_plugins[$i])" . get_plugin_version($unused_plugins[$i]) . "\n"; + if ($columns > 1) { + $num = print_multi_col_list($num + 1, $columns, $screen_width, 1, @unused_plugins); + } else { + for ( $i = 0 ; $i <= $#unused_plugins ; $i++ ) { + $num = $num + 1; + $english_name = get_plugin_english_name($unused_plugins[$i]); + if ( $english_name eq "" ) { + print " $WHT$num.$NRM $unused_plugins[$i]" . get_plugin_version($unused_plugins[$i]) . "\n"; + } else { + print " $WHT$num.$NRM $english_name ($unused_plugins[$i])" . get_plugin_version($unused_plugins[$i]) . "\n"; + } } } closedir DIR; @@ -784,6 +797,8 @@ } print "U Set the user for whom plugins can be disabled\n"; print "R Return to Main Menu\n"; + print "C# List plugins in <#> number of columns\n"; + print "W# Change screen width to <#>\n"; } elsif ( $menu == 9 ) { print $WHT. "Database\n" . $NRM; print "1. DSN for Address Book : $WHT$addrbook_dsn$NRM\n"; @@ -802,28 +817,28 @@ print "\n"; print "R Return to Main Menu\n"; } elsif ( $menu == 10 ) { - print $WHT. "Language settings\n" . $NRM; - print "1. Default Language : $WHT$squirrelmail_default_language$NRM\n"; - print "2. Default Charset : $WHT$default_charset$NRM\n"; - print "3. Show alternative language names : $WHT$show_alternative_names$NRM\n"; - print "4. Enable aggressive decoding : $WHT$aggressive_decoding$NRM\n"; - print "5. Enable lossy encoding : $WHT$lossy_encoding$NRM\n"; - print "\n"; + print $WHT. "Language settings\n" . $NRM; + print "1. Default Language : $WHT$squirrelmail_default_language$NRM\n"; + print "2. Default Charset : $WHT$default_charset$NRM\n"; + print "3. Show alternative language names : $WHT$show_alternative_names$NRM\n"; + print "4. Enable aggressive decoding : $WHT$aggressive_decoding$NRM\n"; + print "5. Enable lossy encoding : $WHT$lossy_encoding$NRM\n"; + print "\n"; print "R Return to Main Menu\n"; } elsif ( $menu == 11 ) { - print $WHT. "Interface tweaks\n" . $NRM; - print "1. Display html mails in iframe : $WHT$use_iframe$NRM\n"; - print "2. Ask user info on first login : $WHT$ask_user_info$NRM\n"; - print "\n"; - print $WHT. "PHP tweaks\n" . $NRM; - print "4. Use php recode functions : $WHT$use_php_recode$NRM\n"; - print "5. Use php iconv functions : $WHT$use_php_iconv$NRM\n"; - print "\n"; - print $WHT. "Configuration tweaks\n" . $NRM; - print "6. Allow remote configtest : $WHT$allow_remote_configtest$NRM\n"; - print "7. Debug mode : $WHT$sm_debug_mode$NRM\n"; - print "8. Secured configuration mode : $WHT$secured_config$NRM\n"; - print "\n"; + print $WHT. "Interface tweaks\n" . $NRM; + print "1. Display html mails in iframe : $WHT$use_iframe$NRM\n"; + print "2. Ask user info on first login : $WHT$ask_user_info$NRM\n"; + print "\n"; + print $WHT. "PHP tweaks\n" . $NRM; + print "4. Use php recode functions : $WHT$use_php_recode$NRM\n"; + print "5. Use php iconv functions : $WHT$use_php_iconv$NRM\n"; + print "\n"; + print $WHT. "Configuration tweaks\n" . $NRM; + print "6. Allow remote configtest : $WHT$allow_remote_configtest$NRM\n"; + print "7. Debug mode : $WHT$sm_debug_mode$NRM\n"; + print "8. Secured configuration mode : $WHT$secured_config$NRM\n"; + print "\n"; print "R Return to Main Menu\n"; } if ( $config_use_color == 1 ) { @@ -866,6 +881,8 @@ $WHT = "\x1B[37;1m"; $NRM = "\x1B[0m"; } + } elsif ( $command =~ /^w([0-9]+)/ ) { + $screen_width = $1; } elsif ( $command eq "d" && $menu == 0 ) { set_defaults(); } else { @@ -967,10 +984,11 @@ } elsif ( $menu == 7 ) { if ( $command == 1 ) { $motd = command71(); } } elsif ( $menu == 8 ) { - if ( $command =~ /^[0-9]+/ ) { @plugins = command81(); } - elsif ( $command eq "u" ) { $disable_plugins_user = command82(); } - elsif ( $command eq "d" ) { $disable_plugins = 'true'; } - elsif ( $command eq "e" ) { $disable_plugins = 'false'; } + if ( $command =~ /^[0-9]+/ ) { @plugins = command81(); } + elsif ( $command eq "u" ) { $disable_plugins_user = command82(); } + elsif ( $command eq "d" ) { $disable_plugins = 'true'; } + elsif ( $command eq "e" ) { $disable_plugins = 'false'; } + elsif ( $command =~ /^c([0-9]+)/ ) { $columns = $1; } } elsif ( $menu == 9 ) { if ( $command == 1 ) { $addrbook_dsn = command91(); } elsif ( $command == 2 ) { $addrbook_table = command92(); } @@ -5687,3 +5705,87 @@ return $new_debug_mode; } + +# Function to print n column numbered lists +# +# WARNING: the names in the list will be truncated +# to fit in their respective columns based on the +# screen width and number of columns. +# +# Expected arguments (in this order): +# +# * The start number to use for the list +# * The number of columns to use +# * The screen width +# * Boolean (zero/one), indicating +# whether or not to show item numbers +# * The list of strings to be shown +# +# Returns: The number printed on screen of the last item in the list +# +sub print_multi_col_list { + my ($num, $cols, $screen_width, $show_numbering, @list) = @_; + my $x; + my $col_cnt = 0; + my $row_cnt = 0; + my $rows; + my $col_width; + my $total = 0; + my @layout = (); + my @numbers = (); + + $rows = int(@list / $cols); + if (@list % $cols) { $rows++; } + if ($show_numbering) { $col_width = int(($screen_width - 2) / $cols) - 5; } + else { $col_width = int(($screen_width - 2) / $cols) - 2; } + + # build the layout array so numbers run down each column + # + for ( $x = 0; $x < @list; $x++ ) { + + $layout[$row_cnt][$col_cnt] = $list[$x]; + $numbers[$row_cnt][$col_cnt] = $num++; + + # move to next column + # + if ($row_cnt == $rows - 1) { + $row_cnt = 0; + $col_cnt++; + } + else { $row_cnt++; } + + } + + # if we filled up fewer rows than needed, recalc column width + # + if ($rows * $col_cnt == @list) { $col_cnt--; } # loop above ended right after increment + if ($col_cnt + 1 < $cols) { + if ($show_numbering) { $col_width = int(($screen_width - 2) / ($col_cnt + 1)) - 5; } + else { $col_width = int(($screen_width - 2) / ($col_cnt + 1)) - 2; } + } + + # print it + # iterate rows + # + for ( $row_cnt = 0; $row_cnt <= $rows; $row_cnt++ ) { + + # indent the row + # + print " "; + + # iterate columns for this row + # + for ( $col_cnt = 0; $col_cnt <= $cols; $col_cnt++ ) { + if ($layout[$row_cnt][$col_cnt]) { + print " "; + if ($show_numbering) { printf "$WHT% 2u.$NRM", $numbers[$row_cnt][$col_cnt]; } + printf " %-$col_width." . $col_width . "s", $layout[$row_cnt][$col_cnt]; + } + } + print "\n"; + } + + + return $num - 1; +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pdo...@us...> - 2008-03-18 01:30:53
|
Revision: 13042 http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=13042&view=rev Author: pdontthink Date: 2008-03-17 18:30:50 -0700 (Mon, 17 Mar 2008) Log Message: ----------- Get screen width dynamically if possible Modified Paths: -------------- trunk/squirrelmail/config/conf.pl Modified: trunk/squirrelmail/config/conf.pl =================================================================== --- trunk/squirrelmail/config/conf.pl 2008-03-15 08:55:42 UTC (rev 13041) +++ trunk/squirrelmail/config/conf.pl 2008-03-18 01:30:50 UTC (rev 13042) @@ -546,8 +546,21 @@ # lists can be printed in more than one column; default is just one # $columns = 1; -$screen_width = 80; +# try to get screen width dynamically if possible; default to 80 +# (user can override with "w#" command) +# +eval { require "sys/ioctl.ph" }; +if ($@ + || !defined &TIOCGWINSZ + || !open(TTY, "+</dev/tty") + || !ioctl(TTY, &TIOCGWINSZ, $winsize='')) { + $screen_width = 80; +} else { + ($row, $col, $xpixel, $ypixel) = unpack('S4', $winsize); + $screen_width = $col; +} + while ( ( $command ne "q" ) && ( $command ne "Q" ) && ( $command ne ":q" ) ) { clear_screen(); print $WHT. "SquirrelMail Configuration : " . $NRM; @@ -798,7 +811,7 @@ print "U Set the user for whom plugins can be disabled\n"; print "R Return to Main Menu\n"; print "C# List plugins in <#> number of columns\n"; - print "W# Change screen width to <#>\n"; + print "W# Change screen width to <#> (currently $screen_width)\n"; } elsif ( $menu == 9 ) { print $WHT. "Database\n" . $NRM; print "1. DSN for Address Book : $WHT$addrbook_dsn$NRM\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Fredrik J. <jer...@sq...> - 2007-02-03 09:50:41
|
> +# FIXME: grep the file instead of reading it into memory? Not as in a grep from the shell I hope. Will that really work in Windows? Sincerely, Fredrik |
From: Paul L. <pa...@sq...> - 2007-02-04 09:07:42
|
On 2/3/07, Fredrik Jervfors <jer...@sq...> wrote: > > +# FIXME: grep the file instead of reading it into memory? > > Not as in a grep from the shell I hope. Will that really work in Windows? No, you are right (that's one reason why I didn't do it). I used to spend lots of time in Perl, but it's been a while, and it just seemed like there would be some better Perl that does it in a more efficient manner than reading the whole file into memory -- not necessarily a call out to system grep.... but left for an exercise for some other time. For me, the code seems highly inefficient, but considering the application, that's not that important, and I was surprised to see it actually runs rather fast anyway. Cheers, Paul |