[M-git] Mahogany sources repository. branch master updated. v0.67-820-gbddbc6dc

Vadim Zeitlin via Mahogany-cvsupdates <[email protected]> Sat, 20 Aug 2022 15:54:54 +0000
Newsgroups gmane.mail.mahogany.cvs
Message-ID <[email protected]>
--===============1300049123317067580==
Content-Type: text/plain

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Mahogany sources repository.".

The branch, master has been updated
       via  bddbc6dcb76eca43aa9bb52952768fd688d60b3c (commit)
       via  cce06771ae973bc6441a47bca0c3cdcd7a875112 (commit)
       via  05487c6e558918f42ad9c3bba65f036884680cde (commit)
       via  65a3d2dcbe3ea18f001a5fade2f2cca908c51eb4 (commit)
      from  228268b3143c16365fc0f76f15d4b86c8e640e1d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit bddbc6dcb76eca43aa9bb52952768fd688d60b3c
Author: Vadim Zeitlin <[email protected]>
Date:   Sat Aug 20 17:25:40 2022 +0200

    Avoid gcc 12 warnings about deprecated default special members
    
    Define copy ctors and assignment operators that we need explicitly, even
    by just making them default, to avoid gcc warnings about the use of
    deprecated implicitly defined versions.
    
    No real changes.

diff --git a/include/MObject.h b/include/MObject.h
index 9abdd456..4d12cd1a 100644
--- a/include/MObject.h
+++ b/include/MObject.h
@@ -56,6 +56,13 @@ public:
          m_magic = MOBJECT_MAGIC;
          Register();
       }
