Christian Costa : d3dxof: Handle comments when going to next template or object.
Alexandre Julliard
julliard at winehq.org
Mon Dec 1 07:34:22 CST 2008
Module: wine
Branch: master
Commit: b5158497a6ebb3a393336d360701af7ba643ab32
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b5158497a6ebb3a393336d360701af7ba643ab32
Author: Christian Costa <titan.costa at wanadoo.fr>
Date: Sun Nov 30 12:18:46 2008 +0100
d3dxof: Handle comments when going to next template or object.
---
dlls/d3dxof/d3dxof.c | 46 ++++++++++++++++++++++++++++++++++++----------
1 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/dlls/d3dxof/d3dxof.c b/dlls/d3dxof/d3dxof.c
index 69060ed..eb80cdc 100644
--- a/dlls/d3dxof/d3dxof.c
+++ b/dlls/d3dxof/d3dxof.c
@@ -1177,6 +1177,40 @@ static BOOL parse_template_parts(parse_buffer * buf)
return TRUE;
}
+static void go_to_next_definition(parse_buffer * buf)
+{
+ while (buf->rem_bytes)
+ {
+ char c = *buf->buffer;
+ if ((c == '#') || (c == '/'))
+ {
+ read_bytes(buf, &c, 1);
+ /* Handle comment (# or //) */
+ if (c == '/')
+ {
+ if (!read_bytes(buf, &c, 1))
+ return;
+ if (c != '/')
+ return;
+ }
+ c = 0;
+ while (c != 0x0A)
+ {
+ if (!read_bytes(buf, &c, 1))
+ return;
+ }
+ continue;
+ }
+ else if (is_space(*buf->buffer))
+ {
+ buf->buffer++;
+ buf->rem_bytes--;
+ }
+ else
+ break;
+ }
+}
+
static BOOL parse_template(parse_buffer * buf)
{
if (get_TOKEN(buf) != TOKEN_TEMPLATE)
@@ -1196,11 +1230,7 @@ static BOOL parse_template(parse_buffer * buf)
if (buf->txt)
{
/* Go to the next template */
- while (buf->rem_bytes && is_space(*buf->buffer))
- {
- buf->buffer++;
- buf->rem_bytes--;
- }
+ go_to_next_definition(buf);
}
TRACE("%d - %s - %s\n", buf->pdxf->nb_xtemplates, buf->pdxf->xtemplates[buf->pdxf->nb_xtemplates].name, debugstr_guid(&buf->pdxf->xtemplates[buf->pdxf->nb_xtemplates].class_id));
@@ -2136,11 +2166,7 @@ static BOOL parse_object(parse_buffer * buf)
if (buf->txt)
{
/* Go to the next object */
- while (buf->rem_bytes && is_space(*buf->buffer))
- {
- buf->buffer++;
- buf->rem_bytes--;
- }
+ go_to_next_definition(buf);
}
return TRUE;
More information about the wine-cvs
mailing list