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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? yabasic.c

?? 很簡(jiǎn)單的編譯器!不過(guò)最重要的是思想!
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
    break;
  }
#elif WINDOWS
  GetConsoleMode(ConsoleInput,&oflags);
  flags=oflags&~(ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT);
  SetConsoleMode(ConsoleInput,flags);
  skey="";
  if (ms==0) {
    PeekConsoleInput(ConsoleInput,&inrec,1,&num);
    if (num==0) goto keydone;
    ReadConsoleInput(ConsoleInput,&inrec,1,&num);
    if (!is_valid_key(&inrec)) goto keydone;
  }
  else if (ms>0) {
    end=GetTickCount()+ms;
    do {	
      now=GetTickCount();
      left=end-now;
      if (left>0) {
	ret=WaitForSingleObject(ConsoleInput,left);
	if (ret==WAIT_OBJECT_0) ReadConsoleInput(ConsoleInput,&inrec,1,&num);
      }
    } while(left>0 && ret==WAIT_OBJECT_0 && !is_valid_key(&inrec));
    if (left<=0 || ret!=WAIT_OBJECT_0) goto keydone;
  }
  else { /* if (ms<0) */
    do {
      ReadConsoleInput(ConsoleInput,&inrec,1,&num);
    } while(!is_valid_key(&inrec));	
  }
  skey=keybuff;
  if (isprint(inrec.Event.KeyEvent.uChar.AsciiChar)) {
    keybuff[0]=inrec.Event.KeyEvent.uChar.AsciiChar;
    keybuff[1]='\0';
  }
  else {
    key=inrec.Event.KeyEvent.wVirtualKeyCode;
    switch(key) {
    case 0x1b: skey="esc";break;
    case 0x0d: skey="enter";break;
    case 0x09: skey="tab";break;
    case 0x21: skey="scrnup";break;
    case 0x22: skey="scrndown";break;
    case 0x70: skey="f1";break;
    case 0x71: skey="f2";break;
    case 0x72: skey="f3";break;
    case 0x73: skey="f4";break;
    case 0x74: skey="f5";break;
    case 0x75: skey="f6";break;
    case 0x76: skey="f7";break;
    case 0x77: skey="f8";break;
    case 0x78: skey="f9";break;
    case 0x79: skey="f10";break;
    case 0x7a: skey="f11";break;
    case 0x7b: skey="f12";break;
    case 0x24: skey="home";break;
    case 0x23: skey="end";break;
    case 0x2d: skey="ins";break;
    case 0x2e: skey="del";break;
    case 0x08: skey="backspace";break;
    case 0x27: skey="right";break;
    case 0x25: skey="left";break;
    case 0x28: skey="down";break;
    case 0x26: skey="up";break;
    default:
      sprintf(keybuff,"key%02x",key);
    }
  }
 keydone:
  SetConsoleMode(ConsoleInput,oflags);
#endif
  return my_strdup(skey);
}

#ifdef WINDOWS	
int is_valid_key(INPUT_RECORD *rec) /* check if input rec contains valid key */
{
  if (rec->EventType!=KEY_EVENT || 
      !rec->Event.KeyEvent.bKeyDown ||
      rec->Event.KeyEvent.wVirtualKeyCode==VK_SHIFT ||
      rec->Event.KeyEvent.wVirtualKeyCode==VK_CONTROL) {
    return FALSE;
  }
  return TRUE;
}
#endif		
		

void create_openwin(int fnt) /* create Command 'openwin' */
{
  struct command *cmd;
	
  cmd=add_command(cOPENWIN);
  cmd->args=fnt;
}


