⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urls.c

📁 linux 安装程序
💻 C
📖 第 1 页 / 共 2 页
字号:
    char * site, * dir;    char * reflowedText = NULL;    int width, height;    newtGrid entryGrid, buttons, grid;    char * chptr;    char * buf = NULL;    int r;    if (ui->address) {        site = ui->address;        dir = ui->prefix;    } else {        site = "";        dir = "";    }    if (ui->login || ui->password || ui->proxy || ui->proxyPort)        *doSecondarySetup = '*';    else        *doSecondarySetup = ' ';    buttons = newtButtonBar(_("OK"), &okay, _("Back"), &cancel, NULL);        switch (protocol) {    case URL_METHOD_FTP:        buf = sdupprintf(_(netServerPrompt), _("FTP"), getProductName());        reflowedText = newtReflowText(buf, 47, 5, 5, &width, &height);        free(buf);        break;    case URL_METHOD_HTTP:        buf = sdupprintf(_(netServerPrompt), _("Web"), getProductName());        reflowedText = newtReflowText(buf, 47, 5, 5, &width, &height);        free(buf);        break;    }    text = newtTextbox(-1, -1, width, height, NEWT_TEXTBOX_WRAP);    newtTextboxSetText(text, reflowedText);    free(reflowedText);    siteEntry = newtEntry(22, 8, site, 24, (const char **) &site,                           NEWT_ENTRY_SCROLL);    dirEntry = newtEntry(22, 9, dir, 24, (const char **) &dir,                          NEWT_ENTRY_SCROLL);    entryGrid = newtCreateGrid(2, 2);    newtGridSetField(entryGrid, 0, 0, NEWT_GRID_COMPONENT,                     newtLabel(-1, -1, (protocol == URL_METHOD_FTP) ?                                        _("FTP site name:") :                                        _("Web site name:")),                     0, 0, 1, 0, NEWT_ANCHOR_LEFT, 0);    newtGridSetField(entryGrid, 0, 1, NEWT_GRID_COMPONENT,                     newtLabel(-1, -1,                                sdupprintf(_("%s directory:"),                                           getProductName())),                     0, 0, 1, 0, NEWT_ANCHOR_LEFT, 0);    newtGridSetField(entryGrid, 1, 0, NEWT_GRID_COMPONENT, siteEntry,                     0, 0, 0, 0, 0, 0);    newtGridSetField(entryGrid, 1, 1, NEWT_GRID_COMPONENT, dirEntry,                     0, 0, 0, 0, 0, 0);    grid = newtCreateGrid(1, 4);    newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, text,                     0, 0, 0, 1, 0, 0);    newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, entryGrid,                     0, 0, 0, 1, 0, 0);    if (protocol == URL_METHOD_FTP) {        cb = newtCheckbox(3, 11, _("Use non-anonymous ftp"),                          *doSecondarySetup, NULL, doSecondarySetup);        newtGridSetField(grid, 0, 2, NEWT_GRID_COMPONENT, cb,                         0, 0, 0, 1, NEWT_ANCHOR_LEFT, 0);    }            newtGridSetField(grid, 0, 3, NEWT_GRID_SUBGRID, buttons,                     0, 0, 0, 0, 0, NEWT_GRID_FLAG_GROWX);    newtGridWrappedWindow(grid, (protocol == URL_METHOD_FTP) ? _("FTP Setup") :                          _("HTTP Setup"));    form = newtForm(NULL, NULL, 0);    newtGridAddComponentsToForm(grid, form, 1);        do {        answer = newtRunForm(form);        if (answer != cancel) {            if (!strlen(site)) {                newtWinMessage(_("Error"), _("OK"),                               _("You must enter a server name."));                continue;            }            if (!strlen(dir)) {                newtWinMessage(_("Error"), _("OK"),                               _("You must enter a directory."));                continue;            }            if (!addrToIp(site)) {                newtWinMessage(_("Unknown Host"), _("OK"),                        _("%s is not a valid hostname."), site);                continue;            }        }        break;    } while (1);        if (answer == cancel) {        newtFormDestroy(form);        newtPopWindow();                return LOADER_BACK;    }    /* if the user entered the protocol type, trim it */    if (!strncmp(site, "http://", 7))        site += 7;    else if (!strncmp(site, "ftp://", 6))        site += 6;    if (ui->address) free(ui->address);    r = asprintf(&ui->address, "%s", site);    if (ui->prefix) free(ui->prefix);    /* add a slash at the start of the dir if it is missing */    if (*dir != '/') {        if (asprintf(&(ui->prefix), "/%s", dir) == -1)            ui->prefix = strdup(dir);    } else {        ui->prefix = strdup(dir);    }    /* Get rid of trailing /'s */    chptr = ui->prefix + strlen(ui->prefix) - 1;    while (chptr > ui->prefix && *chptr == '/') chptr--;    chptr++;    *chptr = '\0';    if (*doSecondarySetup != '*') {        if (ui->login)            free(ui->login);        if (ui->password)            free(ui->password);        if (ui->proxy)            free(ui->proxy);        if (ui->proxyPort)            free(ui->proxyPort);        ui->login = ui->password = ui->proxy = ui->proxyPort = NULL;    }    ui->protocol = protocol;    newtFormDestroy(form);    newtPopWindow();    return 0;}int urlSecondarySetupPanel(struct iurlinfo * ui, urlprotocol protocol) {    newtComponent form, okay, cancel, answer, text, accountEntry = NULL;    newtComponent passwordEntry = NULL, proxyEntry = NULL;    newtComponent proxyPortEntry = NULL;    char * account, * password, * proxy, * proxyPort;    newtGrid buttons, entryGrid, grid;    char * reflowedText = NULL;    int width, height;    if (protocol == URL_METHOD_FTP) {        reflowedText = newtReflowText(        _("If you are using non anonymous ftp, enter the account name and "          "password you wish to use below."),        47, 5, 5, &width, &height);    } else {        reflowedText = newtReflowText(        _("If you are using a HTTP proxy server "          "enter the name of the HTTP proxy server to use."),        47, 5, 5, &width, &height);    }    text = newtTextbox(-1, -1, width, height, NEWT_TEXTBOX_WRAP);    newtTextboxSetText(text, reflowedText);    free(reflowedText);    if (protocol == URL_METHOD_FTP) {        accountEntry = newtEntry(-1, -1, NULL, 24, (const char **) &account,                                  NEWT_FLAG_SCROLL);        passwordEntry = newtEntry(-1, -1, NULL, 24, (const char **) &password,                                   NEWT_FLAG_SCROLL | NEWT_FLAG_PASSWORD);    }    proxyEntry = newtEntry(-1, -1, ui->proxy, 24, (const char **) &proxy,                            NEWT_ENTRY_SCROLL);    proxyPortEntry = newtEntry(-1, -1, ui->proxyPort, 6,                                (const char **) &proxyPort, NEWT_FLAG_SCROLL);    entryGrid = newtCreateGrid(2, 4);    if (protocol == URL_METHOD_FTP) {        newtGridSetField(entryGrid, 0, 0, NEWT_GRID_COMPONENT,                     newtLabel(-1, -1, _("Account name:")),                     0, 0, 2, 0, NEWT_ANCHOR_LEFT, 0);        newtGridSetField(entryGrid, 0, 1, NEWT_GRID_COMPONENT,                     newtLabel(-1, -1, _("Password:")),                     0, 0, 2, 0, NEWT_ANCHOR_LEFT, 0);    }    if (protocol == URL_METHOD_FTP) {        newtGridSetField(entryGrid, 1, 0, NEWT_GRID_COMPONENT, accountEntry,                         0, 0, 0, 0, 0, 0);        newtGridSetField(entryGrid, 1, 1, NEWT_GRID_COMPONENT, passwordEntry,                         0, 0, 0, 0, 0, 0);    }    buttons = newtButtonBar(_("OK"), &okay, _("Back"), &cancel, NULL);    grid = newtCreateGrid(1, 3);    newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, text, 0, 0, 0, 0, 0, 0);    newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, entryGrid,                      0, 1, 0, 0, 0, 0);    newtGridSetField(grid, 0, 2, NEWT_GRID_SUBGRID, buttons,                      0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);    if (protocol == URL_METHOD_FTP) {        newtGridWrappedWindow(grid, _("Further FTP Setup"));    } else {        if (protocol == URL_METHOD_HTTP)            newtGridWrappedWindow(grid, _("Further HTTP Setup"));    }    form = newtForm(NULL, NULL, 0);    newtGridAddComponentsToForm(grid, form, 1);    newtGridFree(grid, 1);    answer = newtRunForm(form);    if (answer == cancel) {        newtFormDestroy(form);        newtPopWindow();                return LOADER_BACK;    }     if (protocol == URL_METHOD_FTP) {        if (ui->login) free(ui->login);        if (strlen(account))            ui->login = strdup(account);        else            ui->login = NULL;                if (ui->password) free(ui->password);        if (strlen(password))            ui->password = strdup(password);        else            ui->password = NULL;    }        newtFormDestroy(form);    newtPopWindow();    return 0;}/* vim:set shiftwidth=4 softtabstop=4: */

⌨️ 快捷键说明

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