void ManSettings() { blit(GainBox, screen, 0, 0, 300, 400, 114,55); while (!key[KEY_ESC]) { Letteri= readkey(); if(key[KEY_ENTER]) break; if(key[KEY_ESC]) exit(0); if(key[KEY_BACKSPACE]) { Letteri=NULL; uremove(Gain,-1); } if(uisdigit(Letteri)!=0) { Letterj= Letteri; strcat(Gain, &Letterj); } textprintf_ex(screen, font, 320, 415, 0, WHITE, "%s ", Gain); } Proceed(); }
static textconfig text_configure(paragraph *source) { textconfig ret; paragraph *p; int n; /* * Non-negotiables. */ ret.bullet.next = NULL; ret.bullet.alt = NULL; ret.bullet.type = word_Normal; ret.atitle.just_numbers = FALSE; /* ignored */ ret.atitle.number_at_all = TRUE; /* ignored */ /* * Defaults. */ ret.indent = 7; ret.indent_code = 2; ret.listindentbefore = 1; ret.listindentafter = 3; ret.width = 68; ret.atitle.align = CENTRE; ret.atitle.underline = L"\x2550\0=\0\0"; ret.achapter.align = LEFT; ret.achapter.just_numbers = FALSE; ret.achapter.number_at_all = TRUE; ret.achapter.number_suffix = L": "; ret.achapter.underline = L"\x203E\0-\0\0"; ret.nasect = 1; ret.asect = snewn(ret.nasect, alignstruct); ret.asect[0].align = LEFTPLUS; ret.asect[0].just_numbers = TRUE; ret.asect[0].number_at_all = TRUE; ret.asect[0].number_suffix = L" "; ret.asect[0].underline = L"\0"; ret.include_version_id = TRUE; ret.indent_preambles = FALSE; ret.bullet.text = L"\x2022\0-\0\0"; ret.rule = L"\x2500\0-\0\0"; ret.filename = dupstr("output.txt"); ret.startemph = L"_\0_\0\0"; ret.endemph = uadv(ret.startemph); ret.startstrong = L"*\0*\0\0"; ret.endstrong = uadv(ret.startstrong); ret.listsuffix = L"."; ret.charset = CS_ASCII; /* * Default quote characters are Unicode matched single quotes, * falling back to the TeXlike `'. */ ret.lquote = L"\x2018\0\x2019\0`\0'\0\0"; ret.rquote = uadv(ret.lquote); /* * Two-pass configuration so that we can pick up global config * (e.g. `quotes') before having it overridden by specific * config (`text-quotes'), irrespective of the order in which * they occur. */ for (p = source; p; p = p->next) { if (p->type == para_Config) { if (!ustricmp(p->keyword, L"quotes")) { if (*uadv(p->keyword) && *uadv(uadv(p->keyword))) { ret.lquote = uadv(p->keyword); ret.rquote = uadv(ret.lquote); } } } } for (p = source; p; p = p->next) { if (p->type == para_Config) { if (!ustricmp(p->keyword, L"text-indent")) { ret.indent = utoi(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-charset")) { ret.charset = charset_from_ustr(&p->fpos, uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-filename")) { sfree(ret.filename); ret.filename = dupstr(adv(p->origkeyword)); } else if (!ustricmp(p->keyword, L"text-indent-code")) { ret.indent_code = utoi(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-width")) { ret.width = utoi(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-list-indent")) { ret.listindentbefore = utoi(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-listitem-indent")) { ret.listindentafter = utoi(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-chapter-align")) { ret.achapter.align = utoalign(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-chapter-underline")) { ret.achapter.underline = uadv(p->keyword); } else if (!ustricmp(p->keyword, L"text-chapter-numeric")) { ret.achapter.just_numbers = utob(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-chapter-shownumber")) { ret.achapter.number_at_all = utob(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-chapter-suffix")) { ret.achapter.number_suffix = uadv(p->keyword); } else if (!ustricmp(p->keyword, L"text-section-align")) { wchar_t *q = uadv(p->keyword); int n = 0; if (uisdigit(*q)) { n = utoi(q); q = uadv(q); } if (n >= ret.nasect) { int i; ret.asect = sresize(ret.asect, n+1, alignstruct); for (i = ret.nasect; i <= n; i++) ret.asect[i] = ret.asect[ret.nasect-1]; ret.nasect = n+1; } ret.asect[n].align = utoalign(q); } else if (!ustricmp(p->keyword, L"text-section-underline")) { wchar_t *q = uadv(p->keyword); int n = 0; if (uisdigit(*q)) { n = utoi(q); q = uadv(q); } if (n >= ret.nasect) { int i; ret.asect = sresize(ret.asect, n+1, alignstruct); for (i = ret.nasect; i <= n; i++) ret.asect[i] = ret.asect[ret.nasect-1]; ret.nasect = n+1; } ret.asect[n].underline = q; } else if (!ustricmp(p->keyword, L"text-section-numeric")) { wchar_t *q = uadv(p->keyword); int n = 0; if (uisdigit(*q)) { n = utoi(q); q = uadv(q); } if (n >= ret.nasect) { int i; ret.asect = sresize(ret.asect, n+1, alignstruct); for (i = ret.nasect; i <= n; i++) ret.asect[i] = ret.asect[ret.nasect-1]; ret.nasect = n+1; } ret.asect[n].just_numbers = utob(q); } else if (!ustricmp(p->keyword, L"text-section-shownumber")) { wchar_t *q = uadv(p->keyword); int n = 0; if (uisdigit(*q)) { n = utoi(q); q = uadv(q); } if (n >= ret.nasect) { int i; ret.asect = sresize(ret.asect, n+1, alignstruct); for (i = ret.nasect; i <= n; i++) ret.asect[i] = ret.asect[ret.nasect-1]; ret.nasect = n+1; } ret.asect[n].number_at_all = utob(q); } else if (!ustricmp(p->keyword, L"text-section-suffix")) { wchar_t *q = uadv(p->keyword); int n = 0; if (uisdigit(*q)) { n = utoi(q); q = uadv(q); } if (n >= ret.nasect) { int i; ret.asect = sresize(ret.asect, n+1, alignstruct); for (i = ret.nasect; i <= n; i++) { ret.asect[i] = ret.asect[ret.nasect-1]; } ret.nasect = n+1; } ret.asect[n].number_suffix = q; } else if (!ustricmp(p->keyword, L"text-title-align")) { ret.atitle.align = utoalign(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-title-underline")) { ret.atitle.underline = uadv(p->keyword); } else if (!ustricmp(p->keyword, L"text-versionid")) { ret.include_version_id = utob(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-indent-preamble")) { ret.indent_preambles = utob(uadv(p->keyword)); } else if (!ustricmp(p->keyword, L"text-bullet")) { ret.bullet.text = uadv(p->keyword); } else if (!ustricmp(p->keyword, L"text-rule")) { ret.rule = uadv(p->keyword); } else if (!ustricmp(p->keyword, L"text-list-suffix")) { ret.listsuffix = uadv(p->keyword); } else if (!ustricmp(p->keyword, L"text-emphasis")) { if (*uadv(p->keyword) && *uadv(uadv(p->keyword))) { ret.startemph = uadv(p->keyword); ret.endemph = uadv(ret.startemph); } } else if (!ustricmp(p->keyword, L"text-strong")) { if (*uadv(p->keyword) && *uadv(uadv(p->keyword))) { ret.startstrong = uadv(p->keyword); ret.endstrong = uadv(ret.startstrong); } } else if (!ustricmp(p->keyword, L"text-quotes")) { if (*uadv(p->keyword) && *uadv(uadv(p->keyword))) { ret.lquote = uadv(p->keyword); ret.rquote = uadv(ret.lquote); } } } } /* * Now process fallbacks on quote characters, underlines, the * rule character, the emphasis characters, and bullets. */ while (*uadv(ret.rquote) && *uadv(uadv(ret.rquote)) && (!cvt_ok(ret.charset, ret.lquote) || !cvt_ok(ret.charset, ret.rquote))) { ret.lquote = uadv(ret.rquote); ret.rquote = uadv(ret.lquote); } while (*uadv(ret.endemph) && *uadv(uadv(ret.endemph)) && (!cvt_ok(ret.charset, ret.startemph) || !cvt_ok(ret.charset, ret.endemph))) { ret.startemph = uadv(ret.endemph); ret.endemph = uadv(ret.startemph); } while (*uadv(ret.endstrong) && *uadv(uadv(ret.endstrong)) && (!cvt_ok(ret.charset, ret.startstrong) || !cvt_ok(ret.charset, ret.endstrong))) { ret.startstrong = uadv(ret.endstrong); ret.endstrong = uadv(ret.startstrong); } while (*ret.atitle.underline && *uadv(ret.atitle.underline) && !cvt_ok(ret.charset, ret.atitle.underline)) ret.atitle.underline = uadv(ret.atitle.underline); while (*ret.achapter.underline && *uadv(ret.achapter.underline) && !cvt_ok(ret.charset, ret.achapter.underline)) ret.achapter.underline = uadv(ret.achapter.underline); for (n = 0; n < ret.nasect; n++) { while (*ret.asect[n].underline && *uadv(ret.asect[n].underline) && !cvt_ok(ret.charset, ret.asect[n].underline)) ret.asect[n].underline = uadv(ret.asect[n].underline); } while (*ret.bullet.text && *uadv(ret.bullet.text) && !cvt_ok(ret.charset, ret.bullet.text)) ret.bullet.text = uadv(ret.bullet.text); while (*ret.rule && *uadv(ret.rule) && !cvt_ok(ret.charset, ret.rule)) ret.rule = uadv(ret.rule); return ret; }