https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e289916aaa166d92d85df8...
commit e289916aaa166d92d85df8617b865fbab491a9da Author: Amine Khaldi amine.khaldi@reactos.org AuthorDate: Sun Apr 1 13:09:44 2018 +0100 Commit: Amine Khaldi amine.khaldi@reactos.org CommitDate: Sun Apr 1 13:09:44 2018 +0100
[WINHLP32] Sync with Wine Staging 3.3. CORE-14434 --- base/applications/winhlp32/CMakeLists.txt | 4 +- base/applications/winhlp32/callback.c | 9 + base/applications/winhlp32/hlpfile.c | 12 ++ base/applications/winhlp32/hlpfile.h | 2 + base/applications/winhlp32/macro.c | 11 +- base/applications/winhlp32/macro.h | 7 + base/applications/winhlp32/macro.lex.l | 6 +- base/applications/winhlp32/macro.lex.yy.c | 27 ++- base/applications/winhlp32/macro.lex.yy.h | 323 ++++++++++++++++++++++++++++++ base/applications/winhlp32/precomp.h | 20 ++ base/applications/winhlp32/rsrc.rc | 3 - base/applications/winhlp32/winhelp.c | 22 +- base/applications/winhlp32/winhelp.h | 26 +-- base/applications/winhlp32/winhelp_res.h | 3 + media/doc/README.WINE | 2 +- 15 files changed, 431 insertions(+), 46 deletions(-)
diff --git a/base/applications/winhlp32/CMakeLists.txt b/base/applications/winhlp32/CMakeLists.txt index 4c9848466c..aecb08cfd3 100644 --- a/base/applications/winhlp32/CMakeLists.txt +++ b/base/applications/winhlp32/CMakeLists.txt @@ -13,12 +13,12 @@ list(APPEND SOURCE macro.c macro.lex.yy.c winhelp.c - winhelp.h) + precomp.h)
add_rc_deps(rsrc.rc ${CMAKE_CURRENT_SOURCE_DIR}/res/winhelp.ico) add_executable(winhlp32 ${SOURCE} string.c rsrc.rc) set_module_type(winhlp32 win32gui) target_link_libraries(winhlp32 wine) add_importlibs(winhlp32 user32 gdi32 shell32 comctl32 comdlg32 msvcrt kernel32 ntdll) -add_pch(winhlp32 winhelp.h SOURCE) +add_pch(winhlp32 precomp.h SOURCE) add_cd_file(TARGET winhlp32 DESTINATION reactos FOR all) diff --git a/base/applications/winhlp32/callback.c b/base/applications/winhlp32/callback.c index a15b728df6..e58fab128d 100644 --- a/base/applications/winhlp32/callback.c +++ b/base/applications/winhlp32/callback.c @@ -18,8 +18,17 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#define WIN32_LEAN_AND_MEAN + +#include <stdio.h> + +#include "windows.h" #include "winhelp.h"
+#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(winhelp); + static WORD CALLBACK WHD_GetFSError(void) { WINE_FIXME("()\n"); diff --git a/base/applications/winhlp32/hlpfile.c b/base/applications/winhlp32/hlpfile.c index 850bfcbc6e..4655446502 100644 --- a/base/applications/winhlp32/hlpfile.c +++ b/base/applications/winhlp32/hlpfile.c @@ -20,8 +20,20 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#include <stdarg.h> +#include <stdio.h> +#include <string.h> + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" #include "winhelp.h"
+#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(winhelp); + static inline unsigned short GET_USHORT(const BYTE* buffer, unsigned i) { return (BYTE)buffer[i] + 0x100 * (BYTE)buffer[i + 1]; diff --git a/base/applications/winhlp32/hlpfile.h b/base/applications/winhlp32/hlpfile.h index 55ef681edd..20c0ca4d99 100644 --- a/base/applications/winhlp32/hlpfile.h +++ b/base/applications/winhlp32/hlpfile.h @@ -20,6 +20,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#pragma once + struct tagHelpFile;
typedef struct diff --git a/base/applications/winhlp32/macro.c b/base/applications/winhlp32/macro.c index 02a0ffc1a5..5a25d6c944 100644 --- a/base/applications/winhlp32/macro.c +++ b/base/applications/winhlp32/macro.c @@ -19,9 +19,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#define WIN32_LEAN_AND_MEAN + +#include <stdio.h> + +#include "windows.h" +#include "commdlg.h" +#include "shellapi.h" #include "winhelp.h"
-#include <shellapi.h> +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(winhelp);
/**************************************************/ /* Macro table */ diff --git a/base/applications/winhlp32/macro.h b/base/applications/winhlp32/macro.h index a82b90e5f3..ca6445d497 100644 --- a/base/applications/winhlp32/macro.h +++ b/base/applications/winhlp32/macro.h @@ -19,6 +19,13 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#pragma once + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" + struct lexret { LPCSTR proto; BOOL bool; diff --git a/base/applications/winhlp32/macro.lex.l b/base/applications/winhlp32/macro.lex.l index 8f6945ca98..da2dd22e44 100644 --- a/base/applications/winhlp32/macro.lex.l +++ b/base/applications/winhlp32/macro.lex.l @@ -20,7 +20,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ %} -%option noinput nounput never-interactive 8bit +%option noinput nounput never-interactive 8bit noyywrap %x quote %{ #include "config.h" @@ -367,7 +367,3 @@ WINHELP_WINDOW* MACRO_CurrentWindow(void) { return lex_data ? lex_data->window : Globals.active_win; } - -#ifndef yywrap -int yywrap(void) { return 1; } -#endif diff --git a/base/applications/winhlp32/macro.lex.yy.c b/base/applications/winhlp32/macro.lex.yy.c index 13f864eaf8..255bdb159a 100644 --- a/base/applications/winhlp32/macro.lex.yy.c +++ b/base/applications/winhlp32/macro.lex.yy.c @@ -333,6 +333,9 @@ void yyfree (void * );
/* Begin user sect3 */
+#define yywrap() 1 +#define YY_SKIP_YYWRAP + typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; @@ -494,11 +497,21 @@ char *yytext; #define YY_NO_INPUT 1
#line 26 "macro.lex.l" -#include <config.h> +#include "config.h" +#include <assert.h> +#include <stdarg.h>
#define YY_NO_UNISTD_H +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" #include "winhelp.h"
+#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(winhelp); + struct lex_data { LPCSTR macroptr; LPSTR strptr; @@ -515,7 +528,7 @@ struct lexret yylval; #define YY_INPUT(buf,result,max_size)\ if ((result = *lex_data->macroptr ? 1 : 0)) buf[0] = *lex_data->macroptr++;
-#line 537 "macro.lex.yy.c" +#line 532 "macro.lex.yy.c"
#define INITIAL 0 #define quote 1 @@ -699,7 +712,7 @@ YY_DECL #line 58 "macro.lex.l"
-#line 726 "macro.lex.yy.c" +#line 716 "macro.lex.yy.c"
if ( !(yy_init) ) { @@ -867,7 +880,7 @@ YY_RULE_SETUP #line 108 "macro.lex.l" ECHO; YY_BREAK -#line 894 "macro.lex.yy.c" +#line 884 "macro.lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate();
@@ -1825,7 +1838,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 108 "macro.lex.l" +#line 107 "macro.lex.l"
@@ -2090,7 +2103,3 @@ WINHELP_WINDOW* MACRO_CurrentWindow(void) return lex_data ? lex_data->window : Globals.active_win; }
-#ifndef yywrap -int yywrap(void) { return 1; } -#endif - diff --git a/base/applications/winhlp32/macro.lex.yy.h b/base/applications/winhlp32/macro.lex.yy.h new file mode 100644 index 0000000000..05147e869b --- /dev/null +++ b/base/applications/winhlp32/macro.lex.yy.h @@ -0,0 +1,323 @@ +#ifndef yyHEADER_H +#define yyHEADER_H 1 +#define yyIN_HEADER 1 + +#line 6 "macro.lex.yy.h" + +#line 8 "macro.lex.yy.h" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 37 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t yyleng; + +extern FILE *yyin, *yyout; + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + yy_size_t yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +/* Begin user sect3 */ + +#define yywrap() 1 +#define YY_SKIP_YYWRAP + +extern int yylineno; + +extern char *yytext; +#define yytext_ptr yytext + +#ifdef YY_HEADER_EXPORT_START_CONDITIONS +#define INITIAL 0 +#define quote 1 + +#endif + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * out_str ); + +yy_size_t yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif + +#line 107 "macro.lex.l" + + +#line 322 "macro.lex.yy.h" +#undef yyIN_HEADER +#endif /* yyHEADER_H */ diff --git a/base/applications/winhlp32/precomp.h b/base/applications/winhlp32/precomp.h new file mode 100644 index 0000000000..28061d4b57 --- /dev/null +++ b/base/applications/winhlp32/precomp.h @@ -0,0 +1,20 @@ + +#ifndef _WINHELP_PRECOMP_H_ +#define _WINHELP_PRECOMP_H_ + +#include <assert.h> +#include <stdio.h> + +#define NONAMELESSUNION +#define NONAMELESSSTRUCT + +#include <windows.h> + +#include <wine/debug.h> + +#include "winhelp.h" +#include "hlpfile.h" +#include "macro.h" +#include "winhelp_res.h" + +#endif /* !_WINHELP_PRECOMP_H_ */ diff --git a/base/applications/winhlp32/rsrc.rc b/base/applications/winhlp32/rsrc.rc index d1f279eb28..3666e11258 100644 --- a/base/applications/winhlp32/rsrc.rc +++ b/base/applications/winhlp32/rsrc.rc @@ -19,9 +19,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include <windef.h> -#include <winuser.h> - #include "winhelp_res.h"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL diff --git a/base/applications/winhlp32/winhelp.c b/base/applications/winhlp32/winhelp.c index fdd1b40969..2ac3d2ff24 100644 --- a/base/applications/winhlp32/winhelp.c +++ b/base/applications/winhlp32/winhelp.c @@ -22,10 +22,28 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
+#include <assert.h> +#include <stdio.h> +#include <string.h> +#include <stdarg.h> +#include <stdlib.h> + +#define NONAMELESSUNION + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "commdlg.h" #include "winhelp.h" +#include "winhelp_res.h" +#include "shellapi.h" +#include "richedit.h" +#include "commctrl.h"
-#include <richedit.h> -#include <commctrl.h> +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(winhelp);
WINHELP_GLOBALS Globals = {3, NULL, TRUE, NULL, NULL, NULL, NULL, NULL, {{{NULL,NULL}},0}, NULL};
diff --git a/base/applications/winhlp32/winhelp.h b/base/applications/winhlp32/winhelp.h index ae0b92030d..dd4e9a4e27 100644 --- a/base/applications/winhlp32/winhelp.h +++ b/base/applications/winhlp32/winhelp.h @@ -20,8 +20,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#ifndef _WINHELP_H_ -#define _WINHELP_H_ +#pragma once
#define MAX_LANGUAGE_NUMBER 255 #define MAX_STRING_LEN 255 @@ -35,29 +34,12 @@
#ifndef RC_INVOKED
-#include <assert.h> #include <stdarg.h> -#include <stdio.h> - -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - -#include <windef.h> -#include <winbase.h> -#include <wingdi.h> -#include <winuser.h> -#include <commdlg.h>
#include "hlpfile.h" +#include "windef.h" +#include "winbase.h" #include "macro.h" - -#include <wine/debug.h> -WINE_DEFAULT_DEBUG_CHANNEL(winhelp); - #include "winhelp_res.h"
typedef struct tagHelpButton @@ -206,5 +188,3 @@ extern const char STRING_DIALOG_TEST[];
/* Buttons */ #define WH_FIRST_BUTTON 500 - -#endif /* _WINHELP_H_ */ diff --git a/base/applications/winhlp32/winhelp_res.h b/base/applications/winhlp32/winhelp_res.h index dccf230490..f0261a0074 100644 --- a/base/applications/winhlp32/winhelp_res.h +++ b/base/applications/winhlp32/winhelp_res.h @@ -1,5 +1,8 @@ #pragma once
+#include <windef.h> +#include <winuser.h> + #define MNID_FILE_OPEN 0x101 #define MNID_FILE_PRINT 0x104 #define MNID_FILE_SETUP 0x106 diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 492d022c16..6b4613069f 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -238,7 +238,7 @@ reactos/base/applications/extrac32 # Synced to WineStaging-3.3 reactos/base/applications/iexplore # Synced to WineStaging-3.3 reactos/base/applications/notepad # Forked at Wine-20041201 reactos/base/applications/regedit # Out of sync -reactos/base/applications/winhlp32 # Synced to Wine-3.0 +reactos/base/applications/winhlp32 # Synced to WineStaging-3.3 reactos/base/applications/wordpad # Synced to WineStaging-1.9.16 reactos/base/applications/write # Synced to WineStaging-2.9 reactos/base/services/rpcss # Synced to WineStaging-1.9.16