d764f1d060be923aac5047cf4ce711a28114cf4f
[oweals/busybox.git] / libbb / wfopen_input.c
1 /* vi: set sw=4 ts=4: */
2 /*
3  * wfopen_input implementation for busybox
4  *
5  * Copyright (C) 2003  Manuel Novoa III  <mjn3@codepoet.org>
6  *
7  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8  */
9
10 /* A number of applets need to open a file for reading, where the filename
11  * is a command line arg.  Since often that arg is '-' (meaning stdin),
12  * we avoid testing everywhere by consolidating things in this routine.
13  *
14  * Note: We also consider "" to main stdin (for 'cmp' at least).
15  */
16
17 #include <stdio.h>
18 #include <sys/stat.h>
19 #include <libbb.h>
20
21 FILE *bb_wfopen_input(const char *filename)
22 {
23         FILE *fp = stdin;
24
25         if ((filename != bb_msg_standard_input)
26                 && filename[0] && ((filename[0] != '-') || filename[1])
27         ) {
28                 fp = bb_wfopen(filename, "r");
29         }
30
31         return fp;
32 }