Browse Source

Add "stripspace" program to clean up email commentary

Remove multiple empty lines, and empty lines at beginning and end.
maint
Linus Torvalds 20 years ago
parent
commit
8c7b86632c
  1. 2
      Makefile
  2. 2
      applypatch
  3. 3
      dotest
  4. 48
      stripspace.c

2
Makefile

@ -2,7 +2,7 @@ CC=gcc @@ -2,7 +2,7 @@ CC=gcc
CFLAGS=-Wall -O2
HOME=$(shell echo $$HOME)

PROGRAMS=mailsplit mailinfo
PROGRAMS=mailsplit mailinfo stripspace
SCRIPTS=dotest applypatch

all: $(PROGRAMS)

2
applypatch

@ -32,7 +32,7 @@ if [ -n "$signoff" -a -f "$signoff" ]; then @@ -32,7 +32,7 @@ if [ -n "$signoff" -a -f "$signoff" ]; then
cat $signoff >> $MSGFILE
fi

(echo "[PATCH] $SUBJECT" ; echo ; cat $MSGFILE ) > $final
(echo "[PATCH] $SUBJECT" ; if [ -s $MSGFILE ]; then echo ; cat $MSGFILE; fi ) > $final

f=0
[ -f $query_apply ] || f=1

3
dotest

@ -20,7 +20,8 @@ mailsplit $1 .dotest || exit 1 @@ -20,7 +20,8 @@ mailsplit $1 .dotest || exit 1
for i in .dotest/*
do
mailinfo .dotest/msg .dotest/patch .dotest/file < $i > .dotest/info || exit 1
applypatch .dotest/msg .dotest/patch .dotest/file .dotest/info "$2"
stripspace < .dotest/msg > .dotest/msg-clean
applypatch .dotest/msg-clean .dotest/patch .dotest/file .dotest/info "$2"
ret=$?
if [ $ret -ne 0 ]; then
# 2 is a special exit code from applypatch to indicate that

48
stripspace.c

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
#include <stdio.h>
#include <string.h>
#include <ctype.h>

/*
* Remove empty lines from the beginning and end.
*
* Turn multiple consecutive empty lines into just one
* empty line.
*/
static void cleanup(char *line)
{
int len = strlen(line);

if (len > 1 && line[len-1] == '\n') {
do {
unsigned char c = line[len-2];
if (!isspace(c))
break;
line[len-2] = '\n';
len--;
line[len] = 0;
} while (len > 1);
}
}

int main(int argc, char **argv)
{
int empties = -1;
char line[1024];

while (fgets(line, sizeof(line), stdin)) {
cleanup(line);

/* Not just an empty line? */
if (line[0] != '\n') {
if (empties > 0)
putchar('\n');
empties = 0;
fputs(line, stdout);
continue;
}
if (empties < 0)
continue;
empties++;
}
return 0;
}
Loading…
Cancel
Save