blob: 1b4928e1f8637e7d783217029918be3557d86712 [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 *
Denis Vlasenko50f7f442007-04-11 23:20:53 +000014 * Note: we also consider "" to mean stdin (for 'cmp' at least).
Manuel Novoa III cad53642003-03-19 09:13:01 +000015 */
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]
Denis Vlasenko9f739442006-12-16 23:49:13 +000025 && NOT_LONE_DASH(filename)
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}