summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2010-10-17 00:08:35 +0000
committerVincent Sanders <vince@netsurf-browser.org>2010-10-17 00:08:35 +0000
commit07c62407e2d251e3906d45684d15dafbc16f29f7 (patch)
tree93039a2119433e5880f8e4a0b0518edf90fbbd06 /utils
parentc052d534e7d9485c4ce534f4286c56154ad7f247 (diff)
downloadnetsurf-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.c47
-rw-r--r--utils/log.h11
-rw-r--r--utils/utils.c28
-rw-r--r--utils/utils.h2
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.