Lines Matching refs:gmnp

75  *	0:	do not free gmnp->conv_msgstr
76 * 1: free gmnp->conv_msgstr
79 free_conv_msgstr(Msg_g_node *gmnp, int f)
85 (void *)gmnp, f);
86 printgnumsg(gmnp, 1);
89 num_of_conv = gmnp->num_of_str + gmnp->num_of_d_str;
91 if (gmnp->conv_msgstr[i]) {
92 free(gmnp->conv_msgstr[i]);
94 gmnp->conv_msgstr[i] = NULL;
97 free(gmnp->conv_msgstr);
98 gmnp->conv_msgstr = NULL;
109 dfltmsgstr(Msg_g_node *gmnp, const char *msgstr, uint32_t msgstr_len,
118 (void *)gmnp,
120 printgnumsg(gmnp, 1);
125 if (gmnp->plural) {
126 pindex = plural_eval(gmnp->plural, mp->n);
140 if (pindex >= gmnp->nplurals) {
173 parse_header(const char *header, Msg_g_node *gmnp)
186 header ? header : "(null)", (void *)gmnp);
187 printgnumsg(gmnp, 1);
191 gmnp->src_encoding = (char *)nullstr;
192 gmnp->nplurals = 2;
193 gmnp->plural = NULL;
204 gmnp->src_encoding = (char *)nullstr;
216 gmnp->src_encoding = (char *)nullstr;
217 gmnp->nplurals = 2;
218 gmnp->plural = NULL;
223 gmnp->src_encoding = charset;
225 gmnp->src_encoding = (char *)nullstr;
233 gmnp->nplurals = 2;
234 gmnp->plural = NULL;
247 gmnp->nplurals = nplurals;
249 gmnp->nplurals = 2;
260 gmnp->plural = plural;
270 gmnp->nplurals = 2;
271 gmnp->plural = NULL;
277 gmnp->src_encoding = (char *)nullstr;
278 gmnp->nplurals = 2;
279 gmnp->plural = NULL;
372 gnu_msgsearch(Msg_g_node *gmnp, const char *msgid1,
375 struct gnu_msg_info *header = gmnp->msg_file_info;
386 (void *)gmnp, msgid1, msgstrlen, midx);
387 printgnumsg(gmnp, 1);
392 msgid_tbl = gmnp->msg_tbl[MSGID];
393 msgstr_tbl = gmnp->msg_tbl[MSGSTR];
394 hash_table = gmnp->hash_table;
395 hash_size = gmnp->hash_size;
396 num_of_str = gmnp->num_of_str;
398 if (!(gmnp->flag & ST_REV1) &&
414 SWAP(gmnp, msgid_tbl[idx].offset);
423 SWAP(gmnp, msgstr_tbl[idx].len) + 1;
426 SWAP(gmnp, msgstr_tbl[idx].offset));
439 hash_val = HASH_TBL(gmnp, hash_table[hash_idx]);
448 mlen = SWAP(gmnp, msgid_tbl[idx].len);
449 msg = base + SWAP(gmnp, msgid_tbl[idx].offset);
451 if (!(gmnp->flag & ST_REV1)) {
457 mlen = gmnp->d_msg[MSGID][idx].len;
458 msg = gmnp->mchunk + gmnp->d_msg[MSGID][idx].offset;
469 *msgstrlen = SWAP(gmnp, msgstr_tbl[idx].len) + 1;
470 msg = base + SWAP(gmnp, msgstr_tbl[idx].offset);
473 *msgstrlen = gmnp->d_msg[MSGSTR][idx].len + 1;
474 msg = gmnp->mchunk + gmnp->d_msg[MSGSTR][idx].offset;
571 conv_msg(Msg_g_node *gmnp, char *msgstr, uint32_t msgstr_len, uint32_t midx,
578 if (gmnp->conv_msgstr == NULL) {
579 num_of_conv = gmnp->num_of_str + gmnp->num_of_d_str;
580 gmnp->conv_msgstr =
582 if (gmnp->conv_msgstr == NULL) {
584 result = dfltmsgstr(gmnp, msgstr, msgstr_len, mp);
589 conv_dst = do_conv(gmnp->fd, (const char *)msgstr, msgstr_len);
592 result = dfltmsgstr(gmnp, msgstr, msgstr_len, mp);
596 gmnp->conv_msgstr[midx] = conv_dst;
598 result = dfltmsgstr(gmnp, conv_msgstr, conv_msgstr_len, mp);
608 gnu_key_2_text(Msg_g_node *gmnp, const char *codeset,
619 (void *)gmnp, codeset ? codeset : "(null)", (void *)mp);
620 printgnumsg(gmnp, 1);
625 if (!(gmnp->flag & ST_CHK)) {
628 msg_header = gnu_msgsearch(gmnp, "", &msgstr_len, &midx);
629 ret = parse_header((const char *)msg_header, gmnp);
636 gmnp->flag |= ST_CHK;
638 msgstr = gnu_msgsearch(gmnp, mp->msgid1, &msgstr_len, &midx);
646 printgnumsg(gmnp, 1);
648 if (gmnp->dst_encoding == NULL) {
655 result = dfltmsgstr(gmnp, msgstr, msgstr_len, mp);
658 gmnp->dst_encoding = dupcodeset;
660 if (strcmp(gmnp->dst_encoding, gmnp->src_encoding) == 0) {
674 if (gmnp->fd && (gmnp->fd != (iconv_t)-1)) {
675 (void) iconv_close(gmnp->fd);
676 gmnp->fd = (iconv_t)-1;
678 if (gmnp->conv_msgstr)
679 free_conv_msgstr(gmnp, 0);
687 if (strcmp(gmnp->dst_encoding, codeset) == 0) {
691 if (strcmp(gmnp->dst_encoding, gmnp->src_encoding)
706 if (gmnp->fd == (iconv_t)-1) {
713 if (gmnp->conv_msgstr == NULL) {
720 if (gmnp->fd)
722 gmnp->fd);
723 gmnp->fd = (iconv_t)-1;
734 result = dfltmsgstr(gmnp, msgstr,
738 free(gmnp->dst_encoding);
739 gmnp->dst_encoding = dupcodeset;
740 if (strcmp(gmnp->dst_encoding, gmnp->src_encoding)
747 if (gmnp->conv_msgstr)
748 free_conv_msgstr(gmnp, 1);
756 if (gmnp->conv_msgstr)
757 free_conv_msgstr(gmnp, 0);
760 if (gmnp->fd && (gmnp->fd != (iconv_t)-1)) {
761 (void) iconv_close(gmnp->fd);
763 if (gmnp->fd != (iconv_t)-1) {
764 gmnp->fd = (iconv_t)-1;
771 result = dfltmsgstr(gmnp, msgstr, msgstr_len, mp);
782 if (gmnp->conv_msgstr[midx] == NULL) {
784 result = conv_msg(gmnp, msgstr, msgstr_len, midx, mp);
788 cmsg = (uint32_t *)(uintptr_t)gmnp->conv_msgstr[midx];
791 result = dfltmsgstr(gmnp, conv_msgstr, conv_msgstr_len, mp);
798 gmnp->dst_encoding, gmnp->src_encoding);
800 fd = iconv_open(gmnp->dst_encoding, gmnp->src_encoding);
801 gmnp->fd = fd;
807 result = dfltmsgstr(gmnp, msgstr, msgstr_len, mp);
810 result = conv_msg(gmnp, msgstr, msgstr_len, midx, mp);