info: kdenetwork.spec

Jacek Konieczny jajcus w zeus.polsl.gliwice.pl
Czw, 8 Paź 1998, 11:21:06 CEST


Oto obiecany spec do kdenetwork.
Known bugs:
  kmail nie działa z Qt-1.40, nie wiem jak z qt-1.41
  
Pozdrowienia,
           Jacek
+---------+--------------------------------------------------------+
!      ,  !            Jacek Konieczny, Gliwice, Poland            !      
! Jajcus  !   email: jajcus w zeus.polsl.gliwice.pl, jacek w kde.org   !
!         ! ICQ# 7149127                           WWW: none (yet) !
+---------+--------------------------------------powered-by-Linux--+
-------------- następna część ---------
Summary:	K Desktop Environment - network applications
Summary(pl):	K Desktop Environment - aplikacje sieciowe
Name:		kdenetwork
Version:	1.0
Release:	4
Source:		ftp://ftp.kde.org/pub/kde/stable/%{version}/distribution/tar/generic/source/%{name}-%{version}.tar.gz
Patch:		kmail.charset.patch
Group:		X11/KDE/Network
Copyright:	GPL
Requires:	qt >= 1.40, kdelibs = %{version}
Vendor:		The KDE Team
BuildRoot:	/tmp/%{name}-%{version}-%{release}-root

%description
KDE network applications.
Package includes:
  KMail - e-mail client. Patched for proper charsets support
  KRN - news client
  KNU - network utilities (frontend to ping, host, traceroute)
  KORN - "biff" program
  KPPP - PPP dialer

%description -l pl
Aplikacje sieciowe KDE.
Pakiet zawiera:
  KMail - program pocztowy, z poprawioną obsługą zestawów znaków
  KRN - Program do czytania newsów
  KNU - Interfejs do ping'a, traceroute'a i host'a
  KORN - program pokazujący stan skrzynek pocztowych
  KPPP - program do nawiązywania połączeń modemowych

%package -n kmail
Summary:	KDE Mail client
Summary(pl):	Program pocztowy KDE
Group:		X11/KDE/Network
Requires:	qt >= 1.40, kdelibs = %{version}

%description -n kmail
This is electronic mail client for KDE.
It is able to retrievie mail from POP3 accounts and from local mailboxes. 

This package contains version patched for better charset support.

%description -l pl -n kmail
Program pocztowy dla KDE.
Potrafi odczytywać pocztę z kont POP3 jak i lokalnych skrzynek.

Ten pakiet zawiera wersją programu z poprawioną obsługą zestawów znaków.

%package -n krn
Summary:	KDE News Reader	
Summary(pl):	Czytnik newsówd dla KDE
Group:		X11/KDE/Network
Requires:	qt >= 1.40, kdelibs = %{version}

%description -n krn
This is a news reader for KDE. It has threading and everything else
you need to be happy reading your news.

%description -l pl -n krn
Czytnik newsów dla KDE. Obsługuje wątki oraz killfile. 

%package -n knu
Summary:	KDE Network Utilities	
Summary(pl):	Narzędzia sieciowe KDE
Group:		X11/KDE/Network
Requires:	qt >= 1.40, kdelibs = %{version}, netkit-base

%description -n knu
Frontend to ping, host and traceroute utilities.

%description -l pl -n knu
Interfejs do narzędzi: ping, host i traceroute.

%package -n korn 
Summary:	KDE 'biff' application
Summary(pl):	Wskaźnik skrzynki pocztowej dla KDE
Group:		X11/KDE/Network
Requires:	qt >= 1.40, kdelibs = %{version}

%description -n korn
A simple program showing number of mails in your folders.

%description -l pl -n korn
Programik pokazujący ilość wiadomości w wybranych folderach pocztowych.

%package -n kppp
Summary:	KDE PPP dialer	
Summary(pl):	Program do połączeń modemowych dla KDE
Group:		X11/KDE/Network
Requires:	qt >= 1.40, kdelibs = %{version}, ppp 

