[BACK]Return to TeXmacs.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari / src / language

Annotation of OpenXM_contrib/pari/src/language/TeXmacs.h, Revision 1.1.1.1

1.1       maekawa     1: /******************************************************************************
                      2: * MODULE     : TeXmacs.h
                      3: * DESCRIPTION: Include file for communication of extern packages with TeXmacs
                      4: * COPYRIGHT  : (C) 1999  Joris van der Hoeven
                      5: *******************************************************************************
                      6: * This software falls under the GNU general public licence and comes WITHOUT
                      7: * ANY WARRENTY WHATSOEVER. See the file $TEXMACS_PATH/LICENCE for more details.
                      8: * If you don't have this file, write to the Free Software Foundation, Inc.,
                      9: * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
                     10: *******************************************************************************
                     11: * The TeXmacs communication protocol works as follows:
                     12: *   - First of all, the protocol is dynamic. All protocols define
                     13: *     the abstract structures 'TeXmacs_exports' and 'package_exports'.
                     14: *     These structures contain the version of the protocol used
                     15: *     and the versions of TeXmacs and the package
                     16: *   - Version n of the concrete protocol implements two structures
                     17: *     'TeXmacs_exports_n' and 'package_exports_n'.
                     18: *     The first structure contains all routines and data of TeXmacs,
                     19: *     which may be necessary for the package.
                     20: *     The structure 'package_exports' contains all routines and data
                     21: *     of the package, which should be visible for TeXmacs
                     22: *   - Now the package has to be a dynamically linkable library,
                     23: *     which implements a function
                     24: *        package_exports* get_my_package (int version);
                     25: *     In order to link your package to TeXmacs, you will now have to
                     26: *     call the TeXmacs function
                     27: *        void package_declare (string name, string lib, string f, string init);
                     28: *     Here 'name' is the name of your package under TeXmacs,
                     29: *     'lib' the name of the library, 'f' the function 'get_my_package' and
                     30: *     'init' an initialization string.
                     31: ******************************************************************************/
                     32:
                     33: #ifndef __TEXMACS_H
                     34: #define __TEXMACS_H
                     35:
                     36: #if defined (__cplusplus)
                     37: extern "C" {
                     38: #endif
                     39:
                     40: /******************************************************************************
                     41: * Any communication protocol contains at least the following
                     42: ******************************************************************************/
                     43:
                     44: typedef struct TeXmacs_exports {
                     45:   char* version_protocol;
                     46:   char* version_TeXmacs;
                     47: } TeXmacs_exports;
                     48:
                     49: typedef struct package_exports {
                     50:   char* version_protocol;
                     51:   char* version_package;
                     52: } package_exports;
                     53:
                     54: /******************************************************************************
                     55: * The first TeXmacs <-> package communication protocol from September 1999
                     56: ******************************************************************************/
                     57:
                     58: typedef struct TeXmacs_exports_1 {
                     59:   char* version_protocol; /* "TeXmacs communication protocol 1" */
                     60:   char* version_TeXmacs;
                     61: } TeXmacs_exports_1;
                     62:
                     63: typedef struct package_exports_1 {
                     64:   char* version_protocol; /* "TeXmacs communication protocol 1" */
                     65:   char* version_package;
                     66:
                     67:   char* (*install) (TeXmacs_exports_1* TeXmacs,
                     68:                    char* options, char** failure_flag);
                     69:   /* installation routine for extern package
                     70:      TeXmacs: pointer to routines exported by TeXmacs
                     71:      options: a string with installation option (freed by TeXmacs)
                     72:      *failure_flag: contains 1 on exit, if installation failed
                     73:      returns: a status message when installation succeeded
                     74:             : an error message when installation failed */
                     75:
                     76:   char* (*evaluate) (char* what, char* session, char** failure_flag);
                     77:   /* interactive evaluation routine for shells
                     78:      what: string to be evaluated (freed by TeXmacs)
                     79:      session: name of your session ("default" by default, freed by TeXmacs)
                     80:      *failure_flag: contains 1 on exit, if evaluation failed
                     81:      returned string: result of the evaluation or error message
                     82:                       (freed by TeXmacs) */
                     83:
                     84:   char* (*execute) (char* what, char* session, char** failure_flag);
                     85:   /* alternative routine for executing strings,
                     86:      used for controlling the interaction between TeXmacs and the package
                     87:      what: string to be executed (freed by TeXmacs)
                     88:      session: name of your session ("default" by default, freed by TeXmacs)
                     89:      *failure_flag: contains 1 on exit, if execution failed
                     90:      returned string: result of the execution or error message
                     91:                       (freed by TeXmacs) */
                     92: } package_exports_1;
                     93:
                     94: #if defined (__cplusplus)
                     95: }
                     96: #endif
                     97:
                     98: #endif __TEXMACS_H
                     99:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>