LibCSS API & ABI Changes
========================

  This document explains how to upgrade clients to use new versions of LibCSS.


LibCSS 0.2.0 --> LibCSS 0.3.0
-----------------------------

  Both the API and ABI are changed.

  LibCSS no longer lets clients provide a memory allocator function.
  This change affects the following functions:

    From include/libcss/computed.h    --  css_computed_style_create()

    From include/libcss/select.h      --  css_select_ctx_create()

    From include/libcss/stylesheet.h  --  css_stylesheet_create()


  There are changes to selection handler callback table:

    node_classes
      LibCSS no longer frees the any array of classes passed to the
      node_classes callback.  It does still unref the individual strings.
      This means clients need not allocate a new array each call, but can
      keep the array cached on the node.

    set_libcss_node_data
      New selection handler function used to store a private cache belonging
      to libcss on document element nodes.  When the node is deleted or
      modified, clients should call css_libcss_node_data_handler().

    get_libcss_node_data
      New selection handler function used to retrieve private cache belonging
      to libcss from document element nodes.


LibCSS 0.3.0 --> LibCSS 0.4.0
-----------------------------

  The API is changed.

  Due to the change from CSS2 overflow to CSS3 overflow properties, the
  computed style access functions for overflow properties have changed.
  The overflow property is removed.  Added are overflow-x and overflow-y
  properties.  (The overflow shorthand property now sets overflow-x and
  overflow-y.)

  This change affects the following functions:

    Removed from   include/libcss/computed.h    --  css_computed_overflow()

    Added to       include/libcss/computed.h    --  css_computed_overflow_x()

    Added to       include/libcss/computed.h    --  css_computed_overflow_y()


LibCSS 0.5.0 --> LibCSS 0.6.0
-----------------------------

  The API is changed.

  The way that presentational hints are handled has changed to be more
  optimal.  Instead of calling the presentational hint callback once
  per property per node to get each hint, we now call the callback once
  per node to get all the hints that apply to it.

  There are changes to selection handler callback table:

    node_presentational_hint
      Rather than asking for any hint for the given node and property,
      it now asks for an array of hints that should apply to the node.

  The css_hint structure has been changed to include the property which
  the hint applies to.
