This file is indexed.

/usr/include/libgoffice-0.8/goffice/utils/datetime.h is in libgoffice-0.8-dev 0.8.17-3.

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
#ifndef _GO_DATETIME_H_
#define _GO_DATETIME_H_

#include <goffice/goffice.h>
#include <time.h>

G_BEGIN_DECLS

struct _GODateConventions {
	gboolean use_1904;	/* Use MacOffice 1904 based date convention,
				 * Rather than the Win32 style 1900 */
};

/*
 * Naming conventions:
 *
 * "g": a GDate *.
 * "timet": Unix' time_t.
 * "serial": Excel serial day number.
 * "serial_raw": serial plus time as fractional day.
 */

/* Week numbering methods */
/* 1:   Week starts on Sunday. Days before first Sunday are in week 0. */
/* 2:   Week starts on Monday. Days before first Monday are in week 0. */
/* 150: ISO 8601 week number. */
enum {
	GO_WEEKNUM_METHOD_SUNDAY = 1,
	GO_WEEKNUM_METHOD_MONDAY = 2,
	GO_WEEKNUM_METHOD_ISO = 150
};

/* These do not round and produces fractional values, i.e., includes time.  */
double	go_date_timet_to_serial_raw  (time_t t, GODateConventions const *conv);

/* These are date-only, no time.  */
int	go_date_timet_to_serial      (time_t t, GODateConventions const *conv);
int	go_date_g_to_serial	      (GDate const *date, GODateConventions const *conv);
void	go_date_serial_to_g	      (GDate *res, int serial, GODateConventions const *conv);
time_t	go_date_serial_to_timet      (int serial, GODateConventions const *conv);
int	go_date_serial_raw_to_serial (double raw);

/* These are time-only assuming a 24h day.  It probably loses completely on */
/* days with summer time ("daylight savings") changes.  */
int go_date_timet_to_seconds (time_t t);
int go_date_serial_raw_to_seconds (double raw);

/* Number of full months between date1 and date2. */
/* largest value s.t. g_date_add_months (date1, result) <= date2 */
/* except that if the day is decreased in g_date_add_monts, treat
   that as > the date it is decreased to. */
/* ( go_date_g_months_between ( March 31, April 30 ) == 0
     even though g_date_add_months ( Mar 31, 1 ) <= Apr 30.... */
int go_date_g_months_between (GDate const *date1, GDate const *date2);
/* Number of full years between date1 and date2. */
/* (g_date_add_years (date1, result) <= date2; largest such value. */
/*  treat add_years (29-feb, x) > 28-feb ) */
int go_date_g_years_between (GDate const *date1, GDate const *date2);
/* week number according to the given method. */
int go_date_weeknum (GDate const *date, int method);

typedef enum { /* see doc/fn-financial-basis.txt for details */
	GO_BASIS_MSRB_30_360     = 0,
	GO_BASIS_ACT_ACT         = 1,
	GO_BASIS_ACT_360         = 2,
	GO_BASIS_ACT_365         = 3,
	GO_BASIS_30E_360         = 4,
	GO_BASIS_30Ep_360        = 5,
	GO_BASIS_MSRB_30_360_SYM = 6         /* Gnumeric extension.  */
} go_basis_t;

gint32  go_date_days_between_basis (GDate const *from, GDate const *to, go_basis_t basis);

typedef struct {
	int	 freq;
	go_basis_t  basis;
	gboolean eom;
	GODateConventions const *date_conv;
} GoCouponConvention;

void   go_coup_cd    (GDate *res, GDate const *settle, GDate const *mat,
		      int freq, gboolean eom, gboolean next);
double go_coupdays   (GDate const *settlement, GDate const *maturity,
		      GoCouponConvention const *conv);
double go_coupdaybs  (GDate const *settlement, GDate const *maturity,
		      GoCouponConvention const *conv);
double go_coupdaysnc (GDate const *settlement, GDate const *maturity,
		      GoCouponConvention const *conv);

int go_date_convention_base (GODateConventions const *conv);

const GODateConventions *go_date_conv_from_str (const char *s);
gboolean go_date_conv_equal (const GODateConventions *a, const GODateConventions *b);
double go_date_conv_translate (double f,
			       const GODateConventions *src,
			       const GODateConventions *dst);

char *go_date_weekday_name (GDateWeekday wd, gboolean abbrev);
char *go_date_month_name (GDateMonth m, gboolean abbrev);


G_END_DECLS

#endif /* _GO_DATETIME_H_ */