Lines Matching defs:pb
78 paste_buffer_name(struct paste_buffer *pb)
80 return (pb->name);
85 paste_buffer_order(struct paste_buffer *pb)
87 return (pb->order);
92 paste_buffer_created(struct paste_buffer *pb)
94 return (pb->created);
99 paste_buffer_data(struct paste_buffer *pb, size_t *size)
102 *size = pb->size;
103 return (pb->data);
108 paste_walk(struct paste_buffer *pb)
110 if (pb == NULL)
112 return (RB_NEXT(paste_time_tree, &paste_by_time, pb));
125 struct paste_buffer *pb;
127 pb = RB_MIN(paste_time_tree, &paste_by_time);
128 while (pb != NULL && !pb->automatic)
129 pb = RB_NEXT(paste_time_tree, &paste_by_time, pb);
130 if (pb == NULL)
133 *name = pb->name;
134 return (pb);
152 paste_free(struct paste_buffer *pb)
154 notify_paste_buffer(pb->name, 1);
156 RB_REMOVE(paste_name_tree, &paste_by_name, pb);
157 RB_REMOVE(paste_time_tree, &paste_by_time, pb);
158 if (pb->automatic)
161 free(pb->data);
162 free(pb->name);
163 free(pb);
173 struct paste_buffer *pb, *pb1;
185 RB_FOREACH_REVERSE_SAFE(pb, paste_time_tree, &paste_by_time, pb1) {
188 if (pb->automatic)
189 paste_free(pb);
192 pb = xmalloc(sizeof *pb);
194 pb->name = NULL;
196 free(pb->name);
197 xasprintf(&pb->name, "%s%u", prefix, paste_next_index);
199 } while (paste_get_name(pb->name) != NULL);
201 pb->data = data;
202 pb->size = size;
204 pb->automatic = 1;
207 pb->created = time(NULL);
209 pb->order = paste_next_order++;
210 RB_INSERT(paste_name_tree, &paste_by_name, pb);
211 RB_INSERT(paste_time_tree, &paste_by_time, pb);
213 notify_paste_buffer(pb->name, 0);
220 struct paste_buffer *pb, *pb_new;
236 pb = paste_get_name(oldname);
237 if (pb == NULL) {
244 if (pb_new == pb)
249 RB_REMOVE(paste_name_tree, &paste_by_name, pb);
251 free(pb->name);
252 pb->name = xstrdup(newname);
254 if (pb->automatic)
256 pb->automatic = 0;
258 RB_INSERT(paste_name_tree, &paste_by_name, pb);
273 struct paste_buffer *pb, *old;
293 pb = xmalloc(sizeof *pb);
295 pb->name = xstrdup(name);
297 pb->data = data;
298 pb->size = size;
300 pb->automatic = 0;
301 pb->order = paste_next_order++;
303 pb->created = time(NULL);
308 RB_INSERT(paste_name_tree, &paste_by_name, pb);
309 RB_INSERT(paste_time_tree, &paste_by_time, pb);
318 paste_replace(struct paste_buffer *pb, char *data, size_t size)
320 free(pb->data);
321 pb->data = data;
322 pb->size = size;
324 notify_paste_buffer(pb->name, 0);
329 paste_make_sample(struct paste_buffer *pb)
336 len = pb->size;
341 used = utf8_strvis(buf, pb->data, len, flags);
342 if (pb->size > width || used > width)