htmltmplpro Documentation

0.94

Introduction

HTML-Template-Pro library.
=======================

libhtmltmplpro 

libhtmltmplpro is a fast lightweight C implementation of perl modules
HTML::Template (as of 2.9) and HTML::Template::Expr (as of 0.0.7). 

The main principle is following:
Core C library should always be as language neutral
and portable as possible.

* HTML-Template-Pro "param" data tree.

As ANSI C language lacks standard dictionary types,
the code was designed so that a language wrapper should use
its own language spacific (as Perl built-in hash anr array)
or library specific (C+glib, for example) types to build 
a HTML-Template-Pro "param" data tree
and should provide abstract getters and movers to the core C library
to navigate through the "param" data tree
as well as some other system specific calls.

The param data tree structure is built from the following abstract
objects: A SCOPE, A LOOP, A VALUE.
A SCOPE is an abstract dictionary that maps NAME to A VALUE.
A VALUE should either be convertable to string, or it should be A LOOP.
A LOOP is an abstract list of SCOPEs.
A LOOP can be iterated over its SCOPEs.
When a template enters A LOOP, its current SCOPE is pushed into a scope stack,
and, depending on configuration options, a VALUE for a given NAME is searched
through the SCOPEs of the scope stack.

* Multithreading.

HTML-Template-Pro C library routines do not have any mutable global variables.
Hence, It is safe to use it in multithread context, assuming each thread will 
use its own set of libHTMLTmplPro main classes (of struct tmplpro_param* type).

* COPYRIGHT AND LICENCE

Copyright (C) 2005-2009 by I. Yu. Vlasenko.
Pieces of documentation of HTML::Template are
copyright (C) 2000-2009 Sam Tregar (sam@tregar.com)
Other contributors to the code base are listed in Changes.

The template syntax, interface conventions and a large piece of documentation 
of HTML::Template::Pro are based on CPAN module HTML::Template 
by Sam Tregar, sam@tregar.com.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.4 or,
at your option, any later version of Perl 5 you may have available,
or, at your option, under the terms of the GNU Lesser General Public License 
as published by the Free Software Foundation; either version 2 of the 
License, or (at your option) any later version.

Compilation

autoconf

CMake

etc...

History of API and ABI changes

0.94: released ABI 1.3 (4:0:3) ABI 1.0 compatible.
* added symbols:
   tmplpro_set_log_file
   tmplpro_param_allocated_memory_info

0.93: released ABI 1.2 (3:0:2) ABI 1.0 compatible.
* added symbols:
   tmplpro_reset_int_options
   tmplpro_get_option_template_root
   tmplpro_set_option_template_root

0.92: no ABI changes.

0.91: released ABI 1.1 (2:0:1) ABI 1.0 compatible.
* added symbols:  
   tmplpro_get_int_option
   tmplpro_set_int_option
   tmplpro_errno
   tmplpro_errmsg

0.90: released ABI 1.0 (1:0:0).
* PSTRING now use const pointers
* added MPSTRING with non-const pointers
* added symbols:  
        tmplpro_tmpl2pstring
        tmplpro_set_expr_as_null
        tmplpro_get_option_ext_data_state
        tmplpro_set_option_ext_data_state

* removed symbols: 
        tmplpro_get_expr_as_string
        tmplpro_get_option_select_loop_scope_functype
        tmplpro_set_option_select_loop_scope_functype
        tmplpro_get_option_die_on_bad_params
        tmplpro_set_option_die_on_bad_params

* changed symbols: 
        tmplpro_get_option_EndLoopFuncPtr
        tmplpro_set_option_EndLoopFuncPtr
to 
        tmplpro_get_option_ExitLoopScopeFuncPtr
        tmplpro_set_option_ExitLoopScopeFuncPtr

        tmplpro_get_option_root_param_map
        tmplpro_set_option_root_param_map
to
        tmplpro_clear_option_param_map
        tmplpro_count_option_param_map
        tmplpro_push_option_param_map

        tmplpro_get_option_case_sensitive
        tmplpro_set_option_case_sensitive
to
        tmplpro_get_option_tmpl_var_case
        tmplpro_set_option_tmpl_var_case


* removed callback: select_loop_scope_functype
* changed callbacks: added ABSTRACT_DATASTATE* to param data - related callbacks

* Multiple root param maps are now allowed, so tmplpro_clear_option_param_map/tmplpro_push_option_param_map
  is used instead of tmplpro_set_option_root_param_map.

* case_sensitive option is now moved to wrappers.
  C library itself now use tmpl_var_case option.

* tmplpro_get_expr_type now returns explicit EXPR_TYPE_NULL

0.83-0.87 no API/ABI changes.
0.82      API officially released. ABI: 0:0:0 released

Generated on Fri Mar 26 22:02:17 2010 for htmltmplpro by  doxygen 1.5.9