blob: 3da855fe612daac966ea89adb815ebf33fb0f648 [file] [log] [blame]
Manuel Novoa III cad53642003-03-19 09:13:01 +00001/* 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 *
"Robert P. J. Day"5d8843e2006-07-10 11:41:19 +00007 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
Manuel Novoa III cad53642003-03-19 09:13:01 +00008 */
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
Denis Vlasenkoddec5af2006-10-26 23:25:17 +000017#include "libbb.h"
Manuel Novoa III cad53642003-03-19 09:13:01 +000018
Denis Vlasenkoddec5af2006-10-26 23:25:17 +000019FILE *fopen_or_warn_stdin(const char *filename)
Manuel Novoa III cad53642003-03-19 09:13:01 +000020{
21 FILE *fp = stdin;
22
Denis Vlasenkoddec5af2006-10-26 23:25:17 +000023 if (filename != bb_msg_standard_input
24 && filename[0]
25 && (filename[0] != '-' || filename[1])
Manuel Novoa III cad53642003-03-19 09:13:01 +000026 ) {
Denis Vlasenkoddec5af2006-10-26 23:25:17 +000027 fp = fopen_or_warn(filename, "r");
Manuel Novoa III cad53642003-03-19 09:13:01 +000028 }
29
30 return fp;
31}