Beispiel #1
0
static unsigned WINAPI parseFiles(void *args){
	StatusData *sd = (StatusData*) args;
	int i, ret, count = listGetCount(sd->io->hwndList);
	wchar_t *disp, buf[BUFSIZ];

	CoInitialize(NULL);
	for (i = 0; i < count ; i++){
		if (!listGetItem(sd->io->hwndList, i, &disp, sd->io->po.fileIn, MAX_PATH)){
			MessageBox(sd->hwndStatusDlg, L"Error: Could not read info from list!", NULL, MB_ICONEXCLAMATION);
			return FALSE;
		}
		
		_snwprintf_s(buf, BUFSIZ, _TRUNCATE, L"tSubGet Status - [%d / %d]", i+1, count);
		SetWindowText(sd->hwndStatusDlg, buf);
		SetDlgItemText(sd->hwndStatusDlg, IDE_S_FILENAME, disp);
		free(disp);

		sd->io->po.fileOut[0] = L'\0'; //Re-init to default
		while ((ret = tsgInit(&sd->p, &sd->io->po)) == PARSER_E_OUT_EXISTS){
			int mbret;
			
			_snwprintf_s(buf, BUFSIZ, _TRUNCATE, L"Warning: %s exists, overwrite?", sd->io->po.fileOut);
			mbret = MessageBox(sd->hwndStatusDlg, buf, L"File Exists", MB_YESNO|MB_ICONQUESTION);
			if (mbret != IDYES)
				break;

			sd->io->po.overwriteOutput = TRUE;
		}

		if (ret != PARSER_OK) break;
		else if ((ret = tsgProcess(sd->p)) != PARSER_OK) break;
		else if (tsgWriteout(sd->p) != PARSER_OK) break;

		tsgClose(&sd->p);
	}

	switch (ret){
		case PARSER_OK: case PARSER_E_ABORT: case PARSER_E_OUT_EXISTS:
			break;
		
		default:{
			wchar_t fmt[BUFSIZ];
			tsgGetError(ret, buf, BUFSIZ);
			_snwprintf_s(fmt, BUFSIZ, _TRUNCATE, 
							L"Error: The parser returned the following:\r\n\r'%s'", buf);
			MessageBox(sd->hwndStatusDlg, fmt, NULL, MB_ICONEXCLAMATION);
		}
	}

	tsgClose(&sd->p);
	CoUninitialize();
	return TRUE;
}
Beispiel #2
0
FUNCTION  void getFileLists(char *dirpath)
{
#ifdef PROC_TRACE
  traceFunc("== getFileLists(%s)\n", dirpath);
#endif /* PROC_TRACE */

  /*    listInit(&gl.sarchList, 0, "source-archives list & md5sum map"); */
  listInit(&cur.regfList, 0, "regular-files list");
  listInit(&cur.offList, 0, "buffer-offset list");
#ifdef FLAG_NO_COPYRIGHT
  listInit(&gl.nocpyrtList, 0, "no-copyright list");
#endif /* FLAG_NO_COPYRIGHT */

  listGetItem(&cur.regfList, cur.targetFile);
  return;
} /* getFileLists */