]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix initialization of shared-game-score-directory on MS-Windows
authorEli Zaretskii <eliz@gnu.org>
Mon, 16 Sep 2019 14:51:25 +0000 (17:51 +0300)
committerEli Zaretskii <eliz@gnu.org>
Mon, 16 Sep 2019 14:51:25 +0000 (17:51 +0300)
* src/callproc.c (init_callproc) [WINDOWSNT]: Run PATH_GAME
through w32_relocate, to expand %emacs_dir%.
[DOS_NT]: Accept EACCES as not "unusual" errno value.
Reported by Richard Copley <rcopley@gmail.com>.

src/callproc.c

index 20e0bc50dab93ed1b3d0decb0327b1fbb9485dd1..1ac0bdc710a1715c066c0df6c6f2a2939e90f798 100644 (file)
@@ -1595,10 +1595,21 @@ init_callproc (void)
   Lisp_Object gamedir = Qnil;
   if (PATH_GAME)
     {
-      Lisp_Object path_game = build_unibyte_string (PATH_GAME);
+      const char *cpath_game = PATH_GAME;
+#ifdef WINDOWSNT
+      /* On MS-Windows, PATH_GAME normally starts with a literal
+        "%emacs_dir%", so it will never work without some tweaking.  */
+      cpath_game = w32_relocate (cpath_game);
+#endif
+      Lisp_Object path_game = build_unibyte_string (cpath_game);
       if (file_accessible_directory_p (path_game))
        gamedir = path_game;
-      else if (errno != ENOENT && errno != ENOTDIR)
+      else if (errno != ENOENT && errno != ENOTDIR
+#ifdef DOS_NT
+              /* DOS/Windows sometimes return EACCES for bad file names  */
+              && errno != EACCES
+#endif
+              )
        dir_warning ("game dir", path_game);
     }
   Vshared_game_score_directory = gamedir;