亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? clwrapper.c

?? 編譯工具
?? C
字號:
/* * clwrapper.c - wrapper around Visual C++'s "CL" program to perform * file name translation (from unix-like to dos-like names). * * Both GNUWIN32 and OpenNT file names are supported - the first argument * to this program specifies which. * * Compile this program with "cl clwrapper.c advapi32.lib". */#include <windows.h>#include <stdio.h>#include <process.h>#include <string.h>#define MAX_MOUNTS 256int  GetCygwinMounts(void);void GetGnuwin32Mounts(void);void SortMounts();void GetOpenNTMounts(void);char *TranslateFileName(char *in, int offset);char *EscapeDoubleQuotes(char *in);int gnuwin32 = 0;int opennt = 0;int main(int argc, char **argv){  int rc;  int i;  if (argc > 1 && strcmp(argv[1], "-gnuwin32") == 0) {    if (!GetCygwinMounts())      GetGnuwin32Mounts();    SortMounts();    gnuwin32 = 1;  } else if (argc > 1 && strcmp(argv[1], "-opennt") == 0) {    GetOpenNTMounts();    opennt = 1;  } else {    fprintf(stderr,	    "%s: must specify either -gnuwin32 or -opennt as first argument",	    argv[0]);    return 1;  }  argv++;  argc--;  argv[0] = "cl";  printf("cl");  for (i = 1; i < argc; i++) {    if (argv[i][0] == '-') {      switch (argv[i][1]) {      case 'I':	argv[i] = TranslateFileName(argv[i],2);	break;      case 'F':	if (argv[i][2] == 'o') {	  argv[i] = TranslateFileName(argv[i],3);	}	break;      default:	break;      }    } else {      /* just a file argument */      int len = strlen(argv[i]);      if ((len >= 4) && (strcmp(&argv[i][len - 3], ".cc") == 0)) {	char *tmp = malloc(len + 4);	sprintf(tmp, "-Tp%s", argv[i]);	argv[i] = TranslateFileName(tmp,3);      } else {	argv[i] = TranslateFileName(argv[i],0);      }    }    if (strchr(argv[i], '"')) {      argv[i] = EscapeDoubleQuotes(argv[i]);    }    printf(" %s", argv[i]);  }  printf("\n");  rc = spawnvp(_P_WAIT,argv[0],argv);  if (rc == -1) {    fprintf(stderr,"%s: ",argv[0]);    perror("");    return 1;  }  return rc;}char *EscapeDoubleQuotes(char *in){  int i, j;  char *out = malloc(strlen(in) * 2 + 1);  j = 0;  for (i = 0; i < strlen(in); i++) {    if (in[i] == '"') {      out[j++] = '\\';    }    out[j++] = in[i];  }  out[j] = '\0';  return out;}char *dos[MAX_MOUNTS];char *unix[MAX_MOUNTS];int index[MAX_MOUNTS];int nmounts;char *TranslateFileName(char *in, int offset){  int i;  char *out = NULL;  for (i = 0; i < nmounts; i++) {    char *upath = unix[index[i]];    char *dpath = dos[index[i]];    if (strncmp(upath, &in[offset], strlen(upath)) == 0) {      out = malloc(strlen(in) - strlen(upath) + strlen(dpath) + 1);      strncpy(out, in, offset);      strcpy(out + offset, dpath);      strcat(out, &in[offset + strlen(upath)]);      break;    }  }  if (!out) {    out = malloc(strlen(in) + 1);    strcpy(out, in);  }  for (i = offset; i < strlen(out); i++) {    if (out[i] == '/') {      out[i] = '\\';    }  }  return out;}void GetOpenNTMounts(void){  char c;  nmounts = 0;  for (c = 'A'; c <= 'Z'; c++) {    unix[nmounts] = (char *)malloc(5);    sprintf(unix[nmounts], "//%c/", c);    dos[nmounts] = (char *)malloc(4);    sprintf(dos[nmounts], "%c:/", c);    index[nmounts] = nmounts;    nmounts++;  }  for (c = 'a'; c <= 'z'; c++) {    unix[nmounts] = (char *)malloc(5);    sprintf(unix[nmounts], "//%c/", c);    dos[nmounts] = (char *)malloc(4);    sprintf(dos[nmounts], "%c:/", c);    index[nmounts] = nmounts;    nmounts++;  }}void GetGnuwin32Mounts(void){  HKEY hkey;  LONG rc;  int len;  char key[256];  for (nmounts = 0; nmounts < MAX_MOUNTS; nmounts++) {    sprintf(key,	    "Software\\Cygnus Solutions\\CYGWIN.DLL setup\\b15.0\\mounts\\%02X"	    ,nmounts);    if (RegOpenKeyEx(HKEY_CURRENT_USER,		     key, 0, KEY_READ, &hkey) != ERROR_SUCCESS) {      if (nmounts == 0) {	printf("Couldn't find registry key '%s' - RegOpenKey error %d\n",	       key, GetLastError());	exit(1);      }      break;    }    if (RegQueryValueEx(hkey,"unix",NULL,NULL,NULL,&len) != ERROR_SUCCESS) {      printf("RegQueryValueEx failed - error %d\n",GetLastError());      exit(1);    }    unix[nmounts] = (char *)malloc(len+1);    RegQueryValueEx(hkey, "unix", NULL, NULL, unix[nmounts], &len);    if (RegQueryValueEx(hkey,"native",NULL,NULL,NULL,&len) != ERROR_SUCCESS) {      printf("RegQueryValueEx failed - error %d\n",GetLastError());      exit(1);    }    if (strcmp(unix[nmounts], "/") == 0) {      dos[nmounts] = (char *)malloc(len+2);      RegQueryValueEx(hkey, "native", NULL, NULL, dos[nmounts], &len);      dos[nmounts][len-1] = '\\';      dos[nmounts][len] = 0;    } else {      dos[nmounts] = (char *)malloc(len+1);      RegQueryValueEx(hkey, "native", NULL, NULL, dos[nmounts], &len);    }  }}intGetCygwinMounts(){    static char	key[] = "Software\\Cygnus Solutions\\Cygwin\\mounts v2";    HKEY	hkey;    HKEY	hkey1;    char	upath[1024];    DWORD	upathlen;    DWORD	len;    DWORD	i;    LONG	rc;    char        c;    char*       drvprefix;    if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, key, 0, KEY_READ, &hkey)	!= ERROR_SUCCESS)	return 0;    nmounts = 0;    if (RegQueryValueEx (hkey, "cygdrive prefix", NULL, NULL, NULL, &len)	    == ERROR_SUCCESS) {      drvprefix = (char *) malloc (len + 2);      RegQueryValueEx (hkey, "cygdrive prefix", NULL, NULL, drvprefix, &len);      if (drvprefix[strlen(drvprefix)-1] == '/')	drvprefix[strlen(drvprefix)-1] = '\0';          for (c = 'A'; c <= 'Z'; c++) {	unix[nmounts] = (char *)malloc(strlen(drvprefix) + 4);	sprintf(unix[nmounts], "%s/%c/", drvprefix, c);	dos[nmounts] = (char *)malloc(4);	sprintf(dos[nmounts], "%c:/", c);	index[nmounts] = nmounts;	nmounts++;      }      for (c = 'a'; c <= 'z'; c++) {	unix[nmounts] = (char *)malloc(strlen(drvprefix) + 4);	sprintf(unix[nmounts], "%s/%c/", drvprefix, c);	dos[nmounts] = (char *)malloc(4);	sprintf(dos[nmounts], "%c:/", c);	index[nmounts] = nmounts;	nmounts++;      }    }    for (i = 0; i < MAX_MOUNTS; i++) {	upathlen = sizeof(upath);	rc = RegEnumKeyEx (hkey, i, upath, &upathlen, NULL, NULL, NULL, NULL);	if (rc == ERROR_NO_MORE_ITEMS)	    break;	if (rc != ERROR_SUCCESS) {	    printf ("RegEnumKeyEx(%d) failed - error %d\n", i, GetLastError());	    exit(1);	}	if (RegOpenKeyEx (hkey, upath, 0, KEY_READ, &hkey1)	    != ERROR_SUCCESS) {	    printf ("RegOpenKeyEx() failed - error %d\n", GetLastError());	    exit(1);	}	unix[nmounts] = (char *) malloc (upathlen + 1);	strcpy (unix[nmounts], upath);	if (RegQueryValueEx (hkey1, "native", NULL, NULL, NULL, &len)	    != ERROR_SUCCESS) {	    printf("RegQueryValueEx failed - error %d\n",GetLastError());	    exit(1);	}	if (strcmp (unix[nmounts], "/") == 0) {	    dos[nmounts] = (char *) malloc (len + 2);	    RegQueryValueEx (hkey1, "native", NULL, NULL, dos[nmounts], &len);	    dos[nmounts][len-1] = '\\';	    dos[nmounts][len] = 0;	} else {	    dos[nmounts] = (char *) malloc (len + 1);	    RegQueryValueEx (hkey1, "native", NULL, NULL, dos[nmounts], &len);	}	nmounts++;    }    return 1;}intlongest_first (const void *pi, const void *pj){    int i = *(int *) pi;    int j = *(int *) pj;    return strlen (unix[j]) - strlen (unix[i]);}voidSortMounts(){    int i;    for (i = 0; i < nmounts; i++)	index[i] = i;    qsort (index, nmounts, sizeof(int), longest_first);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久网| 91精品国产综合久久精品app| 日本sm残虐另类| 亚洲国产美女搞黄色| 亚洲免费观看高清完整| 中文子幕无线码一区tr| 国产精品欧美极品| 综合在线观看色| 亚洲激情第一区| 午夜欧美电影在线观看| 久久国产麻豆精品| 国产制服丝袜一区| 成人午夜av在线| 99精品国产91久久久久久| 色综合久久88色综合天天6| 色噜噜狠狠一区二区三区果冻| 色88888久久久久久影院野外| 欧美三级中文字| 日韩一卡二卡三卡四卡| 国产人妖乱国产精品人妖| 亚洲人成精品久久久久| 青青草原综合久久大伊人精品| 精品亚洲成a人在线观看| 国产成人在线观看| 日本韩国欧美在线| 日韩午夜电影在线观看| 国产精品全国免费观看高清| 一区二区三区产品免费精品久久75| 三级成人在线视频| 国产盗摄一区二区三区| 精品视频999| 欧美激情一区二区三区在线| 一区二区三区成人在线视频 | 国产乱国产乱300精品| 成人教育av在线| 欧美另类z0zxhd电影| 国产日韩欧美精品综合| 亚洲在线中文字幕| 国产精品2024| 欧美挠脚心视频网站| 国产精品网站在线| 裸体在线国模精品偷拍| 日本韩国欧美三级| 国产蜜臀av在线一区二区三区| 亚洲午夜精品在线| caoporm超碰国产精品| 日韩欧美国产精品一区| 夜夜嗨av一区二区三区四季av | av亚洲精华国产精华精华| 欧美日韩国产在线观看| 国产精品久久久久久户外露出| 秋霞午夜av一区二区三区| 色偷偷88欧美精品久久久| 欧美精彩视频一区二区三区| 日韩电影在线观看电影| 在线观看成人免费视频| 国产精品视频一二三区| 国产乱妇无码大片在线观看| 日韩欧美不卡一区| 亚欧色一区w666天堂| 91香蕉视频污在线| 综合色天天鬼久久鬼色| 成人不卡免费av| 欧美激情综合在线| 国产91色综合久久免费分享| 久久久综合视频| 黑人巨大精品欧美黑白配亚洲| 51午夜精品国产| 日韩av在线发布| 91精品国产综合久久精品| 三级欧美韩日大片在线看| 欧美久久高跟鞋激| 日精品一区二区| 在线不卡欧美精品一区二区三区| 亚洲日本护士毛茸茸| 99久免费精品视频在线观看| 欧美激情一区二区三区四区| 波多野结衣的一区二区三区| 国产精品无码永久免费888| 成人综合日日夜夜| 亚洲日本在线a| 91福利区一区二区三区| 亚洲线精品一区二区三区| 91久久一区二区| 亚洲午夜在线视频| 日韩一二三四区| 狠狠狠色丁香婷婷综合激情| 久久精品在这里| 成人午夜av影视| 一区二区三区高清在线| 91精品一区二区三区久久久久久| 蜜臀av在线播放一区二区三区| 精品国产麻豆免费人成网站| 国产精品夜夜爽| 亚洲乱码中文字幕| 91精品国产综合久久久久久漫画 | 亚洲免费观看高清完整版在线观看熊| 一道本成人在线| 日韩电影在线一区二区三区| 2019国产精品| 91国偷自产一区二区三区成为亚洲经典| 亚洲午夜三级在线| 欧美大肚乱孕交hd孕妇| av不卡一区二区三区| 日本亚洲最大的色成网站www| 久久久精品国产99久久精品芒果| 成人深夜福利app| 视频一区二区三区中文字幕| 精品粉嫩aⅴ一区二区三区四区| 成人涩涩免费视频| 日韩和欧美的一区| 中日韩av电影| 欧美一级黄色大片| 91日韩在线专区| 激情综合亚洲精品| 亚洲午夜精品一区二区三区他趣| 精品久久久久99| 精品视频1区2区| 成人爽a毛片一区二区免费| 日日摸夜夜添夜夜添亚洲女人| 欧美激情一区三区| 精品少妇一区二区| 欧美日本一道本| 91美女片黄在线观看91美女| 精品一区二区在线免费观看| 亚洲一区二区三区四区五区中文| 久久亚洲影视婷婷| 51精品秘密在线观看| 色哟哟在线观看一区二区三区| 国产美女精品人人做人人爽 | 国内欧美视频一区二区| 一区二区免费在线| 国产精品久久久久久久久动漫 | 韩国一区二区在线观看| 五月激情综合色| 樱桃视频在线观看一区| 国产精品国产自产拍高清av| 久久久午夜电影| 欧美成人激情免费网| 欧美精品一级二级三级| 欧美日韩亚洲丝袜制服| 91黄色激情网站| 91久久精品一区二区三区| www.久久久久久久久| 成人国产电影网| 成人中文字幕电影| 成人黄色在线网站| 9久草视频在线视频精品| 不卡高清视频专区| av高清不卡在线| 色综合色狠狠天天综合色| av不卡一区二区三区| 97久久精品人人做人人爽 | 欧美综合一区二区| 91在线免费视频观看| 91一区二区三区在线观看| 成年人网站91| 色综合色综合色综合| 在线观看不卡一区| 8v天堂国产在线一区二区| 91精品国产高清一区二区三区| 欧美男男青年gay1069videost | 亚洲色图欧美激情| 亚洲欧美一区二区三区国产精品| 亚洲欧美日韩系列| 亚洲国产wwwccc36天堂| 日本中文在线一区| 激情丁香综合五月| caoporen国产精品视频| 日本精品免费观看高清观看| 欧美挠脚心视频网站| 精品久久久久99| 国产精品久久久久久久久动漫| 亚洲视频一二区| 偷拍与自拍一区| 精品一区二区三区久久久| 国产69精品久久777的优势| 色综合天天综合给合国产| 欧美体内she精高潮| 51久久夜色精品国产麻豆| ww久久中文字幕| 国产精品福利一区二区三区| 亚洲风情在线资源站| 国产一区91精品张津瑜| 日本乱人伦aⅴ精品| 精品少妇一区二区三区在线视频| 国产精品欧美一区喷水| 日韩成人精品视频| av亚洲产国偷v产偷v自拍| 欧美一区二区三区小说| 最新久久zyz资源站| 日本成人在线视频网站| 99久久综合精品| 日韩美女视频一区二区在线观看| 中文一区一区三区高中清不卡| 亚洲成人激情社区| 成人黄色av网站在线| 精品久久久久久久一区二区蜜臀| 一区二区三区在线播放| 国产精品亚洲成人|