aboutsummaryrefslogtreecommitdiffstats
path: root/awk.h
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2011-04-18 10:23:54 +0300
committerArnold D. Robbins <arnold@skeeve.com>2011-04-18 10:23:54 +0300
commitbcb8bd6d6671a3400c4bfe3e34eb4d5d66050f32 (patch)
tree41cf2343944c2836150422b1bafabdaa73ff32bb /awk.h
parent98eb78c2d05870952fe25bbe37b86df2017f42fc (diff)
downloadegawk-bcb8bd6d6671a3400c4bfe3e34eb4d5d66050f32.tar.gz
egawk-bcb8bd6d6671a3400c4bfe3e34eb4d5d66050f32.tar.bz2
egawk-bcb8bd6d6671a3400c4bfe3e34eb4d5d66050f32.zip
More array sorting changes from John.
Diffstat (limited to 'awk.h')
-rw-r--r--awk.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/awk.h b/awk.h
index d781ff65..52ce5bfd 100644
--- a/awk.h
+++ b/awk.h
@@ -336,6 +336,7 @@ typedef struct exp_node {
#endif
} val;
struct {
+ AWKNUM num;
struct exp_node *next;
char *name;
size_t length;
@@ -351,6 +352,7 @@ typedef struct exp_node {
#define ahnext sub.hash.next
#define ahname_str sub.hash.name
#define ahname_len sub.hash.length
+#define ahname_num sub.hash.num
#define ahvalue sub.hash.value
#define ahname_ref sub.hash.ref
#define ahcode sub.hash.code
@@ -845,9 +847,6 @@ struct flagtab {
#endif
#define UNLIMITED LONG_MAX
-/* qsort comparison function */
-typedef int (*qsort_compfunc)(const void *,const void *);
-
/* -------------------------- External variables -------------------------- */
/* gawk builtin variables */
extern long NF;
@@ -1109,6 +1108,8 @@ if (--val) \
typedef int (*Func_print)(FILE *, const char *, ...);
/* array.c */
+typedef enum sort_context { SORTED_IN = 1, ASORT, ASORTI } SORT_CTXT;
+extern NODE **assoc_list(NODE *array, NODE *sort_str, SORT_CTXT sort_ctxt);
extern NODE *get_array(NODE *symbol, int canfatal);
extern char *array_vname(const NODE *symbol);
extern char *make_aname(NODE *array, NODE *subs);
@@ -1125,9 +1126,6 @@ extern NODE *assoc_dump(NODE *symbol, int indent_level);
extern NODE *do_adump(int nargs);
extern NODE *do_asort(int nargs);
extern NODE *do_asorti(int nargs);
-extern int comp_func(const void *p1, const void *p2);
-extern qsort_compfunc sorted_in(void);
-extern void sort_maybe_numeric_index(qsort_compfunc, NODE **, size_t, int);
extern unsigned long (*hash)(const char *s, size_t len, unsigned long hsize, size_t *code);
/* awkgram.c */
extern NODE *mk_symbol(NODETYPE type, NODE *value);