* along with wimlib; if not, see http://www.gnu.org/licenses/.
*/
-#include "dentry.h"
-#include "lookup_table.h"
-#include "timestamp.h"
-#include "wimlib_internal.h"
-#include "xml.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
-#include <string.h>
+#include "wimlib/dentry.h"
+#include "wimlib/encoding.h"
+#include "wimlib/metadata.h"
+#include "wimlib/error.h"
+#include "wimlib/file_io.h"
+#include "wimlib/lookup_table.h"
+#include "wimlib/resource.h"
+#include "wimlib/timestamp.h"
+#include "wimlib/xml.h"
+
+#include <libxml/encoding.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xmlwriter.h>
-#include <libxml/encoding.h>
#include <limits.h>
+#include <string.h>
/* Structures used to form an in-memory representation of the XML data (other
* than the raw parse tree from libxml). */
tchar *display_name;
tchar *display_description;
tchar *flags;
+ struct wim_lookup_table *lookup_table; /* temporary field */
};
struct xml_string_spec {
if (!image_info->name) {
tchar *empty_name;
WARNING("Image with index %d has no name", image_info->index);
- empty_name = TMALLOC(1);
+ empty_name = MALLOC(sizeof(tchar));
if (!empty_name)
return WIMLIB_ERR_NOMEM;
*empty_name = T('\0');
* link bytes", and this size is multiplied by the link count (NOT one
* less than the link count).
*/
- lte = inode_unnamed_lte_resolved(inode);
+ lte = inode_unnamed_lte(inode, info->lookup_table);
if (lte) {
info->total_bytes += wim_resource_size(lte);
if (!dentry_is_first_in_inode(dentry))
if (inode->i_nlink >= 2 && dentry_is_first_in_inode(dentry)) {
for (unsigned i = 0; i < inode->i_num_ads; i++) {
if (inode->i_ads_entries[i].stream_name_nbytes) {
- lte = inode_stream_lte_resolved(inode, i + 1);
+ lte = inode_stream_lte(inode, i + 1, info->lookup_table);
if (lte) {
info->hard_link_bytes += inode->i_nlink *
wim_resource_size(lte);
image_info->dir_count = 0;
image_info->total_bytes = 0;
image_info->hard_link_bytes = 0;
+ image_info->lookup_table = w->lookup_table;
for_dentry_in_tree(w->image_metadata[image - 1]->root_dentry,
calculate_dentry_statistics,
wim_timestamp_to_str(image_info->creation_time, buf, sizeof(buf));
tprintf(T("Creation Time: %"TS"\n"), buf);
- wim_timestamp_to_str(image_info->creation_time, buf, sizeof(buf));
+ wim_timestamp_to_str(image_info->last_modification_time, buf, sizeof(buf));
tprintf(T("Last Modification Time: %"TS"\n"), buf);
if (image_info->windows_info_exists)
print_windows_info(&image_info->windows_info);
}
void
-libxml_global_init()
+libxml_global_init(void)
{
xmlInitParser();
xmlInitCharEncodingHandlers();
}
void
-libxml_global_cleanup()
+libxml_global_cleanup(void)
{
xmlCleanupParser();
xmlCleanupCharEncodingHandlers();
* Reads the XML data from a WIM file.
*/
int
-read_xml_data(filedes_t in_fd,
+read_xml_data(int in_fd,
const struct resource_entry *res_entry,
struct wim_info **info_ret)
{