File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -68,19 +68,25 @@ void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes)
68
68
while (ci < cmds -> cnt && ei < excludes -> cnt ) {
69
69
cmp = strcmp (cmds -> names [ci ]-> name , excludes -> names [ei ]-> name );
70
70
if (cmp < 0 ) {
71
- zfree (& cmds -> names [cj ]);
72
- cmds -> names [cj ++ ] = cmds -> names [ci ++ ];
71
+ if (ci == cj ) {
72
+ ci ++ ;
73
+ cj ++ ;
74
+ } else {
75
+ zfree (& cmds -> names [cj ]);
76
+ cmds -> names [cj ++ ] = cmds -> names [ci ++ ];
77
+ }
73
78
} else if (cmp == 0 ) {
74
79
ci ++ ;
75
80
ei ++ ;
76
81
} else if (cmp > 0 ) {
77
82
ei ++ ;
78
83
}
79
84
}
80
-
81
- while (ci < cmds -> cnt ) {
82
- zfree (& cmds -> names [cj ]);
83
- cmds -> names [cj ++ ] = cmds -> names [ci ++ ];
85
+ if (ci != cj ) {
86
+ while (ci < cmds -> cnt ) {
87
+ zfree (& cmds -> names [cj ]);
88
+ cmds -> names [cj ++ ] = cmds -> names [ci ++ ];
89
+ }
84
90
}
85
91
for (ci = cj ; ci < cmds -> cnt ; ci ++ )
86
92
zfree (& cmds -> names [ci ]);
You can’t perform that action at this time.
0 commit comments