]> code.delx.au - gnu-emacs/blobdiff - src/w32uniscribe.c
Use eldoc-documentation-functions
[gnu-emacs] / src / w32uniscribe.c
index 0e4177d06bf3d21b0f7913d92c9f5604d228bcb2..5f91b5022ddd2f6dcf125a3255d896e90ec3c3fc 100644 (file)
@@ -1,12 +1,12 @@
 /* Font backend for the Microsoft W32 Uniscribe API.
-   Copyright (C) 2008-2015 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,33 +18,22 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
-/* Override API version - Uniscribe is only available as standard since
-   Windows 2000, though most users of older systems will have it
+/* Override API version - Uniscribe is only available as standard
+   since Windows 2000, though most users of older systems will have it
    since it installs with Internet Explorer 5.0 and other software.
-   We only enable the feature if it is available, so there is no chance
-   of calling non-existent functions.  */
+   Also, MinGW64 w32api headers by default define OPENTYPE_TAG typedef
+   only if _WIN32_WINNT >= 0x0600.  We only use the affected APIs if
+   they are available, so there is no chance of calling non-existent
+   functions.  */
 #undef _WIN32_WINNT
-#define _WIN32_WINNT 0x500
-/* MinGW64 w32api headers by default define OPENTYPE_TAG typedef only
-   if _WIN32_WINNT >= 0x0600; defining UNISCRIBE_OPENTYPE as below
-   makes that typedef visible even for lower values of _WIN32_WINNT.
-   Mingw.org's w32api headers don't use UNISCRIBE_OPENTYPE at all, and
-   the OPENTYPE_TAG typedef is defined unconditionally there.  */
-#ifdef UNISCRIBE_OPENTYPE
-# undef UNISCRIBE_OPENTYPE
-#endif
-#define UNISCRIBE_OPENTYPE 0x0100
+#define _WIN32_WINNT 0x0600
 #include <windows.h>
 #include <usp10.h>
 
 #include "lisp.h"
 #include "w32term.h"
 #include "frame.h"
-#include "dispextern.h"
-#include "character.h"
-#include "charset.h"
 #include "composite.h"
-#include "fontset.h"
 #include "font.h"
 #include "w32font.h"
 
@@ -61,7 +50,7 @@ static int CALLBACK ALIGN_STACK add_opentype_font_name_to_list (ENUMLOGFONTEX *,
                                                                NEWTEXTMETRICEX *,
                                                                DWORD, LPARAM);
 /* Used by uniscribe_otf_capability.  */
-static Lisp_Object otf_features (HDC context, char *table);
+static Lisp_Object otf_features (HDC context, const char *table);
 
 static int
 memq_no_quit (Lisp_Object elt, Lisp_Object list)
@@ -786,7 +775,6 @@ uniscribe_check_otf_1 (HDC context, Lisp_Object script, Lisp_Object lang,
   int max_tags = ARRAYELTS (tags);
   int ntags, i, ret = 0;
   HRESULT rslt;
-  Lisp_Object rest;
 
   *retval = 0;
 
@@ -882,7 +870,6 @@ uniscribe_check_otf (LOGFONT *font, Lisp_Object otf_spec)
   HDC context;
   HFONT check_font, old_font;
   int i, retval = 0;
-  struct gcpro gcpro1;
 
   /* Check the spec is in the right format.  */
   if (!CONSP (otf_spec) || XINT (Flength (otf_spec)) < 3)
@@ -925,10 +912,6 @@ uniscribe_check_otf (LOGFONT *font, Lisp_Object otf_spec)
   if (!NILP (lang))
     lang_tag = OTF_TAG (SNAME (lang));
 
-  /* Everything else is contained within otf_spec so should get
-     marked along with it.  */
-  GCPRO1 (otf_spec);
-
   /* Scan GSUB and GPOS tables.  */
   for (i = 0; i < 2; i++)
     {
@@ -1059,7 +1042,7 @@ uniscribe_check_otf (LOGFONT *font, Lisp_Object otf_spec)
 }
 
 static Lisp_Object
-otf_features (HDC context, char *table)
+otf_features (HDC context, const char *table)
 {
   Lisp_Object script_list = Qnil;
   unsigned short scriptlist_table, n_scripts, feature_table;
@@ -1183,6 +1166,8 @@ struct font_driver uniscribe_font_driver =
 
 /* Note that this should be called at every startup, not just when dumping,
    as it needs to test for the existence of the Uniscribe library.  */
+void syms_of_w32uniscribe (void);
+
 void
 syms_of_w32uniscribe (void)
 {