Ticket #2240: mc-4.7.0.9-copy-queue.patch

File mc-4.7.0.9-copy-queue.patch, 1.5 KB (added by danilo.schembri, 13 years ago)
  • mc-4.7.0.9/src/background.c

    old new  
    7575                                           char *info) 
    7676{ 
    7777    TaskList *new; 
     78    TaskList *p = task_list; /* Dany */ 
    7879 
    7980    new = g_new (TaskList, 1); 
    8081    new->pid   = pid; 
    8182    new->info  = info; 
    8283    new->state = Task_Running; 
     84 
     85/* Dany is "Danilo Schembri" <danilo.schembri@gmail.com> 
     86   Dany: copy/move queue handling - Begin */ 
     87    while (p){ 
     88        if (p->state == Task_Running){ 
     89            new->state = Task_Stopped; 
     90            kill (pid, SIGSTOP); 
     91            break; 
     92        } 
     93        p = p->next; 
     94    } 
     95/* Dany: file copy/move queue handling - End */ 
     96 
    8397    new->next  = task_list; 
    8498    new->fd    = fd; 
    8599    new->to_child_fd = to_child; 
     
    93107{ 
    94108    TaskList *p = task_list; 
    95109    TaskList *prev = 0; 
     110    TaskList *presume = 0; /* Dany: Remaining task list. */ 
    96111 
    97112    while (p){ 
    98113        if (p->pid == pid){ 
     
    102117                task_list = p->next; 
    103118            g_free (p->info); 
    104119            g_free (p); 
     120 
     121/* Dany: copy/move queue handling - Begin */ 
     122            if (prev && prev->state == Task_Stopped){ 
     123              prev->state = Task_Running; 
     124              kill (prev->pid, SIGCONT); 
     125            } else if (!prev || prev->state != Task_Running) 
     126                presume = task_list; // Dany: Save remaining task list. 
     127 
     128            while (presume){ 
     129                if (presume->state == Task_Stopped){ 
     130                    presume->state = Task_Running; 
     131                    kill (presume->pid, SIGCONT); 
     132                    break; 
     133                } 
     134                presume = presume->next; 
     135            } 
     136/* Dany: copy/move queue handling - End */ 
     137 
    105138            return p->fd; 
    106139        } 
    107140        prev = p;