mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Merge branch 'rs/qsort'
We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of the time third parameter is redundant. A new QSORT() macro lets us omit it. * rs/qsort: show-branch: use QSORT use QSORT, part 2 coccicheck: use --all-includes by default remove unnecessary check before QSORT use QSORT add QSORT
This commit is contained in:
3
Makefile
3
Makefile
@@ -467,6 +467,7 @@ SPATCH = spatch
|
|||||||
export TCL_PATH TCLTK_PATH
|
export TCL_PATH TCLTK_PATH
|
||||||
|
|
||||||
SPARSE_FLAGS =
|
SPARSE_FLAGS =
|
||||||
|
SPATCH_FLAGS = --all-includes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -2314,7 +2315,7 @@ C_SOURCES = $(patsubst %.o,%.c,$(C_OBJ))
|
|||||||
%.cocci.patch: %.cocci $(C_SOURCES)
|
%.cocci.patch: %.cocci $(C_SOURCES)
|
||||||
@echo ' ' SPATCH $<; \
|
@echo ' ' SPATCH $<; \
|
||||||
for f in $(C_SOURCES); do \
|
for f in $(C_SOURCES); do \
|
||||||
$(SPATCH) --sp-file $< $$f; \
|
$(SPATCH) --sp-file $< $$f $(SPATCH_FLAGS); \
|
||||||
done >$@ 2>$@.log; \
|
done >$@ 2>$@.log; \
|
||||||
if test -s $@; \
|
if test -s $@; \
|
||||||
then \
|
then \
|
||||||
|
|||||||
2
bisect.c
2
bisect.c
@@ -215,7 +215,7 @@ static struct commit_list *best_bisection_sorted(struct commit_list *list, int n
|
|||||||
array[cnt].distance = distance;
|
array[cnt].distance = distance;
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
qsort(array, cnt, sizeof(*array), compare_commit_dist);
|
QSORT(array, cnt, compare_commit_dist);
|
||||||
for (p = list, i = 0; i < cnt; i++) {
|
for (p = list, i = 0; i < cnt; i++) {
|
||||||
char buf[100]; /* enough for dist=%d */
|
char buf[100]; /* enough for dist=%d */
|
||||||
struct object *obj = &(array[i].commit->object);
|
struct object *obj = &(array[i].commit->object);
|
||||||
|
|||||||
@@ -352,7 +352,7 @@ static void describe(const char *arg, int last_one)
|
|||||||
oid_to_hex(oid));
|
oid_to_hex(oid));
|
||||||
}
|
}
|
||||||
|
|
||||||
qsort(all_matches, match_cnt, sizeof(all_matches[0]), compare_pt);
|
QSORT(all_matches, match_cnt, compare_pt);
|
||||||
|
|
||||||
if (gave_up_on) {
|
if (gave_up_on) {
|
||||||
commit_list_insert_by_date(gave_up_on, &list);
|
commit_list_insert_by_date(gave_up_on, &list);
|
||||||
|
|||||||
@@ -347,7 +347,7 @@ static void show_filemodify(struct diff_queue_struct *q,
|
|||||||
* Handle files below a directory first, in case they are all deleted
|
* Handle files below a directory first, in case they are all deleted
|
||||||
* and the directory changes to a file or symlink.
|
* and the directory changes to a file or symlink.
|
||||||
*/
|
*/
|
||||||
qsort(q->queue, q->nr, sizeof(q->queue[0]), depth_first);
|
QSORT(q->queue, q->nr, depth_first);
|
||||||
|
|
||||||
for (i = 0; i < q->nr; i++) {
|
for (i = 0; i < q->nr; i++) {
|
||||||
struct diff_filespec *ospec = q->queue[i]->one;
|
struct diff_filespec *ospec = q->queue[i]->one;
|
||||||
|
|||||||
@@ -314,14 +314,10 @@ static void add_people_info(struct strbuf *out,
|
|||||||
struct string_list *authors,
|
struct string_list *authors,
|
||||||
struct string_list *committers)
|
struct string_list *committers)
|
||||||
{
|
{
|
||||||
if (authors->nr)
|
QSORT(authors->items, authors->nr,
|
||||||
qsort(authors->items,
|
cmp_string_list_util_as_integral);
|
||||||
authors->nr, sizeof(authors->items[0]),
|
QSORT(committers->items, committers->nr,
|
||||||
cmp_string_list_util_as_integral);
|
cmp_string_list_util_as_integral);
|
||||||
if (committers->nr)
|
|
||||||
qsort(committers->items,
|
|
||||||
committers->nr, sizeof(committers->items[0]),
|
|
||||||
cmp_string_list_util_as_integral);
|
|
||||||
|
|
||||||
credit_people(out, authors, 'a');
|
credit_people(out, authors, 'a');
|
||||||
credit_people(out, committers, 'c');
|
credit_people(out, committers, 'c');
|
||||||
|
|||||||
@@ -1190,10 +1190,8 @@ static void resolve_deltas(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Sort deltas by base SHA1/offset for fast searching */
|
/* Sort deltas by base SHA1/offset for fast searching */
|
||||||
qsort(ofs_deltas, nr_ofs_deltas, sizeof(struct ofs_delta_entry),
|
QSORT(ofs_deltas, nr_ofs_deltas, compare_ofs_delta_entry);
|
||||||
compare_ofs_delta_entry);
|
QSORT(ref_deltas, nr_ref_deltas, compare_ref_delta_entry);
|
||||||
qsort(ref_deltas, nr_ref_deltas, sizeof(struct ref_delta_entry),
|
|
||||||
compare_ref_delta_entry);
|
|
||||||
|
|
||||||
if (verbose || show_resolving_progress)
|
if (verbose || show_resolving_progress)
|
||||||
progress = start_progress(_("Resolving deltas"),
|
progress = start_progress(_("Resolving deltas"),
|
||||||
@@ -1356,7 +1354,7 @@ static void fix_unresolved_deltas(struct sha1file *f)
|
|||||||
ALLOC_ARRAY(sorted_by_pos, nr_ref_deltas);
|
ALLOC_ARRAY(sorted_by_pos, nr_ref_deltas);
|
||||||
for (i = 0; i < nr_ref_deltas; i++)
|
for (i = 0; i < nr_ref_deltas; i++)
|
||||||
sorted_by_pos[i] = &ref_deltas[i];
|
sorted_by_pos[i] = &ref_deltas[i];
|
||||||
qsort(sorted_by_pos, nr_ref_deltas, sizeof(*sorted_by_pos), delta_pos_compare);
|
QSORT(sorted_by_pos, nr_ref_deltas, delta_pos_compare);
|
||||||
|
|
||||||
for (i = 0; i < nr_ref_deltas; i++) {
|
for (i = 0; i < nr_ref_deltas; i++) {
|
||||||
struct ref_delta_entry *d = sorted_by_pos[i];
|
struct ref_delta_entry *d = sorted_by_pos[i];
|
||||||
@@ -1533,8 +1531,7 @@ static void read_v2_anomalous_offsets(struct packed_git *p,
|
|||||||
opts->anomaly[opts->anomaly_nr++] = ntohl(idx2[off * 2 + 1]);
|
opts->anomaly[opts->anomaly_nr++] = ntohl(idx2[off * 2 + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (1 < opts->anomaly_nr)
|
QSORT(opts->anomaly, opts->anomaly_nr, cmp_uint32);
|
||||||
qsort(opts->anomaly, opts->anomaly_nr, sizeof(uint32_t), cmp_uint32);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void read_idx_option(struct pack_idx_option *opts, const char *pack_name)
|
static void read_idx_option(struct pack_idx_option *opts, const char *pack_name)
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ static void write_tree(unsigned char *sha1)
|
|||||||
size_t size;
|
size_t size;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
qsort(entries, used, sizeof(*entries), ent_compare);
|
QSORT(entries, used, ent_compare);
|
||||||
for (size = i = 0; i < used; i++)
|
for (size = i = 0; i < used; i++)
|
||||||
size += 32 + entries[i]->len;
|
size += 32 + entries[i]->len;
|
||||||
|
|
||||||
|
|||||||
@@ -195,8 +195,7 @@ static const char *get_exact_ref_match(const struct object *o)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!tip_table.sorted) {
|
if (!tip_table.sorted) {
|
||||||
qsort(tip_table.table, tip_table.nr, sizeof(*tip_table.table),
|
QSORT(tip_table.table, tip_table.nr, tipcmp);
|
||||||
tipcmp);
|
|
||||||
tip_table.sorted = 1;
|
tip_table.sorted = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1535,7 +1535,7 @@ static void get_object_details(void)
|
|||||||
sorted_by_offset = xcalloc(to_pack.nr_objects, sizeof(struct object_entry *));
|
sorted_by_offset = xcalloc(to_pack.nr_objects, sizeof(struct object_entry *));
|
||||||
for (i = 0; i < to_pack.nr_objects; i++)
|
for (i = 0; i < to_pack.nr_objects; i++)
|
||||||
sorted_by_offset[i] = to_pack.objects + i;
|
sorted_by_offset[i] = to_pack.objects + i;
|
||||||
qsort(sorted_by_offset, to_pack.nr_objects, sizeof(*sorted_by_offset), pack_offset_sort);
|
QSORT(sorted_by_offset, to_pack.nr_objects, pack_offset_sort);
|
||||||
|
|
||||||
for (i = 0; i < to_pack.nr_objects; i++) {
|
for (i = 0; i < to_pack.nr_objects; i++) {
|
||||||
struct object_entry *entry = sorted_by_offset[i];
|
struct object_entry *entry = sorted_by_offset[i];
|
||||||
@@ -2257,7 +2257,7 @@ static void prepare_pack(int window, int depth)
|
|||||||
if (progress)
|
if (progress)
|
||||||
progress_state = start_progress(_("Compressing objects"),
|
progress_state = start_progress(_("Compressing objects"),
|
||||||
nr_deltas);
|
nr_deltas);
|
||||||
qsort(delta_list, n, sizeof(*delta_list), type_size_sort);
|
QSORT(delta_list, n, type_size_sort);
|
||||||
ll_find_deltas(delta_list, n, window+1, depth, &nr_done);
|
ll_find_deltas(delta_list, n, window+1, depth, &nr_done);
|
||||||
stop_progress(&progress_state);
|
stop_progress(&progress_state);
|
||||||
if (nr_done != nr_deltas)
|
if (nr_done != nr_deltas)
|
||||||
@@ -2449,8 +2449,7 @@ static void add_objects_in_unpacked_packs(struct rev_info *revs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (in_pack.nr) {
|
if (in_pack.nr) {
|
||||||
qsort(in_pack.array, in_pack.nr, sizeof(in_pack.array[0]),
|
QSORT(in_pack.array, in_pack.nr, ofscmp);
|
||||||
ofscmp);
|
|
||||||
for (i = 0; i < in_pack.nr; i++) {
|
for (i = 0; i < in_pack.nr; i++) {
|
||||||
struct object *o = in_pack.array[i].object;
|
struct object *o = in_pack.array[i].object;
|
||||||
add_object_entry(o->oid.hash, o->type, "", 0);
|
add_object_entry(o->oid.hash, o->type, "", 0);
|
||||||
|
|||||||
@@ -1197,8 +1197,7 @@ static int show(int argc, const char **argv)
|
|||||||
|
|
||||||
info.width = info.width2 = 0;
|
info.width = info.width2 = 0;
|
||||||
for_each_string_list(&states.push, add_push_to_show_info, &info);
|
for_each_string_list(&states.push, add_push_to_show_info, &info);
|
||||||
qsort(info.list->items, info.list->nr,
|
QSORT(info.list->items, info.list->nr, cmp_string_with_push);
|
||||||
sizeof(*info.list->items), cmp_string_with_push);
|
|
||||||
if (info.list->nr)
|
if (info.list->nr)
|
||||||
printf_ln(Q_(" Local ref configured for 'git push'%s:",
|
printf_ln(Q_(" Local ref configured for 'git push'%s:",
|
||||||
" Local refs configured for 'git push'%s:",
|
" Local refs configured for 'git push'%s:",
|
||||||
|
|||||||
@@ -308,7 +308,7 @@ void shortlog_output(struct shortlog *log)
|
|||||||
struct strbuf sb = STRBUF_INIT;
|
struct strbuf sb = STRBUF_INIT;
|
||||||
|
|
||||||
if (log->sort_by_number)
|
if (log->sort_by_number)
|
||||||
qsort(log->list.items, log->list.nr, sizeof(struct string_list_item),
|
QSORT(log->list.items, log->list.nr,
|
||||||
log->summary ? compare_by_counter : compare_by_list);
|
log->summary ? compare_by_counter : compare_by_list);
|
||||||
for (i = 0; i < log->list.nr; i++) {
|
for (i = 0; i < log->list.nr; i++) {
|
||||||
const struct string_list_item *item = &log->list.items[i];
|
const struct string_list_item *item = &log->list.items[i];
|
||||||
|
|||||||
@@ -353,8 +353,7 @@ static int compare_ref_name(const void *a_, const void *b_)
|
|||||||
|
|
||||||
static void sort_ref_range(int bottom, int top)
|
static void sort_ref_range(int bottom, int top)
|
||||||
{
|
{
|
||||||
qsort(ref_name + bottom, top - bottom, sizeof(ref_name[0]),
|
QSORT(ref_name + bottom, top - bottom, compare_ref_name);
|
||||||
compare_ref_name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int append_ref(const char *refname, const struct object_id *oid,
|
static int append_ref(const char *refname, const struct object_id *oid,
|
||||||
@@ -540,8 +539,7 @@ static void append_one_rev(const char *av)
|
|||||||
if (saved_matches == ref_name_cnt &&
|
if (saved_matches == ref_name_cnt &&
|
||||||
ref_name_cnt < MAX_REVS)
|
ref_name_cnt < MAX_REVS)
|
||||||
error(_("no matching refs with %s"), av);
|
error(_("no matching refs with %s"), av);
|
||||||
if (saved_matches + 1 < ref_name_cnt)
|
sort_ref_range(saved_matches, ref_name_cnt);
|
||||||
sort_ref_range(saved_matches, ref_name_cnt);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
die("bad sha1 reference %s", av);
|
die("bad sha1 reference %s", av);
|
||||||
|
|||||||
37
contrib/coccinelle/qsort.cocci
Normal file
37
contrib/coccinelle/qsort.cocci
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
@@
|
||||||
|
expression base, nmemb, compar;
|
||||||
|
@@
|
||||||
|
- qsort(base, nmemb, sizeof(*base), compar);
|
||||||
|
+ QSORT(base, nmemb, compar);
|
||||||
|
|
||||||
|
@@
|
||||||
|
expression base, nmemb, compar;
|
||||||
|
@@
|
||||||
|
- qsort(base, nmemb, sizeof(base[0]), compar);
|
||||||
|
+ QSORT(base, nmemb, compar);
|
||||||
|
|
||||||
|
@@
|
||||||
|
type T;
|
||||||
|
T *base;
|
||||||
|
expression nmemb, compar;
|
||||||
|
@@
|
||||||
|
- qsort(base, nmemb, sizeof(T), compar);
|
||||||
|
+ QSORT(base, nmemb, compar);
|
||||||
|
|
||||||
|
@@
|
||||||
|
expression base, nmemb, compar;
|
||||||
|
@@
|
||||||
|
- if (nmemb)
|
||||||
|
QSORT(base, nmemb, compar);
|
||||||
|
|
||||||
|
@@
|
||||||
|
expression base, nmemb, compar;
|
||||||
|
@@
|
||||||
|
- if (nmemb > 0)
|
||||||
|
QSORT(base, nmemb, compar);
|
||||||
|
|
||||||
|
@@
|
||||||
|
expression base, nmemb, compar;
|
||||||
|
@@
|
||||||
|
- if (nmemb > 1)
|
||||||
|
QSORT(base, nmemb, compar);
|
||||||
6
diff.c
6
diff.c
@@ -2019,7 +2019,7 @@ found_damage:
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Show all directories with more than x% of the changes */
|
/* Show all directories with more than x% of the changes */
|
||||||
qsort(dir.files, dir.nr, sizeof(dir.files[0]), dirstat_compare);
|
QSORT(dir.files, dir.nr, dirstat_compare);
|
||||||
gather_dirstat(options, &dir, changed, "", 0);
|
gather_dirstat(options, &dir, changed, "", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2063,7 +2063,7 @@ static void show_dirstat_by_line(struct diffstat_t *data, struct diff_options *o
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Show all directories with more than x% of the changes */
|
/* Show all directories with more than x% of the changes */
|
||||||
qsort(dir.files, dir.nr, sizeof(dir.files[0]), dirstat_compare);
|
QSORT(dir.files, dir.nr, dirstat_compare);
|
||||||
gather_dirstat(options, &dir, changed, "", 0);
|
gather_dirstat(options, &dir, changed, "", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4923,7 +4923,7 @@ static int diffnamecmp(const void *a_, const void *b_)
|
|||||||
void diffcore_fix_diff_index(struct diff_options *options)
|
void diffcore_fix_diff_index(struct diff_options *options)
|
||||||
{
|
{
|
||||||
struct diff_queue_struct *q = &diff_queued_diff;
|
struct diff_queue_struct *q = &diff_queued_diff;
|
||||||
qsort(q->queue, q->nr, sizeof(q->queue[0]), diffnamecmp);
|
QSORT(q->queue, q->nr, diffnamecmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void diffcore_std(struct diff_options *options)
|
void diffcore_std(struct diff_options *options)
|
||||||
|
|||||||
@@ -158,10 +158,7 @@ static struct spanhash_top *hash_chars(struct diff_filespec *one)
|
|||||||
n = 0;
|
n = 0;
|
||||||
accum1 = accum2 = 0;
|
accum1 = accum2 = 0;
|
||||||
}
|
}
|
||||||
qsort(hash->data,
|
QSORT(hash->data, 1ul << hash->alloc_log2, spanhash_cmp);
|
||||||
1ul << hash->alloc_log2,
|
|
||||||
sizeof(hash->data[0]),
|
|
||||||
spanhash_cmp);
|
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ void order_objects(const char *orderfile, obj_path_fn_t obj_path,
|
|||||||
objs[i].orig_order = i;
|
objs[i].orig_order = i;
|
||||||
objs[i].order = match_order(obj_path(objs[i].obj));
|
objs[i].order = match_order(obj_path(objs[i].obj));
|
||||||
}
|
}
|
||||||
qsort(objs, nr, sizeof(*objs), compare_objs_order);
|
QSORT(objs, nr, compare_objs_order);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *pair_pathtwo(void *obj)
|
static const char *pair_pathtwo(void *obj)
|
||||||
|
|||||||
@@ -580,7 +580,7 @@ void diffcore_rename(struct diff_options *options)
|
|||||||
stop_progress(&progress);
|
stop_progress(&progress);
|
||||||
|
|
||||||
/* cost matrix sorted by most to least similar pair */
|
/* cost matrix sorted by most to least similar pair */
|
||||||
qsort(mx, dst_cnt * NUM_CANDIDATE_PER_DST, sizeof(*mx), score_compare);
|
QSORT(mx, dst_cnt * NUM_CANDIDATE_PER_DST, score_compare);
|
||||||
|
|
||||||
rename_count += find_renames(mx, dst_cnt, minimum_score, 0);
|
rename_count += find_renames(mx, dst_cnt, minimum_score, 0);
|
||||||
if (detect_rename == DIFF_DETECT_COPY)
|
if (detect_rename == DIFF_DETECT_COPY)
|
||||||
|
|||||||
4
dir.c
4
dir.c
@@ -2005,8 +2005,8 @@ int read_directory(struct dir_struct *dir, const char *path, int len, const stru
|
|||||||
if (!len || treat_leading_path(dir, path, len, simplify))
|
if (!len || treat_leading_path(dir, path, len, simplify))
|
||||||
read_directory_recursive(dir, path, len, untracked, 0, simplify);
|
read_directory_recursive(dir, path, len, untracked, 0, simplify);
|
||||||
free_simplify(simplify);
|
free_simplify(simplify);
|
||||||
qsort(dir->entries, dir->nr, sizeof(struct dir_entry *), cmp_name);
|
QSORT(dir->entries, dir->nr, cmp_name);
|
||||||
qsort(dir->ignored, dir->ignored_nr, sizeof(struct dir_entry *), cmp_name);
|
QSORT(dir->ignored, dir->ignored_nr, cmp_name);
|
||||||
if (dir->untracked) {
|
if (dir->untracked) {
|
||||||
static struct trace_key trace_untracked_stats = TRACE_KEY_INIT(UNTRACKED_STATS);
|
static struct trace_key trace_untracked_stats = TRACE_KEY_INIT(UNTRACKED_STATS);
|
||||||
trace_printf_key(&trace_untracked_stats,
|
trace_printf_key(&trace_untracked_stats,
|
||||||
|
|||||||
@@ -1460,9 +1460,9 @@ static void mktree(struct tree_content *t, int v, struct strbuf *b)
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
if (!v)
|
if (!v)
|
||||||
qsort(t->entries,t->entry_count,sizeof(t->entries[0]),tecmp0);
|
QSORT(t->entries, t->entry_count, tecmp0);
|
||||||
else
|
else
|
||||||
qsort(t->entries,t->entry_count,sizeof(t->entries[0]),tecmp1);
|
QSORT(t->entries, t->entry_count, tecmp1);
|
||||||
|
|
||||||
for (i = 0; i < t->entry_count; i++) {
|
for (i = 0; i < t->entry_count; i++) {
|
||||||
if (t->entries[i]->versions[v].mode)
|
if (t->entries[i]->versions[v].mode)
|
||||||
|
|||||||
@@ -819,7 +819,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
|
|||||||
int agent_len;
|
int agent_len;
|
||||||
|
|
||||||
sort_ref_list(&ref, ref_compare_name);
|
sort_ref_list(&ref, ref_compare_name);
|
||||||
qsort(sought, nr_sought, sizeof(*sought), cmp_ref_by_name);
|
QSORT(sought, nr_sought, cmp_ref_by_name);
|
||||||
|
|
||||||
if ((args->depth > 0 || is_repository_shallow()) && !server_supports("shallow"))
|
if ((args->depth > 0 || is_repository_shallow()) && !server_supports("shallow"))
|
||||||
die("Server does not support shallow clients");
|
die("Server does not support shallow clients");
|
||||||
|
|||||||
@@ -985,6 +985,14 @@ void git_qsort(void *base, size_t nmemb, size_t size,
|
|||||||
#define qsort git_qsort
|
#define qsort git_qsort
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define QSORT(base, n, compar) sane_qsort((base), (n), sizeof(*(base)), compar)
|
||||||
|
static inline void sane_qsort(void *base, size_t nmemb, size_t size,
|
||||||
|
int(*compar)(const void *, const void *))
|
||||||
|
{
|
||||||
|
if (nmemb > 1)
|
||||||
|
qsort(base, nmemb, size, compar);
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef REG_STARTEND
|
#ifndef REG_STARTEND
|
||||||
#error "Git requires REG_STARTEND support. Compile with NO_REGEX=NeedsStartEnd"
|
#error "Git requires REG_STARTEND support. Compile with NO_REGEX=NeedsStartEnd"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
15
help.c
15
help.c
@@ -170,8 +170,7 @@ void load_command_list(const char *prefix,
|
|||||||
|
|
||||||
if (exec_path) {
|
if (exec_path) {
|
||||||
list_commands_in_dir(main_cmds, exec_path, prefix);
|
list_commands_in_dir(main_cmds, exec_path, prefix);
|
||||||
qsort(main_cmds->names, main_cmds->cnt,
|
QSORT(main_cmds->names, main_cmds->cnt, cmdname_compare);
|
||||||
sizeof(*main_cmds->names), cmdname_compare);
|
|
||||||
uniq(main_cmds);
|
uniq(main_cmds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,8 +189,7 @@ void load_command_list(const char *prefix,
|
|||||||
}
|
}
|
||||||
free(paths);
|
free(paths);
|
||||||
|
|
||||||
qsort(other_cmds->names, other_cmds->cnt,
|
QSORT(other_cmds->names, other_cmds->cnt, cmdname_compare);
|
||||||
sizeof(*other_cmds->names), cmdname_compare);
|
|
||||||
uniq(other_cmds);
|
uniq(other_cmds);
|
||||||
}
|
}
|
||||||
exclude_cmds(other_cmds, main_cmds);
|
exclude_cmds(other_cmds, main_cmds);
|
||||||
@@ -238,8 +236,7 @@ void list_common_cmds_help(void)
|
|||||||
longest = strlen(common_cmds[i].name);
|
longest = strlen(common_cmds[i].name);
|
||||||
}
|
}
|
||||||
|
|
||||||
qsort(common_cmds, ARRAY_SIZE(common_cmds),
|
QSORT(common_cmds, ARRAY_SIZE(common_cmds), cmd_group_cmp);
|
||||||
sizeof(common_cmds[0]), cmd_group_cmp);
|
|
||||||
|
|
||||||
puts(_("These are common Git commands used in various situations:"));
|
puts(_("These are common Git commands used in various situations:"));
|
||||||
|
|
||||||
@@ -324,8 +321,7 @@ const char *help_unknown_cmd(const char *cmd)
|
|||||||
|
|
||||||
add_cmd_list(&main_cmds, &aliases);
|
add_cmd_list(&main_cmds, &aliases);
|
||||||
add_cmd_list(&main_cmds, &other_cmds);
|
add_cmd_list(&main_cmds, &other_cmds);
|
||||||
qsort(main_cmds.names, main_cmds.cnt,
|
QSORT(main_cmds.names, main_cmds.cnt, cmdname_compare);
|
||||||
sizeof(*main_cmds.names), cmdname_compare);
|
|
||||||
uniq(&main_cmds);
|
uniq(&main_cmds);
|
||||||
|
|
||||||
/* This abuses cmdname->len for levenshtein distance */
|
/* This abuses cmdname->len for levenshtein distance */
|
||||||
@@ -359,8 +355,7 @@ const char *help_unknown_cmd(const char *cmd)
|
|||||||
levenshtein(cmd, candidate, 0, 2, 1, 3) + 1;
|
levenshtein(cmd, candidate, 0, 2, 1, 3) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
qsort(main_cmds.names, main_cmds.cnt,
|
QSORT(main_cmds.names, main_cmds.cnt, levenshtein_compare);
|
||||||
sizeof(*main_cmds.names), levenshtein_compare);
|
|
||||||
|
|
||||||
if (!main_cmds.cnt)
|
if (!main_cmds.cnt)
|
||||||
die(_("Uh oh. Your system reports no Git commands at all."));
|
die(_("Uh oh. Your system reports no Git commands at all."));
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ void sort_and_merge_range_set(struct range_set *rs)
|
|||||||
int i;
|
int i;
|
||||||
int o = 0; /* output cursor */
|
int o = 0; /* output cursor */
|
||||||
|
|
||||||
qsort(rs->ranges, rs->nr, sizeof(struct range), range_cmp);
|
QSORT(rs->ranges, rs->nr, range_cmp);
|
||||||
|
|
||||||
for (i = 0; i < rs->nr; i++) {
|
for (i = 0; i < rs->nr; i++) {
|
||||||
if (rs->ranges[i].start == rs->ranges[i].end)
|
if (rs->ranges[i].start == rs->ranges[i].end)
|
||||||
|
|||||||
@@ -385,8 +385,7 @@ void bitmap_writer_select_commits(struct commit **indexed_commits,
|
|||||||
{
|
{
|
||||||
unsigned int i = 0, j, next;
|
unsigned int i = 0, j, next;
|
||||||
|
|
||||||
qsort(indexed_commits, indexed_commits_nr, sizeof(indexed_commits[0]),
|
QSORT(indexed_commits, indexed_commits_nr, date_compare);
|
||||||
date_compare);
|
|
||||||
|
|
||||||
if (writer.show_progress)
|
if (writer.show_progress)
|
||||||
writer.progress = start_progress("Selecting bitmap commits", 0);
|
writer.progress = start_progress("Selecting bitmap commits", 0);
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ static int verify_packfile(struct packed_git *p,
|
|||||||
entries[i].offset = nth_packed_object_offset(p, i);
|
entries[i].offset = nth_packed_object_offset(p, i);
|
||||||
entries[i].nr = i;
|
entries[i].nr = i;
|
||||||
}
|
}
|
||||||
qsort(entries, nr_objects, sizeof(*entries), compare_entries);
|
QSORT(entries, nr_objects, compare_entries);
|
||||||
|
|
||||||
for (i = 0; i < nr_objects; i++) {
|
for (i = 0; i < nr_objects; i++) {
|
||||||
void *data;
|
void *data;
|
||||||
|
|||||||
@@ -61,8 +61,7 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec
|
|||||||
if (objects[i]->offset > last_obj_offset)
|
if (objects[i]->offset > last_obj_offset)
|
||||||
last_obj_offset = objects[i]->offset;
|
last_obj_offset = objects[i]->offset;
|
||||||
}
|
}
|
||||||
qsort(sorted_by_sha, nr_objects, sizeof(sorted_by_sha[0]),
|
QSORT(sorted_by_sha, nr_objects, sha1_compare);
|
||||||
sha1_compare);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sorted_by_sha = list = last = NULL;
|
sorted_by_sha = list = last = NULL;
|
||||||
|
|||||||
@@ -446,8 +446,7 @@ void parse_pathspec(struct pathspec *pathspec,
|
|||||||
if (pathspec->magic & PATHSPEC_MAXDEPTH) {
|
if (pathspec->magic & PATHSPEC_MAXDEPTH) {
|
||||||
if (flags & PATHSPEC_KEEP_ORDER)
|
if (flags & PATHSPEC_KEEP_ORDER)
|
||||||
die("BUG: PATHSPEC_MAXDEPTH_VALID and PATHSPEC_KEEP_ORDER are incompatible");
|
die("BUG: PATHSPEC_MAXDEPTH_VALID and PATHSPEC_KEEP_ORDER are incompatible");
|
||||||
qsort(pathspec->items, pathspec->nr,
|
QSORT(pathspec->items, pathspec->nr, pathspec_item_cmp);
|
||||||
sizeof(struct pathspec_item), pathspec_item_cmp);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1573,7 +1573,7 @@ static int compare_refs(const void *a_, const void *b_)
|
|||||||
void ref_array_sort(struct ref_sorting *sorting, struct ref_array *array)
|
void ref_array_sort(struct ref_sorting *sorting, struct ref_array *array)
|
||||||
{
|
{
|
||||||
ref_sorting = sorting;
|
ref_sorting = sorting;
|
||||||
qsort(array->items, array->nr, sizeof(struct ref_array_item *), compare_refs);
|
QSORT(array->items, array->nr, compare_refs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void append_literal(const char *cp, const char *ep, struct ref_formatting_state *state)
|
static void append_literal(const char *cp, const char *ep, struct ref_formatting_state *state)
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ static void sort_ref_dir(struct ref_dir *dir)
|
|||||||
if (dir->sorted == dir->nr)
|
if (dir->sorted == dir->nr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
qsort(dir->entries, dir->nr, sizeof(*dir->entries), ref_entry_cmp);
|
QSORT(dir->entries, dir->nr, ref_entry_cmp);
|
||||||
|
|
||||||
/* Remove any duplicates: */
|
/* Remove any duplicates: */
|
||||||
for (i = 0, j = 0; j < dir->nr; j++) {
|
for (i = 0, j = 0; j < dir->nr; j++) {
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ static void init_pack_info(const char *infofile, int force)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* renumber them */
|
/* renumber them */
|
||||||
qsort(info, num_pack, sizeof(info[0]), compare_info);
|
QSORT(info, num_pack, compare_info);
|
||||||
for (i = 0; i < num_pack; i++)
|
for (i = 0; i < num_pack; i++)
|
||||||
info[i]->new_num = i;
|
info[i]->new_num = i;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -230,8 +230,7 @@ cmp_string (const void *pstr1, const void *pstr2)
|
|||||||
static inline void
|
static inline void
|
||||||
string_list_sort (string_list_ty *slp)
|
string_list_sort (string_list_ty *slp)
|
||||||
{
|
{
|
||||||
if (slp->nitems > 0)
|
QSORT(slp->item, slp->nitems, cmp_string);
|
||||||
qsort (slp->item, slp->nitems, sizeof (slp->item[0]), cmp_string);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Test whether a sorted string list contains a given string. */
|
/* Test whether a sorted string list contains a given string. */
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ static int void_hashcmp(const void *a, const void *b)
|
|||||||
|
|
||||||
static void sha1_array_sort(struct sha1_array *array)
|
static void sha1_array_sort(struct sha1_array *array)
|
||||||
{
|
{
|
||||||
qsort(array->sha1, array->nr, sizeof(*array->sha1), void_hashcmp);
|
QSORT(array->sha1, array->nr, void_hashcmp);
|
||||||
array->sorted = 1;
|
array->sorted = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ static int cmp_items(const void *a, const void *b)
|
|||||||
void string_list_sort(struct string_list *list)
|
void string_list_sort(struct string_list *list)
|
||||||
{
|
{
|
||||||
compare_for_qsort = list->cmp ? list->cmp : strcmp;
|
compare_for_qsort = list->cmp ? list->cmp : strcmp;
|
||||||
qsort(list->items, list->nr, sizeof(*list->items), cmp_items);
|
QSORT(list->items, list->nr, cmp_items);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct string_list_item *unsorted_string_list_lookup(struct string_list *list,
|
struct string_list_item *unsorted_string_list_lookup(struct string_list *list,
|
||||||
|
|||||||
@@ -18,10 +18,8 @@ static int compare_dir(const void *a_, const void *b_)
|
|||||||
static void dump(struct untracked_cache_dir *ucd, struct strbuf *base)
|
static void dump(struct untracked_cache_dir *ucd, struct strbuf *base)
|
||||||
{
|
{
|
||||||
int i, len;
|
int i, len;
|
||||||
qsort(ucd->untracked, ucd->untracked_nr, sizeof(*ucd->untracked),
|
QSORT(ucd->untracked, ucd->untracked_nr, compare_untracked);
|
||||||
compare_untracked);
|
QSORT(ucd->dirs, ucd->dirs_nr, compare_dir);
|
||||||
qsort(ucd->dirs, ucd->dirs_nr, sizeof(*ucd->dirs),
|
|
||||||
compare_dir);
|
|
||||||
len = base->len;
|
len = base->len;
|
||||||
strbuf_addf(base, "%s/", ucd->name);
|
strbuf_addf(base, "%s/", ucd->name);
|
||||||
printf("%s %s", base->buf,
|
printf("%s %s", base->buf,
|
||||||
|
|||||||
3
tree.c
3
tree.c
@@ -180,8 +180,7 @@ int read_tree(struct tree *tree, int stage, struct pathspec *match)
|
|||||||
* Sort the cache entry -- we need to nuke the cache tree, though.
|
* Sort the cache entry -- we need to nuke the cache tree, though.
|
||||||
*/
|
*/
|
||||||
cache_tree_free(&active_cache_tree);
|
cache_tree_free(&active_cache_tree);
|
||||||
qsort(active_cache, active_nr, sizeof(active_cache[0]),
|
QSORT(active_cache, active_nr, cmp_cache_name_compare);
|
||||||
cmp_cache_name_compare);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user