parfcns.c

来自「db.* (pronounced dee-be star) is an adva」· C语言 代码 · 共 245 行

C
245
字号
/*************************************************************************** *                                                                         * * db.*                                                                    * * open source database, ida utility                                       * *                                                                         * * Copyright (c) 2000 Centura Software Corporation. All rights reserved.   * *                                                                         * * Use of this software, whether in source code format, or in executable,  * * binary object code form, is governed by the CENTURA OPEN SOURCE LICENSE * * which is fully described in the LICENSE.TXT file, included within this  * * distribution of source code files.                                      *  *                                                                         * **************************************************************************//*--------------------------------------------------------------------------    IDA - Parameter Control Functions--------------------------------------------------------------------------*/#include "db.star.h"#include "internal.h"#include "ida.h"void showpar(void);/* ========================================================================    Display current parameter settings*/void showpar(){    long max_files;    d_internals(task, TOPIC_GLOBALS, ID_MAX_FILES, 0, &max_files, sizeof(max_files));    tprintf("@m0400@E\n\n\n");    tprintf("@SDatabase Dictionary Path - DBDPATH  :@s %s\n\n",            task->dbdpath[0] ? task->dbdpath : ".");    tprintf("@SDatabase Files Path      - DBFPATH  :@s %s\n\n",            task->dbfpath[0] ? task->dbfpath : ".");    tprintf("@SDatabase User Identifer  - DBUSERID :@s %s\n\n",            task->dbuserid[0] ? task->dbuserid : "");    tprintf("@SNumber of Virtual Memory Pages      :@s %d\n\n", task->cache->db_pgtab.pgtab_sz);    tprintf("@SMaximum number of open files        :@s %ld\n\n", max_files);    tprintf("@STransaction Logging                 :@s %s\n\n",            (task->dboptions & TRLOGGING) ? "ON " : "OFF");    tprintf("@SReuse of Delete Chain               :@s %s\n\n",            (task->dboptions & DCHAINUSE) ? "ON " : "OFF");}/* ========================================================================    Set DBDPATH environment variable*/void pdfcn(){    char dbd[80];    int len;    if (task->dbopen)        usererr("database must be closed");    else    {        tprintf("@m0200@eenter database directory path: ");        switch (rdtext(dbd))        {            case -1:                return;            case 0:                dbd[0] = '.';                dbd[1] = DIRCHAR;                dbd[2] = '\0';                d_dbdpath(dbd, task);                d_dbfpath(dbd, task);                break;            default:                len = strlen(dbd);                if (dbd[len - 1] != DIRCHAR)                {                    dbd[len] = DIRCHAR;                    dbd[++len] = '\0';                }                d_dbdpath(dbd, task);                d_dbfpath(dbd, task);        }        dblist();                        /* regenerate list of database                                          * names */    }    showpar();}/* ========================================================================    Set DBFPATH environment variable*/void pffcn(){    char dbf[80];    int len;    if (task->dbopen)        usererr("database must be closed");    else    {        tprintf("@m0200@eenter database files path: ");        switch (rdtext(dbf))        {            case -1:                return;            case 0:                dbf[0] = '.';                dbf[1] = DIRCHAR;                dbf[2] = '\0';                d_dbfpath(dbf, task);                break;            default:                len = strlen(dbf);                if (dbf[len - 1] != DIRCHAR)                {                    dbf[len] = DIRCHAR;                    dbf[++len] = '\0';                }                d_dbfpath(dbf, task);        }    }    showpar();}/* ========================================================================    Set database user id*/void pufcn(){    char dbid[80];    if (task->dbopen)        usererr("database must be closed");    else    {        tprintf("@m0200@eenter database user id: ");        switch (rdtext(dbid))        {            case -1:                return;            case 0:                d_dbuserid("", task);                break;            default:                d_dbuserid(dbid, task);        }    }    showpar();}/* ========================================================================    Set current number of virtual memory pages*/void ppfcn(){    char pgs_str[20];    int pgs;    if (task->dbopen)        usererr("database must be closed");    else    {        tprintf("@m0200@eenter number of pages: ");        if (rdtext(pgs_str) <= 0)            return;        if (sscanf(pgs_str, "%d", &pgs) == 1)        {            d_setpages(pgs, (pgs >= 32 ? 8 : 4), task);            showpar();        }        else            usererr("invalid entry");    }}/* ========================================================================    Set maximum number of open db.* files*/void pmfcn(){    char files_str[20];    int files;    if (task->dbopen)        usererr("database must be closed");    else    {        tprintf("@m0200@eenter maximum number of files: ");        if (rdtext(files_str) <= 0)            return;        if (sscanf(files_str, "%d", &files) == 1)        {            d_setfiles(files, task);            showpar();        }        else            usererr("invalid entry");    }}/* ========================================================================    Toggle transaction logging flag*/void plfcn(){    if (task->dbopen)        usererr("database must be closed");    else    {        if (task->dboptions & TRLOGGING)        {            d_off_opt(TRLOGGING, task);            tprintf("@m1738OFF");        }        else        {            d_on_opt(TRLOGGING, task);            tprintf("@m1738ON ");        }    }}/* ========================================================================    Toggle dchain use flag*/void pcfcn(){    if (task->dbopen)        usererr("database must be closed");    else    {        if (task->dboptions & DCHAINUSE)        {            d_off_opt(DCHAINUSE, task);            tprintf("@m1938OFF");        }        else        {            d_on_opt(DCHAINUSE, task);            tprintf("@m1938ON ");        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?