* Get the source directory name. */
| 101 | * Get the source directory name. |
| 102 | */ |
| 103 | const char *getDirname(const char *dir, const char *file, char *tmp, |
| 104 | size_t size) |
| 105 | { |
| 106 | char *abs = (char *)getAbsname(dir, file, tmp, size); |
| 107 | if (abs == nullptr) |
| 108 | return nullptr; |
| 109 | char *last = strrchr((char *)abs, '/'); |
| 110 | if (last == nullptr) |
| 111 | return nullptr; |
| 112 | size_t len = last-abs+1; |
| 113 | if (abs == file) |
| 114 | { |
| 115 | memcpy(tmp, file, len); |
| 116 | abs = tmp; |
| 117 | } |
| 118 | abs[len] = '\0'; |
| 119 | return abs; |
| 120 | } |
| 121 | |
| 122 | /* |
| 123 | * Get the source base name. |
no test coverage detected