]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed XRCID() lookup of numeric control IDs
authorVáclav Slavík <vslavik@fastmail.fm>
Thu, 26 Dec 2002 23:36:34 +0000 (23:36 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Thu, 26 Dec 2002 23:36:34 +0000 (23:36 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18419 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/src/xrc/xmlres.cpp
src/xrc/xmlres.cpp

index 22f6b0a69611c4fecf357a7e9533dfc36dcd17c4..e47ea3e254f621eae657ffe8fadd6414db64fd41 100644 (file)
@@ -1181,10 +1181,21 @@ static XRCID_record *XRCID_Records[XRCID_TABLE_SIZE] = {NULL};
     XRCID_record **rec_var = (oldrec == NULL) ?
                               &XRCID_Records[index] : &oldrec->next;
     *rec_var = new XRCID_record;
-    (*rec_var)->id = ++XRCID_LastID;
     (*rec_var)->key = wxStrdup(str_id);
     (*rec_var)->next = NULL;
 
+    wxChar *end;
+    int asint = wxStrtol(str_id, &end, 10);
+    if (*str_id && *end == 0)
+    {
+        // if str_id was integer, keep it verbosely:
+        (*rec_var)->id = asint;
+    }
+    else
+    {
+        (*rec_var)->id = ++XRCID_LastID;
+    }
+
     return (*rec_var)->id;
 }
 
index 22f6b0a69611c4fecf357a7e9533dfc36dcd17c4..e47ea3e254f621eae657ffe8fadd6414db64fd41 100644 (file)
@@ -1181,10 +1181,21 @@ static XRCID_record *XRCID_Records[XRCID_TABLE_SIZE] = {NULL};
     XRCID_record **rec_var = (oldrec == NULL) ?
                               &XRCID_Records[index] : &oldrec->next;
     *rec_var = new XRCID_record;
-    (*rec_var)->id = ++XRCID_LastID;
     (*rec_var)->key = wxStrdup(str_id);
     (*rec_var)->next = NULL;
 
+    wxChar *end;
+    int asint = wxStrtol(str_id, &end, 10);
+    if (*str_id && *end == 0)
+    {
+        // if str_id was integer, keep it verbosely:
+        (*rec_var)->id = asint;
+    }
+    else
+    {
+        (*rec_var)->id = ++XRCID_LastID;
+    }
+
     return (*rec_var)->id;
 }