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

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

?? misc.c

?? 這是針對 Linux (i386)平臺的 minigui 3.6.2 開發包(MiniGUI-Processes 運行模式)。
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** $Id: misc.c,v 1.57.4.2 2005/03/02 02:59:49 panweiguo Exp $**** misc.c: This file include some miscelleous functions. **** Copyright (C) 2003 Feynman Software.** Copyright (C) 1999 ~ 2002 Wei Yongming.**** Create date: 1998/12/31**** Current maintainer: Wei Yongming.*//*** 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*//*** TODO:*/ #include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <errno.h>#include <limits.h>#include "common.h"#include "minigui.h"#include "gdi.h"#include "window.h"#include "misc.h"#ifndef __NOUNIX__#    include <unistd.h>#    include <time.h>#    include <pwd.h>#    include <sys/ioctl.h>#    include <sys/types.h>#endif#ifdef _CLIPBOARD_SUPPORT#include "clipboard.h"#endif/* Handle of MiniGUI etc file object */GHANDLE hMgEtc = 0;#ifndef _INCORE_RES/* Initialize MiniGUI etc file object, call before accessing MiniGUI etc value */BOOL InitMgEtc (void){    if (hMgEtc)        return TRUE;    if ( !(hMgEtc = LoadEtcFile (ETCFILEPATH)) )        return FALSE;    return TRUE;}/* Terminate MiniGUI etc file object */void TerminateMgEtc (void){    UnloadEtcFile (hMgEtc);    hMgEtc = 0;}#elseextern ETC_S MGETC;BOOL InitMgEtc (void){    extern ETC_S MGETC;    hMgEtc = (GHANDLE) &MGETC;    return TRUE;}void TerminateMgEtc (void) { }#endif /* _INCORE_RES */#ifndef _INCORE_RESchar ETCFILEPATH [MAX_PATH + 1];#define ETCFILENAME "MiniGUI.cfg"static BOOL LookForEtcFile (void){    char etcfile [MAX_PATH + 1];    char buff [10];    struct passwd *pwd;    if ((pwd = getpwuid (geteuid ())) != NULL) {        strcpy (etcfile, pwd->pw_dir);        if (etcfile [strlen (etcfile) - 1] != '/')            strcat (etcfile, "/");        strcat (etcfile, ".");        strcat (etcfile, ETCFILENAME);        if (GetValueFromEtcFile (etcfile, "system", "gal_engine", buff, 8) ==  ETC_OK) {            strcpy (ETCFILEPATH, etcfile);            return TRUE;        }    }    strcpy (etcfile, "/usr/local/etc/" ETCFILENAME);    if (GetValueFromEtcFile (etcfile, "system", "gal_engine", buff, 8) ==  ETC_OK) {        strcpy (ETCFILEPATH, etcfile);        return TRUE;    }    strcpy (etcfile, "/etc/" ETCFILENAME);    if (GetValueFromEtcFile (etcfile, "system", "gal_engine", buff, 8) ==  ETC_OK) {        strcpy (ETCFILEPATH, etcfile);        return TRUE;    }    getcwd (etcfile, MAX_PATH);    strcat (etcfile, "/");    strcat (etcfile, ETCFILENAME);    if (GetValueFromEtcFile (etcfile, "system", "gal_engine", buff, 8) ==  ETC_OK) {        strcpy (ETCFILEPATH, etcfile);        return TRUE;    }    return FALSE;}#endif /* _INCORE_RES */BOOL InitMisc (void){#ifndef _INCORE_RES    if (!LookForEtcFile ())    {        fprintf (stderr, "MISC: Can not locate your MiniGUI.cfg file or bad files!\n");        return FALSE;    }#endif#ifdef _CLIPBOARD_SUPPORT    InitClipBoard ();#endif    return InitMgEtc ();}void TerminateMisc (void){#ifdef _CLIPBOARD_SUPPORT    TerminateClipBoard ();#endif    TerminateMgEtc ();}/****************************** ETC file support ******************************/static char* get_section_name (char *section_line){    char* current;    char* tail;    char* name;    if (!section_line)        return NULL;    current = section_line;    while (*current == ' ' ||  *current == '\t') current++;     if (*current == ';' || *current == '#')        return NULL;    if (*current++ == '[')        while (*current == ' ' ||  *current == '\t') current ++;    else        return NULL;    name = tail = current;    while (*tail != ']' && *tail != '\n' &&          *tail != ';' && *tail != '#' && *tail != '\0')          tail++;    *tail = '\0';    while (*tail == ' ' || *tail == '\t') {        *tail = '\0';        tail--;     }    return name;}static int get_key_value (char *key_line, char **mykey, char **myvalue){    char* current;    char* tail;    char* value;    if (!key_line)        return -1;    current = key_line;    while (*current == ' ' ||  *current == '\t') current++;     if (*current == ';' || *current == '#')        return -1;    if (*current == '[')        return 1;    if (*current == '\n' || *current == '\0')        return -1;    tail = current;    while (*tail != '=' && *tail != '\n' &&          *tail != ';' && *tail != '#' && *tail != '\0')          tail++;    value = tail + 1;    if (*tail != '=')        *value = '\0';     *tail-- = '\0';    while (*tail == ' ' || *tail == '\t') {        *tail = '\0';        tail--;     }            tail = value;    while (*tail != '\n' && *tail != '\0') tail++;    *tail = '\0';     if (mykey)        *mykey = current;    if (myvalue)        *myvalue = value;    return 0;}/* This function locate the specified section in the etc file. */static int etc_LocateSection(FILE* fp, const char* pSection, FILE* bak_fp){    char szBuff[ETC_MAXLINE + 1];    char *name;    while (TRUE) {        if (!fgets(szBuff, ETC_MAXLINE, fp)) {            if (feof (fp))                return ETC_SECTIONNOTFOUND;            else                return ETC_FILEIOFAILED;        }        else if (bak_fp && fputs (szBuff, bak_fp) == EOF)            return ETC_FILEIOFAILED;                name = get_section_name (szBuff);        if (!name)            continue;        if (strcmp (name, pSection) == 0)            return ETC_OK;     }    return ETC_SECTIONNOTFOUND;}/* This function locate the specified key in the etc file. */static int etc_LocateKeyValue(FILE* fp, const char* pKey,                                BOOL bCurSection, char* pValue, int iLen,                               FILE* bak_fp, char* nextSection){    char szBuff[ETC_MAXLINE + 1 + 1];    char* current;    char* value;    int ret;    while (TRUE) {        int bufflen;        if (!fgets(szBuff, ETC_MAXLINE, fp))            return ETC_FILEIOFAILED;        bufflen = strlen (szBuff);        if (szBuff [bufflen - 1] == '\n')            szBuff [bufflen - 1] = '\0';        ret = get_key_value (szBuff, &current, &value);        if (ret < 0)            continue;        else if (ret > 0) {            fseek (fp, -bufflen, SEEK_CUR);            return ETC_KEYNOTFOUND;        }                    if (strcmp (current, pKey) == 0) {            if (pValue)                strncpy (pValue, value, iLen);            return ETC_OK;         }        else if (bak_fp && *current != '\0')            fprintf (bak_fp, "%s=%s\n", current, value);    }    return ETC_KEYNOTFOUND;}static int etc_ReadSection (FILE* fp, PETCSECTION psect){    char szBuff[ETC_MAXLINE + 1 + 1];    char* sect_name;    int max_key_nr = 5;    psect->name = NULL;    psect->key_nr = 0;    while (TRUE) {        int bufflen;        if (!fgets(szBuff, ETC_MAXLINE, fp)) {            if (feof (fp)) {                if (psect->name)                    break;                else                    return ETC_SECTIONNOTFOUND;            }            else                return ETC_FILEIOFAILED;        }        bufflen = strlen (szBuff);        if (szBuff [bufflen - 1] == '\n')            szBuff [bufflen - 1] = '\0';        if (!psect->name) { /* read section name */            sect_name = get_section_name (szBuff);            if (!sect_name)                continue;            psect->name = strdup (sect_name);            psect->key_nr = 0;            psect->keys = malloc (sizeof(char*)*max_key_nr);            psect->values = malloc (sizeof(char*)*max_key_nr);        }        else { /* read key and value */            int ret;            char *key, *value;            if (psect->key_nr == max_key_nr) {                max_key_nr += 5;                psect->keys = (char **) realloc (psect->keys, sizeof(char*)*max_key_nr);                psect->values = (char **) realloc (psect->values, sizeof(char*)*max_key_nr);            }            ret = get_key_value (szBuff, &key, &value);            if (ret < 0)                continue;            else if (ret > 0) {  /* another section begins */                fseek (fp, -bufflen, SEEK_CUR);                break;            }            *(psect->keys + psect->key_nr) = strdup (key);            *(psect->values + psect->key_nr) = strdup (value);            psect->key_nr ++;        }    }    return ETC_OK;}GHANDLE GUIAPI LoadEtcFile (const char * pEtcFile){    FILE* fp;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品在线看| 大尺度一区二区| 丰满少妇在线播放bd日韩电影| 91免费视频大全| 久久亚洲综合色一区二区三区 | 欧美国产97人人爽人人喊| 亚洲三级视频在线观看| 精品一区二区三区视频| 欧美日精品一区视频| 欧美国产日韩亚洲一区| 美国十次综合导航| 在线观看免费一区| 国产精品国产馆在线真实露脸| 九九精品视频在线看| 欧美日韩不卡一区二区| 有码一区二区三区| 成人黄页在线观看| 国产亚洲精品超碰| 国产原创一区二区三区| 日韩欧美国产不卡| 日韩影院精彩在线| 精品欧美一区二区在线观看| 亚洲精品视频在线观看网站| 99精品久久免费看蜜臀剧情介绍| 久久九九国产精品| 国产一区二区三区在线观看免费| 欧美一区二区三区四区在线观看 | 97久久人人超碰| 国产日本一区二区| 国产成人综合在线| 久久在线免费观看| 国产麻豆午夜三级精品| 久久青草欧美一区二区三区| 国产一区二区在线观看视频| 精品国产免费人成在线观看| 蜜臀精品一区二区三区在线观看| 91精品国产入口在线| 男人操女人的视频在线观看欧美| 91精品国产欧美一区二区| 男男gaygay亚洲| 日韩欧美aaaaaa| 国产美女一区二区| 中文字幕免费不卡在线| 91在线免费视频观看| 亚洲欧美日韩综合aⅴ视频| 99国产精品久| 午夜精品久久久久影视| 日韩精品中文字幕一区二区三区| 久久精品国产精品亚洲红杏| 久久美女艺术照精彩视频福利播放| 韩国女主播一区二区三区| 久久一区二区视频| 99re热这里只有精品视频| 亚洲制服丝袜在线| 日韩欧美高清一区| 99久久综合精品| 午夜成人在线视频| 国产色91在线| 91国偷自产一区二区使用方法| 五月激情综合色| 精品福利在线导航| 99re这里只有精品视频首页| 亚洲成人一区二区在线观看| 久久综合久色欧美综合狠狠| 成人不卡免费av| 亚洲影院在线观看| 久久久www成人免费毛片麻豆| 成人精品视频一区二区三区尤物| 亚洲欧美aⅴ...| 日韩欧美电影一二三| 色综合中文综合网| 国产电影精品久久禁18| 一卡二卡三卡日韩欧美| 日韩免费电影网站| 一本色道亚洲精品aⅴ| 日本午夜精品一区二区三区电影| 亚洲国产成人一区二区三区| 欧美猛男男办公室激情| 成人污视频在线观看| 青青青伊人色综合久久| 亚洲天堂av一区| **欧美大码日韩| 欧美精品v日韩精品v韩国精品v| 国产成a人无v码亚洲福利| 日韩中文字幕不卡| 亚洲男同性恋视频| 亚洲国产精品传媒在线观看| 91.麻豆视频| 在线欧美日韩精品| 成人av免费观看| 韩国成人福利片在线播放| 亚洲国产视频a| 亚洲人成网站在线| 国产亚洲污的网站| 欧美一级欧美三级| 欧美日韩免费观看一区二区三区| 成人高清免费在线播放| 国产精品一区二区x88av| 免费精品视频在线| 全部av―极品视觉盛宴亚洲| 亚洲一区二区三区四区在线观看 | 日韩精品一区二区三区老鸭窝 | 一本一道久久a久久精品综合蜜臀| 久久福利资源站| 日韩中文欧美在线| 亚洲综合区在线| 亚洲欧美激情在线| 亚洲欧美日韩国产成人精品影院| 国产日韩在线不卡| 久久久久久一级片| www久久久久| 国产亚洲欧美一级| 久久婷婷综合激情| 国产亚洲欧美一区在线观看| 久久精品欧美一区二区三区麻豆| 精品免费视频.| 精品国产乱码久久久久久夜甘婷婷 | 国产精品综合在线视频| 国产在线精品免费| 国产精品亚洲视频| 国产成人av资源| 成人黄色小视频在线观看| 成人福利视频在线| 色猫猫国产区一区二在线视频| 91啦中文在线观看| 欧美男女性生活在线直播观看| 欧美日韩美少妇| 欧美岛国在线观看| 久久久精品免费观看| 国产精品国产自产拍高清av| 国产精品国模大尺度视频| 亚洲视频一二三区| 午夜视频在线观看一区二区三区 | 亚洲精品乱码久久久久久日本蜜臀 | 免费看日韩a级影片| 99久久精品国产麻豆演员表| 成人sese在线| 欧美性极品少妇| 欧美一二三区精品| 国产婷婷色一区二区三区| 亚洲天堂av一区| 蜜桃视频免费观看一区| 成人小视频免费在线观看| 91欧美一区二区| 日韩三级中文字幕| 国产欧美综合在线观看第十页 | 不卡一二三区首页| 欧美人伦禁忌dvd放荡欲情| 久久综合给合久久狠狠狠97色69| 欧美激情一区三区| 五月婷婷综合激情| 国产精品一区2区| 欧美日韩美少妇| 亚洲国产精品国自产拍av| 亚洲在线观看免费| 国产精品性做久久久久久| 欧美色网站导航| 国产夜色精品一区二区av| 亚洲一区二区黄色| 国产揄拍国内精品对白| 在线免费观看成人短视频| 久久青草国产手机看片福利盒子| 亚洲欧美日韩国产成人精品影院| 另类小说视频一区二区| 一本大道久久a久久精二百| 日韩亚洲欧美成人一区| 亚洲免费观看高清完整| 国产伦精品一区二区三区免费迷| 欧美在线你懂得| 日韩一区欧美一区| 久99久精品视频免费观看| 欧美午夜理伦三级在线观看| 欧美国产综合一区二区| 免费美女久久99| 欧美人与禽zozo性伦| 国产精品毛片无遮挡高清| 日本特黄久久久高潮| 在线一区二区三区| 国产精品久久午夜夜伦鲁鲁| 国产精品影视网| 精品少妇一区二区三区日产乱码| 亚洲精品成人少妇| 972aa.com艺术欧美| 日本一区二区三区四区在线视频 | 精品国产网站在线观看| 日韩成人精品在线| 在线观看日韩精品| 国产精品国产馆在线真实露脸| 精品一区二区三区视频在线观看 | 日日欢夜夜爽一区| 欧美在线|欧美| 亚洲精品写真福利| 色婷婷综合久久久| 亚洲欧美另类久久久精品| 成人av电影免费观看| 亚洲国产成人私人影院tom| 国产成人无遮挡在线视频| 国产偷国产偷精品高清尤物| 国产精品一二三在| 日本一区二区成人在线|