1
0
mirror of https://gittea.dev/nova/th.git synced 2026-01-30 16:50:10 -05:00

some fixes to copy pasting

This commit is contained in:
nova
2025-11-04 22:16:21 +01:00
parent 0970c43c37
commit 33d7761329

View File

@@ -773,13 +773,13 @@ void yank_file(unsigned long passes, int index){
yank_files.count = 1; yank_files.count = 1;
yank_files.list = (char**)malloc(yank_files.count * sizeof(char*)); yank_files.list = (char**)malloc(yank_files.count * sizeof(char*));
*yank_files.list = malloc(strlen(mid_content[selected_file_current].file_name)+1); *yank_files.list = malloc(strlen(mid_content[selected_file_current].file_name)+1);
memcpy(*yank_files.list, mid_content[selected_file_current].file_name, strlen(mid_content[selected_file_current].file_name)); memcpy(*yank_files.list, mid_content[selected_file_current].file_name, strlen(mid_content[selected_file_current].file_name)+1);
} else { } else {
yank_files.list = malloc(yank_files.count * sizeof(char*)); yank_files.list = malloc(yank_files.count * sizeof(char*));
for (i = 0; i < mid_file_count; i++) { for (i = 0; i < mid_file_count; i++) {
if (mid_content[i].status & FILE_STATUS_SELECTED) { if (mid_content[i].status & FILE_STATUS_SELECTED) {
*yank_files.list = malloc(strlen(mid_content[i].file_name)+1); *yank_files.list = malloc(strlen(mid_content[i].file_name)+1);
memcpy(*yank_files.list, mid_content[i].file_name, strlen(mid_content[i].file_name)); memcpy(*yank_files.list, mid_content[i].file_name, strlen(mid_content[i].file_name)+1);
yank_files.list += 1; yank_files.list += 1;
} }
} }
@@ -800,7 +800,7 @@ void paste(){
/*TODO(2025-08-14T22:10:44) escape path*/ /*TODO(2025-08-14T22:10:44) escape path*/
char *cmd; char *cmd;
if (yank_files.status & YANK_COPY) { if (yank_files.status & YANK_COPY) {
cmd = concat("false | cp -riv ", yank_files.path); cmd = concat("false | cp -ri ", yank_files.path);
} else { } else {
cmd = concat("mv ", yank_files.path); cmd = concat("mv ", yank_files.path);
} }
@@ -827,10 +827,13 @@ void paste(){
} else if ((strstr(line, "No such file or directory"))) { } else if ((strstr(line, "No such file or directory"))) {
pclose(cmd_open); pclose(cmd_open);
break; break;
} else if (pclose(cmd_open) == 0) { } else if ((strstr(line, "into itself"))) {
pclose(cmd_open);
break;
}
if (pclose(cmd_open) == 0) {
break; break;
} }
pclose(cmd_open);
} }
free(cmd); free(cmd);