Commit Graph

62 Commits

Author SHA1 Message Date
Rob Kendrick e7c5e16b9b Performance improvements: rather than calling content_clean() every poll, we now call it no more frequently than once every 5 seconds. Additionally, we cache the result of talloc_total_size() in content_clean() rather than calculating it twice. On large documents, this function took 25% of CPU time. This makes the fetching/rendering/scrolling/redrawing of large documents over twice as fast.
svn path=/trunk/netsurf/; revision=4527
2008-07-07 14:05:29 +00:00
John Mark Bell 23fb72ea6b The core code has always assumed a locale of "C".
Do not change the locale globally, else things will break in weird and 
wonderful ways.

Introduce utils/locale.[ch], which provide locale-specific wrappers for various 
functions (currently just the <ctype.h> ones).

Fix up the few places I can see that actually require that the underlying 
locale is paid attention to.

Some notes:

  1) The GTK frontend code has not been touched. It is possible that reading of 
     numeric values (e.g. from the preferences dialogue) may break with this 
     change, particularly in locales that use something other than '.' as their
     decimal separator.
  2) The search code is left unchanged (i.e. assuming a locale of "C"). 
     This may break case insensitive matching of non-ASCII characters. 
     I doubt that ever actually worked, anyway. In future, it should use
     Unicode case conversion to achieve the same effect.
  3) The text input handling in the core makes use of isspace() to detect
     word boundaries. This is fine for western languages (even in the C locale,
     which it's currently assuming). It will, however, break for CJK et. al. 
     (this has always been the case, rather than being a new issue)
  4) text-transform uses locale-specific variants of to{lower,upper}. In future
     this should probably be performing Unicode case conversion. This is the
     only part of the core code that makes use of locale information.

In future, if you require locale-specific behaviour, do the following:

  setlocale(LC_<whatever>, "");
  <your operation(s) here>
  setlocale(LC_<whatever>, "C");

  The first setlocale will change the current locale to the native environment.
  The second setlocale will reset the current locale to "C".
  Any value other than "" or "C" is probably a bug, unless there's a really
  good reason for it.

In the long term, it is expected that all locale-dependent code will reside in 
platform frontends -- the core being wholly locale agnostic (though assuming 
"C" for things like decimal separators).


svn path=/trunk/netsurf/; revision=4153
2008-05-13 14:37:44 +00:00
John Mark Bell 74a1095cd6 Remove unnecessary includes
svn path=/trunk/netsurf/; revision=4144
2008-05-11 10:09:44 +00:00
John Mark Bell ae3555ccdd Fixes for targetting NetBSD (Thanks to Adam Hoka)
svn path=/trunk/netsurf/; revision=3775
2008-01-26 16:44:17 +00:00
John Mark Bell 6eeeee1778 Ignore SIGPIPE on all platforms, not just RISC OS.
svn path=/trunk/netsurf/; revision=3638
2007-10-31 15:39:55 +00:00
Vincent Sanders 2f864eeecc Update all source code file headers to reflect GPL version 2 only and contain appropriate licence text
svn path=/trunk/netsurf/; revision=3486
2007-08-08 16:16:03 +00:00
Rob Kendrick 43257a160b Changes to allow building on Solaris.
* Tested on Solaris Express: Developer Edition,
          which is between Solaris 10 and 11.
        * Used gcc, libmng etc packages using pkg-get and blastwave's resources.
        * Had to build lemon and re2c manually.

svn path=/trunk/netsurf/; revision=3350
2007-06-15 22:07:11 +00:00
Daniel Silverstone 6807b4208a Remove the netsurf/ from the include paths and rationalise use of <> vs "" in includes
NetSurf includes are now done with ""s and other system includes with <>s as C intended.
The scandeps tool has been updated to only look for ""ed includes, and to verify that the
files exist in the tree before adding them to the dependency lines. The depend rule has
therefore been augmented to make sure the autogenerated files are built before it is run.

This is untested under self-hosted RISC OS builds. All else tested and works.


svn path=/trunk/netsurf/; revision=3307
2007-05-30 22:39:54 +00:00
Daniel Silverstone 25e22eb1f5 Add a -v option to enable debug logging. Pass -v by default to the RO runimage.
svn path=/trunk/netsurf/; revision=3306
2007-05-30 22:27:58 +00:00
James Bursa 73281a7add Log libxml2 version in lib_init().
svn path=/trunk/netsurf/; revision=3268
2007-05-06 06:11:00 +00:00
John Mark Bell 9e96993474 Revert r3156 (content cleaner frequency reduction) as it introduces
potential stability issues.

