Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 26, 2008, 5:35:16 PM (16 years ago)
Author:
adrfried
Message:

unsigned int → size_t for std::string related functions

I hope this fixes some problems on 64bit systems

Location:
code/branches/buildsystem/src/util
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • code/branches/buildsystem/src/util/Convert.h

    r1837 r2278  
    512512    static bool convert(orxonox::Vector2* output, const std::string& input)
    513513    {
    514         unsigned int opening_parenthesis, closing_parenthesis = input.find(')');
     514        size_t opening_parenthesis, closing_parenthesis = input.find(')');
    515515        if ((opening_parenthesis = input.find('(')) == std::string::npos) { opening_parenthesis = 0; } else { opening_parenthesis++; }
    516516
     
    536536    static bool convert(orxonox::Vector3* output, const std::string& input)
    537537    {
    538         unsigned int opening_parenthesis, closing_parenthesis = input.find(')');
     538        size_t opening_parenthesis, closing_parenthesis = input.find(')');
    539539        if ((opening_parenthesis = input.find('(')) == std::string::npos) { opening_parenthesis = 0; } else { opening_parenthesis++; }
    540540
     
    562562    static bool convert(orxonox::Vector4* output, const std::string& input)
    563563    {
    564         unsigned int opening_parenthesis, closing_parenthesis = input.find(')');
     564        size_t opening_parenthesis, closing_parenthesis = input.find(')');
    565565        if ((opening_parenthesis = input.find('(')) == std::string::npos) { opening_parenthesis = 0; } else { opening_parenthesis++; }
    566566
     
    590590    static bool convert(orxonox::Quaternion* output, const std::string& input)
    591591    {
    592         unsigned int opening_parenthesis, closing_parenthesis = input.find(')');
     592        size_t opening_parenthesis, closing_parenthesis = input.find(')');
    593593        if ((opening_parenthesis = input.find('(')) == std::string::npos) { opening_parenthesis = 0; } else { opening_parenthesis++; }
    594594
     
    618618    static bool convert(orxonox::ColourValue* output, const std::string& input)
    619619    {
    620         unsigned int opening_parenthesis, closing_parenthesis = input.find(')');
     620        size_t opening_parenthesis, closing_parenthesis = input.find(')');
    621621        if ((opening_parenthesis = input.find('(')) == std::string::npos) { opening_parenthesis = 0; } else { opening_parenthesis++; }
    622622
  • code/branches/buildsystem/src/util/String.cc

    r2244 r2278  
    4848void strip(std::string* str)
    4949{
    50     unsigned int pos;
     50    size_t pos;
    5151    while ((pos = (*str).find(" ")) < (*str).length())
    5252        (*str).erase(pos, 1);
     
    7676std::string removeTrailingWhitespaces(const std::string& str)
    7777{
    78     unsigned int pos1 = 0;
     78    size_t pos1 = 0;
    7979    int pos2 = str.size() - 1;
    8080    for (; pos1 < str.size() && (str[pos1] == ' ' || str[pos1] == '\t' || str[pos1] == '\n'); pos1++);
    81     for (; pos2 > 0          && (str[pos2] == ' ' || str[pos2] == '\t' || str[pos2] == '\n'); pos2--);
     81    for (; pos2 != 0         && (str[pos2] == ' ' || str[pos2] == '\t' || str[pos2] == '\n'); pos2--);
    8282    return str.substr(pos1, pos2 - pos1 + 1);
    8383}
     
    8989    @return The position of the next quote (std::string::npos if there is no next quote)
    9090*/
    91 unsigned int getNextQuote(const std::string& str, unsigned int start)
    92 {
    93     unsigned int quote = start - 1;
     91size_t getNextQuote(const std::string& str, size_t start)
     92{
     93    size_t quote = start - 1;
    9494
    9595    while ((quote = str.find('\"', quote + 1)) != std::string::npos)
    9696    {
    97         unsigned int backslash = quote;
    98         unsigned int numbackslashes = 0;
     97        size_t backslash = quote;
     98        size_t numbackslashes = 0;
    9999        for (; backslash > 0; backslash--, numbackslashes++)
    100100            if (str[backslash - 1] != '\\')
     
    114114    @return True if pos is between two quotes
    115115*/
    116 bool isBetweenQuotes(const std::string& str, unsigned int pos)
     116bool isBetweenQuotes(const std::string& str, size_t pos)
    117117{
    118118    if (pos == std::string::npos)
    119119        return false;
    120120
    121     unsigned int quotecount = 0;
    122     unsigned int quote = (unsigned int)-1;
     121    size_t quotecount = 0;
     122    size_t quote = (size_t)-1;
    123123    while ((quote = getNextQuote(str, quote + 1)) < pos)
    124124    {
     
    141141bool hasStringBetweenQuotes(const std::string& str)
    142142{
    143     unsigned int pos1 = getNextQuote(str, 0);
    144     unsigned int pos2 = getNextQuote(str, pos1 + 1);
     143    size_t pos1 = getNextQuote(str, 0);
     144    size_t pos2 = getNextQuote(str, pos1 + 1);
    145145    return (pos1 != std::string::npos && pos2 != std::string::npos && pos2 > pos1 + 1);
    146146}
     
    153153std::string getStringBetweenQuotes(const std::string& str)
    154154{
    155     unsigned int pos1 = getNextQuote(str, 0);
    156     unsigned int pos2 = getNextQuote(str, pos1 + 1);
     155    size_t pos1 = getNextQuote(str, 0);
     156    size_t pos2 = getNextQuote(str, pos1 + 1);
    157157    if (pos1 != std::string::npos && pos2 != std::string::npos)
    158158        return str.substr(pos1, pos2 - pos1 + 1);
     
    168168std::string stripEnclosingQuotes(const std::string& str)
    169169{
    170     unsigned int start = std::string::npos;
    171     unsigned int end = 0;
    172 
    173     for (unsigned int pos = 0; (pos < str.size()) && (pos < std::string::npos); pos++)
     170    size_t start = std::string::npos;
     171    size_t end = 0;
     172
     173    for (size_t pos = 0; (pos < str.size()) && (pos < std::string::npos); pos++)
    174174    {
    175175        if (str[pos] == '"')
     
    183183    }
    184184
    185     for (unsigned int pos = str.size() - 1; pos < std::string::npos; pos--)
     185    for (size_t pos = str.size() - 1; pos < std::string::npos; pos--)
    186186    {
    187187        if (str[pos] == '"')
     
    290290    std::string output = str;
    291291
    292     for (unsigned int pos = 0; (pos = output.find('\\', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\\\"); }
    293     for (unsigned int pos = 0; (pos = output.find('\n', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\n"); }
    294     for (unsigned int pos = 0; (pos = output.find('\t', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\t"); }
    295     for (unsigned int pos = 0; (pos = output.find('\v', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\v"); }
    296     for (unsigned int pos = 0; (pos = output.find('\b', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\b"); }
    297     for (unsigned int pos = 0; (pos = output.find('\r', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\r"); }
    298     for (unsigned int pos = 0; (pos = output.find('\f', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\f"); }
    299     for (unsigned int pos = 0; (pos = output.find('\a', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\a"); }
    300     for (unsigned int pos = 0; (pos = output.find('"', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\\""); }
    301     for (unsigned int pos = 0; (pos = output.find('\0', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\0"); }
     292    for (size_t pos = 0; (pos = output.find('\\', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\\\"); }
     293    for (size_t pos = 0; (pos = output.find('\n', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\n"); }
     294    for (size_t pos = 0; (pos = output.find('\t', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\t"); }
     295    for (size_t pos = 0; (pos = output.find('\v', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\v"); }
     296    for (size_t pos = 0; (pos = output.find('\b', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\b"); }
     297    for (size_t pos = 0; (pos = output.find('\r', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\r"); }
     298    for (size_t pos = 0; (pos = output.find('\f', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\f"); }
     299    for (size_t pos = 0; (pos = output.find('\a', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\a"); }
     300    for (size_t pos = 0; (pos = output.find('"', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\\""); }
     301    for (size_t pos = 0; (pos = output.find('\0', pos)) < std::string::npos; pos += 2) { output.replace(pos, 1, "\\0"); }
    302302
    303303    return output;
     
    315315
    316316    std::string output = "";
    317     for (unsigned int pos = 0; pos < str.size() - 1; )
     317    for (size_t pos = 0; pos < str.size() - 1; )
    318318    {
    319319        if (str[pos] == '\\')
     
    345345void lowercase(std::string* str)
    346346{
    347     for (unsigned int i = 0; i < str->size(); ++i)
     347    for (size_t i = 0; i < str->size(); ++i)
    348348    {
    349349        (*str)[i] = (char)tolower((*str)[i]);
     
    369369void uppercase(std::string* str)
    370370{
    371     for (unsigned int i = 0; i < str->size(); ++i)
     371    for (size_t i = 0; i < str->size(); ++i)
    372372    {
    373373        (*str)[i] = (char)toupper((*str)[i]);
     
    421421    @param len Maximal number of chars to compare
    422422*/
    423 int nocaseCmp(const std::string& s1, const std::string& s2, unsigned int len)
     423int nocaseCmp(const std::string& s1, const std::string& s2, size_t len)
    424424{
    425425    if (len == 0)
     
    466466    @return The position
    467467*/
    468 unsigned int getCommentPosition(const std::string& str)
     468size_t getCommentPosition(const std::string& str)
    469469{
    470470    return getNextCommentPosition(str, 0);
     
    477477    @return The position
    478478*/
    479 unsigned int getNextCommentPosition(const std::string& str, unsigned int start)
    480 {
    481     for (unsigned int i = start; i < str.size(); i++)
     479size_t getNextCommentPosition(const std::string& str, size_t start)
     480{
     481    for (size_t i = start; i < str.size(); i++)
    482482        if (isComment(str.substr(i)))
    483483            return i;
  • code/branches/buildsystem/src/util/String.h

    r2244 r2278  
    4242extern _UtilExport std::string blankString;
    4343
    44 _UtilExport void         strip(std::string* str);
    45 _UtilExport std::string  getStripped(const std::string& str);
     44_UtilExport void        strip(std::string* str);
     45_UtilExport std::string getStripped(const std::string& str);
    4646
    47 _UtilExport std::string  removeTrailingWhitespaces(const std::string& str);
     47_UtilExport std::string removeTrailingWhitespaces(const std::string& str);
    4848
    49 _UtilExport unsigned int getNextQuote(const std::string& str, unsigned int start);
    50 _UtilExport bool         isBetweenQuotes(const std::string& str, unsigned int pos);
     49_UtilExport size_t      getNextQuote(const std::string& str, size_t start);
     50_UtilExport bool        isBetweenQuotes(const std::string& str, size_t pos);
    5151
    52 _UtilExport bool         hasStringBetweenQuotes(const std::string& str);
    53 _UtilExport std::string  getStringBetweenQuotes(const std::string& str);
     52_UtilExport bool        hasStringBetweenQuotes(const std::string& str);
     53_UtilExport std::string getStringBetweenQuotes(const std::string& str);
    5454
    55 _UtilExport std::string  stripEnclosingQuotes(const std::string& str);
    56 _UtilExport std::string  stripEnclosingBraces(const std::string& str);
     55_UtilExport std::string stripEnclosingQuotes(const std::string& str);
     56_UtilExport std::string stripEnclosingBraces(const std::string& str);
    5757
    58 _UtilExport bool         isEmpty(const std::string& str);
    59 _UtilExport bool         isComment(const std::string& str);
    60 _UtilExport bool         isNumeric(const std::string& str);
     58_UtilExport bool        isEmpty(const std::string& str);
     59_UtilExport bool        isComment(const std::string& str);
     60_UtilExport bool        isNumeric(const std::string& str);
    6161
    62 _UtilExport std::string  addSlashes(const std::string& str);
    63 _UtilExport std::string  removeSlashes(const std::string& str);
     62_UtilExport std::string addSlashes(const std::string& str);
     63_UtilExport std::string removeSlashes(const std::string& str);
    6464
    65 _UtilExport void         lowercase(std::string* str);
    66 _UtilExport std::string  getLowercase(const std::string& str);
     65_UtilExport void        lowercase(std::string* str);
     66_UtilExport std::string getLowercase(const std::string& str);
    6767
    68 _UtilExport void         uppercase(std::string* str);
    69 _UtilExport std::string  getUppercase(const std::string& str);
     68_UtilExport void        uppercase(std::string* str);
     69_UtilExport std::string getUppercase(const std::string& str);
    7070
    71 _UtilExport int          nocaseCmp(const std::string& s1, const std::string& s2);
    72 _UtilExport int          nocaseCmp(const std::string& s1, const std::string& s2, unsigned int len);
     71_UtilExport int         nocaseCmp(const std::string& s1, const std::string& s2);
     72_UtilExport int         nocaseCmp(const std::string& s1, const std::string& s2, size_t len);
    7373
    74 _UtilExport bool         hasComment(const std::string& str);
    75 _UtilExport std::string  getComment(const std::string& str);
    76 _UtilExport unsigned int getCommentPosition(const std::string& str);
    77 _UtilExport unsigned int getNextCommentPosition(const std::string& str, unsigned int start = 0);
     74_UtilExport bool        hasComment(const std::string& str);
     75_UtilExport std::string getComment(const std::string& str);
     76_UtilExport size_t      getCommentPosition(const std::string& str);
     77_UtilExport size_t      getNextCommentPosition(const std::string& str, size_t start = 0);
    7878
    7979_UtilExport void         convertToWindowsPath(std::string* str);
Note: See TracChangeset for help on using the changeset viewer.