Mercurial > hg > xemacs-beta
annotate lib-src/profile.c @ 5636:07256dcc0c8b
Add missing foreback specifier values to the GUI Element face.
They were missing for an unexplicable reason in my initial patch, leading to
nil color instances in the whole hierarchy of widget faces.
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2012-01-03 Didier Verna <didier@xemacs.org>
* faces.c (complex_vars_of_faces): Add missing foreback specifier
values to the GUI Element face.
author | Didier Verna <didier@lrde.epita.fr> |
---|---|
date | Tue, 03 Jan 2012 11:25:06 +0100 |
parents | b9167d522a9a |
children |
rev | line source |
---|---|
428 | 1 /* profile.c --- generate periodic events for profiling of Emacs Lisp code. |
2 Copyright (C) 1992, 1994 Free Software Foundation, Inc. | |
2367 | 3 Copyright (C) 2004 Ben Wing. |
428 | 4 |
5 Author: Boaz Ben-Zvi <boaz@lcs.mit.edu> | |
6 | |
5406
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
7 This file is part of XEmacs. |
428 | 8 |
5406
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
9 XEmacs is free software: you can redistribute it and/or modify it |
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
10 under the terms of the GNU General Public License as published by the |
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
11 Free Software Foundation, either version 3 of the License, or (at your |
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
12 option) any later version. |
428 | 13 |
5406
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
14 XEmacs is distributed in the hope that it will be useful, but WITHOUT |
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
17 for more details. |
428 | 18 |
5406
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
19 You should have received a copy of the GNU General Public License |
061f4f90f874
Convert lib-src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
2367
diff
changeset
|
20 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
428 | 21 |
22 /* Synched up with: FSF 19.28. */ | |
23 /* #### Not sure if this is needed for XEmacs. */ | |
24 | |
25 /** | |
26 ** To be run as an emacs process. Input string that starts with: | |
27 ** 'z' -- resets the watch (to zero). | |
28 ** 'p' -- return time (on stdout) as string with format <sec>.<micro-sec> | |
29 ** 'q' -- exit. | |
30 ** | |
31 ** abstraction : a stopwatch | |
32 ** operations: reset_watch, get_time | |
33 */ | |
438 | 34 #include <config.h> |
428 | 35 #include <stdio.h> |
36 #include <stdlib.h> | |
37 #include "../src/systime.h" | |
38 | |
39 static struct timeval TV1, TV2; | |
40 static int watch_not_started = 1; /* flag */ | |
41 static char time_string[30]; | |
42 | |
442 | 43 #ifdef WIN32_NATIVE |
428 | 44 #include <sys/timeb.h> |
45 /* Emulate gettimeofday (Ulrich Leodolter, 1/11/95). */ | |
46 void | |
47 gettimeofday (struct timeval *tv, struct timezone *tz) | |
48 { | |
49 struct _timeb tb; | |
50 _ftime (&tb); | |
51 | |
52 tv->tv_sec = tb.time; | |
53 tv->tv_usec = tb.millitm * 1000L; | |
54 if (tz) | |
55 { | |
56 tz->tz_minuteswest = tb.timezone; /* minutes west of Greenwich */ | |
57 tz->tz_dsttime = tb.dstflag; /* type of dst correction */ | |
58 } | |
59 } | |
60 #endif | |
61 | |
62 /* Reset the stopwatch to zero. */ | |
63 | |
64 static void | |
65 reset_watch (void) | |
66 { | |
67 EMACS_GET_TIME (TV1); | |
68 watch_not_started = 0; | |
69 } | |
70 | |
71 /* This call returns the time since the last reset_watch call. The time | |
72 is returned as a string with the format <seconds>.<micro-seconds> | |
73 If reset_watch was not called yet, exit. */ | |
74 | |
75 static char * | |
76 get_time (void) | |
77 { | |
78 if (watch_not_started) | |
79 exit (1); /* call reset_watch first ! */ | |
80 EMACS_GET_TIME (TV2); | |
81 if (TV1.tv_usec > TV2.tv_usec) | |
82 { | |
83 TV2.tv_usec += 1000000; | |
84 TV2.tv_sec--; | |
85 } | |
86 sprintf (time_string, "%lu.%06lu", | |
87 (unsigned long) TV2.tv_sec - TV1.tv_sec, | |
88 (unsigned long) TV2.tv_usec - TV1.tv_usec); | |
89 return time_string; | |
90 } | |
91 | |
92 int | |
2367 | 93 main (int argc, char **argv) |
428 | 94 { |
95 int c; | |
96 while ((c = getchar ()) != EOF) | |
97 { | |
98 switch (c) | |
99 { | |
100 case 'z': | |
101 reset_watch (); | |
102 break; | |
103 case 'p': | |
104 puts (get_time ()); | |
105 break; | |
106 case 'q': | |
107 exit (0); | |
108 } | |
109 /* Anything remaining on the line is ignored. */ | |
110 while (c != '\n' && c != EOF) | |
111 c = getchar (); | |
112 } | |
113 return 1; | |
114 } |