From: Michael Albinus Date: Wed, 27 Aug 2014 11:22:37 +0000 (+0200) Subject: * lisp.h (str_collate): X-Git-Tag: emacs-25.0.90~2635^2~679^2~421 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=17d94f1ba4333a0d53558af02583dbf80e9157ff;p=emacs.git * lisp.h (str_collate): * sysdep.c (str_collate): Return int. (str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll. --- diff --git a/src/ChangeLog b/src/ChangeLog index 33fea805898..d7066b823b9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2014-08-27 Michael Albinus + + * lisp.h (str_collate): + * sysdep.c (str_collate): Return int. + (str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll. + 2014-08-27 Dmitry Antipov Fix some glitches in previous change. diff --git a/src/lisp.h b/src/lisp.h index 012e5fad18d..b9f456b3745 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4298,7 +4298,7 @@ extern void lock_file (Lisp_Object); extern void unlock_file (Lisp_Object); extern void unlock_buffer (struct buffer *); extern void syms_of_filelock (void); -extern ptrdiff_t str_collate (Lisp_Object, Lisp_Object); +extern int str_collate (Lisp_Object, Lisp_Object); /* Defined in sound.c. */ extern void syms_of_sound (void); diff --git a/src/sysdep.c b/src/sysdep.c index 7b93cb93b85..4b0f54ebe6e 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -3606,7 +3606,7 @@ system_process_attributes (Lisp_Object pid) # define setlocale(category, locale) ((char *) 0) # endif -ptrdiff_t +int str_collate (Lisp_Object s1, Lisp_Object s2) { ptrdiff_t res, len, i, i_byte; @@ -3653,7 +3653,10 @@ str_collate (Lisp_Object s1, Lisp_Object s2) #endif } + errno = 0; res = wcscoll (p1, p2); + if (errno) + error ("Wrong argument: %s", strerror (errno)); #ifdef HAVE_USELOCALE /* Free the locale object, and reset. */ @@ -3674,7 +3677,7 @@ str_collate (Lisp_Object s1, Lisp_Object s2) #endif /* __STDC_ISO_10646__ */ #ifdef WINDOWSNT -ptrdiff_t +int str_collate (Lisp_Object s1, Lisp_Object s2) { Lisp_Object lc_collate =