<html><head></head><body>Indeed, it would not compile. That's why it's patched away...<br><br><div class="gmail_quote">Le 20 mai 2019 15:38:38 GMT+03:00, Steve Lhomme <robux4@ycbcr.xyz> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">On 2019-05-20 13:45, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">Hi,<br><br>In which cases can those errors be confused? The whole point is to allow <br>more precise errors (than VLC_EGENERIC), not less.<br></blockquote><br>switch (err)<br>{<br> case VLC_ENOOBJ:<br> case VLC_ENOVAR:<br>}<br><br>This shouldn't even compile now with this patch since they have the same <br>value.<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">Le 20 mai 2019 09:43:37 GMT+03:00, Steve Lhomme <robux4@ycbcr.xyz> a écrit :<br><br> On 2019-05-19 19:46, Rémi Denis-Courmont wrote:<br><br> While this is not complete nor free of ambiguities, this enables<br> a lot<br> more expressive error values than the current tiny set. And even<br> then,<br> mostly only VLC_EGENERIC and VLC_ENOMEM are ever used.<br><br> This also allows passing errors from the CRT or OS.<br><br> This assumes that 666 is not an error code that VLC will use though.<hr> include/vlc_common.h | 23 ++++++++++++++---------<br> modules/lua/libs/misc.c | 23 ++---------------------<br> 2 files changed, 16 insertions(+), 30 deletions(-)<br><br> diff --git a/include/vlc_common.h b/include/vlc_common.h<br> index 0bbb98fd62..c6e6b7ae6a 100644<br> --- a/include/vlc_common.h<br> +++ b/include/vlc_common.h<br> @@ -42,6 +42,11 @@<br> /*****************************************************************************<br> * Required system headers<br> *****************************************************************************/<br> +#ifndef __cplusplus<br> +# include <errno.h><br> +#else<br> +# include <cerrno><br> +#endif<br> #include <stdlib.h><br> #include <stdarg.h><br><br> @@ -468,23 +473,23 @@ typedef union<br> * Error values (shouldn't be exposed)<br> *****************************************************************************/<br> /** No error */<br> -#define VLC_SUCCESS (-0)<br> +#define VLC_SUCCESS 0<br> /** Unspecified error */<br> -#define VLC_EGENERIC (-1)<br> +#define VLC_EGENERIC (-666)<br> /** Not enough memory */<br> -#define VLC_ENOMEM (-2)<br> +#define VLC_ENOMEM (-ENOMEM)<br> /** Timeout */<br> -#define VLC_ETIMEOUT (-3)<br> +#define VLC_ETIMEOUT (-ETIMEDOUT)<br> /** Module not found */<br> -#define VLC_ENOMOD (-4)<br> +#define VLC_ENOMOD (-ENOTSUP)<br> /** Object not found */<br> -#define VLC_ENOOBJ (-5)<br> +#define VLC_ENOOBJ (-EFAULT)<br><br><br> We're losing some information about what kind of error this is.<br><br> /** Variable not found */<br> -#define VLC_ENOVAR (-6)<br> +#define VLC_ENOVAR (-EFAULT)<br><br><br> We're losing some information about what kind of error this is.<br><br> /** Bad variable value */<br> -#define VLC_EBADVAR (-7)<br> +#define VLC_EBADVAR (-EINVAL)<br> /** Item not found */<br> -#define VLC_ENOITEM (-8)<br> +#define VLC_ENOITEM (-ENOENT)<br><br> /*****************************************************************************<br> * Variable callbacks: called when the value is modified<br> diff --git a/modules/lua/libs/misc.c b/modules/lua/libs/misc.c<br> index 25f44c3047..c7d47c020b 100644<br> --- a/modules/lua/libs/misc.c<br> +++ b/modules/lua/libs/misc.c<br> @@ -85,27 +85,8 @@ vlc_object_t * vlclua_get_this( lua_State *L )<br> int vlclua_push_ret( lua_State *L, int i_error )<br> {<br> lua_pushnumber( L, i_error );<br> -<br> - int err;<br> -<br> - switch( i_error )<br> - {<br> - case VLC_SUCCESS: err = 0; break;<br> - case VLC_ENOMEM: err = ENOMEM; break;<br> - case VLC_ETIMEOUT: err = ETIMEDOUT; break;<br> - case VLC_EBADVAR: err = EINVAL; break;<br> - case VLC_ENOMOD: err = ENOENT; break;<br> - case VLC_ENOOBJ: err = ENOENT; break;<br> - case VLC_ENOVAR: err = ENOENT; break;<br> - case VLC_EGENERIC:<br> - lua_pushstring( L, "generic error" );<br> - return 2;<br> - default:<br> - lua_pushstring( L, "unknown error" );<br> - return 2;<br> - }<br> -<br> - lua_pushstring( L, vlc_strerror_c(err) );<br> + lua_pushstring( L, (i_error == VLC_EGENERIC ? "generic error"<br> + : vlc_strerror_c(-i_error)) );<br> return 2;<br> }<br><br> -- <br> 2.20.1<hr> vlc-devel mailing list<br> To unsubscribe or modify your subscription options:<br> <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><hr> vlc-devel mailing list<br> To unsubscribe or modify your subscription options:<br> <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br><br><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser <br>ma brièveté.<hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br><br></blockquote><hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a></pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>