ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/rxvtutil.h
(Generate patch)

Comparing rxvt-unicode/src/rxvtutil.h (file contents):
Revision 1.33 by root, Sun Dec 2 22:36:42 2007 UTC vs.
Revision 1.36 by ayin, Fri Dec 14 11:11:31 2007 UTC

98 ((unsigned int)(val) - (unsigned int)(beg) <= (unsigned int)(end) - (unsigned int)(beg)) 98 ((unsigned int)(val) - (unsigned int)(beg) <= (unsigned int)(end) - (unsigned int)(beg))
99 99
100// in range excluding end 100// in range excluding end
101#define IN_RANGE_EXC(val,beg,end) \ 101#define IN_RANGE_EXC(val,beg,end) \
102 ((unsigned int)(val) - (unsigned int)(beg) < (unsigned int)(end) - (unsigned int)(beg)) 102 ((unsigned int)(val) - (unsigned int)(beg) < (unsigned int)(end) - (unsigned int)(beg))
103
104// for m >= -n, ensure remainder lies between 0..n-1
105#define MOD(m,n) (((m) + (n)) % (n))
103 106
104// makes dynamically allocated objects zero-initialised 107// makes dynamically allocated objects zero-initialised
105struct zero_initialized { 108struct zero_initialized {
106 void *operator new (size_t s); 109 void *operator new (size_t s);
107 void operator delete (void *p, size_t s); 110 void operator delete (void *p, size_t s);
362} 365}
363 366
364 367
365template<typename T> 368template<typename T>
366struct vector : simplevec<T> 369struct vector : simplevec<T>
367{ }; 370{
371};
368 372
369struct stringvec : simplevec<char *> 373struct stringvec : simplevec<char *>
370{ 374{
371 ~stringvec () 375 ~stringvec ()
372 { 376 {
373 for (char **c = begin (); c != end (); c++) 377 for (char **c = begin (); c != end (); c++)
374 free (*c); 378 free (*c);
375 } 379 }
376}; 380};
377 381
382#if 0
378template<typename T> 383template<typename T>
379struct rxvt_vec : simplevec<void *> { 384struct rxvt_vec : simplevec<void *> {
380 typedef T *iterator; 385 typedef T *iterator;
381 386
382 void push_back (T d) { simplevec<void *>::push_back ((void *)d); } 387 void push_back (T d) { simplevec<void *>::push_back ((void *)d); }
386 iterator begin () const { return (iterator)simplevec<void *>::begin (); } 391 iterator begin () const { return (iterator)simplevec<void *>::begin (); }
387 iterator end () const { return (iterator)simplevec<void *>::end (); } 392 iterator end () const { return (iterator)simplevec<void *>::end (); }
388 T &operator [] (int i) { return * (T *) (& ((* (simplevec<void *> *)this)[i])); } 393 T &operator [] (int i) { return * (T *) (& ((* (simplevec<void *> *)this)[i])); }
389 const T &operator [] (int i) const { return * (const T *) (& ((* (const simplevec<void *> *)this)[i])); } 394 const T &operator [] (int i) const { return * (const T *) (& ((* (const simplevec<void *> *)this)[i])); }
390}; 395};
396#endif
391 397
392template<typename T> 398template<typename T>
393struct auto_ptr { 399struct auto_ptr {
394 T *p; 400 T *p;
395 401

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines