diff -rc make-3.80-orig/job.c make-3.80/job.c *** make-3.80-orig/job.c 2002-08-10 03:27:17.000000000 +0200 --- make-3.80/job.c 2004-04-02 17:38:04.000000000 +0200 *************** *** 987,993 **** appear. */ message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag)) ! ? "%s" : (char *) 0, p); /* Tell update_goal_chain that a command has been started on behalf of this target. It is important that this happens here and not in --- 987,993 ---- appear. */ message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag)) ! ? "\e[3s\e[a%s\e[b" : (char *) 0, p); /* Tell update_goal_chain that a command has been started on behalf of this target. It is important that this happens here and not in diff -rc make-3.80-orig/main.c make-3.80/main.c *** make-3.80-orig/main.c 2002-08-10 03:27:17.000000000 +0200 --- make-3.80/main.c 2004-04-02 17:42:50.000000000 +0200 *************** *** 254,259 **** --- 254,263 ---- they appear out of date or not. */ int always_make_flag = 0; + + int logNestingStdout = 0; + int logNestingStderr = 0; + /* The usage output. We write it this way to make life easier for the translators, especially those trying to translate to right-to-left *************** *** 827,832 **** --- 831,845 ---- } + static void closeNesting() + { + while (logNestingStdout--) + printf("\e[q"); + while (logNestingStderr--) + fprintf(stderr, "\e[q"); + } + + #ifndef _AMIGA int main (argc, argv, envp) *************** *** 854,859 **** --- 867,874 ---- no_default_sh_exe = 1; #endif + atexit(closeNesting); + default_goal_file = 0; reading_file = 0; *************** *** 2782,2787 **** --- 2797,2808 ---- /* Use entire sentences to give the translators a fighting chance. */ + if (entering) + { + printf("\e[p"); + logNestingStdout++; + } + if (makelevel == 0) if (starting_directory == 0) if (entering) *************** *** 2810,2813 **** --- 2831,2840 ---- else printf (_("%s[%u]: Leaving directory `%s'\n"), program, makelevel, starting_directory); + + if (!entering) + { + printf("\e[q"); + logNestingStdout--; + } } diff -rc make-3.80-orig/make.h make-3.80/make.h *** make-3.80-orig/make.h 2002-09-11 18:55:44.000000000 +0200 --- make-3.80/make.h 2004-04-02 17:42:15.000000000 +0200 *************** *** 559,562 **** --- 559,567 ---- extern int atomic_stat PARAMS ((const char *file, struct stat *buf)); extern struct dirent *atomic_readdir PARAMS ((DIR *dir)); + #endif + + + extern int logNestingStdout; + extern int logNestingStderr; diff -rc make-3.80-orig/remake.c make-3.80/remake.c *** make-3.80-orig/remake.c 2002-08-08 02:11:19.000000000 +0200 --- make-3.80/remake.c 2004-04-02 17:43:00.000000000 +0200 *************** *** 1049,1055 **** --- 1049,1059 ---- /* The normal case: start some commands. */ if (!touch_flag || file->cmds->any_recurse) { + fprintf(stderr, "\e[pbuilding %s", file->name); + logNestingStderr++; execute_file_commands (file); + fprintf(stderr, "\e[q"); + logNestingStderr--; return; }