Skip to content
Snippets Groups Projects
utils.c 25.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • 	if (__builtin_expect(needed > mgr->space, 0)) {
    		size_t new_size = mgr->size * 2;
    
    		while (new_size < needed)
    
    		if (add_string_pool(mgr, new_size))
    
    	result = mgr->pool->base + mgr->used;
    	mgr->used += needed;
    	mgr->space -= needed;
    
    void __ast_string_field_index_build(struct ast_string_field_mgr *mgr,
    
    				    ast_string_field *fields, int num_fields,
    				    int index, const char *format, ...)
    {
    	size_t needed;
    	va_list ap1, ap2;
    
    	va_start(ap1, format);
    
    	va_start(ap2, format);		/* va_copy does not exist on FreeBSD */
    
    	needed = vsnprintf(mgr->pool->base + mgr->used, mgr->space, format, ap1) + 1;
    
    	if (needed > mgr->space) {
    		size_t new_size = mgr->size * 2;
    
    		while (new_size < needed)
    			new_size *= 2;
    
    		if (add_string_pool(mgr, new_size))
    			return;
    
    		vsprintf(mgr->pool->base + mgr->used, format, ap2);
    	}
    
    	fields[index] = mgr->pool->base + mgr->used;
    	mgr->used += needed;
    	mgr->space -= needed;
    
    Olle Johansson's avatar
    Olle Johansson committed
    /*! \brief
    
    int ast_get_time_t(const char *src, time_t *dst, time_t _default, int *consumed)
    
    
    	if (dst == NULL)
    		return -1;
    
    	*dst = _default;
    
    	if (ast_strlen_zero(src))
    		return -1;
    
    	/* only integer at the moment, but one day we could accept more formats */
    
    	if (sscanf(src, "%ld%n", &t, &scanned) == 1) {