size_t ret = 1, print = 1;
// Input mode stuff only counts for text output mode
- // - Any other is Uint32 keypresses
+ // - Any other mode sends Uint32 keypresses
if( (PTY->Mode.OutputMode & PTYOMODE_BUFFMT) != PTYBUFFMT_TEXT )
return PTY_int_WriteInput(PTY, Input, Length);
- // If in raw mode, flush directlr
+ // If in raw mode, flush directly
if( (PTY->Mode.InputMode & PTYIMODE_RAW) )
return PTY_int_WriteInput(PTY, Input, Length);
}
else
{
- ret = PTY_int_WriteInput(PTY, Input, Length);
+ #if 0
+ if( PTY->Mode.InputMode & PTYIMODE_NLCR )
+ {
+ if( Input[0] == '\n' ) {
+ char ch = '\r';
+ ret = PTY_int_WriteInput(PTY, &ch, 1);
+ }
+ else {
+ int i;
+ for( i = 0; i < Length && Input[i] != '\n'; i ++ )
+ ;
+ ret = PTY_int_WriteInput(PTY, Input, i);
+ }
+ }
+ // TODO: CRNL mode?
+ else
+ #endif
+ ret = PTY_int_WriteInput(PTY, Input, Length);
}
// Echo if requested
#define PTYIMODE_CANON 0x001 //!< Line-buffered input
#define PTYIMODE_ECHO 0x002 //!< Echo input characters
#define PTYIMODE_RAW 0x004 //!< Disable all input processing
+#define PTYIMODE_NLCR 0x008 //!< Translate '\n' to '\r' (for old apps)
#define PTYOMODE_BUFFMT 0x003
#define PTYBUFFMT_TEXT 0x000