text: /*******************************************************************************
   * Copyright (c) 2013-2021, Andrés Martinelli <andmarti@gmail.com>             *
   * All rights reserved.                                                        *
   *                                                                             *
   * This file is a part of sc-im                                                *
   *                                                                             *
   * sc-im is a spreadsheet program that is based on sc. The original authors    *
   * of sc are James Gosling and Mark Weiser, and mods were later added by       *
   * Chuck Martin.                                                               *
   *                                                                             *
   * Redistribution and use in source and binary forms, with or without          *
   * modification, are permitted provided that the following conditions are met: *
   * 1. Redistributions of source code must retain the above copyright           *
   *    notice, this list of conditions and the following disclaimer.            *
   * 2. Redistributions in binary form must reproduce the above copyright        *
   *    notice, this list of conditions and the following disclaimer in the      *
   *    documentation and/or other materials provided with the distribution.     *
   * 3. All advertising materials mentioning features or use of this software    *
   *    must display the following acknowledgement:                              *
   *    This product includes software developed by Andrés Martinelli            *
   *    <andmarti@gmail.com>.                                                    *
   * 4. Neither the name of the Andrés Martinelli nor the                        *
   *   names of other contributors may be used to endorse or promote products    *
   *   derived from this software without specific prior written permission.     *
   *                                                                             *
   * THIS SOFTWARE IS PROVIDED BY ANDRES MARTINELLI ''AS IS'' AND ANY            *
   * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED   *
   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE      *
   * DISCLAIMED. IN NO EVENT SHALL ANDRES MARTINELLI BE LIABLE FOR ANY           *
   * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES  *
   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;*
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND *
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  *
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE       *
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.           *
   *******************************************************************************/
  
  /**
   * \file marks.h
   * \author Andrés Martinelli <andmarti@gmail.com>
   * \date 2017-07-18
   * \brief Header file for marks.c
   */
  
  #include "range.h"
  
  /*
   * struct mark
   * row and col -1 indicates the node represents
   * a mark of a range of cells rather than a mark of just one cell
   */
  struct mark {
      struct sheet * sheet;
      int row;
      int col;
      srange * rng;
  };
  typedef struct mark mark;
  
  void create_mark_array();
  void free_marks_array();
  void set_cell_mark(char c, struct sheet * sh, int row, int col);
  void set_range_mark(char c, struct sheet * sh, struct srange * s);
  void fix_marks(struct sheet * sh, int deltar, int deltac, int row_desde, int row_hasta, int col_desde, int col_hasta);
  mark * get_mark(char c);
  void clean_marks_by_sheet(struct sheet * sh);
  