125 lines
3.3 KiB
Diff
125 lines
3.3 KiB
Diff
diff -rc job.c job.c
|
|
*** job.c 2006-03-20 04:03:04.000000000 +0100
|
|
--- job.c 2009-01-19 19:37:28.000000000 +0100
|
|
***************
|
|
*** 1083,1089 ****
|
|
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
|
|
--- 1083,1089 ----
|
|
appear. */
|
|
|
|
message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
|
|
! ? (enable_nested_output ? "\e[3s\e[a%s\e[b" : "%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
|
|
diff -rc main.c main.c
|
|
*** main.c 2006-03-20 03:36:37.000000000 +0100
|
|
--- main.c 2009-01-19 19:41:41.000000000 +0100
|
|
***************
|
|
*** 886,891 ****
|
|
--- 886,900 ----
|
|
}
|
|
|
|
|
|
+ static void close_nesting()
|
|
+ {
|
|
+ while (stdout_nesting_level--)
|
|
+ printf("\e[q");
|
|
+ while (stderr_nesting_level--)
|
|
+ fprintf(stderr, "\e[q");
|
|
+ }
|
|
+
|
|
+
|
|
#ifdef _AMIGA
|
|
int
|
|
main (int argc, char **argv)
|
|
***************
|
|
*** 931,936 ****
|
|
--- 940,950 ----
|
|
atexit (close_stdout);
|
|
#endif
|
|
|
|
+ atexit(close_nesting);
|
|
+
|
|
+ if (getenv("NIX_INDENT_MAKE"))
|
|
+ enable_nested_output = 1;
|
|
+
|
|
/* Needed for OS/2 */
|
|
initialize_main(&argc, &argv);
|
|
|
|
***************
|
|
*** 3095,3100 ****
|
|
--- 3109,3120 ----
|
|
|
|
/* Use entire sentences to give the translators a fighting chance. */
|
|
|
|
+ if (entering && enable_nested_output)
|
|
+ {
|
|
+ printf("\e[p");
|
|
+ stdout_nesting_level++;
|
|
+ }
|
|
+
|
|
if (makelevel == 0)
|
|
if (starting_directory == 0)
|
|
if (entering)
|
|
***************
|
|
*** 3124,3129 ****
|
|
--- 3144,3159 ----
|
|
printf (_("%s[%u]: Leaving directory `%s'\n"),
|
|
program, makelevel, starting_directory);
|
|
|
|
+ if (!entering && enable_nested_output)
|
|
+ {
|
|
+ printf("\e[q");
|
|
+ stdout_nesting_level--;
|
|
+ }
|
|
+
|
|
/* Flush stdout to be sure this comes before any stderr output. */
|
|
fflush (stdout);
|
|
}
|
|
+
|
|
+ int enable_nested_output = 0;
|
|
+ int stdout_nesting_level = 0;
|
|
+ int stderr_nesting_level = 0;
|
|
diff -rc make.h
|
|
*** make.h 2006-02-16 00:54:43.000000000 +0100
|
|
--- make.h 2009-01-19 19:32:03.000000000 +0100
|
|
***************
|
|
*** 609,611 ****
|
|
--- 609,614 ----
|
|
#define ENULLLOOP(_v,_c) do{ errno = 0; \
|
|
while (((_v)=_c)==0 && errno==EINTR); }while(0)
|
|
|
|
+ extern int enable_nested_output;
|
|
+ extern int stdout_nesting_level;
|
|
+ extern int stderr_nesting_level;
|
|
diff -rc reremake.c
|
|
*** remake.c 2006-03-20 03:36:37.000000000 +0100
|
|
--- remake.c 2009-01-19 19:39:40.000000000 +0100
|
|
***************
|
|
*** 1120,1126 ****
|
|
--- 1120,1137 ----
|
|
/* The normal case: start some commands. */
|
|
if (!touch_flag || file->cmds->any_recurse)
|
|
{
|
|
+ if (enable_nested_output)
|
|
+ {
|
|
+ log_working_directory (1);
|
|
+ fprintf(stderr, "\e[pbuilding %s\n", file->name);
|
|
+ stderr_nesting_level++;
|
|
+ }
|
|
execute_file_commands (file);
|
|
+ if (enable_nested_output)
|
|
+ {
|
|
+ fprintf(stderr, "\e[q");
|
|
+ stderr_nesting_level--;
|
|
+ }
|
|
return;
|
|
}
|
|
|