Module: wine Branch: master Commit: 84fb3b943d0a0b978e41ee972db71b43575d11d4 URL: https://source.winehq.org/git/wine.git/?a=commit;h=84fb3b943d0a0b978e41ee972...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Aug 13 12:09:51 2021 +0200
gdi32: Move Escape to gdidc.c.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/driver.c | 97 ----------------------------------------------------- dlls/gdi32/gdidc.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 97 deletions(-)
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c index a00fe510233..1fe288eae2f 100644 --- a/dlls/gdi32/driver.c +++ b/dlls/gdi32/driver.c @@ -1155,103 +1155,6 @@ DWORD WINAPI GDI_CallDeviceCapabilities16( LPCSTR lpszDevice, LPCSTR lpszPort, }
-/************************************************************************ - * Escape [GDI32.@] - */ -INT WINAPI Escape( HDC hdc, INT escape, INT in_count, LPCSTR in_data, LPVOID out_data ) -{ - INT ret; - POINT *pt; - - switch (escape) - { - case ABORTDOC: - return AbortDoc( hdc ); - - case ENDDOC: - return EndDoc( hdc ); - - case GETPHYSPAGESIZE: - pt = out_data; - pt->x = GetDeviceCaps( hdc, PHYSICALWIDTH ); - pt->y = GetDeviceCaps( hdc, PHYSICALHEIGHT ); - return 1; - - case GETPRINTINGOFFSET: - pt = out_data; - pt->x = GetDeviceCaps( hdc, PHYSICALOFFSETX ); - pt->y = GetDeviceCaps( hdc, PHYSICALOFFSETY ); - return 1; - - case GETSCALINGFACTOR: - pt = out_data; - pt->x = GetDeviceCaps( hdc, SCALINGFACTORX ); - pt->y = GetDeviceCaps( hdc, SCALINGFACTORY ); - return 1; - - case NEWFRAME: - return EndPage( hdc ); - - case SETABORTPROC: - return SetAbortProc( hdc, (ABORTPROC)in_data ); - - case STARTDOC: - { - DOCINFOA doc; - char *name = NULL; - - /* in_data may not be 0 terminated so we must copy it */ - if (in_data) - { - name = HeapAlloc( GetProcessHeap(), 0, in_count+1 ); - memcpy( name, in_data, in_count ); - name[in_count] = 0; - } - /* out_data is actually a pointer to the DocInfo structure and used as - * a second input parameter */ - if (out_data) doc = *(DOCINFOA *)out_data; - else - { - doc.cbSize = sizeof(doc); - doc.lpszOutput = NULL; - doc.lpszDatatype = NULL; - doc.fwType = 0; - } - doc.lpszDocName = name; - ret = StartDocA( hdc, &doc ); - HeapFree( GetProcessHeap(), 0, name ); - if (ret > 0) ret = StartPage( hdc ); - return ret; - } - - case QUERYESCSUPPORT: - { - DWORD code; - - if (in_count < sizeof(SHORT)) return 0; - code = (in_count < sizeof(DWORD)) ? *(const USHORT *)in_data : *(const DWORD *)in_data; - switch (code) - { - case ABORTDOC: - case ENDDOC: - case GETPHYSPAGESIZE: - case GETPRINTINGOFFSET: - case GETSCALINGFACTOR: - case NEWFRAME: - case QUERYESCSUPPORT: - case SETABORTPROC: - case STARTDOC: - return TRUE; - } - break; - } - } - - /* if not handled internally, pass it to the driver */ - return ExtEscape( hdc, escape, in_count, in_data, 0, out_data ); -} - - /****************************************************************************** * NtGdiExtEscape (win32u.@) * diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c index 0545dfef696..e6531d0d94d 100644 --- a/dlls/gdi32/gdidc.c +++ b/dlls/gdi32/gdidc.c @@ -135,6 +135,102 @@ INT WINAPI GetDeviceCaps( HDC hdc, INT cap ) return NtGdiGetDeviceCaps( hdc, cap ); }
+/*********************************************************************** + * Escape (GDI32.@) + */ +INT WINAPI Escape( HDC hdc, INT escape, INT in_count, const char *in_data, void *out_data ) +{ + INT ret; + POINT *pt; + + switch (escape) + { + case ABORTDOC: + return AbortDoc( hdc ); + + case ENDDOC: + return EndDoc( hdc ); + + case GETPHYSPAGESIZE: + pt = out_data; + pt->x = GetDeviceCaps( hdc, PHYSICALWIDTH ); + pt->y = GetDeviceCaps( hdc, PHYSICALHEIGHT ); + return 1; + + case GETPRINTINGOFFSET: + pt = out_data; + pt->x = GetDeviceCaps( hdc, PHYSICALOFFSETX ); + pt->y = GetDeviceCaps( hdc, PHYSICALOFFSETY ); + return 1; + + case GETSCALINGFACTOR: + pt = out_data; + pt->x = GetDeviceCaps( hdc, SCALINGFACTORX ); + pt->y = GetDeviceCaps( hdc, SCALINGFACTORY ); + return 1; + + case NEWFRAME: + return EndPage( hdc ); + + case SETABORTPROC: + return SetAbortProc( hdc, (ABORTPROC)in_data ); + + case STARTDOC: + { + DOCINFOA doc; + char *name = NULL; + + /* in_data may not be 0 terminated so we must copy it */ + if (in_data) + { + name = HeapAlloc( GetProcessHeap(), 0, in_count+1 ); + memcpy( name, in_data, in_count ); + name[in_count] = 0; + } + /* out_data is actually a pointer to the DocInfo structure and used as + * a second input parameter */ + if (out_data) doc = *(DOCINFOA *)out_data; + else + { + doc.cbSize = sizeof(doc); + doc.lpszOutput = NULL; + doc.lpszDatatype = NULL; + doc.fwType = 0; + } + doc.lpszDocName = name; + ret = StartDocA( hdc, &doc ); + HeapFree( GetProcessHeap(), 0, name ); + if (ret > 0) ret = StartPage( hdc ); + return ret; + } + + case QUERYESCSUPPORT: + { + DWORD code; + + if (in_count < sizeof(SHORT)) return 0; + code = (in_count < sizeof(DWORD)) ? *(const USHORT *)in_data : *(const DWORD *)in_data; + switch (code) + { + case ABORTDOC: + case ENDDOC: + case GETPHYSPAGESIZE: + case GETPRINTINGOFFSET: + case GETSCALINGFACTOR: + case NEWFRAME: + case QUERYESCSUPPORT: + case SETABORTPROC: + case STARTDOC: + return TRUE; + } + break; + } + } + + /* if not handled internally, pass it to the driver */ + return ExtEscape( hdc, escape, in_count, in_data, 0, out_data ); +} + /*********************************************************************** * ExtEscape [GDI32.@] */