[PATCH] fix build on uClibc

Use cue_unused / cue_dead2 for the unused/non-returning annotation macros,
as uClibc defines a struct member called __unused in stdio.h when built
with locale support, breaking the build.

According to ANSI C 4.1.2.1, defines beginning with '__' are reserved
for the implementation, so shouldn't be used in user code.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 src/libcue/cue_scanner.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Index: libcue-1.4.0/src/libcue/cue_scanner.c
===================================================================
--- libcue-1.4.0.orig/src/libcue/cue_scanner.c
+++ libcue-1.4.0/src/libcue/cue_scanner.c
@@ -7,9 +7,11 @@
 
 #if defined(__FreeBSD__)
 #include <sys/cdefs.h>
+#define cue_unused __unused
+#define cue_dead2 __dead2
 #else
-#define __unused
-#define __dead2
+#define cue_unused
+#define cue_dead2
 #endif
 
 #define FLEX_SCANNER
@@ -248,7 +250,7 @@
 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
 
 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) __unused;
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) cue_unused;
 static void yy_flex_free YY_PROTO(( void * ));
 
 #define yy_new_buffer yy_create_buffer
@@ -285,7 +287,7 @@
 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
 static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] )) __dead2;
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] )) cue_dead2;
 
 /* Done after the current pattern has been matched and before the
  * corresponding action - sets up yytext.