svn path=/trunk/netsurf/; revision=3160
2007-01-31 00:02:38 +00:00
John Mark Bell f3e6ad3e90 Attempt to perform content cleaning far less frequently.
svn path=/trunk/netsurf/; revision=3156
2007-01-30 00:44:53 +00:00
John Mark Bell 5b3f0755f6 Add URLdb destruction functionality
svn path=/trunk/netsurf/; revision=3115
2006-12-08 22:38:46 +00:00
Michael Drake ba23e4b693 Update project URL.
svn path=/trunk/netsurf/; revision=3073
2006-11-27 15:35:18 +00:00
Richard Wilson 74fa727509 Experimental new frames code.
svn path=/trunk/netsurf/; revision=2906
2006-09-02 15:52:41 +00:00
John Mark Bell a63221a624 Rewrite cookie parser to be more tolerant of junk input
No longer need urldb_init; remove it.

svn path=/trunk/netsurf/; revision=2643
2006-06-24 15:44:48 +00:00
John Mark Bell 4f249f9d0a Merge cookies changes into head - unvalidated transactions and a UI
still need implementing.

svn path=/trunk/netsurf/; revision=2632
2006-06-19 21:49:25 +00:00
John Mark Bell 46bc8ca154 [project @ 2005-07-11 18:10:10 by jmb]
Cache previous iconv conversion descriptor

svn path=/import/netsurf/; revision=1792
2005-07-11 18:10:10 +00:00
Richard Wilson 350247a0f2 [project @ 2005-02-07 23:00:09 by rjw]
Stop toolbar scrolling by 1px, make theme saving use leafnames, improve error handling

svn path=/import/netsurf/; revision=1499
2005-02-07 23:00:09 +00:00
Richard Wilson 12de122415 [project @ 2005-02-07 14:17:35 by rjw]
Stop crashes during buffered rendering freezing RISC OS

svn path=/import/netsurf/; revision=1494
2005-02-07 14:17:35 +00:00
John Mark Bell 5802723281 [project @ 2004-09-27 05:21:00 by jmb]
Improve !Boot file and support protocol fallback positions.

svn path=/import/netsurf/; revision=1287
2004-09-27 05:21:00 +00:00
John Tytgat 6b46a8d916 [project @ 2004-08-26 22:59:02 by joty]
die() doesn't need extra ().

svn path=/import/netsurf/; revision=1252
2004-08-26 22:59:02 +00:00
James Bursa 54d25de371 [project @ 2004-07-30 16:16:07 by bursa]
Implement content_quit() and ro_gui_window_quit() to free resources on quit.

svn path=/import/netsurf/; revision=1164
2004-07-30 16:16:07 +00:00
James Bursa 0f7e16c04f [project @ 2004-07-28 23:07:52 by bursa]
Implement gui_init2() and move RISC OS-specific code in main() to it. Use intro page if option_homepage_url is "".

svn path=/import/netsurf/; revision=1158
2004-07-28 23:07:52 +00:00
James Bursa b65c4d4102 [project @ 2004-07-28 22:38:17 by bursa]
Renamed curl_memdebug() to memdebug_memdebug().

svn path=/import/netsurf/; revision=1157
2004-07-28 22:38:17 +00:00
Andrew Timmins b59616c9ab [project @ 2004-07-26 20:13:45 by atimmins]
Updated to support new config options (homepage, open on startup).  Bug fixes with new config pane window (sticky selected radio icon bug!).  Also includes up-to-date French templates.

svn path=/import/netsurf/; revision=1150
2004-07-26 20:13:45 +00:00
John Mark Bell c4b561e841 [project @ 2004-07-18 22:57:22 by jmb]
Remove unnecessary declaration of external function.

svn path=/import/netsurf/; revision=1100
2004-07-18 22:57:22 +00:00
Andrew Timmins 86f60c4c0a [project @ 2004-07-18 22:21:32 by atimmins]
svn path=/import/netsurf/; revision=1097
2004-07-18 22:21:32 +00:00
Richard Wilson 962b3dd828 [project @ 2004-07-09 17:03:34 by rjw]
Tidier hotlist code. URL normalisation. Redraw uses Tinct.

svn path=/import/netsurf/; revision=1063
2004-07-09 17:03:35 +00:00
John Tytgat a0d511734a [project @ 2004-07-05 20:19:51 by joty]
Using UTF-8 instead of Latin1 encoding.

svn path=/import/netsurf/; revision=1049
2004-07-05 20:19:52 +00:00
James Bursa b4723c1d05 [project @ 2004-06-21 15:09:58 by bursa]
Merge memory cache into content module.

