Преглед на файлове

LibC: Implement getprogname and setprogname

Tim Schumacher преди 4 години
родител
ревизия
cd970928a0
променени са 2 файла, в които са добавени 21 реда и са изтрити 0 реда
  1. 19 0
      Userland/Libraries/LibC/stdlib.cpp
  2. 2 0
      Userland/Libraries/LibC/stdlib.h

+ 19 - 0
Userland/Libraries/LibC/stdlib.cpp

@@ -373,6 +373,25 @@ int putenv(char* new_var)
     return 0;
 }
 
+static const char* __progname = NULL;
+
+const char* getprogname()
+{
+    return __progname;
+}
+
+void setprogname(const char* progname)
+{
+    for (int i = strlen(progname) - 1; i >= 0; i--) {
+        if (progname[i] == '/') {
+            __progname = progname + i + 1;
+            return;
+        }
+    }
+
+    __progname = progname;
+}
+
 double strtod(const char* str, char** endptr)
 {
     // Parse spaces, sign, and base

+ 2 - 0
Userland/Libraries/LibC/stdlib.h

@@ -31,6 +31,8 @@ int putenv(char*);
 int unsetenv(const char*);
 int clearenv(void);
 int setenv(const char* name, const char* value, int overwrite);
+const char* getprogname();
+void setprogname(const char*);
 int atoi(const char*);
 long atol(const char*);
 long long atoll(const char*);