%artist-%album-%albumyear-[FLAC]\%tracknumber-%artist-%tracktitle (with the spaces replaced with underscores)
*with a generated non-compliant cuesheet of name 00-%artist-%album with correct filenames
^with sfv of filename 00-%artist-%album
^with m3u of filename 00-%artist-%album
*This is the most important thing I would like to achieve
^These are minor bonuses that would be nice
Note:various artist CD's would follow similarly however instead of artist, diskartist would be used
I just decided to make my own program, you just drag and drop the old CUE and this one fixes it
code is below as you can see this will only run on windows but I assume if you saw that you can figure out what the equivalent delete and copy functions are on the Linux console
CODE
#include <iostream>
#include <cstring>
#include <string>
#include <fstream>
int main(int argc, char *argv[])
{
if (argc != 2)
{
std::cout << "Wrong number of parameters!\n";
system("pause");
return 1;
}
std::ifstream in(argv[1]);
if (!in)
{
std::cout << "File failed to open!\n";
system("pause");
return 1;
}
std::ofstream out("parse.bak");
char buf[80];
while (!in.eof())
{
in.getline(buf, 80);
if (char *p = strstr(buf, "FILE"))
{
p += 6;
while(1)
{
if (*p == '\"') break;
else if (*p == ' ') *p = '_';
p++;
}
}
out << buf << '\n';
}
out.close();
in.close();
std::string syscall;
syscall = "del ";
syscall += "\"";
syscall += argv[1];
syscall += "\"";
system(syscall.c_str());
syscall = "copy parse.bak ";
syscall += "\"";
syscall += argv[1];
syscall += "\"";
system(syscall.c_str());
syscall = "del parse.bak ";
system(syscall.c_str());
std::cout << "Success!";
return 0;
}
#include <cstring>
#include <string>
#include <fstream>
int main(int argc, char *argv[])
{
if (argc != 2)
{
std::cout << "Wrong number of parameters!\n";
system("pause");
return 1;
}
std::ifstream in(argv[1]);
if (!in)
{
std::cout << "File failed to open!\n";
system("pause");
return 1;
}
std::ofstream out("parse.bak");
char buf[80];
while (!in.eof())
{
in.getline(buf, 80);
if (char *p = strstr(buf, "FILE"))
{
p += 6;
while(1)
{
if (*p == '\"') break;
else if (*p == ' ') *p = '_';
p++;
}
}
out << buf << '\n';
}
out.close();
in.close();
std::string syscall;
syscall = "del ";
syscall += "\"";
syscall += argv[1];
syscall += "\"";
system(syscall.c_str());
syscall = "copy parse.bak ";
syscall += "\"";
syscall += argv[1];
syscall += "\"";
system(syscall.c_str());
syscall = "del parse.bak ";
system(syscall.c_str());
std::cout << "Success!";
return 0;
}

