Lines Matching defs:subst
1 /* $NetBSD: subst.c,v 1.4 2025/09/05 21:16:23 christos Exp $ */
280 struct rewrite_subst *subst,
293 assert( subst != NULL );
306 if ( subst->lt_num_submatch > 0 ) {
308 subst->lt_num_submatch );
315 * Resolve submatches (simple subst, map expansion and so).
317 for ( n = 0, l = 0; n < subst->lt_num_submatch; n++ ) {
325 switch ( subst->lt_submatch[ n ].ls_type ) {
328 rc = submatch_copy( &subst->lt_submatch[ n ],
337 switch ( subst->lt_submatch[ n ].ls_map->lm_type ) {
346 subst->lt_submatch[ n ].ls_map->lm_subst,
369 switch ( subst->lt_submatch[ n ].ls_type ) {
377 subst->lt_submatch[ n ].ls_map,
385 subst->lt_submatch[ n ].ls_map,
416 l += subst->lt_subs_len;
426 for ( n = 0, cl = 0; n < subst->lt_num_submatch; n++ ) {
427 if ( subst->lt_subs[ n ].bv_val != NULL ) {
428 AC_MEMCPY( res + cl, subst->lt_subs[ n ].bv_val,
429 subst->lt_subs[ n ].bv_len );
430 cl += subst->lt_subs[ n ].bv_len;
436 if ( subst->lt_subs[ n ].bv_val != NULL ) {
437 AC_MEMCPY( res + cl, subst->lt_subs[ n ].bv_val,
438 subst->lt_subs[ n ].bv_len );
439 cl += subst->lt_subs[ n ].bv_len;
468 struct rewrite_subst *subst;
473 subst = *psubst;
475 for ( n = 0; n < subst->lt_num_submatch; n++ ) {
476 if ( subst->lt_subs[ n ].bv_val ) {
477 free( subst->lt_subs[ n ].bv_val );
478 subst->lt_subs[ n ].bv_val = NULL;
481 switch ( subst->lt_submatch[ n ].ls_type ) {
486 rewrite_xmap_destroy( &subst->lt_submatch[ n ].ls_map );
490 rewrite_map_destroy( &subst->lt_submatch[ n ].ls_map );
498 free( subst->lt_submatch );
499 subst->lt_submatch = NULL;
502 if ( subst->lt_subs[ n ].bv_val ) {
503 free( subst->lt_subs[ n ].bv_val );
504 subst->lt_subs[ n ].bv_val = NULL;
507 free( subst->lt_subs );
508 subst->lt_subs = NULL;
510 free( subst );