void openwin(struct command *cmd) /* open a Window */
{
  int fnt;
  static int first=TRUE; /* flag to decide if initialization is necessary */
#ifdef UNIX
  static XEvent event; /* what has happened ? */
  XSetWindowAttributes attrib; /* properties of window */
#endif
	
  if (winopened) {
    error(WARNING,"Window already open");
    return;
  }
	
  fnt=cmd->args;
  if (fnt) font=my_strdup(pop()->pointer);
	
  winheight=(int)pop()->value;
  if (winheight<1) {
    error(ERROR,"winheight less than 1 pixel");
    return;
  }
	
  winwidth=(int)pop()->value;
  if (winwidth<1) {
    error(ERROR,"winwidth less than 1 pixel");
    return;
  }
	
  /* initialize grafics */
  if (first && !grafinit()) return;
	
#ifdef UNIX
	
  /* create the window */
  /*  window=XCreateSimpleWindow(display,root,winx,winy,winwidth,winheight,
      0,0,b_colour); */

  attrib.backing_store=Always;
  attrib.save_under=TRUE;
  attrib.background_pixel=b_colour;
  window=XCreateWindow(display,root,winx,winy,winwidth,winheight,0,
		       CopyFromParent,CopyFromParent,CopyFromParent,
		       CWBackingStore|CWSaveUnder|CWBackPixel,
		       &attrib);

  if (window==None) {
    error(ERROR,"Could not create window");
    return;
  }

  /* put in name for the window */
  XStoreName(display,window,progname);
	
  /* set size hints */
  XSetWMNormalHints(display,window,&sizehints);
	
  /* display it */
  XMapWindow(display,window);
	
  /* wait for exposure */
  XSelectInput(display,window,0xffffff);
  XFlush(display);
  do {
    XNextEvent(display,&event);
  } while(event.type!=VisibilityNotify);
  XSelectInput(display,window,0);
	
#else /* WINDOWS */
	
  if (wtevent==INVALID_HANDLE_VALUE) wtevent=CreateEvent(NULL,FALSE,FALSE,"winevent");
  ResetEvent(wtevent);
  /* create thread to care for window */
  wthandle=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)winthread,
			     0,0,(LPDWORD)&wtid);
  if (wthandle==NULL) {
    error(ERROR,"can't create thread for window");
    return;
  }
	
  WaitForSingleObject(wtevent,INFINITE);
  	
#endif
  first=FALSE;
  winopened=TRUE;
  calc_psscale();
}


