fix text downloads, reformat dir list

This commit is contained in:
Kelvin Sherlock 2012-04-06 20:13:05 -04:00
parent c2604bb468
commit 6e1d4aa965

View File

@ -132,8 +132,11 @@ int gopher_text(Word ipid, FILE *file)
0xffff, 0xffff,
&rb); &rb);
count = rb.rlrBuffCount; //count = rb.rlrBuffCount;
// bug -- count is sometimes wildly wrong....
h = rb.rlrBuffHandle; h = rb.rlrBuffHandle;
count = h ? (Word)GetHandleSize(h) : 0;
if (rv && !count) if (rv && !count)
{ {
@ -141,14 +144,19 @@ int gopher_text(Word ipid, FILE *file)
break; break;
} }
HLock(h); if (count == 0 && rb.rlrIsDataFlag)
{
fputc('\r', file);
}
if (count) if (count)
{ {
char *cp; char *cp;
HLock(h);
cp = *((char **)h); cp = *((char **)h);
//fprintf(stderr, "%d %d\n", count, (int)GetHandleSize(h));
// .. -> . // .. -> .
// . \r\n -> eof // . \r\n -> eof
@ -199,8 +207,9 @@ int gopher_dir(Word ipid, FILE *file)
0xffff, 0xffff,
&rb); &rb);
count = rb.rlrBuffCount; //count = rb.rlrBuffCount;
h = rb.rlrBuffHandle; h = rb.rlrBuffHandle;
count = h ? (Word)GetHandleSize(h) : 0;
#if 0 #if 0
if (rv || count || _toolErr) if (rv || count || _toolErr)
@ -216,14 +225,16 @@ int gopher_dir(Word ipid, FILE *file)
break; break;
} }
HLock(h);
if (count) if (count)
{ {
Word tabs[4]; Word tabs[4];
unsigned i,j; unsigned i,j;
char type; char type;
char *buffer = *((char **)h); char *buffer;
HLock(h);
buffer = *((char **)h);
type = *buffer; type = *buffer;
++buffer; ++buffer;
@ -274,21 +285,21 @@ int gopher_dir(Word ipid, FILE *file)
} }
if (port == 70) if (port == 70)
{ {
fprintf(file, "%s <%s/%c%s>\r", fprintf(file, "[%s/%c%s] %s\r",
buffer, // description
buffer + 1 + tabs[2], // server buffer + 1 + tabs[2], // server
type, // type type, // type
buffer + 1 + tabs[1] // file name buffer + 1 + tabs[1], // file name
buffer // description
); );
} }
else else
{ {
fprintf(file, "%s <%s:%u/%c%s>\r", fprintf(file, "[%s:%u/%c%s] %s\r",
buffer, // description
buffer + 1 + tabs[2], // server buffer + 1 + tabs[2], // server
port, // port port, // port
type, // type type, // type
buffer + 1 + tabs[1] // file name buffer + 1 + tabs[1], // file name
buffer // description
); );
} }