| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /*
- * Copyright (c) 2014, Oculus VR, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
- #include "EmptyHeader.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- // Fast itoa from http://www.jb.man.ac.uk/~slowe/cpp/itoa.html for Linux since it seems like Linux doesn't support this function.
- // I modified it to remove the std dependencies.
- char* Itoa( int value, char* result, int base )
- {
- // check that the base if valid
- if (base < 2 || base > 16) { *result = 0; return result; }
- char* out = result;
- int quotient = value;
- int absQModB;
- do {
- // KevinJ - get rid of this dependency
- //*out = "0123456789abcdef"[ std::abs( quotient % base ) ];
- absQModB=quotient % base;
- if (absQModB < 0)
- absQModB=-absQModB;
- *out = "0123456789abcdef"[ absQModB ];
- ++out;
- quotient /= base;
- } while ( quotient );
- // Only apply negative sign for base 10
- if ( value < 0 && base == 10) *out++ = '-';
- // KevinJ - get rid of this dependency
- // std::reverse( result, out );
- *out = 0;
- // KevinJ - My own reverse code
- char *start = result;
- char temp;
- out--;
- while (start < out)
- {
- temp=*start;
- *start=*out;
- *out=temp;
- start++;
- out--;
- }
- return result;
- }
- #ifdef __cplusplus
- }
- #endif
|