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

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

?? display.c

?? 基于的linux的oracle sqlplus替代工具
?? C
?? 第 1 頁 / 共 5 頁
字號:
	      line_size = (temp + 1024) - (temp % 1024);	      visible_line = (char *)xrealloc (visible_line, line_size);	      line = invisible_line = (char *)xrealloc (invisible_line, line_size);	    }	  strncpy (line + out, local_prompt, local_len);	  out += local_len;	}      line[out] = '\0';      wrap_offset = local_len - prompt_visible_length;    }  else    {      int pmtlen;      prompt_this_line = strrchr (rl_display_prompt, '\n');      if (!prompt_this_line)	prompt_this_line = rl_display_prompt;      else	{	  prompt_this_line++;	  pmtlen = prompt_this_line - rl_display_prompt;	/* temp var */	  if (forced_display)	    {	      _rl_output_some_chars (rl_display_prompt, pmtlen);	      /* Make sure we are at column zero even after a newline,		 regardless of the state of terminal output processing. */	      if (pmtlen < 2 || prompt_this_line[-2] != '\r')		cr ();	    }	}      pmtlen = strlen (prompt_this_line);      temp = pmtlen + out + 2;      if (temp >= line_size)	{	  line_size = (temp + 1024) - (temp % 1024);	  visible_line = (char *)xrealloc (visible_line, line_size);	  line = invisible_line = (char *)xrealloc (invisible_line, line_size);	}      strncpy (line + out,  prompt_this_line, pmtlen);      out += pmtlen;      line[out] = '\0';      wrap_offset = prompt_invis_chars_first_line = 0;    }#define CHECK_INV_LBREAKS() \      do { \	if (newlines >= (inv_lbsize - 2)) \	  { \	    inv_lbsize *= 2; \	    inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \	  } \      } while (0)#if defined (HANDLE_MULTIBYTE)	  #define CHECK_LPOS() \      do { \	lpos++; \	if (lpos >= _rl_screenwidth) \	  { \	    if (newlines >= (inv_lbsize - 2)) \	      { \		inv_lbsize *= 2; \		inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \		_rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \	      } \	    inv_lbreaks[++newlines] = out; \	    _rl_wrapped_line[newlines] = _rl_wrapped_multicolumn; \	    lpos = 0; \	  } \      } while (0)#else#define CHECK_LPOS() \      do { \	lpos++; \	if (lpos >= _rl_screenwidth) \	  { \	    if (newlines >= (inv_lbsize - 2)) \	      { \		inv_lbsize *= 2; \		inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \	      } \	    inv_lbreaks[++newlines] = out; \	    lpos = 0; \	  } \      } while (0)#endif  /* inv_lbreaks[i] is where line i starts in the buffer. */  inv_lbreaks[newlines = 0] = 0;  lpos = out - wrap_offset;#if defined (HANDLE_MULTIBYTE)  memset (_rl_wrapped_line, 0, vis_lbsize);#endif  /* prompt_invis_chars_first_line is the number of invisible characters in     the first physical line of the prompt.     wrap_offset - prompt_invis_chars_first_line is the number of invis     chars on the second line. */  /* what if lpos is already >= _rl_screenwidth before we start drawing the     contents of the command line? */  while (lpos >= _rl_screenwidth)    {      /* fix from Darin Johnson <darin@acuson.com> for prompt string with         invisible characters that is longer than the screen width.  The         prompt_invis_chars_first_line variable could be made into an array         saying how many invisible characters there are per line, but that's         probably too much work for the benefit gained.  How many people have         prompts that exceed two physical lines? */      temp = ((newlines + 1) * _rl_screenwidth) +#if 0             ((newlines == 0) ? prompt_invis_chars_first_line : 0) +#else             ((newlines == 0 && local_prompt_prefix == 0) ? prompt_invis_chars_first_line : 0) +#endif             ((newlines == 1) ? wrap_offset : 0);      inv_lbreaks[++newlines] = temp;      lpos -= _rl_screenwidth;    }  prompt_last_screen_line = newlines;  /* Draw the rest of the line (after the prompt) into invisible_line, keeping     track of where the cursor is (c_pos), the number of the line containing     the cursor (lb_linenum), the last line number (lb_botlin and inv_botlin).     It maintains an array of line breaks for display (inv_lbreaks).     This handles expanding tabs for display and displaying meta characters. */  lb_linenum = 0;#if defined (HANDLE_MULTIBYTE)  in = 0;  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)    {      memset (&ps, 0, sizeof (mbstate_t));      wc_bytes = mbrtowc (&wc, rl_line_buffer, rl_end, &ps);    }  else    wc_bytes = 1;  while (in < rl_end)#else  for (in = 0; in < rl_end; in++)#endif    {      c = (unsigned char)rl_line_buffer[in];#if defined (HANDLE_MULTIBYTE)      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)	{	  if (wc_bytes == (size_t)-1 || wc_bytes == (size_t)-2)	    {	      /* Byte sequence is invalid or shortened.  Assume that the	         first byte represents a character. */	      wc_bytes = 1;	      /* Assume that a character occupies a single column. */	      wc_width = 1;	      memset (&ps, 0, sizeof (mbstate_t));	    }	  else if (wc_bytes == (size_t)0)	    break;			/* Found '\0' */	  else	    {	      temp = wcwidth (wc);	      wc_width = (temp < 0) ? 1 : temp;	    }	}#endif      if (out + 8 >= line_size)		/* XXX - 8 for \t */	{	  line_size *= 2;	  visible_line = (char *)xrealloc (visible_line, line_size);	  invisible_line = (char *)xrealloc (invisible_line, line_size);	  line = invisible_line;	}      if (in == rl_point)	{	  c_pos = out;	  lb_linenum = newlines;	}#if defined (HANDLE_MULTIBYTE)      if (META_CHAR (c) && _rl_output_meta_chars == 0)	/* XXX - clean up */#else      if (META_CHAR (c))#endif	{	  if (_rl_output_meta_chars == 0)	    {	      sprintf (line + out, "\\%o", c);	      if (lpos + 4 >= _rl_screenwidth)		{		  temp = _rl_screenwidth - lpos;		  CHECK_INV_LBREAKS ();		  inv_lbreaks[++newlines] = out + temp;		  lpos = 4 - temp;		}	      else		lpos += 4;	      out += 4;	    }	  else	    {	      line[out++] = c;	      CHECK_LPOS();	    }	}#if defined (DISPLAY_TABS)      else if (c == '\t')	{	  register int newout;#if 0	  newout = (out | (int)7) + 1;#else	  newout = out + 8 - lpos % 8;#endif	  temp = newout - out;	  if (lpos + temp >= _rl_screenwidth)	    {	      register int temp2;	      temp2 = _rl_screenwidth - lpos;	      CHECK_INV_LBREAKS ();	      inv_lbreaks[++newlines] = out + temp2;	      lpos = temp - temp2;	      while (out < newout)		line[out++] = ' ';	    }	  else	    {	      while (out < newout)		line[out++] = ' ';	      lpos += temp;	    }	}#endif      else if (c == '\n' && _rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)	{	  line[out++] = '\0';	/* XXX - sentinel */	  CHECK_INV_LBREAKS ();	  inv_lbreaks[++newlines] = out;	  lpos = 0;	}      else if (CTRL_CHAR (c) || c == RUBOUT)	{	  line[out++] = '^';	  CHECK_LPOS();	  line[out++] = CTRL_CHAR (c) ? UNCTRL (c) : '?';	  CHECK_LPOS();	}      else	{#if defined (HANDLE_MULTIBYTE)	  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)	    {	      register int i;	      _rl_wrapped_multicolumn = 0;	      if (_rl_screenwidth < lpos + wc_width)		for (i = lpos; i < _rl_screenwidth; i++)		  {		    /* The space will be removed in update_line() */		    line[out++] = ' ';		    _rl_wrapped_multicolumn++;		    CHECK_LPOS();		  }	      if (in == rl_point)		{		  c_pos = out;		  lb_linenum = newlines;		}	      for (i = in; i < in+wc_bytes; i++)		line[out++] = rl_line_buffer[i];	      for (i = 0; i < wc_width; i++)		CHECK_LPOS();	    }	  else	    {	      line[out++] = c;	      CHECK_LPOS();	    }#else	  line[out++] = c;	  CHECK_LPOS();#endif	}#if defined (HANDLE_MULTIBYTE)      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)	{	  in += wc_bytes;	  wc_bytes = mbrtowc (&wc, rl_line_buffer + in, rl_end - in, &ps);	}      else        in++;#endif    }  line[out] = '\0';  if (c_pos < 0)    {      c_pos = out;      lb_linenum = newlines;    }  inv_botlin = lb_botlin = newlines;  CHECK_INV_LBREAKS ();  inv_lbreaks[newlines+1] = out;  cursor_linenum = lb_linenum;  /* C_POS == position in buffer where cursor should be placed.     CURSOR_LINENUM == line number where the cursor should be placed. */  /* PWP: now is when things get a bit hairy.  The visible and invisible     line buffers are really multiple lines, which would wrap every     (screenwidth - 1) characters.  Go through each in turn, finding     the changed region and updating it.  The line order is top to bottom. */  /* If we can move the cursor up and down, then use multiple lines,     otherwise, let long lines display in a single terminal line, and     horizontally scroll it. */  if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)    {      int nleft, pos, changed_screen_line;      if (!rl_display_fixed || forced_display)	{	  forced_display = 0;	  /* If we have more than a screenful of material to display, then	     only display a screenful.  We should display the last screen,	     not the first.  */	  if (out >= _rl_screenchars)	    {	      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)		out = _rl_find_prev_mbchar (line, _rl_screenchars, MB_FIND_ANY);	      else		out = _rl_screenchars - 1;	    }	  /* The first line is at character position 0 in the buffer.  The	     second and subsequent lines start at inv_lbreaks[N], offset by	     OFFSET (which has already been calculated above).  */#define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)#define VIS_LLEN(l)	((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l]))#define INV_LLEN(l)	(inv_lbreaks[l+1] - inv_lbreaks[l])#define VIS_CHARS(line) (visible_line + vis_lbreaks[line])#define VIS_LINE(line) ((line) > _rl_vis_botlin) ? "" : VIS_CHARS(line)#define INV_LINE(line) (invisible_line + inv_lbreaks[line])	  /* For each line in the buffer, do the updating display. */	  for (linenum = 0; linenum <= inv_botlin; linenum++)	    {	      update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum,			   VIS_LLEN(linenum), INV_LLEN(linenum), inv_botlin);	      /* If this is the line with the prompt, we might need to		 compensate for invisible characters in the new line. Do		 this only if there is not more than one new line (which		 implies that we completely overwrite the old visible line)		 and the new line is shorter than the old.  Make sure we are		 at the end of the new line before clearing. */	      if (linenum == 0 &&		  inv_botlin == 0 && _rl_last_c_pos == out &&		  (wrap_offset > visible_wrap_offset) &&		  (_rl_last_c_pos < visible_first_line_len))		{		  nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos;		  if (nleft)		    _rl_clear_to_eol (nleft);		}	      /* Since the new first line is now visible, save its length. */	      if (linenum == 0)		visible_first_line_len = (inv_botlin > 0) ? inv_lbreaks[1] : out - wrap_offset;	    }	  /* We may have deleted some lines.  If so, clear the left over	     blank ones at the bottom out. */	  if (_rl_vis_botlin > inv_botlin)	    {	      char *tt;	      for (; linenum <= _rl_vis_botlin; linenum++)		{		  tt = VIS_CHARS (linenum);		  _rl_move_vert (linenum);		  _rl_move_cursor_relative (0, tt);		  _rl_clear_to_eol		    ((linenum == _rl_vis_botlin) ? strlen (tt) : _rl_screenwidth);		}	    }	  _rl_vis_botlin = inv_botlin;	  /* CHANGED_SCREEN_LINE is set to 1 if we have moved to a	     different screen line during this redisplay. */	  changed_screen_line = _rl_last_v_pos != cursor_linenum;	  if (changed_screen_line)	    {	      _rl_move_vert (cursor_linenum);	      /* If we moved up to the line with the prompt using _rl_term_up,		 the physical cursor position on the screen stays the same,		 but the buffer position needs to be adjusted to account		 for invisible characters. */	      if (cursor_linenum == 0 && wrap_offset)		_rl_last_c_pos += wrap_offset;	    }	  /* We have to reprint the prompt if it contains invisible	     characters, since it's not generally OK to just reprint	     the characters from the current cursor position.  But we	     only need to reprint it if the cursor is before the last	     invisible character in the prompt string. */	  nleft = prompt_visible_length + wrap_offset;	  if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&	      _rl_last_c_pos <= prompt_last_invisible && local_prompt)	    {#if defined (__MSDOS__)	      putc ('\r', rl_outstream);#else	      if (_rl_term_cr)		tputs (_rl_term_cr, 1, _rl_output_character_function);#endif	      _rl_output_some_chars (local_prompt, nleft);	      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)		_rl_last_c_pos = _rl_col_width(local_prompt, 0, nleft);	      else		_rl_last_c_pos = nleft;	    }	  /* Where on that line?  And where does that line start	     in the buffer? */	  pos = inv_lbreaks[cursor_linenum];	  /* nleft == number of characters in the line buffer between the	     start of the line and the cursor position. */	  nleft = c_pos - pos;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区不卡| 国产成人综合精品三级| 麻豆高清免费国产一区| 国产毛片精品一区| 在线一区二区三区四区五区| 4438x成人网最大色成网站| 精品国产伦理网| 中文字幕在线观看一区| 日日夜夜免费精品| 国产成人综合精品三级| 欧美群妇大交群中文字幕| 久久精品人人做| 亚洲成人在线观看视频| 国产一区二区三区黄视频| 91网上在线视频| 日韩欧美国产精品一区| 亚洲视频在线一区观看| 日韩国产欧美一区二区三区| 国产成人丝袜美腿| 欧美日韩精品免费观看视频 | 五月综合激情网| 国产精品一区2区| 欧美视频在线观看一区| 国产日产欧美一区二区三区| 肉色丝袜一区二区| 91免费在线播放| 国产亚洲精品aa午夜观看| 亚洲电影激情视频网站| 成人美女视频在线观看18| 6080国产精品一区二区| 国产精品动漫网站| 美腿丝袜亚洲综合| 日本韩国欧美在线| 中文字幕欧美国产| 国内精品久久久久影院色| 欧美专区在线观看一区| 欧美国产1区2区| 看电影不卡的网站| 欧美色综合久久| **欧美大码日韩| 国产一区在线观看视频| 欧美高清hd18日本| 亚洲欧美日韩一区二区三区在线观看| 寂寞少妇一区二区三区| 欧美日韩国产乱码电影| 亚洲人成在线播放网站岛国| 国产精品一区二区久久不卡| 欧美美女bb生活片| 亚洲免费毛片网站| av成人老司机| 国产欧美日韩精品一区| 国产一区二区三区在线看麻豆| 欧美精品丝袜中出| 亚洲高清免费观看高清完整版在线观看 | 丰满少妇久久久久久久| 精品国产亚洲在线| 麻豆精品一二三| 91精品国产色综合久久ai换脸| 亚洲一区二区三区国产| 91亚洲精华国产精华精华液| 国产精品久久久久aaaa樱花| 国产成人在线看| 久久精品人人做| 国产精华液一区二区三区| 久久久久久免费| 黑人精品欧美一区二区蜜桃 | 国产自产高清不卡| 日韩欧美中文字幕制服| 麻豆精品一二三| 欧美mv日韩mv| 麻豆91精品91久久久的内涵| 91超碰这里只有精品国产| 午夜精品成人在线视频| 欧美女孩性生活视频| 天堂va蜜桃一区二区三区漫画版 | 亚洲va欧美va人人爽| 欧美日本在线一区| 午夜电影一区二区| 在线电影院国产精品| 日韩精品欧美成人高清一区二区| 欧美久久婷婷综合色| 日韩成人一级片| 日韩免费观看高清完整版 | 国产免费观看久久| 国产美女娇喘av呻吟久久| 亚洲国产精品精华液ab| 成人激情午夜影院| 亚洲天堂av一区| 欧美中文字幕一区二区三区亚洲| 亚洲第一综合色| 欧美成人女星排名| 国产成人综合亚洲91猫咪| 国产精品乱码一区二区三区软件 | 国产精品福利影院| 91久久精品一区二区| 亚洲高清中文字幕| 日韩精品一区二区三区视频| 精品一区二区在线视频| 欧美国产日韩a欧美在线观看 | 亚洲小少妇裸体bbw| 欧美日韩精品一区视频| 久久99国产精品成人| 国产午夜亚洲精品午夜鲁丝片 | 亚洲福利一区二区| 日韩一区二区免费电影| 久久99久久久欧美国产| 国产欧美一区二区在线观看| 91麻豆国产在线观看| 天天影视网天天综合色在线播放| 日韩精品一区二区三区在线播放 | 亚洲综合色噜噜狠狠| 欧美精品黑人性xxxx| 国产一区视频在线看| 亚洲三级在线免费| 日韩视频免费直播| 欧美日韩专区在线| 国内成人精品2018免费看| 中文字幕亚洲不卡| 欧美日韩一区小说| 狠狠色丁香婷婷综合| 一区二区三区在线播放| 欧美一区二区在线看| 成人看片黄a免费看在线| 亚洲国产成人91porn| 久久九九久精品国产免费直播| 色婷婷亚洲精品| 狠狠狠色丁香婷婷综合激情| 亚洲综合一区在线| 久久精品亚洲乱码伦伦中文 | 五月天视频一区| 国产精品久久久久一区二区三区共| 欧美私人免费视频| 国产成人av电影在线观看| 天天综合色天天综合| 亚洲欧洲日产国码二区| 精品欧美久久久| 精品视频一区二区不卡| 成人性生交大片免费看中文 | 日韩精品一区二区三区中文不卡| 色综合久久久久网| 国产高清亚洲一区| 久久9热精品视频| 亚洲r级在线视频| 国产精品久久综合| 久久综合久久久久88| 欧美人狂配大交3d怪物一区| 91啪九色porn原创视频在线观看| 国内成人自拍视频| 蜜臀a∨国产成人精品| 亚洲一区二区三区国产| 国产精品成人午夜| 久久久久久久久久久久久夜| 91麻豆精品国产自产在线| 色婷婷久久久亚洲一区二区三区| 狠狠色综合色综合网络| 偷拍自拍另类欧美| 亚洲自拍偷拍图区| 一区二区三区在线免费观看| 国产精品久99| 国产免费观看久久| 久久精品一区蜜桃臀影院| 欧美大片在线观看| 欧美一区二区三级| 欧美高清精品3d| 欧美日本一道本在线视频| 91久久免费观看| 在线观看三级视频欧美| 91亚洲精华国产精华精华液| 播五月开心婷婷综合| 国产suv精品一区二区6| 国产麻豆一精品一av一免费| 久久99热99| 国产一区免费电影| 国模少妇一区二区三区| 精品一区二区三区久久久| 男女男精品视频| 秋霞影院一区二区| 蜜桃一区二区三区四区| 免播放器亚洲一区| 六月丁香婷婷久久| 精品一区二区免费视频| 九九九久久久精品| 国内精品在线播放| 国产一区二区三区综合| 国产精品亚洲专一区二区三区 | 国产亚洲欧美一区在线观看| 精品久久久久99| 国产欧美精品一区| 国产精品久久看| 亚洲男人都懂的| 亚洲国产精品嫩草影院| 亚洲成人中文在线| 蜜臀国产一区二区三区在线播放| 美腿丝袜一区二区三区| 国产一区二区主播在线| www.欧美亚洲| 成人激情黄色小说| 色婷婷av一区二区三区gif| 欧美日免费三级在线| 日韩欧美你懂的|