diff --git a/lib/strings.nix b/lib/strings.nix index d34263c994948..2dee58d6a37fd 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -253,10 +253,7 @@ rec { => false */ hasInfix = infix: content: - let - drop = x: substring 1 (stringLength x) x; - in hasPrefix infix content - || content != "" && hasInfix infix (drop content); + builtins.match ".*${escapeRegex infix}.*" content != null; /* Convert a string to a list of characters (i.e. singleton strings). This allows you to, e.g., map a function over each character. However, diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix index eada77eea8433..8d4aa112cdb66 100644 --- a/pkgs/applications/editors/rstudio/default.nix +++ b/pkgs/applications/editors/rstudio/default.nix @@ -154,7 +154,7 @@ in hunspellDictionaries = with lib; filter isDerivation (unique (attrValues hunspellDicts)); # These dicts contain identically-named dict files, so we only keep the # -large versions in case of clashes - largeDicts = with lib; filter (d: hasInfix "-large-wordlist" d) hunspellDictionaries; + largeDicts = with lib; filter (d: hasInfix "-large-wordlist" d.name) hunspellDictionaries; otherDicts = with lib; filter (d: !(hasAttr "dictFileName" d && elem d.dictFileName (map (d: d.dictFileName) largeDicts)))