]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/sb.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / sb.h
index 5732688315f76c856232279e2619f192d4a3aa72..471dce31a05a11ab9472d0fcba753ae98d1e160f 100644 (file)
--- a/gas/sb.h
+++ b/gas/sb.h
@@ -1,5 +1,5 @@
 /* sb.h - header file for string buffer manipulation routines
-   Copyright 1994, 1995, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1994-2021 Free Software Foundation, Inc.
 
    Written by Steve and Judy Chamberlain of Cygnus Support,
       sac@cygnus.com
@@ -8,7 +8,7 @@
 
    GAS is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    GAS is distributed in the hope that it will be useful,
@@ -25,9 +25,6 @@
 
 #define SB_H
 
-#include <stdio.h>
-#include "ansidecl.h"
-
 /* String blocks
 
    I had a couple of choices when deciding upon this data structure.
    Obstacks provide all the functionality needed, but are too
    complicated, hence the sb.
 
-   An sb is allocated by the caller, and is initialized to point to an
-   sb_element.  sb_elements are kept on a free lists, and used when
-   needed, replaced onto the free list when unused.  */
-
-#define sb_max_power_two    30 /* Don't allow strings more than
-                                  2^sb_max_power_two long.  */
+   An sb is allocated by the caller.  */
 
 typedef struct sb
 {
   char *ptr;                   /* Points to the current block.  */
-  int len;                     /* How much is used.  */
-  int pot;                     /* The maximum length is 1<<pot.  */
-  struct le *item;
+  size_t len;                  /* How much is used.  */
+  size_t max;                  /* The maximum length.  */
 }
 sb;
 
-/* Structure of the free list object of a string block.  */
-
-typedef struct le
-{
-  struct le *next;
-  int size;
-  char data[1];
-}
-sb_element;
-
-/* The free list.  */
-
-typedef struct
-{
-  sb_element *size[sb_max_power_two];
-}
-sb_list_vector;
-
 extern void sb_new (sb *);
+extern void sb_build (sb *, size_t);
 extern void sb_kill (sb *);
 extern void sb_add_sb (sb *, sb *);
 extern void sb_scrub_and_add_sb (sb *, sb *);
 extern void sb_reset (sb *);
-extern void sb_add_char (sb *, int);
+extern void sb_add_char (sb *, size_t);
 extern void sb_add_string (sb *, const char *);
-extern void sb_add_buffer (sb *, const char *, int);
+extern void sb_add_buffer (sb *, const char *, size_t);
 extern char *sb_terminate (sb *);
-extern int sb_skip_white (int, sb *);
-extern int sb_skip_comma (int, sb *);
+extern size_t sb_skip_white (size_t, sb *);
+extern size_t sb_skip_comma (size_t, sb *);
 
 /* Actually in input-scrub.c.  */
 extern void input_scrub_include_sb (sb *, char *, int);