| Line | |
|---|
| 1 | // -*- C++ -*-
|
|---|
| 2 | //
|
|---|
| 3 | // $Id
|
|---|
| 4 |
|
|---|
| 5 | #include<cmath>
|
|---|
| 6 |
|
|---|
| 7 | #if !defined(__format_h__)
|
|---|
| 8 | #define __format_h__
|
|---|
| 9 |
|
|---|
| 10 | #if !defined(u_char)
|
|---|
| 11 | #define u_char unsigned char
|
|---|
| 12 | #endif
|
|---|
| 13 |
|
|---|
| 14 | #if !defined(u_int)
|
|---|
| 15 | #define u_int unsigned int
|
|---|
| 16 | #endif
|
|---|
| 17 |
|
|---|
| 18 | #if !defined(__GNUC__)
|
|---|
| 19 | double rint(double val);
|
|---|
| 20 | #endif
|
|---|
| 21 |
|
|---|
| 22 | #include <cstdio>
|
|---|
| 23 | #include <cstdarg>
|
|---|
| 24 | #include <string>
|
|---|
| 25 |
|
|---|
| 26 | using namespace std;
|
|---|
| 27 |
|
|---|
| 28 | //
|
|---|
| 29 | // string format(const char * form , ... );
|
|---|
| 30 | //
|
|---|
| 31 | // Purpose:
|
|---|
| 32 | // To generate fprintf-like formatted strings
|
|---|
| 33 | //
|
|---|
| 34 | #if defined(__GNUC__)
|
|---|
| 35 | static inline
|
|---|
| 36 | string format(const char * form , ... ) __attribute__ ((format (printf, 1, 2)));
|
|---|
| 37 | #endif
|
|---|
| 38 |
|
|---|
| 39 | static inline
|
|---|
| 40 | string format(const char * form , ... ) {
|
|---|
| 41 | const int myBUFF_SIZE = 1024;
|
|---|
| 42 | char most2long1s2short[myBUFF_SIZE];
|
|---|
| 43 | va_list ap;
|
|---|
| 44 | va_start(ap,form);
|
|---|
| 45 | #if defined(__GNUC__)
|
|---|
| 46 | // have vsnprintf
|
|---|
| 47 | if(vsnprintf(most2long1s2short,myBUFF_SIZE,form,ap) == -1)
|
|---|
| 48 | most2long1s2short[myBUFF_SIZE] =0x00;
|
|---|
| 49 | return string(most2long1s2short);
|
|---|
| 50 | #else
|
|---|
| 51 | most2long1s2short[myBUFF_SIZE] =0x00;
|
|---|
| 52 | vsprintf(most2long1s2short,form,ap);
|
|---|
| 53 | return string(most2long1s2short);
|
|---|
| 54 | #endif
|
|---|
| 55 | }
|
|---|
| 56 |
|
|---|
| 57 | #endif
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.