BT_FORMAT_NAMES(1) btparse BT_FORMAT_NAMES(1) (NAME) bt_format_names - btparse (SYNOPSIS) bt_name_format * bt_create_name_format (char * parts, boolean abbrev_first); void bt_free_name_format (bt_name_format * format); void bt_set_format_text (bt_name_format * format, bt_namepart part, char * pre_part, char * post_part, char * pre_token, char * post_token); void bt_set_format_options (bt_name_format * format, bt_namepart part, boolean abbrev, bt_joinmethod join_tokens, bt_joinmethod join_part); char * bt_format_name (bt_name * name, bt_name_format * format); (DESCRIPTION) ( "bt_name" ) . btparse : << >> (name format) . << >> "bt_name_format" bt_create_name_format() . . bt_set_format_text() bt_set_format_options() . : o ( "first von last jr" "von last jr first") o ( `first` : "Smith, John" "Smith John") o ( : "J. R. Smith" "J R Smith") o o : char * post_token[BT_MAX_NAMEPARTS] "post_token[BTN_FIRST]" ( "BTN_FIRST" "bt_namepart" ) --- "." . "bt_joinmethod" . : . "J R Smith" ( ) "JR Smith" ( ) . "von" "last" (tie) : "de~Roche" "de Roche". : BTJ_MAYTIE (discretionary tie) (tie) . ( TeX "~" .) bt_format_name() . BTJ_SPACE . BTJ_FORCETIE ("~") . BTJ_NOTHING --- . : . "BTJ_MAYTIE" "BTJ_SPACE" "BTJ_FORCETIE" "BTJ_NOTHING" . . . . ( BibTeX .) (FUNCTIONS) bt_create_name_format() bt_name_format * bt_create_name_format (char * parts, boolean abbrev_first) --- . "parts" . "parts" : "vljf" "von last jr first" . "fvlj" . "abbrev_first" `first` ( ). bt_create_name_format() : o << >>--- --- "BTJ_MAYTIE" ( ) . o << >>--- ( ) --- `first` `last` `jr` "BTJ_SPACE" . `von` `last` ( ) "BTJ_MAYTIE" `von` `last` `von` "BTJ_SPACE" . o `von` `last` `jr` "FALSE" `first` "abbrev_first" . o ( ) . "abbrev_first" : "abbrev_first" "TRUE" "." --- "J R Smith" "J. R. Smith" . ( bt_set_format_text() .) `jr` `last` ( ) `jr` ", " `last` "BTJ_NOTHING" . "John Smith Jr" ( "Smith" "BTJ_SPACE" ) "John Smith, Jr" ( ", " "Jr" --- `jr` ", " ). `first` `jr` `last` ( << >> ) : `first` ", " ( `jr` `last`) "BTJ_NOTHING" . . "fvlj" "vljf" . --- --- bt_set_format_text() bt_set_format_options() . bt_free_name_format() void bt_free_name_format (bt_name_format * format) bt_create_name_format() . bt_set_format_text() void bt_set_format_text (bt_name_format * format, bt_namepart part, char * pre_part, char * post_part, char * pre_token, char * post_token) . "NULL" . . : format = bt_create_name_format ("fvlj", TRUE); bt_set_format_text (format, BTN_FIRST, /* name-part to customize */ NULL, NULL, /* pre- and post- part text */ NULL, ""); /* empty string for post-token */ bt_set_format_text() "format" "J. R. Smith" . "" "J R Smith" . bt_set_format_options() void bt_set_format_options (bt_name_format * format, bt_namepart part, boolean abbrev, bt_joinmethod join_tokens, bt_joinmethod join_part) : . bt_set_format_options() . : "JR Smith" "J R Smith". : bt_set_format_options (format, BTN_FIRST, TRUE, /* keep same value for abbrev flag */ BTJ_NOTHING, /* jam tokens together */ BTJ_SPACE); /* space after final token of part */ ( ) . bt_format_name() char * bt_format_name (bt_name * name, bt_name_format * format) "bt_split_name" ( bt_split_names ). . free() . (SEE ALSO) btparse, bt_split_names (AUTHORS) Greg Ward btparse, version 0.91 2025-07-14 BT_FORMAT_NAMES(1)