BAS: Conditional compile out use of ftruncate()

This commit is contained in:
Gregory Nutt 2014-11-06 13:22:21 -06:00
parent 811128b275
commit 77871b3d32

View File

@ -285,43 +285,24 @@ static int edit(int chn, int onl)
#else #else
if ((f->inCapacity + 1) < sizeof(f->inBuf)) if ((f->inCapacity + 1) < sizeof(f->inBuf))
{ {
/* Ignore carriage returns that may accompnay a CRLF sequence. if (ch != '\n')
* REVISIT: Some environments may have other line termination rules
*/
if (ch != '\r')
{ {
/* Is this a new line character */ if (ch >= '\0' && ch < ' ')
if (ch != '\n')
{ {
/* No.. escape control characters other than newline and FS_putChar(chn, '^');
* carriage return FS_putChar(chn, ch ? (ch + 'a' - 1) : '@');
*/
if (ch >= '\0' && ch < ' ')
{
FS_putChar(chn, '^');
FS_putChar(chn, ch ? (ch + 'a' - 1) : '@');
}
/* Output normal, printable characters */
else
{
FS_putChar(chn, ch);
}
} }
else
/* Echo the newline (or not) */
else if (onl)
{ {
FS_putChar(chn, '\n'); FS_putChar(chn, ch);
} }
f->inBuf[f->inCapacity++] = ch;
} }
else if (onl)
{
FS_putChar(chn, '\n');
}
f->inBuf[f->inCapacity++] = ch;
} }
#endif #endif
} }
@ -832,6 +813,7 @@ int FS_lock(int chn, off_t offset, off_t length, int mode, int w)
int FS_truncate(int chn) int FS_truncate(int chn)
{ {
#ifdef CONFIG_INTERPRETER_BAS_HAVE_FTRUNCATE
int fd; int fd;
off_t o; off_t o;
@ -862,6 +844,10 @@ int FS_truncate(int chn)
} }
return 0; return 0;
#else
FS_errmsg = strerror(ENOSYS);
return -1;
#endif
} }
void FS_shellmode(int dev) void FS_shellmode(int dev)
@ -1683,6 +1669,12 @@ int FS_appendToString(int chn, struct String *s, int onl)
f->inSize = f->inCapacity = 0; f->inSize = f->inCapacity = 0;
} }
if (s->length >= 2 && s->character[s->length - 2] == '\r')
{
s->character[s->length - 2] = '\n';
--s->length;
}
return 0; return 0;
} }
} }