=== README-BRANCH ===

This is unofficial Dillo 0.6.2 plus several patches. 
And also many available patches are applied to.

This is unofficial version of Dillo 0.6.2. I modified the dillo source
independently.  So don't ask about this release to Dillo team.

It works well and stable on my environment.


=== CHANGES ===

uo-branch-4

1. html.c:
	
	* hueristic recovery for html errors.
	* free leak of isocode conversion
	* <a name> bug fix

2. iconvjp.c 
    
        bug fix for JIS 2080-1976

uo-branch-3

1. gif.c: 

	Fix of array bounds read in a_Dicache_set_cmap. 
	num_colors was assumed only as 256 colors, actually but not.

2. filter.c:

	Fix of array bounds read and insufficient space allocation.

3. <br>:

	<br> forcely add linebreak as number of it. They are not folded.

4. jpeg.c:

	In order to avoid uninitialized memory read in libjpeg, DilloJpeg is zero-initialized.

5. Posting of TextArea data:

	Bug fix. When first character is '\n', it could not be converted to %0d%0a.

6. <A NAME="abc" HREF="href">

	<a> tag has both name and href cannot be parsed correctly.
	It is mistake of uo-branch-1#4
	And other pattern is fixed.

7. revise

	static void Html_process_word(DilloHtml *html, guchar *word, gint size) in html.c

8. recovery
	
	In Html_pop_tag, when <form> does not match </form>, recovery is performed.

uo-branch-2

1. Posting of TextArea data:

	When posting data of textarea, %0a should be changed to %0d%0a. 

2. Auth:

	Auth did not work well because of failing in patching.

3. Accept-Language Header:

	Add Accept-Language Header in query. 
	Specify acceptlanguage="ja,en" in .dillo/dillorc.

4. Change the special characters in URL encode:

	According to 2396, special characters should be like following.
	static const guchar *special = "-_.!~*'()"; (by TANANO Ryosei)

5. Location:
	If Location header is specified and the specified URL equals
to current page URL, the URL is reloaded with no-cache query forcely.

6. m17n: Multilingualization
	Fix of mistake on calculating token_start.

uo-branch-1

1. ANSI C:

	It lets me release this unofficial version. Because this patch
makes big difference between original 0.6.2 and this.

	On some platform, gcc is slower than other compilers and
several development tools cannot be applied to the objects generated
by gcc(?).  So I have to modify the sources to be compiled with ANSI C
compiler by removing gcc dependent notations.

2. Hash Cache:

	0.6.2 cache.c and dicache.c have serious problem with
reallocation of the cache table. Under strong stress, it might cause
crash.  I made small patch to fix the bug, but it was not enough.  I
noticed that fundamental revise was required.  So I tried to modify
the sources to fix the problem by changing cache management policy to
that of using hash table to keep cache and dicache on memory.

3. m17n: Multilingualization

	Now m17n is mostly supported, I believe.

	This is based on Robert Thomson's Japanese patch 8 and TANANO
Ryosei's patch.  Primely, this is only for Japanese. But with Charset
Selection patch, it supports not only Japanese but other charsets.

        This patch includes perfect intrinsic conversion functions of
Japanese at this point. Intrinsic conversion functions mechanism helps
the user defined conversion functions added in case of lacking of
iconv support.

	This patch uses famous algorithm to detect which Japanese code
automatically(but it looks not perfect).  And this uses guchar instead
of gchar in html.c. I think guchar(unsigned char) is preferred to
gchar to hold html data.  Displaying hankaku katakana is not
supported. But this patch supports to convert hankaku(half-width)
katakana to zenkaku(full-width) katakana. So we can get them now.

	In order to use Japanese autodetecting, 
	add default_charset=JISAUTO in .dillo/dillorc.

4. a name tag:

	Fix of forgetting pop tag in <a name>.

5. Superreload:

	It contains superreload functionality. It addes superreload
button to toolbar.  Superreload means to make request with nocache
pragma.

6. Charset Selection: 

	It is based on Grigory Bakunov's charset selection patch.
This works well with Japanese Patch.  I assumes that internal
multibytes code in dillo is EUC(Maybe EUC-JP or EUC-KR) or UTF-8.  On
these charset, when the most significant bit is on, it means
multibytes characters.  (I don't know Big5 in detail. )

	Html_mbchars_length() should use mblen instead of fix length.
Then, maybe UTF-8 locale would help you a lot.

7. ISO Entity:

	See Html_store_isocode in html.c.  According to curr_codeset,
Entity like &nbsp; should be stored. So this patch uses iconv from
isocode to current codeset.  And this keeps several isocodes in small
cache.

8. Pool:

	Using pool instead of malloc to save allocation time. See
pool.c.  Pool supports simple memory allocation.  If a lot of same
size objects are allocated, it works well.  It is not threadsafe.

9. UserAgent:

	Faking user-agent is available like useragent=Mozilla/4.0 in
.dillo/dillorc.

10. Form linebreak:

	After </FORM>, line break is added.

11. Generic Filter:

	  Adding generic filter mechanism has the user defined filter
program developed easily. I expect user defined language translation
handler would be based on this filter mechanism. Language translation
means not charset conversion but changing language with keeping
semantics, like English to Japanese, Chiniese to English.


=== OTHER PATCHES ===

I don't know whether they works well as expected.

   * a. Cookies: Lars Clausen's cookies patch for 0.6.3
   * b. Auth: Tor-eke Fransson's auth patch for 0.6.3
   * c. Https: Tor-eke Fransson's https patch for 0.6.3
   * d. Encodings: Grigory Bakunov's encodings patch for 0.6.3
   * e. Japanise: Robert Thomson's Japanise patch for 0.6.2


=== REQUIRED LIBRARIES ===

   * glib
   * gtk-1.2.0 above
   * libpng
   * libz
   * libjpeg
   * openssl

=== TODO ===

   * Content-Encoding header, gzip, zip
   * Accept-Languages header
   * If-Modified-Since header
   * DIV
   * Korean auto detect
   * <A HREF="/cgi-bin/bounce/http://host/to_be_download.tgz">
   * http://www.perl.com/cgi-bin/cpan_mod?module=URI -> unknown protocol

=== THANKS === 

Thanks to dillo team and all contributers.

I'd like to have stable and fast web browser on UNIX. 
Dillo matches my expectation. I like dillo's concurrent mechanism. This is fancy.
So I fixed several bugs to make dillo more stable. I think that
the most important point of this package is not several newer
functionality but stability. Let's use it.

=== WEBPAGE === 

   * [http://todo.org/cgi-bin/jp/tiki/tiki.cgi?p=Dillo Tiki:Dillo]
   * [http://todo.org/cgi-bin/en/tiki/tiki.cgi?p=Dillo TikiEn:Dillo]

=== MAIL === 

ksr@todo.org ksr@pop07.odn.ne.jp
