Annotation of src/usr.bin/tmux/grid-cell.c, Revision 1.1
1.1 ! nicm 1: /* $OpenBSD: grid.c,v 1.20 2012/07/10 11:53:01 nicm Exp $ */
! 2:
! 3: /*
! 4: * Copyright (c) 2012 Nicholas Marriott <nicm@users.sourceforge.net>
! 5: *
! 6: * Permission to use, copy, modify, and distribute this software for any
! 7: * purpose with or without fee is hereby granted, provided that the above
! 8: * copyright notice and this permission notice appear in all copies.
! 9: *
! 10: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
! 11: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
! 12: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
! 13: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
! 14: * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
! 15: * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
! 16: * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
! 17: */
! 18:
! 19: #include <sys/types.h>
! 20:
! 21: #include <string.h>
! 22:
! 23: #include "tmux.h"
! 24:
! 25: /* Get cell width. */
! 26: u_int
! 27: grid_cell_width(const struct grid_cell *gc)
! 28: {
! 29: return (gc->xstate >> 4);
! 30: }
! 31:
! 32: /* Get cell data. */
! 33: void
! 34: grid_cell_get(const struct grid_cell *gc, struct utf8_data *ud)
! 35: {
! 36: ud->size = gc->xstate & 0xf;
! 37: ud->width = gc->xstate >> 4;
! 38: memcpy(ud->data, gc->xdata, ud->size);
! 39: }
! 40:
! 41: /* Set cell data. */
! 42: void
! 43: grid_cell_set(struct grid_cell *gc, const struct utf8_data *ud)
! 44: {
! 45: memcpy(gc->xdata, ud->data, ud->size);
! 46: gc->xstate = (ud->width << 4) | ud->size;
! 47: }
! 48:
! 49: /* Set a single character as cell data. */
! 50: void
! 51: grid_cell_one(struct grid_cell *gc, u_char ch)
! 52: {
! 53: *gc->xdata = ch;
! 54: gc->xstate = (1 << 4) | 1;
! 55: }