Magellan Linux

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

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

revision 983 by niro, Fri Apr 24 18:33:46 2009 UTC revision 984 by niro, Sun May 30 11:32:42 2010 UTC
# Line 7  Line 7 
7   * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.   * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8   */   */
9    
10  /* BB_AUDIT SUSv3 compliant */  /* BB_AUDIT SUSv4 compliant */
11  /* http://www.opengroup.org/onlinepubs/007904975/utilities/tty.html */  /* http://www.opengroup.org/onlinepubs/9699919799/utilities/tty.html */
12    
13  #include "libbb.h"  #include "libbb.h"
14    
15  int tty_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;  int tty_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
16  int tty_main(int argc, char **argv SKIP_INCLUDE_SUSv2(UNUSED_PARAM))  int tty_main(int argc UNUSED_PARAM, char **argv)
17  {  {
18   const char *s;   const char *s;
19   USE_INCLUDE_SUSv2(int silent;) /* Note: No longer relevant in SUSv3. */   IF_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   USE_INCLUDE_SUSv2(silent = getopt32(argv, "s");)   IF_INCLUDE_SUSv2(silent = getopt32(argv, "s");)
25   USE_INCLUDE_SUSv2(argc -= optind;)   IF_INCLUDE_SUSv2(argv += optind;)
26   SKIP_INCLUDE_SUSv2(argc -= 1;)   IF_NOT_INCLUDE_SUSv2(argv += 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);   bb_warn_ignoring_args(argv[0]);
30    
31   retval = 0;   retval = EXIT_SUCCESS;
32    
33   s = ttyname(0);   s = xmalloc_ttyname(STDIN_FILENO);
34   if (s == NULL) {   if (s == NULL) {
35   /* According to SUSv3, ttyname can fail with EBADF or ENOTTY.   /* 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 = EXIT_FAILURE;
39   }   }
40   USE_INCLUDE_SUSv2(if (!silent) puts(s);)   IF_INCLUDE_SUSv2(if (!silent) puts(s);)
41   SKIP_INCLUDE_SUSv2(puts(s);)   IF_NOT_INCLUDE_SUSv2(puts(s);)
42    
43   fflush_stdout_and_exit(retval);   fflush_stdout_and_exit(retval);
44  }  }

Legend:
Removed from v.983  
changed lines
  Added in v.984