Kernel/PTYs - NL->CR translation (disabled)
authorJohn Hodge <[email protected]>
Sun, 9 Feb 2014 14:34:36 +0000 (22:34 +0800)
committerJohn Hodge <[email protected]>
Sun, 9 Feb 2014 14:34:36 +0000 (22:34 +0800)
KernelLand/Kernel/drv/pty.c
Usermode/Libraries/ld-acess.so_src/include_exp/acess/devices/pty.h

index 69b1ce6..862997a 100644 (file)
@@ -377,10 +377,10 @@ size_t PTY_int_SendInput(tPTY *PTY, const char *Input, size_t Length)
        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);
        
@@ -444,7 +444,24 @@ size_t PTY_int_SendInput(tPTY *PTY, const char *Input, size_t 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
index 34c30b8..6a18942 100644 (file)
@@ -17,6 +17,7 @@
 #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

UCC git Repository :: git.ucc.asn.au