execute n times macro on mcedit - faster version
- From: "Dario Benenati - Uno Sistemi s.r.l." <sviluppo2 uno-sistemi it>
- To: <mc-devel gnome org>
- Subject: execute n times macro on mcedit - faster version
- Date: Fri, 18 Jul 2008 12:01:45 +0200
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]