[BACK]Return to apropos.h CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Annotation of mandoc/apropos.h, Revision 1.2

1.2     ! kristaps    1: /*     $Id: apropos.h,v 1.1 2011/11/09 01:24:23 kristaps Exp $ */
1.1       kristaps    2: /*
                      3:  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
                      4:  *
                      5:  * Permission to use, copy, modify, and distribute this software for any
                      6:  * purpose with or without fee is hereby granted, provided that the above
                      7:  * copyright notice and this permission notice appear in all copies.
                      8:  *
                      9:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                     10:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                     11:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                     12:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     13:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     14:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
                     15:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                     16:  */
                     17: #ifndef APROPOS_H
                     18: #define APROPOS_H
                     19:
                     20: #define TYPE_NAME        0x01
                     21: #define TYPE_FUNCTION    0x02
                     22: #define TYPE_UTILITY     0x04
                     23: #define TYPE_INCLUDES    0x08
                     24: #define TYPE_VARIABLE    0x10
                     25: #define TYPE_STANDARD    0x20
                     26: #define TYPE_AUTHOR      0x40
                     27: #define TYPE_CONFIG      0x80
                     28: #define TYPE_DESC        0x100
                     29: #define TYPE_XREF        0x200
                     30: #define TYPE_PATH        0x400
                     31: #define TYPE_ENV         0x800
                     32: #define TYPE_ERR         0x1000
                     33:
                     34: struct rec {
                     35:        char            *file; /* file in file-system */
                     36:        char            *cat; /* category (3p, 3, etc.) */
                     37:        char            *title; /* title (FOO, etc.) */
                     38:        char            *arch; /* arch (or empty string) */
                     39:        char            *desc; /* description (from Nd) */
                     40:        unsigned int     rec; /* record in index */
                     41:        /*
                     42:         * By the time the apropos_search() callback is called, these
                     43:         * are superfluous.
                     44:         * Maintain a binary tree for checking the uniqueness of `rec'
                     45:         * when adding elements to the results array.
                     46:         * Since the results array is dynamic, use offset in the array
                     47:         * instead of a pointer to the structure.
                     48:         */
                     49:        int              lhs;
                     50:        int              rhs;
                     51: };
                     52:
                     53: struct opts {
                     54:        const char      *arch; /* restrict to architecture */
                     55:        const char      *cat; /* restrict to manual section */
                     56: };
                     57:
                     58: __BEGIN_DECLS
                     59:
1.2     ! kristaps   60: struct expr;
        !            61:
        !            62: void            apropos_search(const struct opts *,
        !            63:                        const struct expr *, void *,
        !            64:                        void (*)(struct rec *, size_t, void *));
        !            65:
        !            66: struct expr    *exprcomp(int, char *[], int);
        !            67: void            exprfree(struct expr *);
1.1       kristaps   68:
                     69: __END_DECLS
                     70:
                     71: #endif /*!APROPOS_H*/

CVSweb