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

Function cbm_same_file

src/cli/cli.c:1014–1032  ·  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

1012 * copying the running binary onto itself during install (cbm_copy_file would
1013 * truncate it, since it opens the destination "wb" before reading the source). */
1014static bool cbm_same_file(const char *a, const char *b) {
1015 struct stat sa;
1016 struct stat sb;
1017 if (stat(a, &sa) != 0 || stat(b, &sb) != 0) {
1018 return false;
1019 }
1020#ifdef _WIN32
1021 /* st_ino is unreliable on Windows; compare normalized path strings. */
1022 char na[CLI_BUF_1K];
1023 char nb[CLI_BUF_1K];
1024 snprintf(na, sizeof(na), "%s", a);
1025 snprintf(nb, sizeof(nb), "%s", b);
1026 cbm_normalize_path_sep(na);
1027 cbm_normalize_path_sep(nb);
1028 return strcmp(na, nb) == 0;
1029#else
1030 return sa.st_dev == sb.st_dev && sa.st_ino == sb.st_ino;
1031#endif
1032}
1033
1034typedef struct {
1035 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