perf(rtp): reduce rtp scans (#24191)

* perf(rtp): reduce rtp scans

Problem:
  Scanning the filesystem is expensive and particularly affects
  startuptime.

Solution:
  Reduce the amount of redundant directory scans by relying less on glob
  patterns and handle vim and lua sourcing lower down.
This commit is contained in:
Lewis Russell
2023-07-13 10:17:19 +01:00
committed by GitHub
parent 998bebc15e
commit 516b173780
13 changed files with 247 additions and 142 deletions

View File

@@ -436,6 +436,25 @@ char *vim_strchr(const char *const string, const int c)
}
}
/// Test if "str" ends with "suffix"
///
/// @param[in] str
/// @param[in] suffix to match
///
/// @return [allocated] Copy of the string.
bool str_ends_with(const char *str, const char *suffix)
{
if (!str || !suffix) {
return false;
}
size_t lenstr = strlen(str);
size_t lensuffix = strlen(suffix);
if (lensuffix > lenstr) {
return false;
}
return strncmp(str + lenstr - lensuffix, suffix, lensuffix) == 0;
}
// Sort an array of strings.
#ifdef INCLUDE_GENERATED_DECLARATIONS