|
|
@ -465,13 +465,21 @@ oneline(char *file)
|
|
|
|
case 'F':
|
|
|
|
case 'F':
|
|
|
|
{
|
|
|
|
{
|
|
|
|
char *e = file + strlen(file);
|
|
|
|
char *e = file + strlen(file);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!msg)
|
|
|
|
|
|
|
|
goto empty;
|
|
|
|
|
|
|
|
|
|
|
|
while (file < e && *e != '/')
|
|
|
|
while (file < e && *e != '/')
|
|
|
|
e--;
|
|
|
|
e--;
|
|
|
|
|
|
|
|
if (file == e)
|
|
|
|
|
|
|
|
goto empty;
|
|
|
|
e--;
|
|
|
|
e--;
|
|
|
|
while (file < e && *e != '/')
|
|
|
|
while (file < e && *e != '/')
|
|
|
|
e--;
|
|
|
|
e--;
|
|
|
|
while (file < e && *e == '/')
|
|
|
|
while (file < e && *e == '/')
|
|
|
|
e--;
|
|
|
|
e--;
|
|
|
|
|
|
|
|
if (file == e)
|
|
|
|
|
|
|
|
goto empty;
|
|
|
|
char *b = e;
|
|
|
|
char *b = e;
|
|
|
|
e++;
|
|
|
|
e++;
|
|
|
|
while (file < b && *b != '/')
|
|
|
|
while (file < b && *b != '/')
|
|
|
@ -480,6 +488,11 @@ oneline(char *file)
|
|
|
|
b++;
|
|
|
|
b++;
|
|
|
|
if (*b == '.')
|
|
|
|
if (*b == '.')
|
|
|
|
b++;
|
|
|
|
b++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (0) {
|
|
|
|
|
|
|
|
empty:
|
|
|
|
|
|
|
|
b = e = "";
|
|
|
|
|
|
|
|
}
|
|
|
|
if (w) {
|
|
|
|
if (w) {
|
|
|
|
if (w < 0)
|
|
|
|
if (w < 0)
|
|
|
|
w = -w;
|
|
|
|
w = -w;
|
|
|
|