1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-10-28 12:59:41 +01:00

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:
Junio C Hamano 2005-10-06 14:25:52 -07:00
parent 655c7470e2
commit e11fc02066
2 changed files with 12 additions and 4 deletions

View file

@ -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

View file

@ -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 @@ static int parse_email(const void *map, unsigned long size)
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;
} }