QString: Introduce qstring_append_chr()
It appends a C char to a QString. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									8ff5a7d346
								
							
						
					
					
						commit
						6fe9565c5b
					
				
							
								
								
									
										24
									
								
								qstring.c
								
								
								
								
							
							
						
						
									
										24
									
								
								qstring.c
								
								
								
								
							| 
						 | 
				
			
			@ -53,24 +53,38 @@ QString *qstring_from_str(const char *str)
 | 
			
		|||
    return qstring;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* qstring_append(): Append a C string to a QString
 | 
			
		||||
 */
 | 
			
		||||
void qstring_append(QString *qstring, const char *str)
 | 
			
		||||
static void capacity_increase(QString *qstring, size_t len)
 | 
			
		||||
{
 | 
			
		||||
    size_t len = strlen(str);
 | 
			
		||||
 | 
			
		||||
    if (qstring->capacity < (qstring->length + len)) {
 | 
			
		||||
        qstring->capacity += len;
 | 
			
		||||
        qstring->capacity *= 2; /* use exponential growth */
 | 
			
		||||
 | 
			
		||||
        qstring->string = qemu_realloc(qstring->string, qstring->capacity + 1);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* qstring_append(): Append a C string to a QString
 | 
			
		||||
 */
 | 
			
		||||
void qstring_append(QString *qstring, const char *str)
 | 
			
		||||
{
 | 
			
		||||
    size_t len = strlen(str);
 | 
			
		||||
 | 
			
		||||
    capacity_increase(qstring, len);
 | 
			
		||||
    memcpy(qstring->string + qstring->length, str, len);
 | 
			
		||||
    qstring->length += len;
 | 
			
		||||
    qstring->string[qstring->length] = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * qstring_append_chr(): Append a C char to a QString
 | 
			
		||||
 */
 | 
			
		||||
void qstring_append_chr(QString *qstring, int c)
 | 
			
		||||
{
 | 
			
		||||
    capacity_increase(qstring, 1);
 | 
			
		||||
    qstring->string[qstring->length++] = c;
 | 
			
		||||
    qstring->string[qstring->length] = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * qobject_to_qstring(): Convert a QObject to a QString
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@ QString *qstring_new(void);
 | 
			
		|||
QString *qstring_from_str(const char *str);
 | 
			
		||||
const char *qstring_get_str(const QString *qstring);
 | 
			
		||||
void qstring_append(QString *qstring, const char *str);
 | 
			
		||||
void qstring_append_chr(QString *qstring, int c);
 | 
			
		||||
QString *qobject_to_qstring(const QObject *obj);
 | 
			
		||||
 | 
			
		||||
#endif /* QSTRING_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue