This file is indexed.

/usr/include/synfig-1.0/synfig/filecontainertemporary.h is in libsynfig-dev 1.0.2-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
/* === S Y N F I G ========================================================= */
/*!	\file filecontainertemporary.h
**	\brief FileContainerTemporary
**
**	$Id$
**
**	\legal
**	......... ... 2013 Ivan Mahonin
**
**	This package is free software; you can redistribute it and/or
**	modify it under the terms of the GNU General Public License as
**	published by the Free Software Foundation; either version 2 of
**	the License, or (at your option) any later version.
**
**	This package is distributed in the hope that it will be useful,
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
**	General Public License for more details.
**	\endlegal
*/
/* ========================================================================= */

/* === S T A R T =========================================================== */

#ifndef __SYNFIG_FILECONTAINERTEMPORARY_H
#define __SYNFIG_FILECONTAINERTEMPORARY_H

/* === H E A D E R S ======================================================= */

#include <map>
#include <ctime>
#include <libxml++/libxml++.h>

#include "filesystemnative.h"
#include "filecontainerzip.h"

/* === M A C R O S ========================================================= */

/* === T Y P E D E F S ===================================================== */

/* === C L A S S E S & S T R U C T S ======================================= */

namespace synfig
{

	class FileContainerTemporary: public FileContainer
	{
	private:
		struct FileInfo
		{
			std::string name;
			std::string tmp_filename;
			bool is_directory;
			bool is_removed;

			std::string name_part_directory;
			std::string name_part_localname;

			void split_name();

			inline FileInfo(): is_directory(false), is_removed(false) { }
		};

		typedef std::map< std::string, FileInfo > FileMap;

		bool is_opened_;
		FileMap files_;
		std::string container_filename_;
		etl::handle< FileContainerZip > container_;
		etl::handle< FileSystemNative > file_system_;

		std::string file_;
		std::string file_tmp_name_;
		FileSystem::ReadStreamHandle file_read_stream_;
		FileSystem::WriteStreamHandle file_write_stream_;

		std::string temporary_filename_base_;

		static std::string get_xml_node_text(xmlpp::Node *node);

	public:
		FileContainerTemporary();
		virtual ~FileContainerTemporary();

		virtual bool create(const std::string &container_filename);
		virtual bool open(const std::string &container_filename);
		bool open_from_history(const std::string &container_filename, FileContainerZip::file_size_t truncate_storage_size = 0);
		virtual void close();
		virtual bool is_opened();

		virtual bool is_file(const std::string &filename);
		virtual bool is_directory(const std::string &filename);

		virtual bool directory_create(const std::string &dirname);
		virtual bool directory_scan(const std::string &dirname, std::list< std::string > &out_files);

		virtual bool file_remove(const std::string &filename);

		virtual bool file_open_read(const std::string &filename);
		virtual bool file_open_write(const std::string &filename);
		virtual void file_close();

		virtual bool file_is_opened_for_read();
		virtual bool file_is_opened_for_write();

		virtual size_t file_read(void *buffer, size_t size);
		virtual size_t file_write(const void *buffer, size_t size);

		static std::string get_temporary_directory();
		static std::string generate_temporary_filename_base();
		static std::string generate_temporary_filename();

		const std::string& get_container_filename() const { return container_filename_; }
		const std::string& get_temporary_filename_base() const { return temporary_filename_base_; }

		bool save_temporary() const;
		bool open_temporary(const std::string &filename_base);

		bool save_changes(const std::string &filename = std::string(), bool as_copy = false);
		void discard_changes();
	};

}

/* === E N D =============================================================== */

#endif