Exemplo n.º 1
0
Arquivo: int.c Projeto: ebcode/weft
int main(int argc, char **argv)
{
  int dirn;
  struct stat stat_buf;
  char *file, *output_file_name;

  g_mime_init(GMIME_ENABLE_RFC2047_WORKAROUNDS);

  dirn = parse_args(argc, argv);

  compile_filters();
  compile_words();

  if (0) {
    file = "/mnt/var/spool/news/articles/gmane/discuss/4482";
    output_file_name = get_cache_file_name(file);
    ensure_directory(output_file_name);
    transform_file(file, output_file_name);
    free(output_file_name);
  } else {
  
    for ( ; dirn < argc; dirn++) {
      file = argv[dirn];
      if (stat(file, &stat_buf) == -1) {
	perror("weft loop");
	break;
      }

      picon_number = 0;
      binary_number = 0;

      if (S_ISREG(stat_buf.st_mode)) {
	if (override_output_name)
	  output_file_name = override_output_name;
	else
	  output_file_name = get_cache_file_name(file);
	ensure_directory(output_file_name);
	transform_file(file, output_file_name);
	if (! override_output_name)
	  free(output_file_name);
      } else {
	fprintf(stderr, "%s is not a regular file; skipping.\n", file);
	break;
      }
    }
  }
  exit(0);
}   
Exemplo n.º 2
0
Arquivo: addons.c Projeto: iXit/wine
static HRESULT WINAPI InstallCallback_OnStopBinding(IBindStatusCallback *iface,
        HRESULT hresult, LPCWSTR szError)
{
    if(dwl_binding) {
        IBinding_Release(dwl_binding);
        dwl_binding = NULL;
    }

    if(FAILED(hresult)) {
        if(hresult == E_ABORT)
            TRACE("Binding aborted\n");
        else
            ERR("Binding failed %08x\n", hresult);
        return S_OK;
    }

    if(!msi_file) {
        ERR("No MSI file\n");
        return E_FAIL;
    }

    set_status(IDS_INSTALLING);
    EnableWindow(GetDlgItem(install_dialog, IDCANCEL), 0);

    if(sha_check(msi_file)) {
        WCHAR *cache_file_name;

        install_file(msi_file);

        cache_file_name = get_cache_file_name(TRUE);
        if(cache_file_name) {
            CopyFileW(msi_file, cache_file_name, FALSE);
            heap_free(cache_file_name);
        }
    }else {
        WCHAR message[256];

        if(LoadStringW(hInst, IDS_INVALID_SHA, message, ARRAY_SIZE(message)))
            MessageBoxW(NULL, message, NULL, MB_ICONERROR);
    }

    DeleteFileW(msi_file);
    heap_free(msi_file);
    msi_file = NULL;

    EndDialog(install_dialog, 0);
    return S_OK;
}
Exemplo n.º 3
0
Arquivo: addons.c Projeto: iXit/wine
static enum install_res install_from_cache(void)
{
    WCHAR *cache_file_name;
    enum install_res res;

    cache_file_name = get_cache_file_name(FALSE);
    if(!cache_file_name)
        return INSTALL_NEXT;

    if(!sha_check(cache_file_name)) {
        WARN("could not validate checksum\n");
        DeleteFileW(cache_file_name);
        heap_free(cache_file_name);
        return INSTALL_NEXT;
    }

    res = install_file(cache_file_name);
    heap_free(cache_file_name);
    return res;
}