#include <stdio.h>

char *esc_spaces (char *fname)
{
	static char name2[512];
	int i = 0, i2 = 0;

	while (fname[i]) {
		if (fname[i] == 0x20) {
			name2[i2++] = '%';
			name2[i2++] = '2';
			name2[i2++] = '0';
		} else if (fname[i] == '%') {
			name2[i2++] = '%';
			name2[i2++] = '2';
			name2[i2++] = '5';
		} else
			name2[i2++] = fname[i];

		if (i2 >= 507)
			break;
		else
			i++;
	}

	name2[i2] = (char) NULL;

	return name2;
}

int main (int argc, char **argv, char **envp)
{
	char fname[512];
	char done = 0;
	int i = 1, cutoff = 0;

	if (argc < 2) {
		fprintf (stderr, "syntax: %s prefix [cutoff]\n", argv[0]);
		fprintf (stderr, "ex: find -name \"*.mp3\" | %s http://www.gophi.net/bla 2 > gophi.pls\n", argv[0]);
		return -1;
	} else if (argc > 2)
		cutoff = atoi(argv[2]);

	fprintf (stdout, "[playlist]\n");

	while (!done) {
		fgets (fname, sizeof(fname), stdin);
		if (feof(stdin))
			done = 1;
		else
			fprintf (stdout, "File%u=%s/%s", i++, argv[1], esc_spaces(fname + cutoff));
	}

	fprintf (stdout, "NumberOfEntries=%u\n", i - 1);
	fprintf (stderr, "Lista zawiera %u wpisów.\n", i - 1);

	return 0;
}
