Changeset 246 for cpp/common


Ignore:
Timestamp:
06/01/14 00:52:01 (10 years ago)
Author:
Maciej Komosinski
Message:

Added getFileDir() and source formatting

Location:
cpp/common
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpp/common/stl-util.cpp

    r243 r246  
    1414{
    1515        string s; //clang crashed when this declaration was in s=buf
    16         long size=256;
     16        long size = 256;
    1717        char* buf;
    1818
    1919        //almost like SString::sprintf, but there is no common code to share because SString can use its directWrite to avoid double allocating/copying
    2020#ifdef USE_VSCPRINTF
    21         size=_vscprintf(format, ap)+1; //+1 for terminating null character
     21        size = _vscprintf(format, ap) + 1; //+1 for terminating null character
    2222#endif
    2323
    24         while(1)
     24        while (1)
     25        {
     26                buf = (char*)malloc(size);
     27                assert(buf != NULL);
     28                int n = vsnprintf(buf, size, format, ap);
     29                if (n > -1 && n < size)
    2530                {
    26                 buf=(char*)malloc(size);
    27                 assert(buf!=NULL);
    28                 int n=vsnprintf(buf,size,format,ap);
    29                 if (n > -1 && n < size)
    30                         {
    31                         s=buf;
     31                        s = buf;
    3232                        free(buf);
    3333                        return s;
    34                         }
     34                }
    3535#ifdef VSNPRINTF_RETURNS_REQUIRED_SIZE
    3636                if (n > -1)    /* glibc 2.1 */
     
    4040                        size *= 2;  /* twice the old size */
    4141                free(buf);
    42                 }
     42        }
    4343}
    4444
     
    4747        va_list ap;
    4848        va_start(ap, format);
    49         string ret=ssprintf_va(format,ap); //is it too wasteful? copying the string again... unless the compiler can handle it better
     49        string ret = ssprintf_va(format, ap); //is it too wasteful? copying the string again... unless the compiler can handle it better
    5050        va_end(ap);
    5151        return ret;
     
    5454bool readCompleteFile(const char* filename, vector<char>& data, bool warn_on_missing_file)
    5555{
    56         MFILE *f=mfopen(filename,FOPEN_READ_BINARY);
    57         bool ok=f!=NULL;
     56        MFILE *f = mfopen(filename, FOPEN_READ_BINARY);
     57        bool ok = f != NULL;
    5858        if (f)
    5959        {
    60                 mfseek(f,0,SEEK_END);
    61                 long size=mftell(f);
    62                 mfseek(f,0,SEEK_SET);
     60                mfseek(f, 0, SEEK_END);
     61                long size = mftell(f);
     62                mfseek(f, 0, SEEK_SET);
    6363                data.resize(size);
    64                 int przeczytane=mfread(&data[0],size,1,f);
     64                int przeczytane = mfread(&data[0], size, 1, f);
    6565                mfclose(f);
    66                 ok&=przeczytane==1;
     66                ok &= przeczytane == 1;
    6767        }
    6868        if (warn_on_missing_file && !ok)
    69                 FMprintf("stl-util","readCompleteFile",FMLV_WARN,"Couldn't open file '%s'",filename);
     69                FMprintf("stl-util", "readCompleteFile", FMLV_WARN, "Couldn't open file '%s'", filename);
    7070        return ok;
    7171}
     
    7373bool readCompleteFile(const char* filename, string& out, bool warn_on_missing_file)
    7474{
    75         std::vector<char> data;
    76         if (readCompleteFile(filename,data,warn_on_missing_file))
     75        vector<char> data;
     76        if (readCompleteFile(filename, data, warn_on_missing_file))
    7777        {
    78                 out=string(&data[0],data.size());
     78                out = string(&data[0], data.size());
    7979                return true;
    8080        }
     
    8484bool writeCompleteFile(const char* filename, const string& text, bool warn_on_fail)
    8585{
    86         MFILE *f=mfopen(filename,FOPEN_WRITE_BINARY);
    87         bool ok=f!=NULL;
     86        MFILE *f = mfopen(filename, FOPEN_WRITE_BINARY);
     87        bool ok = f != NULL;
    8888        if (f)
    8989        {
    90                 int zapisane=mfwrite(text.c_str(),text.length(),1,f);
     90                int zapisane = mfwrite(text.c_str(), text.length(), 1, f);
    9191                mfclose(f);
    92                 ok&=zapisane==1;
     92                ok &= zapisane == 1;
    9393        }
    9494        if (warn_on_fail && !ok)
    95                 FMprintf("stl-util","writeCompleteFile",FMLV_WARN,"couldn't write file '%s'",filename);
     95                FMprintf("stl-util", "writeCompleteFile", FMLV_WARN, "couldn't write file '%s'", filename);
    9696        return ok;
    9797}
     
    9999bool writeCompleteFile(const char* filename, vector<char>& data, bool warn_on_fail)
    100100{
    101         string s(&data[0],data.size());
     101        string s(&data[0], data.size());
    102102        return writeCompleteFile(filename, s, warn_on_fail);
    103103}
     
    105105
    106106
    107 std::string stripExt(const std::string& filename)
     107string stripExt(const string& filename)
    108108{
    109         int dot=filename.rfind('.');
    110         if (dot==std::string::npos) return filename;
    111         int sep=filename.rfind(PATH_SEPARATOR_CHAR);
    112         if ((sep==std::string::npos)||(sep<dot))
    113                 return filename.substr(0,dot);
     109        int dot = filename.rfind('.');
     110        if (dot == string::npos) return filename;
     111        int sep = filename.rfind(PATH_SEPARATOR_CHAR);
     112        if ((sep == string::npos) || (sep < dot))
     113                return filename.substr(0, dot);
    114114        return filename;
    115115}
    116116
    117 std::string getFileExt(const std::string& filename)
     117string getFileExt(const string& filename)
    118118{
    119         int dot=filename.rfind('.');
    120         if (dot==std::string::npos) return string("");
    121         int sep=filename.rfind(PATH_SEPARATOR_CHAR);
    122         if ((sep==std::string::npos)||(sep<dot))
     119        int dot = filename.rfind('.');
     120        if (dot == string::npos) return string("");
     121        int sep = filename.rfind(PATH_SEPARATOR_CHAR);
     122        if ((sep == string::npos) || (sep < dot))
    123123                return filename.substr(dot);
    124124        return string("");
    125125}
     126
     127string getFileDir(const string& filename)
     128{
     129        int slash = filename.rfind(PATH_SEPARATOR_CHAR);
     130        if (slash == string::npos) return string("");
     131        return filename.substr(0, slash);
     132}
  • cpp/common/stl-util.h

    r197 r246  
    4242string stripExt(const string& filename); // strip extension from filename
    4343string getFileExt(const string& filename); // get extension (starting with ".") from filename
     44string getFileDir(const string& filename); // get path component excluding filename ("" if no dir in file)
     45
    4446
    4547bool readCompleteFile(const char* filename, vector<char>& data, bool warn_on_missing_file=true);
Note: See TracChangeset for help on using the changeset viewer.