这篇教程C++ term_len函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中term_len函数的典型用法代码示例。如果您正苦于以下问题:C++ term_len函数的具体用法?C++ term_len怎么用?C++ term_len使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了term_len函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: pre_SSstatic intpre_SS(DECL_ARGS){ int i; switch (n->type) { case MAN_BLOCK: mt->fl &= ~MANT_LITERAL; mt->lmargin[mt->lmargincur] = term_len(p, p->defindent); mt->offset = term_len(p, p->defindent); /* If following a prior empty `SS', no vspace. */ if (n->prev && MAN_SS == n->prev->tok) if (NULL == n->prev->body->child) break; if (NULL == n->prev) break; for (i = 0; i < mt->pardist; i++) term_vspace(p); break; case MAN_HEAD: term_fontrepl(p, TERMFONT_BOLD); p->offset = term_len(p, 3); break; case MAN_BODY: p->offset = mt->offset; break; default: break; } return(1);}
开发者ID:mr-justin,项目名称:freebsd,代码行数:32,
示例2: termp_nm_prestatic inttermp_nm_pre(DECL_ARGS){ const char *cp; if (n->type == ROFFT_BLOCK) { p->flags |= TERMP_PREKEEP; return 1; } if (n->type == ROFFT_BODY) { if (NULL == n->child) return 0; p->flags |= TERMP_NOSPACE; cp = NULL; if (n->prev->child != NULL) cp = n->prev->child->string; if (cp == NULL) cp = meta->name; if (cp == NULL) p->offset += term_len(p, 6); else p->offset += term_len(p, 1) + term_strlen(p, cp); return 1; } if (NULL == n->child && NULL == meta->name) return 0; if (n->type == ROFFT_HEAD) synopsis_pre(p, n->parent); if (n->type == ROFFT_HEAD && NULL != n->next && NULL != n->next->child) { p->flags |= TERMP_NOSPACE | TERMP_NOBREAK | TERMP_BRIND; p->trailspace = 1; p->rmargin = p->offset + term_len(p, 1); if (NULL == n->child) { p->rmargin += term_strlen(p, meta->name); } else if (n->child->type == ROFFT_TEXT) { p->rmargin += term_strlen(p, n->child->string); if (n->child->next) p->flags |= TERMP_HANG; } else { p->rmargin += term_len(p, 5); p->flags |= TERMP_HANG; } } term_fontpush(p, TERMFONT_BOLD); if (NULL == n->child) term_word(p, meta->name); return 1;}
开发者ID:gokzy,项目名称:netbsd-src,代码行数:54,
示例3: termp_nm_pre/* ARGSUSED */static inttermp_nm_pre(DECL_ARGS){ if (MDOC_BLOCK == n->type) { p->flags |= TERMP_PREKEEP; return(1); } if (MDOC_BODY == n->type) { if (NULL == n->child) return(0); p->flags |= TERMP_NOSPACE; p->offset += term_len(p, 1) + (NULL == n->prev->child ? term_strlen(p, meta->name) : MDOC_TEXT == n->prev->child->type ? term_strlen(p, n->prev->child->string) : term_len(p, 5)); return(1); } if (NULL == n->child && NULL == meta->name) return(0); if (MDOC_HEAD == n->type) synopsis_pre(p, n->parent); if (MDOC_HEAD == n->type && n->next->child) { p->flags |= TERMP_NOSPACE | TERMP_NOBREAK; p->trailspace = 1; p->rmargin = p->offset + term_len(p, 1); if (NULL == n->child) { p->rmargin += term_strlen(p, meta->name); } else if (MDOC_TEXT == n->child->type) { p->rmargin += term_strlen(p, n->child->string); if (n->child->next) p->flags |= TERMP_HANG; } else { p->rmargin += term_len(p, 5); p->flags |= TERMP_HANG; } } term_fontpush(p, TERMFONT_BOLD); if (NULL == n->child) term_word(p, meta->name); return(1);}
开发者ID:2015520,项目名称:SequoiaDB,代码行数:50,
示例4: termp_sh_prestatic inttermp_sh_pre(DECL_ARGS){ switch (n->type) { case MDOC_BLOCK: /* * Vertical space before sections, except * when the previous section was empty. */ if (n->prev == NULL || MDOC_Sh != n->prev->tok || (n->prev->body != NULL && n->prev->body->child != NULL)) term_vspace(p); break; case MDOC_HEAD: term_fontpush(p, TERMFONT_BOLD); break; case MDOC_BODY: p->offset = term_len(p, p->defindent); if (SEC_AUTHORS == n->sec) p->flags &= ~(TERMP_SPLIT|TERMP_NOSPLIT); break; default: break; } return(1);}
开发者ID:jashank,项目名称:freebsd,代码行数:29,
示例5: pre_RSstatic intpre_RS(DECL_ARGS){ struct roffsu su; switch (n->type) { case MAN_BLOCK: term_newln(p); return(1); case MAN_HEAD: return(0); default: break; } n = n->parent->head; n->aux = SHRT_MAX + 1; if (n->child != NULL && a2roffsu(n->child->string, &su, SCALE_EN)) n->aux = term_hspan(p, &su); if (n->aux < 0 && (size_t)(-n->aux) > mt->offset) n->aux = -mt->offset; else if (n->aux > SHRT_MAX) n->aux = term_len(p, p->defindent); mt->offset += n->aux; p->offset = mt->offset; p->rmargin = p->maxrmargin; if (++mt->lmarginsz < MAXMARGINS) mt->lmargincur = mt->lmarginsz; mt->lmargin[mt->lmargincur] = mt->lmargin[mt->lmargincur - 1]; return(1);}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:34,
示例6: pre_IPstatic intpre_IP(DECL_ARGS){ struct roffsu su; const struct roff_node *nn; int len, savelit; switch (n->type) { case ROFFT_BODY: p->flags |= TERMP_NOSPACE; break; case ROFFT_HEAD: p->flags |= TERMP_NOBREAK; p->trailspace = 1; break; case ROFFT_BLOCK: print_bvspace(p, n, mt->pardist); /* FALLTHROUGH */ default: return 1; } /* Calculate the offset from the optional second argument. */ if ((nn = n->parent->head->child) != NULL && (nn = nn->next) != NULL && a2roffsu(nn->string, &su, SCALE_EN)) { len = term_hspan(p, &su) / 24; if (len < 0 && (size_t)(-len) > mt->offset) len = -mt->offset; else if (len > SHRT_MAX) len = term_len(p, p->defindent); mt->lmargin[mt->lmargincur] = len; } else len = mt->lmargin[mt->lmargincur]; switch (n->type) { case ROFFT_HEAD: p->offset = mt->offset; p->rmargin = mt->offset + len; savelit = MANT_LITERAL & mt->fl; mt->fl &= ~MANT_LITERAL; if (n->child) print_man_node(p, mt, n->child, meta); if (savelit) mt->fl |= MANT_LITERAL; return 0; case ROFFT_BODY: p->offset = mt->offset + len; p->rmargin = p->maxrmargin; break; default: break; } return 1;}
开发者ID:ajinkya93,项目名称:OpenBSD,代码行数:60,
示例7: termp_fn_pre/* ARGSUSED */static inttermp_fn_pre(DECL_ARGS){ size_t rmargin = 0; int pretty; pretty = MDOC_SYNPRETTY & n->flags; synopsis_pre(p, n); if (NULL == (n = n->child)) return(0); if (pretty) { rmargin = p->rmargin; p->rmargin = p->offset + term_len(p, 4); p->flags |= TERMP_NOBREAK | TERMP_HANG; } assert(MDOC_TEXT == n->type); term_fontpush(p, TERMFONT_BOLD); term_word(p, n->string); term_fontpop(p); if (pretty) { term_flushln(p); p->flags &= ~(TERMP_NOBREAK | TERMP_HANG); p->offset = p->rmargin; p->rmargin = rmargin; } p->flags |= TERMP_NOSPACE; term_word(p, "("); p->flags |= TERMP_NOSPACE; for (n = n->next; n; n = n->next) { assert(MDOC_TEXT == n->type); term_fontpush(p, TERMFONT_UNDER); if (pretty) p->flags |= TERMP_NBRWORD; term_word(p, n->string); term_fontpop(p); if (n->next) { p->flags |= TERMP_NOSPACE; term_word(p, ","); } } p->flags |= TERMP_NOSPACE; term_word(p, ")"); if (pretty) { p->flags |= TERMP_NOSPACE; term_word(p, ";"); term_flushln(p); } return(0);}
开发者ID:2015520,项目名称:SequoiaDB,代码行数:61,
示例8: termp_sh_pre/* ARGSUSED */static inttermp_sh_pre(DECL_ARGS){ /* No vspace between consecutive `Sh' calls. */ switch (n->type) { case (MDOC_BLOCK): if (n->prev && MDOC_Sh == n->prev->tok) if (NULL == n->prev->body->child) break; term_vspace(p); break; case (MDOC_HEAD): term_fontpush(p, TERMFONT_BOLD); break; case (MDOC_BODY): p->offset = term_len(p, p->defindent); if (SEC_AUTHORS == n->sec) p->flags &= ~(TERMP_SPLIT|TERMP_NOSPLIT); break; default: break; } return(1);}
开发者ID:2015520,项目名称:SequoiaDB,代码行数:27,
示例9: terminal_mdocvoidterminal_mdoc(void *arg, const struct mdoc *mdoc){ const struct mdoc_node *n; const struct mdoc_meta *meta; struct termp *p; p = (struct termp *)arg; if (0 == p->defindent) p->defindent = 5; p->overstep = 0; p->maxrmargin = p->defrmargin; p->tabwidth = term_len(p, 5); if (NULL == p->symtab) p->symtab = mchars_alloc(); n = mdoc_node(mdoc); meta = mdoc_meta(mdoc); term_begin(p, print_mdoc_head, print_mdoc_foot, meta); if (n->child) print_mdoc_nodelist(p, NULL, meta, n->child); term_end(p);}
开发者ID:2015520,项目名称:SequoiaDB,代码行数:29,
示例10: terminal_manvoidterminal_man(void *arg, const struct man *man){ struct termp *p; const struct man_meta *meta; struct man_node *n; struct mtermp mt; p = (struct termp *)arg; p->overstep = 0; p->rmargin = p->maxrmargin = p->defrmargin; p->tabwidth = term_len(p, 5); n = man_node(man)->child; meta = man_meta(man); memset(&mt, 0, sizeof(struct mtermp)); mt.lmargin[mt.lmargincur] = term_len(p, p->defindent); mt.offset = term_len(p, p->defindent); mt.pardist = 1; if (p->synopsisonly) { while (n != NULL) { if (n->tok == MAN_SH && n->child->child->type == MAN_TEXT && !strcmp(n->child->child->string, "SYNOPSIS")) { if (n->child->next->child != NULL) print_man_nodelist(p, &mt, n->child->next->child, meta); term_newln(p); break; } n = n->next; } } else { if (p->defindent == 0) p->defindent = 7; term_begin(p, print_man_head, print_man_foot, meta); p->flags |= TERMP_NOSPACE; if (n != NULL) print_man_nodelist(p, &mt, n, meta); term_end(p); }}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:46,
示例11: pre_SSstatic intpre_SS(DECL_ARGS){ int i; switch (n->type) { case ROFFT_BLOCK: mt->fl &= ~MANT_LITERAL; mt->lmargin[mt->lmargincur] = term_len(p, p->defindent); mt->offset = term_len(p, p->defindent); /* * No vertical space before the first subsection * and after an empty subsection. */ do { n = n->prev; } while (n != NULL && n->tok != TOKEN_NONE && termacts[n->tok].flags & MAN_NOTEXT); if (n == NULL || (n->tok == MAN_SS && n->body->child == NULL)) break; for (i = 0; i < mt->pardist; i++) term_vspace(p); break; case ROFFT_HEAD: term_fontrepl(p, TERMFONT_BOLD); p->offset = term_len(p, 3); p->rmargin = mt->offset; p->trailspace = mt->offset; p->flags |= TERMP_NOBREAK | TERMP_BRIND; break; case ROFFT_BODY: p->offset = mt->offset; p->rmargin = p->maxrmargin; p->trailspace = 0; p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND); break; default: break; } return 1;}
开发者ID:ajinkya93,项目名称:OpenBSD,代码行数:45,
示例12: a2offsstatic size_ta2offs(const struct termp *p, const char *v){ struct roffsu su; if ('/0' == *v) return(0); else if (0 == strcmp(v, "left")) return(0); else if (0 == strcmp(v, "indent")) return(term_len(p, p->defindent + 1)); else if (0 == strcmp(v, "indent-two")) return(term_len(p, (p->defindent + 1) * 2)); else if ( ! a2roffsu(v, &su, SCALE_MAX)) SCALE_HS_INIT(&su, term_strlen(p, v)); return(term_hspan(p, &su));}
开发者ID:2015520,项目名称:SequoiaDB,代码行数:18,
示例13: tbl_numberstatic voidtbl_number(struct termp *tp, const struct tbl *tbl, const struct tbl_dat *dp, const struct roffcol *col){ char *cp; char buf[2]; const char *str; size_t sz, psz, ssz, d, padl; int i; /* * See calc_data_number(). Left-pad by taking the offset of our * and the maximum decimal; right-pad by the remaining amount. */ str = dp && dp->string ? dp->string : ""; sz = term_strlen(tp, str); buf[0] = tbl->decimal; buf[1] = '/0'; psz = term_strlen(tp, buf); if (NULL != (cp = strchr(str, tbl->decimal))) { buf[1] = '/0'; for (ssz = 0, i = 0; cp != &str[i]; i++) { buf[0] = str[i]; ssz += term_strlen(tp, buf); } d = ssz + psz; } else d = sz + psz; sz += term_len(tp, 2); d += term_len(tp, 1); padl = col->decimal - d; tbl_char(tp, ASCII_NBRSP, padl); term_word(tp, str); tbl_char(tp, ASCII_NBRSP, col->width - sz - padl);}
开发者ID:AgamAgarwal,项目名称:minix,代码行数:44,
示例14: termp_d1_prestatic inttermp_d1_pre(DECL_ARGS){ if (n->type != ROFFT_BLOCK) return 1; term_newln(p); p->offset += term_len(p, p->defindent + 1); return 1;}
开发者ID:gokzy,项目名称:netbsd-src,代码行数:10,
示例15: termp_d1_pre/* ARGSUSED */static inttermp_d1_pre(DECL_ARGS){ if (MDOC_BLOCK != n->type) return(1); term_newln(p); p->offset += term_len(p, p->defindent + 1); return(1);}
开发者ID:2015520,项目名称:SequoiaDB,代码行数:11,
示例16: print_mdoc_footstatic voidprint_mdoc_foot(struct termp *p, const void *arg){ const struct mdoc_meta *meta; size_t sz; meta = (const struct mdoc_meta *)arg; term_fontrepl(p, TERMFONT_NONE); /* * Output the footer in new-groff style, that is, three columns * with the middle being the manual date and flanking columns * being the operating system: * * SYSTEM DATE SYSTEM */ term_vspace(p); p->offset = 0; sz = term_strlen(p, meta->date); p->rmargin = p->maxrmargin > sz ? (p->maxrmargin + term_len(p, 1) - sz) / 2 : 0; p->trailspace = 1; p->flags |= TERMP_NOSPACE | TERMP_NOBREAK; term_word(p, meta->os); term_flushln(p); p->offset = p->rmargin; sz = term_strlen(p, meta->os); p->rmargin = p->maxrmargin > sz ? p->maxrmargin - sz : 0; p->flags |= TERMP_NOSPACE; term_word(p, meta->date); term_flushln(p); p->offset = p->rmargin; p->rmargin = p->maxrmargin; p->trailspace = 0; p->flags &= ~TERMP_NOBREAK; p->flags |= TERMP_NOSPACE; term_word(p, meta->os); term_flushln(p); p->offset = 0; p->rmargin = p->maxrmargin; p->flags = 0;}
开发者ID:jashank,项目名称:freebsd,代码行数:51,
示例17: pre_SHstatic intpre_SH(DECL_ARGS){ int i; switch (n->type) { case MAN_BLOCK: mt->fl &= ~MANT_LITERAL; mt->lmargin[mt->lmargincur] = term_len(p, p->defindent); mt->offset = term_len(p, p->defindent); /* * No vertical space before the first section * and after an empty section. */ do { n = n->prev; } while (n != NULL && termacts[n->tok].flags & MAN_NOTEXT); if (n == NULL || (n->tok == MAN_SH && n->body->child == NULL)) break; for (i = 0; i < mt->pardist; i++) term_vspace(p); break; case MAN_HEAD: term_fontrepl(p, TERMFONT_BOLD); p->offset = 0; break; case MAN_BODY: p->offset = mt->offset; break; default: break; } return(1);}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:38,
示例18: termp_ss_prestatic inttermp_ss_pre(DECL_ARGS){ switch (n->type) { case ROFFT_BLOCK: term_newln(p); if (n->prev) term_vspace(p); break; case ROFFT_HEAD: term_fontpush(p, TERMFONT_BOLD); p->offset = term_len(p, (p->defindent+1)/2); break; case ROFFT_BODY: p->offset = term_len(p, p->defindent); break; default: break; } return 1;}
开发者ID:gokzy,项目名称:netbsd-src,代码行数:23,
示例19: terminal_manvoidterminal_man(void *arg, const struct man *man){ struct termp *p; const struct man_node *n; const struct man_meta *meta; struct mtermp mt; p = (struct termp *)arg; if (0 == p->defindent) p->defindent = 7; p->overstep = 0; p->maxrmargin = p->defrmargin; p->tabwidth = term_len(p, 5); if (NULL == p->symtab) p->symtab = mchars_alloc(); n = man_node(man); meta = man_meta(man); term_begin(p, print_man_head, print_man_foot, meta); p->flags |= TERMP_NOSPACE; memset(&mt, 0, sizeof(struct mtermp)); mt.lmargin[mt.lmargincur] = term_len(p, p->defindent); mt.offset = term_len(p, p->defindent); mt.pardist = 1; if (n->child) print_man_nodelist(p, &mt, n->child, meta); term_end(p);}
开发者ID:alexandermerritt,项目名称:dragonfly,代码行数:37,
注:本文中的term_len函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ term_newln函数代码示例 C++ term_fontpush函数代码示例 |