comparison util.c @ 492:73f8df0ecffe

Add dirty flag to editbuf struct and handling functions.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 27 May 2012 10:06:42 +0300
parents ad7ddce47878
children b6f6c989deab
comparison
equal deleted inserted replaced
491:942446795978 492:73f8df0ecffe
320 if (pos >= buf->len) 320 if (pos >= buf->len)
321 buf->data[buf->len++] = ch; 321 buf->data[buf->len++] = ch;
322 else 322 else
323 buf->data[pos] = ch; 323 buf->data[pos] = ch;
324 324
325 buf->dirty = TRUE;
325 return 0; 326 return 0;
326 } 327 }
327 328
328 329
329 int nn_editbuf_insert(nn_editbuf_t *buf, size_t pos, char ch) 330 int nn_editbuf_insert(nn_editbuf_t *buf, size_t pos, char ch)
338 { 339 {
339 memmove(&(buf->data[pos+1]), &(buf->data[pos]), buf->len - pos + 1); 340 memmove(&(buf->data[pos+1]), &(buf->data[pos]), buf->len - pos + 1);
340 buf->data[pos] = ch; 341 buf->data[pos] = ch;
341 } 342 }
342 buf->len++; 343 buf->len++;
344
345 buf->dirty = TRUE;
343 return 0; 346 return 0;
344 } 347 }
345 348
346 349
347 int nn_editbuf_delete(nn_editbuf_t *buf, size_t pos) 350 int nn_editbuf_delete(nn_editbuf_t *buf, size_t pos)
348 { 351 {
349 if (pos < buf->len) 352 if (pos < buf->len)
350 { 353 {
351 memmove(&(buf->data[pos]), &(buf->data[pos+1]), buf->len - pos); 354 memmove(&(buf->data[pos]), &(buf->data[pos+1]), buf->len - pos);
352 buf->len--; 355 buf->len--;
356 buf->dirty = TRUE;
353 return 0; 357 return 0;
354 } 358 }
355 else 359 else
356 return -2; 360 return -2;
357 } 361 }
359 363
360 void nn_editbuf_clear(nn_editbuf_t *buf) 364 void nn_editbuf_clear(nn_editbuf_t *buf)
361 { 365 {
362 buf->len = 0; 366 buf->len = 0;
363 buf->pos = 0; 367 buf->pos = 0;
368 buf->dirty = TRUE;
364 } 369 }
365 370
366 371
367 nn_editbuf_t * nn_editbuf_new(size_t n) 372 nn_editbuf_t * nn_editbuf_new(size_t n)
368 { 373 {
369 nn_editbuf_t *res = th_calloc(1, sizeof(nn_editbuf_t)); 374 nn_editbuf_t *res = th_calloc(1, sizeof(nn_editbuf_t));
370 375
371 res->data = (char *) th_malloc(n); 376 res->data = (char *) th_malloc(n);
372 res->size = n; 377 res->size = n;
378 res->dirty = TRUE;
373 379
374 return res; 380 return res;
375 } 381 }
376 382
377 383
396 if ((res = nn_editbuf_new(src->size)) == NULL) 402 if ((res = nn_editbuf_new(src->size)) == NULL)
397 return NULL; 403 return NULL;
398 404
399 memcpy(res->data, src->data, src->size); 405 memcpy(res->data, src->data, src->size);
400 res->pos = res->len = src->len; 406 res->pos = res->len = src->len;
407 res->dirty = TRUE;
401 408
402 return res; 409 return res;
403 } 410 }
404 411
405 412
435 442
436 if (pos >= buf->len) 443 if (pos >= buf->len)
437 buf->pos = buf->len; 444 buf->pos = buf->len;
438 else 445 else
439 buf->pos = pos; 446 buf->pos = pos;
447
448 buf->dirty = TRUE;
440 } 449 }
441 450
442 451
443 static uint8_t nn_hash_user(const char *name) 452 static uint8_t nn_hash_user(const char *name)
444 { 453 {