* apt-pkg/indexrecords.cc:
authorMichael Vogt <michael.vogt@ubuntu.com>
Mon, 8 Dec 2008 17:58:04 +0000 (09:58 -0800)
committerMichael Vogt <michael.vogt@ubuntu.com>
Mon, 8 Dec 2008 17:58:04 +0000 (09:58 -0800)
  - fix some i18n issues
* apt-pkg/contrib/strutl.h:
  - add new strprintf() function to make i18n strings easier

apt-pkg/contrib/strutl.cc
apt-pkg/contrib/strutl.h
apt-pkg/indexrecords.cc
debian/changelog

index bd374fd..cdd8882 100644 (file)
@@ -1032,6 +1032,21 @@ void ioprintf(ostream &out,const char *format,...)
    out << S;
 }
                                                                        /*}}}*/
+// strprintf - C format string outputter to C++ strings                /*{{{*/
+// ---------------------------------------------------------------------
+/* This is used to make the internationalization strings easier to translate
+   and to allow reordering of parameters */
+void strprintf(string &out,const char *format,...) 
+{
+   va_list args;
+   va_start(args,format);
+   
+   // sprintf the description
+   char S[1024];
+   vsnprintf(S,sizeof(S),format,args);
+   out = string(S);
+}
+                                                                       /*}}}*/
 // safe_snprintf - Safer snprintf                                      /*{{{*/
 // ---------------------------------------------------------------------
 /* This is a snprintf that will never (ever) go past 'End' and returns a
index 53146ce..d9972ab 100644 (file)
@@ -59,6 +59,7 @@ bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length);
 bool TokSplitString(char Tok,char *Input,char **List,
                    unsigned long ListMax);
 void ioprintf(ostream &out,const char *format,...) APT_FORMAT2;
+void strprintf(string &out,const char *format,...) APT_FORMAT2;
 char *safe_snprintf(char *Buffer,char *End,const char *Format,...) APT_FORMAT3;
 bool CheckDomainList(const string &Host, const string &List);
 
index 502f454..ab208e2 100644 (file)
@@ -37,14 +37,14 @@ bool indexRecords::Load(const string Filename)
    pkgTagFile TagFile(&Fd, Fd.Size() + 256); // XXX
    if (_error->PendingError() == true)
    {
-      ErrorText = _(("Unable to parse Release file " + Filename).c_str());
+      strprintf(ErrorText, _("Unable to parse Release file %s"),Filename.c_str());
       return false;
    }
 
    pkgTagSection Section;
    if (TagFile.Step(Section) == false)
    {
-      ErrorText = _(("No sections in Release file " + Filename).c_str());
+      strprintf(ErrorText, _("No sections in Release file %s"), Filename.c_str());
       return false;
    }
 
@@ -78,7 +78,7 @@ bool indexRecords::Load(const string Filename)
 
    if(HashString::SupportedHashes()[i] == NULL)
    {
-      ErrorText = _(("No Hash entry in Release file " + Filename).c_str());
+      strprintf(ErrorText, _("No Hash entry in Release file %s"), Filename.c_str());
       return false;
    }  
 
index 1ab8e09..77a5bac 100644 (file)
@@ -35,6 +35,10 @@ apt (0.7.17) UNRELEASED; urgency=low
   * apt-pkg/deb/dpkgpm.cc:
     - fix potential hang when in a backgroud process group
     - fix SIGHUP handling (closes: #463030)
+  * apt-pkg/indexrecords.cc:
+    - fix some i18n issues
+  * apt-pkg/contrib/strutl.h:
+    - add new strprintf() function to make i18n strings easier
   
   [ Dereck Wonnacott ]
   * apt-ftparchive might write corrupt Release files (LP: #46439)