Magellan Linux

Diff of /trunk/mkinitrd-magellan/busybox/coreutils/tty.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 532 by niro, Sat Sep 1 22:45:15 2007 UTC revision 816 by niro, Fri Apr 24 18:33:46 2009 UTC
# Line 10  Line 10 
10  /* BB_AUDIT SUSv3 compliant */  /* BB_AUDIT SUSv3 compliant */
11  /* http://www.opengroup.org/onlinepubs/007904975/utilities/tty.html */  /* http://www.opengroup.org/onlinepubs/007904975/utilities/tty.html */
12    
13  #include <stdio.h>  #include "libbb.h"
 #include <stdlib.h>  
 #include <unistd.h>  
 #include "busybox.h"  
14    
15  int tty_main(int argc, char **argv)  int tty_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
16    int tty_main(int argc, char **argv SKIP_INCLUDE_SUSv2(UNUSED_PARAM))
17  {  {
18   const char *s;   const char *s;
19   int silent; /* Note: No longer relevant in SUSv3. */   USE_INCLUDE_SUSv2(int silent;) /* Note: No longer relevant in SUSv3. */
20   int retval;   int retval;
21    
22   xfunc_error_retval = 2; /* SUSv3 requires > 1 for error. */   xfunc_error_retval = 2; /* SUSv3 requires > 1 for error. */
23    
24   silent = getopt32(argc, argv, "s");   USE_INCLUDE_SUSv2(silent = getopt32(argv, "s");)
25     USE_INCLUDE_SUSv2(argc -= optind;)
26     SKIP_INCLUDE_SUSv2(argc -= 1;)
27    
28   /* gnu tty outputs a warning that it is ignoring all args. */   /* gnu tty outputs a warning that it is ignoring all args. */
29   bb_warn_ignoring_args(argc - optind);   bb_warn_ignoring_args(argc);
30    
31   retval = 0;   retval = 0;
32    
33   if ((s = ttyname(0)) == NULL) {   s = ttyname(0);
34   /* According to SUSv3, ttyname can on fail with EBADF or ENOTTY.   if (s == NULL) {
35     /* According to SUSv3, ttyname can fail with EBADF or ENOTTY.
36   * We know the file descriptor is good, so failure means not a tty. */   * We know the file descriptor is good, so failure means not a tty. */
37   s = "not a tty";   s = "not a tty";
38   retval = 1;   retval = 1;
39   }   }
40     USE_INCLUDE_SUSv2(if (!silent) puts(s);)
41   if (!silent) {   SKIP_INCLUDE_SUSv2(puts(s);)
  puts(s);  
  }  
42    
43   fflush_stdout_and_exit(retval);   fflush_stdout_and_exit(retval);
44  }  }

Legend:
Removed from v.532  
changed lines
  Added in v.816