%description -n kppp
A PPPP dialer for KDE. It supports multiple accounts.

%description -l pl -n kppp
Program no nawiązywania połączeń modemowych pod KDE.
Posiada łatwy interfejs i możliwość zdefiniowania kilku kont.

%prep
%setup -q
%patch -p1

%build
export KDEDIR=/usr/X11R6
CXXFLAGS="$RPM_OPT_FLAGS -Wall" CFLAGS="$RPM_OPT_FLAGS -Wall" \
./configure --prefix=$KDEDIR \
 	--with-install-root=$RPM_BUILD_ROOT \
 	--with-pam="yes"
make KDEDIR=$KDEDIR

%install
rm -rf $RPM_BUILD_ROOT
export KDEDIR=/usr/X11R6
make RUN_KAPPFINDER=no prefix=$RPM_BUILD_ROOT$KDEDIR install

# create wmconfig files
install -d $RPM_BUILD_ROOT/etc/X11/wmconfig
DIR=$PWD
cd $RPM_BUILD_ROOT/etc/X11/kde/applnk
for kdelnk in `find . -name "*.kdelnk"` ; do
  PKG=kde`basename $kdelnk|sed -e "s/\.kdelnk$//"`;
  SECT=`dirname $kdelnk|sed -e "s/^\.\/*//"`;
  kdelnk2wmconfig $PKG $kdelnk $RPM_BUILD_ROOT/etc/X11/wmconfig/$PKG KDE/$SECT pl
done
cd $DIR

%clean
rm -rf $RPM_BUILD_ROOT

#################################################
#             KMAIL
#################################################

%files -n kmail
%defattr(644, root, root, 755)
/usr/X11R6/share/kde/apps/kmail
/usr/X11R6/share/kde/icons/kmail.xpm
/usr/X11R6/share/kde/icons/mini/kmail.xpm
%config(missingok) /etc/X11/kde/applnk/Internet/KMail.kdelnk
%config(missingok) /etc/X11/wmconfig/kdeKMail
%lang(en) /usr/X11R6/share/kde/doc/HTML/en/kmail
%lang(cs) /usr/X11R6/share/locale/cs/LC_MESSAGES/kmail.mo
%lang(de) /usr/X11R6/share/locale/de/LC_MESSAGES/kmail.mo
%lang(el) /usr/X11R6/share/locale/el/LC_MESSAGES/kmail.mo
%lang(es) /usr/X11R6/share/locale/es/LC_MESSAGES/kmail.mo
%lang(fi) /usr/X11R6/share/locale/fi/LC_MESSAGES/kmail.mo
%lang(fr) /usr/X11R6/share/locale/fr/LC_MESSAGES/kmail.mo
%lang(hr) /usr/X11R6/share/locale/hr/LC_MESSAGES/kmail.mo
%lang(hu) /usr/X11R6/share/locale/hu/LC_MESSAGES/kmail.mo
%lang(it) /usr/X11R6/share/locale/it/LC_MESSAGES/kmail.mo
%lang(nl) /usr/X11R6/share/locale/nl/LC_MESSAGES/kmail.mo
%lang(no) /usr/X11R6/share/locale/no/LC_MESSAGES/kmail.mo
%lang(pl) /usr/X11R6/share/locale/pl/LC_MESSAGES/kmail.mo
%lang(pt) /usr/X11R6/share/locale/pt*/LC_MESSAGES/kmail.mo
%lang(ro) /usr/X11R6/share/locale/ro/LC_MESSAGES/kmail.mo
%lang(sk) /usr/X11R6/share/locale/sk/LC_MESSAGES/kmail.mo
%lang(zh) /usr/X11R6/share/locale/zh*/LC_MESSAGES/kmail.mo
%attr(755,root,root) /usr/X11R6/bin/kmail

#################################################
#             KRN
#################################################

