mailsplit: -d<prec>
Instead of the default 4 digits with leading zeros, different precision can be specified for the generated filenames. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
655c7470e2
commit
e11fc02066
@ -42,7 +42,8 @@ case "$continue" in
|
|||||||
'')
|
'')
|
||||||
rm -rf .dotest
|
rm -rf .dotest
|
||||||
mkdir .dotest
|
mkdir .dotest
|
||||||
git-mailsplit "$1" .dotest || exit 1
|
num_msgs=$(git-mailsplit "$1" .dotest) || exit 1
|
||||||
|
echo "$num_msgs patch(es) to process."
|
||||||
shift
|
shift
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
13
mailsplit.c
13
mailsplit.c
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
static int usage(void)
|
static int usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "mailsplit <mbox> <directory>\n");
|
fprintf(stderr, "git-mailsplit [-d<prec>] <mbox> <directory>\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,11 +96,17 @@ corrupt:
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int fd, nr;
|
int fd, nr, nr_prec = 4;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
void *map;
|
void *map;
|
||||||
|
|
||||||
|
if (argc == 4 && !strncmp(argv[1], "-d", 2)) {
|
||||||
|
nr_prec = strtol(argv[1] + 2, NULL, 10);
|
||||||
|
if (nr_prec < 3 || 10 <= nr_prec)
|
||||||
|
usage();
|
||||||
|
argc--; argv++;
|
||||||
|
}
|
||||||
if (argc != 3)
|
if (argc != 3)
|
||||||
usage();
|
usage();
|
||||||
fd = open(argv[1], O_RDONLY);
|
fd = open(argv[1], O_RDONLY);
|
||||||
@ -127,7 +133,7 @@ int main(int argc, char **argv)
|
|||||||
char name[10];
|
char name[10];
|
||||||
unsigned long len = parse_email(map, size);
|
unsigned long len = parse_email(map, size);
|
||||||
assert(len <= size);
|
assert(len <= size);
|
||||||
sprintf(name, "%04d", ++nr);
|
sprintf(name, "%0*d", nr_prec, ++nr);
|
||||||
fd = open(name, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
fd = open(name, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
perror(name);
|
perror(name);
|
||||||
@ -141,5 +147,6 @@ int main(int argc, char **argv)
|
|||||||
map += len;
|
map += len;
|
||||||
size -= len;
|
size -= len;
|
||||||
} while (size > 0);
|
} while (size > 0);
|
||||||
|
printf("%d\n", nr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user