;;; changes-5.01.mhtml: -*- Meta-HTML -*-  DESCRIPTIVE TEXT.

;;;  Copyright (c) 1996 Brian J. Fox
;;;  Author: Brian J. Fox (bfox@ai.mit.edu) Sun Oct 20 05:42:05 1996.
<set-var title="Changes from 5.00">
<include header.mhtml>
<include navbar.mhtml>
;;; <set-var mhtml::cacheable = true>

<defmacro change whitespace=delete>
  <dt><font size="+2"><b>%attributes</b></font></dt>
  <dd><plain-text nobr=true>%body</plain-text></dd>
  <p>
  <br>
</defmacro>

<defsubst tag><code><verbatim quote><%0></verbatim></code></defsubst>

<center>
  <h2><Meta-HTML> Changes in 5.01 from 5.00</h2>
</center>

<dl>
  <change   The <Meta-HTML> Reference Manual can now be printed out!>
  The file <code>doc/manual/metahtml.ps</code> is a postscript version
  of the manual, and the <code>mhc</code> script <code>build-ps</code>
  can be used to generate the manual from the documentation files and
  databases.  In order to generate the manual, you will have to have
  the <b>TeX</b>, <b>texindex</b>, and <b>dvips</b> programs
  installed, and in your path.

  The printed manual is about 96 pages, contains a function index,
  a variable index, and a table of contents, and is heavily cross
  referenced.
  </change>

  <change Changes Which Affect Compilation and Installation:>
  <meta-html> should now configure and install itself on an even wider
  variety of systems than before.  Specifically, problems reported for
  FreeBSD, NetBSD, NeXT, Solaris-2.4, and Solaris-2.5 have been
  addressed.
  </change>

  <change Changes Which Affect Apache Installation:>
  There is a new <code>mod_mhtml.c</code> file which can be compiled
  in with your server even if you aren't sure you will be running
  <Meta-HTML>.  This allows for a much simpler configuration of the
  Apache server.  The <a href="<get-var mhtml::url-to-dir>/mod_mhtml.c">
  <b>source code of the module</b> is here</a>, and the
  <a href="<get-var mhtml::url-to-top>/meta-html/manual/apache.mhtml">
  <b>instructions on using it</b> are here</a>.
  </change>

  <change Changes Which Affect the Language:>
  There have been several changes which affect the operation of the
  interpreter -- mostly in subtle ways.  All reported bugs have been
  fixed, and a couple of new features have been added.  You can
  <a href="lib-cl-5.00-5.01.mhtml">view the ChangeLog differences
  here</a>, or read the non-technical descriptions below.

  <ol>
    <li> There is a new tag, <tag var-exists>, which takes a single
    variable name as an argument and returns the string "<code>true</code>"
    if that variable has been defined, even if its value is "".

    <li> There is a new tag, <tag SYSTEM-ERROR-OUTPUT>, which
    (analogous to <tag DEBUGGING-OUTPUT> is replaced with the output
    of internal functions that result in error conditions.  Most
    notably, if functions such as <tag with-open-database> or <tag
    with-open-stream> encounter error conditions, that status is
    reported in this tag.

    <li> New Feature: When writing macros you may now use
    <b>%attributes</b>, <b>%qbody</b>, and <b>%xbody</b>, in addition
    to <b>%0...%9</b>, and <b>%body</b>.  They work as follows: 

    <ul>
      <li><b>%attributes</b> is all of the arguments which appeared in the
      opening tag.

      <li><b>%body</b> is replaced with the exact text of the material
      that appeared between the opening and closing tags

      <li><b>%qbody</b> is similar to <b>%body</b>, but the string is
      first surrounded by double quotes, and double quote characters which
      appear in the string are escaped.

      <li><b>%xbody</b> is replaced with the evaluation of the material
      that appeared between the opening and closing tags
    </ul>

    <li> The commands <tag with-open-database>, <tag
    database-delete-record>, <tag database-save-record>, <tag
    database-load-record>, and <tag database-save-package> all return
    the string <code>"true"</code> when successful, and place an error
    message in <tag SYSTEM-ERROR-OUTPUT> when not.

    <li> The internal reader has a fix which makes it understand
    triple semicolon comments <code>(&#059;&#059;&#059;)</code> inside
    of compound statements.

    <li> The <tag include> tag now uses the directory of the
    containing file as the current directory, not the directory of the
    requesting document.  Essentially, this means that it acts more
    like the C pre-processor <code>#include</code>.

    The variables <b>mhtml::include-prefix</b> and
    <b>mhtml::relative-prefix</b> show the full path to the document
    being retrieved, so there continues to be a mechanism for
    conditionally including a file in the same directory of the
    current document -- it looks like:

    <pre>&lt;include &lt;get-var mhtml::relative-prefix&gt; alt=""&gt;</pre>

    In the <code>include</code>d file, the variable <b>%%::relpref</b>
    reflects the current Web path to the document being included.  You
    won't need this for anything though.

    <li> Both the Server and Engine have newer configuration
    files and added code, which default the following behavior:

    <ul>
      <li> Posted data is made non-executable by default.
      <li> Cookies are set to be "permanent" by default.
      <li> User directories are handled in <tag include> statements,
      and also by both the Server and Engine, if, and only if, the
      variable <b><code>MHTML::~DIRECTORY</code></b> is defined and
      has a value.  A typical value for this variable might be
      "<code>public_html</code>".
    </ul>
  </ol>
  </change>

</dl>

<include footer.mhtml>