+   MObject& operator=(const MObject &oldobj)
+      {
+         MOcheck();
+         oldobj.MOcheck();
+         return *this;
+      }
+
    /** Check validity of this object.
        This function should be called wherever such an object is used,
        especially at the beginning of all methods.
@@ -99,8 +106,12 @@ protected:
    /// a simple magic number as a validity check
    int m_magic;
 #else
+   MObject() = default;
+   MObject(const MObject&) = default;
+   MObject^ operator=(const MObject&) = default;
+
    /// virtual destructor
-   virtual ~MObject() {}
+   virtual ~MObject() = default;
    /// empty MOcheck() method
    void MOcheck(void) const {}
    /// nothing
diff --git a/include/gui/wxllist.h b/include/gui/wxllist.h
index ddd4ad94..1fa97031 100644
--- a/include/gui/wxllist.h
+++ b/include/gui/wxllist.h
@@ -363,6 +363,9 @@ struct wxLayoutStyleInfo
                      wxColour *fg = NULL,
                      wxColour *bg = NULL,
                      wxFontEncoding enc = wxFONTENCODING_DEFAULT);
+
+   wxLayoutStyleInfo(const wxLayoutStyleInfo&) = default;
+
    wxLayoutStyleInfo & operator=(const wxLayoutStyleInfo &right);
 
    wxColour & GetBGColour() { return m_bg; }
diff --git a/src/modules/Filters.cpp b/src/modules/Filters.cpp
index f94ceb5e..5359007a 100644
--- a/src/modules/Filters.cpp
+++ b/src/modules/Filters.cpp
@@ -381,6 +381,8 @@ public:
    }
 #endif // DEBUG
 
+   Value& operator=(const Value&) = default;
+
    bool IsValid(void) const
       { MOcheck(); return m_Type != Type_Error; }
    bool IsNumber(void) const

commit cce06771ae973bc6441a47bca0c3cdcd7a875112
Author: Vadim Zeitlin <[email protected]>
Date:   Sat Aug 20 17:24:56 2022 +0200

    Fix harmless spurious fall through warning from gcc 12
    
    Add an explicit return to avoid the warning about falling through here.

diff --git a/src/gui/wxFiltersDialog.cpp b/src/gui/wxFiltersDialog.cpp
index febe0e01..77201e02 100644
--- a/src/gui/wxFiltersDialog.cpp
+++ b/src/gui/wxFiltersDialog.cpp
@@ -530,7 +530,8 @@ public:
                case ORC_MF_Important: return _T("*");
                case ORC_MF_Recent:    return _T("R");
             }
-            CHECK( false, wxEmptyString, _T("Invalid test message flag") );
+            wxFAIL_MSG( "Invalid test message flag" );
+            return String();
 
          // Argument is used, but not for spam or message flag
          default:

commit 05487c6e558918f42ad9c3bba65f036884680cde
Author: Vadim Zeitlin <[email protected]>
Date:   Sat Aug 20 17:24:12 2022 +0200

    Fix build with wxWidgets 3.2 without 3.0 compatibility
    
    Don't use deprecated wxLogRecordInfo::timestamp, use timestampMS
    instead.

diff --git a/src/gui/MImport.cpp b/src/gui/MImport.cpp
index 4c10b2d9..6d7a5a72 100644
--- a/src/gui/MImport.cpp
+++ b/src/gui/MImport.cpp
@@ -145,7 +145,7 @@ public:
                             const wxString& szString,
                             const wxLogRecordInfo& info)
    {
-      time_t t = info.timestamp;
+      const wxLongLong t = info.timestampMS;
       m_dialog->GetLogListBox()->Append(
             wxString::Format(_T("%s:\t%s"),
                              wxDateTime(t).FormatTime().c_str(),

commit 65a3d2dcbe3ea18f001a5fade2f2cca908c51eb4
Author: Vadim Zeitlin <[email protected]>
Date:   Sat Aug 20 17:20:00 2022 +0200

    Remove ancient module for exporting address book in Palm format
    
    Palm Pilot doesn't exist since 25 years, so drop the code exporting in
    its format to avoid a number of warnings in it given by the latest gcc.

diff --git a/M.vcxproj b/M.vcxproj
index 07070ead..924b536a 100644
--- a/M.vcxproj
+++ b/M.vcxproj
@@ -591,7 +591,6 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>

       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release DLL|x64'">true</ExcludedFromBuild>

     </ClCompile>

-    <ClCompile Include="src\adb\ExportPalm.cpp" />

     <ClCompile Include="src\adb\ExportText.cpp" />

     <ClCompile Include="src\adb\ExportVCard.cpp" />

     <ClCompile Include="src\adb\ImportEudora.cpp" />

@@ -1536,4 +1535,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

   <ImportGroup Label="ExtensionTargets">

   </ImportGroup>

-</Project>
\ No newline at end of file
+</Project>

diff --git a/M.vcxproj.filters b/M.vcxproj.filters
index f75f942a..388b8e3e 100644
--- a/M.vcxproj.filters
+++ b/M.vcxproj.filters
@@ -423,9 +423,6 @@
     <ClCompile Include="src\adb\ProvPasswd.cpp">

       <Filter>Source Files\adb\providers</Filter>

     </ClCompile>

-    <ClCompile Include="src\adb\ExportPalm.cpp">

-      <Filter>Source Files\adb\impexp</Filter>

-    </ClCompile>

     <ClCompile Include="src\adb\ExportText.cpp">

       <Filter>Source Files\adb\impexp</Filter>

     </ClCompile>

@@ -978,4 +975,4 @@
       <Filter>Source Files\interfaces\python\SWIG precompiled output</Filter>

     </CustomBuild>

   </ItemGroup>

-</Project>
\ No newline at end of file
+</Project>

diff --git a/src/adb/ExportPalm.cpp b/src/adb/ExportPalm.cpp
deleted file mode 100644
index ec0e3363..00000000
--- a/src/adb/ExportPalm.cpp
+++ /dev/null
@@ -1,468 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// Project:     M
-// File name:   adb/ExportPalm.cpp - export ADB data to PalmOS
-//              addressbook format
-// Author:      Karsten Ballüder (based on ExportText.cpp by Vadim Zeitlin)
-// Modified by:
-// Created:     09.10.99
-// CVS-ID:      $Id$
-// Copyright:   (c) 1999 Karsten Ballüder <[email protected]>
-// Licence:     M license
-///////////////////////////////////////////////////////////////////////////////
-
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
-#include "Mpch.h"
-
-#ifndef USE_PCH
-#   include "Mcommon.h"
-
-#   include "MApplication.h"
-#   include "guidef.h"
-#   include "Profile.h"
-
-#   include <wx/log.h>                  // for wxLogMessage
-#   include <wx/layout.h>
-#endif // USE_PCH
-
-#include <wx/textfile.h>
-#include <wx/ffile.h>
-
-#include "gui/wxDialogLayout.h"
-
-#include "adb/AdbEntry.h"
-#include "adb/AdbExport.h"
-
-// ----------------------------------------------------------------------------
-// private classes
-// ----------------------------------------------------------------------------
-
-// the exporter itself
-class AdbPalmExporter : public AdbExporter
-{
-public:
-   virtual bool Export(AdbEntryGroup& group, const String& dest);
-   virtual bool Export(const AdbEntry& entry, const String& dest);
-
-   DECLARE_ADB_EXPORTER();
-
-protected:
-   // the real workers
-   static bool DoExportEntry(const AdbEntry& entry,
-                             wxFFile& file, wxString const &category,
-                             bool includeEmpty, bool includeComments);
-
-   static bool DoExportGroup(AdbEntryGroup& group,
-                             wxFFile& file, wxString const &category,
-                             bool includeEmpty, bool includeComments);
-
-   // helper to escape quote characters:
-   static wxString EscapeQuotes(const wxString &str)
-      {
-         wxString s;
-         for(size_t i = 0; i < str.Length(); i++)
-         {
-            if( str[i] == '"') s << '\\';
-            s << str[i];
-         }
-         return s;
-      }
-};
-
-// a helper dialog used to ask the user for the name of the file
-class wxAdbPalmExporterConfigDialog : public wxManuallyLaidOutDialog
-{
-public:
-   // ctor
-   wxAdbPalmExporterConfigDialog(const String& filename);
-
-   // accessors which may be used after successful ShowModal()
-   // get the filename (always not empty)
-   const wxString& GetFileName() const { return m_filename; }
-
-   // get the category name (always not empty)
-   const wxString& GetCategoryName() const { return m_CategoryName; }
-
-   // get the include empty flag
-   bool GetIncludeEmpty() const { return m_IncludeEmpty; }
-
-   // get the include empty flag
-   bool GetIncludeComments() const { return m_IncludeComments; }
-
-   // transfer the data from window
-   virtual bool TransferDataFromWindow();
-
-private:
-   // the profile path for saving the last file used
-   static const wxChar *ms_profilePathLastFile;
-   // the profile path for saving the last category used
-   static const wxChar *ms_profilePathLastCategory;
-   // the profile path for saving the include empty flag
-   static const wxChar *ms_profileIncludeEmpty;
-   // the profile path for saving the include comments flag
-   static const wxChar *ms_profileIncludeComments;
-
-   // the data
-   wxString
-      m_filename,
-      m_CategoryName;
-   int m_selection;
-   bool m_IncludeEmpty, m_IncludeComments;
-
-   // GUI controls
-   wxComboBox *m_textCustomSep;
-   wxTextCtrl *m_textFileName;
-   wxTextCtrl *m_textCategoryName;
-   wxCheckBox *m_checkIncludeEmpty, *m_checkIncludeComments;
-};
-
-// ============================================================================
-// implementation
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// macros for dynamic exporter creation
-// ----------------------------------------------------------------------------
-
-IMPLEMENT_ADB_EXPORTER(AdbPalmExporter,
-                       gettext_noop("PalmOS format address book exporter"),
-                       gettext_noop("PalmOS addressbook"),
-                       "Karsten Ballueder <[email protected]>");
-
-
-// ----------------------------------------------------------------------------
-// AdbPalmExporter
-// ----------------------------------------------------------------------------
-
-#undef ADD
-#define ADD(n)       entry.GetField(n, &val); s << _T('"') << EscapeQuotes(val) << _T("\",")
-#define ADDP(prefix,n)  entry.GetField(n, &val); \
-if(wxStrlen(val)) s << prefix; s << _T('"') << EscapeQuotes(val) << _T("\",")
-
-bool AdbPalmExporter::DoExportEntry(const AdbEntry& entry,
-                                    wxFFile& file, const wxString &
-                                    category, bool includeEmpty, bool includeComments)
-{
-   /*
-     The format:
-     "category name";["address type";]"lastname","firstname","title","company","",
-     "phone type";"phone1",
-     "phone type";"phone1",
-     "phone type";"phone1",
-     "phone type";"phone1",
-     "phone type";"phone1",
-     "street & number", "town", "county", "postcode","country",
-     "custom1","custom2","custom3","custom4","Notes","0"
-
-     Types are: "Home", "Work", "E-mail", "Fax", "Other", "Main",
-     "Pager", "Mobile"
-
-     "Last","First","Titie","Org","wobk","home","fax","other","email","Add","Town",
-     "County","Pcode","Uk","C1","C2","C3","C4","Note","0"
-
-   */
-
-   wxString s;
-   s.Alloc(4096);       // be generous and speed up the export
-
-/*  It seems the category no longer gets written.
-  s << '"' << category << "\";";
-*/
-   // dump all the fields
-   wxString val, tmp;
-   entry.GetField(AdbField_FamilyName, &val);
-   if(val.Length())
-   {
-      ADD(AdbField_FamilyName);
-      ADD(AdbField_FirstName);
-   }
-   else
-   {
-      entry.GetField(AdbField_FullName, &val);
-      if(val.Length() == 0 && ! includeEmpty) // no name
-         return TRUE; // ignore entry
-      s << '"' << EscapeQuotes(val) << _T("\",\"\",");
-   }
-   entry.GetField(AdbField_Prefix, &val);
-   entry.GetField(AdbField_Title, &tmp);
-   if(!tmp.empty()) val << ' ' << tmp;
-   s << '"' << EscapeQuotes(val) << _T("\",");
-   ADD(AdbField_Organization);
-
-   s << _T("\"\","); // unknown field after company
-   ADDP(_T("\"E-mail\";"), AdbField_EMail);
-   ADDP(_T("\"Home\";"), AdbField_H_Phone);
-   ADDP(_T("\"Fax\";"), AdbField_H_Fax);
-   ADDP(_T("\"Work\";"), AdbField_O_Phone);
-   ADDP(_T("\"Fax\";"), AdbField_O_Fax);
-
-   entry.GetField(AdbField_H_City, &val);
-   if(val.Length()) // has home address?
-   {
-      entry.GetField(AdbField_H_Street, &val);
-      if(val.Length())
-      {
-         entry.GetField(AdbField_H_StreetNo, &tmp);
-         if(!tmp.empty()) val << ' ' << tmp;
-         if(! val) entry.GetField(AdbField_H_POBox, &val);
-         s << '"' << val << _T("\",");
-      }
-      ADD(AdbField_H_City);
-      ADD(AdbField_H_Locality);
-      ADD(AdbField_H_Postcode);
-      ADD(AdbField_H_Country);
-   }
-   else // take work address
-   {
-      entry.GetField(AdbField_O_Street, &val);
-      if(val.Length())
-      {
-         entry.GetField(AdbField_O_StreetNo, &tmp);
-         if(!tmp.empty()) val << ' ' << tmp;
-         if(! val) entry.GetField(AdbField_O_POBox, &val);
-         s << '"' << val << _T("\",");
-      }
-      ADD(AdbField_O_City);
-      ADD(AdbField_O_Locality);
-      ADD(AdbField_O_Postcode);
-      ADD(AdbField_O_Country);
-   }
-
-   // custom fields:
-   ADD(AdbField_Birthday);
-   ADD(AdbField_HomePage);
-   ADD(AdbField_ICQ);
-   ADD(AdbField_NickName);
-   if(includeComments)
-   {
-      ADD(AdbField_Comments);
-   }
-   else
-      s << _T("\"\","); // empty comment
-
-   s << _T("\"0\"");
-   s += wxTextFile::GetEOL();
-
-   return file.Write(s);
-}
-#undef ADD
-#undef ADDP
-
-bool AdbPalmExporter::DoExportGroup(AdbEntryGroup& group,
-                                    wxFFile& file, const wxString &
-                                    category, bool includeEmpty,
-                                    bool includeComments)
-{
-   // first, export all subgroups
-   wxArrayString names;
-   size_t nGroupCount = group.GetGroupNames(names);
-   for ( size_t nGroup = 0; nGroup < nGroupCount; nGroup++ )
-   {
-      AdbEntryGroup *subgroup = group.GetGroup(names[nGroup]);
-
-      bool ok = DoExportGroup(*subgroup, file, category, includeEmpty,
-                              includeComments);
-      subgroup->DecRef();
-
-      if ( !ok )
-      {
-         return FALSE;
-      }
-   }
-
-   // and then all entries
-   size_t nEntryCount = group.GetEntryNames(names);
-   for ( size_t nEntry = 0; nEntry < nEntryCount; nEntry++ )
-   {
-      AdbEntry *entry = group.GetEntry(names[nEntry]);
-
-      bool ok = DoExportEntry(*entry, file, category, includeEmpty,
-                              includeComments);
-      entry->DecRef();
-
-      if ( !ok )
-      {
-         return FALSE;
-      }
-   }
-
-
-   return TRUE;
-}
-
-bool AdbPalmExporter::Export(AdbEntryGroup& group, const String& dest)
-{
-   // try to guess a reasonable default name for the file to create
-   wxString filename = dest;
-   if ( !filename )
-   {
-      filename << group.GetDescription() << _T(".palm");
-   }
-
-   // get the name of the file to create
-   wxAdbPalmExporterConfigDialog dialog(filename);
-   if ( dialog.ShowModal() != wxID_OK )
-   {
-      // cancelled...
-
-      return FALSE;
-   }
-
-   // create the file
-   filename = dialog.GetFileName();
-   wxFFile file(filename, _T("w"));
-   if ( file.IsOpened() )
-   {
-      // export everything recursively
-      if ( DoExportGroup(group, file, dialog.GetCategoryName(),
-                         dialog.GetIncludeEmpty(), dialog.GetIncludeComments() ) )
-      {
-         wxLogMessage(_("Successfully exported address book data to "
-                        "file '%s'"), filename.c_str());
-
-         return TRUE;
-      }
-   }
-
-   wxLogError(_("Export failed."));
-
-   return FALSE;
-}
-
-bool AdbPalmExporter::Export(const AdbEntry& entry, const String& dest)
-{
-   // TODO
-   return FALSE;
-}
-
-// ----------------------------------------------------------------------------
-// wxAdbPalmExporterConfigDialog
-// ----------------------------------------------------------------------------
-
-const wxChar *wxAdbPalmExporterConfigDialog::ms_profilePathLastFile
-   = _T("Settings/AdbPalmExportFile");
-
-const wxChar *wxAdbPalmExporterConfigDialog::ms_profilePathLastCategory
-   = _T("Settings/AdbPalmExportCategory");
-
-const wxChar *wxAdbPalmExporterConfigDialog::ms_profileIncludeEmpty
-   = _T("Settings/AdbPalmExportIncludeEmpty");
-
-const wxChar *wxAdbPalmExporterConfigDialog::ms_profileIncludeComments
-   = _T("Settings/AdbPalmExportIncludeComments");
-
-wxAdbPalmExporterConfigDialog::wxAdbPalmExporterConfigDialog
-                               (
-                                const String& filenameOrig
-                               )
-                             : wxManuallyLaidOutDialog
-                               (
-                                NULL,
-                                _("Mahogany: Exporting address book"),
-                                _T("AdbTextExport")
-                               )
-{
-   wxLayoutConstraints *c;
-
-   // don't create the box because we have another one already and boxes inside
-   // boxes look ugly
-   (void)CreateStdButtonsAndBox(_("Configure export"), TRUE /* no box */);
-
-   // put the items into an enhanced panel - even if we don't use scrolling
-   // here, we may use functions like CreateFileEntry() like this
-   wxEnhancedPanel *panel = new wxEnhancedPanel(this, FALSE /* no scrolling */);
-   c = new wxLayoutConstraints;
-   c->left.SameAs(this, wxLeft);
-   c->right.SameAs(this, wxRight);
-   c->top.SameAs(this, wxTop);
-   c->bottom.Above(FindWindow(wxID_OK), -2*LAYOUT_Y_MARGIN);
-   panel->SetConstraints(c);
-
-   // all controls must be created on the canvas, not the panel itself
-//   wxWindow *parent = panel->GetCanvas();
-
-   // the text entry (with label and browse button) for choosing the file to
-   // export to
-   wxString label = _("&Filename to export to: ");
-   int width;
-   GetTextExtent(label, &width, NULL);
-   m_textFileName = panel->CreateFileEntry(label, width, NULL,
-                                           NULL, FALSE /* save */);
-
-   // the category name entry (with label) for choosing the file to
-   // export to
-   label = _("&Addressbook Category: ");
-   GetTextExtent(label, &width, NULL);
-   m_textCategoryName =   panel->CreateTextWithLabel(label, width, m_textFileName);
-
-   label = _("&Include entries with no name: ");
-   GetTextExtent(label, &width, NULL);
-   m_checkIncludeEmpty =  panel->CreateCheckBox(label,width,m_textCategoryName);
-
-   label = _("&Include comments: ");
-   GetTextExtent(label, &width, NULL);
-   m_checkIncludeComments =  panel->CreateCheckBox(label,width,m_checkIncludeEmpty);
-
-   String filename = filenameOrig;
-   if ( !filename )
-   {
-      Profile *appProfile = mApplication->GetProfile();
-      filename = appProfile->readEntry(ms_profilePathLastFile, "mahogany.txt");
-   }
-
-   m_textFileName->SetValue(
-      mApplication->GetProfile()->readEntry(ms_profilePathLastFile, ""));
-
-   m_textCategoryName->SetValue(
-      mApplication->GetProfile()->readEntry(ms_profilePathLastCategory, "Unfiled"));
-   m_checkIncludeEmpty->SetValue(
-      mApplication->GetProfile()->readEntry(ms_profileIncludeEmpty, 0) != 0);
-   m_checkIncludeComments->SetValue(
-      mApplication->GetProfile()->readEntry(ms_profileIncludeComments,1) != 0);
-
-   // set the initial and minimal dialog size
-   SetDefaultSize(5*wBtn, 8*hBtn);
-}
-
-bool wxAdbPalmExporterConfigDialog::TransferDataFromWindow()
-{
-   m_filename = m_textFileName->GetValue();
-   if ( !m_filename )
-   {
-      wxLogError(_("Please specify the file name!"));
-
-      return FALSE;
-   }
-
-   mApplication->GetProfile()->writeEntry(ms_profilePathLastFile,
-                                          m_filename);
-
-   m_CategoryName = m_textCategoryName->GetValue();
-   if ( !m_CategoryName )
-   {
-      wxLogError(_("Please specify the category name!"));
-
-      return FALSE;
-   }
-
-   m_IncludeEmpty = m_checkIncludeEmpty->GetValue();
-
-   m_IncludeComments = m_checkIncludeComments->GetValue();
-
-   mApplication->GetProfile()->writeEntry(ms_profilePathLastFile,
-                                          m_filename);
-   mApplication->GetProfile()->writeEntry(ms_profilePathLastCategory,
-                                          m_CategoryName);
-   mApplication->GetProfile()->writeEntry(ms_profileIncludeEmpty,
-                                          m_IncludeEmpty);
-   mApplication->GetProfile()->writeEntry(ms_profileIncludeComments,
-                                          m_IncludeComments);
-   return TRUE;
-}
-

-----------------------------------------------------------------------

Summary of changes:
 M.vcxproj                   |   3 +-
 M.vcxproj.filters           |   5 +-
 include/MObject.h           |  13 +-
 include/gui/wxllist.h       |   3 +
 src/adb/ExportPalm.cpp      | 468 --------------------------------------------
 src/gui/MImport.cpp         |   2 +-
 src/gui/wxFiltersDialog.cpp |   3 +-
 src/modules/Filters.cpp     |   2 +
 8 files changed, 22 insertions(+), 477 deletions(-)
 delete mode 100644 src/adb/ExportPalm.cpp


hooks/post-receive
-- 
Mahogany sources repository.


--===============1300049123317067580==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============1300049123317067580==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Mahogany-cvsupdates mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates

--===============1300049123317067580==--