Annotation of OpenXM_contrib/gnuplot/win/wgnuplib.c, Revision 1.1
1.1 ! maekawa 1: #ifndef lint
! 2: static char *RCSid = "$Id: wgnuplib.c,v 1.5 1998/03/22 22:35:27 drd Exp $";
! 3: #endif
! 4:
! 5: /* GNUPLOT - win/wgnuplib.c */
! 6: /*[
! 7: * Copyright 1992, 1993, 1998 Russell Lang
! 8: *
! 9: * Permission to use, copy, and distribute this software and its
! 10: * documentation for any purpose with or without fee is hereby granted,
! 11: * provided that the above copyright notice appear in all copies and
! 12: * that both that copyright notice and this permission notice appear
! 13: * in supporting documentation.
! 14: *
! 15: * Permission to modify the software is granted, but not the right to
! 16: * distribute the complete modified source code. Modifications are to
! 17: * be distributed as patches to the released version. Permission to
! 18: * distribute binaries produced by compiling modified sources is granted,
! 19: * provided you
! 20: * 1. distribute the corresponding source modifications from the
! 21: * released version in the form of a patch file along with the binaries,
! 22: * 2. add special version identification to distinguish your version
! 23: * in addition to the base release version number,
! 24: * 3. provide your name and address as the primary contact for the
! 25: * support of your modified version, and
! 26: * 4. retain our contact information in regard to use of the base
! 27: * software.
! 28: * Permission to distribute the released version of the source code along
! 29: * with corresponding source modifications in the form of a patch file is
! 30: * granted with same provisions 2 through 4 for binary distributions.
! 31: *
! 32: * This software is provided "as is" without express or implied warranty
! 33: * to the extent permitted by applicable law.
! 34: ]*/
! 35:
! 36: /*
! 37: * AUTHORS
! 38: *
! 39: * Russell Lang
! 40: *
! 41: * Send your comments or suggestions to
! 42: * info-gnuplot@dartmouth.edu.
! 43: * This is a mailing list; to join it send a note to
! 44: * majordomo@dartmouth.edu.
! 45: * Send bug reports to
! 46: * bug-gnuplot@dartmouth.edu.
! 47: */
! 48:
! 49: #define STRICT
! 50: #include <ctype.h>
! 51: #include <windows.h>
! 52: #include <windowsx.h>
! 53: #include "wgnuplib.h"
! 54: #include "wresourc.h"
! 55: #include "wcommon.h"
! 56:
! 57: HINSTANCE hdllInstance;
! 58: LPSTR szParentClass = "wgnuplot_parent";
! 59: LPSTR szTextClass = "wgnuplot_text";
! 60: LPSTR szPauseClass = "wgnuplot_pause";
! 61: LPSTR szGraphClass = "wgnuplot_graph";
! 62:
! 63: /* Window ID */
! 64: struct WID {
! 65: BOOL used;
! 66: HWND hwnd;
! 67: void FAR * ptr;
! 68: };
! 69: struct WID *widptr = NULL;
! 70: unsigned int nwid = 0;
! 71: HLOCAL hwid = 0;
! 72:
! 73: #ifdef __DLL__
! 74: int WDPROC
! 75: LibMain(HINSTANCE hInstance, WORD wDataSeg, WORD wHeapSize, LPSTR lpszCmdLine)
! 76: {
! 77: hdllInstance = hInstance;
! 78: return 1;
! 79: }
! 80:
! 81: int WDPROC
! 82: WEP(int nParam)
! 83: {
! 84: return 1;
! 85: }
! 86:
! 87: BOOL WDPROC
! 88: CheckWGNUPLOTVersion(LPSTR str)
! 89: {
! 90: char mess[256];
! 91: LPSTR version;
! 92: version = WGNUPLOTVERSION;
! 93: if (lstrcmp(str,version)) {
! 94: wsprintf(mess,"Incorrect DLL version\nExpected version %s\nThis is version %s",str,version);
! 95: MessageBox(NULL, mess , "WGNUPLOT.DLL", MB_OK | MB_ICONSTOP | MB_TASKMODAL);
! 96: return TRUE;
! 97: }
! 98: return FALSE; /* Correct version */
! 99: }
! 100: #endif /* __DLL__ */
! 101:
! 102: void NEAR *
! 103: LocalAllocPtr(UINT flags, UINT size)
! 104: {
! 105: HLOCAL hlocal;
! 106: hlocal = LocalAlloc(flags, size+1);
! 107: return (char *)LocalLock(hlocal);
! 108: }
! 109:
! 110: void
! 111: LocalFreePtr(void NEAR *ptr)
! 112: {
! 113: HLOCAL hlocal;
! 114: hlocal = LocalHandle(ptr);
! 115: LocalUnlock(hlocal);
! 116: LocalFree(hlocal);
! 117: return;
! 118: }
! 119:
! 120:
! 121: /* ascii to int */
! 122: /* returns:
! 123: * A pointer to character past int if successful,
! 124: * otherwise NULL on failure.
! 125: * convert int is stored at pval.
! 126: */
! 127: LPSTR
! 128: GetInt(LPSTR str, LPINT pval)
! 129: {
! 130: int val = 0;
! 131: BOOL negative = FALSE;
! 132: BOOL success = FALSE;
! 133: int ch;
! 134: if (!str)
! 135: return NULL;
! 136: while ( (ch = *str)!=0 && isspace(ch) )
! 137: str++;
! 138: if (ch == '-') {
! 139: negative = TRUE;
! 140: str++;
! 141: }
! 142: while ( (ch = *str)!=0 && isdigit(ch) ) {
! 143: success = TRUE;
! 144: val = val * 10 + (ch - '0');
! 145: str++;
! 146: }
! 147: if (success) {
! 148: if (negative)
! 149: val = -val;
! 150: *pval = val;
! 151: return str;
! 152: }
! 153: return NULL;
! 154: }
! 155:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>