ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/shstr.h
(Generate patch)

Comparing deliantra/server/include/shstr.h (file contents):
Revision 1.9 by root, Mon Sep 4 11:07:59 2006 UTC vs.
Revision 1.11 by root, Thu Sep 14 21:16:12 2006 UTC

82 else 82 else
83 s = intern (str); 83 s = intern (str);
84 84
85 return *this; 85 return *this;
86 } 86 }
87
88 bool operator ==(const shstr &b)
89 {
90 return s == b.s;
91 }
92
93 bool operator !=(const shstr &b)
94 {
95 return !(*this == b);
96 }
87}; 97};
88 98
89inline int strlen (const shstr &sh) 99inline int strlen (const shstr &sh)
90{ 100{
91 return sh.length (); 101 return sh.length ();
92} 102}
93 103
104// only good for mass comparisons to shstr objects
105struct shstr_cmp
106{
107 const char *s;
108
109 explicit shstr_cmp (const char *s)
110 : s (shstr::find (s))
111 {
112 }
113
114 shstr_cmp (const shstr_cmp &sh)
115 : s (sh.s)
116 {
117 }
118
119 shstr_cmp &operator =(const shstr_cmp sh) { s = sh.s; return *this; }
120 operator const char *() const { return s; }
121};
122
94inline bool operator ==(const shstr &a, const shstr &b) 123inline bool operator ==(const shstr_cmp &a, const shstr &b)
95{ 124{
96 return a.s == b.s; 125 return a.s == b.s;
97} 126}
98 127
99inline bool operator !=(const shstr &a, const shstr &b) 128inline bool operator ==(const shstr &a, const shstr_cmp &b)
100{ 129{
101 return !(a == b); 130 return b == a;
102} 131}
103 132
104extern const shstr undead_name; /* Used in hit_player() in main.c */ 133extern const shstr undead_name; /* Used in hit_player() in main.c */
105 134
106#endif 135#endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines