execute n times macro on mcedit - faster version



Title: Messaggio
modify to execute n times a macro - faster version:
 
File: edit.c
       the changes are in bold:
 
 
static void edit_execute_macro (WEdit *edit, struct macro macro[], int n, long num);
 
<.....>
--------------------------------------------------------------------------------
 
void
edit_execute_cmd (WEdit *edit, int command, int char_for_insertion)
{
<....>

    /* CK_Pipe_Block */
    if ((command / 1000) == 1) /* a shell command */
         edit_block_process_cmd (edit, shell_cmd[command - 1000], 1);
   
    if (command > CK_Macro (0) && command <= CK_Last_Macro) { /* a macro command */
       struct macro m[MAX_MACRO_LENGTH];
     int nm;
 
 if (edit_load_macro_cmd (edit, m, &nm, command - 2000)) {
 
      /* inizio modifica per eseguire la macro tante volte */
      char *NRmacro;
      static long line = 0;    
      char *error;
      long NREmacro = 0;
      long l;
      char s[32];
 
      NRmacro = input_dialog (_(" Execute Macro "), _(" How many times: "), NREmacro ? s : "");
  
      if (!NRmacro) 
         goto finc;
      if (!*NRmacro) {
         g_free (NRmacro);
         goto finc;
      }

      l = strtol (NRmacro, &error, 0);
      if (*error) {
          g_free (NRmacro);
          goto finc;
      }
      NREmacro = l;
 
      edit_execute_macro (edit, m, nm, NREmacro);
     }
  }
finc:
 
 
<......>
--------------------------------------------------------------------------------
 
static void
edit_execute_macro (WEdit *edit, struct macro macro[], int n, long num)
{
    long j;
   /* int i = 0; */
 
    if (edit->macro_depth++ > 256) {
      edit_error_dialog (_("Error"), _("Macro recursion is too deep"));
      edit->macro_depth--;
      return;
    }
    edit->force |= REDRAW_PAGE;
 
    for (j = 1; j <= num; j++) {
        int i = 0;
         for (; i < n; i++) {
             edit_execute_cmd (edit, macro[i].command, macro[i].ch);
     }
    }
   
    edit_update_screen (edit);
    edit->macro_depth--;
}
 
 
 
Dario Benenati
Uno Sistemi s.r.l.
Via Giovanni Verga, 7
62010 Morrovalle Scalo (MC) - Italy
Tel. +39 0733 865264   Fax +39 0733 865791
 
 

 Nota confidenziale: il presente messaggio e/o eventuali allegati è rivolto unicamente all'attenzione del destinatario ed il contenuto potrebbe avere carattere riservato. Se il presente messaggio e/o eventuali allegati Le fosse pervenuto per errore Vorrà provvedere alla sua distruzione e Le saremmo grati se ce ne comunicasse via e-mail l'errata ricezione all'indirizzo info uno-sistemi it Il contenuto del presente messaggio e/o eventuali allegati non impegnano Uno Sistemi s.r.l. nei confronti del destinatario o di terzi. Uno Sistemi s.r.l. non si assume alcuna responsabilità per eventuali intercettazioni, modifiche o danneggiamenti del presente messaggio e-mail e/o eventuali allegati.

 
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]