summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers/gnumake-3.80/log.patch
blob: fa90acfe8de532f1eb073fa8892fbb0786adc42e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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-04 23:10:19.000000000 +0200
***************
*** 1049,1055 ****
--- 1049,1059 ----
        /* The normal case: start some commands.  */
        if (!touch_flag || file->cmds->any_recurse)
  	{
+           fprintf(stderr, "\e[pbuilding %s\n", file->name);
+           logNestingStderr++;
  	  execute_file_commands (file);
+           fprintf(stderr, "\e[q");
+           logNestingStderr--;
  	  return;
  	}