aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/syntax.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/syntax.c')
-rw-r--r--src/nvim/syntax.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c
index 70a2efb588..68f3329ce7 100644
--- a/src/nvim/syntax.c
+++ b/src/nvim/syntax.c
@@ -7762,10 +7762,18 @@ static void highlight_list_two(int cnt, int attr)
* Function given to ExpandGeneric() to obtain the list of group names.
* Also used for synIDattr() function.
*/
-const char *get_highlight_name(expand_T *const xp, const int idx)
+const char *get_highlight_name(expand_T *const xp, int idx)
FUNC_ATTR_WARN_UNUSED_RESULT
{
- // TODO(justinmk): 'xp' is unused
+ if (idx < 0) {
+ return NULL;
+ }
+
+ // Items are never removed from the table, skip the ones that were cleared.
+ while (idx < highlight_ga.ga_len && HL_TABLE()[idx].sg_cleared) {
+ idx++;
+ }
+
if (idx == highlight_ga.ga_len && include_none != 0) {
return "none";
} else if (idx == highlight_ga.ga_len + include_none
@@ -7777,20 +7785,10 @@ const char *get_highlight_name(expand_T *const xp, const int idx)
} else if (idx == highlight_ga.ga_len + include_none + include_default + 1
&& include_link != 0) {
return "clear";
- } else if (idx < 0) {
- return NULL;
- }
-
- // Items are never removed from the table, skip the ones that were cleared.
- int current_idx = idx;
- while (current_idx < highlight_ga.ga_len
- && HL_TABLE()[current_idx].sg_cleared) {
- current_idx++;
- }
- if (current_idx >= highlight_ga.ga_len) {
+ } else if (idx >= highlight_ga.ga_len) {
return NULL;
}
- return (const char *)HL_TABLE()[current_idx].sg_name;
+ return (const char *)HL_TABLE()[idx].sg_name;
}
color_name_table_T color_name_table[] = {