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

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

?? tui-file.c

?? gdb-6.0 linux 下的調(diào)試工具
?? C
字號:
/* UI_FILE - a generic STDIO like output stream.   Copyright 1999, 2000, 2001 Free Software Foundation, Inc.   This file is part of GDB.   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place - Suite 330,   Boston, MA 02111-1307, USA.  */#include "defs.h"#include "ui-file.h"#include "tui/tui-file.h"#include "tui/tuiIO.h"#include "tui.h"#include <string.h>/* A ``struct ui_file'' that is compatible with all the legacy   code. *//* new */enum streamtype{  afile,  astring};/* new */struct tui_stream{  int *ts_magic;  enum streamtype ts_streamtype;  FILE *ts_filestream;  char *ts_strbuf;  int ts_buflen;};static ui_file_flush_ftype tui_file_flush;extern ui_file_fputs_ftype tui_file_fputs;static ui_file_isatty_ftype tui_file_isatty;static ui_file_rewind_ftype tui_file_rewind;static ui_file_put_ftype tui_file_put;static ui_file_delete_ftype tui_file_delete;static struct ui_file *tui_file_new (void);static int tui_file_magic;static struct ui_file *tui_file_new (void){  struct tui_stream *tui = xmalloc (sizeof (struct tui_stream));  struct ui_file *file = ui_file_new ();  set_ui_file_data (file, tui, tui_file_delete);  set_ui_file_flush (file, tui_file_flush);  set_ui_file_fputs (file, tui_file_fputs);  set_ui_file_isatty (file, tui_file_isatty);  set_ui_file_rewind (file, tui_file_rewind);  set_ui_file_put (file, tui_file_put);  tui->ts_magic = &tui_file_magic;  return file;}static voidtui_file_delete (struct ui_file *file){  struct tui_stream *tmpstream = ui_file_data (file);  if (tmpstream->ts_magic != &tui_file_magic)    internal_error (__FILE__, __LINE__,		    "tui_file_delete: bad magic number");  if ((tmpstream->ts_streamtype == astring) &&      (tmpstream->ts_strbuf != NULL))    {      xfree (tmpstream->ts_strbuf);    }  xfree (tmpstream);}struct ui_file *tui_fileopen (FILE *stream){  struct ui_file *file = tui_file_new ();  struct tui_stream *tmpstream = ui_file_data (file);  tmpstream->ts_streamtype = afile;  tmpstream->ts_filestream = stream;  tmpstream->ts_strbuf = NULL;  tmpstream->ts_buflen = 0;  return file;}struct ui_file *tui_sfileopen (int n){  struct ui_file *file = tui_file_new ();  struct tui_stream *tmpstream = ui_file_data (file);  tmpstream->ts_streamtype = astring;  tmpstream->ts_filestream = NULL;  if (n > 0)    {      tmpstream->ts_strbuf = xmalloc ((n + 1) * sizeof (char));      tmpstream->ts_strbuf[0] = '\0';    }  else    /* Do not allocate the buffer now.  The first time something is printed       one will be allocated by tui_file_adjust_strbuf()  */    tmpstream->ts_strbuf = NULL;  tmpstream->ts_buflen = n;  return file;}static inttui_file_isatty (struct ui_file *file){  struct tui_stream *stream = ui_file_data (file);  if (stream->ts_magic != &tui_file_magic)    internal_error (__FILE__, __LINE__,		    "tui_file_isatty: bad magic number");  if (stream->ts_streamtype == afile)    return (isatty (fileno (stream->ts_filestream)));  else    return 0;}static voidtui_file_rewind (struct ui_file *file){  struct tui_stream *stream = ui_file_data (file);  if (stream->ts_magic != &tui_file_magic)    internal_error (__FILE__, __LINE__,		    "tui_file_rewind: bad magic number");  stream->ts_strbuf[0] = '\0';}static voidtui_file_put (struct ui_file *file,	      ui_file_put_method_ftype *write,	      void *dest){  struct tui_stream *stream = ui_file_data (file);  if (stream->ts_magic != &tui_file_magic)    internal_error (__FILE__, __LINE__,		    "tui_file_put: bad magic number");  if (stream->ts_streamtype == astring)    write (dest, stream->ts_strbuf, strlen (stream->ts_strbuf));}/* All TUI I/O sent to the *_filtered and *_unfiltered functions   eventually ends up here.  The fputs_unfiltered_hook is primarily   used by GUIs to collect all output and send it to the GUI, instead   of the controlling terminal.  Only output to gdb_stdout and   gdb_stderr are sent to the hook.  Everything else is sent on to   fputs to allow file I/O to be handled appropriately.  *//* FIXME: Should be broken up and moved to a TUI specific file. */voidtui_file_fputs (const char *linebuffer, struct ui_file *file){  struct tui_stream *stream = ui_file_data (file);  if (stream->ts_streamtype == astring)    {      tui_file_adjust_strbuf (strlen (linebuffer), file);      strcat (stream->ts_strbuf, linebuffer);    }  else    {      tui_puts (linebuffer);    }}char *tui_file_get_strbuf (struct ui_file *file){  struct tui_stream *stream = ui_file_data (file);  if (stream->ts_magic != &tui_file_magic)    internal_error (__FILE__, __LINE__,		    "tui_file_get_strbuf: bad magic number");  return (stream->ts_strbuf);}/* adjust the length of the buffer by the amount necessary   to accomodate appending a string of length N to the buffer contents */voidtui_file_adjust_strbuf (int n, struct ui_file *file){  struct tui_stream *stream = ui_file_data (file);  int non_null_chars;  if (stream->ts_magic != &tui_file_magic)    internal_error (__FILE__, __LINE__,		    "tui_file_adjust_strbuf: bad magic number");  if (stream->ts_streamtype != astring)    return;  if (stream->ts_strbuf)    {      /* There is already a buffer allocated */      non_null_chars = strlen (stream->ts_strbuf);      if (n > (stream->ts_buflen - non_null_chars - 1))	{	  stream->ts_buflen = n + non_null_chars + 1;	  stream->ts_strbuf = xrealloc (stream->ts_strbuf, stream->ts_buflen);	}    }  else    /* No buffer yet, so allocate one of the desired size */    stream->ts_strbuf = xmalloc ((n + 1) * sizeof (char));}static voidtui_file_flush (struct ui_file *file){  struct tui_stream *stream = ui_file_data (file);  if (stream->ts_magic != &tui_file_magic)    internal_error (__FILE__, __LINE__,		    "tui_file_flush: bad magic number");  switch (stream->ts_streamtype)    {    case astring:      break;    case afile:      fflush (stream->ts_filestream);      break;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡一区二区三区| 亚洲大片一区二区三区| 欧美三级一区二区| 亚洲一二三专区| 欧美日韩精品一区二区在线播放| 亚洲综合av网| 91精品国产一区二区三区蜜臀| 免费成人在线网站| 欧美成人video| 国产精品一区免费视频| 国产精品剧情在线亚洲| 色视频成人在线观看免| 日韩经典一区二区| 精品国产亚洲一区二区三区在线观看| 国产乱人伦精品一区二区在线观看 | 成人免费高清在线| 亚洲日本免费电影| 91.com视频| 岛国精品在线播放| 午夜亚洲福利老司机| xf在线a精品一区二区视频网站| 成人一区在线观看| 亚洲午夜一区二区| 久久综合丝袜日本网| 91丨九色丨蝌蚪丨老版| 日本午夜精品视频在线观看| 国产欧美一区二区在线| 欧美日韩亚洲综合在线| 国产精品1区2区3区在线观看| 亚洲欧美精品午睡沙发| 精品国产乱码久久久久久夜甘婷婷| 大美女一区二区三区| 午夜精品一区二区三区免费视频 | 亚洲欧洲色图综合| 6080国产精品一区二区| 成人黄色软件下载| 视频在线观看一区| 国产精品成人一区二区艾草 | 久久精品人人做人人综合| 日本韩国精品在线| 国产激情一区二区三区| 男人操女人的视频在线观看欧美| 国产精品久久久久一区 | 91福利精品视频| 韩国毛片一区二区三区| 亚洲1区2区3区视频| 国产精品理论片在线观看| 日韩欧美久久久| 欧美日韩国产免费| 成人高清免费观看| 激情小说欧美图片| 免费观看一级欧美片| 亚洲福利一区二区| 国产精品久久久久久福利一牛影视| 欧美一区二区三区不卡| 欧美午夜精品久久久久久超碰| 成人免费毛片高清视频| 国产真实乱对白精彩久久| 天天操天天干天天综合网| 一级女性全黄久久生活片免费| 国产拍欧美日韩视频二区| 精品少妇一区二区三区免费观看 | 蜜臀国产一区二区三区在线播放| 亚洲黄色片在线观看| 国产精品国产三级国产普通话三级| 日韩美女天天操| 色哟哟国产精品免费观看| 国产不卡视频在线播放| 国产一区二区导航在线播放| 日本欧美韩国一区三区| 午夜精品一区二区三区免费视频 | 精品亚洲国内自在自线福利| 日本不卡不码高清免费观看| 亚洲高清免费视频| 亚洲第一精品在线| 亚洲国产视频一区二区| 一区二区三区四区在线| 中文字幕一区视频| 综合色天天鬼久久鬼色| 国产精品成人网| 亚洲欧美日韩国产手机在线| 亚洲欧美一区二区三区孕妇| 亚洲免费观看视频| 亚洲综合一区二区| 亚洲一级二级三级在线免费观看| 亚洲高清一区二区三区| 午夜av一区二区三区| 免费成人结看片| 精品一区二区免费视频| 国产精一区二区三区| 懂色av一区二区三区免费看| 97久久超碰国产精品电影| 91高清视频在线| 欧美人与禽zozo性伦| 日韩一区二区电影网| 精品欧美一区二区久久| 国产亚洲精品免费| 国产精品传媒入口麻豆| 亚洲午夜在线视频| 麻豆传媒一区二区三区| 成人激情视频网站| 欧美日韩国产精选| 欧美一区二区播放| 国产人久久人人人人爽| 一区二区三区欧美视频| 免费在线看一区| 国产成人精品影院| 欧美三级中文字幕| 精品成人在线观看| 亚洲三级电影网站| 日本美女一区二区| 成人小视频在线观看| 欧美三级蜜桃2在线观看| 精品国产乱码久久久久久老虎| 国产精品色呦呦| 亚洲国产成人av网| 国产成人aaa| 欧美日韩综合一区| 美腿丝袜在线亚洲一区| 国产成人综合亚洲91猫咪| 欧美午夜视频网站| 欧美电影免费观看高清完整版在| 亚洲欧美综合另类在线卡通| 日韩精品福利网| 成人成人成人在线视频| 欧美一区二区视频免费观看| 《视频一区视频二区| 欧美aaa在线| 91麻豆免费观看| 久久久久97国产精华液好用吗| 亚洲综合色视频| 高清在线不卡av| 666欧美在线视频| 亚洲免费在线视频| 福利一区二区在线| 日韩午夜在线观看| 亚洲一区二区av在线| 99久久er热在这里只有精品15 | 中文字幕不卡的av| 视频一区二区中文字幕| 91丨porny丨国产入口| 久久精品亚洲精品国产欧美kt∨| 天天av天天翘天天综合网色鬼国产| 91一区二区三区在线观看| 精品久久国产97色综合| 亚洲丰满少妇videoshd| 色综合久久中文综合久久97| 国产欧美一区二区三区鸳鸯浴 | 亚洲欧美日韩一区二区| 国产成人av在线影院| 精品久久久久久综合日本欧美| 午夜一区二区三区视频| 91成人网在线| 国产精品久久久久久久蜜臀| 国产一区二区三区av电影| 日韩一级完整毛片| 日韩成人精品在线观看| 欧美人与性动xxxx| 亚洲国产va精品久久久不卡综合| 91免费观看在线| 中文字幕在线不卡一区二区三区| 国产一区二区在线视频| 欧美va亚洲va国产综合| 青椒成人免费视频| 欧美日韩精品系列| 日韩在线一区二区三区| 欧美日韩一区二区三区不卡| 亚洲一区二区三区在线| 欧美日韩在线不卡| 午夜精品视频在线观看| 欧美精品视频www在线观看| 天涯成人国产亚洲精品一区av| 欧美日本一区二区三区四区 | 九一九一国产精品| 精品欧美一区二区在线观看| 极品尤物av久久免费看| 久久久亚洲精品一区二区三区| 日韩欧美视频在线| 韩国女主播成人在线| 国产欧美日韩视频在线观看| 成人av资源站| 樱花影视一区二区| 欧美日韩性生活| 久久精品99国产精品| 久久色在线视频| 成人ar影院免费观看视频| 综合电影一区二区三区 | 91丨九色丨黑人外教| 亚洲一区二区三区影院| 欧美一级视频精品观看| 国产乱子伦视频一区二区三区| 欧美激情一区二区三区四区| 色先锋aa成人| 免费人成在线不卡| 久久精品在这里| 在线亚洲高清视频| 麻豆91小视频| 亚洲色图在线视频| 欧美丰满少妇xxxxx高潮对白| 国产一区二区三区|