%files -n krn
%defattr(644, root, root, 755)
/usr/X11R6/share/kde/apps/krn
/usr/X11R6/share/kde/icons/mini/krn.xpm
/usr/X11R6/share/kde/icons/krn.xpm
%config(missingok) /etc/X11/kde/applnk/Internet/Krn.kdelnk
%config(missingok) /etc/X11/wmconfig/kdeKrn
%lang(en) /usr/X11R6/share/kde/doc/HTML/en/krn
%lang(cs) /usr/X11R6/share/locale/cs/LC_MESSAGES/krn.mo
%lang(de) /usr/X11R6/share/locale/de/LC_MESSAGES/krn.mo
%lang(el) /usr/X11R6/share/locale/el/LC_MESSAGES/krn.mo
%lang(es) /usr/X11R6/share/locale/es/LC_MESSAGES/krn.mo
%lang(fi) /usr/X11R6/share/locale/fi/LC_MESSAGES/krn.mo
%lang(fr) /usr/X11R6/share/locale/fr/LC_MESSAGES/krn.mo
%lang(hr) /usr/X11R6/share/locale/hr/LC_MESSAGES/krn.mo
%lang(it) /usr/X11R6/share/locale/it/LC_MESSAGES/krn.mo
%lang(nl) /usr/X11R6/share/locale/nl/LC_MESSAGES/krn.mo
%lang(no) /usr/X11R6/share/locale/no/LC_MESSAGES/krn.mo
%lang(pl) /usr/X11R6/share/locale/pl/LC_MESSAGES/krn.mo
%lang(pt) /usr/X11R6/share/locale/pt*/LC_MESSAGES/krn.mo
%lang(ro) /usr/X11R6/share/locale/ro/LC_MESSAGES/krn.mo
%lang(sk) /usr/X11R6/share/locale/sk/LC_MESSAGES/krn.mo
%lang(zh) /usr/X11R6/share/locale/zh*/LC_MESSAGES/krn.mo
%attr(755,root,root) /usr/X11R6/bin/krn
%attr(755,root,root) /usr/X11R6/bin/kdecode

#################################################
#             KNU
#################################################

%files -n knu
%defattr(644, root, root, 755)
/usr/X11R6/share/kde/icons/mini/knu.xpm
/usr/X11R6/share/kde/icons/knu.xpm
%config(missingok) /etc/X11/kde/applnk/Internet/knu.kdelnk
%config(missingok) /etc/X11/wmconfig/kdeknu
%lang(en) /usr/X11R6/share/kde/doc/HTML/en/knu
%lang(cs) /usr/X11R6/share/locale/cs/LC_MESSAGES/knu.mo
%lang(de) /usr/X11R6/share/locale/de/LC_MESSAGES/knu.mo
%lang(el) /usr/X11R6/share/locale/el/LC_MESSAGES/knu.mo
%lang(es) /usr/X11R6/share/locale/es/LC_MESSAGES/knu.mo
%lang(fi) /usr/X11R6/share/locale/fi/LC_MESSAGES/knu.mo
%lang(fr) /usr/X11R6/share/locale/fr/LC_MESSAGES/knu.mo
%lang(hr) /usr/X11R6/share/locale/hr/LC_MESSAGES/knu.mo
%lang(hu) /usr/X11R6/share/locale/hu/LC_MESSAGES/knu.mo
%lang(it) /usr/X11R6/share/locale/it/LC_MESSAGES/knu.mo
%lang(nl) /usr/X11R6/share/locale/nl/LC_MESSAGES/knu.mo
%lang(no) /usr/X11R6/share/locale/no/LC_MESSAGES/knu.mo
%lang(pl) /usr/X11R6/share/locale/pl/LC_MESSAGES/knu.mo
%lang(pt) /usr/X11R6/share/locale/pt*/LC_MESSAGES/knu.mo
%lang(sk) /usr/X11R6/share/locale/sk/LC_MESSAGES/knu.mo
%lang(zh) /usr/X11R6/share/locale/zh*/LC_MESSAGES/knu.mo
%attr(755,root,root) /usr/X11R6/bin/knu

