* @param elb Edit line buffer.
* @param ch character to add.
*
- * @return 1 in case of end of line, 0 otherwise.
+ * @return 1 in case of end of line, -1 if called at inaproprate time, 0 otherwise.
*/
int cmd_ed_line_buf(ed_line_buf_t *elb, int ch)
{
while((ch=cmd_io_getc(io_stack))>=0){
// DPRINT("Added %c (%d)\n", ch, ch);
int eol = cmd_ed_line_buf(ed_line_in,ch);
+ if (eol == -1)
+ return -1;
if(eol){
if(ed_line_in->flg&FL_ELB_ECHO){
while(cmd_io_putc(io_stack,'\r')<0);
return 0;
}
-/* char *cmd_io_line_rdline(cmd_io_t *cmd_io, int mode) */
-/* { */
-/* int ret; */
-/* while((ret=cmd_rs232_line_in(cmd_io))==0) */
-/* if(!mode) break; */
-/* if(ret<=0) return NULL; */
-/* return cmd_io->priv.ed_line.in->buf; */
-/* } */
+/* The possibly blocking read of one line, should be used only
+ when other options fails */
+char *cmd_io_line_rdline(cmd_io_t *cmd_io, int mode)
+{
+ int ret;
+ while((ret=cmd_io_line_in(cmd_io))==0)
+ if(!mode) break;
+ if(ret<=0) return NULL;
+ return cmd_io->priv.ed_line.in->buf;
+}
/* Local Variables: */
/* c-basic-offset: 2 */
-/* End */
+/* End: */