summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pacman/pacman.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index e078aaba..39390a53 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -1306,15 +1306,15 @@ int main(int argc, char *argv[])
cleanup(ret);
}
- /* read package arguments from stdin if we have none yet */
- if(!pm_targets && !isatty(fileno(stdin))) {
+ /* we also support reading targets from stdin */
+ if(!isatty(fileno(stdin))) {
char line[PATH_MAX];
int i = 0;
while(i < PATH_MAX && (line[i] = fgetc(stdin)) != EOF) {
if(isspace((unsigned char)line[i])) {
- line[i] = '\0';
/* avoid adding zero length arg when multiple spaces separate args */
if(i > 0) {
+ line[i] = '\0';
pm_targets = alpm_list_add(pm_targets, strdup(line));
i = 0;
}
@@ -1330,6 +1330,7 @@ int main(int argc, char *argv[])
/* end of stream -- check for data still in line buffer */
if(i > 0) {
+ line[i] = '\0';
pm_targets = alpm_list_add(pm_targets, strdup(line));
}
if (!freopen(ctermid(NULL), "r", stdin)) {