#################################################
#             Korn
#################################################

%files -n korn
%defattr(644, root, root, 755)
/usr/X11R6/share/kde/icons/mini/korn.xpm
/usr/X11R6/share/kde/icons/korn.xpm
%config(missingok) /etc/X11/kde/applnk/Internet/KOrn.kdelnk
%config(missingok) /etc/X11/wmconfig/kdeKOrn
%lang(en) /usr/X11R6/share/kde/doc/HTML/en/korn
%attr(755,root,root) /usr/X11R6/bin/korn

#################################################
#             KPPP
#################################################

%files -n kppp
%defattr(644, root, root, 755)
/usr/X11R6/share/kde/apps/kppp
/usr/X11R6/share/kde/icons/mini/kppp.xpm
/usr/X11R6/share/kde/icons/kppp.xpm
%config(missingok) /etc/X11/kde/applnk/Internet/Kppp.kdelnk
%config(missingok) /etc/X11/wmconfig/kdeKppp
%lang(en) /usr/X11R6/share/kde/doc/HTML/en/kppp
%lang(ca) /usr/X11R6/share/locale/ca/LC_MESSAGES/kppp.mo
%lang(cs) /usr/X11R6/share/locale/cs/LC_MESSAGES/kppp.mo
%lang(da) /usr/X11R6/share/locale/da/LC_MESSAGES/kppp.mo
%lang(de) /usr/X11R6/share/locale/de/LC_MESSAGES/kppp.mo
%lang(el) /usr/X11R6/share/locale/el/LC_MESSAGES/kppp.mo
%lang(es) /usr/X11R6/share/locale/es/LC_MESSAGES/kppp.mo
%lang(fi) /usr/X11R6/share/locale/fi/LC_MESSAGES/kppp.mo
%lang(fr) /usr/X11R6/share/locale/fr/LC_MESSAGES/kppp.mo
%lang(hr) /usr/X11R6/share/locale/hr/LC_MESSAGES/kppp.mo
%lang(it) /usr/X11R6/share/locale/it/LC_MESSAGES/kppp.mo
%lang(nl) /usr/X11R6/share/locale/nl/LC_MESSAGES/kppp.mo
%lang(no) /usr/X11R6/share/locale/no/LC_MESSAGES/kppp.mo
%lang(pl) /usr/X11R6/share/locale/pl/LC_MESSAGES/kppp.mo
%lang(pt) /usr/X11R6/share/locale/pt*/LC_MESSAGES/kppp.mo
%lang(ro) /usr/X11R6/share/locale/ro/LC_MESSAGES/kppp.mo
%lang(sk) /usr/X11R6/share/locale/sk/LC_MESSAGES/kppp.mo
%lang(zh) /usr/X11R6/share/locale/zh*/LC_MESSAGES/kppp.mo
%attr(755,root,root) /usr/X11R6/bin/kppplogview
%attr(2755,root,uucp) /usr/X11R6/bin/kppp

%changelog
* Sun Oct 4 1998 Jacek Konieczny <jajcus w zeus.polsl.gliwice.pl>
  [1.0-4]
- created new spec based on kdebase.spec
-------------- następna część ---------
diff -dur kdenetwork-1.0.orig/kmail/Makefile.am kdenetwork-1.0/kmail/Makefile.am
--- kdenetwork-1.0.orig/kmail/Makefile.am	Sun Jun 28 15:15:10 1998
+++ kdenetwork-1.0/kmail/Makefile.am	Sun Oct  4 15:19:59 1998
@@ -1,7 +1,7 @@
 SUBDIRS = pics doc
 INCLUDES = $(all_includes)
 LDADD	= $(all_libraries) -lkhtmlw -ljscript -lkfile -lkfm -lkdeui -lkdecore -lqt -lXext -lX11 $(LIBJPEG) -lmimelib $(LIBSOCKET)
