Hugh McMaster
6ffa89ebd3
regedit: Skip lines that do not begin with a hexadecimal character during hex data concatenation.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-04 19:49:42 +02:00
Hugh McMaster
50caf838b6
regedit: Simplify a while loop for skipping whitespace.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-04 19:49:32 +02:00
Hugh McMaster
032d32f940
regedit: Improve the parsing of multiline hex data during the registry import operation.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-03 15:57:44 +02:00
Hugh McMaster
c750c2a98d
regedit: Remove un-necessary parser state assignment if we are returning to the same state.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-03 15:57:44 +02:00
Hugh McMaster
758340a6e1
regedit: Free the buffer and reset data information on error and after setting the value.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 18:19:09 +02:00
Hugh McMaster
8803b9616b
regedit: Fail when parsing any hex data type that is greater than ULONG_MAX on Windows.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-21 19:15:12 +02:00
Hugh McMaster
e3234f6ede
regedit: Use a generic data type to correctly process all data types.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-20 18:43:30 +02:00
Hugh McMaster
1f08ee2453
regedit: Allow the deletion of registry keys beginning with a lowercase 'H'.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-16 15:25:38 +02:00
Hugh McMaster
f535341d2b
regedit: Use a case insensitive comparison when parsing registry classes from registry file versions 4 and 5.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-16 15:25:37 +02:00
Hugh McMaster
8504a1563d
regedit: Free the memory used by the REG_DWORD and hex data types after saving the registry value.
...
We use a BOOL to handle all hex types, including those that are undefined (e.g.0x100).
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-16 15:25:37 +02:00
Hugh McMaster
a1924ae2da
regedit: Export hex data types without warning about unsupported data types.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-16 15:25:37 +02:00
Hugh McMaster
300df08e70
regedit: Remove an unused #define.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-16 15:22:07 +02:00
Hugh McMaster
191b81dbd3
regedit: Add data parsing operations to the state machine.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-15 21:54:38 +02:00
Hugh McMaster
d60c31eadb
regedit: Perform value name operations in the state machine.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-15 18:51:08 +02:00
Hugh McMaster
ca98e23451
regedit: Perform key operations in the state machine.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-15 18:51:08 +02:00
Hugh McMaster
ec87800856
regedit: Introduce a partial state machine for importing registry data.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-15 18:51:08 +02:00
Hugh McMaster
afde1624ca
regedit: Do not use REG_NONE as the default data type if strtoulW() fails.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-08 16:44:58 +02:00
Hugh McMaster
5669282e1d
regedit: Do not create registry keys that end without a closing bracket.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-08 16:44:58 +02:00
Hugh McMaster
27b2519ca4
regedit: Re-implement favourite registry key handling.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-05 11:12:32 +02:00
Nikolay Sivov
02b178e791
regedit: Fix a crash when exporting from top level key.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 16:17:48 +02:00
Hugh McMaster
82246874d2
regedit: Merge processRegLinesA/W() into their caller.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-05 14:12:18 +02:00
Hugh McMaster
e8f0a8b38b
regedit: Merge header checks from processRegLinesA/W() to their caller.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-05 14:12:18 +02:00
Hugh McMaster
8753a1b271
regedit: Use a function pointer to read each registry line instead of calling get_lineA/W() directly.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-03 22:58:02 +02:00
Hugh McMaster
76b9e6c712
regedit: Return a Unicode line from get_lineA().
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-03 22:58:02 +02:00
Hugh McMaster
6b596ecf9e
regedit: Simplify clean-up in get_lineA/W().
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-03 22:58:02 +02:00
Hugh McMaster
2392743146
regedit: Re-implement processSetValue().
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 20:53:07 +02:00
Hugh McMaster
9aff5c88ad
regedit: Validate REG_SZ import data before processing it any further.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 20:53:07 +02:00
Hugh McMaster
0481f31d4c
regedit: Simplify parseKeyName.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 20:53:07 +02:00
Hugh McMaster
0a71d4fa72
regedit: Re-implement convertHexToDWord().
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-11 15:55:24 +02:00
Hugh McMaster
aacae19602
regedit: Skip any leading spaces and tabs that may be present in the line being parsed.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-03 14:09:49 +02:00
Hugh McMaster
9ea9874abf
regedit: Remove unused #define.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-31 14:03:56 +02:00
Hugh McMaster
9ad4152e6d
regedit: Make "Unknown Type" translatable.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-30 22:06:33 +02:00
Hugh McMaster
6d89696121
regedit: Do not use REG_NONE as the default data type on import error.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-29 08:47:20 +02:00
Hugh McMaster
523a61da85
regedit: Remove data types that cannot be imported and clean-up data_types array.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-29 08:47:18 +02:00
Hugh McMaster
0a7ff8aff7
regedit: Accept various forms of "REGEDIT" with trailing characters.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 16:28:50 +01:00
Hugh McMaster
5052a759b3
regedit: Return success or failure from import functions.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 16:28:10 +01:00
Hugh McMaster
f56d919ffe
regedit: Re-implement processRegLinesA().
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 16:25:01 +01:00
Hugh McMaster
e1e79d12b3
regedit: Parse UTF-16 file header for validation.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 16:23:49 +01:00
Hugh McMaster
6b6e2cb924
regedit: Re-implement processRegLinesW().
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 19:42:18 +01:00
Zebediah Figura
679cc50195
regedit: When processing 3.1 ignore any lines that don't begin with HKCR.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-31 22:30:38 +01:00
Zebediah Figura
b0d475b858
regedit: Add support for importing Win 3.1 registry files.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:53 +01:00
Hugh McMaster
c39ee374a7
regedit: Close the registry key handle in the read function instead of the parser.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-25 13:39:32 +02:00
Hugh McMaster
93f795950d
regedit: Do not close the registy key handle when a line break is encountered.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-25 13:39:27 +02:00
Hugh McMaster
4cb93f4557
regedit: Do not set s_eol to NULL when it will be re-assigned immediately.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-01 20:47:43 +09:00
Hugh McMaster
b4d40846dd
regedit: Remove two 'continue' statements from the end of two 'while' loops.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-01 20:47:39 +09:00
Alexandre Julliard
b90628c15e
regedit: Don't die if we fail to open a key during exporting.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 14:19:42 +09:00
Hugh McMaster
2b74ef1006
regedit: Output the registry data type as a string when it is used in error messages.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-21 23:36:04 +09:00
Hugh McMaster
bb2c799f36
regedit: Use generic ARRAY_SIZE macro to allow for broader use.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-21 23:36:03 +09:00
Hugh McMaster
3763c7a610
regedit: Rewrite processRegLinesA into an ANSI version of processRegLinesW.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-21 23:36:03 +09:00
Hugh McMaster
fec0b697c7
regedit: Use Unicode for registry key paths.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 21:46:34 +09:00
Hugh McMaster
7c824cbfd4
regedit: Open export file with a wide-character stream.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 21:42:09 +09:00
Hugh McMaster
86ebd5eee0
regedit: Use Unicode when printing system error messages.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 21:41:52 +09:00
Hugh McMaster
8dfc25ea9e
regedit: Use output_message() in regproc.c for better internationalization.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 21:41:28 +09:00
Francois Gouget
f099d0b197
regedit: Make GetwideString() static.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-07 11:16:02 +09:00
Hugh McMaster
493b5aab22
regedit: Hard-code "regedit" instead of passing getAppName() as an argument.
...
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-23 22:51:31 +09:00
Jiaxing Wang
ebacf05258
regedit: Need 3 bytes of room at end of buffer for \r\n\0 to avoid endless loop.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-26 23:58:28 +09:00
Jiaxing Wang
a53371497f
regedit: Avoid appending '\0' to string value of imported key.
2015-05-20 18:32:47 +09:00
Sebastian Lackner
fb37d215cd
regedit: Fix incorrect usage of CompareString in parseKeyName.
2014-11-19 23:36:35 +09:00
Bruno Jesus
84d7239640
regedit: Allow importing/exporting strings with '\r'.
2014-10-30 12:00:38 +09:00
Bruno Jesus
c35bca6561
regedit: Allow importing strings with escaped NULL.
2014-10-29 20:31:10 +09:00
Bruno Jesus
01b0746906
regedit: Append exported strings using the correct size.
2014-10-28 14:54:12 +09:00
Bruno Jesus
0d3807dbc5
regedit: Fix qword entries export.
2012-05-17 10:18:54 +02:00
Bruno Jesus
1fba4a6886
regedit: Allows semicolon comments.
2012-04-27 12:01:48 +02:00
Ilya Basin
f900ed1474
regedit: Fix buffer size when exporting binary values.
2012-04-12 20:38:52 +02:00
Alexandre Julliard
65dfc51b2e
regedit: Don't use tchar.h.
2012-01-23 16:07:34 +01:00
Francois Gouget
5920de5ffb
Assorted spelling and case fixes.
2011-05-09 12:09:27 +02:00
Andrew Nguyen
3e19c4ca3b
regedit: Explicitly use ANSI functions in regedit helper functions.
2011-04-18 11:50:32 +02:00
Akihiro Sagawa
3c6de3b348
regedit: Export a decent newline in Unicode format.
2011-03-07 15:06:04 +01:00
Marcus Meissner
62f270e269
regedit: fgetc() gets int, not char (Coverity).
2011-02-23 18:22:35 +01:00
Andrew Nguyen
6c8f8a64b0
regedit: Remove an unused string array.
...
Spotted by Austin English with LLVM/Clang.
2011-01-21 13:40:46 +01:00
Andrew Eikum
06f4532cf6
regedit: Don't call ungetc() twice consecutively.
...
Spotted by Sylvain Hitier.
2010-08-23 15:41:53 +02:00
Andrew Eikum
dcfdfbaa54
regedit: Improve importing of REG_SZ with invalid quoting.
2010-08-16 17:28:42 +02:00
Andrew Eikum
8851a4eb1f
regedit: Process reg files which use \r line endings.
2010-08-02 13:58:19 +02:00
Andrew Eikum
4a6ed21094
regedit: Escape the value name portion during export.
2010-06-08 16:35:22 +02:00
Alexander Nicolaysen Sørnes
dcade85261
regedit: Fix reading from stdin.
2009-06-17 12:04:03 +02:00
Jim Cameron
5bd7e306b4
regedit: Fix crash importing large values from Unicode.
2009-03-09 14:21:26 +01:00
Francois Gouget
5898a5c767
regedit: Make some functions static.
2009-01-26 15:13:21 +01:00
Erich Hoover
51a04d5b65
regedit: Fix import mangling REG_EXPAND_SZ values.
2009-01-19 13:36:26 +01:00
Michael Stefaniuc
683c53db42
regedit: Remove some superfluous casts.
2008-12-04 12:08:27 +01:00
Francois Gouget
dfb823bb6f
regedit: Deal with races in 'regedit /E' by resizing the buffers and retrying.
2008-12-01 12:57:39 +01:00
Michael Stefaniuc
c75a143f3d
regedit: Remove NULL check before HeapFree (Smatch).
2008-11-25 11:55:59 +01:00
Francois Gouget
c880ccea1a
regedit: Fix handling of zero-byte binary values for 'regedit /E'.
2008-11-24 13:43:47 +01:00
Francois Gouget
be19acfbe8
regedit: Avoid wsprintfW() so we can avoid loading user32.dll for 'regedit /E'.
2008-11-21 10:00:47 +01:00
Francois Gouget
a81bb704df
regedit: Fix exporting of REG_EXPAND_SZ and other 'weird' strings.
...
REG_EXPAND_SZ must be exported as hexadecimal to preserve the string type.
0-byte strings and those missing a trailing '\0' or with odd sizes must
be saved as hexadecimal too so they are restored as is.
Move the binary-value export code to the new REGPROC_export_binary()
function.
2008-11-21 10:00:41 +01:00
Francois Gouget
3ef0b0ef2d
regedit: Pass the string length to REGPROC_export_string().
...
We already know it in the caller so this saves us one lstrlenW() call.
2008-11-21 10:00:17 +01:00
Francois Gouget
d92c976803
regedit: Fix a buffer allocation in export_registry_key().
...
This fixes a major buffer overflow bug in 'regedit /E'.
2008-11-21 10:00:13 +01:00
Francois Gouget
3b140ccb0e
Assorted spelling fixes.
2008-11-17 16:04:39 +01:00
Francois Gouget
e1901500ee
regedit: Fix the wrapping of binary values in export_hkey().
...
Don't wait until the line overflows before wrapping it.
Don't wrap the last line.
2008-11-12 13:12:35 +01:00
Francois Gouget
f0f91a69b3
regedit: Fix a buffer overflow when exporting binary values in export_hkey().
...
We must take the indentation into account to compute the number of lines a binary value will use.
2008-11-12 13:12:31 +01:00
Francois Gouget
7df7222594
regedit: Simplify / clean up export_hkey().
...
Avoid unneeded/redundant calls to lstrcatW() and lstrlenW().
Tighten the scope of variables.
2008-11-12 13:12:23 +01:00
Francois Gouget
126ffb1f8a
regedit: Tighten a buffer size calculation.
2008-11-12 13:12:12 +01:00
Francois Gouget
d1d3db4183
regedit: Simplify REGPROC_export_string().
2008-11-12 13:12:09 +01:00
Francois Gouget
7f707b3037
regedit: The xxx_name_len variables track buffer sizes. That is they count the trailing '\0'. Adjust a couple of places that got this wrong and rename them to xxx_name_size.
2008-11-12 13:11:59 +01:00
Francois Gouget
5940ada80b
regedit: line_size is supposed to track a string length.
...
That is it does not count the trailing '\0'.
Fix a few places that got this wrong and rename it to line_len.
2008-11-12 13:11:41 +01:00
Francois Gouget
f982e731c5
regedit: Check that we were able to allocate line_buf too.
2008-11-12 13:11:30 +01:00
Francois Gouget
71af3e1582
regedit: Remove unneeded variable initializations.
2008-11-12 13:11:23 +01:00
Andrey Turkin
ae097646ab
regedit: Ignore spaces in regedit files.
2008-09-30 11:33:14 -05:00
Alexandre Julliard
700b5c6d7f
regedit: Fix file exports in ASCII format.
2008-09-22 15:34:41 +02:00
Alexander Nicolaysen Sørnes
4f332e610e
regedit: Fix some fprintf arguments.
2008-09-22 12:20:07 +02:00
Alexander Nicolaysen Sørnes
1e0a77622b
regedit: Fix char escaping for registry export.
2008-09-22 12:19:54 +02:00