You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	moved simple c utils
Originally committed as revision 804 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							
								
								
									
										110
									
								
								libav/cutils.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								libav/cutils.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | ||||
| /* | ||||
|  * Various simple utilities for ffmpeg system | ||||
|  * Copyright (c) 2000, 2001, 2002 Fabrice Bellard | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Lesser General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Lesser General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Lesser General Public | ||||
|  * License along with this library; if not, write to the Free Software | ||||
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
|  */ | ||||
| #include "avformat.h" | ||||
| #include <ctype.h> | ||||
|  | ||||
| #if !defined(CONFIG_NOCUTILS) | ||||
| /** | ||||
|  * Return TRUE if val is a prefix of str. If it returns TRUE, ptr is | ||||
|  * set to the next character in 'str' after the prefix. | ||||
|  * | ||||
|  * @param str input string | ||||
|  * @param val prefix to test | ||||
|  * @param ptr updated after the prefix in str in there is a match | ||||
|  * @return TRUE if there is a match | ||||
|  */ | ||||
| int strstart(const char *str, const char *val, const char **ptr) | ||||
| { | ||||
|     const char *p, *q; | ||||
|     p = str; | ||||
|     q = val; | ||||
|     while (*q != '\0') { | ||||
|         if (*p != *q) | ||||
|             return 0; | ||||
|         p++; | ||||
|         q++; | ||||
|     } | ||||
|     if (ptr) | ||||
|         *ptr = p; | ||||
|     return 1; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Return TRUE if val is a prefix of str (case independent). If it | ||||
|  * returns TRUE, ptr is set to the next character in 'str' after the | ||||
|  * prefix. | ||||
|  * | ||||
|  * @param str input string | ||||
|  * @param val prefix to test | ||||
|  * @param ptr updated after the prefix in str in there is a match | ||||
|  * @return TRUE if there is a match */ | ||||
| int stristart(const char *str, const char *val, const char **ptr) | ||||
| { | ||||
|     const char *p, *q; | ||||
|     p = str; | ||||
|     q = val; | ||||
|     while (*q != '\0') { | ||||
|         if (toupper(*(unsigned char *)p) != toupper(*(unsigned char *)q)) | ||||
|             return 0; | ||||
|         p++; | ||||
|         q++; | ||||
|     } | ||||
|     if (ptr) | ||||
|         *ptr = p; | ||||
|     return 1; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Copy the string str to buf. If str length is bigger than buf_size - | ||||
|  * 1 then it is clamped to buf_size - 1. | ||||
|  * NOTE: this function does what strncpy should have done to be | ||||
|  * useful. NEVER use strncpy. | ||||
|  *  | ||||
|  * @param buf destination buffer | ||||
|  * @param buf_size size of destination buffer | ||||
|  * @param str source string | ||||
|  */ | ||||
| void pstrcpy(char *buf, int buf_size, const char *str) | ||||
| { | ||||
|     int c; | ||||
|     char *q = buf; | ||||
|  | ||||
|     if (buf_size <= 0) | ||||
|         return; | ||||
|  | ||||
|     for(;;) { | ||||
|         c = *str++; | ||||
|         if (c == 0 || q >= buf + buf_size - 1) | ||||
|             break; | ||||
|         *q++ = c; | ||||
|     } | ||||
|     *q = '\0'; | ||||
| } | ||||
|  | ||||
| /* strcat and truncate. */ | ||||
| char *pstrcat(char *buf, int buf_size, const char *s) | ||||
| { | ||||
|     int len; | ||||
|     len = strlen(buf); | ||||
|     if (len < buf_size)  | ||||
|         pstrcpy(buf + len, buf_size - len, s); | ||||
|     return buf; | ||||
| } | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user