int grafinit(void)  /* initialize grafics (either X or WIN95) */
{
	
#ifdef UNIX
  static int screen; /* Number of Screen on Display */
  static XColor asked,got; /* color is complex ... */
  static Colormap map; /* my color map */
  static XGCValues xgcvalues; /* Values for Graphics Context */
  static unsigned int w,h; /* width and height of window */
#elif WINDOWS
  int n;
  int f; /* int-value of font */
  char *family; /* font family */
#endif
	
#ifdef UNIX
	
  /* get display */
  display=XOpenDisplay(displayname);
  if (display==NULL) {
    error(ERROR,"Can't open Display");
    return FALSE;
  }
    
  /* get screen */
  screen=DefaultScreen(display);
  root=RootWindow(display,screen);
	
  /* care for colors */
  if (DefaultDepth(display,screen)==1) {  /* BW-Screen ? */
    f_colour=BlackPixel(display,screen);
    b_colour=WhitePixel(display,screen); }
  else {
    map=DefaultColormap(display,screen);
    if (foreground==NULL) 
      foreground=XGetDefault(display,"yabasic","foreground");
    if (foreground==NULL) foreground="black";
		
    if (!XAllocNamedColor(display,map,foreground,&got,&asked)) {
      sprintf(string,"could not get fg-color '%s', trying 'black' instead",
	      foreground);
      error(WARNING,string);
      if (!XAllocNamedColor(display,map,"black",&got,&asked)) {
	error(ERROR,"could not get it");
	return FALSE;
      }
    }
    f_colour=got.pixel;
		
    if (background==NULL) 
      background=XGetDefault(display,"yabasic","background");
    if (background==NULL) background="white";
    if (!XAllocNamedColor(display,map,background,&got,&asked)) {
      sprintf(string,"could not get bg-color '%s', trying 'white' instead",
	      background);
      error(WARNING,string);
      if (!XAllocNamedColor(display,map,"white", &got,&asked)) {
	error(ERROR,"could not get it");
	return FALSE;
      }
    }
    b_colour=got.pixel;
  }
	
  /* get size hints */
  if (geometry==NULL) geometry=XGetDefault(display,"yabasic","geometry");
  XParseGeometry(geometry,&winx,&winy,&w,&h);
  sizehints.x=winx;
  sizehints.y=winy;
  sizehints.flags=USPosition;
	
  /* get font height */
  if (!font) font=XGetDefault(display,"yabasic","font");
  if (!font) font="6x10";
  myfont=XLoadQueryFont(display,font);
  if (!myfont) {
    sprintf(string,"could not load font '%s', trying 'fixed' instead",font);
    error(WARNING,string);
    myfont=XLoadQueryFont(display,"fixed");
    if (!myfont) {
      error(ERROR,"could not get it");
      return FALSE;
    }
  }
  xgcvalues.font=myfont->fid;
  fontheight=myfont->ascent;
    
  /* create graphics context, accept defaults ... */
  xgcvalues.foreground=f_colour;
  xgcvalues.background=b_colour;
  gc=XCreateGC(display,root,GCForeground|GCBackground|GCFont,&xgcvalues);
  /* create graphics context for reverse drawing */
  xgcvalues.foreground=b_colour;
  xgcvalues.background=f_colour;
  rgc=XCreateGC(display,root,GCForeground|GCBackground,&xgcvalues);
	
#elif WINDOWS
	
  /* choose font */
  if (!font) font=getreg("font");
  if (!font) font="swiss13";
  f=FF_SWISS;
  fontheight=13;    
    
  family=my_strdup(font);
  for(n=0;*(family+n)!='\0' && !isdigit(*(family+n));n++)
    *(family+n)=tolower((int)*(family+n));
  if (isdigit(*(family+n))) sscanf(family+n,"%d",&fontheight);
  *(family+n)='\0';
    
  if (!strcmp("decorative",family)) f=FF_DECORATIVE;
  else if (!strcmp("dontcare",family)) f=FF_DONTCARE;
  else if (!strcmp("modern",family)) f=FF_MODERN;
  else if (!strcmp("roman",family)) f=FF_ROMAN;
  else if (!strcmp("script",family)) f=FF_SCRIPT;
  else if (!strcmp("swiss",family)) f=FF_SWISS;
  else {
    sprintf(string,"Don't know font '%s' using 'swiss' instead",font);
    error(WARNING,string);
    f=FF_SWISS;
  }
    
  logfont.lfHeight=-fontheight;
  logfont.lfWidth=0;
  logfont.lfEscapement=0;
  logfont.lfOrientation=0;
  logfont.lfWeight=FW_DONTCARE;
  logfont.lfItalic=FALSE;
  logfont.lfUnderline=FALSE;
  logfont.lfStrikeOut=FALSE;
  logfont.lfCharSet=DEFAULT_CHARSET;
  logfont.lfOutPrecision=OUT_DEFAULT_PRECIS;
  logfont.lfClipPrecision=CLIP_DEFAULT_PRECIS;
  logfont.lfQuality=DEFAULT_QUALITY;
  logfont.lfPitchAndFamily=DEFAULT_PITCH | f;
  logfont.lfFaceName[0]='\0';
  myfont=CreateFontIndirect(&logfont);
	
  if (myfont==NULL) {
    sprintf(string,"Could not create font '%s' for screen",font);
    error(ERROR,string);
    return FALSE;
  }
#endif
  return TRUE;
}

void calc_psscale()  /* calculate scale-factor for postscript */
{
  if ((float)winwidth/winheight>(float)18/25)
    psscale=18*0.39*72/winwidth;
  else
    psscale=25*0.39*72/winheight;
}


void dot() /* draw a dot */
{
  double x,y;
	
  y=pop()->value;
  x=pop()->value;
  transform(&x,&y);
  if (!winopened) {
    error(ERROR,"Got no window to draw");
    return;
  }
#ifdef UNIX
  XDrawPoint(display,window,gc,x,y);
  XFlush(display);
  if (printerfile) {
    fprintf(printerfile,"%g %g D\n",
            (x-0.5)*psscale,(winheight-y+0.5)*psscale);
  }
#elif WINDOWS
  startdraw();
  SetPixelV(devcon,(int)x,(int)y,RGB(0,0,0));
  SetPixelV(bitcon,(int)x,(int)y,RGB(0,0,0));
  if (printer) {
    MoveToEx(printer,(int)(x*prnscale+prnoff),(int)(y*prnscale+prnoff),NULL);
    LineTo(printer,(int)(x*prnscale+prnoff),(int)(y*prnscale+prnoff));
  }
  ReleaseDC(window,devcon);
#endif
}


