Bill Medland : wpp: Implement long long constant parsing.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Apr 21 06:17:16 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 9e73da7340947390d81f035abc70d37d31c029c0
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=9e73da7340947390d81f035abc70d37d31c029c0
Author: Bill Medland <billmedland at mercuryspeed.com>
Date: Thu Apr 20 15:32:00 2006 -0700
wpp: Implement long long constant parsing.
---
libs/wpp/ppl.l | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/libs/wpp/ppl.l b/libs/wpp/ppl.l
index 073a6ac..990fbb1 100644
--- a/libs/wpp/ppl.l
+++ b/libs/wpp/ppl.l
@@ -821,9 +821,24 @@ static int make_number(int radix, YYSTYP
}
if(is_ll)
- pp_internal_error(__FILE__, __LINE__, "long long constants not implemented yet");
-
- if(is_u && is_l)
+ {
+/* Assume as in the declaration of wrc_ull_t and wrc_sll_t */
+#if defined(SIZEOF_LONGLONG) && SIZEOF_LONGLONG >= 8
+ if (is_u)
+ {
+ val->ull = strtoull(str, NULL, radix);
+ return tULONGLONG;
+ }
+ else
+ {
+ val->sll = strtoll(str, NULL, radix);
+ return tSLONGLONG;
+ }
+#else
+ pp_internal_error(__FILE__, __LINE__, "long long constants not supported on this platform");
+#endif
+ }
+ else if(is_u && is_l)
{
val->ulong = strtoul(str, NULL, radix);
return tULONG;
More information about the wine-cvs
mailing list