File: mainloop.h

package info (click to toggle)
mtools 3.8-1
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 1,116 kB
  • ctags: 1,306
  • sloc: ansic: 11,489; sh: 2,052; makefile: 223; sed: 8
file content (48 lines) | stat: -rw-r--r-- 1,463 bytes parent folder | download
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
#ifndef MTOOLS_MAINLOOP_H
#define MTOOLS_MAINLOOP_H

#include <sys/param.h>
#include "vfat.h"

typedef struct MainParam_t {
	/* stuff needing to be initialised by the caller */
	int (*callback)(Stream_t *Dir, struct MainParam_t *mp, int entry);
	int (*unixcallback)(char *name, struct MainParam_t *mp);
	int (*newdoscallback)(char *name, struct MainParam_t *mp);
	int (*newdrive_cb)(Stream_t *Dir, struct MainParam_t *mp);
	int (*olddrive_cb)(Stream_t *Dir, struct MainParam_t *mp);
	void *arg; /* to be passed to callback */

       	int openflags; /* flags used to open disk */
	int lookupflags; /* flags used to lookup up using vfat_lookup */
	int fast_quit; /* for commands manipulating multiple files, quit
			* as soon as even _one_ file has a problem */

	char *outname; /* where to put the matched file name */
	char *shortname; /* where to put the short name of the matched file */
	char *longname; /* where to put the long name of the matched file */
	char *pathname; /* path name of file */
	char filename[VBUFSIZE];
	char drivename;

	/* out parameter */
	Stream_t *File;
	struct directory dir;

	/* internal data */
	char mcwd[MAXPATHLEN];	
} MainParam_t;

void init_mp(MainParam_t *MainParam);
int main_loop(MainParam_t *MainParam, char **argv, int argc);

Stream_t *open_subdir(MainParam_t *MainParam, const char *arg, 
		      int flags, int mode, int lock);


#define NEXT_DISK 1
#define MISSED_ONE 2
#define GOT_ONE 4
#define IS_MATCH 8

#endif