void create_line(char flag) /* create Command 'line' */
{
  struct command *cmd;
	
  cmd=add_command(cLINE);
  cmd->tag=flag;
}


void line(struct command *cmd) /* draw a line */
{
  double x1,y1,x2,y2;
  double nx,ny,px,py,norm;
  int arrow;
  static double lastx,lasty;
  static int lastvalid=FALSE;
	
  if (!winopened) {
    error(ERROR,"Got no window to draw");
    return;
  }
	
  if (cmd->tag=='n') {
    lastvalid=FALSE;
    return;
  }
  arrow=(cmd->tag=='a');
  y2=pop()->value;
  x2=pop()->value;
  if (cmd->tag=='t') {
    if (!lastvalid) {
      lastx=x2;
      lasty=y2;
      lastvalid=TRUE;
      return;
    }
    y1=lasty;
    x1=lastx;
  }
  else {
    y1=pop()->value;
    x1=pop()->value;
  }
  lastx=x2;
  lasty=y2;
  transform(&x1,&y1);
  transform(&x2,&y2);
	
  if (arrow) {
    px=x2-x1;
    py=y2-y1;
    nx=py;
    ny=-px;
    norm=sqrt(nx*nx+ny*ny);
    nx*=0.4*fontheight/norm;
    ny*=0.4*fontheight/norm;
    px*=0.8*fontheight/norm;
    py*=0.8*fontheight/norm;
  }
	
  do_line(x1,y1,x2,y2);
  if (arrow) {
    do_line(x2,y2,x2-px+nx,y2-py+ny);
    do_line(x2,y2,x2-px-nx,y2-py-ny);
  }
}


void do_line(double x1,double y1,double x2,double y2) /* draw a line */
{
#ifdef UNIX
  XDrawLine(display,window,gc,x1,y1,x2,y2);
  XFlush(display);
  if(printerfile) {
    fprintf(printerfile,"N\n");
    fprintf(printerfile,"%g %g M\n",
            x1*psscale,(winheight-y1)*psscale);
    fprintf(printerfile,"%g %g L S\n",
            x2*psscale,(winheight-y2)*psscale);
  }
  fflush(printerfile);
#elif WINDOWS
  startdraw();
  MoveToEx(devcon,(int)x1,(int)y1,NULL);
  LineTo(devcon,(int)x2,(int)y2);
  MoveToEx(bitcon,(int)x1,(int)y1,NULL);
  LineTo(bitcon,(int)x2,(int)y2);
  if (printer) {
    MoveToEx(printer,(int)(x1*prnscale+prnoff),(int)(y1*prnscale+prnoff),NULL);
    LineTo(printer,(int)(x2*prnscale+prnoff),(int)(y2*prnscale+prnoff));
  }
  ReleaseDC(window,devcon);
#endif
}


void circle() /* draw a circle */
{
  double x,y,r;
	
  r=pop()->value;
  y=pop()->value;
  x=pop()->value;
  transform(&x,&y);
  if (!winopened) {
    error(ERROR,"Got no window to draw");
    return;
  }
  do_circle(x,y,r);
}


void do_circle(double x,double y,double r) /* actually draw the circle */
{
#ifdef UNIX
  XDrawArc(display,window,gc,x-r,y-r,2*r,2*r,0*64,360*64);
  XFlush(display);
  if(printerfile) {
    fprintf(printerfile,"N\n");
    fprintf(printerfile,"%g %g %g C S\n",
            x*psscale,(winheight-y)*psscale,r*psscale);
    fflush(printerfile);
  }
#else /* WINDOWS */
  startdraw();
  Arc(devcon,(int)(x-r),(int)(y-r),(int)(x+r),(int)(y+r),0,0,0,0);
  Arc(bitcon,(int)(x-r),(int)(y-r),(int)(x+r),(int)(y+r),0,0,0,0);
  if (printer) {
    Arc(printer,(int)((x-r)*prnscale+prnoff),(int)((y-r)*prnscale+prnoff),
	(int)((x+r)*prnscale+prnoff),(int)((y+r)*prnscale+prnoff),0,0,0,0); 
  }
  ReleaseDC(window,devcon);
#endif
}


