- fgets(line_buffer, 255, cue_file);\r
-\r
- strcpy(bin_file_name, strchr(line_buffer, '"') + 1);\r
-\r
- *(strrchr(bin_file_name, '"')) = 0;\r
+ tmp = fgets(line_buffer, 255, cue_file);\r
+ if (tmp == NULL) goto invalid;\r
+ separator_pos = line_buffer + strlen(line_buffer) - 1;\r
+ separator_pos = skip_whitespace_rev(separator_pos);\r
+ if (separator_pos <= line_buffer) goto invalid;\r
+ separator_pos = skip_nonspace_rev(separator_pos);\r
+ if (separator_pos <= line_buffer) goto invalid;\r
+ separator_pos = skip_whitespace_rev(separator_pos);\r
+ if (separator_pos <= line_buffer) goto invalid;\r
+ // see if what's there is a quote.\r
+ if(*separator_pos == '"')\r
+ {\r
+ separator_pos[0] = 0;\r
+ separator_pos = strrchr(line_buffer, '"');\r
+ if (separator_pos == NULL) goto invalid;\r
+ strcpy(bin_file_name, separator_pos + 1);\r
+ }\r
+ else\r
+ {\r
+ // Otherwise go to the next space.\r
+ separator_pos[1] = 0;\r
+ separator_pos = strrchr(line_buffer, ' ');\r
+ if (separator_pos == NULL) goto invalid;\r
+ strcpy(bin_file_name, separator_pos + 1);\r
+ }\r