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

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

?? escape.c

?? linux下獲取一些環境信息的代碼
?? C
字號:
/* * Copyright 1998-2002 by Albert Cahalan; all rights resered.          * This file may be used subject to the terms and conditions of the * GNU Library General Public License Version 2, or any later version   * at your option, as published by the Free Software Foundation. * 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 Library General Public License for more details. */                                 #include <stdio.h>#include <sys/types.h>#include <string.h>#include "procps.h"#include "escape.h"#include "readproc.h"#if (__GNU_LIBRARY__ >= 6)# include <wchar.h># include <wctype.h># include <stdlib.h>  /* MB_CUR_MAX */# include <ctype.h># include <langinfo.h>#endif#if (__GNU_LIBRARY__ >= 6)static int escape_str_utf8(char *restrict dst, const char *restrict src, int bufsize, int *maxcells){  int my_cells = 0;  int my_bytes = 0;  mbstate_t s;    memset(&s, 0, sizeof (s));    for(;;) {    wchar_t wc;    int len = 0;	      if(my_cells >= *maxcells || my_bytes+1 >= bufsize)       break;        if (!(len = mbrtowc (&wc, src, MB_CUR_MAX, &s)))      /* 'str' contains \0 */      break;        if (len < 0) {      /* invalid multibyte sequence -- zeroize state */      memset (&s, 0, sizeof (s));      *(dst++) = '?';      src++;      my_cells++;       my_bytes++;    } else if (len==1) {      /* non-multibyte */      *(dst++) = isprint(*src) ? *src : '?';      src++;      my_cells++;      my_bytes++;          } else if (!iswprint(wc)) {      /* multibyte - no printable */      *(dst++) = '?';      src+=len;      my_cells++;      my_bytes++;         } else {      /* multibyte - printable */	      int wlen = wcwidth(wc);      if (wlen==0) {	// invisible multibyte -- we don't ignore it, because some terminal 	// interpret it wrong and more safe is replace it with '?'	*(dst++) = '?';	src+=len;	my_cells++;	my_bytes++;      } else {        // multibyte - printable        // Got space?        if (my_cells+wlen > *maxcells || my_bytes+1+len >= bufsize) break;        // 0x9b is control byte for some terminals        if (memchr(src, 0x9B, len)) {	  // unsafe multibyte	  *(dst++) = '?';	  src+=len;	  my_cells++;	  my_bytes++;        } else {	  // safe multibyte       	  memcpy(dst, src, len);	  my_cells += wlen;	  dst += len;	  my_bytes += len;          src += len;        }      }    }    //fprintf(stdout, "cells: %d\n", my_cells);  }  *(dst++) = '\0';  // fprintf(stderr, "maxcells: %d, my_cells; %d\n", *maxcells, my_cells);    *maxcells -= my_cells;  return my_bytes;        // bytes of text, excluding the NUL}#endif /* __GNU_LIBRARY__  *//* sanitize a string via one-way mangle */int escape_str(char *restrict dst, const char *restrict src, int bufsize, int *maxcells){  unsigned char c;  int my_cells = 0;  int my_bytes = 0;  const char codes[] =  "Z-------------------------------"  "********************************"  "********************************"  "*******************************-"  "--------------------------------"  "********************************"  "********************************"  "********************************";  #if (__GNU_LIBRARY__ >= 6)  static int utf_init=0;    if(utf_init==0){     /* first call -- check if UTF stuff is usable */     char *enc = nl_langinfo(CODESET);     utf_init = enc && strcasecmp(enc, "UTF-8")==0 ? 1 : -1;  }  if (utf_init==1)     /* UTF8 locales */     return escape_str_utf8(dst, src, bufsize, maxcells);#endif		    if(bufsize > *maxcells+1) bufsize=*maxcells+1; // FIXME: assumes 8-bit locale  for(;;){    if(my_cells >= *maxcells || my_bytes+1 >= bufsize)       break;    c = (unsigned char) *(src++);    if(!c) break;    if(codes[c]=='-') c='?';    my_cells++;    my_bytes++;    *(dst++) = c;  }  *(dst++) = '\0';    *maxcells -= my_cells;  return my_bytes;        // bytes of text, excluding the NUL}/////////////////////////////////////////////////// escape an argv or environment string array//// bytes arg means sizeof(buf)int escape_strlist(char *restrict dst, const char *restrict const *restrict src, size_t bytes, int *cells){  size_t i = 0;  for(;;){    i += escape_str(dst+i, *src, bytes-i, cells);    if(bytes-i < 3) break;  // need room for space, a character, and the NUL    src++;    if(!*src) break;  // need something to print    if (*cells<=1) break;  // need room for printed size of text    dst[i++] = ' ';    --*cells;  }  return i;    // bytes, excluding the NUL}///////////////////////////////////////////////////int escape_command(char *restrict const outbuf, const proc_t *restrict const pp, int bytes, int *cells, unsigned flags){  int overhead = 0;  int end = 0;  if(flags & ESC_ARGS){    const char **lc = (const char**)pp->cmdline;    if(lc && *lc) return escape_strlist(outbuf, lc, bytes, cells);  }  if(flags & ESC_BRACKETS){    overhead += 2;  }  if(flags & ESC_DEFUNCT){    if(pp->state=='Z') overhead += 10;    // chars in " <defunct>"    else flags &= ~ESC_DEFUNCT;  }  if(overhead + 1 >= *cells){  // if no room for even one byte of the command name    // you'd damn well better have _some_ space//    outbuf[0] = '-';  // Oct23    outbuf[1] = '\0';    return 1;  }  if(flags & ESC_BRACKETS){    outbuf[end++] = '[';  }  *cells -= overhead;  end += escape_str(outbuf+end, pp->cmd, bytes-overhead, cells);  // Hmmm, do we want "[foo] <defunct>" or "[foo <defunct>]"?  if(flags & ESC_BRACKETS){    outbuf[end++] = ']';  }  if(flags & ESC_DEFUNCT){    memcpy(outbuf+end, " <defunct>", 10);    end += 10;  }  outbuf[end] = '\0';  return end;  // bytes, not including the NUL}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
六月丁香婷婷色狠狠久久| 欧美日韩视频在线一区二区| 青青草一区二区三区| 五月婷婷色综合| 亚洲成av人影院在线观看网| 亚洲自拍欧美精品| 亚洲午夜久久久久久久久久久 | 亚洲欧美欧美一区二区三区| 国产精品福利一区二区三区| 国产精品国产自产拍高清av| 中文字幕免费观看一区| 中文字幕日韩精品一区 | 国产综合成人久久大片91| 麻豆精品一区二区三区| 91免费版pro下载短视频| 懂色一区二区三区免费观看| 不卡电影免费在线播放一区| 91蜜桃在线观看| 欧美性感一区二区三区| 91精品国产综合久久久久久久久久 | 欧美视频一区在线观看| 在线观看91精品国产麻豆| 欧美一二三四区在线| 亚洲精品在线网站| 中文字幕乱码日本亚洲一区二区 | 国产成人免费视频| 不卡的av在线| 欧美性高清videossexo| 日韩欧美一区二区久久婷婷| 国产亚洲精品7777| 亚洲男人的天堂在线aⅴ视频| 亚洲资源中文字幕| 裸体健美xxxx欧美裸体表演| 国产精品 日产精品 欧美精品| www.亚洲色图| 欧美酷刑日本凌虐凌虐| 久久久久99精品一区| 亚洲色图欧洲色图婷婷| 日韩成人午夜精品| 精品一区二区久久久| 91在线云播放| 欧美一级生活片| 中文一区一区三区高中清不卡| 亚洲国产一区视频| 国产一区二区三区黄视频| 91蝌蚪porny九色| 欧美一级国产精品| 日韩一区在线看| 裸体健美xxxx欧美裸体表演| 97成人超碰视| 精品国产91亚洲一区二区三区婷婷| 国产精品久久久久一区| 免费看精品久久片| 色婷婷综合激情| 久久毛片高清国产| 亚洲成人你懂的| 高潮精品一区videoshd| 91精品视频网| 亚洲欧美另类图片小说| 狠狠久久亚洲欧美| 欧美在线制服丝袜| 久久先锋影音av| 亚洲成人激情自拍| 99免费精品视频| 欧美不卡一区二区三区| 亚洲综合久久久久| 高清视频一区二区| 日韩欧美高清dvd碟片| 亚洲男女毛片无遮挡| 国产老肥熟一区二区三区| 欧美美女网站色| 亚洲免费伊人电影| 国产v综合v亚洲欧| 日韩小视频在线观看专区| 有坂深雪av一区二区精品| 粉嫩久久99精品久久久久久夜 | 亚洲一区二区在线播放相泽| 成人精品国产福利| 久久久久国产精品厨房| 久久精品国产亚洲高清剧情介绍| 在线观看成人小视频| 日韩理论在线观看| 国产成人一区在线| 一区二区三区美女| 国产乱码字幕精品高清av | 亚洲精品水蜜桃| 粉嫩av亚洲一区二区图片| 精品国产91久久久久久久妲己 | 久久精品理论片| 欧美丰满美乳xxx高潮www| 一区二区三区欧美视频| 97精品视频在线观看自产线路二| 国产日韩欧美综合在线| 精品制服美女丁香| 日韩欧美亚洲另类制服综合在线| 亚洲va欧美va国产va天堂影院| 99re这里都是精品| 中文字幕日韩一区二区| 成人短视频下载| 国产精品网曝门| 国产精品白丝av| 久久色在线观看| 韩国精品免费视频| 久久久精品综合| 国产精品一级在线| 国产欧美1区2区3区| 国产精品99久| 国产精品久99| 91农村精品一区二区在线| 亚洲激情中文1区| 精品视频在线免费观看| 香蕉成人啪国产精品视频综合网| 欧美日韩一区二区在线视频| 天天色图综合网| 日韩一区二区精品葵司在线| 激情欧美一区二区| 国产午夜精品久久| 99久久久国产精品| 一二三区精品视频| 欧美日韩一区二区三区高清| 午夜精品久久久久久久蜜桃app| 91精品一区二区三区久久久久久| 三级不卡在线观看| 精品久久久久久久久久久院品网| 韩国一区二区视频| 久久美女高清视频| 99在线精品视频| 调教+趴+乳夹+国产+精品| 欧美一区二区播放| 久久成人18免费观看| 国产精品久久久久婷婷二区次| 91免费视频网址| 青青草97国产精品免费观看无弹窗版| 精品久久久久av影院| 成人一级片网址| 亚洲一区视频在线观看视频| 日韩免费福利电影在线观看| 国产传媒久久文化传媒| 一区二区三区四区在线免费观看| 91精品国产一区二区三区蜜臀| 国产原创一区二区| 亚洲欧美色图小说| 日韩小视频在线观看专区| 国产凹凸在线观看一区二区| 亚洲无人区一区| 日韩精品国产欧美| 久久久三级国产网站| 91免费视频网| 国模冰冰炮一区二区| 亚洲精品国产品国语在线app| 欧美电影影音先锋| 成人av综合一区| 日韩av电影免费观看高清完整版在线观看| 26uuu欧美| 欧美日韩在线直播| 国产精品1区2区| 无吗不卡中文字幕| 国产精品久久久久久久久免费相片| 欧美日韩精品欧美日韩精品一 | 欧美日韩精品综合在线| 国产高清成人在线| 亚洲超丰满肉感bbw| 欧美国产禁国产网站cc| 欧美日韩精品欧美日韩精品| 不卡av在线免费观看| 美日韩一区二区| 亚洲另类春色校园小说| xnxx国产精品| 欧美日韩二区三区| 成人av电影观看| 国精产品一区一区三区mba视频 | 久久97超碰色| 亚洲永久免费视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 成人高清视频在线| 久久激情综合网| 午夜视频久久久久久| 亚洲日本韩国一区| 国产欧美一区二区精品忘忧草| 欧美一区二视频| 欧美午夜不卡在线观看免费| av网站一区二区三区| 国产在线精品视频| 蜜桃av噜噜一区| 视频一区二区中文字幕| 亚洲精品欧美在线| 综合久久久久综合| 久久蜜桃av一区精品变态类天堂| 91精品国产综合久久福利软件 | 777色狠狠一区二区三区| 日本二三区不卡| 99精品热视频| 波多野结衣欧美| 大美女一区二区三区| 国产精品一区二区视频| 久久99国产精品免费| 青椒成人免费视频| 日本不卡视频一二三区| 日韩精品乱码av一区二区| 天天操天天综合网|