xref: /unit/auto/echo/echo.c (revision 0)
1*0Sigor@sysoev.ru 
2*0Sigor@sysoev.ru /*
3*0Sigor@sysoev.ru  * Copyright (C) Igor Sysoev
4*0Sigor@sysoev.ru  * Copyright (C) NGINX, Inc.
5*0Sigor@sysoev.ru  *
6*0Sigor@sysoev.ru  * A portable "echo" program that supports "-n" option:
7*0Sigor@sysoev.ru  *     echo Hello world!
8*0Sigor@sysoev.ru  *     echo "Hello world!"
9*0Sigor@sysoev.ru  *     echo -n Hello world!
10*0Sigor@sysoev.ru  *     echo
11*0Sigor@sysoev.ru  *
12*0Sigor@sysoev.ru  * It also passes "\c" characters as is.
13*0Sigor@sysoev.ru  */
14*0Sigor@sysoev.ru 
15*0Sigor@sysoev.ru 
16*0Sigor@sysoev.ru #include <stdio.h>
17*0Sigor@sysoev.ru #include <string.h>
18*0Sigor@sysoev.ru 
19*0Sigor@sysoev.ru 
20*0Sigor@sysoev.ru int
21*0Sigor@sysoev.ru main(int argc, char *const *argv)
22*0Sigor@sysoev.ru {
23*0Sigor@sysoev.ru     int  i = 1;
24*0Sigor@sysoev.ru     int  nl = 1;
25*0Sigor@sysoev.ru 
26*0Sigor@sysoev.ru     if (argc > 1) {
27*0Sigor@sysoev.ru         if (strcmp(argv[1], "-n") == 0) {
28*0Sigor@sysoev.ru             nl = 0;
29*0Sigor@sysoev.ru             i++;
30*0Sigor@sysoev.ru         }
31*0Sigor@sysoev.ru 
32*0Sigor@sysoev.ru         while (i < argc) {
33*0Sigor@sysoev.ru             printf("%s%s", argv[i], (i == argc - 1) ? "" : " ");
34*0Sigor@sysoev.ru             i++;
35*0Sigor@sysoev.ru         }
36*0Sigor@sysoev.ru     }
37*0Sigor@sysoev.ru 
38*0Sigor@sysoev.ru     if (nl) {
39*0Sigor@sysoev.ru         printf("\n");
40*0Sigor@sysoev.ru     }
41*0Sigor@sysoev.ru 
42*0Sigor@sysoev.ru     return 0;
43*0Sigor@sysoev.ru }
44