-#DEFS += -DCHARSETS
+DEFS += -DCHARSETS -DUSE_PRE
 
 bin_PROGRAMS = kmail
 
diff -dur kdenetwork-1.0.orig/kmail/kmcomposewin.cpp kdenetwork-1.0/kmail/kmcomposewin.cpp
--- kdenetwork-1.0.orig/kmail/kmcomposewin.cpp	Fri Jul 10 16:19:09 1998
+++ kdenetwork-1.0/kmail/kmcomposewin.cpp	Sun Oct  4 15:19:59 1998
@@ -219,6 +219,7 @@
   if (mEditor) mEditor->setFont(kstrToFont(mBodyFont));
 
 #if defined CHARSETS  
+  config->setGroup("Composer");
   m7BitAscii = config->readNumEntry("7bit-is-ascii",1);
   mQuoteUnknownCharacters = config->readNumEntry("quote-unknown",0);
   
@@ -806,7 +807,6 @@
 
   if(mAtmList.count() <= 0)
   {
-    mMsg->setAutomaticFields(FALSE);
 
     // If there are no attachments in the list waiting it is a simple 
     // text message.
@@ -844,11 +844,11 @@
       mMsg->setBody(str);
 #endif      
     }
+    mMsg->setAutomaticFields(FALSE);
   }
   else 
   { 
     mMsg->deleteBodyParts();
-    mMsg->setAutomaticFields(TRUE);
 
     // create informative header for those that have no mime-capable
     // email client
@@ -866,6 +866,7 @@
     str=convertToSend(str);
     cout<<"Setting charset to: "<<mCharset<<"\n";
     mMsg->setCharset(mCharset);
+    bodyPart.setCharset(mCharset);
 #endif      
     str.truncate(str.length()); // to ensure str.size()==str.length()+1
     bodyPart.setBodyEncoded(str);
@@ -874,6 +875,8 @@
     // Since there is at least one more attachment create another bodypart
     for (msgPart=mAtmList.first(); msgPart; msgPart=mAtmList.next())
 	mMsg->addBodyPart(msgPart);
+    
+    mMsg->setAutomaticFields(TRUE);
   }
   if (!mAutoDeleteMsg) mEditor->toggleModified(FALSE);
 
