]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/strutl.cc
Make private sha2 functions static
[apt.git] / apt-pkg / contrib / strutl.cc
index daf87c87fa30ffb4e338bef98261cddba2546b53..072dda3ac3b1f74b76f403c4d79bbaffdc5fbbae 100644 (file)
@@ -692,14 +692,16 @@ int StringToBool(const string &Text,int Default)
    year 2000 complient and timezone neutral */
 string TimeRFC1123(time_t Date)
 {
-   struct tm Conv = *gmtime(&Date);
-   char Buf[300];
+   struct tm Conv;
+   if (gmtime_r(&Date, &Conv) == NULL)
+      return "";
 
+   char Buf[300];
    const char *Day[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
    const char *Month[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul",
                           "Aug","Sep","Oct","Nov","Dec"};
 
-   sprintf(Buf,"%s, %02i %s %i %02i:%02i:%02i GMT",Day[Conv.tm_wday],
+   snprintf(Buf, sizeof(Buf), "%s, %02i %s %i %02i:%02i:%02i GMT",Day[Conv.tm_wday],
           Conv.tm_mday,Month[Conv.tm_mon],Conv.tm_year+1900,Conv.tm_hour,
           Conv.tm_min,Conv.tm_sec);
    return Buf;
@@ -972,15 +974,14 @@ bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base)
 // ---------------------------------------------------------------------
 /* This is used in decoding the 256bit encoded fixed length fields in
    tar files */
-bool Base256ToNum(const char *Str,unsigned long &Res,unsigned Len)
+bool Base256ToNum(const char *Str,unsigned long &Res,unsigned int Len)
 {
-   int i;
    if ((Str[0] & 0x80) == 0)
       return false;
    else
    {
       Res = Str[0] & 0x7F;
-      for(i=1; i<Len; i++)
+      for(unsigned int i = 1; i < Len; ++i)
          Res = (Res<<8) + Str[i];
       return true;
    }
@@ -1192,6 +1193,15 @@ char *safe_snprintf(char *Buffer,char *End,const char *Format,...)
    return Buffer + Did;
 }
                                                                        /*}}}*/
+// StripEpoch - Remove the version "epoch" from a version string       /*{{{*/
+// ---------------------------------------------------------------------
+string StripEpoch(const string &VerStr)
+{
+   size_t i = VerStr.find(":");
+   if (i == string::npos)
+      return VerStr;
+   return VerStr.substr(i+1);
+}
 
 // tolower_ascii - tolower() function that ignores the locale          /*{{{*/
 // ---------------------------------------------------------------------