The R Project SVN R

Rev

Rev 42521 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 42521 Rev 45017
Line 60... Line 60...
60
/*
60
/*
61
 *  String class.
61
 *  String class.
62
 */
62
 */
63
class string
63
class string
64
{
64
{
65
  protected:
65
protected:
66
    char *str;  /* the string itself */
66
    char *str;  /* the string itself */
67
 
67
 
68
  public:
68
public:
69
    string(void)        {str=new_string(NULL);}
69
    string(void)        {str=new_string(NULL);}
70
    string(char *s)     {str=new_string(s);}
70
    string(char *s)     {str=new_string(s);}
71
    string(string& s)   {str=new_string(s.str);}
71
    string(string& s)   {str=new_string(s.str);}
72
    string(char ch)     {str=new_string(char_to_string(ch));}
72
    string(char ch)     {str=new_string(char_to_string(ch));}
73
    string(int i)       {str=new_string(int_to_string(i));}
73
    string(int i)       {str=new_string(int_to_string(i));}
Line 77... Line 77...
77
 
77
 
78
    char& operator [] (unsigned i)  {return str[i];}
78
    char& operator [] (unsigned i)  {return str[i];}
79
    operator char* (void)           {return str;}
79
    operator char* (void)           {return str;}
80
 
80
 
81
    string& operator = (string s2)
81
    string& operator = (string s2)
82
      {if (str != s2.str) {del_string(str); str=new_string(s2.str);} return *this;}
82
	{if (str != s2.str) {del_string(str); str=new_string(s2.str);} return *this;}
83
};
83
};
84
 
84
 
85
inline string operator + (string s1, string s2)
85
inline string operator + (string s1, string s2)
86
	{return add_strings(s1,s2);}
86
	{return add_strings(s1,s2);}
87
inline string operator + (string s1, char *s2)
87
inline string operator + (string s1, char *s2)