From 04449cb787e2a0b6c4b3f563e6ff90f7726ffa7a Mon Sep 17 00:00:00 2001 From: Tiberiu Chibici Date: Tue, 14 Sep 2021 18:53:27 +0300 Subject: [PATCH] Build 601 --- Kernel/debug/commands.c | 4 ++++ Kernel/debug/console.c | 33 +++++++++++++++++++++++++++------ Kernel/debug/logger.c | 30 ++++++++++++++---------------- Kernel/include/version.h | 2 +- build/console.o | Bin 11292 -> 11840 bytes build/logger.o | Bin 2364 -> 3360 bytes kernel.bin | Bin 62598 -> 62598 bytes scripts/version.txt | 2 +- 8 files changed, 47 insertions(+), 24 deletions(-) diff --git a/Kernel/debug/commands.c b/Kernel/debug/commands.c index 3b9abe6..458e582 100644 --- a/Kernel/debug/commands.c +++ b/Kernel/debug/commands.c @@ -282,6 +282,10 @@ void CommandDir (string argv[], int32 argc) ConsoleWrite("%#! Invalid path!\n", ColorLightRed); return; } + if ((temp->Flags & 0x7) == 0x1) { + ConsoleWrite("%#! Not a directory!\n", ColorLightRed); return; + } + // Write contents ConsoleWrite ("Content of directory %#%s:\n\n", ColorWhite, argv[1]); diff --git a/Kernel/debug/console.c b/Kernel/debug/console.c index 4d819df..5f6b4ba 100644 --- a/Kernel/debug/console.c +++ b/Kernel/debug/console.c @@ -4,7 +4,7 @@ #include "commands.c" void _process_command (string params[16], int32 count); -void _command_does_not_exist(string command); +int32 _command_does_not_exist(string command); void ConsoleMain() { @@ -57,9 +57,12 @@ void _process_command (string params[CONSOLE_MAX_PARAMS], int32 count) for (i = 0; i < ConsoleCommandsCount && Cmd == -1; i++) if (strcmp(params[0], ConsoleCommands[i]) == 0) Cmd = i; +loop: switch (Cmd) { - case -1: _command_does_not_exist(params[0]); break; + case -1: Cmd = _command_does_not_exist(params[0]); + if (Cmd != -1) goto loop; + break; case 0: CommandOsver(); break; case 1: CommandTime(); break; case 2: ConsoleClear(); break; @@ -78,18 +81,36 @@ void _process_command (string params[CONSOLE_MAX_PARAMS], int32 count) Color(0,ColorLightRed), Color(0,ColorWhite), params[0], Color(0,ColorLightRed)); break; } - } -void _command_does_not_exist(string command) +int32 _command_does_not_exist(string command) { + // Try finding a command that starts with strlen(command) letters + int32 count, i, last; + for (i = 0, count = 0; i < ConsoleCommandsCount; i++) + if (!strncmp(command, ConsoleCommands[i], strlen(command))) { ++count; last = i; } + + // Found a good command + if (count == 1) { + ConsoleWrite ("%#Did you mean %#%s%#?\n", ColorYellow, ColorWhite, ConsoleCommands[last], ColorYellow); + return last; + } + + // Shorten if too long if (strlen(command) > 20) { command[18] = command[19] = command[20] = '.'; command[21] = null; } - ConsoleWrite ("%#! Command %#%s%# does not exist!\n", - Color(0,ColorLightRed), Color(0,ColorWhite), command, Color(0,ColorLightRed)); + // Display error + ConsoleWrite ("%#! Command %#%s%# does not exist!\n", Color(0,ColorLightRed), Color(0,ColorWhite), command, Color(0,ColorLightRed)); + if (count > 0) + { + ConsoleWrite ("Available options:\n"); + for (i = 0; i < ConsoleCommandsCount; i++) + if (!strncmp(command, ConsoleCommands[i], strlen(command))) ConsoleWrite ("\t>%# %s\n", ColorYellow, ConsoleCommands[i]); + } + return -1; } diff --git a/Kernel/debug/logger.c b/Kernel/debug/logger.c index 9548277..a8f05f8 100644 --- a/Kernel/debug/logger.c +++ b/Kernel/debug/logger.c @@ -52,6 +52,8 @@ int32 LogWrite (uint8 error, string device, string format, ...) _write_char(' '); } + else return 0; + for (i = 0; i < len; i++) if (format[i] != '%' && allowed) _write_char(format[i]); else @@ -61,14 +63,14 @@ int32 LogWrite (uint8 error, string device, string format, ...) // Character case 'c': { char c = va_arg (args, char); - if (allowed) _write_char(c); + _write_char(c); break; } // String case 's': { int32* c = (int32*) va_arg (args, string); - if (allowed) _write_string((string)c); + _write_string((string)c); break; } @@ -76,10 +78,8 @@ int32 LogWrite (uint8 error, string device, string format, ...) case 'd': case 'i': { int32 c = va_arg(args, int32); char temp[32]; - if (allowed) { - ConvertIntToString(temp, c, 10); - _write_string(temp); - } + ConvertIntToString(temp, c, 10); + _write_string(temp); break; } @@ -87,20 +87,18 @@ int32 LogWrite (uint8 error, string device, string format, ...) case 'X': case 'x': { int32 c = va_arg(args, int32); char temp[32]; - if (allowed) { - ConvertUIntToString(temp, c, 16); - _write_string(temp); - } + ConvertUIntToString(temp, c, 16); + _write_string(temp); + break; } // Integers - unsigned case 'u': { int32 c = va_arg(args, uint32); char temp[32]; - if (allowed) { - ConvertUIntToString (temp, c, 10); - _write_string(temp); - } + ConvertUIntToString (temp, c, 10); + _write_string(temp); + break; } @@ -110,13 +108,13 @@ int32 LogWrite (uint8 error, string device, string format, ...) ConsoleDefaultColor = c; break; } - default: va_end(args); return 1; + case '%' : _write_char('%'); break; }; } va_end(args); - ConsoleDefaultColor = 0x7; + ConsoleDefaultColor = temp_color; ConsoleCursorUpdateHardware(); return i; } diff --git a/Kernel/include/version.h b/Kernel/include/version.h index 973f121..45df4f7 100644 --- a/Kernel/include/version.h +++ b/Kernel/include/version.h @@ -1 +1 @@ -#define OS_BUILD "0.1.0.590" +#define OS_BUILD "0.1.0.601" diff --git a/build/console.o b/build/console.o index 18418a40c5900854886b9b6efd51bc49c4567bf0..68a618de492336559cf7c97e2414b979abbbc63f 100644 GIT binary patch delta 1976 zcmZ{je{54#6vxlIE!$k%w{{z2T?c#Xk0H3h23vI%kikHs6NpfL1RNXC$Yij&bp#f} zBUF&4gb=P#qbxzAk{FFh#qc9jbh;6ZMg#sKA)vuOSabx@;QU4Xo^tDtB`*2y)9*R= zo_EfB_a0h#X3YUZ{Ooz#doEX-CvWCX5yhG;w^dBKPDF{Fq!Gow$&QU`J?^1KztxWD zkk!9f&astg5!q~8=GrBQuKtlqrQ&P+R^;Mxz&1tOCr501wP)p4dq8_r96Wx~79^jH?eFVC-^$Qkp?*q>TY zJsNWAunFt!5{-U4LOFQ|aj%?0KmE7+o197w3rzE$r^QAKw>k$G7ET*nSODcia;~FD z>>ZFR9e3HTq)-B5Ipa~e-%)P9k112TM|M1pvR`G!&I}Vy50hy){=ajS{WD(9zuFwm z)XU6xJpHuzXzZiP)y-=k9SE-||N8|d+Wn2YN21R364iiN{e7$aQ7@DS^6a*KnQFrk znR3i3J&8e5{{9vqkrlV9cRdsvP4!$#F43Db?S|~jJ1JY7#*9(yy#-k;MA?uXazW!E z4^$3SKvhs3RBw^ToI!7}x`qP2c|C3I8$w3F7w9&qx;`|cE>w39Esb;E)ekDmrD&>Tie=O*R@BC zj?QRX$CmC;F5NLF;4=cyB7z88uXl}MT2hNV`eClPtyF{*cyB)J&YVmq> z2hl-9OZ|H^y%1Xluy+teh8lG1$5_M*qgZ$t2k|{#s2!6R+$CA>AlB@ZzqvmVO)fcD z;>|kiC)$}Uua$VkPM6I0REP&EWe7O$lIuJbS?66uvn_JJ$14iQ%VS7TvAh5rt(2m) zLOfqAr3mGo;iL+I*7x5=O@@2%MlQ6mbtkjp~_Y%D#q&~4IX`lFv(0b)d zWt)U(?k&jEi06k{@ocPf+#xH|U&!yH!#^k%kcoV)Eg|49%*H4Ve_X$eA zXsi<1-O;Ws>o<2MfAS7n&1xHwHV&r@6!-{Bln*Pvky%N!jafysPvu`wd{yyv&SU>^ zj-!Dq?D4>>?6K|^d(^YzHj42?ZjkrYfTos>i8(QYsEL_Nw490VTbMzj zCzv={yO@Qzr%VqfXX0KRVFrj!Feejz$h@2A9CHfMx6EpyUzlhx54D&9C%!-bco+fh z_z_N^Euk(K}e delta 1443 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 Mm&$9Et7V@52kd<*!~g&Q delta 17055 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

(wkrjEP2;F0CCEO8%!y?9 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 YFYy0xN5(I1L;$0Ke_2?eTq*JWKh`gI!2kdN diff --git a/scripts/version.txt b/scripts/version.txt index 9706647..75a2e0d 100644 --- a/scripts/version.txt +++ b/scripts/version.txt @@ -1 +1 @@ -590 +601