⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dotty.c

📁 Graphviz - Graph Drawing Programs from AT&T Research and Lucent Bell Labs See doc/build.html for
💻 C
字号:
/* $Id: dotty.c,v 1.7 2007/08/02 21:18:40 erg Exp $ $Revision: 1.7 $ *//* vim:set shiftwidth=4 ts=8: *//***********************************************************      This software is part of the graphviz package      **                http://www.graphviz.org/                 **                                                         **            Copyright (c) 1994-2004 AT&T Corp.           **                and is licensed under the                **            Common Public License, Version 1.0           **                      by AT&T Corp.                      **                                                         **        Information and Software Systems Research        **              AT&T Research, Florham Park NJ             ***********************************************************//* Lefteris Koutsofios - AT&T Bell Laboratories */#include <windows.h>#include <stdarg.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>static char *shellpath;static char *buildpath (char *);static void panic (char *, int, char *, char *, ...);static char* lneato =#ifdef LNEATO  "dotty.protogt.lserver='neato';";#else  "";#endifint PASCAL WinMain (    HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {    STARTUPINFO si;    PROCESS_INFORMATION pi;    char cmd[256];    char *path;    char *s;    ZeroMemory (&si, sizeof(si));    si.cb = sizeof(si);    ZeroMemory (&pi, sizeof(pi));    shellpath = getenv ("PATH");    if (!shellpath || !(path = buildpath ("lefty"))) {        if (!GetModuleFileName (hInstance, cmd, 256) ||                !(s = strrchr (cmd, '\\')))            exit (1);        *s = 0;        shellpath = &cmd[0];        if (!(path = buildpath ("lefty")))            exit (1);    }    if (lpCmdLine[0] == 0)        sprintf (	    cmd, "%s -e \"load('dotty.lefty');%sdotty.init();dotty.createviewandgraph(null,'file',null,null);txtview('off');\"",	    path, lneato        );    else        sprintf (	    cmd, "%s -e \"load('dotty.lefty');%sdotty.init();dotty.createviewandgraph('%Ns','file',null,null);txtview('off');\"",            path, lneato, lpCmdLine        );    CreateProcess (        NULL,   // No module name (use command line).         cmd, // Command line.         NULL,             // Process handle not inheritable.         NULL,             // Thread handle not inheritable.         FALSE,            // Set handle inheritance to FALSE.         0,                // No creation flags.         NULL,             // Use parent's environment block.         NULL,             // Use parent's starting directory.         &si,              // Pointer to STARTUPINFO structure.        &pi             // Pointer to PROCESS_INFORMATION structure.    );    exit (0);}#define PATHDEL '\\'#define PATHSEP ';'static char pathbuf[1024];static char commandbuf[1024];static char *buildpath (char *file) {    struct stat statbuf;    char *s1, *s2;    int mode, pathi;    if (file && file[0] && (file[0] == '.' || file[0] == PATHDEL))        return file;    mode = ~0;    s1 = shellpath;    while (*s1) {        pathi = 0;        while (*s1 && *s1 != PATHSEP)            pathbuf[pathi++] = *s1++;        if (*s1)            s1++;        pathbuf[pathi++] = PATHDEL;        for (s2 = file; *s2; s2++)            pathbuf[pathi++] = *s2;        pathbuf[pathi++] = '.';        pathbuf[pathi++] = 'e';        pathbuf[pathi++] = 'x';        pathbuf[pathi++] = 'e';        pathbuf[pathi] = '\000';        if (stat (pathbuf, &statbuf) == 0 && (statbuf.st_mode & mode))            return pathbuf;    }    return NULL;}static void panic (char *file, int line, char *func, char *fmt, ...) {    va_list args;    va_start(args, fmt);    {        char buf[256];        vsprintf (buf, fmt, args);        MessageBox ((HWND) NULL, buf, "dotty PANIC", MB_APPLMODAL);    }    abort ();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -