ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/dynbuf.C
(Generate patch)

Comparing deliantra/server/server/dynbuf.C (file contents):
Revision 1.6 by root, Tue Dec 26 08:54:59 2006 UTC vs.
Revision 1.7 by root, Mon Apr 23 18:09:57 2007 UTC

94 } 94 }
95 95
96 return first->data; 96 return first->data;
97} 97}
98 98
99dynbuf::operator std::string ()
100{
101 // could optimise
102 return std::string (linearise (), size ());
103}
104
99void 105void
106dynbuf_text::printf (const char *format, ...)
107{
108 int len;
109
110 {
111 force (128);
112
113 va_list ap;
114 va_start (ap, format);
115 len = vsnprintf (ptr, room, format, ap);
116 va_end (ap);
117
118 assert (len >= 0); // shield against broken vsnprintf's
119
120 // was enough room available
121 if (len < room)
122 {
123 alloc (len);
124 return;
125 }
126 }
127
128 // longer, try harder
129 va_list ap;
130 va_start (ap, format);
131 vsnprintf (force (len + 1), len + 1, format, ap);
132 va_end (ap);
133
134 alloc (len);
135}
136
137void
100dynbuf::add (sint32 i) 138dynbuf_text::add (sint32 i)
101{ 139{
102 char buf[max_sint32_size]; 140 char buf[max_sint32_size];
103 char *p = buf + sizeof (buf); 141 char *p = buf + sizeof (buf);
104 char neg; 142 char neg;
105 143
130 168
131 add ((void *) p, buf + sizeof (buf) - p); 169 add ((void *) p, buf + sizeof (buf) - p);
132} 170}
133 171
134void 172void
135dynbuf::add (sint64 i) 173dynbuf_text::add (sint64 i)
136{ 174{
137 if (i > -10000000 && i < 10000000) 175 if (i > -10000000 && i < 10000000)
138 { 176 {
139 add (sint32 (i)); 177 add (sint32 (i));
140 return; 178 return;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines