Prechádzať zdrojové kódy

LibC: Implement getprogname and setprogname

Tim Schumacher 4 rokov pred
rodič
commit
cd970928a0

+ 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*);