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 [EMAIL
PROTECTED] 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.
_______________________________________________
Mc-devel mailing list
http://mail.gnome.org/mailman/listinfo/mc-devel