void create_text(int has_alignement) /* create Command 'text' */
{
  struct command *cmd;
	
  cmd=add_command(cTEXT);
  cmd->args=has_alignement;
}


void text(struct command *cmd) /* write a text */
{
  double x,y;
  char *text,*alignement;
	
  if (cmd->args) {
    alignement=pop()->pointer;
    if (!check_alignement(alignement)) return;
  }    
  else {
    alignement=text_align;
  }
  text=pop()->pointer;
  y=pop()->value;
  x=pop()->value;
  transform(&x,&y);
  if (!winopened) {
    error(ERROR,"Got no window to draw");
    return;
  }
  do_text((int)x,(int)y,text,alignement);
}


int check_alignement(char *al) /* checks, if text-alignement is valid */
{
  al[0]=tolower((int)al[0]);
  al[1]=tolower((int)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡视频在线播放| 色婷婷av一区| 亚洲一区二区综合| 26uuu欧美| 欧美日韩精品一区二区三区四区| 极品少妇xxxx偷拍精品少妇| 亚洲精品中文在线| 久久久久久久久久电影| 9191久久久久久久久久久| 成人福利视频在线看| 看电视剧不卡顿的网站| 亚洲在线观看免费视频| 国产精品国产三级国产普通话99| 日韩欧美电影一二三| 欧美性videosxxxxx| 99免费精品视频| 国产一区二区三区久久悠悠色av| 亚洲成a人v欧美综合天堂 | 91精品欧美福利在线观看| 99热在这里有精品免费| 另类成人小视频在线| 天堂资源在线中文精品| 亚洲一区二区五区| 一区二区三区国产豹纹内裤在线| 日本一区二区电影| 国产欧美日韩久久| 国产亚洲一区二区三区在线观看 | 中文字幕一区二区不卡| 久久综合九色欧美综合狠狠| 欧美一级二级三级乱码| 欧美日韩一区精品| 欧美在线短视频| 色综合天天综合网国产成人综合天 | 在线观看一区不卡| 99国产精品国产精品毛片| 国产成人免费视频| 成人性生交大片免费| 国产传媒久久文化传媒| 国产精品性做久久久久久| 国产乱码一区二区三区| 国产精品一二三四| 国产很黄免费观看久久| 成熟亚洲日本毛茸茸凸凹| 国产成人免费视| 97精品久久久久中文字幕| 日本韩国精品在线| 欧美视频完全免费看| 欧美日韩一区中文字幕| 日韩午夜激情视频| 亚洲精品一区二区三区精华液| 日韩欧美一区中文| 久久亚洲精华国产精华液| 国产午夜亚洲精品羞羞网站| 国产欧美一区二区精品性色| 国产精品电影一区二区| 亚洲精品免费在线| 日日夜夜精品视频免费| 精品一区二区三区免费视频| 国产乱码字幕精品高清av| 91伊人久久大香线蕉| 欧美日韩精品三区| 精品伦理精品一区| 国产精品青草综合久久久久99| 亚洲欧美一区二区三区极速播放| 亚洲免费av高清| 久久精品国产亚洲a| 丁香婷婷综合激情五月色| 91免费在线播放| 欧美一区二区在线看| 国产欧美一区二区三区鸳鸯浴 | 亚洲高清久久久| 精久久久久久久久久久| 成+人+亚洲+综合天堂| 欧美日韩一区二区在线观看视频| 欧美va亚洲va| 亚洲人成电影网站色mp4| 三级成人在线视频| 国产福利电影一区二区三区| 日本道色综合久久| 欧美成人国产一区二区| 亚洲私人影院在线观看| 日本不卡的三区四区五区| 成人一区在线观看| 欧美高清dvd| 国产精品卡一卡二| 日本不卡高清视频| 91亚洲精品一区二区乱码| 日韩免费高清电影| 一区二区三区精品久久久| 国产一区二区三区免费看 | 欧美日韩亚洲综合在线| 中文字幕第一页久久| 蜜臀av国产精品久久久久| 色综合欧美在线| 2022国产精品视频| 日韩精品亚洲一区二区三区免费| 波多野结衣91| 亚洲精品在线观| 性做久久久久久免费观看欧美| 国产成人精品网址| 日韩美女在线视频| 亚洲国产美国国产综合一区二区| 成人免费毛片嘿嘿连载视频| 日韩美女主播在线视频一区二区三区| 亚洲人成网站色在线观看| 国产成人99久久亚洲综合精品| 91精品久久久久久蜜臀| 亚洲精品免费在线观看| 波多野结衣精品在线| 久久久www成人免费无遮挡大片| 婷婷中文字幕综合| 在线一区二区三区四区五区| 中文成人av在线| 国产一区二区三区黄视频 | 久久福利资源站| 欧美久久久久免费| 亚洲免费三区一区二区| 成人免费黄色大片| 久久精品一区二区三区不卡 | 蜜桃91丨九色丨蝌蚪91桃色| 欧美三级电影网站| 亚洲精品一卡二卡| 色综合网色综合| 亚洲免费观看高清完整版在线观看熊| 成人理论电影网| 亚洲国产高清在线观看视频| 国产精一品亚洲二区在线视频| 日韩欧美中文一区二区| 热久久一区二区| 欧美一级搡bbbb搡bbbb| 无码av免费一区二区三区试看| 在线精品观看国产| 亚洲午夜羞羞片| 欧美日韩日日夜夜| 日韩精品五月天| 欧美一级欧美三级在线观看| 视频一区在线视频| 欧美巨大另类极品videosbest| 亚洲国产中文字幕在线视频综合 | 成人免费高清在线观看| 国产亚洲欧美一级| 国产电影精品久久禁18| 中文字幕av资源一区| 国产成人av一区二区三区在线| 国产亚洲成年网址在线观看| 国产成人超碰人人澡人人澡| 国产精品毛片高清在线完整版| 成人中文字幕合集| 亚洲精品自拍动漫在线| 欧美日本在线视频| 美女一区二区三区| 久久亚洲综合色一区二区三区| 国产毛片精品一区| 国产精品美女久久久久久久网站| 成人亚洲一区二区一| 亚洲另类春色校园小说| 欧美日本在线看| 另类小说综合欧美亚洲| 国产亚洲污的网站| 91丨九色丨黑人外教| 亚洲国产成人va在线观看天堂| 日韩欧美一二三四区| 高清国产一区二区| 一区二区三区国产| 日韩欧美不卡在线观看视频| 国产91精品久久久久久久网曝门| 中文字幕一区二区三| 欧美电影影音先锋| 国产精品白丝av| 亚洲一区欧美一区| 精品国产伦一区二区三区免费 | 日韩欧美精品在线视频| 国产成人8x视频一区二区| 一级日本不卡的影视| 日韩一区国产二区欧美三区| 国产+成+人+亚洲欧洲自线| 亚洲风情在线资源站| 国产香蕉久久精品综合网| 欧美视频完全免费看| 国产高清不卡一区二区| 亚洲午夜视频在线观看| 久久日韩粉嫩一区二区三区| 色女孩综合影院| 久久精品国产久精国产| 亚洲色图色小说| 精品国产一区久久| 色狠狠桃花综合| 国产一区三区三区| 婷婷夜色潮精品综合在线| 亚洲国产精品传媒在线观看| 欧美高清一级片在线| 91一区二区在线| 国产一区二区不卡| 捆绑紧缚一区二区三区视频| 中文字幕第一页久久| 日韩午夜激情av| 日本高清成人免费播放| 成人毛片视频在线观看| 激情综合色播激情啊| 亚洲.国产.中文慕字在线|