annotate toys/posix/uname.c @ 1401:8a67f42e4f76 draft

Have single.sh enable I18N and FLOAT.
author Rob Landley <rob@landley.net>
date Mon, 21 Jul 2014 20:03:06 -0500
parents 7a45b9b54d3d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
1 /* uname.c - return system name
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
2 *
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
3 * Copyright 2008 Rob Landley <rob@landley.net>
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
4 *
656
6df4ccc0acbe Regularize command headers, update links to standards documents.
Rob Landley <rob@landley.net>
parents: 653
diff changeset
5 * See http://opengroup.org/onlinepubs/9699919799/utilities/uname.html
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
6
1072
7a45b9b54d3d Tweak args (yank old + that never worked, rename | to +), and add uname -o as a synonym for -s.
Rob Landley <rob@landley.net>
parents: 1049
diff changeset
7 USE_UNAME(NEWTOY(uname, "oamvrns[+os]", TOYFLAG_BIN))
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
8
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
9 config UNAME
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
10 bool "uname"
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
11 default y
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
12 help
1049
b89ab13436fa uname: Fix help string
Elie De Brauwer <eliedebrauwer@gmail.com>
parents: 694
diff changeset
13 usage: uname [-asnrvm]
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
14
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
15 Print system information.
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
16
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
17 -s System name
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
18 -n Network (domain) name
1049
b89ab13436fa uname: Fix help string
Elie De Brauwer <eliedebrauwer@gmail.com>
parents: 694
diff changeset
19 -r Kernel Release number
b89ab13436fa uname: Fix help string
Elie De Brauwer <eliedebrauwer@gmail.com>
parents: 694
diff changeset
20 -v Kernel Version
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
21 -m Machine (hardware) name
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
22 -a All of the above
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
23 */
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
24
674
7e846e281e38 New build infrastructure to generate FLAG_ macros and TT alias, #define FOR_commandname before #including toys.h to trigger it. Rename DEFINE_GLOBALS() to just GLOBALS() (because I could never remember if it was DECLARE_GLOBALS). Convert existing commands to use new infrastructure, and replace optflag constants with FLAG_ macros where appropriate.
Rob Landley <rob@landley.net>
parents: 656
diff changeset
25 #define FOR_uname
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
26 #include "toys.h"
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
27
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
28 // If a 32 bit x86 build environment working in a chroot under an x86-64
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
29 // kernel returns x86_64 for -m it confuses ./configure. Special case it.
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
30
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
31 #if defined(__i686__)
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
32 #define GROSS "i686"
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
33 #elif defined(__i586__)
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
34 #define GROSS "i586"
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
35 #elif defined(__i486__)
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
36 #define GROSS "i486"
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
37 #elif defined(__i386__)
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
38 #define GROSS "i386"
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
39 #endif
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
40
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
41 void uname_main(void)
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
42 {
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
43 int i, flags = toys.optflags, needspace=0;
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
44
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
45 uname((void *)toybuf);
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
46
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
47 if (!flags) flags = FLAG_s;
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
48 for (i=0; i<5; i++) {
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
49 char *c = toybuf+(65*i);
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
50
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
51 if (flags & ((1<<i)|FLAG_a)) {
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
52 int len = strlen(c);
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
53
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
54 // This problem originates in autoconf, so of course the solution
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
55 // is horribly ugly.
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
56 #ifdef GROSS
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
57 if (i==4 && !strcmp(c,"x86_64")) {
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
58 printf(GROSS);
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
59 continue;
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
60 }
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
61 #endif
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
62
694
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
63 if (needspace++) {
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
64 // We can't decrement on the first entry, because
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
65 // needspace would be 0
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
66 *(--c)=' ';
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
67 len++;
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
68 }
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
69 xwrite(1, c, len);
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
70 }
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
71 }
786841fdb1e0 Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents: 675
diff changeset
72 putchar('\n');
326
531b4d716460 Add uname
Rob Landley <rob@landley.net>
parents:
diff changeset
73 }