summaryrefslogtreecommitdiff
path: root/Build/source/texk/windvi/winhtex.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/windvi/winhtex.c')
-rw-r--r--Build/source/texk/windvi/winhtex.c230
1 files changed, 0 insertions, 230 deletions
diff --git a/Build/source/texk/windvi/winhtex.c b/Build/source/texk/windvi/winhtex.c
deleted file mode 100644
index e3dc3477dca..00000000000
--- a/Build/source/texk/windvi/winhtex.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- winhtex.c : implementation file
- Time-stamp: "99/07/23 17:33:42 popineau"
-
- Copyright (C) 1999
- Fabrice Popineau <Fabrice.Popineau@supelec.fr>
-
- This file is part of Windvi.
-
- Windvi is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Windvi is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Windvi; if not, write to the Free Software Foundation, 59
- Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "wingui.h"
-#include "xdvi-config.h"
-#include <wininet.h>
-
-#include <kpathsea/c-proto.h>
-
-static HINTERNET hInternetSession = NULL;
-
-static BOOL init_htex_features()
-{
- /* __asm int 3; */
- if (!hInternetSession) {
- hInternetSession = InternetOpen(_T("Windvi"),
- INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
- if (!hInternetSession) {
- fprintf(stderr, "Unable to open an Internet Session !n");
- }
- }
- return hInternetSession != NULL;
-}
-
-/*
- Windows can get rid of all the libwww stuff, because
- there is no need much than opening remote files, which
- can be done through the ShellExecute() call.
- Anyway, to be still compatible with the code written here,
- some of the libwww functions have been rewritten.
-*/
-
-#include "winhtex.h"
-#include <kpathsea/c-pathch.h>
-
-/*
-** Search the URL and determine whether it is a relative or absolute URL.
-** We check to see if there is a ":" before any "/", "?", and "#". If this
-** is the case then we say it is absolute. Otherwise it is relative.
-*/
-BOOL HTURL_isAbsolute (const char * url)
-{
- /* Given the context, we can't let windvi believe that
- c:/foo.dvi is an absolute url ... */
- if (NAME_BEGINS_WITH_DEVICE(url))
- return NO;
-
- if (url) {
- const char * ptr = url;
- while (*ptr) {
- if (*ptr == ':') return YES;
- if (*ptr == '/' || *ptr == '?' || *ptr == '#') break;
- ptr ++;
- }
- }
- return NO;
-}
-
-int
-invokeviewer(char *filename)
-{
- int ret;
- ret = ShellExecute(NULL, "open", dvi_name, NULL, NULL, SW_SHOWNORMAL);
- if (ret <= 0)
- return 0;
- else
- return 1;
-}
-
-char * HTParse (const char *aName, const char *relatedName, int wanted)
-{
- int ret;
- char *result, *abs, *rel;
- DWORD len;
- BOOL bAgain = FALSE;
-
-#if 0
- if (aName && *aName) {
- abs = xmalloc(strlen(aName) + 2);
- strcpy(abs, aName);
- strcat(abs, "/");
- }
- else {
- /* FIXME: what does mean a null base url ? */
- abs = xstrdup("");
- }
-#else
- abs = xstrdup(aName ? aName : "");
-#endif
- rel = (relatedName ? relatedName : "");
-
- len = strlen(abs) + strlen(rel) + 45;
- result = xmalloc(len*sizeof(char));
-
-#if 0
- fprintf(stderr, "HTParse called with aName = %s and relatedName = %s\n",
- aName, relatedName);
-#endif
- do {
- if (*rel) {
- ret = InternetCombineUrl(abs, rel, result, &len, ICU_BROWSER_MODE);
- }
- else {
- ret = InternetCanonicalizeUrl(abs, result, &len, ICU_BROWSER_MODE);
- }
- bAgain = FALSE;
- if (!ret) {
- switch (GetLastError()) {
- case ERROR_INSUFFICIENT_BUFFER:
-#if 0
- fprintf(stderr, "InternetCombineUrl: buffer was not long enough (needed %d)\n", len+1);
-#endif
- result = xrealloc(result, len+1);
- bAgain = TRUE;
- break;
- case ERROR_BAD_PATHNAME:
- fprintf(stderr, "InternetCombineUrl failed, one of the path names is bad:\n\t%s\n\t%s\n",
- aName, relatedName);
- break;
- case ERROR_INTERNET_INVALID_URL:
- fprintf(stderr, "InternetCombineUrl failed, url %s is malformed.\n", aName);
- break;
- case ERROR_INVALID_PARAMETER:
- fprintf(stderr, "InternetCombineUrl failed with `invalid parameter'.\n");
- break;
- default:
- break;
- }
- }
- } while (bAgain);
-
- /* abs has always been malloc'ed */
- if (abs)
- free(abs);
-
- if (!ret) {
- /* FIXME: Try this poor thing ! */
- sprintf(result, "%s/%s", aName, relatedName);
- }
-
-#if 0
- fprintf(stderr, "HTParse: result is %s\n", result);
-#endif
- return result;
-}
-
-int
-www_fetch(char *url, char *savefile)
-{
- HINTERNET hUrlDump;
- extern HINTERNET hInternetSession;
- DWORD dwSize=TRUE;
- LPSTR lpszData;
- LPSTR lpszOutPut;
- LPSTR lpszHolding;
- int nCounter=1;
- int nBufferSize;
- DWORD BigSize=8000;
- FILE *fSave;
-
- if ((fSave = fopen(savefile, "wb")) == NULL) {
- perror("www_fetch");
- return 0;
- }
-
- hUrlDump = InternetOpenUrl(hInternetSession, url, NULL, 0,
- INTERNET_FLAG_RAW_DATA, 0);
- if (!hUrlDump) {
- Win32Error("www_fetch/InternetOpenUrl");
- fclose(fSave);
- return 0;
- }
-
- do {
-
- /* Read the data */
- if(InternetReadFile(hUrlDump,(LPVOID)lpszData,BigSize,&dwSize) == FALSE) {
- Win32Error("www_fetch/InternetReadFile");
- break;
- }
- else {
- fwrite(lpszData, sizeof(char), dwSize , fSave);
- if (dwSize == 0) {
- break;
- }
- }
- }
- while (TRUE);
-
- /* Close the HINTERNET handle */
- InternetCloseHandle(hUrlDump);
-
- /* Set the cursor back to an arrow */
- SetCursor(LoadCursor(NULL,IDC_ARROW));
-
- /* Return */
- return TRUE;
-}
-
-void
-htex_cleanup(int arg)
-{
- /* Delete all the temp files we created */
- for (;nURLs>0; nURLs--) {
- /* fprintf(stderr,"htex: Unlinking %s\n",filelist[nURLs-1].file); */
- unlink(filelist[nURLs-1].file);
- }
- if (hInternetSession)
- InternetCloseHandle(hInternetSession);
-}