apicompatanamdw/compatanalysercmd/headeranalyser/src/Utils.cpp
author shrivatsa
Mon, 27 Sep 2010 14:51:17 +0530
changeset 12 a0eee409ff14
parent 0 638b9c697799
permissions -rw-r--r--
Updates to CompatibilityAnalyser - The Tool should now work with Symbian^4 - Some minor bug fixes related to Qt headers in the Symbian Platform
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     1
/*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     2
* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     3
* All rights reserved.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     6
* which accompanies this distribution, and is available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     8
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     9
* Initial Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    11
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    12
* Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    13
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    14
* Description:  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    15
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    16
*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    17
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    18
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    19
#include "CmdGlobals.h"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    20
#ifdef __WIN__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    21
#pragma warning(disable:4786)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    22
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    23
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    24
#include <string>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    25
#include <stdio.h>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    26
#include <stdarg.h>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    27
#include <iostream>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    28
#include <sstream>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    29
#include <locale>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    30
#include <map>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    31
#include <vector>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    32
#include "Utils.h"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    33
#include "HAException.h"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    34
#include "BBCFileUtils.h"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    35
#include "XMLUtils.h"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    36
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    37
using namespace std;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    38
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    39
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    40
// itoa
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    41
// Convert integer to string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    42
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    43
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    44
string itoa(int value, string& str, int radix)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    45
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    46
  ostringstream ostr;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    47
  ostr << value;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    48
  str = ostr.str();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    49
  return str;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    50
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    51
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    52
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    53
// ltoa
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    54
// Convert long integer to string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    55
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    56
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    57
string ltoa(long value, string& str, int radix)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    58
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    59
    ostringstream ostr;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    60
    ostr << value;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    61
    str = ostr.str();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    62
    return str;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    63
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    64
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    65
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    66
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    67
// FindFromList
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    68
// Find value from list
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    69
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    70
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    71
list<string>::iterator FindFromList(const string& aValue, list<string>& aList, bool(*comparator)(const string&, const string&, bool), bool comparatorparam)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    72
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    73
    list<string>::iterator begin = aList.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    74
    list<string>::iterator end = aList.end();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    75
    bool found = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    76
    while(begin != end && found == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    77
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    78
        if (comparator != 0 && (*comparator)(*begin, aValue, comparatorparam))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    79
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    80
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    81
        } else if (comparator == 0 && *begin == aValue)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    82
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    83
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    84
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    85
        else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    86
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    87
            begin++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    88
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    89
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    90
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    91
    return begin;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    92
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    93
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    94
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    95
// FindFromList
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    96
// Find value from list
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    97
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    98
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    99
list<pair<string,string> >::iterator FindFromList(const string& aValue, list<pair<string,string> >& aList, bool(*comparator)(const string&, const string&, bool), bool comparatorparam)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   100
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   101
    list<pair<string,string> >::iterator begin = aList.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   102
    list<pair<string,string> >::iterator end = aList.end();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   103
    bool found = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   104
    while(begin != end && found == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   105
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   106
		if (comparator != 0 && (*comparator)(begin->first, aValue, comparatorparam))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   107
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   108
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   109
		} else if (comparator == 0 && begin->first == aValue)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   110
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   111
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   112
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   113
        else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   114
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   115
            begin++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   116
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   117
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   118
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   119
    return begin;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   120
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   121
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   122
// FindFromList
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   123
// Find value from list
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   124
// 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   125
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   126
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   127
list<pair<string, string> >::iterator FindFromList(const string& aValue, list<pair<string, string> >& aList, TValue compareTo, bool(*comparator)(const pair<string,string>&, const string&, bool), bool comparatorparam,bool comparewholeString)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   128
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   129
    list<pair<string, string> >::iterator begin = aList.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   130
	list<pair<string, string> >::iterator begin1 = aList.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   131
    list<pair<string, string> >::iterator end = aList.end();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   132
	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   133
    bool found = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   134
	while(comparewholeString == true && begin1 != end && found == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   135
	{// First check both the file matches or not
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   136
		if(aValue.compare(begin1->second)== 0 )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   137
			found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   138
	 // Now compare base file with  current file after sperating sub dirs of currrent file each time  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   139
		else if(compareWholeFileStrings(aValue,begin1->second) == true )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   140
		     found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   141
		else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   142
			begin1++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   143
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   144
		if(found == true)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   145
			return begin1;		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   146
	}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   147
    while(begin != end && found == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   148
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   149
        if (comparator != 0 && (*comparator)(*begin, aValue, comparatorparam))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   150
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   151
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   152
        } else if (comparator == 0 && compareTo == ELeftValue && begin->first == aValue)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   153
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   154
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   155
        } else if (comparator == 0 && compareTo == ERightValue && begin->second == aValue)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   156
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   157
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   158
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   159
        else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   160
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   161
            begin++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   162
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   163
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   164
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   165
    return begin;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   166
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   167
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   168
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   169
// FindFromList
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   170
// Find value from list
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   171
// 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   172
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   173
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   174
list<pair<pair<string, string>,string> >::iterator FindFromList(const string& aValue, list<pair<pair<string, string>,string> >& aList, TValue compareTo, bool(*comparator)(const pair<string,string>&, const string&, bool), bool comparatorparam,bool comparewholeString)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   175
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   176
    list<pair<pair<string, string>,string> >::iterator begin = aList.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   177
	list<pair<pair<string, string>,string> >::iterator begin1 = aList.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   178
	list<pair<pair<string, string>,string> >::iterator end = aList.end();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   179
	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   180
    bool found = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   181
	while(comparewholeString == true && begin1 != end && found == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   182
	{// First check both the file matches or not
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   183
		if(aValue.compare(begin1->first.second)== 0 )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   184
			found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   185
	 // Now compare base file with  current file after sperating sub dirs of currrent file each time  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   186
		else if(compareWholeFileStrings(aValue,begin1->first.second) == true )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   187
		     found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   188
		else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   189
			begin1++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   190
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   191
		if(found == true)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   192
			return begin1;		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   193
	}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   194
    while(begin != end && found == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   195
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   196
		if (comparator != 0 && (*comparator)(begin->first, aValue, comparatorparam))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   197
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   198
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   199
		} else if (comparator == 0 && compareTo == ELeftValue && begin->first.first == aValue)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   200
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   201
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   202
		} else if (comparator == 0 && compareTo == ERightValue && begin->first.second == aValue)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   203
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   204
            found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   205
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   206
        else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   207
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   208
            begin++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   209
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   210
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   211
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   212
    return begin;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   213
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   214
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   215
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   216
// trimWhiteSpace
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   217
// Remove any white space from given string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   218
// startpos and endpos are optional parameters, defining the string under consideration
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   219
// returns a NULL, if the input is empty or contains only '\t' or '\n' or ' '
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   220
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   221
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   222
string trimWhiteSpace(string& aString, string::size_type aStartpos, string::size_type aEndpos)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   223
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   224
	string ret = aString.substr( aStartpos, aEndpos);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   225
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   226
	string::size_type startpos = ret.find_first_not_of(" \t\n\r",aStartpos);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   227
	string::size_type endpos = ret.find_last_not_of(" \t\n\r");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   228
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   229
	//if the string is empty, either NULL or only newline character, return a NULL string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   230
	if( string::npos == startpos || KEmpty == ret)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   231
		return "";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   232
	//else return the substr without whitespace at start and end of given string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   233
	else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   234
		return ret.substr( startpos, endpos - startpos + 1);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   235
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   236
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   237
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   238
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   239
// printToString 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   240
// Substitute for printf 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   241
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   242
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   243
#if 0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   244
string printToString(string& aControlString, list<string> params)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   245
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   246
    istringstream input(aControlString);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   247
    ostringstream output;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   248
    string ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   249
    char ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   250
    list<string>::iterator paramlist = params.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   251
    list<string>::iterator paramend = params.end();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   252
    while(input.get(ch))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   253
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   254
        if (ch == '%')
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   255
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   256
            char newch = '\0';
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   257
            input.get(newch);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   258
            if (newch != '\0')
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   259
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   260
                switch(newch)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   261
                {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   262
                case '%':
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   263
                    output << ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   264
                    break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   265
                case 's':
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   266
                case 'd':
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   267
                case 'f':
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   268
                    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   269
                        string temp;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   270
                        if (paramlist == paramend)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   271
                        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   272
                            throw HAException("Syntax error: Not enough parameters for given control string.");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   273
                        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   274
                        temp = *paramlist;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   275
                        output << temp;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   276
                        paramlist++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   277
                        break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   278
                    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   279
                default:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   280
                    output << ch << newch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   281
                }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   282
            } else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   283
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   284
                output << ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   285
            }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   286
        } else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   287
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   288
            output << ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   289
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   290
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   291
    ret = output.str();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   292
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   293
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   294
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   295
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   296
// getLine 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   297
// Get line from input stream
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   298
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   299
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   300
string getLine(istream& aInput)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   301
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   302
    string line = KEmpty;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   303
    char ch = 0;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   304
    while(aInput.get(ch) && ch != '\n')
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   305
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   306
        if (line == KEmpty)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   307
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   308
            line = "";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   309
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   310
        line += ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   311
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   312
    if (ch == '\n' && line == KEmpty)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   313
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   314
        line = "";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   315
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   316
    return line;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   317
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   318
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   319
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   320
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   321
// parseCommandlineParameters 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   322
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   323
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   324
list<string> parseCommandlineParameters(string args)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   325
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   326
    istringstream input(args);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   327
    char ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   328
    string str;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   329
    bool careForSpace = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   330
    bool strSpace = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   331
    bool whitespace = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   332
    list<string> parmlist;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   333
    while (input.get(ch))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   334
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   335
        if (ch == ' ' && careForSpace == true)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   336
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   337
            if (whitespace == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   338
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   339
                parmlist.push_back(str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   340
            }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   341
            str = "";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   342
            whitespace = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   343
            careForSpace = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   344
        }else if (ch == ' ' && strSpace == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   345
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   346
            // Do nothing
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   347
        }else if (ch == '"')
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   348
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   349
            if (strSpace == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   350
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   351
                careForSpace = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   352
                strSpace = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   353
            } else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   354
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   355
                careForSpace = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   356
                strSpace = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   357
            }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   358
            whitespace = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   359
        } else if (ch == '\n')
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   360
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   361
            throw HAException("Syntax error: Newline not accepted in parameter list.");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   362
        } else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   363
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   364
            if (careForSpace == false && strSpace == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   365
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   366
                careForSpace = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   367
            }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   368
            str += ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   369
            whitespace = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   370
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   371
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   372
    if (strSpace == true)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   373
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   374
        throw HAException("Syntax error: End of string before ending quotation mark.");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   375
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   376
    if (str.length() != 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   377
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   378
        parmlist.push_back(str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   379
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   380
    return parmlist;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   381
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   382
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   383
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   384
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   385
// isNum 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   386
// Return if the given string is number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   387
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   388
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   389
bool isNum(string str)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   390
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   391
    istringstream strnum(str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   392
    char ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   393
    bool ret = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   394
    while(strnum.get(ch))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   395
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   396
        ret = (0 != isdigit(ch));
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   397
        if (ret == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   398
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   399
            break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   400
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   401
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   402
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   403
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   404
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   405
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   406
// isAlpha 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   407
// Return if the given string is alphan
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   408
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   409
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   410
bool isAlpha(string str)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   411
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   412
    istringstream strnum(str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   413
    char ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   414
    bool ret = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   415
    while(strnum.get(ch))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   416
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   417
        ret = (0 != isalpha(ch));
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   418
        if (ret == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   419
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   420
            break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   421
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   422
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   423
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   424
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   425
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   426
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   427
// isAlphaNum 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   428
// Return if the given string is alphanumeric
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   429
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   430
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   431
bool isAlphaNum(string str)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   432
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   433
    istringstream strnum(str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   434
    char ch;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   435
    bool ret = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   436
    while(strnum.get(ch))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   437
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   438
        ret = (0 != isalnum(ch));
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   439
        if (ret == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   440
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   441
            break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   442
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   443
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   444
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   445
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   446
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   447
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   448
// toLowerCaseWin 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   449
// Convert given string to lower case
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   450
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   451
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   452
string toLowerCaseWin(string aString)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   453
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   454
    string ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   455
    char* tempvar;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   456
    unsigned int len = (unsigned int)aString.length();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   457
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   458
    tempvar = new char[len + 1];
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   459
    strcpy(tempvar, aString.c_str());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   460
#ifdef __WIN__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   461
   TO_LOWER_CASE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   462
#else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   463
   ret=tempvar;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   464
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   465
	delete[] tempvar;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   466
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   467
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   468
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   469
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   470
// toLowerCaseW
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   471
// Convert given string to lower case
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   472
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   473
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   474
string toLowerCase(string aString)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   475
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   476
    string ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   477
    char* tempvar;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   478
    unsigned int len = (unsigned int)aString.length();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   479
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   480
    tempvar = new char[len + 1];
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   481
    strcpy(tempvar, aString.c_str());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   482
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   483
    TO_LOWER_CASE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   484
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   485
    delete[] tempvar;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   486
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   487
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   488
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   489
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   490
// toUpperCase 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   491
// Convert given string to upper case
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   492
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   493
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   494
string toUpperCase(string aString)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   495
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   496
    string ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   497
    char* tempvar;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   498
    unsigned int len = (unsigned int)aString.length();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   499
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   500
    tempvar = new char[len + 1];
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   501
    strcpy(tempvar, aString.c_str());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   502
/*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   503
#ifdef __WIN__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   504
    ret = strupr(tempvar);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   505
#else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   506
    for(unsigned int i = 0; i < len; i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   507
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   508
      tempvar[i] = std::toupper(tempvar[i]);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   509
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   510
    ret = tempvar;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   511
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   512
*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   513
    TO_UPPER_CASE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   514
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   515
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   516
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   517
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   518
// splitString 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   519
// Split string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   520
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   521
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   522
vector<string> splitString(const string& str, char separator)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   523
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   524
    vector<string> ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   525
    string::size_type pos = str.find(separator);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   526
    unsigned int lastpos = 0;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   527
    while(pos != string::npos)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   528
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   529
        ret.push_back(str.substr(lastpos, pos - lastpos));
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   530
        lastpos = (unsigned int)pos + 1;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   531
        pos = str.find(separator, lastpos);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   532
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   533
    if (!str.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   534
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   535
        ret.push_back(str.substr(lastpos, pos));
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   536
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   537
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   538
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   539
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   540
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   541
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   542
// compareFiles 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   543
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   544
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   545
bool compareFiles(const string& tocompare, const string& comparestr, bool tryfilename)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   546
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   547
    bool ret = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   548
    string tocomp(tocompare);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   549
    string compstr(comparestr);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   550
    toLower(tocomp);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   551
    toLower(compstr);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   552
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   553
    if (tocomp.compare(compstr) == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   554
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   555
        ret = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   556
    } else if (tryfilename == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   557
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   558
        // Do nothing
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   559
    } else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   560
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   561
        if (compstr == BBCFileUtils::StripPath(compstr))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   562
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   563
            tocomp = BBCFileUtils::StripPath(tocomp);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   564
            if (tocomp.compare(compstr) == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   565
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   566
                ret = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   567
            }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   568
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   569
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   570
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   571
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   572
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   573
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   574
// compareFiles 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   575
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   576
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   577
bool compareFiles(const pair<string, string>& tocompare, const string& comparestr, bool tryfilename)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   578
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   579
    bool ret = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   580
    //string tempvar(tocompare.second);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   581
    if (tocompare.second.compare(comparestr) == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   582
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   583
        ret = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   584
    } else if (tryfilename == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   585
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   586
        // Do nothing
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   587
    } else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   588
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   589
        if (rightmostDirSeparatorIndex(comparestr) == string::npos || rightmostDirSeparatorIndex(comparestr) == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   590
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   591
            string tempcomparestr(BBCFileUtils::StripPath(comparestr));
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   592
            string tempvar(BBCFileUtils::StripPath(tocompare.second));           
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   593
            if (tempvar.compare(tempcomparestr) == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   594
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   595
                ret = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   596
            }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   597
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   598
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   599
    return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   600
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   601
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   602
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   603
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   604
// rightmostDirSeparatorIndex 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   605
// Return the index of the rightmost directory separator
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   606
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   607
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   608
string::size_type rightmostDirSeparatorIndex(const string& aFilename)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   609
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   610
    string::size_type idx = aFilename.rfind(DIR_SEPARATOR);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   611
    return idx;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   612
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   613
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   614
// replaceChar 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   615
// Replaces all occurences of the character by another one.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   616
// Example: 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   617
// <code>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   618
// string myStr("c:/temp/config.txt");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   619
// replaceChar(myStr, '/', '\\');
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   620
// std::cout << myStr << std::endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   621
// </code>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   622
// Above example will print out the following string:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   623
// c:\temp\config.txt
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   624
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   625
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   626
void replaceChar(string& str, char replaceFrom, char replaceTo)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   627
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   628
    if( str.length() > 0 )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   629
    {        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   630
        string::size_type index = 0;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   631
        while( (index = str.find(replaceFrom, index)) != string::npos )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   632
        {     
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   633
            str.replace(index,1,1,replaceTo);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   634
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   635
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   636
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   637
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   638
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   639
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   640
// removeBase 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   641
// Remove base part from a string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   642
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   643
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   644
string removeBase(string aString, string aBase)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   645
{  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   646
    string::size_type pos = toLowerCaseWin(aString).find(toLowerCaseWin(aBase),0);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   647
    if ( pos == string::npos )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   648
        return NULL;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   649
    return aString.substr(aBase.length());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   650
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   651
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   652
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   653
// trimLeadingDirSeparator 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   654
// Remove any leading directory separators from a string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   655
// ----------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   656
//
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   657
string trimLeadingDirSeparator(string aString)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   658
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   659
    int pos = 0;       
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   660
    while ( aString[pos] == '\\' || aString[pos] == '/' )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   661
        ++pos;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   662
    if ( (aString.length() - pos) > 255 )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   663
        return NULL;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   664
    return aString.substr(pos);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   665
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   666
//------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   667
//compareWholeFileStrings 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   668
// Comare base file with current file after excluding sub dirs each time until string ends
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   669
// return true if base string matches with current string anytime after excluding sub dirs.Else false.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   670
//------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   671
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   672
bool compareWholeFileStrings(const string& aBasestr,const string& aCurstr)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   673
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   674
	bool ret = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   675
	char separator = DIR_SEPARATOR;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   676
	unsigned int lastpos = 0;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   677
	string tmpStr;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   678
    string::size_type pos = aCurstr.find(separator);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   679
	while(pos != string::npos && ret == false)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   680
	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   681
		tmpStr.clear();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   682
		lastpos = (unsigned int)pos + 1;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   683
		pos = aCurstr.find(separator, lastpos);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   684
		if(pos!= string::npos)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   685
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   686
			tmpStr.append(aCurstr.substr(pos, string::npos));
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   687
			if(tmpStr.compare(aBasestr) == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   688
				ret = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   689
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   690
	}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   691
	return ret;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   692
}