CRLF->LF
authorjongfoster <jongfoster@users.sourceforge.net>
Fri, 25 May 2001 22:33:40 +0000 (22:33 +0000)
committerjongfoster <jongfoster@users.sourceforge.net>
Fri, 25 May 2001 22:33:40 +0000 (22:33 +0000)
showargs.c
w32.rc

index 77172e7..7bbac02 100644 (file)
@@ -1,4 +1,4 @@
-const char showargs_rcs[] = "$Id: showargs.c,v 1.4 2001/05/20 16:44:47 jongfoster Exp $";
+const char showargs_rcs[] = "$Id: showargs.c,v 1.5 2001/05/22 18:54:49 oes Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/showargs.c,v $
@@ -33,6 +33,50 @@ const char showargs_rcs[] = "$Id: showargs.c,v 1.4 2001/05/20 16:44:47 jongfoste
  *
  * Revisions   :
  *    $Log: showargs.c,v $
+ *    Revision 1.5  2001/05/22 18:54:49  oes
+ *
+ *    - Enabled filtering banners by size rather than URL
+ *      by adding patterns that replace all standard banner
+ *      sizes with the "Junkbuster" gif to the re_filterfile
+ *
+ *    - Enabled filtering WebBugs by providing a pattern
+ *      which kills all 1x1 images
+ *
+ *    - Added support for PCRE_UNGREEDY behaviour to pcrs,
+ *      which is selected by the (nonstandard and therefore
+ *      capital) letter 'U' in the option string.
+ *      It causes the quantifiers to be ungreedy by default.
+ *      Appending a ? turns back to greedy (!).
+ *
+ *    - Added a new interceptor ijb-send-banner, which
+ *      sends back the "Junkbuster" gif. Without imagelist or
+ *      MSIE detection support, or if tinygif = 1, or the
+ *      URL isn't recognized as an imageurl, a lame HTML
+ *      explanation is sent instead.
+ *
+ *    - Added new feature, which permits blocking remote
+ *      script redirects and firing back a local redirect
+ *      to the browser.
+ *      The feature is conditionally compiled, i.e. it
+ *      can be disabled with --disable-fast-redirects,
+ *      plus it must be activated by a "fast-redirects"
+ *      line in the config file, has its own log level
+ *      and of course wants to be displayed by show-proxy-args
+ *      Note: Boy, all the #ifdefs in 1001 locations and
+ *      all the fumbling with configure.in and acconfig.h
+ *      were *way* more work than the feature itself :-(
+ *
+ *    - Because a generic redirect template was needed for
+ *      this, tinygif = 3 now uses the same.
+ *
+ *    - Moved GIFs, and other static HTTP response templates
+ *      to project.h
+ *
+ *    - Some minor fixes
+ *
+ *    - Removed some >400 CRs again (Jon, you really worked
+ *      a lot! ;-)
+ *
  *    Revision 1.4  2001/05/20 16:44:47  jongfoster
  *    Removing last hardcoded JunkBusters.com URLs.
  *
@@ -120,7 +164,7 @@ char *strsav(char *old, const char *text_to_append)
       if ((p = realloc(old, new_len)) == NULL)
       {
          log_error(LOG_LEVEL_FATAL, "realloc(%d) bytes for proxy_args failed!", new_len);
-         /* Never get here - LOG_LEVEL_FATAL causes program exit */\r
+         /* Never get here - LOG_LEVEL_FATAL causes program exit */
       }
    }
    else
@@ -128,7 +172,7 @@ char *strsav(char *old, const char *text_to_append)
       if ((p = (char *)malloc(new_len)) == NULL)
       {
          log_error(LOG_LEVEL_FATAL, "malloc(%d) bytes for proxy_args failed!", new_len);
-         /* Never get here - LOG_LEVEL_FATAL causes program exit */\r
+         /* Never get here - LOG_LEVEL_FATAL causes program exit */
       }
    }
 
@@ -351,8 +395,8 @@ void end_proxy_args(void)
    SHOW_RCS(showargs_rcs)
    SHOW_RCS(ssplit_h_rcs)
    SHOW_RCS(ssplit_rcs)
