summaryrefslogtreecommitdiff
path: root/news/knews/patches/patch-bg
diff options
context:
space:
mode:
Diffstat (limited to 'news/knews/patches/patch-bg')
-rw-r--r--news/knews/patches/patch-bg68
1 files changed, 68 insertions, 0 deletions
diff --git a/news/knews/patches/patch-bg b/news/knews/patches/patch-bg
new file mode 100644
index 00000000000..76d8a9a0e6c
--- /dev/null
+++ b/news/knews/patches/patch-bg
@@ -0,0 +1,68 @@
+$NetBSD: patch-bg,v 1.1 2001/08/15 06:09:02 fredb Exp $
+
+--- src/save.c.orig Sun Jul 8 08:31:37 2001
++++ src/save.c
+@@ -9,6 +9,7 @@
+ #include "child.h"
+ #include "codes.h"
+ #include "connect.h"
++#include "expand.h"
+ #include "file.h"
+ #include "save.h"
+ #include "sysdeps.h"
+@@ -256,6 +257,9 @@
+ char *buffer;
+ SERVER *server;
+
++ sprintf(p, "%ld of %ld", i + 1, n);
++ set_message(message, False);
++
+ server = cache_get_server(arts[i]->no, False);
+ if (!server) {
+ char command[32];
+@@ -276,9 +280,6 @@
+ server_free(server);
+ else if (!buffer)
+ return -1;
+-
+- sprintf(p, "%ld", i + 1);
+- set_message(message, False);
+ }
+
+ if (fflush(fp) < 0)
+@@ -436,7 +437,7 @@
+ XtFree(cmd);
+ }
+
+-static void do_pipe(char *command, SaveScope scope, int what)
++static void do_pipe(char *raw_command, SaveScope scope, int what)
+ {
+ FILE *file = NULL;
+ char *file_name;
+@@ -445,6 +446,7 @@
+ int status, fflush_status;
+ char message[128];
+ pid_t pid;
++ char *command;
+ char *temp;
+
+ if (global.busy)
+@@ -453,11 +455,17 @@
+ if (global.mode != NewsModeGroup && global.mode != NewsModeThread) {
+ set_message("Not in a newsgroup!", True);
+ return;
+- } else if (!command || command[0] == '\0') {
++ } else if (!raw_command || raw_command[0] == '\0') {
+ set_message("No command specified!", True);
+ return;
+ } else if (!(what & (SAVE_HEAD | SAVE_BODY))) {
+ set_message("Nothing to pipe (neither head or body selected)!", True);
++ return;
++ }
++
++ command = expand_save_text(raw_command);
++ if (!command) {
++ set_message("Shell command expansion failed!", True);
+ return;
+ }
+