Replaced the current inf-parser by a robust state-machine parser. It is heavily based on Alexandre Julliard's setupapi inf-parser.

svn path=/trunk/; revision=4297
This commit is contained in:
Eric Kohl 2003-03-13 17:58:52 +00:00
parent 7e590b2656
commit e4228315fc
3 changed files with 734 additions and 441 deletions

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: infcache.h,v 1.1 2003/03/13 09:51:11 ekohl Exp $ /* $Id: infcache.h,v 1.2 2003/03/13 17:58:52 ekohl Exp $
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS text-mode setup * PROJECT: ReactOS text-mode setup
* FILE: subsys/system/usetup/infcache.h * FILE: subsys/system/usetup/infcache.h
@ -29,6 +29,12 @@
#define __INFCACHE_H__ #define __INFCACHE_H__
#define STATUS_BAD_SECTION_NAME_LINE (0xC0700001)
#define STATUS_SECTION_NAME_TOO_LONG (0xC0700002)
#define STATUS_WRONG_INF_STYLE (0xC0700003)
#define STATUS_NOT_ENOUGH_MEMORY (0xC0700004)
typedef PVOID HINF, *PHINF; typedef PVOID HINF, *PHINF;
typedef struct _INFCONTEXT typedef struct _INFCONTEXT

View file

@ -460,8 +460,7 @@ StartPage(PINPUT_RECORD Ir)
} }
/* Check 'Signature' string */ /* Check 'Signature' string */
// if (_wcsicmp(Value, L"$ReactOS$") != 0) if (_wcsicmp(Value, L"$ReactOS$") != 0)
if (_wcsicmp(Value, L"\"$ReactOS$\"") != 0)
{ {
PopupError("Setup found an invalid signature in TXTSETUP.SIF.\n", PopupError("Setup found an invalid signature in TXTSETUP.SIF.\n",
"ENTER = Reboot computer"); "ENTER = Reboot computer");
@ -1148,8 +1147,7 @@ PrepareCopyPage(PINPUT_RECORD Ir)
if (!InfGetData (&DirContext, NULL, &KeyValue)) if (!InfGetData (&DirContext, NULL, &KeyValue))
break; break;
// if (KeyValue[0] == L'\\' && KeyValue[1] != 0) if (KeyValue[0] == L'\\' && KeyValue[1] != 0)
if (wcscmp (KeyValue, L"\"\\\"") == 0)
{ {
DPRINT("Absolute Path: '%S'\n", KeyValue); DPRINT("Absolute Path: '%S'\n", KeyValue);