diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2010-10-17 00:08:35 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2010-10-17 00:08:35 +0000 |
commit | 07c62407e2d251e3906d45684d15dafbc16f29f7 (patch) | |
tree | 93039a2119433e5880f8e4a0b0518edf90fbbd06 /utils | |
parent | c052d534e7d9485c4ce534f4286c56154ad7f247 (diff) | |
download | netsurf-07c62407e2d251e3906d45684d15dafbc16f29f7.tar.gz netsurf-07c62407e2d251e3906d45684d15dafbc16f29f7.tar.bz2 |
Fix windows url bar
Clean up toolbar and urlbar creation and subclassing
svn path=/trunk/netsurf/; revision=10891
Diffstat (limited to 'utils')
-rw-r--r-- | utils/log.c | 47 | ||||
-rw-r--r-- | utils/log.h | 11 | ||||
-rw-r--r-- | utils/utils.c | 28 | ||||
-rw-r--r-- | utils/utils.h | 2 |
4 files changed, 78 insertions, 10 deletions
diff --git a/utils/log.c b/utils/log.c new file mode 100644 index 000000000..0e3d69e3b --- /dev/null +++ b/utils/log.c @@ -0,0 +1,47 @@ +/* + * Copyright 2007 Rob Kendrick <rjek@netsurf-browser.org> + * Copyright 2004-2007 James Bursa <bursa@users.sourceforge.net> + * Copyright 2003 Phil Mellor <monkeyson@users.sourceforge.net> + * Copyright 2003 John M Bell <jmb202@ecs.soton.ac.uk> + * Copyright 2004 John Tytgat <joty@netsurf-browser.org> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <stdio.h> +#include <sys/time.h> +#include "desktop/netsurf.h" + +#include "utils/utils.h" +#include "utils/log.h" + +static struct timeval start_tv; +static char buff[32]; + +const char *nslog_gettime(void) +{ + struct timeval tv; + struct timeval now_tv; + + if (!timerisset(&start_tv)) { + gettimeofday(&start_tv, NULL); + } + gettimeofday(&now_tv, NULL); + + timeval_subtract(&tv, &now_tv, &start_tv); + + snprintf(buff, sizeof(buff),"(%ld.%ld)", tv.tv_sec, tv.tv_usec); + return buff; +} diff --git a/utils/log.h b/utils/log.h index cfee359f4..b676c65bf 100644 --- a/utils/log.h +++ b/utils/log.h @@ -21,22 +21,13 @@ #define _NETSURF_LOG_H_ #include <stdio.h> -#include <sys/time.h> #include "desktop/netsurf.h" #ifdef NDEBUG # define LOG(x) ((void) 0) #else -static inline const char *nslog_gettime(void) -{ - static char buff[32]; - static struct timeval tv; - - gettimeofday(&tv, NULL); - snprintf(buff, sizeof(buff),"(%ld.%ld)", tv.tv_sec, tv.tv_usec); - return buff; -} +extern const char *nslog_gettime(void); # ifdef __GNUC__ # define LOG(x) do { if (verbose_log) (printf("%s " __FILE__ " %s %i: ", nslog_gettime(), __PRETTY_FUNCTION__, __LINE__), printf x, fputc('\n', stdout)); } while (0) diff --git a/utils/utils.c b/utils/utils.c index c82bc2c74..9561521cb 100644 --- a/utils/utils.c +++ b/utils/utils.c @@ -283,6 +283,34 @@ unsigned int wallclock(void) return ((tv.tv_sec * 100) + (tv.tv_usec / 10000)); } +/* Subtract the `struct timeval' values X and Y, + storing the result in RESULT. + Return 1 if the difference is negative, otherwise 0. +*/ + +int timeval_subtract(struct timeval *result, struct timeval *x, struct timeval *y) +{ + /* Perform the carry for the later subtraction by updating y. */ + if (x->tv_usec < y->tv_usec) { + int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; + y->tv_usec -= 1000000 * nsec; + y->tv_sec += nsec; + } + if (x->tv_usec - y->tv_usec > 1000000) { + int nsec = (x->tv_usec - y->tv_usec) / 1000000; + y->tv_usec += 1000000 * nsec; + y->tv_sec -= nsec; + } + + /* Compute the time remaining to wait. + tv_usec is certainly positive. */ + result->tv_sec = x->tv_sec - y->tv_sec; + result->tv_usec = x->tv_usec - y->tv_usec; + + /* Return 1 if result is negative. */ + return x->tv_sec < y->tv_sec; +} + #ifndef HAVE_STRCASESTR /** diff --git a/utils/utils.h b/utils/utils.h index b33fde8c4..f1c193bac 100644 --- a/utils/utils.h +++ b/utils/utils.h @@ -25,6 +25,7 @@ #include <stddef.h> #include <stdlib.h> #include <sys/types.h> +#include <sys/time.h> #include <regex.h> #include <assert.h> @@ -105,6 +106,7 @@ void unicode_transliterate(unsigned int c, char **r); char *human_friendly_bytesize(unsigned long bytesize); const char *rfc1123_date(time_t t); unsigned int wallclock(void); +int timeval_subtract(struct timeval *result, struct timeval *x, struct timeval *y); /** * Return a hex digit for the given numerical value. |