This file is indexed.

/usr/include/prayer/template_structs.h is in prayer-templates-dev 1.3.5-dfsg1-2+b1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
/* $Cambridge: hermes/src/prayer/lib/template_structs.h,v 1.1 2010/07/07 08:52:14 dpc22 Exp $ */

/************************************************
 *    Prayer - a Webmail Interface              *
 ************************************************/

/* Copyright (c) University of Cambridge 2000 - 2008 */
/* See the file NOTICE for conditions of use and distribution. */

typedef enum {
    TEMPLATE_ITEM_LINES,
    TEMPLATE_ITEM_IFDEF,
    TEMPLATE_ITEM_IFEQ,
    TEMPLATE_ITEM_FOREACH,
    TEMPLATE_ITEM_LOOP,
    TEMPLATE_ITEM_CALL,
} TEMPLATE_ITEM_TYPE;

/* Any changes to the following must be mirrored in template_compile */

struct template_map_index {
    char *name;
    struct template_map *template_map;
    unsigned long *count;
};

struct template_map {
    char *name;
    struct template *template;
};

struct template {
    char *name;
    struct template_item *head;
    struct template_item *tail;
    unsigned long count;
    struct template_item *tree;
    struct str *error;
};

struct template_item {
    unsigned long number;
    struct template_item *list_next;
    struct template_item *tree_next;
    TEMPLATE_ITEM_TYPE type;
    /* ... */
};

struct template_lines {
    unsigned long number;
    struct template_item *list_next;
    struct template_item *tree_next;
    TEMPLATE_ITEM_TYPE type;
    char **first;
    int count;
};

struct template_ifdef {
    unsigned long number;
    struct template_item *list_next;
    struct template_item *tree_next;
    TEMPLATE_ITEM_TYPE type;
    BOOL positive;
    char *expr;
    struct template_item *true_block;
    struct template_item *false_block;
};

struct template_ifeq {
    unsigned long number;
    struct template_item *list_next;
    struct template_item *tree_next;
    TEMPLATE_ITEM_TYPE type;
    BOOL positive;
    char *name;
    char *value;
    struct template_item *true_block;
    struct template_item *false_block;
};

struct template_foreach {
    unsigned long number;
    struct template_item *list_next;
    struct template_item *tree_next;
    TEMPLATE_ITEM_TYPE type;
    char *name;
    char *array;
    struct template_item *block;
};

struct template_loop {
    unsigned long number;
    struct template_item *list_next;
    struct template_item *tree_next;
    TEMPLATE_ITEM_TYPE type;
    char *var;
    struct template_item *block;
};

struct template_call {
    unsigned long number;
    struct template_item *list_next;
    struct template_item *tree_next;
    TEMPLATE_ITEM_TYPE type;
    char *name;
    char *params;
};