home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / patches / 6.0.070 < prev    next >
Encoding:
Internet Message Format  |  2001-11-03  |  19.3 KB

  1. To: vim-dev@vim.org
  2. Subject: Patch 6.0.070
  3. Fcc: outbox
  4. From: Bram Moolenaar <Bram@moolenaar.net>
  5. MIME-Version: 1.0
  6. Content-Type: text/plain; charset=ISO-8859-1
  7. Content-Transfer-Encoding: 8bit
  8. ------------
  9.  
  10. Patch 6.0.070
  11. Problem:    Win32: The error message for a failed dynamic linking of a Perl,
  12.         Ruby, Tcl and Python library is unclear about what went wrong.
  13. Solution:   Give the name of the library or function that could not be loaded.
  14.         Also for the iconv and gettext libraries when 'verbose' is set.
  15. Files:        src/eval.c, src/if_perl.xs, src/if_python.c, src/if_ruby.c,
  16.         src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/if_perl.pro,
  17.         src/proto/if_python.pro, src/proto/if_ruby.pro,
  18.         src/proto/if_tcl.pro, src/proto/mbyte.pro
  19.  
  20.  
  21. *** ../vim60.69/src/eval.c    Mon Oct 29 15:15:20 2001
  22. --- src/eval.c    Sun Nov  4 13:57:39 2001
  23. ***************
  24. *** 4337,4359 ****
  25.           n = (starting != 0);
  26.   #ifdef DYNAMIC_TCL
  27.       else if (STRICMP(name, "tcl") == 0)
  28. !         n = tcl_enabled() ? TRUE : FALSE;
  29.   #endif
  30.   #if defined(USE_ICONV) && defined(DYNAMIC_ICONV)
  31.       else if (STRICMP(name, "iconv") == 0)
  32. !         n = iconv_enabled();
  33.   #endif
  34.   #ifdef DYNAMIC_RUBY
  35.       else if (STRICMP(name, "ruby") == 0)
  36. !         n = ruby_enabled() ? TRUE : FALSE;
  37.   #endif
  38.   #ifdef DYNAMIC_PYTHON
  39.       else if (STRICMP(name, "python") == 0)
  40. !         n = python_enabled() ? TRUE : FALSE;
  41.   #endif
  42.   #ifdef DYNAMIC_PERL
  43.       else if (STRICMP(name, "perl") == 0)
  44. !         n = perl_enabled() ? TRUE : FALSE;
  45.   #endif
  46.   #ifdef FEAT_GUI
  47.       else if (STRICMP(name, "gui_running") == 0)
  48. --- 4337,4359 ----
  49.           n = (starting != 0);
  50.   #ifdef DYNAMIC_TCL
  51.       else if (STRICMP(name, "tcl") == 0)
  52. !         n = tcl_enabled(FALSE);
  53.   #endif
  54.   #if defined(USE_ICONV) && defined(DYNAMIC_ICONV)
  55.       else if (STRICMP(name, "iconv") == 0)
  56. !         n = iconv_enabled(FALSE);
  57.   #endif
  58.   #ifdef DYNAMIC_RUBY
  59.       else if (STRICMP(name, "ruby") == 0)
  60. !         n = ruby_enabled(FALSE);
  61.   #endif
  62.   #ifdef DYNAMIC_PYTHON
  63.       else if (STRICMP(name, "python") == 0)
  64. !         n = python_enabled(FALSE);
  65.   #endif
  66.   #ifdef DYNAMIC_PERL
  67.       else if (STRICMP(name, "perl") == 0)
  68. !         n = perl_enabled(FALSE);
  69.   #endif
  70.   #ifdef FEAT_GUI
  71.       else if (STRICMP(name, "gui_running") == 0)
  72. *** ../vim60.69/src/if_perl.xs    Sun Jul 29 14:47:04 2001
  73. --- src/if_perl.xs    Sun Nov  4 13:40:40 2001
  74. ***************
  75. *** 307,323 ****
  76.    * 3. Repeat 2, until get all functions will be used.
  77.    *
  78.    * Parameter 'libname' provides name of DLL.
  79. !  * Succeeded in load, return 1. Failed, return zero.
  80.    */
  81.       static int
  82. ! perl_runtime_link_init(char *libname)
  83.   {
  84.       int i;
  85.   
  86. !     if (hPerlLib)
  87. !     return 1;
  88.       if (!(hPerlLib = LoadLibraryEx(libname, NULL, 0)))
  89. !     return 0;
  90.       for (i = 0; perl_funcname_table[i].ptr; ++i)
  91.       {
  92.       if (!(*perl_funcname_table[i].ptr = GetProcAddress(hPerlLib,
  93. --- 307,327 ----
  94.    * 3. Repeat 2, until get all functions will be used.
  95.    *
  96.    * Parameter 'libname' provides name of DLL.
  97. !  * Return OK or FAIL.
  98.    */
  99.       static int
  100. ! perl_runtime_link_init(char *libname, int verbose)
  101.   {
  102.       int i;
  103.   
  104. !     if (hPerlLib != NULL)
  105. !     return OK;
  106.       if (!(hPerlLib = LoadLibraryEx(libname, NULL, 0)))
  107. !     {
  108. !     if (verbose)
  109. !         EMSG2(_("E370: Could not load library %s"), libname);
  110. !     return FAIL;
  111. !     }
  112.       for (i = 0; perl_funcname_table[i].ptr; ++i)
  113.       {
  114.       if (!(*perl_funcname_table[i].ptr = GetProcAddress(hPerlLib,
  115. ***************
  116. *** 325,344 ****
  117.       {
  118.           FreeLibrary(hPerlLib);
  119.           hPerlLib = NULL;
  120. !         return 0;
  121.       }
  122.       }
  123. !     return 1;
  124.   }
  125.   
  126.   /*
  127. !  * If runtime-link-perl(DLL) was loaded successfully, return 1.
  128. !  * There were no DLL loaded, return 0.
  129.    */
  130.       int
  131. ! perl_enabled()
  132.   {
  133. !     return perl_runtime_link_init(DYNAMIC_PERL_DLL);
  134.   }
  135.   #endif /* DYNAMIC_PERL */
  136.   
  137. --- 329,352 ----
  138.       {
  139.           FreeLibrary(hPerlLib);
  140.           hPerlLib = NULL;
  141. !         if (verbose)
  142. !         EMSG2(_("E448: Could not load library function %s"),
  143. !                          perl_funcname_table[i].name);
  144. !         return FAIL;
  145.       }
  146.       }
  147. !     return OK;
  148.   }
  149.   
  150.   /*
  151. !  * If runtime-link-perl(DLL) was loaded successfully, return TRUE.
  152. !  * There were no DLL loaded, return FALSE.
  153.    */
  154.       int
  155. ! perl_enabled(verbose)
  156. !     int        verbose;
  157.   {
  158. !     return perl_runtime_link_init(DYNAMIC_PERL_DLL, verbose) == OK;
  159.   }
  160.   #endif /* DYNAMIC_PERL */
  161.   
  162. ***************
  163. *** 548,557 ****
  164.       SV        *sv;
  165.       SV        *safe;
  166.   
  167. !     if (!perl_interp)
  168.       {
  169.   #ifdef DYNAMIC_PERL
  170. !     if (!perl_enabled())
  171.       {
  172.           EMSG(_(e_noperl));
  173.           return;
  174. --- 556,565 ----
  175.       SV        *sv;
  176.       SV        *safe;
  177.   
  178. !     if (perl_interp == NULL)
  179.       {
  180.   #ifdef DYNAMIC_PERL
  181. !     if (!perl_enabled(TRUE))
  182.       {
  183.           EMSG(_(e_noperl));
  184.           return;
  185. ***************
  186. *** 644,653 ****
  187.       if (bufempty())
  188.       return;
  189.   
  190. !     if (!perl_interp)
  191.       {
  192.   #ifdef DYNAMIC_PERL
  193. !     if (!perl_enabled())
  194.       {
  195.           EMSG(_(e_noperl));
  196.           return;
  197. --- 652,661 ----
  198.       if (bufempty())
  199.       return;
  200.   
  201. !     if (perl_interp == NULL)
  202.       {
  203.   #ifdef DYNAMIC_PERL
  204. !     if (!perl_enabled(TRUE))
  205.       {
  206.           EMSG(_(e_noperl));
  207.           return;
  208. *** ../vim60.69/src/if_python.c    Thu Oct 18 13:28:47 2001
  209. --- src/if_python.c    Sun Nov  4 13:41:47 2001
  210. ***************
  211. *** 228,248 ****
  212.   }
  213.   
  214.   /*
  215. !  * Load library and get all pointers.  If failed, function returns 0.
  216. !  * Succeeded 1.
  217. !  *
  218.    * Parameter 'libname' provides name of DLL.
  219.    */
  220.       static int
  221. ! python_runtime_link_init(char* libname)
  222.   {
  223.       int i;
  224.   
  225.       if (hinstPython)
  226. !     return 1;
  227.       hinstPython = LoadLibrary(libname);
  228.       if (!hinstPython)
  229. !     return 0;
  230.   
  231.       for (i = 0; python_funcname_table[i].ptr; ++i)
  232.       {
  233. --- 228,251 ----
  234.   }
  235.   
  236.   /*
  237. !  * Load library and get all pointers.
  238.    * Parameter 'libname' provides name of DLL.
  239. +  * Return OK or FAIL.
  240.    */
  241.       static int
  242. ! python_runtime_link_init(char *libname, int verbose)
  243.   {
  244.       int i;
  245.   
  246.       if (hinstPython)
  247. !     return OK;
  248.       hinstPython = LoadLibrary(libname);
  249.       if (!hinstPython)
  250. !     {
  251. !     if (verbose)
  252. !         EMSG2(_("E370: Could not load library %s"), libname);
  253. !     return FAIL;
  254. !     }
  255.   
  256.       for (i = 0; python_funcname_table[i].ptr; ++i)
  257.       {
  258. ***************
  259. *** 251,270 ****
  260.       {
  261.           FreeLibrary(hinstPython);
  262.           hinstPython = 0;
  263. !         return 0;
  264.       }
  265.       }
  266. !     return 1;
  267.   }
  268.   
  269.   /*
  270.    * If python is enabled (there is installed python on Windows system) return
  271. !  * 1, else 0.
  272.    */
  273.       int
  274. ! python_enabled()
  275.   {
  276. !     return python_runtime_link_init(DYNAMIC_PYTHON_DLL);
  277.   }
  278.   
  279.   /* Load the standard Python exceptions - don't import the symbols from the
  280. --- 254,277 ----
  281.       {
  282.           FreeLibrary(hinstPython);
  283.           hinstPython = 0;
  284. !         if (verbose)
  285. !         EMSG2(_("E448: Could not load library function %s"),
  286. !                            python_funcname_table[i].name);
  287. !         return FAIL;
  288.       }
  289.       }
  290. !     return OK;
  291.   }
  292.   
  293.   /*
  294.    * If python is enabled (there is installed python on Windows system) return
  295. !  * TRUE, else FALSE.
  296.    */
  297.       int
  298. ! python_enabled(verbose)
  299. !     int        verbose;
  300.   {
  301. !     return python_runtime_link_init(DYNAMIC_PYTHON_DLL, verbose) == OK;
  302.   }
  303.   
  304.   /* Load the standard Python exceptions - don't import the symbols from the
  305. ***************
  306. *** 371,377 ****
  307.       if (!initialised)
  308.       {
  309.   #ifdef DYNAMIC_PYTHON
  310. !     if (!python_enabled())
  311.       {
  312.           EMSG(_("E263: Sorry, this command is disabled, the Python library could not be loaded."));
  313.           goto fail;
  314. --- 378,384 ----
  315.       if (!initialised)
  316.       {
  317.   #ifdef DYNAMIC_PYTHON
  318. !     if (!python_enabled(TRUE))
  319.       {
  320.           EMSG(_("E263: Sorry, this command is disabled, the Python library could not be loaded."));
  321.           goto fail;
  322. *** ../vim60.69/src/if_ruby.c    Thu Aug 16 18:45:32 2001
  323. --- src/if_ruby.c    Sun Nov  4 13:44:01 2001
  324. ***************
  325. *** 242,262 ****
  326.   }
  327.   
  328.   /*
  329. !  * Load library and get all pointers.  If failed, function returns 0.
  330. !  * Succeeded 1.
  331. !  *
  332.    * Parameter 'libname' provides name of DLL.
  333.    */
  334.       static int
  335. ! ruby_runtime_link_init(char* libname)
  336.   {
  337.       int i;
  338.   
  339.       if (hinstRuby)
  340. !     return 1;
  341.       hinstRuby = LoadLibrary(libname);
  342.       if (!hinstRuby)
  343. !     return 0;
  344.   
  345.       for (i = 0; ruby_funcname_table[i].ptr; ++i)
  346.       {
  347. --- 242,265 ----
  348.   }
  349.   
  350.   /*
  351. !  * Load library and get all pointers.
  352.    * Parameter 'libname' provides name of DLL.
  353. +  * Return OK or FAIL.
  354.    */
  355.       static int
  356. ! ruby_runtime_link_init(char *libname, int verbose)
  357.   {
  358.       int i;
  359.   
  360.       if (hinstRuby)
  361. !     return OK;
  362.       hinstRuby = LoadLibrary(libname);
  363.       if (!hinstRuby)
  364. !     {
  365. !     if (verbose)
  366. !         EMSG2(_("E370: Could not load library %s"), libname);
  367. !     return FAIL;
  368. !     }
  369.   
  370.       for (i = 0; ruby_funcname_table[i].ptr; ++i)
  371.       {
  372. ***************
  373. *** 265,284 ****
  374.       {
  375.           FreeLibrary(hinstRuby);
  376.           hinstRuby = 0;
  377. !         return 0;
  378.       }
  379.       }
  380. !     return 1;
  381.   }
  382.   
  383.   /*
  384. !  * If ruby is enabled (there is installed ruby on Windows system) return 1,
  385. !  * else 0.
  386.    */
  387.       int
  388. ! ruby_enabled()
  389.   {
  390. !     return ruby_runtime_link_init(DYNAMIC_RUBY_DLL);
  391.   }
  392.   #endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */
  393.   
  394. --- 268,291 ----
  395.       {
  396.           FreeLibrary(hinstRuby);
  397.           hinstRuby = 0;
  398. !         if (verbose)
  399. !         EMSG2(_("E448: Could not load library function %s"),
  400. !                          ruby_funcname_table[i].name);
  401. !         return FAIL;
  402.       }
  403.       }
  404. !     return OK;
  405.   }
  406.   
  407.   /*
  408. !  * If ruby is enabled (there is installed ruby on Windows system) return TRUE,
  409. !  * else FALSE.
  410.    */
  411.       int
  412. ! ruby_enabled(verbose)
  413. !     int        verbose;
  414.   {
  415. !     return ruby_runtime_link_init(DYNAMIC_RUBY_DLL, verbose) == OK;
  416.   }
  417.   #endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */
  418.   
  419. ***************
  420. *** 379,385 ****
  421.       if (!ruby_initialized)
  422.       {
  423.   #ifdef DYNAMIC_RUBY
  424. !     if (ruby_enabled())
  425.       {
  426.   #endif
  427.           ruby_init();
  428. --- 386,392 ----
  429.       if (!ruby_initialized)
  430.       {
  431.   #ifdef DYNAMIC_RUBY
  432. !     if (ruby_enabled(TRUE))
  433.       {
  434.   #endif
  435.           ruby_init();
  436. *** ../vim60.69/src/if_tcl.c    Thu Aug 16 18:46:10 2001
  437. --- src/if_tcl.c    Sun Nov  4 13:55:02 2001
  438. ***************
  439. *** 180,196 ****
  440.    * 3. Repeat 2, until get all functions will be used.
  441.    *
  442.    * Parameter 'libname' provides name of DLL.
  443. !  * Succeeded in load, return 1.  Failed, return zero.
  444.    */
  445.       static int
  446. ! tcl_runtime_link_init(char *libname)
  447.   {
  448.       int i;
  449.   
  450.       if (hTclLib)
  451. !     return 1;
  452.       if (!(hTclLib = LoadLibraryEx(libname, NULL, 0)))
  453. !     return 0;
  454.       for (i = 0; tcl_funcname_table[i].ptr; ++i)
  455.       {
  456.       if (!(*tcl_funcname_table[i].ptr = GetProcAddress(hTclLib,
  457. --- 180,200 ----
  458.    * 3. Repeat 2, until get all functions will be used.
  459.    *
  460.    * Parameter 'libname' provides name of DLL.
  461. !  * Return OK or FAIL.
  462.    */
  463.       static int
  464. ! tcl_runtime_link_init(char *libname, int verbose)
  465.   {
  466.       int i;
  467.   
  468.       if (hTclLib)
  469. !     return OK;
  470.       if (!(hTclLib = LoadLibraryEx(libname, NULL, 0)))
  471. !     {
  472. !     if (verbose)
  473. !         EMSG2(_("E370: Could not load library %s"), libname);
  474. !     return FAIL;
  475. !     }
  476.       for (i = 0; tcl_funcname_table[i].ptr; ++i)
  477.       {
  478.       if (!(*tcl_funcname_table[i].ptr = GetProcAddress(hTclLib,
  479. ***************
  480. *** 198,207 ****
  481.       {
  482.           FreeLibrary(hTclLib);
  483.           hTclLib = NULL;
  484. !         return 0;
  485.       }
  486.       }
  487. !     return 1;
  488.   }
  489.   #endif /* defined(DYNAMIC_TCL) || defined(PROTO) */
  490.   
  491. --- 202,214 ----
  492.       {
  493.           FreeLibrary(hTclLib);
  494.           hTclLib = NULL;
  495. !         if (verbose)
  496. !         EMSG2(_("E448: Could not load library function %s"),
  497. !                           tcl_funcname_table[i].name);
  498. !         return FAIL;
  499.       }
  500.       }
  501. !     return OK;
  502.   }
  503.   #endif /* defined(DYNAMIC_TCL) || defined(PROTO) */
  504.   
  505. ***************
  506. *** 221,233 ****
  507.   }
  508.   
  509.   #if defined(DYNAMIC_TCL) || defined(PROTO)
  510.       int
  511. ! tcl_enabled()
  512.   {
  513. !     static int stubs_initialized = 0;
  514.   
  515. !     if (!stubs_initialized && find_executable_arg
  516. !         && tcl_runtime_link_init(DYNAMIC_TCL_DLL))
  517.       {
  518.       Tcl_Interp *interp;
  519.   
  520. --- 228,244 ----
  521.   }
  522.   
  523.   #if defined(DYNAMIC_TCL) || defined(PROTO)
  524. + /*
  525. +  * Return TRUE if the TCL interface can be used.
  526. +  */
  527.       int
  528. ! tcl_enabled(verbose)
  529. !     int        verbose;
  530.   {
  531. !     static int stubs_initialized = FALSE;
  532.   
  533. !     if (!stubs_initialized && find_executable_arg != NULL
  534. !         && tcl_runtime_link_init(DYNAMIC_TCL_DLL, verbose) == OK)
  535.       {
  536.       Tcl_Interp *interp;
  537.   
  538. ***************
  539. *** 237,243 ****
  540.           {
  541.           Tcl_FindExecutable(find_executable_arg);
  542.           Tcl_DeleteInterp(interp);
  543. !         stubs_initialized = 1;
  544.           }
  545.           /* FIXME: When Tcl_InitStubs() was failed, how delete interp? */
  546.       }
  547. --- 248,254 ----
  548.           {
  549.           Tcl_FindExecutable(find_executable_arg);
  550.           Tcl_DeleteInterp(interp);
  551. !         stubs_initialized = TRUE;
  552.           }
  553.           /* FIXME: When Tcl_InitStubs() was failed, how delete interp? */
  554.       }
  555. ***************
  556. *** 1708,1714 ****
  557.       char *name;
  558.   
  559.   #ifdef DYNAMIC_TCL
  560. !     if (!tcl_enabled())
  561.       {
  562.       EMSG(_("Sorry, this command is disabled: the Tcl library could not be loaded."));
  563.       return FAIL;
  564. --- 1719,1725 ----
  565.       char *name;
  566.   
  567.   #ifdef DYNAMIC_TCL
  568. !     if (!tcl_enabled(TRUE))
  569.       {
  570.       EMSG(_("Sorry, this command is disabled: the Tcl library could not be loaded."));
  571.       return FAIL;
  572. ***************
  573. *** 2068,2074 ****
  574.       struct ref *reflist;
  575.   
  576.   #ifdef DYNAMIC_TCL
  577. !     if (!tcl_enabled())
  578.       return;
  579.   #endif
  580.   
  581. --- 2079,2085 ----
  582.       struct ref *reflist;
  583.   
  584.   #ifdef DYNAMIC_TCL
  585. !     if (!tcl_enabled(TRUE))
  586.       return;
  587.   #endif
  588.   
  589. ***************
  590. *** 2089,2095 ****
  591.       struct ref *reflist;
  592.   
  593.   #ifdef DYNAMIC_TCL
  594. !     if (!tcl_enabled())
  595.       return;
  596.   #endif
  597.   
  598. --- 2100,2106 ----
  599.       struct ref *reflist;
  600.   
  601.   #ifdef DYNAMIC_TCL
  602. !     if (!tcl_enabled(TRUE))
  603.       return;
  604.   #endif
  605.   
  606. *** ../vim60.69/src/mbyte.c    Mon Oct 22 12:47:09 2001
  607. --- src/mbyte.c    Sun Nov  4 14:07:01 2001
  608. ***************
  609. *** 2429,2435 ****
  610.   
  611.   #ifdef DYNAMIC_ICONV
  612.       /* Check if the iconv.dll can be found. */
  613. !     if (!iconv_enabled())
  614.       return (void *)-1;
  615.   #endif
  616.   
  617. --- 2429,2435 ----
  618.   
  619.   #ifdef DYNAMIC_ICONV
  620.       /* Check if the iconv.dll can be found. */
  621. !     if (!iconv_enabled(TRUE))
  622.       return (void *)-1;
  623.   #endif
  624.   
  625. ***************
  626. *** 2553,2559 ****
  627.    * Try opening the iconv.dll and return TRUE if iconv() can be used.
  628.    */
  629.       int
  630. ! iconv_enabled()
  631.   {
  632.       if (hIconvDLL != 0 && hMsvcrtDLL != 0)
  633.       return TRUE;
  634. --- 2553,2560 ----
  635.    * Try opening the iconv.dll and return TRUE if iconv() can be used.
  636.    */
  637.       int
  638. ! iconv_enabled(verbose)
  639. !     int        verbose;
  640.   {
  641.       if (hIconvDLL != 0 && hMsvcrtDLL != 0)
  642.       return TRUE;
  643. ***************
  644. *** 2561,2566 ****
  645. --- 2562,2572 ----
  646.       hMsvcrtDLL = LoadLibrary(DYNAMIC_MSVCRT_DLL);
  647.       if (hIconvDLL == 0 || hMsvcrtDLL == 0)
  648.       {
  649. +     /* Only give the message when 'verbose' is set, otherwise it might be
  650. +      * done whenever a conversion is attempted. */
  651. +     if (verbose && p_verbose > 0)
  652. +         EMSG2(_("E370: Could not load library %s"),
  653. +             hIconvDLL == 0 ? DYNAMIC_ICONV_DLL : DYNAMIC_MSVCRT_DLL);
  654.       iconv_end();
  655.       return FALSE;
  656.       }
  657. ***************
  658. *** 2574,2579 ****
  659. --- 2580,2588 ----
  660.           || iconvctl == NULL || iconv_errno == NULL)
  661.       {
  662.       iconv_end();
  663. +     if (verbose && p_verbose > 0)
  664. +         EMSG2(_("E448: Could not load library function %s"),
  665. +                                   "for libiconv");
  666.       return FALSE;
  667.       }
  668.       return TRUE;
  669. ***************
  670. *** 2607,2612 ****
  671. --- 2616,2624 ----
  672.   #if defined(FEAT_GUI_GTK) || defined(PROTO)
  673.   static int    xim_preediting INIT(= FALSE);    /* XIM in showmode() */
  674.   static int    xim_input_style;
  675. + #ifndef FEAT_GUI_GTK
  676. + # define gboolean int
  677. + #endif
  678.   static gboolean    use_status_area = 0;
  679.   
  680.   static int im_xim_str2keycode __ARGS((unsigned int *code, unsigned int *state));
  681. *** ../vim60.69/src/os_win32.c    Wed Oct 31 15:20:56 2001
  682. --- src/os_win32.c    Sun Nov  4 14:17:10 2001
  683. ***************
  684. *** 255,261 ****
  685. --- 255,265 ----
  686.       STRCPY(gettail(dirname), GETTEXT_DLL);
  687.       hLibintlDLL = LoadLibrary((char *)dirname);
  688.       if (!hLibintlDLL)
  689. +     {
  690. +         if (p_verbose > 0)
  691. +         EMSG2(_("E370: Could not load library %s"), GETTEXT_DLL);
  692.           return 0;
  693. +     }
  694.       }
  695.       for (i = 0; libintl_entry[i].name != NULL
  696.           && libintl_entry[i].ptr != NULL; ++i)
  697. ***************
  698. *** 264,269 ****
  699. --- 268,276 ----
  700.               libintl_entry[i].name)))
  701.       {
  702.           dyn_libintl_end();
  703. +         if (p_verbose > 0)
  704. +         EMSG2(_("E448: Could not load library function %s"),
  705. +                                libintl_entry[i].name);
  706.           return 0;
  707.       }
  708.       }
  709. *** ../vim60.69/src/proto/if_perl.pro    Tue Sep 25 21:49:36 2001
  710. --- src/proto/if_perl.pro    Sun Nov  4 13:32:23 2001
  711. ***************
  712. *** 1,5 ****
  713.   /* auto/if_perl.c */
  714. ! int perl_enabled __ARGS((void));
  715.   void perl_end __ARGS((void));
  716.   void msg_split __ARGS((char_u *s, int attr));
  717.   void perl_win_free __ARGS((win_T *wp));
  718. --- 1,5 ----
  719.   /* auto/if_perl.c */
  720. ! int perl_enabled __ARGS((int verbose));
  721.   void perl_end __ARGS((void));
  722.   void msg_split __ARGS((char_u *s, int attr));
  723.   void perl_win_free __ARGS((win_T *wp));
  724. *** ../vim60.69/src/proto/if_python.pro    Tue Sep 25 21:49:16 2001
  725. --- src/proto/if_python.pro    Sun Nov  4 13:56:44 2001
  726. ***************
  727. *** 1,5 ****
  728.   /* if_python.c */
  729. ! int python_enabled __ARGS((void));
  730.   void python_end __ARGS((void));
  731.   void ex_python __ARGS((exarg_T *eap));
  732.   void ex_pyfile __ARGS((exarg_T *eap));
  733. --- 1,5 ----
  734.   /* if_python.c */
  735. ! int python_enabled __ARGS((int verbose));
  736.   void python_end __ARGS((void));
  737.   void ex_python __ARGS((exarg_T *eap));
  738.   void ex_pyfile __ARGS((exarg_T *eap));
  739. *** ../vim60.69/src/proto/if_ruby.pro    Tue Sep 25 21:49:17 2001
  740. --- src/proto/if_ruby.pro    Sun Nov  4 13:56:49 2001
  741. ***************
  742. *** 1,5 ****
  743.   /* if_ruby.c */
  744. ! int ruby_enabled __ARGS((void));
  745.   void ruby_end __ARGS((void));
  746.   void ex_ruby __ARGS((exarg_T *eap));
  747.   void ex_rubydo __ARGS((exarg_T *eap));
  748. --- 1,5 ----
  749.   /* if_ruby.c */
  750. ! int ruby_enabled __ARGS((int verbose));
  751.   void ruby_end __ARGS((void));
  752.   void ex_ruby __ARGS((exarg_T *eap));
  753.   void ex_rubydo __ARGS((exarg_T *eap));
  754. *** ../vim60.69/src/proto/if_tcl.pro    Tue Sep 25 21:49:33 2001
  755. --- src/proto/if_tcl.pro    Sun Nov  4 13:56:40 2001
  756. ***************
  757. *** 1,6 ****
  758.   /* if_tcl.c */
  759.   void tcl_init __ARGS((char *arg));
  760. ! int tcl_enabled __ARGS((void));
  761.   void tcl_end __ARGS((void));
  762.   void ex_tcl __ARGS((exarg_T *eap));
  763.   void ex_tclfile __ARGS((exarg_T *eap));
  764. --- 1,6 ----
  765.   /* if_tcl.c */
  766.   void tcl_init __ARGS((char *arg));
  767. ! int tcl_enabled __ARGS((int verbose));
  768.   void tcl_end __ARGS((void));
  769.   void ex_tcl __ARGS((exarg_T *eap));
  770.   void ex_tclfile __ARGS((exarg_T *eap));
  771. *** ../vim60.69/src/proto/mbyte.pro    Tue Sep 25 21:49:21 2001
  772. --- src/proto/mbyte.pro    Sun Nov  4 14:07:02 2001
  773. ***************
  774. *** 55,61 ****
  775.   char_u *enc_canonize __ARGS((char_u *enc));
  776.   int enc_default __ARGS((void));
  777.   void *my_iconv_open __ARGS((char_u *to, char_u *from));
  778. ! int iconv_enabled __ARGS((void));
  779.   void iconv_end __ARGS((void));
  780.   int im_xim_isvalid_imactivate __ARGS((void));
  781.   void im_set_active __ARGS((int active));
  782. --- 55,61 ----
  783.   char_u *enc_canonize __ARGS((char_u *enc));
  784.   int enc_default __ARGS((void));
  785.   void *my_iconv_open __ARGS((char_u *to, char_u *from));
  786. ! int iconv_enabled __ARGS((int verbose));
  787.   void iconv_end __ARGS((void));
  788.   int im_xim_isvalid_imactivate __ARGS((void));
  789.   void im_set_active __ARGS((int active));
  790. *** ../vim60.69/src/version.c    Sun Nov  4 13:19:04 2001
  791. --- src/version.c    Sun Nov  4 14:22:24 2001
  792. ***************
  793. *** 608,609 ****
  794. --- 608,611 ----
  795.   {   /* Add new patch number below this line */
  796. + /**/
  797. +     70,
  798.   /**/
  799.  
  800. -- 
  801. Engineers will go without food and hygiene for days to solve a problem.
  802. (Other times just because they forgot.)
  803.                 (Scott Adams - The Dilbert principle)
  804.  
  805.  ///  Bram Moolenaar -- Bram@moolenaar.net -- http://www.moolenaar.net  \\\
  806. (((   Creator of Vim -- http://vim.sf.net -- ftp://ftp.vim.org/pub/vim   )))
  807.  \\\  Help me helping AIDS orphans in Uganda - http://iccf-holland.org  ///
  808.