@@ -1698,8 +1701,11 @@
 void KMComposeWin::slotConfigureCharsets()
 {
 #if defined CHARSETS
-   CharsetsDlg *dlg=new CharsetsDlg((const char*)mCharset,
-				    (const char*)mComposeCharset,
+   QString ch=mCharset;
+   if (ch=="default") ch+=QString(" (")+mDefaultCharset+")";
+   QString cch=mComposeCharset;
+   if (cch=="default") ch+=QString(" (")+mDefComposeCharset+")";
+   CharsetsDlg *dlg=new CharsetsDlg((const char*)ch,(const char*)cch,
                                     m7BitAscii,mQuoteUnknownCharacters);
    connect(dlg,SIGNAL( setCharsets(const char *,const char *,bool,bool,bool) )
            ,this,SLOT(slotSetCharsets(const char *,const char *,bool,bool,bool)));
@@ -1721,11 +1727,14 @@
   (void)def;
 
 #if defined CHARSETS
-  mCharset=message;
+  if (strncmp(message,"default (",9)==0) mCharset="default";
+  else mCharset=message;
   m7BitAscii=ascii;
   if (composer!=mComposeCharset && quote)
      transcodeMessageTo(composer);
-  mComposeCharset=composer;
+     
+  if (strncmp(composer,"default (",9)==0) mComposeCharset="default";
+  else mComposeCharset=composer;
   mQuoteUnknownCharacters=quote;
   if (def)
   {
diff -dur kdenetwork-1.0.orig/kmail/kmmessage.cpp kdenetwork-1.0/kmail/kmmessage.cpp
--- kdenetwork-1.0.orig/kmail/kmmessage.cpp	Fri Jul 10 16:19:12 1998
+++ kdenetwork-1.0/kmail/kmmessage.cpp	Sun Oct  4 15:19:59 1998
@@ -243,6 +243,23 @@
   mMsg->FromString((const char*)aStr);
   mMsg->Parse();
 
+#ifdef CHARSETS
+  printf("Checking charset...\n");
+  DwMediaType &mType=mMsg->Headers().ContentType();
+  mType.Parse();
+  DwParameter *param=mType.FirstParameter();
+  QString chset="";
+  while(param){
+     printf("%s=%s\n",param->Attribute().c_str(),param->Value().c_str());
+     if (param->Attribute()=="charset"){
+       chset=param->Value().c_str();
+       break;
+     }  
+     param=param->Next(); 
+  }
+  setCharset(chset);
+#endif
+  
   if (aSetStatus)
     setStatus(headerField("Status"), headerField("X-Status"));
 
@@ -322,8 +339,7 @@
 	    stricmp(msgPart.typeStr(),"message")==0)
 	{
 	  result += aIndentStr;
-	  result += QString(msgPart.bodyDecoded())
-	    .replace(reNL,(const char*)nlIndentStr);
+	  result += QString(msgPart.bodyDecoded()).replace(reNL,(const char*)nlIndentStr);
 	  result += '\n';
 	}
 	else isInline = FALSE;
@@ -492,6 +508,27 @@
     // Create a random printable string and set it as the boundary parameter
     contentType.CreateBoundary(0);
   }
+#ifdef CHARSETS  
+  else{
+    printf("Setting charset in header to: %s\n",(const char *)charset());
+    // Set charset parameter
+    DwMediaType &mType=mMsg->Headers().ContentType();
+    //mType.Parse();
+    printf("mType: %s\n",mType.AsString().c_str());
+    DwParameter *param=mType.FirstParameter();
+    while(param)
+       if (param->Attribute()=="charset") break;
+       else param=param->Next(); 
+    if (!param){
+       param=new DwParameter;
+       param->SetAttribute("charset");
+       mType.AddParameter(param);
+    }
+    if (charset().isEmpty()) setCharset("us-ascii");
+    param->SetValue((const char *)charset());
+    printf("mType: %s\n",mType.AsString().c_str());
+  } 
+#endif  
   mNeedsAssembly = TRUE;
 }
 
@@ -1015,6 +1052,7 @@
     aPart->setContentDescription("");
     aPart->setContentDisposition("");
     aPart->setBody("");
+    aPart->setCharset("");
   }
 }
 
@@ -1268,6 +1306,9 @@
 const QString KMMessage::charset(void) const
 {
    printf("Checking charset...\n");
+   return mCharset;
+#if 0   
+   printf("Checking charset...\n");
    DwMediaType &mType=mMsg->Headers().ContentType();
    mType.Parse();
    DwParameter *param=mType.FirstParameter();
@@ -1278,12 +1319,15 @@
       else param=param->Next(); 
    }   
    return ""; // us-ascii, but we don't have to specify it
+#endif   
 }
 
 //-----------------------------------------------------------------------------
 void KMMessage::setCharset(const QString aStr)
 {
    printf("Setting charset to: %s\n",(const char *)aStr);
+   mCharset=aStr;
+#if 0   
    DwMediaType &mType=mMsg->Headers().ContentType();
    mType.Parse();
    printf("mType: %s\n",mType.AsString().c_str());
@@ -1299,5 +1343,6 @@
    param->SetValue((const char *)aStr);
    mType.Assemble();
    printf("mType: %s\n",mType.AsString().c_str());
+#endif    
 }		
 #endif
