X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FLibraries%2Flibreadline.so_src%2Fmain.c;h=58db03a54b208d782dbd5c041f9271f526442e00;hb=bfb42102be5c178ce08b7861c11ee2694004413a;hp=719667d74a52793263c50b840332a2bebac9b4d6;hpb=d0b4559f2936f6d9f06be0f7c3c51527a480ec0d;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libreadline.so_src/main.c b/Usermode/Libraries/libreadline.so_src/main.c index 719667d7..58db03a5 100644 --- a/Usermode/Libraries/libreadline.so_src/main.c +++ b/Usermode/Libraries/libreadline.so_src/main.c @@ -80,7 +80,7 @@ char *Readline_NonBlock(tReadline *Info) int len, i; // Read as much as possible (appending to remaining data) - len = read(STDIN_FD, Info->ReadBuffer, READ_BUFFER_SIZE - 1 - Info->ReadBufferLen); + len = _SysRead(STDIN_FD, Info->ReadBuffer, READ_BUFFER_SIZE - 1 - Info->ReadBufferLen); if( len <= 0 ) return NULL; Info->ReadBuffer[Info->ReadBufferLen + len] = '\0'; @@ -204,21 +204,21 @@ int Readline_int_ParseCharacter(tReadline *Info, char *Input) // Move to the beginning of the line pos = oldLen; - while(pos--) write(STDOUT_FD, "\x1B[D", 3); + while(pos--) _SysWrite(STDOUT_FD, "\x1B[D", 3); // Update state Info->CurBuffer = Info->History[--Info->HistoryPos]; Info->BufferSize = Info->BufferUsed = strlen(Info->CurBuffer); - write(STDOUT_FD, Info->CurBuffer, Info->BufferUsed); + _SysWrite(STDOUT_FD, Info->CurBuffer, Info->BufferUsed); Info->BufferWritePos = Info->BufferUsed; // Clear old characters (if needed) if( oldLen > Info->BufferWritePos ) { pos = oldLen - Info->BufferWritePos; - while(pos--) write(STDOUT_FD, " ", 1); + while(pos--) _SysWrite(STDOUT_FD, " ", 1); pos = oldLen - Info->BufferWritePos; - while(pos--) write(STDOUT_FD, "\x1B[D", 3); + while(pos--) _SysWrite(STDOUT_FD, "\x1B[D", 3); } } break; @@ -230,34 +230,34 @@ int Readline_int_ParseCharacter(tReadline *Info, char *Input) // Move to the beginning of the line pos = oldLen; - while(pos--) write(STDOUT_FD, "\x1B[D", 3); + while(pos--) _SysWrite(STDOUT_FD, "\x1B[D", 3); // Update state Info->CurBuffer = Info->History[Info->HistoryPos++]; Info->BufferSize = Info->BufferUsed = strlen(Info->CurBuffer); // Write new line - write(STDOUT_FD, Info->CurBuffer, Info->BufferUsed); + _SysWrite(STDOUT_FD, Info->CurBuffer, Info->BufferUsed); Info->BufferWritePos = Info->BufferUsed; // Clear old characters (if needed) if( oldLen > Info->BufferWritePos ) { pos = oldLen - Info->BufferWritePos; - while(pos--) write(STDOUT_FD, " ", 1); + while(pos--) _SysWrite(STDOUT_FD, " ", 1); pos = oldLen - Info->BufferWritePos; - while(pos--) write(STDOUT_FD, "\x1B[D", 3); + while(pos--) _SysWrite(STDOUT_FD, "\x1B[D", 3); } } break; case 'D': // Left if(Info->BufferWritePos == 0) break; Info->BufferWritePos --; - write(STDOUT_FD, "\x1B[D", 3); + _SysWrite(STDOUT_FD, "\x1B[D", 3); break; case 'C': // Right if(Info->BufferWritePos == Info->BufferUsed) break; Info->BufferWritePos ++; - write(STDOUT_FD, "\x1B[C", 3); + _SysWrite(STDOUT_FD, "\x1B[C", 3); break; } break; @@ -271,7 +271,7 @@ int Readline_int_ParseCharacter(tReadline *Info, char *Input) case '\b': if(Info->BufferWritePos <= 0) break; // Protect against underflows // Write the backsapce - write(STDOUT_FD, &ch, 1); + _SysWrite(STDOUT_FD, &ch, 1); if(Info->BufferWritePos == Info->BufferUsed) // Simple case: End of string { Info->BufferUsed --; @@ -286,12 +286,12 @@ int Readline_int_ParseCharacter(tReadline *Info, char *Input) buf[3] += (delta/10) % 10; buf[4] += (delta) % 10; // Write everything save for the deleted character - write(STDOUT_FD, + _SysWrite(STDOUT_FD, &Info->CurBuffer[Info->BufferWritePos], Info->BufferUsed - Info->BufferWritePos ); - ch = ' '; write(STDOUT_FD, &ch, 1); ch = '\b'; // Clear old last character - write(STDOUT_FD, buf, 7); // Update Cursor + ch = ' '; _SysWrite(STDOUT_FD, &ch, 1); ch = '\b'; // Clear old last character + _SysWrite(STDOUT_FD, buf, 7); // Update Cursor // Alter Buffer memmove(&Info->CurBuffer[Info->BufferWritePos-1], &Info->CurBuffer[Info->BufferWritePos], @@ -325,12 +325,12 @@ int Readline_int_ParseCharacter(tReadline *Info, char *Input) buf[2] += (delta/100) % 10; buf[3] += (delta/10) % 10; buf[4] += (delta) % 10; - write(STDOUT_FD, &ch, 1); // Print new character - write(STDOUT_FD, + _SysWrite(STDOUT_FD, &ch, 1); // Print new character + _SysWrite(STDOUT_FD, &Info->CurBuffer[Info->BufferWritePos], Info->BufferUsed - Info->BufferWritePos ); - write(STDOUT_FD, buf, 7); // Update Cursor + _SysWrite(STDOUT_FD, buf, 7); // Update Cursor // Move buffer right memmove( &Info->CurBuffer[Info->BufferWritePos+1], @@ -340,7 +340,7 @@ int Readline_int_ParseCharacter(tReadline *Info, char *Input) } // Simple append else { - write(STDOUT_FD, &ch, 1); + _SysWrite(STDOUT_FD, &ch, 1); } Info->CurBuffer[ Info->BufferWritePos ++ ] = ch; Info->BufferUsed ++;