svn path=/import/netsurf/; revision=986
2004-06-21 15:09:59 +00:00
James Bursa 839ae69953 [project @ 2004-06-15 18:59:54 by bursa]
Log version on startup.

svn path=/import/netsurf/; revision=972
2004-06-15 18:59:54 +00:00
John Mark Bell bd6ec25190 [project @ 2004-06-10 22:39:56 by jmb]
Compiler warning purge

svn path=/import/netsurf/; revision=954
2004-06-10 22:39:56 +00:00
James Bursa 08177fa581 [project @ 2004-06-10 20:41:26 by bursa]
Add global content list. Better error handling in content code. Improved code documentation. Remove some obsolete functions. Implement debug window listing contents.

svn path=/import/netsurf/; revision=951
2004-06-10 20:41:26 +00:00
John Tytgat 9dde0f406f [project @ 2004-06-06 11:47:23 by joty]
Log in stderr on which machine NetSurf was running.

svn path=/import/netsurf/; revision=930
2004-06-06 11:47:23 +00:00
John Mark Bell e42361b684 [project @ 2004-05-02 17:38:29 by jmb]
Move save_complete_init() call to gui_init()

svn path=/import/netsurf/; revision=818
2004-05-02 17:38:29 +00:00
John Mark Bell 8cb321ec78 [project @ 2004-05-02 00:21:40 by jmb]
Minimal fixes to allow compilation with Norcroft

svn path=/import/netsurf/; revision=813
2004-05-02 00:21:41 +00:00
James Bursa 16423f30fc [project @ 2004-03-27 18:46:22 by bursa]
Call save_complete_init().

svn path=/import/netsurf/; revision=678
2004-03-27 18:46:22 +00:00
James Bursa edbc58e53a [project @ 2004-03-23 22:51:45 by bursa]
Remove unused nsjpeg_init().

svn path=/import/netsurf/; revision=657
2004-03-23 22:51:45 +00:00
James Bursa 7f534336b0 [project @ 2004-03-14 22:50:28 by bursa]
Add setlocale() call in init for better toupper etc. for text-transform.

svn path=/import/netsurf/; revision=622
2004-03-14 22:50:28 +00:00
James Bursa 5a7d38ea9f [project @ 2004-03-13 13:03:01 by bursa]
Disable clean_cookiejar() due to reliability problems.

svn path=/import/netsurf/; revision=612
2004-03-13 13:03:01 +00:00
James Bursa 1c85bf0429 [project @ 2004-03-02 18:02:17 by bursa]
Add new url functions and modify to use them.

svn path=/import/netsurf/; revision=578
2004-03-02 18:02:41 +00:00
James Bursa 1319ff78c8 [project @ 2004-02-13 16:09:12 by bursa]
Clean up and rewrite options code.

svn path=/import/netsurf/; revision=536
2004-02-13 16:09:12 +00:00
John Mark Bell 986b650983 [project @ 2004-01-25 20:13:51 by jmb]
Add jpeglib 6b based rendering. Attempts to use the OS routines first as
they're faster.

svn path=/import/netsurf/; revision=503
2004-01-25 20:13:51 +00:00
John Mark Bell 62245d13ec [project @ 2004-01-05 02:10:59 by jmb]
Add ability to turn off browser features in build.
This may be useful when hunting down bugs.

svn path=/import/netsurf/; revision=480
2004-01-05 02:10:59 +00:00
John Mark Bell b0b2ec850f [project @ 2003-12-28 02:35:46 by jmb]
Remove expired cookies from the cookiejar.
Cookies are removed every time a window is closed and when NetSurf is
quit.
/me slaps libcurl for not doing it itself.

Make cookie_create() read the cookie jar location from the messages file.

svn path=/import/netsurf/; revision=463
2003-12-28 02:35:46 +00:00
John Mark Bell 7e7b70e171 [project @ 2003-12-28 01:00:58 by jmb]
Fixup missing #include

svn path=/import/netsurf/; revision=462
2003-12-28 01:00:58 +00:00
James Bursa ce0d5294d5 [project @ 2003-12-27 20:15:22 by bursa]
Use charset from Content-Type header.

svn path=/import/netsurf/; revision=460
2003-12-27 20:15:23 +00:00
James Bursa b055948973 [project @ 2003-11-07 23:51:13 by bursa]
Split out window.c, implement DataOpen and tidy up gui code.

svn path=/import/netsurf/; revision=408
2003-11-07 23:51:13 +00:00
James Bursa b212e59a20 [project @ 2003-11-06 19:41:41 by bursa]
Mask null polls and use PollIdle when appropriate.

svn path=/import/netsurf/; revision=406
2003-11-06 19:41:41 +00:00