diff -dur kdenetwork-1.0.orig/kmail/kmmessage.h kdenetwork-1.0/kmail/kmmessage.h
--- kdenetwork-1.0.orig/kmail/kmmessage.h	Fri Jul 10 16:19:13 1998
+++ kdenetwork-1.0/kmail/kmmessage.h	Sun Oct  4 15:19:59 1998
@@ -264,6 +264,7 @@
 protected:
   DwMessage* mMsg;
   bool       mNeedsAssembly;
+  QString    mCharset;
 };
 
 typedef KMMessage* KMMessagePtr;
diff -dur kdenetwork-1.0.orig/kmail/kmreaderwin.cpp kdenetwork-1.0/kmail/kmreaderwin.cpp
--- kdenetwork-1.0.orig/kmail/kmreaderwin.cpp	Fri Jul 10 16:19:17 1998
+++ kdenetwork-1.0/kmail/kmreaderwin.cpp	Sun Oct  4 15:19:59 1998
@@ -107,6 +107,9 @@
   mBodyFont = config->readEntry("body-font", "helvetica-medium-r-12");
   mViewer->setStandardFont(kstrToFont(mBodyFont).family());
   //mViewer->setFixedFont(mFixedFont);
+#ifdef USE_PRE
+  mViewer->setFixedFont(kstrToFont(mBodyFont).family());
+#endif
 #else
   mViewer->setStandardFont(config->readEntry("StandardFont","helvetica"));
   mViewer->setFixedFont(config->readEntry("FixedFont","courier"));
@@ -224,10 +227,6 @@
 
   mViewer->begin(mPicsDir);
   mViewer->write("<HTML><BODY>");
-#if defined CHARSETS  
-  printf("Setting viewer charset to %s\n",(const char *)mMsg->charset());
-  mViewer->setCharset(mMsg->charset());
-#endif  
 
   parseMsg(mMsg);
 
@@ -249,7 +248,7 @@
   writeMsgHeader();
 
   numParts = aMsg->numBodyParts();
-  if (numParts > 0)
+ if (numParts > 0)
   {
     for (i=0; i<numParts; i++)
     {
@@ -273,9 +272,15 @@
       {
 	if (i<=0 || stricmp(type, "text")==0)//||stricmp(type, "message")==0)
 	{
+#if defined CHARSETS  
+	  QString charset=msgPart.charset();
+	// This will cause problems if there are more than one part
+          printf("Setting viewer charset to %s\n",(const char *)charset);
+          mViewer->setCharset(charset);
+#endif  
 	  str = msgPart.bodyDecoded();
 	  if (i>0) mViewer->write("<BR><HR><BR>");
-
+	  
 	  if (stricmp(subtype, "html")==0) mViewer->write(str);
 	  else writeBodyStr(str);
 	}
@@ -289,6 +294,10 @@
   }
   else
   {
+#ifdef CHARSETS  
+    printf("Setting viewer charset to %s\n",(const char *)mMsg->charset());
+    mViewer->setCharset(mMsg->charset());
+#endif  
     writeBodyStr(aMsg->bodyDecoded());
   }
 }
@@ -424,6 +433,10 @@
   }
   else pos = aStr.data();
 
+#ifdef USE_PRE
+  htmlStr+="\n<PRE>\n";
+#endif  
+
   // skip leading empty lines
   for (beg=pos; *pos && *pos<=' '; pos++)
   {
@@ -448,7 +461,11 @@
     if (ch=='\n' || ch=='\0')
     {
       *pos = '\0';
+#ifdef USE_PRE      
+      line = strToHtml(beg,TRUE,FALSE);
+#else      
       line = strToHtml(beg,TRUE,TRUE);
+#endif      
       *pos = ch;
       if (quoted && !lastQuoted) line.prepend("<I>");
       else if (!quoted && lastQuoted) line.prepend("</I>");
@@ -468,6 +485,9 @@
     pos++;
   }
 
+#ifdef USE_PRE
+  htmlStr+="\n</PRE>\n";
+#endif  
   mViewer->write(htmlStr);
 }
 


Więcej informacji o liście dyskusyjnej pld-devel-pl