From d10d5f849f1d0680d475c41a6f6fccf78657318f Mon Sep 17 00:00:00 2001 From: dmcmahill Date: Fri, 11 May 2001 14:12:10 +0000 Subject: add a missing CL_String << long operator overload needed on systems for which sizeof(long) != sizeof(int). --- graphics/clanlib/distinfo | 4 +- graphics/clanlib/patches/patch-ac | 110 +++++++++++++++++++++++++++++++++----- 2 files changed, 100 insertions(+), 14 deletions(-) (limited to 'graphics/clanlib') diff --git a/graphics/clanlib/distinfo b/graphics/clanlib/distinfo index 2896b2463a3..e6106678b27 100644 --- a/graphics/clanlib/distinfo +++ b/graphics/clanlib/distinfo @@ -1,10 +1,10 @@ -$NetBSD: distinfo,v 1.2 2001/04/21 09:54:09 wiz Exp $ +$NetBSD: distinfo,v 1.3 2001/05/11 14:12:10 dmcmahill Exp $ SHA1 (ClanLib-0.4.4.tar.gz) = 326fb3812bd3c26cd8ecf60d8975c662674ae9a8 Size (ClanLib-0.4.4.tar.gz) = 642836 bytes SHA1 (patch-aa) = 80882e6b178238572a07f70a5222691f79209059 SHA1 (patch-ab) = 38acc42d60694482b61853fb14e0460a437a1653 -SHA1 (patch-ac) = fa01bf8e697a6aa444e325b238af70d7bf2f59e7 +SHA1 (patch-ac) = 383a03b0ecca44a6d3397184d6022a0bb91882da SHA1 (patch-ad) = ea6da825d77090177c2c5c73362fc5caa80181f3 SHA1 (patch-ae) = 2fb537e21cb8e670b492d80a8864b26b44db2ad1 SHA1 (patch-af) = 0ccbcce72e2a64805fcbccb678e36aefe81cf7fa diff --git a/graphics/clanlib/patches/patch-ac b/graphics/clanlib/patches/patch-ac index 7caca2322b8..2144fbb6a21 100644 --- a/graphics/clanlib/patches/patch-ac +++ b/graphics/clanlib/patches/patch-ac @@ -1,17 +1,83 @@ -$NetBSD: patch-ac,v 1.3 2000/12/15 03:20:50 garbled Exp $ ---- Sources/API/Core/System/clanstring.h.orig Tue May 9 14:09:32 2000 -+++ Sources/API/Core/System/clanstring.h Thu Dec 14 18:08:39 2000 -@@ -25,6 +25,8 @@ - +$NetBSD: patch-ac,v 1.4 2001/05/11 14:12:10 dmcmahill Exp $ + + +add an operator overload for CL_String << long so this can build +on 64-bit systems. + +--- Sources/API/Core/System/clanstring.h.orig Tue May 9 17:09:32 2000 ++++ Sources/API/Core/System/clanstring.h Thu May 10 17:57:14 2001 +@@ -26,4 +26,6 @@ #ifndef WIN32 #include +#include +#include #endif - #ifdef __BEOS__ -@@ -101,9 +103,12 @@ - { +@@ -69,4 +71,36 @@ + } + } ++ ++void ltoa(long num, char *str, const int number_format) ++{ ++ long num1 = num; ++ int num_chars = 0; ++ ++ while (num1>0) ++ { ++ num_chars++; ++ num1 /= number_format; ++ } ++ ++ if (num_chars == 0) num_chars = 1; ++ ++ str[num_chars] = 0; // Null-terminate the str ++ ++ for (int pos = num_chars-1; pos>=0; pos--) ++ { ++ int cur_char = num % number_format; ++ ++ if (cur_char < 10) // Insert number ++ { ++ str[pos] = cur_char + '0'; ++ } ++ else // Insert letter ++ { ++ str[pos] = cur_char-10 + 'A'; ++ } ++ ++ num /= number_format; ++ } ++} + #else + #pragma warning( disable : 4244 ) +@@ -97,4 +131,26 @@ + return text; + } ++ ++ char *long_to_string(const char *prefix, const long number) ++ { ++ char buf[20]; ++ ltoa(number, buf, 10); ++ ++ int len=0; ++ if (prefix!=NULL) len=strlen(prefix); ++ ++ char *text=new char[len+strlen(buf)+1]; ++ if (prefix!=NULL) ++ { ++ strcpy(text, prefix); ++ strcat(text, buf); ++ } ++ else ++ { ++ strcpy(text, buf); ++ } ++ ++ return text; ++ } + + char *float_to_string(const char *prefix, const float _float_number) +@@ -102,7 +158,10 @@ char buf[25]; buf[0]=0; + int precision=4; @@ -23,12 +89,32 @@ $NetBSD: patch-ac,v 1.3 2000/12/15 03:20:50 garbled Exp $ - int precision=4; char temp; - float float_number = _float_number; -@@ -134,6 +139,7 @@ - strcat(buf, &float_buffer[decimal]); +@@ -135,4 +194,5 @@ copy_strings: +#endif int len=0; if (prefix!=NULL) len=strlen(prefix); - +@@ -434,4 +494,22 @@ + { + char *new_string=int_to_string(str, number); ++ if (str!=NULL) delete str; ++ str=new_string; ++ ++ return *this; ++ } ++ ++ CL_String &operator<< (const unsigned long number) ++ { ++ char *new_string=long_to_string(str, number); ++ if (str!=NULL) delete str; ++ str=new_string; ++ ++ return *this; ++ } ++ ++ CL_String &operator<< (const long number) ++ { ++ char *new_string=long_to_string(str, number); + if (str!=NULL) delete str; + str=new_string; -- cgit v1.2.3