You can subscribe to this list here.
2003 |
Jan
|
Feb
(160) |
Mar
(119) |
Apr
(111) |
May
(118) |
Jun
(101) |
Jul
(304) |
Aug
(113) |
Sep
(140) |
Oct
(137) |
Nov
(87) |
Dec
(122) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(78) |
Feb
(125) |
Mar
(131) |
Apr
(59) |
May
(121) |
Jun
(166) |
Jul
(150) |
Aug
(137) |
Sep
(73) |
Oct
(58) |
Nov
(27) |
Dec
(60) |
2005 |
Jan
(131) |
Feb
(84) |
Mar
(36) |
Apr
(8) |
May
(28) |
Jun
(20) |
Jul
(10) |
Aug
(72) |
Sep
(76) |
Oct
(34) |
Nov
(3) |
Dec
(29) |
2006 |
Jan
(13) |
Feb
(92) |
Mar
(7) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(17) |
Sep
(5) |
Oct
(2) |
Nov
(8) |
Dec
(12) |
2007 |
Jan
(28) |
Feb
(15) |
Mar
|
Apr
|
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(8) |
Sep
(20) |
Oct
(38) |
Nov
(65) |
Dec
(92) |
2008 |
Jan
(21) |
Feb
(56) |
Mar
(27) |
Apr
(174) |
May
(25) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <jgr...@us...> - 2003-02-27 00:40:19
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv24532/Classifier Modified Files: Bayes.pm Log Message: Walk through and make sure that everytime we use a variable inside a regular expression we surround it with \Q and \E to prevent special characters inside the variable Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.103 retrieving revision 1.104 diff -C2 -d -r1.103 -r1.104 *** Bayes.pm 24 Feb 2003 23:40:19 -0000 1.103 --- Bayes.pm 27 Feb 2003 00:40:12 -0000 1.104 *************** *** 290,299 **** if ( $word ne '' ) { ! $word =~ /^(.)/; ! my $i = ord($1); ! $self->{matrix}{$bucket}[$i] = '' if ( !defined($self->{matrix}{$bucket}[$i]) ); ! $self->{matrix}{$bucket}[$i] .= "|$word $value|" if ( ( $self->{matrix}{$bucket}[$i] =~ s/\|\Q$word\E (L?[\-\.\d]+)\|/\|$word $value\|/ ) == 0 ); ! } } --- 290,299 ---- if ( $word ne '' ) { ! $word =~ /^(.)/; ! my $i = ord($1); ! $self->{matrix}{$bucket}[$i] = '' if ( !defined($self->{matrix}{$bucket}[$i]) ); ! $self->{matrix}{$bucket}[$i] .= "|$word $value|" if ( ( $self->{matrix}{$bucket}[$i] =~ s/\|\Q$word\E (L?[\-\.\d]+)\|/\|$word $value\|/ ) == 0 ); ! } } *************** *** 373,381 **** update_constants($self); ! # unclassified will always have the color black, note that unclassified is not ! # actually a bucket ! ! $self->{colors}{unclassified} = 'black'; ! print "Corpus loaded with $self->{full_total} entries\n" if $self->{debug}; } --- 373,381 ---- update_constants($self); ! # unclassified will always have the color black, note that unclassified is not ! # actually a bucket ! ! $self->{colors}{unclassified} = 'black'; ! print "Corpus loaded with $self->{full_total} entries\n" if $self->{debug}; } *************** *** 429,448 **** if ( /^([^ ]+) (.+)$/ ) { ! my $type = $1; ! my $value = $2; ! $value =~ s/\\(\?|\*|\||\(|\)|\[|\]|\{|\}|\^|\$|\.)/$1/g; $self->{magnets}{$bucket}{$type}{$value} = 1; } else { ! # This branch is used to catch the original magnets in an ! # old version of POPFile that were just there for from ! # addresses only ! if ( /^(.+)$/ ) { ! my $value = $1; ! $value =~ s/\\(\?|\*|\||\(|\)|\[|\]|\{|\}|\^|\$|\.)/$1/g; ! $self->{magnets}{$bucket}{from}{$1} = 1; ! } } } --- 429,448 ---- if ( /^([^ ]+) (.+)$/ ) { ! my $type = $1; ! my $value = $2; ! $value =~ s/\\(\?|\*|\||\(|\)|\[|\]|\{|\}|\^|\$|\.)/$1/g; $self->{magnets}{$bucket}{$type}{$value} = 1; } else { ! # This branch is used to catch the original magnets in an ! # old version of POPFile that were just there for from ! # addresses only ! if ( /^(.+)$/ ) { ! my $value = $1; ! $value =~ s/\\(\?|\*|\||\(|\)|\[|\]|\{|\}|\^|\$|\.)/$1/g; ! $self->{magnets}{$bucket}{from}{$1} = 1; ! } } } *************** *** 538,544 **** for my $type (sort keys %{$self->{magnets}{$bucket}}) { ! # You cannot use @ or $ inside a \Q\E regular expression and hence ! # we have to change the $magnet and the text we are comparing against ! # by changing the $ and @ signs to . my $noattype; --- 538,544 ---- for my $type (sort keys %{$self->{magnets}{$bucket}}) { ! # You cannot use @ or $ inside a \Q\E regular expression and hence ! # we have to change the $magnet and the text we are comparing against ! # by changing the $ and @ signs to . my $noattype; *************** *** 547,551 **** $noattype =~ s/[@\$]/\./g; ! for my $magnet (sort keys %{$self->{magnets}{$bucket}{$type}}) { my $regex; --- 547,551 ---- $noattype =~ s/[@\$]/\./g; ! for my $magnet (sort keys %{$self->{magnets}{$bucket}{$type}}) { my $regex; *************** *** 699,703 **** if ( ( $total != 0 ) && ( $score{$ranking[0]} > log($self->{unclassified} * $total) ) ) { ! $class = $ranking[0]; } --- 699,703 ---- if ( ( $total != 0 ) && ( $score{$ranking[0]} > log($self->{unclassified} * $total) ) ) { ! $class = $ranking[0]; } *************** *** 761,775 **** while ( <$mail> ) { my $line; ! my $fileline; $line = $_; ! # This is done so that we remove the network style end of line CR LF ! # and allow Perl to decide on the local system EOL which it will expand ! # out of \n when this gets written to the temp file ! ! $fileline = $line; ! $fileline =~ s/[\r\n]//g; ! $fileline .= "\n"; # Check for an abort --- 761,775 ---- while ( <$mail> ) { my $line; ! my $fileline; $line = $_; ! # This is done so that we remove the network style end of line CR LF ! # and allow Perl to decide on the local system EOL which it will expand ! # out of \n when this gets written to the temp file ! ! $fileline = $line; ! $fileline =~ s/[\r\n]//g; ! $fileline .= "\n"; # Check for an abort *************** *** 835,839 **** if ( $self->{configuration}->{configuration}{subject} ) { # Don't add the classification unless it is not present ! if ( !( $msg_subject =~ /\[$classification\]/ ) && ( $self->{parameters}{$classification}{subject} == 1 ) && ( $self->{parameters}{$classification}{quarantine} == 0 ) ) { --- 835,839 ---- if ( $self->{configuration}->{configuration}{subject} ) { # Don't add the classification unless it is not present ! if ( !( $msg_subject =~ /\[\Q$classification\E\]/ ) && ( $self->{parameters}{$classification}{subject} == 1 ) && ( $self->{parameters}{$classification}{quarantine} == 0 ) ) { *************** *** 852,856 **** # Add the XTC header $msg_head_after .= "X-Text-Classification: $classification$eol" if ( ( $self->{configuration}->{configuration}{xtc} ) && ! ( $self->{parameters}{$classification}{quarantine} == 0 ) ); # Add the XPL header --- 852,856 ---- # Add the XTC header $msg_head_after .= "X-Text-Classification: $classification$eol" if ( ( $self->{configuration}->{configuration}{xtc} ) && ! ( $self->{parameters}{$classification}{quarantine} == 0 ) ); # Add the XPL header *************** *** 881,891 **** print $client "To: $self->{parser}->{to}$eol"; print $client "Date: $self->{parser}->{date}$eol"; ! if ( $self->{configuration}->{configuration}{subject} ) { ! # Don't add the classification unless it is not present ! if ( !( $msg_subject =~ /\[$classification\]/ ) && ! ( $self->{parameters}{$classification}{subject} == 1 ) ) { ! $msg_subject = " [$classification]$msg_subject"; ! } ! } print $client "Subject:$msg_subject$eol"; print $client "X-Text-Classification: $classification$eol" if ( $self->{configuration}->{configuration}{xtc} ); --- 881,891 ---- print $client "To: $self->{parser}->{to}$eol"; print $client "Date: $self->{parser}->{date}$eol"; ! if ( $self->{configuration}->{configuration}{subject} ) { ! # Don't add the classification unless it is not present ! if ( !( $msg_subject =~ /\[\Q$classification\E\]/ ) && ! ( $self->{parameters}{$classification}{subject} == 1 ) ) { ! $msg_subject = " [$classification]$msg_subject"; ! } ! } print $client "Subject:$msg_subject$eol"; print $client "X-Text-Classification: $classification$eol" if ( $self->{configuration}->{configuration}{xtc} ); |
From: <jgr...@us...> - 2003-02-27 00:20:15
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv18469 Modified Files: installer.nsi Log Message: Make the uninstaller ask you to confirm that you want to uninstall before starting; include the change notes in the installer Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** installer.nsi 27 Feb 2003 00:05:17 -0000 1.31 --- installer.nsi 27 Feb 2003 00:20:05 -0000 1.32 *************** *** 16,19 **** --- 16,20 ---- !define MUI_UNINSTALLER + !define MUI_UNCONFIRMPAGE !define MUI_CUSTOMPAGECOMMANDS *************** *** 140,143 **** --- 141,145 ---- SetOutPath $INSTDIR + File "..\engine\v0.18.1.change" File "..\engine\*.pl" File "..\engine\pix.gif" *************** *** 509,512 **** --- 511,515 ---- Delete $INSTDIR\*.exe Delete $INSTDIR\*.dll + Delete $INSTDIR\*.change Delete $INSTDIR\popfile.cfg |
From: <jgr...@us...> - 2003-02-27 00:05:22
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv13286 Modified Files: installer.nsi ioB.ini Log Message: Remove references to Microsoft Outlook since we only currently support Outlook Express configuration modification: Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** installer.nsi 26 Feb 2003 20:54:10 -0000 1.30 --- installer.nsi 27 Feb 2003 00:05:17 -0000 1.31 *************** *** 52,56 **** Page custom SetOptionsPage ": Options" !insertmacro MUI_PAGECOMMAND_INSTFILES ! Page custom SetOutlookOrOutlookExpressPage ": Configure Outlook or Outlook Express" !insertmacro MUI_PAGECOMMAND_FINISH --- 52,56 ---- Page custom SetOptionsPage ": Options" !insertmacro MUI_PAGECOMMAND_INSTFILES ! Page custom SetOutlookOrOutlookExpressPage ": Configure Outlook Express" !insertmacro MUI_PAGECOMMAND_FINISH *************** *** 327,331 **** FunctionEnd ! ; This function is used to reconfigure Outlook or Outlook Express accounts Function SetOutlookOrOutlookExpressPage --- 327,331 ---- FunctionEnd ! ; This function is used to reconfigure Outlook Express accounts Function SetOutlookOrOutlookExpressPage *************** *** 396,400 **** StrCmp $R6 "127.0.0.1" next_acct_increment ! !insertmacro MUI_HEADER_TEXT "Reconfigure Outlook or Outlook Express" "POPFile can reconfigure Outlook or Outlook Express for you" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 --- 396,400 ---- StrCmp $R6 "127.0.0.1" next_acct_increment ! !insertmacro MUI_HEADER_TEXT "Reconfigure Outlook Express" "POPFile can reconfigure Outlook Express for you" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 Index: ioB.ini =================================================================== RCS file: /cvsroot/popfile/windows/ioB.ini,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ioB.ini 26 Feb 2003 04:08:41 -0000 1.3 --- ioB.ini 27 Feb 2003 00:05:18 -0000 1.4 *************** *** 5,9 **** [Field 1] Type=label ! Text=POPFile has detected the following Outlook or Outlook Express email account and can automatically configure it to work with POPFile Left=0 Right=-1 --- 5,9 ---- [Field 1] Type=label ! Text=POPFile has detected the following Outlook Express email account and can automatically configure it to work with POPFile Left=0 Right=-1 |
From: <jgr...@us...> - 2003-02-27 00:01:00
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv11450/UI Modified Files: HTML.pm Log Message: Fix a bug where remove_mail_files was passing in the name of cls files to history_delete_file which would cause a warning about an uninitialized variable Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.92 retrieving revision 1.93 diff -C2 -d -r1.92 -r1.93 *** HTML.pm 25 Feb 2003 06:56:45 -0000 1.92 --- HTML.pm 27 Feb 2003 00:00:50 -0000 1.93 *************** *** 65,76 **** # The subkeys are # ! # cull Used internally by load_history_cache (see there for details) # from The address the email was from ! # short_from Version of from with max 40 characters ! # subject The subject of the email ! # short_subject Version of subject with max 40 characters ! # magnet If a magnet was used to classify the mail contains the magnet string ! # bucket The classification of the mail ! # reclassified 1 if the mail has already been reclassified # # The history_keys array stores the list of keys in the history hash and are a --- 65,76 ---- # The subkeys are # ! # cull Used internally by load_history_cache (see there for details) # from The address the email was from ! # short_from Version of from with max 40 characters ! # subject The subject of the email ! # short_subject Version of subject with max 40 characters ! # magnet If a magnet was used to classify the mail contains the magnet string ! # bucket The classification of the mail ! # reclassified 1 if the mail has already been reclassified # # The history_keys array stores the list of keys in the history hash and are a *************** *** 2776,2780 **** ( defined( $self->{form}{clearall} ) ) || ( defined( $self->{form}{clearpage} ) ) ); - my $body = ''; --- 2776,2779 ---- *************** *** 3370,3374 **** if ( $self->{today} > $yesterday ) { ! my @mail_files = glob "$self->{configuration}->{configuration}{msgdir}popfile*=*.???"; foreach my $mail_file (@mail_files) { --- 3369,3373 ---- if ( $self->{today} > $yesterday ) { ! my @mail_files = glob "$self->{configuration}->{configuration}{msgdir}popfile*=*.msg"; foreach my $mail_file (@mail_files) { *************** *** 3416,3420 **** my ( $self, $mail_file, $archive ) = @_; ! $mail_file =~ /(popfile.+\=.+\.msg)$/; $mail_file = $1; --- 3415,3419 ---- my ( $self, $mail_file, $archive ) = @_; ! $mail_file =~ /(popfile.+\=.+\.msg)/; $mail_file = $1; |
From: <jgr...@us...> - 2003-02-26 20:54:17
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv18418 Modified Files: installer.nsi Log Message: Update to the installer to make it show the Identity name for Outlook Express to make it easier to identify which account is being reconfigured; updated the version number to RC2 Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** installer.nsi 26 Feb 2003 19:48:41 -0000 1.29 --- installer.nsi 26 Feb 2003 20:54:10 -0000 1.30 *************** *** 4,8 **** ; Modified to work with NSIS v2.0b1 !define MUI_PRODUCT "POPFile" ! !define MUI_VERSION "0.18.1 RC1" !include "MUI.nsh" ;-------------------------------- --- 4,8 ---- ; Modified to work with NSIS v2.0b1 !define MUI_PRODUCT "POPFile" ! !define MUI_VERSION "0.18.1 RC2" !include "MUI.nsh" ;-------------------------------- *************** *** 331,350 **** Function SetOutlookOrOutlookExpressPage ! ; In Outlook Express (v5.0 or later) the email account data may appear in ! ; more than one place, depending upon how Outlook Express has been configured. ! ; First we check the "Main Identity" (also known as the "Default Identity") ! ; which is created when Outlook Express is installed. Note that this identity ! ; may no longer be active, as users are free to delete it after creating ! ; an additional identity and switching to the new one. ! ; The Outlook Express "Main Identity" does not use an "identity number" ! StrCpy ${OEIDENT} "" ! Call CheckOutlookExpressAccounts ! ; Now we have to check if any additional identities have been created in ! ; Outlook Express. These identities are kept in HKEY_CURRENT_USER\Identities. ! ; If we find any extra identities, we need to see if any of them have email ! ; accounts we can reconfigure for use with POPFile. StrCpy ${OEID} 0 --- 331,360 ---- Function SetOutlookOrOutlookExpressPage ! ; More than one "identity" can be created in OE. Each of these identities is ! ; given a GUID and these GUIDs are stored in HKEY_CURRENT_USER\Identities. ! ; Each identity can have several email accounts and the details for these ! ; accounts are grouped according to the GUID which "owns" the accounts. ! ; When OE is first installed it creates a default identity which is given the ! ; name "Main Identity". Although there is a GUID for this default identity, ! ; OE stores the email account data for this account in a different location ! ; from that of any extra identities which are created by the user. ! ; We step through every identity defined in HKEY_CURRENT_USER\Identities and ! ; for each one found check its OE email account data. If an identity with ! ; an "Identity Ordinal" value of 1 is found, we need to look in the area ! ; dedicated to the initial "Main Identity", otherwise we look for email ! ; account data in that GUID's entry in HKEY_CURRENT_USER\Identities. ! ; The email account data for all identities, although stored in different ! ; locations, uses the same structure. The "path" for each identity starts ! ; with "HKEY_CURRENT_USER\" and ends with "\Internet Account Manager\Accounts". ! ! ; All of the OE account data for an identity appears "under" the path defined ! ; above, e.g. if an identity has more than three accounts they are found here: ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000001 ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000002 ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000003 ! ; etc StrCpy ${OEID} 0 *************** *** 356,388 **** StrCmp ${ID} "" finished_oe ! ; Now check all of the accounts for this particular identity ! StrCpy ${OEIDENT} "Identities\${ID}\" ! Call CheckOutlookExpressAccounts ! ! ; Now move on to the next identity ! IntOp ${OEID} ${OEID} + 1 ! goto next_id ! ! finished_oe: ! FunctionEnd ! ! ; This function checks all the accounts for a particular Outlook Express identity ! ! Function CheckOutlookExpressAccounts ! ! ; Called by SetOutLookExpressPage to check all of the accounts for a given ! ; Outlook Express identity: either the "Main Identity", when ${OEIDENT} is ! ; a null string (""), or one of the "Additional Identities", when ${OEIDENT} ! ; is a string such as "Identities\{AB734464-478F-11D7-81C3-00409545B64C}\" ! ; The email account data for all identities, although stored in different ! ; locations, uses the same structure. The "path" for each identity starts ! ; with "HKEY_CURRENT_USER\" and ends with "\Internet Account Manager\Accounts". ! ; OE account data for each identity appears "under" the path defined above, e.g. ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000001 ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000002 ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000003 ! ; etc StrCpy $R1 0 --- 366,382 ---- StrCmp ${ID} "" finished_oe ! ; Check if this is the GUID for the first "Main Identity" created by OE as the ! ; account data for this identity is stored separately from the other identities. ! ReadRegDWORD $R4 HKCU "Identities\${ID}" "Identity Ordinal" ! StrCmp $R4 "1" firstID otherID ! firstID: ! StrCpy ${OEIDENT} "" ! goto checkID ! otherID: ! StrCpy ${OEIDENT} "Identities\${ID}\" ! checkID: ! ; Now check all of the accounts for this particular identity StrCpy $R1 0 *************** *** 405,408 **** --- 399,409 ---- !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 + + ; Find the Username used by OE for this identity and the OE Account Name + ; (so we can unambiguously report which email account we are offering + ; to reconfigure). + + ReadRegStr $R7 HKCU "Identities\${ID}\" "Username" + StrCpy $R7 $\"$R7$\" ReadRegStr $R6 HKCU $R5 "SMTP Email Address" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 7" "Text" $R6 *************** *** 410,414 **** !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 9" "Text" $R6 ReadRegStr $R6 HKCU $R5 "Account Name" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 10" "Text" $R6 Push $R0 InstallOptions::dialog $PLUGINSDIR\ioB.ini --- 411,416 ---- !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 9" "Text" $R6 ReadRegStr $R6 HKCU $R5 "Account Name" ! StrCpy $R6 $\"$R6$\" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 10" "Text" "$R6 account for the $R7 identity" Push $R0 InstallOptions::dialog $PLUGINSDIR\ioB.ini *************** *** 452,455 **** --- 454,463 ---- finished_this_id: + ; Now move on to the next identity + IntOp ${OEID} ${OEID} + 1 + goto next_id + + finished_oe: + FunctionEnd |
From: <jgr...@us...> - 2003-02-26 19:48:48
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv4318 Modified Files: installer.nsi Log Message: Update installer to include and remove the GIF files associated with the Lavish and Sleet skins Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** installer.nsi 26 Feb 2003 04:08:41 -0000 1.28 --- installer.nsi 26 Feb 2003 19:48:41 -0000 1.29 *************** *** 285,288 **** --- 285,292 ---- File "..\engine\skins\*.css" File "..\engine\skins\*.gif" + SetOutPath $INSTDIR\skins\lavishImages + File "..\engine\skins\lavishImages\*.gif" + SetOutPath $INSTDIR\skins\sleetImages + File "..\engine\skins\sleetImages\*.gif" SectionEnd *************** *** 538,541 **** --- 542,549 ---- Delete $INSTDIR\skins\*.css Delete $INSTDIR\skins\*.gif + Delete $INSTDIR\skins\lavishImages\*.gif + Delete $INSTDIR\skins\sleetImages\*.gif + RMDir $INSTDIR\skins\sleetImages + RMDir $INSTDIR\skins\lavishImages RMDir $INSTDIR\skins Delete $INSTDIR\manual\en\*.html |
From: <jgr...@us...> - 2003-02-26 19:45:57
|
Update of /cvsroot/popfile/engine/skins In directory sc8-pr-cvs1:/tmp/cvs-serv2441 Added Files: smalldefault.css tinydefault.css Log Message: Couple of additional small/tiny skins based on default --- NEW FILE: smalldefault.css --- H2 { font-size: 14pt; font-weight: normal; } body { background-color: white; border: none; font-family: tahoma, sans-serif; font-size: 8pt; font-weight: normal; color: #000000; margin: 3px; } table.head { font-weight: normal; width: 100%; } .top, .bottom, .borderTopLeft, .borderTop, .borderTopRight, .borderLeft, .borderRight, .borderBottomLeft, .borderBottom, .borderBottomRight { visibility: hidden; display: none; } .head, td.head { font-weight: bold; font-size: 14pt; background-color: #ededca; color: #666666; padding-left: 5px; } .shell, .shellTop { border: 2px #cccc99 solid; background-color: #ededca; color: #000000; margin: 0px; padding: 0px; } .head a { font-size: 12pt; font-weight: normal; } .menu { font-size: 12pt; font-weight: normal; width: 100%; } .menuIndent { width: 5%; } .menuSelected, .menuSelected a { background-color: #cccc99; color: #000000; font-size: 14pt; font-weight: normal; text-decoration: none; } td.menuSelected { border-left: 2px solid #cccc99; border-right: 2px solid #cccc99; border-top: 2px solid #cccc99; padding-left: 2px; padding-right: 2px; margin-left: 2px; margin-right: 2px; width: 15%; } .menuStandard, .menuStandard a { background-color: #ededca; color: #0000ff; font-size: 14pt; font-weight: normal; text-decoration: none; } td.menuStandard { border-left: 2px solid #cccc99; border-right: 2px solid #cccc99; border-top: 2px solid #cccc99; padding-left: 2px; padding-right: 2px; margin-left: 2px; margin-right: 2px; width: 15%; } .menuStandard a:hover { text-decoration: underline; } .rowEven { background-color: #ededca; color: #000000; } .rowOdd { background-color: #cccc99; color: #000000; } .rowEven a, .rowOdd a { text-decoration: none; } .rowEven a:hover, .rowOdd a:hover { color: #000000; background-color: #ffffcc; } tr.rowHighlighted { background-color: #cccc99; color: #eeeeee; } table.settingsTable { border: 1px solid #cccc99; padding: 3px; margin: 0px; } table.openMessageTable, table.lookupResultsTable { border: 2px solid Black; padding: 2px; margin: 0px; } td.settingsPanel { border: 1px solid #cccc99; padding: 3px; margin: 0px; } td.naked { padding: 0px; margin: 0px; border: none } td.accuracy0to49 { background-color: red; color: black; height: 20px; } td.accuracy50to93 { background-color: yellow; color: black; height: 20px; } td.accuracy94to100 { background-color: green; color: black; height: 20px; } div.error01 { background-color: transparent; color: red; font-size: larger; } div.error02 { background-color: transparent; color: red; } td.historyNavigatorTop { text-align: right; padding-right: 5px; } .historyNavigatorTop a:hover, .historyNavigatorBottom a:hover { background-color: #eeeeee; color: #000000; } td.openMessageCloser { text-align: right; background-color: #eeeeee; color: #000000; } .historyLabel { font-weight: normal; font-size: 9pt; text-decoration: none; padding-left: 1px; padding-right: 2px; } .historyLabel em { font-weight: bold; font-style: normal; } a.historyLabel:hover { text-decoration: underline; } .bucketsLabel { font-weight: bold; } .magnetsLabel { font-weight: bold; } .securityLabel { font-weight: bold; } .configurationLabel { font-weight: normal; } .advancedLabel { font-weight: bold; } .passwordLabel { font-weight: bold; } .sessionLabel { font-weight: bold; } table.historyWidgetsTop { width: 100%; border-top: 2px solid #cccc99; border-bottom: 2px solid #cccc99; } table.historyWidgetsTop td { padding-left: 20px; font-weight: bold; } table.historyWidgetsBottom { width: 100%; border-bottom: 2px solid #cccc99; } table.historyWidgetsBottom td { padding-left: 20px; font-weight: bold; } table.footer { width: 100%; background-color: #ededca; color: #666666; border-left: 2px solid #cccc99; border-right: 2px solid #cccc99; border-bottom: 2px solid #cccc99; } td.footerBody { text-align: center; padding-left: 5%; padding-right: 5%; font-size: 8pt; font-weight: bold; } .bottomLink { text-decoration: none; } .bottomLink:hover { background-color: #ffffcc; color: #000000; } input, .submit, select { font-family: tahoma, sans-serif; font-size: 8pt; font-weight: normal; padding: 0px; margin: 0px; } tt { font-family: "lucida console", courier, sans-serif; font-size: 9pt; font-weight: normal; } span.bucketsWidgetState { font-weight: bold; } span.configWidgetState { font-weight: bold; } span.securityWidgetState { font-weight: bold; } --- NEW FILE: tinydefault.css --- H2 { font-size: 12pt; font-weight: normal;} body { background-color: white; border: none; font-family: tahoma, sans-serif; font-size: 8pt; font-weight: normal; color: #000000; margin: 0px;} table.head { font-weight: normal; width: 100%; background-color: #ededca; color: #666666;} .top, .bottom, .borderTopLeft, .borderTop, .borderTopRight, .borderLeft, .borderRight, .borderBottomLeft, .borderBottom, .borderBottomRight { visibility: hidden; display: none;} .head, td.head { font-weight: bold; font-size: 12pt; background-color: #ededca; color: #666666; padding-left: 5px;} .shell, .shellTop { border: 1px #cccc99 solid; background-color: #ededca; color: #000000; margin: 0px; padding: 0px;} .head a { font-size: 10pt; font-weight: normal;} .menu { font-size: 10pt; font-weight: normal; width: 100%;} .menuIndent { width: 5%;} .menuSelected, .menuSelected a { background-color: #cccc99; color: #000000; font-size: 10pt; font-weight: bold; text-decoration: none;} td.menuSelected { border-left: 1px solid #cccc99; border-right: 1px solid #cccc99; border-top: 1px solid #cccc99; padding-left: 1px; padding-right: 1px; margin-left: 1px; margin-right: 1px; width: 15%;} .menuStandard, .menuStandard a { background-color: #ededca; color: #0000ff; font-size: 10pt; font-weight: bold; text-decoration: none;} td.menuStandard { border-left: 1px solid #cccc99; border-right: 1px solid #cccc99; border-top: 1px solid #cccc99; padding-left: 1px; padding-right: 1px; margin-left: 1px; margin-right: 1px; width: 15%;} .menuStandard a:hover { text-decoration: underline;} .rowEven { background-color: #ededca; color: #000000;} .rowOdd { background-color: #cccc99; color: #000000;} .rowEven a, .rowOdd a { text-decoration: none;} .rowEven a:hover, .rowOdd a:hover { color: #000000; background-color: #ffffcc;} tr.rowHighlighted { background-color: #cccc99; color: #eeeeee;} table.settingsTable { border: 1px solid #cccc99; padding: 2px; margin: 0px;} table.openMessageTable, table.lookupResultsTable { border: 1px solid Black; padding: 2px; margin: 0px;} td.settingsPanel { border: 1px solid #cccc99; padding: 2px; margin: 0px;} td.naked { padding: 0px; margin: 0px; border: none} td.accuracy0to49 { background-color: red; color: black; height: 20px;} td.accuracy50to93 { background-color: yellow; color: black; height: 20px;} td.accuracy94to100 { background-color: green; color: black; height: 20px;} div.error01 { background-color: transparent; color: red; font-size: larger;} div.error02 { background-color: transparent; color: red;} td.historyNavigatorTop { text-align: right; padding-right: 2px;} .historyNavigatorTop a:hover, .historyNavigatorBottom a:hover { background-color: #eeeeee; color: #000000;} td.openMessageCloser { text-align: right; background-color: #eeeeee; color: #000000;} .historyLabel { font-size: 9pt; font-weight: normal; text-decoration: none; padding-left: 1px; padding-right: 1px;} .historyLabel em { font-weight: bold; font-style: normal;} a.historyLabel:hover { text-decoration: underline;} .bucketsLabel { font-weight: bold;} .magnetsLabel { font-weight: bold;} .securityLabel { font-weight: bold;} .configurationLabel { font-weight: normal;} .advancedLabel { font-weight: bold;} .passwordLabel { font-weight: bold;} .sessionLabel { font-weight: bold;} table.historyWidgetsTop { width: 100%; border-top: 1px solid #cccc99; border-bottom: 1px solid #cccc99;} table.historyWidgetsTop td { padding-left: 20px; font-weight: bold;} table.historyWidgetsBottom { width: 100%; border-bottom: 2px solid #cccc99;} table.historyWidgetsBottom td { padding-left: 20px; font-weight: bold;} table.footer { width: 100%; background-color: #ededca; color: #666666; border-left: 1px solid #cccc99; border-right: 1px solid #cccc99; border-bottom: 1px solid #cccc99;} td.footerBody { text-align: center; padding-left: 5%; padding-right: 5%; font-size: 8pt; font-weight: bold;} .bottomLink { text-decoration: none;} .bottomLink:hover { background-color: #ffffcc; color: #000000;} input, .submit, select { font-family: tahoma, sans-serif; font-size: 8pt; font-weight: normal; padding: 0px; margin: 0px;} tt { font-family: "lucida console", courier, sans-serif; font-size: 9pt; font-weight: normal; } span.bucketsWidgetState { font-weight: bold; } span.configWidgetState { font-weight: bold; } span.securityWidgetState { font-weight: bold; } |
From: <jgr...@us...> - 2003-02-26 17:39:39
|
Update of /cvsroot/popfile/engine/manual/en In directory sc8-pr-cvs1:/tmp/cvs-serv20350/en Modified Files: email.html Log Message: There were two remaining references to screen shots on the web site when they should have been local Index: email.html =================================================================== RCS file: /cvsroot/popfile/engine/manual/en/email.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** email.html 5 Feb 2003 15:48:47 -0000 1.2 --- email.html 26 Feb 2003 17:39:34 -0000 1.3 *************** *** 145,153 **** <ul> ! <li>In Outlook select the Tools->Email Accounts... menu option. The E-mail Accounts dialog will appear. <a href=http://popfile.sourceforge.net/manual/o_popfile1.gif>[screenshot]</a> <li>Click View or change existing e-mail accounts and click Next. Choose the account you want to use POPFile with and click Change... ! Make a note of the Incoming mail server (POP3) server name and the User Name. <a href=http://popfile.sourceforge.net/manual/o_popfile2.gif>[screenshot]</a> <li>Change the Incoming mail server (POP3) server name to <b>127.0.0.1</b> and change the User Name to the combination of the original --- 145,153 ---- <ul> ! <li>In Outlook select the Tools->Email Accounts... menu option. The E-mail Accounts dialog will appear. <a href=../o_popfile1.gif>[screenshot]</a> <li>Click View or change existing e-mail accounts and click Next. Choose the account you want to use POPFile with and click Change... ! Make a note of the Incoming mail server (POP3) server name and the User Name. <a href=../o_popfile2.gif>[screenshot]</a> <li>Change the Incoming mail server (POP3) server name to <b>127.0.0.1</b> and change the User Name to the combination of the original |
From: <jgr...@us...> - 2003-02-26 17:37:16
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1:/tmp/cvs-serv18931 Modified Files: English.msg Log Message: Small change that makes the filter magnetized and unclassified have no capitals at the start Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** English.msg 24 Feb 2003 23:08:52 -0000 1.21 --- English.msg 26 Feb 2003 17:37:11 -0000 1.22 *************** *** 127,131 **** History_SearchMessage Search From/Subject History_NoMessages No messages ! History_ShowMagnet Magnetized History_Magnet (just showing magnet classified messages) History_ResetSearch Reset --- 127,131 ---- History_SearchMessage Search From/Subject History_NoMessages No messages ! History_ShowMagnet magnetized History_Magnet (just showing magnet classified messages) History_ResetSearch Reset |
From: <jgr...@us...> - 2003-02-26 05:05:32
|
Update of /cvsroot/popfile/engine/POPFile In directory sc8-pr-cvs1:/tmp/cvs-serv32530 Added Files: Module.pm Log Message: Initial commit of the base class that will be used post v0.18.1 for all POPFile Loadable Modules; doing this mainly because my machine is acting up and I don't want to lose work --- NEW FILE: Module.pm --- package POPFile::Module; # --------------------------------------------------------------------------------------------- # # This module implements the base class for all POPFile Loadable Modules and # contains collection of methods that are common to all POPFile modules and only # selected ones need be overriden by subclasses # # POPFile is constructed from a collection of classes which all have special # interface functions: # # initialize() - called after the class is created to set default values for internal # variables and global configuration information # # start() - called once all configuration has been read and POPFile is ready to start # operating # # stop() - called when POPFile is shutting down # # service() - called by the main POPFile process to allow a submodule to do its own # work (this is optional for modules that do not need to perform any service) # # forked() - called when a module has forked the process. This is called within the child # process and should be used to clean up # # reaper() - called when a process has terminated to give a module a chance to do # whatever clean up is needed # # name() - returns a simple name for the module by which other modules can get access # through the %components hash. The name returned here will be the name # used as the key for this module in %components # # A note on the naming # # A method or variable that ends with an underscore is PRIVATE and should not be accessed # from outside the class (or subclass; in C++ its protected), to access a PRIVATE variable # you will find an equivalent getter/setter method with no underscore. # # For example # # $c->foo_() is a private method # $c->{foo_} is a private variable # $c->foo() is a public method that modifies $c->{foo_} it always returns the current # value of the variable it is referencing and if passed a value sets that corresponding # variable # # Copyright (c) 2001-2003 John Graham-Cumming # # --------------------------------------------------------------------------------------------- #---------------------------------------------------------------------------- # new # # Class new() function, all real work gets done by initialize and # the things set up here are more for documentation purposes than # anything so that you know that they exists # #---------------------------------------------------------------------------- sub new { my $type = shift; my $self; # A reference to the POPFile::Configuration module, every module is # able to get configuration information through this, note that it # is valid when initialize is called, however, the configuration is not # read from disk until after initialize has been called $self->{configuration_} = 0; # A reference to the POPFile::Logger module $self->{logger_} = 0; # Used to tell any loops to terminate $self->{alive_} = 1; # This is a reference to the pipeready() function in popfile.pl that it used # to determine if a pipe is ready for reading in a cross platform way $self->{pipeready_} = 0; # This is a reference to a function (forker) in popfile.pl that performs a fork # and informs modules that a fork has occurred $self->{forker_} = 0; return bless $self, $type; } # --------------------------------------------------------------------------------------------- # # initialize # # Called to initialize the module, the main task that this function should perform is # setting up the default values of the configuration options for this object. This is done # through the configuration_ hash value that will point the configuration module. # # Note that the configuration is not loaded from disk until after every module's initialize # has been called, so do not use any of these values until start() is called as they may # change # # The method should return 1 to indicate that it initialized correctly, if it returns # 0 then POPFile will abort loading immediately # # --------------------------------------------------------------------------------------------- sub initialize { my ( $self ) = @_; return 1; } # --------------------------------------------------------------------------------------------- # # start # # Called when all configuration information has been loaded from disk. # # The method should return 1 to indicate that it started correctly, if it returns # 0 then POPFile will abort loading immediately # # --------------------------------------------------------------------------------------------- sub start { my ( $self ) = @_; return 1; } # --------------------------------------------------------------------------------------------- # # stop # # Called when POPFile is closing down, this is the last method that will get called before # the object is destroyed. There is not return value from stop(). # # --------------------------------------------------------------------------------------------- sub stop { my ( $self ) = @_; } # --------------------------------------------------------------------------------------------- # # name # # Called to get the simple name for this module, this is the name use to hook various # module's together in popfile.pl and should be a simple lower case name. This is the only # pure abstract function in POPFile::Module and will abort POPFile immediately if ever # called. # # It should return a string containing the proposed name # # --------------------------------------------------------------------------------------------- sub name { my ( $self ) = @_; # Pure virtual print "\nPOPFile::Module::name called; this function is pure virtual"; exit(1); } # --------------------------------------------------------------------------------------------- # # reaper # # Called when a child process terminates somewhere in POPFile. The object should check # to see if it was one of its children and do any necessary processing by calling waitpid() # on any child handles it has # # There is no return value from this method # # --------------------------------------------------------------------------------------------- sub reaper { my ( $self ) = @_; } # --------------------------------------------------------------------------------------------- # # service # # service() is a called periodically to give the module a chance to do housekeeping work. # # If any problem occurs that requires POPFile to shutdown service() should return 0 and # the top level process will gracefully terminate POPFile including calling all stop() # methods. In normal operation return 1. # # --------------------------------------------------------------------------------------------- sub service { my ( $self ) = @_; return 1; } # --------------------------------------------------------------------------------------------- # # forked # # This is called when some module forks POPFile and is within the context of the child # process so that this module can close any duplicated file handles that are not needed. # # There is no return value from this method # # --------------------------------------------------------------------------------------------- sub forked { my ( $self ) = @_; } # GETTER/SETTER methods. Note that I do not expect documentation of these unless they # are non-trivial since the documentation would be a waste of space # # The only thing to note is the idiom used, stick to that and there's no need to # document these # # sub foo # { # my ( $self, $value ) = @_; # # if ( defined( $value ) ) { # $self->{foo_} = $value; # } # # return $self->{foo_}; # } # # This method access the foo_ variable for reading or writing, $c->foo() read foo_ and # $c->foo( 'foo' ) writes foo_ sub configuration { my ( $self, $value ) = @_; if ( defined( $value ) ) { $self->{configuration_} = $value; } return $self->{configuration_}; } sub forker { my ( $self, $value ) = @_; if ( defined( $value ) ) { $self->{forker_} = $value; } return $self->{forker_}; } sub logger { my ( $self, $value ) = @_; if ( defined( $value ) ) { $self->{logger_} = $value; } return $self->{logger_}; } sub pipeready { my ( $self, $value ) = @_; if ( defined( $value ) ) { $self->{pipeready_} = $value; } return $self->{pipeready_}; } sub alive { my ( $self, $value ) = @_; if ( defined( $value ) ) { $self->{alive_} = $value; } return $self->{alive_}; } 1; |
From: <jgr...@us...> - 2003-02-26 04:35:15
|
Update of /cvsroot/popfile/engine/Proxy In directory sc8-pr-cvs1:/tmp/cvs-serv24019/Proxy Modified Files: POP3.pm Log Message: A user was confused about how toptoo was implemented (a sure sign of bad commenting) so I improved the comment to make it clear Index: POP3.pm =================================================================== RCS file: /cvsroot/popfile/engine/Proxy/POP3.pm,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** POP3.pm 24 Feb 2003 23:08:49 -0000 1.39 --- POP3.pm 26 Feb 2003 04:35:12 -0000 1.40 *************** *** 135,139 **** if ( !defined( $self->{server} ) ) { ! print <<EOM; \nCouldn't start the POP3 proxy because POPFile could not bind to the --- 135,139 ---- if ( !defined( $self->{server} ) ) { ! print <<EOM; \nCouldn't start the POP3 proxy because POPFile could not bind to the *************** *** 145,149 **** EOM ! return 0; } --- 145,149 ---- EOM ! return 0; } *************** *** 234,238 **** if ( $stats_changed ) { ! $self->{ui}->invalidate_history_cache(); $self->{configuration}->save_configuration(); $self->{classifier}->write_parameters(); --- 234,238 ---- if ( $stats_changed ) { ! $self->{ui}->invalidate_history_cache(); $self->{configuration}->save_configuration(); $self->{classifier}->write_parameters(); *************** *** 490,495 **** } ! # Note the horrible hack here where we detect a command of the form TOP x 99999999 this ! # is done so that fetchmail can be used with POPFile. if ( $command =~ /TOP (.*) (.*)/i ) { if ( $2 ne '99999999' ) { --- 490,524 ---- } ! # TOP handling is rather special because we have three cases that we handle ! # ! # 1. If the client sends TOP x 99999999 then it is most likely to be ! # fetchmail and the intent of fetchmail is to actually get the message ! # but for its own reasons it does not use RETR. We use RETR as the clue ! # to place a message in the history, so we have a hack. If the client ! # looks like fetchmail then TOP x 99999999 is actually implemented ! # using RETR ! # ! # 2. The toptoo configuration controls whether email downloaded using the ! # TOP command is classified or not (note that it is *never* placed in ! # the history; with the expection of (1) above). There are two cases: ! # ! # 2a If toptoo is 0 then POPFile will pass a TOP from the client through ! # as a TOP and do no classification on the message. ! # ! # 2b If toptoo is 1 then POPFile first does a RETR on the message without ! # saving it in the history so that it can get the classification on the ! # message which is stores in $class. Then it gets the message again ! # by sending the TOP command and passing the result through ! # classify_and_modify passing in the $class determined above. This means ! # that the message gets the right classification and the client only ! # gets the headers requested plus so many lines of body, but they will ! # get subject modification, and the XTC and XPL headers add. Note that ! # TOP always returns the full headers and then n lines of the body so ! # we are guaranteed to be able to do our header modifications. ! # ! # NOTE using toptoo=1 on a slow link could cause performance problems, ! # it is only intended for use where there is high bandwidth between ! # POPFile and the POP3 server. ! if ( $command =~ /TOP (.*) (.*)/i ) { if ( $2 ne '99999999' ) { |
From: <jgr...@us...> - 2003-02-26 04:08:44
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv13576 Modified Files: installer.nsi ioB.ini Log Message: The installer now restores the values of registry keys that it changes by storing the values in the file popfile.reg and then reading it when uninstalling; changed the text associated with Outlook Express because I have confirmed that the same code will reconfigure Internet email accounts configured in Outlook as well; made this the RC1 installer Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** installer.nsi 26 Feb 2003 02:40:02 -0000 1.27 --- installer.nsi 26 Feb 2003 04:08:41 -0000 1.28 *************** *** 50,56 **** !insertmacro MUI_PAGECOMMAND_COMPONENTS !insertmacro MUI_PAGECOMMAND_DIRECTORY ! Page custom SetOptionsPage "Options" !insertmacro MUI_PAGECOMMAND_INSTFILES ! Page custom SetOutlookExpressPage "Configure Outlook Express" !insertmacro MUI_PAGECOMMAND_FINISH --- 50,56 ---- !insertmacro MUI_PAGECOMMAND_COMPONENTS !insertmacro MUI_PAGECOMMAND_DIRECTORY ! Page custom SetOptionsPage ": Options" !insertmacro MUI_PAGECOMMAND_INSTFILES ! Page custom SetOutlookOrOutlookExpressPage ": Configure Outlook or Outlook Express" !insertmacro MUI_PAGECOMMAND_FINISH *************** *** 261,269 **** WriteINIStr "$SMPROGRAMS\POPFile\Manual.url" \ "InternetShortcut" "URL" "file://$INSTDIR/manual/en/manual.html" SetOutPath $SMPROGRAMS\POPFile\Support WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Home Page.url" \ "InternetShortcut" "URL" "http://popfile.sourceforge.net/" - WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Manual.url" \ - "InternetShortcut" "URL" "http://popfile.sourceforge.net/manual.html" StrCmp ${STARTUP} "1" 0 skip_autostart_set --- 261,269 ---- WriteINIStr "$SMPROGRAMS\POPFile\Manual.url" \ "InternetShortcut" "URL" "file://$INSTDIR/manual/en/manual.html" + WriteINIStr "$SMPROGRAMS\POPFile\FAQ.url" \ + "InternetShortcut" "URL" "http://sourceforge.net/docman/display_doc.php?docid=14421&group_id=63137" SetOutPath $SMPROGRAMS\POPFile\Support WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Home Page.url" \ "InternetShortcut" "URL" "http://popfile.sourceforge.net/" StrCmp ${STARTUP} "1" 0 skip_autostart_set *************** *** 323,329 **** FunctionEnd ! ; This function is used to reconfigure Outlook Express accounts ! Function SetOutlookExpressPage ; In Outlook Express (v5.0 or later) the email account data may appear in --- 323,329 ---- FunctionEnd ! ; This function is used to reconfigure Outlook or Outlook Express accounts ! Function SetOutlookOrOutlookExpressPage ; In Outlook Express (v5.0 or later) the email account data may appear in *************** *** 398,402 **** StrCmp $R6 "127.0.0.1" next_acct_increment ! !insertmacro MUI_HEADER_TEXT "Reconfigure Outlook Express" "POPFile can reconfigure Outlook Express for you" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 --- 398,402 ---- StrCmp $R6 "127.0.0.1" next_acct_increment ! !insertmacro MUI_HEADER_TEXT "Reconfigure Outlook or Outlook Express" "POPFile can reconfigure Outlook or Outlook Express for you" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 *************** *** 421,424 **** --- 421,443 ---- ReadRegStr $R6 HKCU $R5 "POP3 User Name" ReadRegStr $R7 HKCU $R5 "POP3 Server" + + ; To be able to restore the registry to previous settings when we uninstall we + ; write a special file called popfile.reg containing the registry settings + ; prior to modification in the form of lines consisting of + ; + ; the\key + ; thesubkey + ; the\value + + FileOpen ${CFG} $INSTDIR\popfile.reg a + FileSeek ${CFG} 0 END + FileWrite ${CFG} "$R5$\n" + FileWrite ${CFG} "POP3 User Name$\n" + FileWrite ${CFG} "$R6$\n" + FileWrite ${CFG} "$R5$\n" + FileWrite ${CFG} "POP3 Server$\n" + FileWrite ${CFG} "$R7$\n" + FileClose ${CFG} + WriteRegStr HKCU $R5 "POP3 User Name" "$R7:$R6" WriteRegStr HKCU $R5 "POP3 Server" "127.0.0.1" *************** *** 431,434 **** --- 450,476 ---- FunctionEnd + ; TrimNewlines + ; input, top of stack (e.g. whatever$\r$\n) + ; output, top of stack (replaces, with e.g. whatever) + ; modifies no other variables. + + Function un.TrimNewlines + Exch $R0 + Push $R1 + Push $R2 + StrCpy $R1 0 + loop: + IntOp $R1 $R1 - 1 + StrCpy $R2 $R0 1 $R1 + StrCmp $R2 "$\r" loop + StrCmp $R2 "$\n" loop + IntOp $R1 $R1 + 1 + + StrCpy $R0 $R0 $R1 + Pop $R2 + Pop $R1 + Exch $R0 + FunctionEnd + ;-------------------------------- ;Uninstaller Section *************** *** 456,459 **** --- 498,528 ---- Delete $INSTDIR\*.dll Delete $INSTDIR\popfile.cfg + + ; Read the registry settings found in popfile.reg and restore them + ; it there are any. All are assumed to be in HKCU + FileOpen ${CFG} $INSTDIR\popfile.reg r + IfErrors skip_registry_restore + restore_loop: + FileRead ${CFG} $R5 + Push $R5 + Call un.TrimNewlines + Pop $R5 + IfErrors skip_registry_restore + FileRead ${CFG} $R6 + Push $R6 + Call un.TrimNewlines + Pop $R6 + IfErrors skip_registry_restore + FileRead ${CFG} $R7 + Push $R7 + Call un.TrimNewlines + Pop $R7 + IfErrors skip_registry_restore + WriteRegStr HKCU $R5 $R6 $R7 + goto restore_loop + + skip_registry_restore: + FileClose ${CFG} + Delete $INSTDIR\popfile.reg Delete $INSTDIR\Proxy\*.pm Index: ioB.ini =================================================================== RCS file: /cvsroot/popfile/windows/ioB.ini,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ioB.ini 25 Feb 2003 01:48:51 -0000 1.2 --- ioB.ini 26 Feb 2003 04:08:41 -0000 1.3 *************** *** 5,9 **** [Field 1] Type=label ! Text=POPFile has detected the following Outlook Express email account and can automatically configure it to work with POPFile Left=0 Right=-1 --- 5,9 ---- [Field 1] Type=label ! Text=POPFile has detected the following Outlook or Outlook Express email account and can automatically configure it to work with POPFile Left=0 Right=-1 *************** *** 45,49 **** [Field 6] Type=label ! Text=If you uninstall POPFile the original settings will be restored (NOT YET IMPLEMENTED) Left=0 Right=-1 --- 45,49 ---- [Field 6] Type=label ! Text=If you uninstall POPFile the original settings will be restored Left=0 Right=-1 |
From: <jgr...@us...> - 2003-02-26 02:40:07
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv9854 Modified Files: installer.nsi Log Message: The installer.nsi file came back from the previous patch with a large number of extra CRLF sequences in it, these have now been removed, but we need to ensure that all checkins do not have CR in them and I will be adding a script to do this automatically Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** installer.nsi 26 Feb 2003 01:30:52 -0000 1.26 --- installer.nsi 26 Feb 2003 02:40:02 -0000 1.27 *************** *** 1,132 **** ! ; ! ; Copyright (c) 2001-2003 John Graham-Cumming ! ; ! ; Modified to work with NSIS v2.0b1 ! !define MUI_PRODUCT "POPFile" ! !define MUI_VERSION "0.18.1" ! !include "MUI.nsh" ! ;-------------------------------- ! ;Configuration ! ! !define MUI_WELCOMEPAGE ! !define MUI_COMPONENTSPAGE ! !define MUI_DIRECTORYPAGE ! !define MUI_ABORTWARNING ! !define MUI_FINISHPAGE ! ! !define MUI_UNINSTALLER ! ! !define MUI_CUSTOMPAGECOMMANDS ! ; Support for 20 user variables is provided by NSIS. They recommend using ! ; variables $0 to $9 as global variables and reserving $R0 to $R9 for ! ; use as local variables. ! ! !define POP3 $0 ! !define GUI $1 ! !define STARTUP $2 ! !define CFG $3 ! !define LNE $4 ! !define CMPRE $5 ! !define OEID $6 ! !define ID $7 ! !define OEIDENT $8 ! !define ACCTID $9 ! ! ;Language ! !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_WELCOME_INFO_TEXT "This wizard will guide you through the installation of ${MUI_PRODUCT}.\r\n\r\nIt is recommended that you close all other applications before starting Setup.\r\n\r\n" ! !insertmacro MUI_LANGUAGE "English" ! ! ;General OutFile "setup.exe" ;Install Options pages ;Header LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page" ! LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "Options" ;Page order !insertmacro MUI_PAGECOMMAND_WELCOME !insertmacro MUI_PAGECOMMAND_COMPONENTS !insertmacro MUI_PAGECOMMAND_DIRECTORY Page custom SetOptionsPage "Options" !insertmacro MUI_PAGECOMMAND_INSTFILES Page custom SetOutlookExpressPage "Configure Outlook Express" !insertmacro MUI_PAGECOMMAND_FINISH ! ;Component-selection page ;Descriptions LangString DESC_SecPOPFile ${LANG_ENGLISH} "Installs the core files needed by POPFile, including a minimal version of Perl." LangString DESC_SecSkins ${LANG_ENGLISH} "Installs POPFile skins that allow you to change the look and feel of the POPFile user interface." LangString DESC_SecLangs ${LANG_ENGLISH} "Installs non-English language versions of the POPFile UI." ! ;Folder-selection page InstallDir "$PROGRAMFILES\${MUI_PRODUCT}" InstallDirRegKey HKLM SOFTWARE\POPFile InstallLocation ;Things that need to be extracted on startup (keep these lines before any File command!) ;Only useful for BZIP2 compression ;Use ReserveFile for your own Install Options ini files too! ! !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS !insertmacro MUI_RESERVEFILE_WELCOMEFINISHPAGE ReserveFile "ioA.ini" ReserveFile "ioB.ini" ! Function .onInit ! ; See if we can get the current pop3 and gui port ; from an existing configuration FileOpen ${CFG} $INSTDIR\popfile.cfg r ! loop: FileRead ${CFG} ${LNE} IfErrors done ! StrCpy ${CMPRE} ${LNE} 5 StrCmp ${CMPRE} "port " got_port not_port got_port: StrCpy ${POP3} ${LNE} 5 5 goto loop not_port: StrCpy ${CMPRE} ${LNE} 8 StrCmp ${CMPRE} "ui_port " got_ui_port loop got_ui_port: StrCpy ${GUI} ${LNE} 5 8 goto loop ! done: FileClose ${CFG} ! ; If the POP3 port is undefined then default it to 110 StrCmp ${POP3} "" 0 skip_pop3_set StrCpy ${POP3} "110" skip_pop3_set: ! ; If the GUI port is undefined then default it to 8080 StrCmp ${GUI} "" 0 skip_gui_set StrCpy ${GUI} "8080" skip_gui_set: ! InitPluginsDir File /oname=$PLUGINSDIR\ioA.ini ioA.ini File /oname=$PLUGINSDIR\ioB.ini ioB.ini ! FunctionEnd ! ;-------------------------------- ;Modern UI System ! !insertmacro MUI_SYSTEM ! ;-------------------------------- ;Installer Sections ! Section "POPFile" SecPOPFile ; Make this section mandatory (i.e. it is always installed) SectionIn RO ! ; Retrieve the POP3 and GUI ports from the ini and get whether we install the ; POPFile run in the Startup group !insertmacro MUI_INSTALLOPTIONS_READ ${POP3} "ioA.ini" "Field 2" "State" !insertmacro MUI_INSTALLOPTIONS_READ ${GUI} "ioA.ini" "Field 4" "State" !insertmacro MUI_INSTALLOPTIONS_READ ${STARTUP} "ioA.ini" "Field 5" "State" ! WriteRegStr HKLM SOFTWARE\POPFile InstallLocation $INSTDIR ! ; Install the POPFile Core files ! SetOutPath $INSTDIR File "..\engine\*.pl" File "..\engine\pix.gif" File "..\engine\black.gif" FileOpen ${CFG} $INSTDIR\popfile.cfg a FileSeek ${CFG} 0 END FileWrite ${CFG} "port ${POP3}$\n" FileWrite ${CFG} "ui_port ${GUI}$\n" FileClose ${CFG} ! SetOutPath $INSTDIR\Classifier File "..\engine\Classifier\Bayes.pm" File "..\engine\Classifier\WordMangle.pm" File "..\engine\Classifier\MailParse.pm" SetOutPath $INSTDIR\POPFile File "..\engine\POPFile\Logger.pm" File "..\engine\POPFile\Configuration.pm" SetOutPath $INSTDIR\Proxy File "..\engine\Proxy\POP3.pm" SetOutPath $INSTDIR\UI File "..\engine\UI\HTML.pm" ! SetOutPath $INSTDIR\manual File "..\engine\manual\*.gif" SetOutPath $INSTDIR\manual\en File "..\engine\manual\en\*.html" ! SetOutPath $INSTDIR\languages File "..\engine\languages\English.msg" ! ; Install the Minimal Perl files ! SetOutPath $INSTDIR File "C:\Perl58\bin\perl.exe" File "C:\Perl58\bin\wperl.exe" File "C:\Perl58\bin\perl58.dll" File "C:\Perl58\lib\AutoLoader.pm" File "C:\Perl58\lib\Carp.pm" File "C:\Perl58\lib\Config.pm" File "C:\Perl58\lib\DynaLoader.pm" File "C:\Perl58\lib\Errno.pm" File "C:\Perl58\lib\Exporter.pm" File "C:\Perl58\lib\IO.pm" File "C:\Perl58\lib\integer.pm" File "C:\Perl58\lib\locale.pm" File "C:\Perl58\lib\POSIX.pm" File "C:\Perl58\lib\SelectSaver.pm" File "C:\Perl58\lib\Socket.pm" File "C:\Perl58\lib\strict.pm" File "C:\Perl58\lib\Symbol.pm" File "C:\Perl58\lib\vars.pm" File "C:\Perl58\lib\warnings.pm" File "C:\Perl58\lib\XSLoader.pm" ! SetOutPath $INSTDIR\Carp File "C:\Perl58\lib\Carp\*" ! SetOutPath $INSTDIR\Exporter File "C:\Perl58\lib\Exporter\*" ! SetOutPath $INSTDIR\MIME File "C:\Perl58\lib\MIME\*" ! SetOutPath $INSTDIR\IO File "C:\Perl58\lib\IO\*" ! SetOutPath $INSTDIR\Sys File "C:\Perl58\lib\Sys\*" ! SetOutPath $INSTDIR\Text File "C:\Perl58\lib\Text\ParseWords.pm" ! SetOutPath $INSTDIR\IO\Socket File "C:\Perl58\lib\IO\Socket\*" ! SetOutPath $INSTDIR\auto\DynaLoader File "C:\Perl58\lib\auto\DynaLoader\*" SetOutPath $INSTDIR\auto\File\Glob File "C:\Perl58\lib\auto\File\Glob\*" ! SetOutPath $INSTDIR\auto\MIME\Base64 File "C:\Perl58\lib\auto\MIME\Base64\*" ! SetOutPath $INSTDIR\auto\IO File "C:\Perl58\lib\auto\IO\*" ! SetOutPath $INSTDIR\auto\Socket File "C:\Perl58\lib\auto\Socket\*" ! SetOutPath $INSTDIR\auto\Sys\Hostname File "C:\Perl58\lib\auto\Sys\Hostname\*" ! SetOutPath $INSTDIR\auto\POSIX File "C:\Perl58\lib\auto\POSIX\POSIX.dll" File "C:\Perl58\lib\auto\POSIX\autosplit.ix" File "C:\Perl58\lib\auto\POSIX\load_imports.al" ! SetOutPath $INSTDIR\File File "C:\Perl58\lib\File\Glob.pm" ! SetOutPath $INSTDIR\warnings File "C:\Perl58\lib\warnings\register.pm" ! ; Create the START MENU entries ! SetOutPath $SMPROGRAMS\POPFile SetOutPath $INSTDIR CreateShortCut "$SMPROGRAMS\POPFile\Run POPFile.lnk" \ "$INSTDIR\perl.exe" popfile.pl CreateShortCut "$SMPROGRAMS\POPFile\Run POPFile in background.lnk" \ "$INSTDIR\wperl.exe" popfile.pl CreateShortCut "$SMPROGRAMS\POPFile\Uninstall POPFile.lnk" \ "$INSTDIR\uninstall.exe" SetOutPath $SMPROGRAMS\POPFile WriteINIStr "$SMPROGRAMS\POPFile\POPFile User Interface.url" \ "InternetShortcut" "URL" "http://127.0.0.1:${GUI}/" WriteINIStr "$SMPROGRAMS\POPFile\Shutdown POPFile.url" \ "InternetShortcut" "URL" "http://127.0.0.1:${GUI}/shutdown" WriteINIStr "$SMPROGRAMS\POPFile\Manual.url" \ "InternetShortcut" "URL" "file://$INSTDIR/manual/en/manual.html" SetOutPath $SMPROGRAMS\POPFile\Support WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Home Page.url" \ "InternetShortcut" "URL" "http://popfile.sourceforge.net/" WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Manual.url" \ "InternetShortcut" "URL" "http://popfile.sourceforge.net/manual.html" ! StrCmp ${STARTUP} "1" 0 skip_autostart_set SetOutPath $SMSTARTUP SetOutPath $INSTDIR CreateShortCut "$SMSTARTUP\Run POPFile in background.lnk" \ "$INSTDIR\wperl.exe" popfile.pl skip_autostart_set: SetOutPath $INSTDIR Delete $INSTDIR\uninstall.exe WriteUninstaller $INSTDIR\uninstall.exe ! SectionEnd ! Section "Skins" SecSkins ! SetOutPath $INSTDIR\skins File "..\engine\skins\*.css" File "..\engine\skins\*.gif" ! SectionEnd ! Section "Languages" SecLangs ! SetOutPath $INSTDIR\languages File "..\engine\languages\*.msg" ! SectionEnd ! ;-------------------------------- ;Descriptions ! !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecPOPFile} $(DESC_SecPOPFile) !insertmacro MUI_DESCRIPTION_TEXT ${SecSkins} $(DESC_SecSkins) !insertmacro MUI_DESCRIPTION_TEXT ${SecLangs} $(DESC_SecLangs) !insertmacro MUI_FUNCTIONS_DESCRIPTION_END ! ;-------------------------------- ;Installer Functions ! Function SetOptionsPage !insertmacro MUI_HEADER_TEXT "POPFile Installation Options" "Leave these options unchanged unless you need to change them" !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioA.ini" "Field 2" "ListItems" StrCpy $R5 $R5|${POP3} !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 2" "ListItems" $R5 !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioA.ini" "Field 4" "ListItems" StrCpy $R5 $R5|${GUI} !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 4" "ListItems" $R5 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 2" "State" ${POP3} !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 4" "State" ${GUI} ! Push $R0 InstallOptions::dialog $PLUGINSDIR\ioA.ini Pop $R0 FunctionEnd ! ; This function is used to reconfigure Outlook Express accounts ! Function SetOutlookExpressPage ! ; In Outlook Express (v5.0 or later) the email account data may appear in ; more than one place, depending upon how Outlook Express has been configured. ! ; First we check the "Main Identity" (also known as the "Default Identity") ; which is created when Outlook Express is installed. Note that this identity ; may no longer be active, as users are free to delete it after creating ; an additional identity and switching to the new one. ! ; The Outlook Express "Main Identity" does not use an "identity number" StrCpy ${OEIDENT} "" Call CheckOutlookExpressAccounts ! ; Now we have to check if any additional identities have been created in ; Outlook Express. These identities are kept in HKEY_CURRENT_USER\Identities. ; If we find any extra identities, we need to see if any of them have email ; accounts we can reconfigure for use with POPFile. ! StrCpy ${OEID} 0 ; Get the next identity from the registry ! next_id: EnumRegKey ${ID} HKCU "Identities" ${OEID} StrCmp ${ID} "" finished_oe ! ; Now check all of the accounts for this particular identity StrCpy ${OEIDENT} "Identities\${ID}\" Call CheckOutlookExpressAccounts ! ; Now move on to the next identity IntOp ${OEID} ${OEID} + 1 goto next_id ! finished_oe: FunctionEnd ! ; This function checks all the accounts for a particular Outlook Express identity ! Function CheckOutlookExpressAccounts ! ; Called by SetOutLookExpressPage to check all of the accounts for a given ; Outlook Express identity: either the "Main Identity", when ${OEIDENT} is ; a null string (""), or one of the "Additional Identities", when ${OEIDENT} ; is a string such as "Identities\{AB734464-478F-11D7-81C3-00409545B64C}\" ! ; The email account data for all identities, although stored in different ; locations, uses the same structure. The "path" for each identity starts ; with "HKEY_CURRENT_USER\" and ends with "\Internet Account Manager\Accounts". ! ; OE account data for each identity appears "under" the path defined above, e.g. ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000001 ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000002 ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000003 ; etc ! StrCpy $R1 0 ; Get the next set of OE account data for the specified OE Identity ! next_acct: EnumRegKey ${ACCTID} HKCU "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts" $R1 StrCmp ${ACCTID} "" finished_this_id ! ; Now extract the POP3 Server, if this does not exist then this account is ; not configured for mail so move on StrCpy $R5 "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts\${ACCTID}" ReadRegStr $R6 HKCU $R5 "POP3 Server" StrCmp $R6 "" next_acct_increment StrCmp $R6 "127.0.0.1" next_acct_increment ! !insertmacro MUI_HEADER_TEXT "Reconfigure Outlook Express" "POPFile can reconfigure Outlook Express for you" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 ReadRegStr $R6 HKCU $R5 "SMTP Email Address" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 7" "Text" $R6 ReadRegStr $R6 HKCU $R5 "POP3 User Name" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 9" "Text" $R6 ReadRegStr $R6 HKCU $R5 "Account Name" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 10" "Text" $R6 Push $R0 InstallOptions::dialog $PLUGINSDIR\ioB.ini Pop $R0 StrCmp $R0 "cancel" finished_this_id StrCmp $R0 "back" finished_this_id ! !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioB.ini" "Field 2" "State" StrCmp $R5 "1" change_oe next_acct_increment ! change_oe: StrCpy $R5 "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts\${ACCTID}" ReadRegStr $R6 HKCU $R5 "POP3 User Name" ReadRegStr $R7 HKCU $R5 "POP3 Server" WriteRegStr HKCU $R5 "POP3 User Name" "$R7:$R6" WriteRegStr HKCU $R5 "POP3 Server" "127.0.0.1" ! next_acct_increment: IntOp $R1 $R1 + 1 goto next_acct ! finished_this_id: FunctionEnd ! ;-------------------------------- ;Uninstaller Section ! Section "Uninstall" ! IfFileExists $INSTDIR\popfile.pl skip_confirmation MessageBox MB_YESNO "It does not appear that POPFile is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)" IDYES skip_confirmation Abort "Uninstall aborted by user" skip_confirmation: ! Delete $SMPROGRAMS\POPFile\Support\*.url RMDir $SMPROGRAMS\POPFile\Support ! Delete $SMPROGRAMS\POPFile\*.lnk Delete $SMPROGRAMS\POPFile\*.url Delete "$SMSTARTUP\Run POPFile in background.lnk" RMDir $SMPROGRAMS\POPFile ! Delete $INSTDIR\*.log Delete $INSTDIR\*.pl Delete $INSTDIR\*.gif Delete $INSTDIR\*.pm Delete $INSTDIR\*.exe Delete $INSTDIR\*.dll Delete $INSTDIR\popfile.cfg Delete $INSTDIR\Proxy\*.pm RMDir $INSTDIR\Proxy Delete $INSTDIR\UI\*.pm RMDir $INSTDIR\UI Delete $INSTDIR\POPFile\*.pm RMDir $INSTDIR\POPFile Delete $INSTDIR\Classifier\*.pm RMDir $INSTDIR\Classifier Delete $INSTDIR\Exporter\*.* RMDir $INSTDIR\Exporter Delete $INSTDIR\skins\*.css Delete $INSTDIR\skins\*.gif RMDir $INSTDIR\skins Delete $INSTDIR\manual\en\*.html RMDir $INSTDIR\manual\en Delete $INSTDIR\manual\*.gif RMDir $INSTDIR\manual Delete $INSTDIR\languages\*.msg RMDir $INSTDIR\languages ! Delete $INSTDIR\MIME\*.* RMDir $INSTDIR\MIME Delete $INSTDIR\IO\*.* Delete $INSTDIR\IO\Socket\*.* RMDir /r $INSTDIR\IO Delete $INSTDIR\Carp\*.* RMDir /r $INSTDIR\Carp Delete $INSTDIR\Sys\Hostname\*.* RMDir /r $INSTDIR\Sys\Hostname RMDir /r $INSTDIR\Sys Delete $INSTDIR\Text\*.pm RMDir /r $INSTDIR\Text Delete $INSTDIR\auto\POSIX\*.* Delete $INSTDIR\auto\DynaLoader\*.* Delete $INSTDIR\auto\File\Glob\*.* Delete $INSTDIR\auto\MIME\Base64\*.* Delete $INSTDIR\auto\IO\*.* Delete $INSTDIR\auto\Socket\*.* Delete $INSTDIR\auto\Sys\*.* RMDir /r $INSTDIR\auto Delete $INSTDIR\File\*.* RMDir $INSTDIR\File Delete $INSTDIR\warnings\*.* RMDir $INSTDIR\warnings Delete "$INSTDIR\modern.exe" Delete "$INSTDIR\Uninstall.exe" ! RMDir $INSTDIR ! DeleteRegKey HKLM SOFTWARE\POPFile ! ; if $INSTDIR was removed, skip these next ones IfFileExists $INSTDIR 0 Removed MessageBox MB_YESNO|MB_ICONQUESTION \ "Do you want to remove all files in your POPFile directory? (If you have anything \ you created that you want to keep, click No)" IDNO Removed Delete $INSTDIR\*.* ; this would be skipped if the user hits no RMDir /r $INSTDIR IfFileExists $INSTDIR 0 Removed MessageBox MB_OK|MB_ICONEXCLAMATION \ "Note: $INSTDIR could not be removed." Removed: ! !insertmacro MUI_UNFINISHHEADER ! SectionEnd ! ;eof --- 1,528 ---- ! ; ! ; Copyright (c) 2001-2003 John Graham-Cumming ! ; ! ; Modified to work with NSIS v2.0b1 ! !define MUI_PRODUCT "POPFile" ! !define MUI_VERSION "0.18.1 RC1" ! !include "MUI.nsh" ! ;-------------------------------- ! ;Configuration ! ! !define MUI_WELCOMEPAGE ! !define MUI_COMPONENTSPAGE ! !define MUI_DIRECTORYPAGE ! !define MUI_ABORTWARNING ! !define MUI_FINISHPAGE ! ! !define MUI_UNINSTALLER ! ! !define MUI_CUSTOMPAGECOMMANDS ! ; Support for 20 user variables is provided by NSIS. They recommend using ! ; variables $0 to $9 as global variables and reserving $R0 to $R9 for ! ; use as local variables. ! ! !define POP3 $0 ! !define GUI $1 ! !define STARTUP $2 ! !define CFG $3 ! !define LNE $4 ! !define CMPRE $5 ! !define OEID $6 ! !define ID $7 ! !define OEIDENT $8 ! !define ACCTID $9 ! ! ;Language ! !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_WELCOME_INFO_TEXT "This wizard will guide you through the installation of ${MUI_PRODUCT}.\r\n\r\nIt is recommended that you close all other applications before starting Setup.\r\n\r\n" ! !insertmacro MUI_LANGUAGE "English" ! ! ;General ! OutFile "setup.exe" ! ! ;Install Options pages ! ! ;Header ! LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page" ! LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "Options" ! ! ;Page order ! !insertmacro MUI_PAGECOMMAND_WELCOME ! !insertmacro MUI_PAGECOMMAND_COMPONENTS ! !insertmacro MUI_PAGECOMMAND_DIRECTORY ! Page custom SetOptionsPage "Options" ! !insertmacro MUI_PAGECOMMAND_INSTFILES ! Page custom SetOutlookExpressPage "Configure Outlook Express" ! !insertmacro MUI_PAGECOMMAND_FINISH ! ! ;Component-selection page ! ;Descriptions ! LangString DESC_SecPOPFile ${LANG_ENGLISH} "Installs the core files needed by POPFile, including a minimal version of Perl." ! LangString DESC_SecSkins ${LANG_ENGLISH} "Installs POPFile skins that allow you to change the look and feel of the POPFile user interface." ! LangString DESC_SecLangs ${LANG_ENGLISH} "Installs non-English language versions of the POPFile UI." ! ! ;Folder-selection page ! InstallDir "$PROGRAMFILES\${MUI_PRODUCT}" ! InstallDirRegKey HKLM SOFTWARE\POPFile InstallLocation ! ! ;Things that need to be extracted on startup (keep these lines before any File command!) ! ;Only useful for BZIP2 compression ! ;Use ReserveFile for your own Install Options ini files too! ! ! !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ! !insertmacro MUI_RESERVEFILE_WELCOMEFINISHPAGE ! ReserveFile "ioA.ini" ! ReserveFile "ioB.ini" ! ! Function .onInit ! ! ; See if we can get the current pop3 and gui port ! ; from an existing configuration ! FileOpen ${CFG} $INSTDIR\popfile.cfg r ! ! loop: ! FileRead ${CFG} ${LNE} ! IfErrors done ! ! StrCpy ${CMPRE} ${LNE} 5 ! StrCmp ${CMPRE} "port " got_port not_port ! got_port: ! StrCpy ${POP3} ${LNE} 5 5 ! goto loop ! ! not_port: ! StrCpy ${CMPRE} ${LNE} 8 ! StrCmp ${CMPRE} "ui_port " got_ui_port loop ! got_ui_port: ! StrCpy ${GUI} ${LNE} 5 8 ! ! goto loop ! ! done: ! FileClose ${CFG} ! ! ; If the POP3 port is undefined then default it to 110 ! StrCmp ${POP3} "" 0 skip_pop3_set ! StrCpy ${POP3} "110" ! skip_pop3_set: ! ! ; If the GUI port is undefined then default it to 8080 ! StrCmp ${GUI} "" 0 skip_gui_set ! StrCpy ${GUI} "8080" ! skip_gui_set: ! ! InitPluginsDir ! File /oname=$PLUGINSDIR\ioA.ini ioA.ini ! File /oname=$PLUGINSDIR\ioB.ini ioB.ini ! ! FunctionEnd ! ! ;-------------------------------- ! ;Modern UI System ! ! !insertmacro MUI_SYSTEM ! ! ;-------------------------------- ! ;Installer Sections ! ! Section "POPFile" SecPOPFile ! ; Make this section mandatory (i.e. it is always installed) ! SectionIn RO ! ! ; Retrieve the POP3 and GUI ports from the ini and get whether we install the ! ; POPFile run in the Startup group ! !insertmacro MUI_INSTALLOPTIONS_READ ${POP3} "ioA.ini" "Field 2" "State" ! !insertmacro MUI_INSTALLOPTIONS_READ ${GUI} "ioA.ini" "Field 4" "State" ! !insertmacro MUI_INSTALLOPTIONS_READ ${STARTUP} "ioA.ini" "Field 5" "State" ! ! WriteRegStr HKLM SOFTWARE\POPFile InstallLocation $INSTDIR ! ! ; Install the POPFile Core files ! ! SetOutPath $INSTDIR ! File "..\engine\*.pl" ! File "..\engine\pix.gif" ! File "..\engine\black.gif" ! ! FileOpen ${CFG} $INSTDIR\popfile.cfg a ! FileSeek ${CFG} 0 END ! FileWrite ${CFG} "port ${POP3}$\n" ! FileWrite ${CFG} "ui_port ${GUI}$\n" ! FileClose ${CFG} ! ! SetOutPath $INSTDIR\Classifier ! File "..\engine\Classifier\Bayes.pm" ! File "..\engine\Classifier\WordMangle.pm" ! File "..\engine\Classifier\MailParse.pm" ! SetOutPath $INSTDIR\POPFile ! File "..\engine\POPFile\Logger.pm" ! File "..\engine\POPFile\Configuration.pm" ! SetOutPath $INSTDIR\Proxy ! File "..\engine\Proxy\POP3.pm" ! SetOutPath $INSTDIR\UI ! File "..\engine\UI\HTML.pm" ! ! SetOutPath $INSTDIR\manual ! File "..\engine\manual\*.gif" ! SetOutPath $INSTDIR\manual\en ! File "..\engine\manual\en\*.html" ! ! SetOutPath $INSTDIR\languages ! File "..\engine\languages\English.msg" ! ! ; Install the Minimal Perl files ! ! SetOutPath $INSTDIR ! File "C:\Perl58\bin\perl.exe" ! File "C:\Perl58\bin\wperl.exe" ! File "C:\Perl58\bin\perl58.dll" ! File "C:\Perl58\lib\AutoLoader.pm" ! File "C:\Perl58\lib\Carp.pm" ! File "C:\Perl58\lib\Config.pm" ! File "C:\Perl58\lib\DynaLoader.pm" ! File "C:\Perl58\lib\Errno.pm" ! File "C:\Perl58\lib\Exporter.pm" ! File "C:\Perl58\lib\IO.pm" ! File "C:\Perl58\lib\integer.pm" ! File "C:\Perl58\lib\locale.pm" ! File "C:\Perl58\lib\POSIX.pm" ! File "C:\Perl58\lib\SelectSaver.pm" ! File "C:\Perl58\lib\Socket.pm" ! File "C:\Perl58\lib\strict.pm" ! File "C:\Perl58\lib\Symbol.pm" ! File "C:\Perl58\lib\vars.pm" ! File "C:\Perl58\lib\warnings.pm" ! File "C:\Perl58\lib\XSLoader.pm" ! ! SetOutPath $INSTDIR\Carp ! File "C:\Perl58\lib\Carp\*" ! ! SetOutPath $INSTDIR\Exporter ! File "C:\Perl58\lib\Exporter\*" ! ! SetOutPath $INSTDIR\MIME ! File "C:\Perl58\lib\MIME\*" ! ! SetOutPath $INSTDIR\IO ! File "C:\Perl58\lib\IO\*" ! ! SetOutPath $INSTDIR\Sys ! File "C:\Perl58\lib\Sys\*" ! ! SetOutPath $INSTDIR\Text ! File "C:\Perl58\lib\Text\ParseWords.pm" ! ! SetOutPath $INSTDIR\IO\Socket ! File "C:\Perl58\lib\IO\Socket\*" ! ! SetOutPath $INSTDIR\auto\DynaLoader ! File "C:\Perl58\lib\auto\DynaLoader\*" ! ! SetOutPath $INSTDIR\auto\File\Glob ! File "C:\Perl58\lib\auto\File\Glob\*" ! ! SetOutPath $INSTDIR\auto\MIME\Base64 ! File "C:\Perl58\lib\auto\MIME\Base64\*" ! ! SetOutPath $INSTDIR\auto\IO ! File "C:\Perl58\lib\auto\IO\*" ! ! SetOutPath $INSTDIR\auto\Socket ! File "C:\Perl58\lib\auto\Socket\*" ! ! SetOutPath $INSTDIR\auto\Sys\Hostname ! File "C:\Perl58\lib\auto\Sys\Hostname\*" ! ! SetOutPath $INSTDIR\auto\POSIX ! File "C:\Perl58\lib\auto\POSIX\POSIX.dll" ! File "C:\Perl58\lib\auto\POSIX\autosplit.ix" ! File "C:\Perl58\lib\auto\POSIX\load_imports.al" ! ! SetOutPath $INSTDIR\File ! File "C:\Perl58\lib\File\Glob.pm" ! ! SetOutPath $INSTDIR\warnings ! File "C:\Perl58\lib\warnings\register.pm" ! ! ; Create the START MENU entries ! ! SetOutPath $SMPROGRAMS\POPFile ! SetOutPath $INSTDIR ! CreateShortCut "$SMPROGRAMS\POPFile\Run POPFile.lnk" \ ! "$INSTDIR\perl.exe" popfile.pl ! CreateShortCut "$SMPROGRAMS\POPFile\Run POPFile in background.lnk" \ ! "$INSTDIR\wperl.exe" popfile.pl ! CreateShortCut "$SMPROGRAMS\POPFile\Uninstall POPFile.lnk" \ ! "$INSTDIR\uninstall.exe" ! SetOutPath $SMPROGRAMS\POPFile ! WriteINIStr "$SMPROGRAMS\POPFile\POPFile User Interface.url" \ ! "InternetShortcut" "URL" "http://127.0.0.1:${GUI}/" ! WriteINIStr "$SMPROGRAMS\POPFile\Shutdown POPFile.url" \ ! "InternetShortcut" "URL" "http://127.0.0.1:${GUI}/shutdown" ! WriteINIStr "$SMPROGRAMS\POPFile\Manual.url" \ ! "InternetShortcut" "URL" "file://$INSTDIR/manual/en/manual.html" ! SetOutPath $SMPROGRAMS\POPFile\Support ! WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Home Page.url" \ ! "InternetShortcut" "URL" "http://popfile.sourceforge.net/" ! WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Manual.url" \ ! "InternetShortcut" "URL" "http://popfile.sourceforge.net/manual.html" ! ! StrCmp ${STARTUP} "1" 0 skip_autostart_set ! SetOutPath $SMSTARTUP ! SetOutPath $INSTDIR ! CreateShortCut "$SMSTARTUP\Run POPFile in background.lnk" \ ! "$INSTDIR\wperl.exe" popfile.pl ! skip_autostart_set: ! ! SetOutPath $INSTDIR ! Delete $INSTDIR\uninstall.exe ! WriteUninstaller $INSTDIR\uninstall.exe ! ! SectionEnd ! ! Section "Skins" SecSkins ! ! SetOutPath $INSTDIR\skins ! File "..\engine\skins\*.css" ! File "..\engine\skins\*.gif" ! ! SectionEnd ! ! Section "Languages" SecLangs ! ! SetOutPath $INSTDIR\languages ! File "..\engine\languages\*.msg" ! ! SectionEnd ! ! ;-------------------------------- ! ;Descriptions ! ! !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN ! !insertmacro MUI_DESCRIPTION_TEXT ${SecPOPFile} $(DESC_SecPOPFile) ! !insertmacro MUI_DESCRIPTION_TEXT ${SecSkins} $(DESC_SecSkins) ! !insertmacro MUI_DESCRIPTION_TEXT ${SecLangs} $(DESC_SecLangs) ! !insertmacro MUI_FUNCTIONS_DESCRIPTION_END ! ! ;-------------------------------- ! ;Installer Functions ! ! Function SetOptionsPage ! !insertmacro MUI_HEADER_TEXT "POPFile Installation Options" "Leave these options unchanged unless you need to change them" ! !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioA.ini" "Field 2" "ListItems" ! StrCpy $R5 $R5|${POP3} ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 2" "ListItems" $R5 ! !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioA.ini" "Field 4" "ListItems" ! StrCpy $R5 $R5|${GUI} ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 4" "ListItems" $R5 ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 2" "State" ${POP3} ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 4" "State" ${GUI} ! ! Push $R0 ! InstallOptions::dialog $PLUGINSDIR\ioA.ini ! Pop $R0 ! FunctionEnd ! ! ; This function is used to reconfigure Outlook Express accounts ! ! Function SetOutlookExpressPage ! ! ; In Outlook Express (v5.0 or later) the email account data may appear in ! ; more than one place, depending upon how Outlook Express has been configured. ! ! ; First we check the "Main Identity" (also known as the "Default Identity") ! ; which is created when Outlook Express is installed. Note that this identity ! ; may no longer be active, as users are free to delete it after creating ! ; an additional identity and switching to the new one. ! ! ; The Outlook Express "Main Identity" does not use an "identity number" ! StrCpy ${OEIDENT} "" ! Call CheckOutlookExpressAccounts ! ! ; Now we have to check if any additional identities have been created in ! ; Outlook Express. These identities are kept in HKEY_CURRENT_USER\Identities. ! ; If we find any extra identities, we need to see if any of them have email ! ; accounts we can reconfigure for use with POPFile. ! ! StrCpy ${OEID} 0 ! ! ; Get the next identity from the registry ! ! next_id: ! EnumRegKey ${ID} HKCU "Identities" ${OEID} ! StrCmp ${ID} "" finished_oe ! ! ; Now check all of the accounts for this particular identity ! StrCpy ${OEIDENT} "Identities\${ID}\" ! Call CheckOutlookExpressAccounts ! ! ; Now move on to the next identity ! IntOp ${OEID} ${OEID} + 1 ! goto next_id ! ! finished_oe: ! FunctionEnd ! ! ; This function checks all the accounts for a particular Outlook Express identity ! ! Function CheckOutlookExpressAccounts ! ! ; Called by SetOutLookExpressPage to check all of the accounts for a given ! ; Outlook Express identity: either the "Main Identity", when ${OEIDENT} is ! ; a null string (""), or one of the "Additional Identities", when ${OEIDENT} ! ; is a string such as "Identities\{AB734464-478F-11D7-81C3-00409545B64C}\" ! ! ; The email account data for all identities, although stored in different ! ; locations, uses the same structure. The "path" for each identity starts ! ; with "HKEY_CURRENT_USER\" and ends with "\Internet Account Manager\Accounts". ! ! ; OE account data for each identity appears "under" the path defined above, e.g. ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000001 ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000002 ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000003 ! ; etc ! ! StrCpy $R1 0 ! ! ; Get the next set of OE account data for the specified OE Identity ! ! next_acct: ! EnumRegKey ${ACCTID} HKCU "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts" $R1 ! StrCmp ${ACCTID} "" finished_this_id ! ! ; Now extract the POP3 Server, if this does not exist then this account is ! ; not configured for mail so move on ! ! StrCpy $R5 "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts\${ACCTID}" ! ReadRegStr $R6 HKCU $R5 "POP3 Server" ! StrCmp $R6 "" next_acct_increment ! StrCmp $R6 "127.0.0.1" next_acct_increment ! ! !insertmacro MUI_HEADER_TEXT "Reconfigure Outlook Express" "POPFile can reconfigure Outlook Express for you" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 ! ReadRegStr $R6 HKCU $R5 "SMTP Email Address" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 7" "Text" $R6 ! ReadRegStr $R6 HKCU $R5 "POP3 User Name" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 9" "Text" $R6 ! ReadRegStr $R6 HKCU $R5 "Account Name" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 10" "Text" $R6 ! Push $R0 ! InstallOptions::dialog $PLUGINSDIR\ioB.ini ! Pop $R0 ! ! StrCmp $R0 "cancel" finished_this_id ! StrCmp $R0 "back" finished_this_id ! ! !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioB.ini" "Field 2" "State" ! StrCmp $R5 "1" change_oe next_acct_increment ! ! change_oe: ! StrCpy $R5 "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts\${ACCTID}" ! ReadRegStr $R6 HKCU $R5 "POP3 User Name" ! ReadRegStr $R7 HKCU $R5 "POP3 Server" ! WriteRegStr HKCU $R5 "POP3 User Name" "$R7:$R6" ! WriteRegStr HKCU $R5 "POP3 Server" "127.0.0.1" ! ! next_acct_increment: ! IntOp $R1 $R1 + 1 ! goto next_acct ! ! finished_this_id: ! FunctionEnd ! ! ;-------------------------------- ! ;Uninstaller Section ! ! Section "Uninstall" ! ! IfFileExists $INSTDIR\popfile.pl skip_confirmation ! MessageBox MB_YESNO "It does not appear that POPFile is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)" IDYES skip_confirmation ! Abort "Uninstall aborted by user" ! skip_confirmation: ! ! Delete $SMPROGRAMS\POPFile\Support\*.url ! RMDir $SMPROGRAMS\POPFile\Support ! ! Delete $SMPROGRAMS\POPFile\*.lnk ! Delete $SMPROGRAMS\POPFile\*.url ! Delete "$SMSTARTUP\Run POPFile in background.lnk" ! RMDir $SMPROGRAMS\POPFile ! ! Delete $INSTDIR\*.log ! Delete $INSTDIR\*.pl ! Delete $INSTDIR\*.gif ! Delete $INSTDIR\*.pm ! Delete $INSTDIR\*.exe ! Delete $INSTDIR\*.dll ! Delete $INSTDIR\popfile.cfg ! ! Delete $INSTDIR\Proxy\*.pm ! RMDir $INSTDIR\Proxy ! Delete $INSTDIR\UI\*.pm ! RMDir $INSTDIR\UI ! Delete $INSTDIR\POPFile\*.pm ! RMDir $INSTDIR\POPFile ! Delete $INSTDIR\Classifier\*.pm ! RMDir $INSTDIR\Classifier ! Delete $INSTDIR\Exporter\*.* ! RMDir $INSTDIR\Exporter ! Delete $INSTDIR\skins\*.css ! Delete $INSTDIR\skins\*.gif ! RMDir $INSTDIR\skins ! Delete $INSTDIR\manual\en\*.html ! RMDir $INSTDIR\manual\en ! Delete $INSTDIR\manual\*.gif ! RMDir $INSTDIR\manual ! Delete $INSTDIR\languages\*.msg ! RMDir $INSTDIR\languages ! ! Delete $INSTDIR\MIME\*.* ! RMDir $INSTDIR\MIME ! Delete $INSTDIR\IO\*.* ! Delete $INSTDIR\IO\Socket\*.* ! RMDir /r $INSTDIR\IO ! Delete $INSTDIR\Carp\*.* ! RMDir /r $INSTDIR\Carp ! Delete $INSTDIR\Sys\Hostname\*.* ! RMDir /r $INSTDIR\Sys\Hostname ! RMDir /r $INSTDIR\Sys ! Delete $INSTDIR\Text\*.pm ! RMDir /r $INSTDIR\Text ! Delete $INSTDIR\auto\POSIX\*.* ! Delete $INSTDIR\auto\DynaLoader\*.* ! Delete $INSTDIR\auto\File\Glob\*.* ! Delete $INSTDIR\auto\MIME\Base64\*.* ! Delete $INSTDIR\auto\IO\*.* ! Delete $INSTDIR\auto\Socket\*.* ! Delete $INSTDIR\auto\Sys\*.* ! RMDir /r $INSTDIR\auto ! Delete $INSTDIR\File\*.* ! RMDir $INSTDIR\File ! Delete $INSTDIR\warnings\*.* ! RMDir $INSTDIR\warnings ! ! Delete "$INSTDIR\modern.exe" ! Delete "$INSTDIR\Uninstall.exe" ! ! RMDir $INSTDIR ! ! DeleteRegKey HKLM SOFTWARE\POPFile ! ! ; if $INSTDIR was removed, skip these next ones ! IfFileExists $INSTDIR 0 Removed ! MessageBox MB_YESNO|MB_ICONQUESTION \ ! "Do you want to remove all files in your POPFile directory? (If you have anything \ ! you created that you want to keep, click No)" IDNO Removed ! Delete $INSTDIR\*.* ; this would be skipped if the user hits no ! RMDir /r $INSTDIR ! IfFileExists $INSTDIR 0 Removed ! MessageBox MB_OK|MB_ICONEXCLAMATION \ ! "Note: $INSTDIR could not be removed." ! Removed: ! ! !insertmacro MUI_UNFINISHHEADER ! ! SectionEnd ! ! ;eof ! |
From: <jgr...@us...> - 2003-02-26 01:30:56
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv16488 Modified Files: installer.nsi Log Message: The installer.nsi file came back from the previous patch with a large number of extra CRLF sequences in it, these have now been removed, but we need to ensure that all checkins do not have CR in them and I will be adding a script to do this automatically Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** installer.nsi 26 Feb 2003 01:18:16 -0000 1.25 --- installer.nsi 26 Feb 2003 01:30:52 -0000 1.26 *************** *** 2,13 **** ; Copyright (c) 2001-2003 John Graham-Cumming ; - ; Modified to work with NSIS v2.0b1 - !define MUI_PRODUCT "POPFile" !define MUI_VERSION "0.18.1" - !include "MUI.nsh" - ;-------------------------------- ;Configuration --- 2,9 ---- *************** *** 22,26 **** !define MUI_CUSTOMPAGECOMMANDS - ; Support for 20 user variables is provided by NSIS. They recommend using ; variables $0 to $9 as global variables and reserving $R0 to $R9 for --- 18,21 ---- *************** *** 40,533 **** ;Language !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_WELCOME_INFO_TEXT "This wizard will guide you through the installation of ${MUI_PRODUCT}.\r\n\r\nIt is recommended that you close all other applications before starting Setup.\r\n\r\n" ! !insertmacro MUI_LANGUAGE "English" ! ! ;General ! OutFile "setup.exe" ! ! ;Install Options pages ! ! ;Header ! LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page" ! LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "Options" ! ! ;Page order ! !insertmacro MUI_PAGECOMMAND_WELCOME ! !insertmacro MUI_PAGECOMMAND_COMPONENTS ! !insertmacro MUI_PAGECOMMAND_DIRECTORY ! Page custom SetOptionsPage "Options" ! !insertmacro MUI_PAGECOMMAND_INSTFILES ! Page custom SetOutlookExpressPage "Configure Outlook Express" ! !insertmacro MUI_PAGECOMMAND_FINISH ! ! ;Component-selection page ! ;Descriptions ! LangString DESC_SecPOPFile ${LANG_ENGLISH} "Installs the core files needed by POPFile, including a minimal version of Perl." ! LangString DESC_SecSkins ${LANG_ENGLISH} "Installs POPFile skins that allow you to change the look and feel of the POPFile user interface." ! LangString DESC_SecLangs ${LANG_ENGLISH} "Installs non-English language versions of the POPFile UI." ! ! ;Folder-selection page ! InstallDir "$PROGRAMFILES\${MUI_PRODUCT}" ! InstallDirRegKey HKLM SOFTWARE\POPFile InstallLocation ! ! ;Things that need to be extracted on startup (keep these lines before any File command!) ! ;Only useful for BZIP2 compression ! ;Use ReserveFile for your own Install Options ini files too! ! ! !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ! !insertmacro MUI_RESERVEFILE_WELCOMEFINISHPAGE ! ReserveFile "ioA.ini" ! ReserveFile "ioB.ini" ! Function .onInit ! ! ; See if we can get the current pop3 and gui port ! ; from an existing configuration ! FileOpen ${CFG} $INSTDIR\popfile.cfg r ! ! loop: ! FileRead ${CFG} ${LNE} ! IfErrors done ! ! StrCpy ${CMPRE} ${LNE} 5 ! StrCmp ${CMPRE} "port " got_port not_port ! got_port: ! StrCpy ${POP3} ${LNE} 5 5 ! goto loop ! ! not_port: ! StrCpy ${CMPRE} ${LNE} 8 ! StrCmp ${CMPRE} "ui_port " got_ui_port loop ! got_ui_port: ! StrCpy ${GUI} ${LNE} 5 8 ! ! goto loop ! ! done: ! FileClose ${CFG} ! ! ; If the POP3 port is undefined then default it to 110 ! StrCmp ${POP3} "" 0 skip_pop3_set ! StrCpy ${POP3} "110" ! skip_pop3_set: ! ! ; If the GUI port is undefined then default it to 8080 ! StrCmp ${GUI} "" 0 skip_gui_set ! StrCpy ${GUI} "8080" ! skip_gui_set: ! ! InitPluginsDir ! File /oname=$PLUGINSDIR\ioA.ini ioA.ini ! File /oname=$PLUGINSDIR\ioB.ini ioB.ini ! FunctionEnd ! ! ;-------------------------------- ! ;Modern UI System ! !insertmacro MUI_SYSTEM ! ! ;-------------------------------- ! ;Installer Sections ! ! Section "POPFile" SecPOPFile ! ; Make this section mandatory (i.e. it is always installed) ! SectionIn RO ! ! ; Retrieve the POP3 and GUI ports from the ini and get whether we install the ! ; POPFile run in the Startup group ! !insertmacro MUI_INSTALLOPTIONS_READ ${POP3} "ioA.ini" "Field 2" "State" ! !insertmacro MUI_INSTALLOPTIONS_READ ${GUI} "ioA.ini" "Field 4" "State" ! !insertmacro MUI_INSTALLOPTIONS_READ ${STARTUP} "ioA.ini" "Field 5" "State" ! WriteRegStr HKLM SOFTWARE\POPFile InstallLocation $INSTDIR - ; Install the POPFile Core files ! ! SetOutPath $INSTDIR ! File "..\engine\*.pl" ! File "..\engine\pix.gif" ! File "..\engine\black.gif" ! ! FileOpen ${CFG} $INSTDIR\popfile.cfg a ! FileSeek ${CFG} 0 END ! FileWrite ${CFG} "port ${POP3}$\n" ! FileWrite ${CFG} "ui_port ${GUI}$\n" ! FileClose ${CFG} ! ! SetOutPath $INSTDIR\Classifier ! File "..\engine\Classifier\Bayes.pm" ! File "..\engine\Classifier\WordMangle.pm" ! File "..\engine\Classifier\MailParse.pm" ! SetOutPath $INSTDIR\POPFile ! File "..\engine\POPFile\Logger.pm" ! File "..\engine\POPFile\Configuration.pm" ! SetOutPath $INSTDIR\Proxy ! File "..\engine\Proxy\POP3.pm" ! SetOutPath $INSTDIR\UI ! File "..\engine\UI\HTML.pm" ! ! SetOutPath $INSTDIR\manual ! File "..\engine\manual\*.gif" ! SetOutPath $INSTDIR\manual\en ! File "..\engine\manual\en\*.html" ! ! SetOutPath $INSTDIR\languages ! File "..\engine\languages\English.msg" ! ; Install the Minimal Perl files ! ! SetOutPath $INSTDIR ! File "C:\Perl58\bin\perl.exe" ! File "C:\Perl58\bin\wperl.exe" ! File "C:\Perl58\bin\perl58.dll" ! File "C:\Perl58\lib\AutoLoader.pm" ! File "C:\Perl58\lib\Carp.pm" ! File "C:\Perl58\lib\Config.pm" ! File "C:\Perl58\lib\DynaLoader.pm" ! File "C:\Perl58\lib\Errno.pm" ! File "C:\Perl58\lib\Exporter.pm" ! File "C:\Perl58\lib\IO.pm" ! File "C:\Perl58\lib\integer.pm" ! File "C:\Perl58\lib\locale.pm" ! File "C:\Perl58\lib\POSIX.pm" ! File "C:\Perl58\lib\SelectSaver.pm" ! File "C:\Perl58\lib\Socket.pm" ! File "C:\Perl58\lib\strict.pm" ! File "C:\Perl58\lib\Symbol.pm" ! File "C:\Perl58\lib\vars.pm" ! File "C:\Perl58\lib\warnings.pm" ! File "C:\Perl58\lib\XSLoader.pm" ! ! SetOutPath $INSTDIR\Carp ! File "C:\Perl58\lib\Carp\*" ! ! SetOutPath $INSTDIR\Exporter ! File "C:\Perl58\lib\Exporter\*" ! ! SetOutPath $INSTDIR\MIME ! File "C:\Perl58\lib\MIME\*" ! ! SetOutPath $INSTDIR\IO ! File "C:\Perl58\lib\IO\*" ! ! SetOutPath $INSTDIR\Sys ! File "C:\Perl58\lib\Sys\*" ! ! SetOutPath $INSTDIR\Text ! File "C:\Perl58\lib\Text\ParseWords.pm" ! ! SetOutPath $INSTDIR\IO\Socket ! File "C:\Perl58\lib\IO\Socket\*" ! ! SetOutPath $INSTDIR\auto\DynaLoader ! File "C:\Perl58\lib\auto\DynaLoader\*" ! ! SetOutPath $INSTDIR\auto\File\Glob ! File "C:\Perl58\lib\auto\File\Glob\*" ! ! SetOutPath $INSTDIR\auto\MIME\Base64 ! File "C:\Perl58\lib\auto\MIME\Base64\*" ! ! SetOutPath $INSTDIR\auto\IO ! File "C:\Perl58\lib\auto\IO\*" ! ! SetOutPath $INSTDIR\auto\Socket ! File "C:\Perl58\lib\auto\Socket\*" ! ! SetOutPath $INSTDIR\auto\Sys\Hostname ! File "C:\Perl58\lib\auto\Sys\Hostname\*" ! ! SetOutPath $INSTDIR\auto\POSIX ! File "C:\Perl58\lib\auto\POSIX\POSIX.dll" ! File "C:\Perl58\lib\auto\POSIX\autosplit.ix" ! File "C:\Perl58\lib\auto\POSIX\load_imports.al" ! ! SetOutPath $INSTDIR\File ! File "C:\Perl58\lib\File\Glob.pm" ! ! SetOutPath $INSTDIR\warnings ! File "C:\Perl58\lib\warnings\register.pm" ! ; Create the START MENU entries ! ! SetOutPath $SMPROGRAMS\POPFile ! SetOutPath $INSTDIR ! CreateShortCut "$SMPROGRAMS\POPFile\Run POPFile.lnk" \ ! "$INSTDIR\perl.exe" popfile.pl ! CreateShortCut "$SMPROGRAMS\POPFile\Run POPFile in background.lnk" \ ! "$INSTDIR\wperl.exe" popfile.pl ! CreateShortCut "$SMPROGRAMS\POPFile\Uninstall POPFile.lnk" \ ! "$INSTDIR\uninstall.exe" ! SetOutPath $SMPROGRAMS\POPFile ! WriteINIStr "$SMPROGRAMS\POPFile\POPFile User Interface.url" \ ! "InternetShortcut" "URL" "http://127.0.0.1:${GUI}/" ! WriteINIStr "$SMPROGRAMS\POPFile\Shutdown POPFile.url" \ ! "InternetShortcut" "URL" "http://127.0.0.1:${GUI}/shutdown" ! WriteINIStr "$SMPROGRAMS\POPFile\Manual.url" \ ! "InternetShortcut" "URL" "file://$INSTDIR/manual/en/manual.html" ! SetOutPath $SMPROGRAMS\POPFile\Support ! WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Home Page.url" \ ! "InternetShortcut" "URL" "http://popfile.sourceforge.net/" ! WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Manual.url" \ ! "InternetShortcut" "URL" "http://popfile.sourceforge.net/manual.html" ! ! StrCmp ${STARTUP} "1" 0 skip_autostart_set ! SetOutPath $SMSTARTUP ! SetOutPath $INSTDIR ! CreateShortCut "$SMSTARTUP\Run POPFile in background.lnk" \ ! "$INSTDIR\wperl.exe" popfile.pl ! skip_autostart_set: ! ! SetOutPath $INSTDIR ! Delete $INSTDIR\uninstall.exe ! WriteUninstaller $INSTDIR\uninstall.exe ! SectionEnd - Section "Skins" SecSkins ! ! SetOutPath $INSTDIR\skins ! File "..\engine\skins\*.css" ! File "..\engine\skins\*.gif" ! SectionEnd - Section "Languages" SecLangs ! ! SetOutPath $INSTDIR\languages ! File "..\engine\languages\*.msg" ! SectionEnd ! ! ;-------------------------------- ! ;Descriptions ! ! !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN ! !insertmacro MUI_DESCRIPTION_TEXT ${SecPOPFile} $(DESC_SecPOPFile) ! !insertmacro MUI_DESCRIPTION_TEXT ${SecSkins} $(DESC_SecSkins) ! !insertmacro MUI_DESCRIPTION_TEXT ${SecLangs} $(DESC_SecLangs) ! !insertmacro MUI_FUNCTIONS_DESCRIPTION_END ! ! ;-------------------------------- ! ;Installer Functions ! ! Function SetOptionsPage ! !insertmacro MUI_HEADER_TEXT "POPFile Installation Options" "Leave these options unchanged unless you need to change them" ! !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioA.ini" "Field 2" "ListItems" ! StrCpy $R5 $R5|${POP3} ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 2" "ListItems" $R5 ! !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioA.ini" "Field 4" "ListItems" ! StrCpy $R5 $R5|${GUI} ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 4" "ListItems" $R5 ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 2" "State" ${POP3} ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 4" "State" ${GUI} ! ! Push $R0 ! InstallOptions::dialog $PLUGINSDIR\ioA.ini ! Pop $R0 ! FunctionEnd ! ; This function is used to reconfigure Outlook Express accounts - Function SetOutlookExpressPage ! ! ; In Outlook Express (v5.0 or later) the email account data may appear in ! ; more than one place, depending upon how Outlook Express has been configured. ! ! ; First we check the "Main Identity" (also known as the "Default Identity") ! ; which is created when Outlook Express is installed. Note that this identity ! ; may no longer be active, as users are free to delete it after creating ! ; an additional identity and switching to the new one. ! ! ; The Outlook Express "Main Identity" does not use an "identity number" ! StrCpy ${OEIDENT} "" ! Call CheckOutlookExpressAccounts ! ! ; Now we have to check if any additional identities have been created in ! ; Outlook Express. These identities are kept in HKEY_CURRENT_USER\Identities. ! ; If we find any extra identities, we need to see if any of them have email ! ; accounts we can reconfigure for use with POPFile. ! ! StrCpy ${OEID} 0 ! ! ; Get the next identity from the registry ! ! next_id: ! EnumRegKey ${ID} HKCU "Identities" ${OEID} ! StrCmp ${ID} "" finished_oe ! ! ; Now check all of the accounts for this particular identity ! StrCpy ${OEIDENT} "Identities\${ID}\" ! Call CheckOutlookExpressAccounts ! ! ; Now move on to the next identity ! IntOp ${OEID} ${OEID} + 1 ! goto next_id ! ! finished_oe: ! FunctionEnd ! ; This function checks all the accounts for a particular Outlook Express identity - Function CheckOutlookExpressAccounts ! ! ; Called by SetOutLookExpressPage to check all of the accounts for a given ! ; Outlook Express identity: either the "Main Identity", when ${OEIDENT} is ! ; a null string (""), or one of the "Additional Identities", when ${OEIDENT} ! ; is a string such as "Identities\{AB734464-478F-11D7-81C3-00409545B64C}\" ! ! ; The email account data for all identities, although stored in different ! ; locations, uses the same structure. The "path" for each identity starts ! ; with "HKEY_CURRENT_USER\" and ends with "\Internet Account Manager\Accounts". ! ! ; OE account data for each identity appears "under" the path defined above, e.g. ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000001 ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000002 ! ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000003 ! ; etc ! ! StrCpy $R1 0 ! ! ; Get the next set of OE account data for the specified OE Identity ! ! next_acct: ! EnumRegKey ${ACCTID} HKCU "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts" $R1 ! StrCmp ${ACCTID} "" finished_this_id ! ! ; Now extract the POP3 Server, if this does not exist then this account is ! ; not configured for mail so move on ! ! StrCpy $R5 "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts\${ACCTID}" ! ReadRegStr $R6 HKCU $R5 "POP3 Server" ! StrCmp $R6 "" next_acct_increment ! StrCmp $R6 "127.0.0.1" next_acct_increment ! ! !insertmacro MUI_HEADER_TEXT "Reconfigure Outlook Express" "POPFile can reconfigure Outlook Express for you" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 ! ReadRegStr $R6 HKCU $R5 "SMTP Email Address" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 7" "Text" $R6 ! ReadRegStr $R6 HKCU $R5 "POP3 User Name" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 9" "Text" $R6 ! ReadRegStr $R6 HKCU $R5 "Account Name" ! !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 10" "Text" $R6 ! Push $R0 ! InstallOptions::dialog $PLUGINSDIR\ioB.ini ! Pop $R0 ! ! StrCmp $R0 "cancel" finished_this_id ! StrCmp $R0 "back" finished_this_id ! ! !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioB.ini" "Field 2" "State" ! StrCmp $R5 "1" change_oe next_acct_increment ! ! change_oe: ! StrCpy $R5 "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts\${ACCTID}" ! ReadRegStr $R6 HKCU $R5 "POP3 User Name" ! ReadRegStr $R7 HKCU $R5 "POP3 Server" ! WriteRegStr HKCU $R5 "POP3 User Name" "$R7:$R6" ! WriteRegStr HKCU $R5 "POP3 Server" "127.0.0.1" ! ! next_acct_increment: ! IntOp $R1 $R1 + 1 ! goto next_acct ! ! finished_this_id: ! FunctionEnd ! ! ;-------------------------------- ! ;Uninstaller Section ! Section "Uninstall" ! ! IfFileExists $INSTDIR\popfile.pl skip_confirmation ! MessageBox MB_YESNO "It does not appear that POPFile is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)" IDYES skip_confirmation ! Abort "Uninstall aborted by user" ! skip_confirmation: ! ! Delete $SMPROGRAMS\POPFile\Support\*.url ! RMDir $SMPROGRAMS\POPFile\Support ! ! Delete $SMPROGRAMS\POPFile\*.lnk ! Delete $SMPROGRAMS\POPFile\*.url ! Delete "$SMSTARTUP\Run POPFile in background.lnk" ! RMDir $SMPROGRAMS\POPFile ! ! Delete $INSTDIR\*.log ! Delete $INSTDIR\*.pl ! Delete $INSTDIR\*.gif ! Delete $INSTDIR\*.pm ! Delete $INSTDIR\*.exe ! Delete $INSTDIR\*.dll ! Delete $INSTDIR\popfile.cfg ! ! Delete $INSTDIR\Proxy\*.pm ! RMDir $INSTDIR\Proxy ! Delete $INSTDIR\UI\*.pm ! RMDir $INSTDIR\UI ! Delete $INSTDIR\POPFile\*.pm ! RMDir $INSTDIR\POPFile ! Delete $INSTDIR\Classifier\*.pm ! RMDir $INSTDIR\Classifier ! Delete $INSTDIR\Exporter\*.* ! RMDir $INSTDIR\Exporter ! Delete $INSTDIR\skins\*.css ! Delete $INSTDIR\skins\*.gif ! RMDir $INSTDIR\skins ! Delete $INSTDIR\manual\en\*.html ! RMDir $INSTDIR\manual\en ! Delete $INSTDIR\manual\*.gif ! RMDir $INSTDIR\manual ! Delete $INSTDIR\languages\*.msg ! RMDir $INSTDIR\languages ! ! Delete $INSTDIR\MIME\*.* ! RMDir $INSTDIR\MIME ! Delete $INSTDIR\IO\*.* ! Delete $INSTDIR\IO\Socket\*.* ! RMDir /r $INSTDIR\IO ! Delete $INSTDIR\Carp\*.* ! RMDir /r $INSTDIR\Carp ! Delete $INSTDIR\Sys\Hostname\*.* ! RMDir /r $INSTDIR\Sys\Hostname ! RMDir /r $INSTDIR\Sys ! Delete $INSTDIR\Text\*.pm ! RMDir /r $INSTDIR\Text ! Delete $INSTDIR\auto\POSIX\*.* ! Delete $INSTDIR\auto\DynaLoader\*.* ! Delete $INSTDIR\auto\File\Glob\*.* ! Delete $INSTDIR\auto\MIME\Base64\*.* ! Delete $INSTDIR\auto\IO\*.* ! Delete $INSTDIR\auto\Socket\*.* ! Delete $INSTDIR\auto\Sys\*.* ! RMDir /r $INSTDIR\auto ! Delete $INSTDIR\File\*.* ! RMDir $INSTDIR\File ! Delete $INSTDIR\warnings\*.* ! RMDir $INSTDIR\warnings ! ! Delete "$INSTDIR\modern.exe" ! Delete "$INSTDIR\Uninstall.exe" ! RMDir $INSTDIR - DeleteRegKey HKLM SOFTWARE\POPFile ! ! ; if $INSTDIR was removed, skip these next ones ! IfFileExists $INSTDIR 0 Removed ! MessageBox MB_YESNO|MB_ICONQUESTION \ ! "Do you want to remove all files in your POPFile directory? (If you have anything \ ! you created that you want to keep, click No)" IDNO Removed ! Delete $INSTDIR\*.* ; this would be skipped if the user hits no ! RMDir /r $INSTDIR ! IfFileExists $INSTDIR 0 Removed ! MessageBox MB_OK|MB_ICONEXCLAMATION \ ! "Note: $INSTDIR could not be removed." ! Removed: ! !insertmacro MUI_UNFINISHHEADER - SectionEnd - ;eof - --- 35,132 ---- ;Language !insertmacro MUI_LANGUAGEFILE_STRING MUI_TEXT_WELCOME_INFO_TEXT "This wizard will guide you through the installation of ${MUI_PRODUCT}.\r\n\r\nIt is recommended that you close all other applications before starting Setup.\r\n\r\n" ! !insertmacro MUI_LANGUAGE "English" ! ! ;General OutFile "setup.exe" ;Install Options pages ;Header LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Install Options Page" ! LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "Options" ;Page order !insertmacro MUI_PAGECOMMAND_WELCOME !insertmacro MUI_PAGECOMMAND_COMPONENTS !insertmacro MUI_PAGECOMMAND_DIRECTORY Page custom SetOptionsPage "Options" !insertmacro MUI_PAGECOMMAND_INSTFILES Page custom SetOutlookExpressPage "Configure Outlook Express" !insertmacro MUI_PAGECOMMAND_FINISH ! ;Component-selection page ;Descriptions LangString DESC_SecPOPFile ${LANG_ENGLISH} "Installs the core files needed by POPFile, including a minimal version of Perl." LangString DESC_SecSkins ${LANG_ENGLISH} "Installs POPFile skins that allow you to change the look and feel of the POPFile user interface." LangString DESC_SecLangs ${LANG_ENGLISH} "Installs non-English language versions of the POPFile UI." ! ;Folder-selection page InstallDir "$PROGRAMFILES\${MUI_PRODUCT}" InstallDirRegKey HKLM SOFTWARE\POPFile InstallLocation ;Things that need to be extracted on startup (keep these lines before any File command!) ;Only useful for BZIP2 compression ;Use ReserveFile for your own Install Options ini files too! ! !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS !insertmacro MUI_RESERVEFILE_WELCOMEFINISHPAGE ReserveFile "ioA.ini" ReserveFile "ioB.ini" Function .onInit ! ; See if we can get the current pop3 and gui port ; from an existing configuration FileOpen ${CFG} $INSTDIR\popfile.cfg r ! loop: FileRead ${CFG} ${LNE} IfErrors done ! StrCpy ${CMPRE} ${LNE} 5 StrCmp ${CMPRE} "port " got_port not_port got_port: StrCpy ${POP3} ${LNE} 5 5 goto loop not_port: StrCpy ${CMPRE} ${LNE} 8 StrCmp ${CMPRE} "ui_port " got_ui_port loop got_ui_port: StrCpy ${GUI} ${LNE} 5 8 goto loop ! done: FileClose ${CFG} ! ; If the POP3 port is undefined then default it to 110 StrCmp ${POP3} "" 0 skip_pop3_set StrCpy ${POP3} "110" skip_pop3_set: ! ; If the GUI port is undefined then default it to 8080 StrCmp ${GUI} "" 0 skip_gui_set StrCpy ${GUI} "8080" skip_gui_set: ! InitPluginsDir File /oname=$PLUGINSDIR\ioA.ini ioA.ini File /oname=$PLUGINSDIR\ioB.ini ioB.ini FunctionEnd ! ;-------------------------------- ;Modern UI System !insertmacro MUI_SYSTEM ! ;-------------------------------- ;Installer Sections ! Section "POPFile" SecPOPFile ; Make this section mandatory (i.e. it is always installed) SectionIn RO ! ; Retrieve the POP3 and GUI ports from the ini and get whether we install the ; POPFile run in the Startup group !insertmacro MUI_INSTALLOPTIONS_READ ${POP3} "ioA.ini" "Field 2" "State" !insertmacro MUI_INSTALLOPTIONS_READ ${GUI} "ioA.ini" "Field 4" "State" !insertmacro MUI_INSTALLOPTIONS_READ ${STARTUP} "ioA.ini" "Field 5" "State" WriteRegStr HKLM SOFTWARE\POPFile InstallLocation $INSTDIR ; Install the POPFile Core files ! SetOutPath $INSTDIR File "..\engine\*.pl" File "..\engine\pix.gif" File "..\engine\black.gif" FileOpen ${CFG} $INSTDIR\popfile.cfg a FileSeek ${CFG} 0 END FileWrite ${CFG} "port ${POP3}$\n" FileWrite ${CFG} "ui_port ${GUI}$\n" FileClose ${CFG} ! SetOutPath $INSTDIR\Classifier File "..\engine\Classifier\Bayes.pm" File "..\engine\Classifier\WordMangle.pm" File "..\engine\Classifier\MailParse.pm" SetOutPath $INSTDIR\POPFile File "..\engine\POPFile\Logger.pm" File "..\engine\POPFile\Configuration.pm" SetOutPath $INSTDIR\Proxy File "..\engine\Proxy\POP3.pm" SetOutPath $INSTDIR\UI File "..\engine\UI\HTML.pm" ! SetOutPath $INSTDIR\manual File "..\engine\manual\*.gif" SetOutPath $INSTDIR\manual\en File "..\engine\manual\en\*.html" ! SetOutPath $INSTDIR\languages File "..\engine\languages\English.msg" ; Install the Minimal Perl files ! SetOutPath $INSTDIR File "C:\Perl58\bin\perl.exe" File "C:\Perl58\bin\wperl.exe" File "C:\Perl58\bin\perl58.dll" File "C:\Perl58\lib\AutoLoader.pm" File "C:\Perl58\lib\Carp.pm" File "C:\Perl58\lib\Config.pm" File "C:\Perl58\lib\DynaLoader.pm" File "C:\Perl58\lib\Errno.pm" File "C:\Perl58\lib\Exporter.pm" File "C:\Perl58\lib\IO.pm" File "C:\Perl58\lib\integer.pm" File "C:\Perl58\lib\locale.pm" File "C:\Perl58\lib\POSIX.pm" File "C:\Perl58\lib\SelectSaver.pm" File "C:\Perl58\lib\Socket.pm" File "C:\Perl58\lib\strict.pm" File "C:\Perl58\lib\Symbol.pm" File "C:\Perl58\lib\vars.pm" File "C:\Perl58\lib\warnings.pm" File "C:\Perl58\lib\XSLoader.pm" ! SetOutPath $INSTDIR\Carp File "C:\Perl58\lib\Carp\*" ! SetOutPath $INSTDIR\Exporter File "C:\Perl58\lib\Exporter\*" ! SetOutPath $INSTDIR\MIME File "C:\Perl58\lib\MIME\*" ! SetOutPath $INSTDIR\IO File "C:\Perl58\lib\IO\*" ! SetOutPath $INSTDIR\Sys File "C:\Perl58\lib\Sys\*" ! SetOutPath $INSTDIR\Text File "C:\Perl58\lib\Text\ParseWords.pm" ! SetOutPath $INSTDIR\IO\Socket File "C:\Perl58\lib\IO\Socket\*" ! SetOutPath $INSTDIR\auto\DynaLoader File "C:\Perl58\lib\auto\DynaLoader\*" SetOutPath $INSTDIR\auto\File\Glob File "C:\Perl58\lib\auto\File\Glob\*" ! SetOutPath $INSTDIR\auto\MIME\Base64 File "C:\Perl58\lib\auto\MIME\Base64\*" ! SetOutPath $INSTDIR\auto\IO File "C:\Perl58\lib\auto\IO\*" ! SetOutPath $INSTDIR\auto\Socket File "C:\Perl58\lib\auto\Socket\*" ! SetOutPath $INSTDIR\auto\Sys\Hostname File "C:\Perl58\lib\auto\Sys\Hostname\*" ! SetOutPath $INSTDIR\auto\POSIX File "C:\Perl58\lib\auto\POSIX\POSIX.dll" File "C:\Perl58\lib\auto\POSIX\autosplit.ix" File "C:\Perl58\lib\auto\POSIX\load_imports.al" ! SetOutPath $INSTDIR\File File "C:\Perl58\lib\File\Glob.pm" ! SetOutPath $INSTDIR\warnings File "C:\Perl58\lib\warnings\register.pm" ; Create the START MENU entries ! SetOutPath $SMPROGRAMS\POPFile SetOutPath $INSTDIR CreateShortCut "$SMPROGRAMS\POPFile\Run POPFile.lnk" \ "$INSTDIR\perl.exe" popfile.pl CreateShortCut "$SMPROGRAMS\POPFile\Run POPFile in background.lnk" \ "$INSTDIR\wperl.exe" popfile.pl CreateShortCut "$SMPROGRAMS\POPFile\Uninstall POPFile.lnk" \ "$INSTDIR\uninstall.exe" SetOutPath $SMPROGRAMS\POPFile WriteINIStr "$SMPROGRAMS\POPFile\POPFile User Interface.url" \ "InternetShortcut" "URL" "http://127.0.0.1:${GUI}/" WriteINIStr "$SMPROGRAMS\POPFile\Shutdown POPFile.url" \ "InternetShortcut" "URL" "http://127.0.0.1:${GUI}/shutdown" WriteINIStr "$SMPROGRAMS\POPFile\Manual.url" \ "InternetShortcut" "URL" "file://$INSTDIR/manual/en/manual.html" SetOutPath $SMPROGRAMS\POPFile\Support WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Home Page.url" \ "InternetShortcut" "URL" "http://popfile.sourceforge.net/" WriteINIStr "$SMPROGRAMS\POPFile\Support\POPFile Manual.url" \ "InternetShortcut" "URL" "http://popfile.sourceforge.net/manual.html" ! StrCmp ${STARTUP} "1" 0 skip_autostart_set SetOutPath $SMSTARTUP SetOutPath $INSTDIR CreateShortCut "$SMSTARTUP\Run POPFile in background.lnk" \ "$INSTDIR\wperl.exe" popfile.pl skip_autostart_set: SetOutPath $INSTDIR Delete $INSTDIR\uninstall.exe WriteUninstaller $INSTDIR\uninstall.exe SectionEnd Section "Skins" SecSkins ! SetOutPath $INSTDIR\skins File "..\engine\skins\*.css" File "..\engine\skins\*.gif" SectionEnd Section "Languages" SecLangs ! SetOutPath $INSTDIR\languages File "..\engine\languages\*.msg" SectionEnd ! ;-------------------------------- ;Descriptions ! !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecPOPFile} $(DESC_SecPOPFile) !insertmacro MUI_DESCRIPTION_TEXT ${SecSkins} $(DESC_SecSkins) !insertmacro MUI_DESCRIPTION_TEXT ${SecLangs} $(DESC_SecLangs) !insertmacro MUI_FUNCTIONS_DESCRIPTION_END ! ;-------------------------------- ;Installer Functions ! Function SetOptionsPage !insertmacro MUI_HEADER_TEXT "POPFile Installation Options" "Leave these options unchanged unless you need to change them" !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioA.ini" "Field 2" "ListItems" StrCpy $R5 $R5|${POP3} !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 2" "ListItems" $R5 !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioA.ini" "Field 4" "ListItems" StrCpy $R5 $R5|${GUI} !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 4" "ListItems" $R5 !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 2" "State" ${POP3} !insertmacro MUI_INSTALLOPTIONS_WRITE "ioA.ini" "Field 4" "State" ${GUI} ! Push $R0 InstallOptions::dialog $PLUGINSDIR\ioA.ini Pop $R0 FunctionEnd ; This function is used to reconfigure Outlook Express accounts Function SetOutlookExpressPage ! ; In Outlook Express (v5.0 or later) the email account data may appear in ; more than one place, depending upon how Outlook Express has been configured. ! ; First we check the "Main Identity" (also known as the "Default Identity") ; which is created when Outlook Express is installed. Note that this identity ; may no longer be active, as users are free to delete it after creating ; an additional identity and switching to the new one. ! ; The Outlook Express "Main Identity" does not use an "identity number" StrCpy ${OEIDENT} "" Call CheckOutlookExpressAccounts ! ; Now we have to check if any additional identities have been created in ; Outlook Express. These identities are kept in HKEY_CURRENT_USER\Identities. ; If we find any extra identities, we need to see if any of them have email ; accounts we can reconfigure for use with POPFile. ! StrCpy ${OEID} 0 ; Get the next identity from the registry ! next_id: EnumRegKey ${ID} HKCU "Identities" ${OEID} StrCmp ${ID} "" finished_oe ! ; Now check all of the accounts for this particular identity StrCpy ${OEIDENT} "Identities\${ID}\" Call CheckOutlookExpressAccounts ! ; Now move on to the next identity IntOp ${OEID} ${OEID} + 1 goto next_id ! finished_oe: FunctionEnd ; This function checks all the accounts for a particular Outlook Express identity Function CheckOutlookExpressAccounts ! ; Called by SetOutLookExpressPage to check all of the accounts for a given ; Outlook Express identity: either the "Main Identity", when ${OEIDENT} is ; a null string (""), or one of the "Additional Identities", when ${OEIDENT} ; is a string such as "Identities\{AB734464-478F-11D7-81C3-00409545B64C}\" ! ; The email account data for all identities, although stored in different ; locations, uses the same structure. The "path" for each identity starts ; with "HKEY_CURRENT_USER\" and ends with "\Internet Account Manager\Accounts". ! ; OE account data for each identity appears "under" the path defined above, e.g. ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000001 ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000002 ; HKEY_CURRENT_USER\...\Internet Account Manager\Accounts\00000003 ; etc ! StrCpy $R1 0 ; Get the next set of OE account data for the specified OE Identity ! next_acct: EnumRegKey ${ACCTID} HKCU "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts" $R1 StrCmp ${ACCTID} "" finished_this_id ! ; Now extract the POP3 Server, if this does not exist then this account is ; not configured for mail so move on StrCpy $R5 "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts\${ACCTID}" ReadRegStr $R6 HKCU $R5 "POP3 Server" StrCmp $R6 "" next_acct_increment StrCmp $R6 "127.0.0.1" next_acct_increment ! !insertmacro MUI_HEADER_TEXT "Reconfigure Outlook Express" "POPFile can reconfigure Outlook Express for you" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 2" "State" "0" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 8" "Text" $R6 ReadRegStr $R6 HKCU $R5 "SMTP Email Address" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 7" "Text" $R6 ReadRegStr $R6 HKCU $R5 "POP3 User Name" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 9" "Text" $R6 ReadRegStr $R6 HKCU $R5 "Account Name" !insertmacro MUI_INSTALLOPTIONS_WRITE "ioB.ini" "Field 10" "Text" $R6 Push $R0 InstallOptions::dialog $PLUGINSDIR\ioB.ini Pop $R0 StrCmp $R0 "cancel" finished_this_id StrCmp $R0 "back" finished_this_id ! !insertmacro MUI_INSTALLOPTIONS_READ $R5 "ioB.ini" "Field 2" "State" StrCmp $R5 "1" change_oe next_acct_increment ! change_oe: StrCpy $R5 "${OEIDENT}Software\Microsoft\Internet Account Manager\Accounts\${ACCTID}" ReadRegStr $R6 HKCU $R5 "POP3 User Name" ReadRegStr $R7 HKCU $R5 "POP3 Server" WriteRegStr HKCU $R5 "POP3 User Name" "$R7:$R6" WriteRegStr HKCU $R5 "POP3 Server" "127.0.0.1" ! next_acct_increment: IntOp $R1 $R1 + 1 goto next_acct ! finished_this_id: FunctionEnd ! ;-------------------------------- ;Uninstaller Section Section "Uninstall" ! IfFileExists $INSTDIR\popfile.pl skip_confirmation MessageBox MB_YESNO "It does not appear that POPFile is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)" IDYES skip_confirmation Abort "Uninstall aborted by user" skip_confirmation: ! Delete $SMPROGRAMS\POPFile\Support\*.url RMDir $SMPROGRAMS\POPFile\Support ! Delete $SMPROGRAMS\POPFile\*.lnk Delete $SMPROGRAMS\POPFile\*.url Delete "$SMSTARTUP\Run POPFile in background.lnk" RMDir $SMPROGRAMS\POPFile ! Delete $INSTDIR\*.log Delete $INSTDIR\*.pl Delete $INSTDIR\*.gif Delete $INSTDIR\*.pm Delete $INSTDIR\*.exe Delete $INSTDIR\*.dll Delete $INSTDIR\popfile.cfg Delete $INSTDIR\Proxy\*.pm RMDir $INSTDIR\Proxy Delete $INSTDIR\UI\*.pm RMDir $INSTDIR\UI Delete $INSTDIR\POPFile\*.pm RMDir $INSTDIR\POPFile Delete $INSTDIR\Classifier\*.pm RMDir $INSTDIR\Classifier Delete $INSTDIR\Exporter\*.* RMDir $INSTDIR\Exporter Delete $INSTDIR\skins\*.css Delete $INSTDIR\skins\*.gif RMDir $INSTDIR\skins Delete $INSTDIR\manual\en\*.html RMDir $INSTDIR\manual\en Delete $INSTDIR\manual\*.gif RMDir $INSTDIR\manual Delete $INSTDIR\languages\*.msg RMDir $INSTDIR\languages ! Delete $INSTDIR\MIME\*.* RMDir $INSTDIR\MIME Delete $INSTDIR\IO\*.* Delete $INSTDIR\IO\Socket\*.* RMDir /r $INSTDIR\IO Delete $INSTDIR\Carp\*.* RMDir /r $INSTDIR\Carp Delete $INSTDIR\Sys\Hostname\*.* RMDir /r $INSTDIR\Sys\Hostname RMDir /r $INSTDIR\Sys Delete $INSTDIR\Text\*.pm RMDir /r $INSTDIR\Text Delete $INSTDIR\auto\POSIX\*.* Delete $INSTDIR\auto\DynaLoader\*.* Delete $INSTDIR\auto\File\Glob\*.* Delete $INSTDIR\auto\MIME\Base64\*.* Delete $INSTDIR\auto\IO\*.* Delete $INSTDIR\auto\Socket\*.* Delete $INSTDIR\auto\Sys\*.* RMDir /r $INSTDIR\auto Delete $INSTDIR\File\*.* RMDir $INSTDIR\File Delete $INSTDIR\warnings\*.* RMDir $INSTDIR\warnings Delete "$INSTDIR\modern.exe" Delete "$INSTDIR\Uninstall.exe" RMDir $INSTDIR DeleteRegKey HKLM SOFTWARE\POPFile ! ; if $INSTDIR was removed, skip these next ones IfFileExists $INSTDIR 0 Removed MessageBox MB_YESNO|MB_ICONQUESTION \ "Do you want to remove all files in your POPFile directory? (If you have anything \ you created that you want to keep, click No)" IDNO Removed Delete $INSTDIR\*.* ; this would be skipped if the user hits no RMDir /r $INSTDIR IfFileExists $INSTDIR 0 Removed MessageBox MB_OK|MB_ICONEXCLAMATION \ "Note: $INSTDIR could not be removed." Removed: !insertmacro MUI_UNFINISHHEADER SectionEnd ;eof |
From: <jgr...@us...> - 2003-02-26 01:18:23
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv12450 Modified Files: installer.nsi Log Message: Merge patch 691405 that improves the splash screen of the installer so that it does not mention system files since we don't touch system files Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** installer.nsi 25 Feb 2003 01:48:51 -0000 1.24 --- installer.nsi 26 Feb 2003 01:18:16 -0000 1.25 *************** *** 1,532 **** ! ; ! ; Copyright (c) 2001-2003 John Graham-Cumming ! ; ! ! ; Modified to work with NSIS v2.0b1 ! ! !define MUI_PRODUCT "POPFile" ! !define MUI_VERSION "0.18.1" ! ! !include "MUI.nsh" [...1036 lines suppressed...] ! DeleteRegKey HKLM SOFTWARE\POPFile ! ! ; if $INSTDIR was removed, skip these next ones ! IfFileExists $INSTDIR 0 Removed ! MessageBox MB_YESNO|MB_ICONQUESTION \ ! "Do you want to remove all files in your POPFile directory? (If you have anything \ ! you created that you want to keep, click No)" IDNO Removed ! Delete $INSTDIR\*.* ; this would be skipped if the user hits no ! RMDir /r $INSTDIR ! IfFileExists $INSTDIR 0 Removed ! MessageBox MB_OK|MB_ICONEXCLAMATION \ ! "Note: $INSTDIR could not be removed." ! Removed: ! ! !insertmacro MUI_UNFINISHHEADER ! ! SectionEnd ! ! ;eof ! |
From: <sta...@us...> - 2003-02-26 00:26:08
|
Update of /cvsroot/popfile/engine/skins In directory sc8-pr-cvs1:/tmp/cvs-serv24364 Modified Files: SimplyBlue.css Log Message: skin code cleanup by D. Smith -- see forum msg. # 1899204 for details -- fonts relatively-sized Index: SimplyBlue.css =================================================================== RCS file: /cvsroot/popfile/engine/skins/SimplyBlue.css,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SimplyBlue.css 19 Feb 2003 21:31:08 -0000 1.4 --- SimplyBlue.css 26 Feb 2003 00:26:04 -0000 1.5 *************** *** 1,158 **** body { ! background-color: #FFFFFF; ! font-family: sans-serif; ! margin: 10px 20px 20px 20px; ! color: #000000; } ! .shell, .shellTop { ! background-color: #bcd5ea; ! border: 3px #88b5dd solid; ! border-style: groove; ! border-color: #FFFFFF; ! border-width: 2px; ! margin: 0px 0px 0px 0px; ! color: #000000; } ! table.head { ! width: 100%; } ! td.head { ! font-weight: normal; ! font-size: 22pt; } ! .menu { ! font-size: 14pt; ! font-weight: bold; ! width: 100%; } ! .menuSelected { ! background-color: #88b5dd; ! width: 14%; ! border-color: #ffffff; ! border-style: groove groove none groove; ! border-width: 2px; ! color: #000000; } ! .menuStandard { ! background-color: #bcd5ea; ! width: 14%; ! border-color: #ffffff; ! border-style: groove groove none groove; ! border-width: 2px; ! color: #000000; } ! .menuIndent { ! width: 8%; } ! hr { ! color: #88b5dd; ! background-color: transparent; } ! a.changeSettingLink { ! background-color: transparent; ! color: blue; } ! a:link { ! color: #000000; ! background-color: transparent; ! text-decoration: underline; ! } ! a:visited { ! color: #333333; ! background-color: transparent; ! text-decoration: underline; ! } ! a:hover { ! color: #000000; ! background-color: transparent; ! text-decoration: none; ! } ! tr.rowEven { ! background-color: #bcd5ea; ! color: #000000; } ! tr.rowOdd { ! background-color: #88b5dd; ! color: #000000; } ! tr.rowHighlighted { ! background-color: #29abff; ! color: #eeeeee; } ! table.footer { ! width: 100%; } table.settingsTable { ! border: 1px solid #88b5dd; } ! table.openMessageTable, table.lookupResultsTable { ! border: 3px solid #88b5dd; } td.openMessageCloser { ! text-align: right; } td.openMessageBody { ! text-align: left; } ! td.settingsPanel { ! border: 1px solid #88b5dd; } ! td.naked { ! padding: 0px; ! margin: 0px; ! border: none } td.accuracy0to49 { ! background-color: red; ! color: black; } td.accuracy50to93 { ! background-color: yellow; ! color: black; } ! td.accuracy94to100 { ! background-color: green; ! color: black; } ! div.error01 { ! background-color: transparent; ! color: red; ! font-size: larger; ! } ! ! div.error02 { ! background-color: transparent; ! color: red; } ! span.graphFont { ! font-size: x-small; ! } .historyLabel { --- 1,174 ---- + /*********************************************************/ + /* Main Body */ + body { ! color: #000000; ! background-color: #ffffff; ! font-family: sans-serif; ! font-size: 100%; ! margin: 10px 20px 20px 20px; } ! /*********************************************************/ ! /* General element settings */ ! ! hr { ! color: #88b5dd; ! background-color: transparent; } ! a:link { ! color: #000000; ! background-color: transparent; ! text-decoration: underline; } ! a:visited { ! color: #333333; ! background-color: transparent; ! text-decoration: underline; } ! a:hover { ! color: #000000; ! background-color: transparent; ! text-decoration: none; } ! /*********************************************************/ ! /* Shell structure */ ! ! .shell, .shellTop { ! color: #000000; ! background-color: #bcd5ea; ! /*order: 3px #88b5dd solid; */ ! border: 2px #ffffff groove; ! margin: 0; } ! td.naked { ! padding: 0px; ! margin: 0px; ! border: none } ! table.head { ! width: 100%; } ! td.head { ! font-weight: normal; ! font-size: 1.8em; } ! table.footer { ! width: 100%; } ! td.footerBody { ! text-align: center; ! } ! td.logo2menuSpace { ! height: 0.8em; ! } ! /*********************************************************/ ! /* Menu Settings */ ! .menu { ! font-size: 1.2em; ! font-weight: bold; ! width: 100%; } ! .menuSelected { ! color: #000000; ! background-color: #88b5dd; ! width: 14%; ! border-color: #ffffff; ! border-style: groove groove none groove; ! border-width: 2px; } ! .menuStandard { ! color: #000000; ! background-color: #bcd5ea; ! width: 14%; ! border-color: #ffffff; ! border-style: groove groove none groove; ! border-width: 2px; } ! .menuIndent { ! width: 8%; } + /*********************************************************/ + /* Table Settings */ + table.settingsTable { ! border: 1px solid #88b5dd; } ! td.settingsPanel { ! border: 1px solid #88b5dd; ! } ! ! table.openMessageTable { ! border: 3px solid #88b5dd; } td.openMessageCloser { ! text-align: right; } td.openMessageBody { ! text-align: left; } ! tr.rowEven { ! background-color: #bcd5ea; ! color: #000000; } ! tr.rowOdd { ! background-color: #88b5dd; ! color: #000000; } + tr.rowHighlighted { + background-color: #29abff; + color: #eeeeee; + } + + table.lookupResultsTable { + border: 3px solid #88b5dd; + } + + /*********************************************************/ + /* Graphics */ + td.accuracy0to49 { ! background-color: red; ! color: black; } td.accuracy50to93 { ! background-color: yellow; ! color: black; } ! td.accuracy94to100 { ! background-color: green; ! color: black; } ! span.graphFont { ! font-size: x-small; } ! /*********************************************************/ ! /* Form Labels */ .historyLabel { *************** *** 166,234 **** .bucketsLabel { ! font-weight: bold; } .magnetsLabel { ! font-weight: bold; } .securityLabel { ! font-weight: bold; } .configurationLabel { ! font-weight: bold; } - .advancedLabel { ! font-weight: bold; } ! .passwordLabel { ! font-weight: bold; } .sessionLabel { ! font-weight: bold; } ! td.logo2menuSpace { ! height: 0.8em; } ! td.footerBody { ! text-align: center; ! } ! table.historyWidgetsTop { ! width: 100%; ! margin-left: 1.5em; ! margin-top: 0.6em; ! margin-bottom: 1.0em; } table.historyWidgetsBottom { ! width: 100%; ! margin-top: 0.6em; } td.historyNavigatorTop { ! text-align: right; } td.historyNavigatorBottom { ! text-align: right; } ! span.bucketsWidgetState { ! font-weight: bold; } ! span.configWidgetState { ! font-weight: bold; } - span.securityWidgetState { - font-weight: bold; - } \ No newline at end of file --- 182,259 ---- .bucketsLabel { ! font-weight: bold; } .magnetsLabel { ! font-weight: bold; } .securityLabel { ! font-weight: bold; } .configurationLabel { ! font-weight: bold; } .advancedLabel { ! font-weight: bold; } ! .passwordLabel { ! font-weight: bold; } .sessionLabel { ! font-weight: bold; } ! .bucketsWidgetStateOn, .bucketsWidgetStateOff { ! font-weight: bold; } ! .configWidgetStateOn, .configWidgetStateOff { ! font-weight: bold; ! } ! ! .securityWidgetStateOn, .securityWidgetStateOff { ! font-weight: bold; ! } ! ! /*********************************************************/ ! /* Positioning */ ! table.historyWidgetsTop { ! width: 100%; ! margin-left: 1.5em; ! margin-top: 0.6em; ! margin-bottom: 1.0em; } table.historyWidgetsBottom { ! width: 100%; ! margin-top: 0.6em; } td.historyNavigatorTop { ! text-align: right; } td.historyNavigatorBottom { ! text-align: right; } ! /*********************************************************/ ! /* Errors */ ! ! div.error01 { ! background-color: transparent; ! color: red; ! font-size: larger; } ! div.error02 { ! background-color: transparent; ! color: red; } |
From: <sta...@us...> - 2003-02-25 23:52:08
|
Update of /cvsroot/popfile/engine/skins In directory sc8-pr-cvs1:/tmp/cvs-serv10993 Modified Files: smallgrey.css Log Message: updates by P. Karlin for 0.18.1 - uses new classes, works better at small sizes - patch # 692933 Index: smallgrey.css =================================================================== RCS file: /cvsroot/popfile/engine/skins/smallgrey.css,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** smallgrey.css 20 Feb 2003 10:37:25 -0000 1.4 --- smallgrey.css 25 Feb 2003 23:52:05 -0000 1.5 *************** *** 1,4 **** H2 { ! font-size: 14pt; font-weight: normal; } --- 1,4 ---- H2 { ! font-size: 170%; font-weight: normal; } *************** *** 8,12 **** border: none; font-family: tahoma, sans-serif; ! font-size: 8pt; font-weight: normal; color: #000000; --- 8,12 ---- border: none; font-family: tahoma, sans-serif; ! font-size: 66%; font-weight: normal; color: #000000; *************** *** 21,25 **** } ! .top, .bottom, .borderTopLeft, .borderTop, .borderTopRight, .borderLeft, .borderRight, .borderBottomLeft, .borderBottom, .borderBottomRight { visibility: hidden; display: none; --- 21,35 ---- } ! .shutdownLink { ! color: #990000; ! background-color: inherit; ! text-decoration: none; ! } ! ! .shutdownLink:hover { ! text-decoration: underline; ! } ! ! .shellTopRow, .shellLeft, .shellBottomRow, .shellRight { visibility: hidden; display: none; *************** *** 28,32 **** .head, td.head { font-weight: bold; ! font-size: 14pt; background-color: #eeeeee; color: #666666; --- 38,42 ---- .head, td.head { font-weight: bold; ! font-size: 140%; background-color: #eeeeee; color: #666666; *************** *** 36,52 **** .shell, .shellTop { border: 2px #cccccc solid; - background-color: #ffffff; - color: #000000; margin: 0px; padding: 0px; } .head a { ! font-size: 12pt; font-weight: normal; } .menu { ! font-size: 12pt; font-weight: normal; width: 100%; --- 46,70 ---- .shell, .shellTop { border: 2px #cccccc solid; margin: 0px; padding: 0px; } + .shell { + color: #000000; + background-color: #ffffff; + } + + .shellTop { + color: #000000; + background-color: #eeeeee; + } + .head a { ! font-size: 120%; font-weight: normal; } .menu { ! font-size: 120%; font-weight: normal; width: 100%; *************** *** 60,64 **** background-color: #cccccc; color: #000000; ! font-size: 14pt; font-weight: normal; text-decoration: none; --- 78,82 ---- background-color: #cccccc; color: #000000; ! font-size: 123%; font-weight: normal; text-decoration: none; *************** *** 79,83 **** background-color: #efefef; color: #0000ff; ! font-size: 14pt; font-weight: normal; text-decoration: none; --- 97,101 ---- background-color: #efefef; color: #0000ff; ! font-size: 123%; font-weight: normal; text-decoration: none; *************** *** 118,121 **** --- 136,162 ---- } + .colorChooserImg { + height: 100%; + width: 0.7em; + } + + .colorChooserTable a:hover { + background-color: transparent; + color: inherit; + } + + .bucketsTable td { + border-top: 1px solid #ffffff; + border-bottom: 1px solid #ffffff; + } + + table.bucketsTable { + margin: 3px; + } + + .lineImg { + width: 4px; + } + tr.rowHighlighted { background-color: #ffffcc; *************** *** 123,130 **** } ! table.settingsTable { border: 1px solid #cccccc; padding: 3px; ! margin: 0px; } --- 164,175 ---- } ! table.settingsTable, td.settingsPanel { border: 1px solid #cccccc; padding: 3px; ! margin: 2px; ! } ! ! .settingsPanel form { ! padding-top: 8px; } *************** *** 135,148 **** } - td.settingsPanel { - border: 1px solid #cccccc; - padding: 3px; - margin: 0px; - } - td.naked { padding: 0px; margin: 0px; ! border: none } --- 180,187 ---- } td.naked { padding: 0px; margin: 0px; ! border: none; } *************** *** 192,201 **** } ! .historyLabel { ! font-weight: normal; ! font-size: 9pt; text-decoration: none; - padding-left: 1px; - padding-right: 2px; } --- 231,238 ---- } ! .historyLabel, .historyLabel a { ! font-weight: bold; ! font-size: 110%; text-decoration: none; } *************** *** 203,209 **** font-weight: bold; font-style: normal; } ! a.historyLabel:hover { text-decoration: underline; } --- 240,248 ---- font-weight: bold; font-style: normal; + color: #000000; + background-color: #ffffcc; } ! .historyLabel a:hover { text-decoration: underline; } *************** *** 241,249 **** border-top: 2px solid #cccccc; border-bottom: 2px solid #cccccc; } ! table.historyWidgetsTop td { ! padding-left: 20px; ! font-weight: bold; } --- 280,293 ---- border-top: 2px solid #cccccc; border-bottom: 2px solid #cccccc; + text-align: center; } ! form { ! margin-top: 5px; ! margin-bottom: 5px; ! } ! ! .historyWidgetsTop .submit { ! margin-right: 1.5em; } *************** *** 254,258 **** table.historyWidgetsBottom td { ! padding-left: 20px; font-weight: bold; } --- 298,302 ---- table.historyWidgetsBottom td { ! padding-left: 1em; font-weight: bold; } *************** *** 269,275 **** td.footerBody { text-align: center; ! padding-left: 5%; ! padding-right: 5%; ! font-size: 8pt; font-weight: bold; } --- 313,319 ---- td.footerBody { text-align: center; ! padding-left: 1%; ! padding-right: 1%; ! font-size: 100%; font-weight: bold; } *************** *** 286,290 **** input, .submit, select { font-family: tahoma, sans-serif; ! font-size: 8pt; font-weight: normal; padding: 0px; --- 330,334 ---- input, .submit, select { font-family: tahoma, sans-serif; ! font-size: 100%; font-weight: normal; padding: 0px; *************** *** 294,310 **** tt { font-family: "lucida console", courier, sans-serif; ! font-size: 9pt; font-weight: normal; } ! span.bucketsWidgetState { font-weight: bold; } ! span.configWidgetState { font-weight: bold; } ! span.securityWidgetState { font-weight: bold; ! } \ No newline at end of file --- 338,394 ---- tt { font-family: "lucida console", courier, sans-serif; ! font-size: 105%; font-weight: normal; } ! span.bucketsWidgetStateOn { font-weight: bold; } ! span.configWidgetStateOn { font-weight: bold; } ! span.securityWidgetStateOn { font-weight: bold; ! } ! ! span.bucketsWidgetStateOff { ! background-color: inherit; ! color: #666666; ! } ! ! span.configWidgetStateOff { ! background-color: inherit; ! color: #666666; ! } ! ! span.securityWidgetStateOff { ! background-color: inherit; ! color: #666666; ! } ! ! .toggleOn { ! background-color: #dddddd; ! color: #000000; ! } ! ! .toggleOff { ! background-color: #bbbbbb; ! color: #000000; ! } ! ! .bucketsTable input { ! font-size: 90%; ! border: 1px; ! } ! ! button, .submit, .reclassifyButton { ! background-color: #dddddd; ! color: #000000; ! } ! ! .deleteButton, .historyWidgetsBottom .submit { ! background-color: #bbbbbb; ! color: #000000; ! } |
From: <jgr...@us...> - 2003-02-25 22:17:43
|
Update of /cvsroot/popfile/engine In directory sc8-pr-cvs1:/tmp/cvs-serv32719 Modified Files: popfile.pl Log Message: Check that the pipe handle is valid in pipeready Index: popfile.pl =================================================================== RCS file: /cvsroot/popfile/engine/popfile.pl,v retrieving revision 1.203 retrieving revision 1.204 diff -C2 -d -r1.203 -r1.204 *** popfile.pl 24 Feb 2003 23:08:45 -0000 1.203 --- popfile.pl 25 Feb 2003 22:17:40 -0000 1.204 *************** *** 101,104 **** --- 101,110 ---- my ( $pipe ) = @_; + # Check that the $pipe is still a valid handle + + if ( !defined( $pipe ) ) { + return 0; + } + if ( $on_windows ) { |
From: <sta...@us...> - 2003-02-25 20:45:47
|
Update of /cvsroot/popfile/engine/skins In directory sc8-pr-cvs1:/tmp/cvs-serv24291 Added Files: StrawberryRose.css Log Message: new skin by David Smith --- NEW FILE: StrawberryRose.css --- /*********************************************************/ /* da Big Kahuna */ body { background-color: #FAC; border: none; font-family: verdana, arial, sans-serif; color: black; font-size: 80%; margin: 10px 20px 20px 20px; } /*********************************************************/ /* General element settings */ h2 { font-family: verdana, arial, sans-serif; font-size: 1.2em; font-weight: bold; color: #000000; background-color: transparent; } hr { color: black; background-color: black; } th { font-family: verdana, arial, sans-serif; font-weight: normal; } td { font-family: verdana, arial, sans-serif; } /* An undecorated table cell - center of shell tables */ td.naked { padding: 0; margin: 0; border: none } /* Text input and drop-down selections */ input, select { color: #000000; background-color: #F2F0F0; border: 1px #000000 solid; font-weight: bold; font-family: verdana, arial, sans-serif; } /* Checkboxes */ .checkbox { color: #000000; background-color: transparent; border: 0; } /*********************************************************/ /* Button settings */ /* All buttons */ .submit, .toggleOn, .toggleOff, .reclassifyButton, .deleteButton, .undoButton { color: #FFFFFF; font-weight: bold; font-family: verdana, arial, sans-serif; padding-left:0; padding-right:0; } .submit:active, .toggleOn:active, .toggleOff:active, .reclassifyButton:active, .deleteButton:active, .undoButton:active { color: #FFFFFF; } /* Basic Buttons (input tags with class "submit") */ .submit { background-color: rgb(135,7,1); border: 2px gray outset; } .submit:active { background-color: rgb(135,7,1); border: 2px gray inset; } /* Toggle Buttons */ .toggleOn { background-color: green; border: 2px gray outset; } .toggleOn:active { background-color: green; border: 2px gray inset; } .toggleOff { background-color: rgb(223,32,32); border: 2px gray outset; } .toggleOff:active { background-color: rgb(223,32,32); border: 2px gray inset; } /* Delete buttons */ .deleteButton { background-color: rgb(135,7,1); border: 2px gray outset; } .deleteButton:active { background-color: rgb(135,7,1); border: 2px gray inset; } /* Undo buttons */ .undoButton { background-color: rgb(0,0,200); border: 2px gray outset; } .undoButton:active { background-color: rgb(0,0,200); border: 2px gray inset; } .reclassifyButton { background-color: rgb(0,0,255); border: 2px gray outset; } .reclassifyButton:active { background-color: rgb(0,0,255); border: 2px gray inset; } /* *** Button Fixes *** */ /* Fix width of security toggle buttons for IE */ .securitySwitch .toggleOn { width: 9em; } .securitySwitch .toggleOff { width: 9em; } /* Reverse the color for these specific buttons */ #securityAcceptPOP3Off { color: #FFFFFF; background-color: green; width: 17em; } #securityAcceptPOP3On { color: #FFFFFF; background-color: rgb(223,32,32); } #securityAcceptHTTPOff { color: #FFFFFF; background-color: green; width: 17em; } #securityAcceptHTTPOn { color: #FFFFFF; background-color: rgb(223,32,32); } /*********************************************************/ /* Global link rules */ :link, :visited { text-decoration: none; } :link:focus, :visited:focus { color: #000000; background-color: #DB6479; } :link { color: #000000; background-color: transparent; } :visited { color: #000000; background-color: transparent; } :link:hover, :visited:hover { color: #000000; background-color: #DB6479; } :link:active, :visited:active { color: #000000; background-color: #DB6479; } /*********************************************************/ /* Custom Link Rules */ /* The big Shutdown link */ .shutdownLink { font-weight: bold; color: black; background-color: transparent; } /* For links in the menu tabs */ .menuLink { font-weight:bold; color: black; background-color: transparent; display: block; width: 100%; } /* For column headers (for sorting) on the History page */ .historyLabel :link:focus, .historyLabel :visited:focus { color: #630601; background-color: #FFAACC; } .historyLabel :link { color: #630601; background-color: #DB6479; } .historyLabel :visited { color: #630601; background-color: #DB6479; } .historyLabel :link:hover, .historyLabel :visited:hover { color: #630601; background-color: #FFAACC; } .historyLabel :link:active, .historyLabel :visited:active { color: #630601; background-color: #FFAACC; } /* For the navigation pages on the History page */ td.historyNavigatorTop :link, td.historyNavigatorBottom :link, td.historyNavigatorTop :visited, td.historyNavigatorBottom :visited { color: rgb(99, 6, 1); background-color: rgb(220, 90, 110); } td.historyNavigatorTop :link:hover, td.historyNavigatorBottom :link:hover, td.historyNavigatorTop :visited:hover, td.historyNavigatorBottom :visited:hover { color: rgb(99, 6, 1); background-color: rgb(255, 170, 204); } /* For viewing messages on the History page */ .messageLink { text-decoration: underline; } /* To prevent the background color from overriding the color in the color picker table */ .colorChooserLink:link:focus, .colorChooserLink:visited:focus { color: black; background-color: transparent; } .colorChooserLink:link:hover, .colorChooserLink:visited:hover { color: black; background-color: transparent; } .colorChooserLink:link:active, .colorChooserLink:visited:active { color: black; background-color: transparent; } /* For wordlist page */ .wordListLink:link:hover, .wordListLink:visited:hover { color: black; background-color: #FFAACC; } /*********************************************************/ /* Major layout elements */ /* Main tables, except footer */ .shell, .shellTop { color: #EEEEEE; background-color: #CC1133; border-style: ridge; border-color: #FFFFFF; border-width: 2px; margin: 0; } /* The header table inside a shell table at the top of the page */ table.head { width: 100%; color: #808080; font-family: verdana, arial, sans-serif; font-weight: bold; background: #FFF; border-style: groove; border-color: #EEE; border-width: 2px; margin: 0; } td.head { font-weight: bold; font-size: 1em; } /* Spacing between header and main */ td.logo2menuSpace { height: 0.8em; } /* The footer table at the bottom of the page */ table.footer { width: 100%; color: #808080; background-color: #FFFFFF; border-style: ridge; border-color: #EEE; border-width: 2px; margin: 1em 0px 0px 0px; } td.footerBody { text-align: center; padding-left: 5%; padding-right: 5%; } /*********************************************************/ /* Main Menu Navigation */ /* Menu Tabs' Table */ .menu { font-size: 1em; font-weight: bold; width: 100%; } /* Spacing on either side of tabs */ .menuIndent { width: 8%; } /* Spacing in between tabs (usually automatic) */ .menuSpacer { } /* All tabs except currently active tab */ .menuStandard { background-color: #DBDF37; width: 14%; border-color: #FFFFFF; border-style: ridge ridge none ridge; border-width: 2px; color: black; } /* Currently active tab */ .menuSelected { background-color: #7CE238; width: 14%; border-color: #FFFFFF; border-style: ridge ridge none ridge; border-width: 2px; color: black; } /*********************************************************/ /* General settings tables and panels */ table.settingsTable { border: 1px solid black; } td.settingsPanel { border: 1px solid black; color: #EEEEEE; background-color: #DB6479; } /*********************************************************/ /* History page settings */ table.historyWidgetsTop { width: 100%; margin-left: 1.5em; margin-top: 0.6em; margin-bottom: 1.0em; } table.historyWidgetsBottom { width: 100%; margin-top: 0.6em; } td.historyNavigatorTop { text-align: right; } td.historyNavigatorBottom { text-align: right; } table.historyTable { border-collapse: collapse; border: 0 solid; } tr.rowHighlighted { color: black; background-color: #7CE238; } .historyTable td { border-right: 2px solid #C13; } /* Don't put borders in the top20 table */ .top20 td { border-right: 0 solid; } /* Open message table */ table.openMessageTable { border: 2px solid black; } /* Don't put borders in the openMessage table */ table.openMessageTable td { border-right: 0 solid; } td.openMessageBody { color: black; background-color: rgb(250,220,220); font-size: 1.2em; } td.openMessageCloser { text-align: right; color: black; background-color: #7CE238; font-weight: bold; } /* Top-20 stuff */ .top20Buckets { width: 100%; color: black; background-color: rgb(250,220,220); } .top20Words { width: 100%; color: black; background-color: rgb(250,220,220); } /*********************************************************/ /* Graphic colors, bars, etc */ /* Bucket and history listings alternating row colors */ tr.rowOdd { color: black; background-color: #C2DC87; } tr.rowEven { color: black; background-color: #A4CA4A; } /* Accuracy statistics bar colors*/ .accuracy0to49 { color: black; background-color: red; } .accuracy50to93 { color: black; background-color: yellow; } .accuracy94to100 { color: black; background-color: green; } .lineImg { width: 0.3em; } /* Bar chart legend font */ span.graphFont { font-size: x-small; } /*********************************************************/ /* Labels */ .historyLabelSort { font-weight: bold; font-style: normal; } .bucketsLabel { font-weight: bold; } .magnetsLabel { font-weight: bold; } .securityLabel { font-weight: bold; } .configurationLabel { font-weight: bold; } .advancedLabel { font-weight: bold; } .passwordLabel { font-weight: bold; } .sessionLabel { font-weight: bold; } .configWidgetStateOn, .bucketsWidgetStateOn, .securityWidgetStateOn { font-weight: bold; } /*********************************************************/ /* Errors */ div.error01 { color: red; background-color: black; font-size: larger; } div.error02 { color: red; background-color: black; } /*********************************************************/ /* Other stuff */ .advancedWidgets { margin-top: 1em; } |
From: <sta...@us...> - 2003-02-25 06:56:49
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv29631 Modified Files: HTML.pm Log Message: D.Smith fix adds a label to each Remove checkbox on the History page Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.91 retrieving revision 1.92 diff -C2 -d -r1.91 -r1.92 *** HTML.pm 25 Feb 2003 06:39:36 -0000 1.91 --- HTML.pm 25 Feb 2003 06:56:45 -0000 1.92 *************** *** 2949,2953 **** $body .= "</td>\n<td>\n"; ! $body .= "<input type=\"checkbox\" class=\"checkbox\" name=\"remove\" value=\"" . ( $i+1 ) . "\" />$self->{language}{Remove}\n"; $body .= "</td>\n</tr>\n"; --- 2949,2954 ---- $body .= "</td>\n<td>\n"; ! $body .= "<label class=\"removeLabel\" for=\"remove_" . ( $i+1 ) . "\">$self->{language}{Remove}</label>\n"; ! $body .= "<input type=\"checkbox\" id=\"remove_" . ( $i+1 ) . "\" class=\"checkbox\" name=\"remove\" value=\"" . ( $i+1 ) . "\" />\n"; $body .= "</td>\n</tr>\n"; |
From: <sta...@us...> - 2003-02-25 06:39:39
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv22322 Modified Files: HTML.pm Log Message: restored spaces that had changed to tab characters; restored D.Smith's amp fixes in lines 2211-2223 Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.90 retrieving revision 1.91 diff -C2 -d -r1.90 -r1.91 *** HTML.pm 25 Feb 2003 03:39:18 -0000 1.90 --- HTML.pm 25 Feb 2003 06:39:36 -0000 1.91 *************** *** 65,76 **** # The subkeys are # ! # cull Used internally by load_history_cache (see there for details) ! # from The address the email was from ! # short_from Version of from with max 40 characters ! # subject The subject of the email ! # short_subject Version of subject with max 40 characters ! # magnet If a magnet was used to classify the mail contains the magnet string ! # bucket The classification of the mail ! # reclassified 1 if the mail has already been reclassified [...1105 lines suppressed...] ! # TODO This may be UNSAFE, please write a better comment that explains ! # why this might be unsafe. What does unsafe mean in this context? ! $self->history_copy_file( "$self->{configuration}->{configuration}{msgdir}$mail_file", $path, $mail_file ); ! } ! } ! # Before deleting the file make sure that the appropriate entry in the ! # history cache is also remove ! delete $self->{history_}{$mail_file}; ! # Now remove the files from the disk, remove both the msg file containing ! # the mail message and its associated CLS file ! unlink( "$self->{configuration}->{configuration}{msgdir}$mail_file" ); ! $mail_file =~ s/msg$/cls/; ! unlink( "$self->{configuration}->{configuration}{msgdir}$mail_file" ); } |
From: <sta...@us...> - 2003-02-25 04:38:36
|
Update of /cvsroot/popfile/engine/skins In directory sc8-pr-cvs1:/tmp/cvs-serv21473 Modified Files: default.css Log Message: D. Smith rewrite/update Index: default.css =================================================================== RCS file: /cvsroot/popfile/engine/skins/default.css,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** default.css 19 Feb 2003 17:30:36 -0000 1.9 --- default.css 25 Feb 2003 04:38:32 -0000 1.10 *************** *** 1,189 **** body { ! background-color: #FFFFFF; ! font-family: sans-serif; ! color: #000000; } .shell, .shellTop { ! background-color: #ededca; ! border: 3px #cccc99 solid; ! color: #000000; } table.head { width: 100%; ! } td.head { font-weight: normal; ! font-size: 22pt; } ! .menu { ! font-size: 14pt; ! font-weight: bold; ! width: 100%; } ! .menuSelected { ! background-color: #cccc99; ! width: 14%; ! color: #000000; } ! .menuStandard { ! background-color: #ededca; ! width: 14%; ! color: #000000; } ! .menuIndent { ! width: 8%; } ! tr.rowEven { ! background-color: #ededca; ! color: #000000; } ! tr.rowOdd { ! background-color: #dfdfaf; ! color: #000000; } ! tr.rowHighlighted { ! background-color: #cccc99; ! color: #eeeeee; } ! table.footer { ! width: 100%; } .settingsTable { ! border: 1px solid #cccc99; } ! .openMessageTable, .lookupResultsTable { ! border: 3px solid #cccc99; } ! td.openMessageCloser { ! text-align: right; } td.openMessageBody { ! text-align: left; } ! .settingsPanel { ! border: 1px solid #cccc99; } ! td.naked { ! padding: 0px; ! margin: 0px; ! border: none } ! a.changeSettingLink { ! background-color: transparent; ! color: blue; } td.accuracy0to49 { ! background-color: red; ! color: black; } td.accuracy50to93 { ! background-color: yellow; ! color: black; } td.accuracy94to100 { ! background-color: green; ! color: black; } div.error01 { ! background-color: transparent; ! color: red; ! font-size: larger; } div.error02 { ! background-color: transparent; ! color: red; } ! span.graphFont { ! font-size: x-small; ! } .historyLabel { ! font-weight: bold; } .bucketsLabel { ! font-weight: bold; } .magnetsLabel { ! font-weight: bold; } .securityLabel { ! font-weight: bold; } .configurationLabel { ! font-weight: bold; } - .advancedLabel { ! font-weight: bold; } .passwordLabel { ! font-weight: bold; } .sessionLabel { ! font-weight: bold; } ! td.logo2menuSpace { ! height: 0.8em; } ! td.footerBody { ! text-align: center; ! } ! ! table.historyWidgetsTop { ! width: 100%; ! margin-left: 1.5em; ! margin-top: 0.6em; ! margin-bottom: 1.0em; } ! table.historyWidgetsBottom { ! width: 100%; ! margin-top: 0.6em; } ! td.historyNavigatorTop { ! text-align: right; } ! td.historyNavigatorBottom { ! text-align: right; } ! .historyLabel em { ! font-weight: bold; ! font-style: normal; } --- 1,220 ---- + /*********************************************************/ + /* Main Body */ + body { ! color: #000000; ! background-color: #FFFFFF; ! font-family: sans-serif; ! font-size: 100%; } + /*********************************************************/ + /* Shell structure */ + .shell, .shellTop { ! color: #000000; ! background-color: #EDEDCA; ! border: 3px #CCCC99 solid; } table.head { width: 100%; ! } td.head { font-weight: normal; ! font-size: 1.8em; } ! table.footer { ! width: 100%; } ! td.footerBody { ! text-align: center; } ! td.naked { ! padding: 0; ! margin: 0; ! border: 0; } ! td.logo2menuSpace { ! height: 0.8em; } ! /*********************************************************/ ! /* Menu Settings */ ! ! .menu { ! font-size: 1.2em; ! font-weight: bold; ! width: 100%; } ! .menuSelected { ! color: #000000; ! background-color: #CCCC99; ! width: 14%; } ! .menuStandard { ! color: #000000; ! background-color: #EDEDCA; ! width: 14%; } ! .menuIndent { ! width: 8%; } + /*********************************************************/ + /* Table Settings */ + .settingsTable { ! border: 1px solid #CCCC99; } ! .settingsPanel { ! border: 1px solid #CCCC99; } ! .openMessageTable { ! border: 3px solid #CCCC99; } td.openMessageBody { ! text-align: left; } ! td.openMessageCloser { ! text-align: right; } ! tr.rowEven { ! color: #000000; ! background-color: #EDEDCA; } ! tr.rowOdd { ! color: #000000; ! background-color: #DFDFAF; ! } ! ! tr.rowHighlighted { ! color: #EEEEEE; ! background-color: #EDEDCA; ! } ! ! .lookupResultsTable { ! border: 3px solid #CCCC99; } + /*********************************************************/ + /* Graphics */ + td.accuracy0to49 { ! background-color: red; ! color: black; } td.accuracy50to93 { ! background-color: yellow; ! color: black; } td.accuracy94to100 { ! background-color: green; ! color: black; ! } ! ! span.graphFont { ! font-size: x-small; } + /*********************************************************/ + /* Errors */ + div.error01 { ! background-color: transparent; ! color: red; ! font-size: larger; } div.error02 { ! background-color: transparent; ! color: red; } ! /*********************************************************/ ! /* Form Labels */ .historyLabel { ! font-weight: bold; ! } ! ! .historyLabelSort { ! font-weight: bold; ! font-style: normal; } .bucketsLabel { ! font-weight: bold; } .magnetsLabel { ! font-weight: bold; } .securityLabel { ! font-weight: bold; } .configurationLabel { ! font-weight: bold; } .advancedLabel { ! font-weight: bold; } .passwordLabel { ! font-weight: bold; } .sessionLabel { ! font-weight: bold; } ! .bucketsWidgetStateOn, .bucketsWidgetStateOff { ! font-weight: bold; } ! .configWidgetStateOn, .configWidgetStateOff { ! font-weight: bold; } ! .securityWidgetStateOn, .securityWidgetStateOff { ! font-weight: bold; } ! /*********************************************************/ ! /* Positioning */ ! ! table.historyWidgetsTop { ! width: 100%; ! margin-left: 1.5em; ! margin-top: 0.6em; ! margin-bottom: 1.0em; } ! table.historyWidgetsBottom { ! width: 100%; ! margin-top: 0.6em; } ! .historyNavigatorTop, .historyNavigatorBottom { ! text-align: right; } *************** *** 192,204 **** } ! span.bucketsWidgetState { ! font-weight: bold; ! } ! ! span.configWidgetState { ! font-weight: bold; } - span.securityWidgetState { - font-weight: bold; - } \ No newline at end of file --- 223,228 ---- } ! .advancedWidgets { ! margin-top: 1em; } |
From: <jgr...@us...> - 2003-02-25 03:39:23
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv3132/UI Modified Files: HTML.pm Log Message: Factor the search and filter form out as a separate function and use it in the two places where we need to display that form so that we don't have duplicated code Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.89 retrieving revision 1.90 diff -C2 -d -r1.89 -r1.90 *** HTML.pm 25 Feb 2003 03:34:12 -0000 1.89 --- HTML.pm 25 Feb 2003 03:39:18 -0000 1.90 *************** *** 2632,2635 **** --- 2632,2672 ---- # --------------------------------------------------------------------------------------------- # + # get_search_filter_widget + # + # Returns the form that contains the fields for searching and filtering the history + # page + # + # --------------------------------------------------------------------------------------------- + sub get_search_filter_widget + { + my ( $self ) = @_; + + my $body = "<form action=\"/history\">\n"; + $body .= "<label class=\"historyLabel\" for=\"historySearch\">$self->{language}{History_SearchMessage}:</label>\n"; + $body .= "<input type=\"text\" id=\"historySearch\" name=\"search\" "; + $body .= "value=\"$self->{form}{search}\"" if (defined $self->{form}{search}); + $body .= " />\n"; + $body .= "<input type=\"submit\" class=\"submit\" name=\"setsearch\" value=\"$self->{language}{Find}\" />\n"; + $body .= " <label class=\"historyLabel\" for=\"historyFilter\">$self->{language}{History_FilterBy}:</label>\n"; + $body .= "<input type=\"hidden\" name=\"sort\" value=\"$self->{form}{sort}\" />\n"; + $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key}\" />\n"; + $body .= "<select name=\"filter\" id=\"historyFilter\">\n<option value=\"\"></option>"; + my @buckets = sort keys %{$self->{classifier}->{total}}; + foreach my $abucket (@buckets) { + $body .= "<option value=\"$abucket\""; + $body .= " selected" if ( ( defined($self->{form}{filter}) ) && ( $self->{form}{filter} eq $abucket ) ); + $body .= ">$abucket</option>\n"; + } + $body .= "<option value=\"__filter__magnet\"" . ($self->{form}{filter} eq '__filter__magnet'?' selected':'') . "><$self->{language}{History_ShowMagnet}></option>\n"; + $body .= "<option value=\"unclassified\"" . ($self->{form}{filter} eq 'unclassified'?' selected':'') . "><unclassified></option>\n"; + $body .= "</select>\n<input type=\"submit\" class=\"submit\" name=\"setfilter\" value=\"$self->{language}{Filter}\" />\n"; + $body .= "<input type=\"submit\" class=\"submit\" name=\"reset_filter_search\" value=\"$self->{language}{History_ResetSearch}\" />\n"; + $body .= "</form>\n"; + + return $body; + } + + # --------------------------------------------------------------------------------------------- + # # history_page - get the message classification history page # *************** *** 2790,2815 **** # Search From/Subject widget $body .= "<td colspan=\"5\" valign=middle>\n"; ! $body .= "<form action=\"/history\">\n"; ! $body .= "<label class=\"historyLabel\" for=\"historySearch\">$self->{language}{History_SearchMessage}:</label>\n"; ! $body .= "<input type=\"text\" id=\"historySearch\" name=\"search\" "; ! $body .= "value=\"$self->{form}{search}\"" if (defined $self->{form}{search}); ! $body .= " />\n"; ! $body .= "<input type=\"submit\" class=\"submit\" name=\"setsearch\" value=\"$self->{language}{Find}\" />\n"; ! $body .= " <label class=\"historyLabel\" for=\"historyFilter\">$self->{language}{History_FilterBy}:</label>\n"; ! $body .= "<input type=\"hidden\" name=\"sort\" value=\"$self->{form}{sort}\" />\n"; ! $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key}\" />\n"; ! $body .= "<select name=\"filter\" id=\"historyFilter\">\n<option value=\"\"></option>"; ! my @buckets = sort keys %{$self->{classifier}->{total}}; ! foreach my $abucket (@buckets) { ! $body .= "<option value=\"$abucket\""; ! $body .= " selected" if ( ( defined($self->{form}{filter}) ) && ( $self->{form}{filter} eq $abucket ) ); ! $body .= ">$abucket</option>\n"; ! } ! $body .= "<option value=\"__filter__magnet\"" . ($self->{form}{filter} eq '__filter__magnet'?' selected':'') . "><$self->{language}{History_ShowMagnet}></option>\n"; ! $body .= "<option value=\"unclassified\"" . ($self->{form}{filter} eq 'unclassified'?' selected':'') . "><unclassified></option>\n"; ! $body .= "</select>\n<input type=\"submit\" class=\"submit\" name=\"setfilter\" value=\"$self->{language}{Filter}\" />\n"; ! $body .= "<input type=\"submit\" class=\"submit\" name=\"reset_filter_search\" value=\"$self->{language}{History_ResetSearch}\" />\n"; ! $body .= "</form>\n"; $body .= "</td>\n</tr>\n</table>\n"; --- 2827,2833 ---- # Search From/Subject widget + my @buckets = sort keys %{$self->{classifier}->{total}}; $body .= "<td colspan=\"5\" valign=middle>\n"; ! $body .= $self->get_search_filter_widget(); $body .= "</td>\n</tr>\n</table>\n"; *************** *** 3030,3047 **** $body .= "\n</td>\n</tr>\n</table>\n"; } else { ! $body .= "<h2 class=\"history\">$self->{language}{History_Title}$filtered</h2><br /><br /><span class=\"bucketsLabel\">$self->{language}{History_NoMessages}.</span><br /><br /><form action=\"/history\"><input type=hidden name=session value=\"$self->{session_key}\"><input type=hidden name=sort value=\"$self->{form}{sort}\"><select name=filter><option value=\"\"></option>"; ! ! foreach my $abucket (sort keys %{$self->{classifier}->{total}}) { ! $body .= "<option value=\"$abucket\""; ! $body .= " selected" if ( ( defined($self->{form}{filter}) ) && ( $self->{form}{filter} eq $abucket ) ); ! $body .= ">$abucket</option>"; ! } ! ! $body .= "<option value=__filter__magnet>\n<$self->{language}{History_ShowMagnet}>\n"; ! $body .= "</option>\n"; ! $body .= "<option value=\"unclassified\"" . (($self->{form}{filter} eq 'unclassified')?' selected':'') . "><unclassified></option>\n"; ! $body .= "</select>\n"; ! $body .="<input type=\"submit\" class=\"submit\" name=\"setfilter\" value=\"$self->{language}{Filter}\" />\n"; ! $body .= "<input type=\"submit\" class=\"submit\" name=\"reset_filter_search\" value=\"$self->{language}{History_ResetSearch}\" />\n</form>\n"; } --- 3048,3053 ---- $body .= "\n</td>\n</tr>\n</table>\n"; } else { ! $body .= "<h2 class=\"history\">$self->{language}{History_Title}$filtered</h2><br /><br /><span class=\"bucketsLabel\">$self->{language}{History_NoMessages}.</span><br /><br />"; ! $body .= $self->get_search_filter_widget(); } |
From: <jgr...@us...> - 2003-02-25 03:34:15
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv1867/UI Modified Files: HTML.pm Log Message: Clicking the History tab will clear any currently set filters and restore the full history; it does not force a reload of the cache unless the cache was invalidated between the last time the page was loaded and the click; all sort, search and filter will be cleared Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.88 retrieving revision 1.89 diff -C2 -d -r1.88 -r1.89 *** HTML.pm 25 Feb 2003 03:05:59 -0000 1.88 --- HTML.pm 25 Feb 2003 03:34:12 -0000 1.89 *************** *** 530,534 **** # History menu item $result .= "<td class=\"$tab[2]\" align=\"center\">\n"; ! $result .= "<a class=\"menuLink\" href=\"/history?session=$self->{session_key}\">"; $result .= "\n$self->{language}{Header_History}</a>\n"; $result .= "</td>\n<td class=\"menuSpacer\"></td>\n"; --- 530,534 ---- # History menu item $result .= "<td class=\"$tab[2]\" align=\"center\">\n"; ! $result .= "<a class=\"menuLink\" href=\"/history?session=$self->{session_key}&setfilter=\">"; $result .= "\n$self->{language}{Header_History}</a>\n"; $result .= "</td>\n<td class=\"menuSpacer\"></td>\n"; |
From: <jgr...@us...> - 2003-02-25 03:06:11
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv26720/UI Modified Files: HTML.pm Log Message: Added a permanent to zonk3r's excellent POPFile FAQ at the bottom of the home page Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.87 retrieving revision 1.88 diff -C2 -d -r1.87 -r1.88 *** HTML.pm 25 Feb 2003 01:23:39 -0000 1.87 --- HTML.pm 25 Feb 2003 03:05:59 -0000 1.88 *************** *** 622,625 **** --- 622,626 ---- $result .= "$self->{language}{Footer_Manual}</a> - \n"; + $result .= "<a class=\"bottomLink\" href=\"http://sourceforge.net/docman/display_doc.php?docid=14421&group_id=63137\">FAQ</a> - \n"; $result .= "<a class=\"bottomLink\" href=\"http://popfile.sourceforge.net/\">$self->{language}{Footer_HomePage}</a> - \n"; $result .= "<a class=\"bottomLink\" href=\"http://sourceforge.net/forum/forum.php?forum_id=213876\">$self->{language}{Footer_FeedMe}</a> - \n"; |