156
return ret;
157
}
158
159
+static void remove_empty_src_dirs(const char **src_dir, size_t src_dir_nr)
160
+{
161
+ size_t i;
162
+ struct strbuf a_src_dir = STRBUF_INIT;
163
+
164
+ for (i = 0; i < src_dir_nr; i++) {
165
+ int dummy;
166
+ strbuf_addstr(&a_src_dir, src_dir[i]);
167
+ /*
168
+ * if entries under a_src_dir are all moved away,
169
+ * recursively remove a_src_dir to cleanup
170
+ */
171
+ if (index_range_of_same_dir(a_src_dir.buf, a_src_dir.len,
172
+ &dummy, &dummy) < 1) {
173
+ remove_dir_recursively(&a_src_dir, 0);
174
+ }
175
+ strbuf_reset(&a_src_dir);
176
+ }
177
+
178
+ strbuf_release(&a_src_dir);
179
+}
180
+
181
int cmd_mv(int argc, const char **argv, const char *prefix)
182
{
183
int i, flags, gitmodules_modified = 0;
199
char *dst_w_slash = NULL;
200
const char **src_dir = NULL;
201
int src_dir_nr = 0, src_dir_alloc = 0;
180
- struct strbuf a_src_dir = STRBUF_INIT;
202
enum update_mode *modes, dst_mode = 0;
203
struct stat st, dest_st;
204
struct string_list src_for_dst = STRING_LIST_INIT_DUP;
559
}
560
}
561
541
- /*
542
- * cleanup the empty src_dirs
543
- */
544
- for (i = 0; i < src_dir_nr; i++) {
545
- int dummy;
546
- strbuf_addstr(&a_src_dir, src_dir[i]);
547
- /*
548
- * if entries under a_src_dir are all moved away,
549
- * recursively remove a_src_dir to cleanup
550
- */
551
- if (index_range_of_same_dir(a_src_dir.buf, a_src_dir.len,
552
- &dummy, &dummy) < 1) {
553
- remove_dir_recursively(&a_src_dir, 0);
554
- }
555
- strbuf_reset(&a_src_dir);
556
- }
557
-
558
- strbuf_release(&a_src_dir);
562
+ remove_empty_src_dirs(src_dir, src_dir_nr);
563
564
if (dirty_paths.nr)
565
advise_on_moving_dirty_path(&dirty_paths);