Upgrade mtools to 3.0.37

This version contains a fix for -Wstring-concatenation error.

Test: presubmit
Bug: 175068488
Change-Id: Id4f2ae49da91a481ab2625fdf17668689b640794
diff --git a/unixdir.c b/unixdir.c
index 1f71d92..7bd0dbc 100644
--- a/unixdir.c
+++ b/unixdir.c
@@ -19,17 +19,13 @@
 #include "msdos.h"
 #include "stream.h"
 #include "mtools.h"
-#include "fsP.h"
 #include "file.h"
 #include "htable.h"
 #include "mainloop.h"
 #include <dirent.h>
 
 typedef struct Dir_t {
-	Class_t *Class;
-	int refs;
-	Stream_t *Next;
-	Stream_t *Buffer;
+	struct Stream_t head;
 
 	struct MT_STAT statbuf;
 	char *pathname;
@@ -41,15 +37,15 @@
 
 /*#define FCHDIR_MODE*/
 
-static int get_dir_data(Stream_t *Stream, time_t *date, mt_size_t *size,
-			int *type, int *address)
+static int get_dir_data(Stream_t *Stream, time_t *date, mt_off_t *size,
+			int *type, unsigned int *address)
 {
 	DeclareThis(Dir_t);
 
 	if(date)
 		*date = This->statbuf.st_mtime;
 	if(size)
-		*size = (mt_size_t) This->statbuf.st_size;
+		*size = This->statbuf.st_size;
 	if(type)
 		*type = 1;
 	if(address)
@@ -66,9 +62,11 @@
 	return 0;
 }
 
-static Class_t DirClass = { 
+static Class_t DirClass = {
 	0, /* read */
 	0, /* write */
+	0, /* pread */
+	0, /* pwrite */
 	0, /* flush */
 	dir_free, /* free */
 	0, /* get_geom */
@@ -82,8 +80,8 @@
 #define FCHDIR_MODE
 #endif
 
-int unix_dir_loop(Stream_t *Stream, MainParam_t *mp); 
-int unix_loop(Stream_t *Stream, MainParam_t *mp, char *arg, 
+int unix_dir_loop(Stream_t *Stream, MainParam_t *mp);
+int unix_loop(Stream_t *Stream, MainParam_t *mp, char *arg,
 	      int follow_dir_link);
 
 int unix_dir_loop(Stream_t *Stream, MainParam_t *mp)
@@ -109,7 +107,7 @@
 		if(isSpecial(entry->d_name))
 			continue;
 #ifndef FCHDIR_MODE
-		newName = malloc(strlen(This->pathname) + 1 + 
+		newName = malloc(strlen(This->pathname) + 1 +
 				 strlen(entry->d_name) + 1);
 		if(!newName) {
 			ret = ERROR_ONE;
@@ -139,11 +137,7 @@
 	Dir_t *This;
 
 	This = New(Dir_t);
-	
-	This->Class = &DirClass;
-	This->Next = 0;
-	This->refs = 1;
-	This->Buffer = 0;
+	init_head(&This->head, &DirClass, NULL);
 	This->pathname = malloc(strlen(filename)+1);
 	if(This->pathname == NULL) {
 		Free(This);
@@ -164,5 +158,5 @@
 		return NULL;
 	}
 
-	return (Stream_t *) This;
+	return &This->head;
 }