<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>ebin/.empty</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -293,4 +293,11 @@ find_cookie_val3([H|T], Ack) -&gt;
 
 
 
+url_decode([$%, Hi, Lo | Tail]) -&gt;
+    Hex = yaws:hex_to_integer([Hi, Lo]),
+    [Hex | url_decode(Tail)];
+url_decode([H|T]) -&gt;
+    [H |url_decode(T)];
+url_decode([]) -&gt;
+    [].
 </diff>
      <filename>src/yaws_api.erl</filename>
    </modified>
    <modified>
      <diff>@@ -72,8 +72,10 @@ exists(F) -&gt;
 
 
 validate_cs(GC, Cs) -&gt;
+    ?Debug(&quot;Cs ~p~n&quot;, [Cs]),
     L = lists:map(fun(SC) -&gt; {{SC#sconf.listen, SC#sconf.port}, SC} end,Cs),
     L2 = lists:map(fun(X) -&gt; element(2, X) end, lists:sort(L)),
+    ?Debug(&quot;L2 ~p~n&quot;, [L2]),
     L3 = arrange(L2, start, [], []),
     ?Debug(&quot;Arrange: ~p&quot;, [L3]),
     case validate_groups(L3) of
@@ -127,14 +129,14 @@ arrange([C|Tail], start, [], B) -&gt;
 arrange([], _, [], B) -&gt;
     B;
 arrange([], _, A, B) -&gt;
-    [A|B];
+    [A | B];
 arrange([C1|Tail], {in, C0}, A, B) -&gt;
     if
 	C1#sconf.listen == C0#sconf.listen,
 	C1#sconf.port == C0#sconf.port -&gt;
 	    arrange(Tail, {in, C0}, [C1|A], B);
 	true -&gt;
-	    arrange(Tail, {in, C1}, [], [A|B])
+	    arrange(Tail, {in, C1}, [C1], [A|B])
     end.
 
 
@@ -145,7 +147,7 @@ make_default_gconf() -&gt;
 	   ebin_dir = [filename:join([Y, &quot;examples/ebin&quot;])],
 	   include_dir = [filename:join([Y, &quot;examples/include&quot;])],
 	   logdir = &quot;.&quot;,
-	   yaws = &quot;Yaws 0.2&quot;}.
+	   yaws = &quot;Yaws &quot; ++ yaws_vsn:version()}.
 
 
 make_default_sconf() -&gt;</diff>
      <filename>src/yaws_config.erl</filename>
    </modified>
    <modified>
      <diff>@@ -61,10 +61,6 @@ list_head() -&gt;
     &quot;&lt;hr&gt; \n&quot;.
 
 
-% produce a string like
-%     &lt;img SRC=&quot;/icons/layout.gif&quot; ALT=&quot;[   ]&quot;&gt; &lt;a HREF=&quot;iSD_SSL_3.0.1_beta1_Application_Guide_011206.pdf&quot;&gt;iSD_SSL_3.0.1_beta1_..&amp;gt;&lt;/a&gt; 17-Dec-2001 19:06   1.3M  
-
-
 file_entry({ok, FI}, DirName, Name) -&gt;
     ?Debug(&quot;file_entry(~p) &quot;, [Name]),
     Ext = filename:extension(Name),</diff>
      <filename>src/yaws_ls.erl</filename>
    </modified>
    <modified>
      <diff>@@ -1571,6 +1571,24 @@ ret_reg_split(DR, Comps, RevFile, Query) -&gt;
 		     mime=Mime, q=Query};
 	{ok, FI} when FI#file_info.type == directory -&gt;
 	    maybe_return_dir(DR, lists:flatten(Dir) ++ File);
+	{error, enoent} -&gt;
+	    %% kind of hackish, defer url decode 
+	    Dir2 = lists:flatmap(fun(X) -&gt; yaws_api:url_decode(X) end, Dir),
+	    File2 = yaws_api:url_decode(File),
+	    L2 = [DR, Dir2, File2],
+	    case prim_file:read_file_info(L) of
+		{ok, FI} when  FI#file_info.type == regular -&gt;
+		    {X, Mime} = suffix_type(RevFile),
+		    #urltype{type=X, 
+			     finfo=FI,
+			     dir = Dir2,
+			     fullpath = lists:flatten(L2),
+			     mime=Mime, q=Query};
+		{ok, FI} when FI#file_info.type == directory -&gt;
+		    maybe_return_dir(DR, lists:flatten(Dir2) ++ File2);
+		Err -&gt;
+		    #urltype{type=error, data=Err}
+	    end;
 	Err -&gt;
 	    #urltype{type=error, data=Err}
     end.</diff>
      <filename>src/yaws_server.erl</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-YAWS_VSN=0.42
+YAWS_VSN=0.43</diff>
      <filename>vsn.mk</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,9 @@ out(A) -&gt;
 &lt;table border=&quot;2&quot;&gt;
 
 
+&lt;tr&gt;&lt;td&gt; Jun 10, use prim_file instead of file: calls, fix a bug
+with iso 8859 chars in urls, virthost bug &lt;/td&gt;&lt;/tr&gt;
+
 &lt;tr&gt;&lt;td&gt; May 26, added SSL support  0.40 &lt;/td&gt; &lt;/tr&gt;
 
  &lt;tr&gt;&lt;td&gt; Mar 29, fixed a bug in the log wrapping which restarted the server&lt;/td&gt;&lt;/tr&gt;</diff>
      <filename>www/history.yaws</filename>
    </modified>
    <modified>
      <diff>@@ -39,52 +39,8 @@ out(A) -&gt;
    {ok,L}.
 &lt;/erl&gt;
 
-&lt;p&gt;Above, we got all the &lt;tt&gt;Value&lt;/tt&gt; arguments as strings, however
-it is also possible to let the parser coerce data types of the posted data.
-
-&lt;p&gt;In this specific case we know the expected type of the arguments posted from
-the form. If &lt;a href=&quot;form.yaws&quot;&gt;back&lt;/a&gt; back to the forms page, we can see that
-the arguments are
-&lt;ol&gt;
-&lt;li&gt; string    (the &quot;lang&quot; field)
-&lt;li&gt; checkbox  (the &quot;imperative&quot; field)
-&lt;li&gt; integer   (the &quot;tabs&quot; field)
-&lt;li&gt; checkbox  (the &quot;os1&quot; field)
-&lt;li&gt; checkbox  (the &quot;os2&quot; field)
-&lt;li&gt; checkbox  (the &quot;os3&quot; field)
-&lt;li&gt; string    (the &quot;other&quot; field)
-&lt;li&gt; string    (the &quot;contact&quot; field)
-&lt;/ol&gt;
-
-&lt;p&gt;Since we know the types we expect in the form, we can indicate that to
-the &lt;tt&gt;parse_post_data/2&lt;/tt&gt; function as in the following code:
-
-
-&lt;pre&gt;
-out(A) -&gt; 
-   Spec = [string, checkbox, integer,
-           checkbox, checkbox, checkbox,
-           string, string],
-   L = f(&quot;&amp;lt;pre&gt;~n clidata: ~p~n &amp;lt;/pre&gt;&quot;, 
-         [yaws_api:parse_post_data(A#arg.clidata, Spec)]),
-   {ok,L}.
-&lt;/pre&gt;
-
-&lt;p&gt;
-
-
-This will produce the following output:
-
-&lt;erl&gt;
-out(A) -&gt; 
-   Spec = [string, checkbox, int,
-           checkbox, checkbox, checkbox,
-           string, string],
-   L = f(&quot;~n&lt;pre&gt;~n clidata: ~p~n &lt;/pre&gt;&quot;, 
-         [yaws_api:parse_post_data(A#arg.clidata, Spec)]),
-   {ok,L}.
-&lt;/erl&gt;
-
+&lt;p&gt; It is up to the yaws programmer to parse this
+structure and extract the data from it.
 
 
 &lt;/HTML&gt;</diff>
      <filename>www/post.yaws</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,15 @@
 &lt;html&gt;
 
+
+&lt;head&gt;
+ &lt;meta name=&quot;keywords&quot; content=&quot;Hyber&quot;&gt;
+ &lt;title&gt;Hyber&lt;/title&gt;
+ &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;
+&lt;/head&gt;
+
+&lt;IMG SRC=&quot;/xx&#229;&#228;&#246;xx.jpg&quot; HEIGHT=40 WIDTH=&quot;400&quot; ALT=&quot;HYBER LOGO&quot;&gt;
+
+
 &lt;p&gt; no content
 
 &lt;/html&gt;</diff>
      <filename>www/static.html</filename>
    </modified>
    <modified>
      <diff>@@ -11,6 +11,7 @@ out(A) -&gt;
 
 &lt;ul&gt;
 
+&lt;li&gt; clusters 
 &lt;li&gt; handle the If-..... headers 
 &lt;li&gt; generate Etag for static content
 &lt;li&gt; handle Range header</diff>
      <filename>www/todo.yaws</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>ebin/erl_crash.dump</filename>
    </removed>
    <removed>
      <filename>ebin/ewww.app</filename>
    </removed>
    <removed>
      <filename>ebin/yaws.app</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>c457013d43054390da3c9ad042bb42e78720adbd</id>
    </parent>
  </parents>
  <author>
    <name>Claes Wikstrom</name>
    <email>klacke@hyber.org</email>
  </author>
  <url>http://github.com/JackDanger/yaws/commit/e86d1403284945bc87c5141ef9a16b059d15d37b</url>
  <id>e86d1403284945bc87c5141ef9a16b059d15d37b</id>
  <committed-date>2002-06-10T14:35:55-07:00</committed-date>
  <authored-date>2002-06-10T14:35:55-07:00</authored-date>
  <message>&quot;&quot;


git-svn-id: https://erlyaws.svn.sourceforge.net/svnroot/erlyaws/trunk/yaws@73 9fbdc01b-0d2c-0410-bfb7-fb27d70d8b52</message>
  <tree>d1a6b914b71cd71107e9e4c079442b7bb2dcf2eb</tree>
  <committer>
    <name>Claes Wikstrom</name>
    <email>klacke@hyber.org</email>
  </committer>
</commit>
