MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / cbm_same_file

Function cbm_same_file

src/cli/cli.c:1043–1061  ·  view source on GitHub ↗

Return true if two paths refer to the same on-disk file. Used to avoid * copying the running binary onto itself during install (cbm_copy_file would * truncate it, since it opens the destination "wb" before reading the source). */

Source from the content-addressed store, hash-verified

1041 * copying the running binary onto itself during install (cbm_copy_file would
1042 * truncate it, since it opens the destination "wb" before reading the source). */
1043static bool cbm_same_file(const char *a, const char *b) {
1044 struct stat sa;
1045 struct stat sb;
1046 if (stat(a, &sa) != 0 || stat(b, &sb) != 0) {
1047 return false;
1048 }
1049#ifdef _WIN32
1050 /* st_ino is unreliable on Windows; compare normalized path strings. */
1051 char na[CLI_BUF_1K];
1052 char nb[CLI_BUF_1K];
1053 snprintf(na, sizeof(na), "%s", a);
1054 snprintf(nb, sizeof(nb), "%s", b);
1055 cbm_normalize_path_sep(na);
1056 cbm_normalize_path_sep(nb);
1057 return strcmp(na, nb) == 0;
1058#else
1059 return sa.st_dev == sb.st_dev && sa.st_ino == sb.st_ino;
1060#endif
1061}
1062
1063typedef struct {
1064 char fingerprint[CBM_DAEMON_BUILD_FINGERPRINT_SIZE];

Callers 2

cbm_cmd_installFunction · 0.85

Calls 2

cbm_normalize_path_sepFunction · 0.85
statClass · 0.70

Tested by

no test coverage detected