This file is indexed.

/usr/include/scribus/exif.h is in scribus 1.4.0.dfsg+r17300-1.1.

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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
#ifndef __EXIF_H__
#define __EXIF_H__

/**
	exif.h
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

#include "qstring.h"
#include "qfile.h"
#include "qimage.h"

typedef enum {
    READ_EXIF = 1,
    READ_IMAGE = 2,
    READ_ALL = 3
}ReadMode_t;

//--------------------------------------------------------------------------
// This structure is used to store jpeg file sections in memory.
/*
typedef struct
{
	uchar *  Data;
	int      Type;
	unsigned Size;
}
Section_t;
*/
typedef unsigned char uchar;

class TagTable
{
	public:
		TagTable ( unsigned short t, const char* d ) : Tag ( t ), Desc ( d ) {}
		unsigned short Tag;
		const char*const Desc;
};

#define MAX_SECTIONS 60
#define PSEUDO_IMAGE_MARKER 0x123; // Extra value.

class ExifData
{
//		Section_t Sections[MAX_SECTIONS];
		QString CameraMake;
		QString CameraModel;
		QString DateTime;
		int   Orientation;
		int   Height, Width;
		int   ExifImageLength, ExifImageWidth;
		int   IsColor;
		int   Process;
		int   FlashUsed;
		float FocalLength;
		float ExposureTime;
		float ApertureFNumber;
		float Distance;
		int    Whitebalance;
		int    MeteringMode;
		float CCDWidth;
		float ExposureBias;
		int   ExposureProgram;
		int   ISOequivalent;
		int   CompressionLevel;
		QString UserComment;
		QString Comment;
		int recurseLevel;
		unsigned char * LastExifRefd;
		int ExifSettingsLength;
		double FocalplaneXRes;
		double FocalplaneUnits;
		int MotorolaOrder;

		int getch ( QFile &infile );
		int ReadJpegSections ( QFile & infile, ReadMode_t ReadMode );
		void DiscardData ( void );
		int Get16u ( void * Short );
		int Get32s ( void * Long );
		unsigned Get32u ( void * Long );
		double ConvertAnyFormat ( void * ValuePtr, int Format );
		void ProcessExifDir ( unsigned char * DirStart, unsigned char * OffsetBase, unsigned ExifLength );
		void process_COM ( const uchar * Data, int length );
		void process_SOFn ( const uchar * Data, int marker );
		int Get16m ( const void * Short );
		void process_EXIF ( unsigned char * CharBuf, unsigned int length );
		int Exif2tm ( struct tm * timeptr, char * ExifTime );

	public:
		ExifData();
		bool scan ( const QString & );
		QString getCameraMake() { return CameraMake; }
		QString getCameraModel() { return CameraModel; }
		QString getDateTime() { return DateTime; }
		int getOrientation() { return Orientation; }
		int getHeight() { return Height; }
		int getWidth() { return Width; }
		int getIsColor() { return IsColor; }
		int getProcess() { return Process; }
		int getFlashUsed() { return FlashUsed; }
		float getFocalLength() { return FocalLength; }
		float getExposureTime() { return ExposureTime; }
		float getApertureFNumber() { return ApertureFNumber; }
		float getDistance() { return Distance; }
		int getWhitebalance() { return Whitebalance; }
		int getMeteringMode() { return MeteringMode; }
		float getCCDWidth() { return CCDWidth; }
		float getExposureBias() { return ExposureBias; }
		int getExposureProgram() { return ExposureProgram; }
		int getISOequivalent() { return ISOequivalent; }
		int getCompressionLevel() { return CompressionLevel; }
		QString getUserComment() { return UserComment; }
		QString getComment() { return Comment; }
		QImage getThumbnail();
		bool isThumbnailSane();
		bool isNullThumbnail() { return !isThumbnailSane(); }
		bool exifDataValid;
		QImage Thumbnail;
};

class FatalError
{
		const char* ex;
	public:
		FatalError ( const char* s ) { ex = s; }
		void debug_print() const { qDebug ( "exception: " ); }
};

extern TagTable ProcessTable[];

//--------------------------------------------------------------------------
// Define comment writing code, impelemented in setcomment.c
extern int safe_copy_and_modify ( const char * original_filename, const char * comment );

#endif