-#ifdef _WIN32\r
-#ifndef _WIN_CONSOLE\r
+#ifdef _WIN32
+#ifndef _WIN_CONSOLE
    SHOW_RCS(w32log_h_rcs)
    SHOW_RCS(w32log_rcs)
    SHOW_RCS(w32res_h_rcs)
@@ -360,7 +404,7 @@ void end_proxy_args(void)
    SHOW_RCS(w32rulesdlg_rcs)
    SHOW_RCS(w32taskbar_h_rcs)
    SHOW_RCS(w32taskbar_rcs)
-#endif /* ndef _WIN_CONSOLE */\r
+#endif /* ndef _WIN_CONSOLE */
    SHOW_RCS(win32_h_rcs)
    SHOW_RCS(win32_rcs)
 #endif /* def _WIN32 */
@@ -471,9 +515,9 @@ void end_proxy_args(void)
 
    b = strsav(b,
       "<small><small><p>\n"
-      "The " BANNER " Proxy - \n"\r
-      "<a href=\"" HOME_PAGE_URL "\">" HOME_PAGE_URL "</a><p>\n"\r
-      "Copyright &#169; 2001 <a href=\"" HOME_PAGE_URL "\">the SourceForge IJBSWA team</a><br>\n"\r
+      "The " BANNER " Proxy - \n"
+      "<a href=\"" HOME_PAGE_URL "\">" HOME_PAGE_URL "</a><p>\n"
+      "Copyright &#169; 2001 <a href=\"" HOME_PAGE_URL "\">the SourceForge IJBSWA team</a><br>\n"
       "Copyright &#169; 1997 <a href=\"http://www.junkbusters.com/\">\n" "Junkbusters Corporation</a><br>\n"
       "Copying and distribution permitted under the "
       "<a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU General Public License.</a>\n"
diff --git a/w32.rc b/w32.rc
index 5d991a4..2bf24ef 100644 (file)
--- a/w32.rc
+++ b/w32.rc
-/*********************************************************************\r
- *\r
- * File        :  $Source: /cvsroot/ijbswa/current/w32.rc,v $\r
- *\r
- * Purpose     :  Windows GUI resource script.\r
- *\r
- * Copyright   :  Written by and Copyright (C) 2001 the SourceForge\r
- *                IJBSWA team.  http://ijbswa.sourceforge.net\r
- *\r
- *                Based on the Internet Junkbuster originally written\r
- *                by and Copyright (C) 1997 Anonymous Coders and \r
- *                Junkbusters Corporation.  http://www.junkbusters.com\r
- *\r
- *                This program is free software; you can redistribute it \r
- *                and/or modify it under the terms of the GNU General\r
- *                Public License as published by the Free Software\r
- *                Foundation; either version 2 of the License, or (at\r
- *                your option) any later version.\r
- *\r
- *                This program is distributed in the hope that it will\r
- *                be useful, but WITHOUT ANY WARRANTY; without even the\r
- *                implied warranty of MERCHANTABILITY or FITNESS FOR A\r
- *                PARTICULAR PURPOSE.  See the GNU General Public\r
- *                License for more details.\r
- *\r
- *                The GNU General Public License should be included with\r
- *                this file.  If not, you can view it at\r
- *                http://www.gnu.org/copyleft/gpl.html\r
- *                or write to the Free Software Foundation, Inc., 59\r
- *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.\r
- *\r
- * Revisions   :\r
+/*********************************************************************
+ *
+ * File        :  $Source: /cvsroot/ijbswa/current/w32.rc,v $
+ *
+ * Purpose     :  Windows GUI resource script.
+ *
+ * Copyright   :  Written by and Copyright (C) 2001 the SourceForge
+ *                IJBSWA team.  http://ijbswa.sourceforge.net
+ *
+ *                Based on the Internet Junkbuster originally written
+ *                by and Copyright (C) 1997 Anonymous Coders and 
+ *                Junkbusters Corporation.  http://www.junkbusters.com
+ *
+ *                This program is free software; you can redistribute it 
+ *                and/or modify it under the terms of the GNU General
+ *                Public License as published by the Free Software
+ *                Foundation; either version 2 of the License, or (at
+ *                your option) any later version.
+ *
+ *                This program is distributed in the hope that it will
+ *                be useful, but WITHOUT ANY WARRANTY; without even the
+ *                implied warranty of MERCHANTABILITY or FITNESS FOR A
+ *                PARTICULAR PURPOSE.  See the GNU General Public
+ *                License for more details.
+ *
+ *                The GNU General Public License should be included with
+ *                this file.  If not, you can view it at
+ *                http://www.gnu.org/copyleft/gpl.html
+ *                or write to the Free Software Foundation, Inc., 59
+ *                Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * Revisions   :
  *    $Log: w32.rc,v $
+ *    Revision 1.2  2001/05/20 01:21:20  jongfoster
+ *    Version 2.9.4 checkin.
+ *    - Merged popupfile and cookiefile, and added control over PCRS
+ *      filtering, in new "permissionsfile".
+ *    - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
+ *      file error you now get a message box (in the Win32 GUI) rather
+ *      than the program exiting with no explanation.
+ *    - Made killpopup use the PCRS MIME-type checking and HTTP-header
+ *      skipping.
+ *    - Removed tabs from "config"
+ *    - Moved duplicated url parsing code in "loaders.c" to a new funcition.
+ *    - Bumped up version number.
+ *
  *    Revision 1.1.1.1  2001/05/15 13:59:07  oes
  *    Initial import of version 2.9.3 source tree
- *\r
- *\r
- *********************************************************************/\r
-\r
-#include <windows.h>\r
-#include "config.h"\r
-#include "w32res.h"\r
-\r
-#ifdef __MINGW32__\r
-#include "cygwin.h"\r
-#endif\r
-\r
-/****************************************************************************\r
- *  Language-neutral resources\r
- ****************************************************************************/\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)\r
-#ifdef _WIN32\r
-/* LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL */\r
-#pragma code_page(1252)\r
-#endif /* _WIN32 */\r
-\r
-/*\r
- * Icons\r
- *\r
- * Icon with lowest ID value placed first to ensure application icon\r
- * remains consistent on all systems.\r
- */\r
-IDI_JUNKBUSTER          ICON    DISCARDABLE     "icons/junkbust.ico"\r
-IDI_JUNKBUSTER1         ICON    DISCARDABLE     "icons/ico00001.ico"\r
-IDI_JUNKBUSTER2         ICON    DISCARDABLE     "icons/ico00002.ico"\r
-IDI_JUNKBUSTER3         ICON    DISCARDABLE     "icons/ico00003.ico"\r
-IDI_JUNKBUSTER4         ICON    DISCARDABLE     "icons/ico00004.ico"\r
-IDI_JUNKBUSTER5         ICON    DISCARDABLE     "icons/ico00005.ico"\r
-IDI_JUNKBUSTER6         ICON    DISCARDABLE     "icons/ico00006.ico"\r
-IDI_JUNKBUSTER7         ICON    DISCARDABLE     "icons/ico00007.ico"\r
-IDI_JUNKBUSTER8         ICON    DISCARDABLE     "icons/ico00008.ico"\r
-IDI_IDLE                ICON    DISCARDABLE     "icons/idle.ico"\r
-\r
-#endif /* Neutral resources */\r
-\r
-\r
-/****************************************************************************\r
- *  English (U.S.) resources\r
- ****************************************************************************/\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-/* LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US */\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-/*\r
- * Menus\r
- */\r
-\r
-IDR_TRAYMENU MENU DISCARDABLE\r
-BEGIN\r
-    POPUP "Popup"\r
-    BEGIN\r
-        MENUITEM "E&xit JunkBuster",   ID_FILE_EXIT\r
-        MENUITEM                       SEPARATOR\r
-        POPUP "&Options"\r
-        BEGIN\r
-            MENUITEM "&Junkbuster...",              ID_TOOLS_EDITJUNKBUSTER\r
-            MENUITEM                                SEPARATOR\r
-            MENUITEM "&Blockers...",                ID_TOOLS_EDITBLOCKERS\r
-            MENUITEM "&Permissions...",             ID_TOOLS_EDITPERMISSIONS\r
-            MENUITEM "&Forward...",                 ID_TOOLS_EDITFORWARD\r
-#ifdef ACL_FILES\r
-            MENUITEM "&Access Control Lists...",    ID_TOOLS_EDITACLS\r
-#endif /* def ACL_FILES */\r
-#ifdef USE_IMAGE_LIST\r
-            MENUITEM "&Images...",                  ID_TOOLS_EDITIMAGE\r
-#endif /* def USE_IMAGE_LIST */\r
-#ifdef PCRS\r
-            MENUITEM "Perl &Regexps...",            ID_TOOLS_EDITPERLRE\r
-#endif /* def PCRS */\r
-#ifdef TRUST_FILES\r
-            MENUITEM "&Trust...",                   ID_TOOLS_EDITTRUST\r
-#endif /* def TRUST_FILES */\r
-        END\r
-        MENUITEM                              SEPARATOR\r
-#ifdef TOGGLE\r
-        MENUITEM "&Enable",                   ID_TOGGLE_IJB, CHECKED\r
-#endif\r
-        MENUITEM "&Reload config",            ID_RELOAD_CONFIG\r
-        MENUITEM "Show &JunkBuster Window",   ID_SHOWWINDOW\r
-    END\r
-END\r
-\r
-IDR_LOGVIEW MENU DISCARDABLE\r
-BEGIN\r
-    POPUP "&File"\r
-    BEGIN\r
-        MENUITEM "E&xit",                       ID_FILE_EXIT\r
-    END\r
-    POPUP "&Edit"\r
-    BEGIN\r
-        MENUITEM "Copy",                        ID_EDIT_COPY\r
-    END\r
-    POPUP "&View"\r
-    BEGIN\r
-        MENUITEM "&Clear Log",                  ID_VIEW_CLEARLOG\r
-        MENUITEM                                SEPARATOR\r
-        MENUITEM "&Log Messages",               ID_VIEW_LOGMESSAGES, CHECKED\r
-        MENUITEM "Message &Highlighting",       ID_VIEW_MESSAGEHIGHLIGHTING, CHECKED\r
-        MENUITEM "Limit &Buffer Size",          ID_VIEW_LIMITBUFFERSIZE, CHECKED\r
-        MENUITEM "&Activity Animation",         ID_VIEW_ACTIVITYANIMATION, CHECKED\r
-    END\r
-    POPUP "&Options"\r
-    BEGIN\r
-#ifdef TOGGLE\r
-        MENUITEM "&Enable",                     ID_TOGGLE_IJB, CHECKED\r
-        MENUITEM "&Reload config",              ID_RELOAD_CONFIG\r
-        MENUITEM                                SEPARATOR\r
-#endif\r
-        MENUITEM "&Junkbuster...",              ID_TOOLS_EDITJUNKBUSTER\r
-        MENUITEM                                SEPARATOR\r
-        MENUITEM "&Blockers...",                ID_TOOLS_EDITBLOCKERS\r
-        MENUITEM "&Permissions...",             ID_TOOLS_EDITPERMISSIONS\r
-        MENUITEM "&Forward...",                 ID_TOOLS_EDITFORWARD\r
-#ifdef ACL_FILES\r
-            MENUITEM "&Access Control Lists...",ID_TOOLS_EDITACLS\r
-#endif /* def ACL_FILES */\r
-#ifdef USE_IMAGE_LIST\r
-            MENUITEM "&Images...",              ID_TOOLS_EDITIMAGE\r
-#endif /* def USE_IMAGE_LIST */\r
-#ifdef PCRS\r
-            MENUITEM "Perl &Regexps...",        ID_TOOLS_EDITPERLRE\r
-#endif /* def PCRS */\r
-#ifdef TRUST_FILES\r
-            MENUITEM "&Trust...",               ID_TOOLS_EDITTRUST\r
-#endif /* def TRUST_FILES */\r
-    END\r
-    POPUP "&Help"\r
-    BEGIN\r
-        MENUITEM "Junkbuster &FAQ",             ID_HELP_FAQ\r
-        MENUITEM "Junkbuster &Manual",          ID_HELP_MANUAL\r
-        MENUITEM "GNU &General Public Licence", ID_HELP_GPL\r
-        MENUITEM                                SEPARATOR\r
-        MENUITEM "Junkbuster Status...",        ID_HELP_STATUS\r
-        MENUITEM                                SEPARATOR\r
-        MENUITEM "About Junkbuster...",         ID_HELP_ABOUTJUNKBUSTER\r
-    END\r
-END\r
-\r
-IDR_POPUP_SELECTION MENU DISCARDABLE\r
-BEGIN\r
-    POPUP "Popup"\r
-    BEGIN\r
-        MENUITEM "&Copy",                       ID_EDIT_COPY\r
-    END\r
-END\r
-\r
-\r
-/*\r
- * Accelerators\r
- */\r
-\r
-IDR_ACCELERATOR ACCELERATORS DISCARDABLE\r
-BEGIN\r
-    "C",            ID_EDIT_COPY,           VIRTKEY, CONTROL, NOINVERT\r
-END\r
-\r
-/*\r
- * Icons\r
- *\r
- * Icon with lowest ID value placed first to ensure application icon\r
- * remains consistent on all systems.\r
- */\r
-IDI_DENYRULE            ICON    DISCARDABLE     "icons/denyrule.ico"\r
-IDI_ALLOWRULE           ICON    DISCARDABLE     "icons/icon1.ico"\r
-\r
-/*\r
- * Dialog\r
- */\r
-\r
-IDD_RULES DIALOG DISCARDABLE  0, 0, 239, 225\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Blockers"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    GROUPBOX        "New Rule",IDC_STATIC,5,5,230,55\r
-    LTEXT           "For:",IDC_STATIC,10,15,13,8\r
-    EDITTEXT        IDC_NEW,10,25,220,12,ES_AUTOHSCROLL\r
-    COMBOBOX        IDC_ACTION,10,40,75,37,CBS_DROPDOWNLIST | CBS_SORT |\r
-                    WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "C&reate!",IDC_CREATE,90,40,50,14\r
-    GROUPBOX        "Rules",IDC_STATIC,5,65,230,135\r
-    CONTROL         "List1",IDC_RULES,"SysListView32",LVS_REPORT |\r
-                    LVS_SHOWSELALWAYS | LVS_EDITLABELS | WS_BORDER |\r
-                    WS_TABSTOP,10,75,220,100\r
-    PUSHBUTTON      "Move &Up",IDC_MOVEUP,10,180,50,14,WS_DISABLED\r
-    PUSHBUTTON      "Move &Down",IDC_MOVEDOWN,65,180,50,14,WS_DISABLED\r
-    PUSHBUTTON      "&Delete",IDC_DELETE,120,180,50,14,WS_DISABLED\r
-    PUSHBUTTON      "&Save",IDC_SAVE,130,205,50,14\r
-    PUSHBUTTON      "&Cancel",IDCANCEL,185,205,50,14\r
-END\r
-\r
-\r
-/*\r
- * DESIGNINFO\r
- */\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-GUIDELINES DESIGNINFO DISCARDABLE\r
-BEGIN\r
-    IDD_RULES, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 232\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 218\r
-    END\r
-END\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/*\r
- * String Table\r
- */\r
-\r
-STRINGTABLE DISCARDABLE\r
-BEGIN\r
-    IDS_NEW_BLOCKER         "Create rule for ""%s""..."\r
-END\r
-\r
-#endif /* English (U.S.) resources */\r
+ *
+ *
+ *********************************************************************/
+
+#include <windows.h>
+#include "config.h"
+#include "w32res.h"
+
+#ifdef __MINGW32__
+#include "cygwin.h"
+#endif
+
+/****************************************************************************
+ *  Language-neutral resources
+ ****************************************************************************/
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
+#ifdef _WIN32
+/* LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL */
+#pragma code_page(1252)
+#endif /* _WIN32 */
+
+/*
+ * Icons
+ *
+ * Icon with lowest ID value placed first to ensure application icon
+ * remains consistent on all systems.
+ */
+IDI_JUNKBUSTER          ICON    DISCARDABLE     "icons/junkbust.ico"
+IDI_JUNKBUSTER1         ICON    DISCARDABLE     "icons/ico00001.ico"
+IDI_JUNKBUSTER2         ICON    DISCARDABLE     "icons/ico00002.ico"
+IDI_JUNKBUSTER3         ICON    DISCARDABLE     "icons/ico00003.ico"
+IDI_JUNKBUSTER4         ICON    DISCARDABLE     "icons/ico00004.ico"
+IDI_JUNKBUSTER5         ICON    DISCARDABLE     "icons/ico00005.ico"
+IDI_JUNKBUSTER6         ICON    DISCARDABLE     "icons/ico00006.ico"
+IDI_JUNKBUSTER7         ICON    DISCARDABLE     "icons/ico00007.ico"
+IDI_JUNKBUSTER8         ICON    DISCARDABLE     "icons/ico00008.ico"
+IDI_IDLE                ICON    DISCARDABLE     "icons/idle.ico"
+
+#endif /* Neutral resources */
+
+
+/****************************************************************************
+ *  English (U.S.) resources
+ ****************************************************************************/
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+/* LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US */
+#pragma code_page(1252)
+#endif //_WIN32
+
+/*
+ * Menus
+ */
+
+IDR_TRAYMENU MENU DISCARDABLE
+BEGIN
+    POPUP "Popup"
+    BEGIN
+        MENUITEM "E&xit JunkBuster",   ID_FILE_EXIT
+        MENUITEM                       SEPARATOR
+        POPUP "&Options"
+        BEGIN
+            MENUITEM "&Junkbuster...",              ID_TOOLS_EDITJUNKBUSTER
+            MENUITEM                                SEPARATOR
+            MENUITEM "&Blockers...",                ID_TOOLS_EDITBLOCKERS
+            MENUITEM "&Permissions...",             ID_TOOLS_EDITPERMISSIONS
+            MENUITEM "&Forward...",                 ID_TOOLS_EDITFORWARD
+#ifdef ACL_FILES
+            MENUITEM "&Access Control Lists...",    ID_TOOLS_EDITACLS
+#endif /* def ACL_FILES */
+#ifdef USE_IMAGE_LIST
+            MENUITEM "&Images...",                  ID_TOOLS_EDITIMAGE
+#endif /* def USE_IMAGE_LIST */
+#ifdef PCRS
+            MENUITEM "Perl &Regexps...",            ID_TOOLS_EDITPERLRE
+#endif /* def PCRS */
+#ifdef TRUST_FILES
+            MENUITEM "&Trust...",                   ID_TOOLS_EDITTRUST
+#endif /* def TRUST_FILES */
+        END
+        MENUITEM                              SEPARATOR
+#ifdef TOGGLE
+        MENUITEM "&Enable",                   ID_TOGGLE_IJB, CHECKED
+#endif
+        MENUITEM "&Reload config",            ID_RELOAD_CONFIG
+        MENUITEM "Show &JunkBuster Window",   ID_SHOWWINDOW
+    END
+END
+
+IDR_LOGVIEW MENU DISCARDABLE
+BEGIN
+    POPUP "&File"
+    BEGIN
+        MENUITEM "E&xit",                       ID_FILE_EXIT
+    END
+    POPUP "&Edit"
+    BEGIN
+        MENUITEM "Copy",                        ID_EDIT_COPY
+    END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Clear Log",                  ID_VIEW_CLEARLOG
+        MENUITEM                                SEPARATOR
+        MENUITEM "&Log Messages",               ID_VIEW_LOGMESSAGES, CHECKED
+        MENUITEM "Message &Highlighting",       ID_VIEW_MESSAGEHIGHLIGHTING, CHECKED
+        MENUITEM "Limit &Buffer Size",          ID_VIEW_LIMITBUFFERSIZE, CHECKED
+        MENUITEM "&Activity Animation",         ID_VIEW_ACTIVITYANIMATION, CHECKED
+    END
+    POPUP "&Options"
+    BEGIN
+#ifdef TOGGLE
+        MENUITEM "&Enable",                     ID_TOGGLE_IJB, CHECKED
+        MENUITEM "&Reload config",              ID_RELOAD_CONFIG
+        MENUITEM                                SEPARATOR
+#endif
+        MENUITEM "&Junkbuster...",              ID_TOOLS_EDITJUNKBUSTER
+        MENUITEM                                SEPARATOR
+        MENUITEM "&Blockers...",                ID_TOOLS_EDITBLOCKERS
+        MENUITEM "&Permissions...",             ID_TOOLS_EDITPERMISSIONS
+        MENUITEM "&Forward...",                 ID_TOOLS_EDITFORWARD
+#ifdef ACL_FILES
+            MENUITEM "&Access Control Lists...",ID_TOOLS_EDITACLS
+#endif /* def ACL_FILES */
+#ifdef USE_IMAGE_LIST
+            MENUITEM "&Images...",              ID_TOOLS_EDITIMAGE
+#endif /* def USE_IMAGE_LIST */
+#ifdef PCRS
+            MENUITEM "Perl &Regexps...",        ID_TOOLS_EDITPERLRE
+#endif /* def PCRS */
+#ifdef TRUST_FILES
+            MENUITEM "&Trust...",               ID_TOOLS_EDITTRUST
+#endif /* def TRUST_FILES */
+    END
+    POPUP "&Help"
+    BEGIN
+        MENUITEM "Junkbuster &FAQ",             ID_HELP_FAQ
+        MENUITEM "Junkbuster &Manual",          ID_HELP_MANUAL
+        MENUITEM "GNU &General Public Licence", ID_HELP_GPL
+        MENUITEM                                SEPARATOR
+        MENUITEM "Junkbuster Status...",        ID_HELP_STATUS
+        MENUITEM                                SEPARATOR
+        MENUITEM "About Junkbuster...",         ID_HELP_ABOUTJUNKBUSTER
+    END
+END
+
+IDR_POPUP_SELECTION MENU DISCARDABLE
+BEGIN
+    POPUP "Popup"
+    BEGIN
+        MENUITEM "&Copy",                       ID_EDIT_COPY
+    END
+END
+
+
+/*
+ * Accelerators
+ */
+
+IDR_ACCELERATOR ACCELERATORS DISCARDABLE
+BEGIN
+    "C",            ID_EDIT_COPY,           VIRTKEY, CONTROL, NOINVERT
+END
+
+/*
+ * Icons
+ *
+ * Icon with lowest ID value placed first to ensure application icon
+ * remains consistent on all systems.
+ */
+IDI_DENYRULE            ICON    DISCARDABLE     "icons/denyrule.ico"
+IDI_ALLOWRULE           ICON    DISCARDABLE     "icons/icon1.ico"
+
+/*
+ * Dialog
+ */
+
+IDD_RULES DIALOG DISCARDABLE  0, 0, 239, 225
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Blockers"
+FONT 8, "MS Sans Serif"
+BEGIN
+    GROUPBOX        "New Rule",IDC_STATIC,5,5,230,55
+    LTEXT           "For:",IDC_STATIC,10,15,13,8
+    EDITTEXT        IDC_NEW,10,25,220,12,ES_AUTOHSCROLL
+    COMBOBOX        IDC_ACTION,10,40,75,37,CBS_DROPDOWNLIST | CBS_SORT |
+                    WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "C&reate!",IDC_CREATE,90,40,50,14
+    GROUPBOX        "Rules",IDC_STATIC,5,65,230,135
+    CONTROL         "List1",IDC_RULES,"SysListView32",LVS_REPORT |
+                    LVS_SHOWSELALWAYS | LVS_EDITLABELS | WS_BORDER |
+                    WS_TABSTOP,10,75,220,100
+    PUSHBUTTON      "Move &Up",IDC_MOVEUP,10,180,50,14,WS_DISABLED
+    PUSHBUTTON      "Move &Down",IDC_MOVEDOWN,65,180,50,14,WS_DISABLED
+    PUSHBUTTON      "&Delete",IDC_DELETE,120,180,50,14,WS_DISABLED
+    PUSHBUTTON      "&Save",IDC_SAVE,130,205,50,14
+    PUSHBUTTON      "&Cancel",IDCANCEL,185,205,50,14
+END
+
+
+/*
+ * DESIGNINFO
+ */
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE
+BEGIN
+    IDD_RULES, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 232
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 218
+    END
+END
+#endif    // APSTUDIO_INVOKED
+
+
+/*
+ * String Table
+ */
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_NEW_BLOCKER         "Create rule for ""%s""..."
+END
+
+#endif /* English (U.S.) resources */