+/* Blerg is (C) 2011 The Dominion of Awesome, and is distributed under a
+ * BSD-style license. Please see the COPYING file for details.
+ */
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/file.h>
#include <sys/mman.h>
#include "tags.h"
+#include "util.h"
#include "config.h"
#define MAX_TAG_LENGTH 64
return 1;
}
-struct tag * tag_list(const char *tag, uint64_t offset, uint64_t *count, int direction) {
+struct tag * tag_list(const char *tag, uint64_t offset, int *count, int direction) {
char filename[512];
struct stat st;
struct tag *taglist;
struct tag *retlist;
uint64_t n_tag_records;
+
+ if (!valid_name(tag + 1))
+ return NULL;
switch(tag[0]) {
case '#':
break;
default:
fprintf(stderr, "Invalid tag type: %s\n", tag);
- return 0;
+ return NULL;
}
int tag_fd = open(filename, O_RDONLY, 0600);
}
int tag_exists(const char *tag) {
- int taglen = strlen(tag);
char filename[512];
- if (taglen < 2) {
- fprintf(stderr, "Tag too short\n");
+ if (!valid_name(tag + 1))
return 0;
- } else if (taglen > 33) {
- fprintf(stderr, "Tag too long\n");
- return 0;
- }
+
if (!(tag[0] == '@' || tag[0] == '#')) {
fprintf(stderr, "Invalid tag: %s\n", tag);
return 0;