*.log
.libs
.deps
-sort1
+test_sort1
*.lo
*.o
*~
-check_PROGRAMS = sort1
+check_PROGRAMS = test_sort1
TESTS = $(check_PROGRAMS)
-EXTRA_DIST = zebra.cfg default.idx string-hat.chr \
- rec1.xml rec2.xml rec3.xml rec4.xml zebra.cfg my.abs
+EXTRA_DIST = test_sort1.cfg test_sort1.idx test_sort1.chr \
+ test_sort1_rec.xml sort1.abs
-sort1_SOURCES = sort1.c
+test_sort1_SOURCES = test_sort1.c
AM_CPPFLAGS = -I$(top_srcdir)/include $(YAZINC)
+++ /dev/null
-# Zebra indexes as referred to from the *.abs-files.
-#
-
-# Traditional word index
-# Used if completenss is 'incomplete field' (@attr 6=1) and
-# structure is word/phrase/word-list/free-form-text/document-text
-index w
-completeness 0
-position 1
-charmap string.chr
-
-# Phrase index
-# Used if completeness is 'complete {sub}field' (@attr 6=2, @attr 6=1)
-# and structure is word/phrase/word-list/free-form-text/document-text
-index p
-completeness 1
-charmap string.chr
-
-# URX (URL) index
-# Used if structure=urx (@attr 4=104)
-index u
-completeness 0
-charmap urx.chr
-
-# Numeric index
-# Used if structure=numeric (@attr 4=109)
-index n
-completeness 0
-charmap numeric.chr
-
-# Null map index (no mapping at all)
-# Used if structure=key (@attr 4=3)
-index 0
-completeness 0
-position 1
-charmap @
-
-# Year
-# Used if structure=year (@attr 4=4)
-index y
-completeness 0
-charmap @
-
-# Date
-# Used if structure=date (@attr 4=5)
-index d
-completeness 0
-charmap @
-
-# Sort register as usual but specify another map : string-hat.
-sort s
-completeness 1
-charmap string-hat.chr
-
-# Sort register with no map
-sort S
-completeness 1
-charmap string.chr
+++ /dev/null
-
-name my
-reference WAIS-schema
-attset bib1.att
-tagset generic.tag
-
-varset var1.var
-
-esetname B @
-esetname F @
-
-elm (2,1) Title !:p,!:w
-elm (2,8) Date !:s
-elm (2,26) Cost Bib-level:S
+++ /dev/null
-<my>
- <title>first computer</title>
- <dateTime>2</dateTime>
- <cost>2</cost>
-</my>
+++ /dev/null
-<my>
- <title>second computer</title>
- <dateTime>1</dateTime>
- <cost>21</cost>
-</my>
+++ /dev/null
-<my>
- <title>3rd computer</title>
- <dateTime>a^3</dateTime>
- <cost>15</cost>
-</my>
+++ /dev/null
-<my>
- <title>fourth computer</title>
- <dateTime>4</dateTime>
- <cost>11</cost>
-</my>
--- /dev/null
+
+name my
+reference WAIS-schema
+attset bib1.att
+tagset generic.tag
+
+varset var1.var
+
+esetname B @
+esetname F @
+
+elm (2,1) Title !:p,!:w
+elm (2,8) Date !:s
+elm (2,26) Cost Bib-level:S
+++ /dev/null
-/* This file is part of the Zebra server.
- Copyright (C) 1995-2008 Index Data
-
-Zebra 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) any later
-version.
-
-Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-*/
-
-#include "../api/testlib.h"
-
-static void tst(int argc, char **argv)
-{
- ZebraService zs = tl_start_up(0, argc, argv);
- ZebraHandle zh = zebra_open(zs, 0);
- zint ids[5];
- char path[256];
- int i;
-
- YAZ_CHECK_EQ(zebra_select_database(zh, "Default"), ZEBRA_OK);
-
- zebra_init(zh);
-
- YAZ_CHECK(zebra_begin_trans(zh, 1) == ZEBRA_OK);
- for (i = 1; i <= 4; i++)
- {
- sprintf(path, "%.200s/rec%d.xml", tl_get_srcdir(), i);
- zebra_repository_update(zh, path);
- }
- YAZ_CHECK(zebra_end_trans(zh) == ZEBRA_OK);
- zebra_commit(zh);
-
- ids[0] = 3;
- ids[1] = 2;
- ids[2] = 4;
- ids[3] = 5;
- YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=30 0", 4, ids));
- YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=Date 0", 4, ids));
-
- ids[0] = 5;
- ids[1] = 4;
- ids[2] = 2;
- ids[3] = 3;
- YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=1021 0", 4, ids));
- YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=Bib-Level 0", 4, ids));
-
- ids[0] = 2;
- ids[1] = 5;
- ids[2] = 4;
- ids[3] = 3;
- YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=1021 @attr 4=109 0", 4, ids));
- YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=Bib-Level @attr 4=109 0", 4, ids));
-
- YAZ_CHECK(tl_close_down(zh, zs));
-}
-
-
-TL_MAIN
-/*
- * Local variables:
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- * vim: shiftwidth=4 tabstop=8 expandtab
- */
-
+++ /dev/null
-# Generic character map but with ^ as cut char
-#
-
-# Define the basic value-set. *Beware* of changing this without re-indexing
-# your databases.
-
-lowercase {0-9}{a-y}üzæäøöå
-uppercase {0-9}{A-Y}ÜZÆÄØÖÅ
-
-cut ^
-
-# Breaking characters
-
-space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]_`\{|}~
-
-# Characters to be considered equivalent for searching purposes.
-
-# equivalent æä(ae)
-# equivalent øö(oe)
-# equivalent å(aa)
-# equivalent uü
-
-# Supplemental mappings
-
-#map (ä) ä
-#map (æ) æ
-#map (ø) ø
-#map (å) å
-#map (ö) ö
-#map (Ä) Ä
-#map (&Aelig;) Æ
-#map (Ø) Ø
-#map (Å) Å
-#map (Ö) Ö
-
-#map éÉ e
-#map á a
-#map ó o
-#map í i
-
-#map (Aa) (AA)
-
-#map (aa) a
--- /dev/null
+/* This file is part of the Zebra server.
+ Copyright (C) 1995-2008 Index Data
+
+Zebra 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) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+*/
+
+#include "../api/testlib.h"
+
+static void tst(int argc, char **argv)
+{
+ ZebraService zs = tl_start_up("test_sort1.cfg", argc, argv);
+ ZebraHandle zh = zebra_open(zs, 0);
+ zint ids[5];
+ char path[256];
+
+ YAZ_CHECK_EQ(zebra_select_database(zh, "Default"), ZEBRA_OK);
+
+ zebra_init(zh);
+
+ YAZ_CHECK(zebra_begin_trans(zh, 1) == ZEBRA_OK);
+ sprintf(path, "%.200s/test_sort1_rec.xml", tl_get_srcdir());
+ zebra_repository_update(zh, path);
+ YAZ_CHECK(zebra_end_trans(zh) == ZEBRA_OK);
+ zebra_commit(zh);
+
+ ids[0] = 3;
+ ids[1] = 2;
+ ids[2] = 4;
+ ids[3] = 5;
+ YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=30 0", 4, ids));
+ YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=Date 0", 4, ids));
+
+ ids[0] = 5;
+ ids[1] = 4;
+ ids[2] = 2;
+ ids[3] = 3;
+ YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=1021 0", 4, ids));
+ YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=Bib-Level 0", 4, ids));
+
+ ids[0] = 2;
+ ids[1] = 5;
+ ids[2] = 4;
+ ids[3] = 3;
+ YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=1021 @attr 4=109 0", 4, ids));
+ YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=Bib-Level @attr 4=109 0", 4, ids));
+
+ YAZ_CHECK(tl_close_down(zh, zs));
+}
+
+
+TL_MAIN
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+
--- /dev/null
+# Simple Zebra configuration file
+#
+# Where the schema files, attribute files, etc are located.
+profilePath: ${srcdir:-.}:${srcdir:-.}/../../tab
+
+# Files that describe the attribute sets supported.
+attset: bib1.att
+attset: explain.att
+
+recordtype.xml: grs.sgml
+isam: b
+
+index: test_sort1.idx
--- /dev/null
+# Generic character map but with ^ as cut char
+#
+
+# Define the basic value-set. *Beware* of changing this without re-indexing
+# your databases.
+
+lowercase {0-9}{a-y}üzæäøöå
+uppercase {0-9}{A-Y}ÜZÆÄØÖÅ
+
+cut ^
+
+# Breaking characters
+
+space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]_`\{|}~
+
+# Characters to be considered equivalent for searching purposes.
+
+# equivalent æä(ae)
+# equivalent øö(oe)
+# equivalent å(aa)
+# equivalent uü
+
+# Supplemental mappings
+
+#map (ä) ä
+#map (æ) æ
+#map (ø) ø
+#map (å) å
+#map (ö) ö
+#map (Ä) Ä
+#map (&Aelig;) Æ
+#map (Ø) Ø
+#map (Å) Å
+#map (Ö) Ö
+
+#map éÉ e
+#map á a
+#map ó o
+#map í i
+
+#map (Aa) (AA)
+
+#map (aa) a
--- /dev/null
+# Zebra indexes as referred to from the *.abs-files.
+#
+
+# Traditional word index
+# Used if completenss is 'incomplete field' (@attr 6=1) and
+# structure is word/phrase/word-list/free-form-text/document-text
+index w
+completeness 0
+position 1
+charmap string.chr
+
+# Phrase index
+# Used if completeness is 'complete {sub}field' (@attr 6=2, @attr 6=1)
+# and structure is word/phrase/word-list/free-form-text/document-text
+index p
+completeness 1
+charmap string.chr
+
+# URX (URL) index
+# Used if structure=urx (@attr 4=104)
+index u
+completeness 0
+charmap urx.chr
+
+# Numeric index
+# Used if structure=numeric (@attr 4=109)
+index n
+completeness 0
+charmap numeric.chr
+
+# Null map index (no mapping at all)
+# Used if structure=key (@attr 4=3)
+index 0
+completeness 0
+position 1
+charmap @
+
+# Year
+# Used if structure=year (@attr 4=4)
+index y
+completeness 0
+charmap @
+
+# Date
+# Used if structure=date (@attr 4=5)
+index d
+completeness 0
+charmap @
+
+# Sort register as usual but specify another map : string-hat.
+sort s
+completeness 1
+charmap test_sort1.chr
+
+# Sort register with no map
+sort S
+completeness 1
+charmap string.chr
--- /dev/null
+<sort1>
+ <title>first computer</title>
+ <dateTime>2</dateTime>
+ <cost>2</cost>
+</sort1>
+<sort1>
+ <title>second computer</title>
+ <dateTime>1</dateTime>
+ <cost>21</cost>
+</sort1>
+<sort1>
+ <title>3rd computer</title>
+ <dateTime>a^3</dateTime>
+ <cost>15</cost>
+</sort1>
+<sort1>
+ <title>fourth computer</title>
+ <dateTime>4</dateTime>
+ <cost>11</cost>
+</sort1>
+++ /dev/null
-# Simple Zebra configuration file
-#
-# Where the schema files, attribute files, etc are located.
-profilePath: ${srcdir:-.}:${srcdir:-.}/../../tab
-
-# Files that describe the attribute sets supported.
-attset: bib1.att
-attset: explain.att
-
-recordtype.xml: grs.sgml
-isam: b
*.log
.libs
.deps
-t[0-9]
+test_sort2
*.lo
*.o
*~
-check_PROGRAMS = t1
+check_PROGRAMS = test_sort2
TESTS = $(check_PROGRAMS)
-EXTRA_DIST = zebra.cfg default.idx \
- rec1.xml rec2.xml rec3.xml rec4.xml zebra.cfg my.abs sort.chr
+EXTRA_DIST = test_sort2.cfg test_sort2.idx \
+ test_sort2_rec.xml test_sort2.cfg sort2.abs test_sort2.chr
-t1_SOURCES = t1.c
+test_sort2_SOURCES = test_sort2.c
AM_CPPFLAGS = -I$(top_srcdir)/include $(YAZINC)
+++ /dev/null
-# Zebra indexes as referred to from the *.abs-files.
-#
-
-# Traditional word index
-# Used if completenss is 'incomplete field' (@attr 6=1) and
-# structure is word/phrase/word-list/free-form-text/document-text
-index w
-completeness 0
-position 1
-charmap sort.chr
-
-# Phrase index
-# Used if completeness is 'complete {sub}field' (@attr 6=2, @attr 6=1)
-# and structure is word/phrase/word-list/free-form-text/document-text
-index p
-completeness 1
-charmap sort.chr
-
-# URX (URL) index
-# Used if structure=urx (@attr 4=104)
-index u
-completeness 0
-charmap urx.chr
-
-# Numeric index
-# Used if structure=numeric (@attr 4=109)
-index n
-completeness 0
-charmap numeric.chr
-
-# Null map index (no mapping at all)
-# Used if structure=key (@attr 4=3)
-index 0
-completeness 0
-position 1
-charmap @
-
-# Year
-# Used if structure=year (@attr 4=4)
-index y
-completeness 0
-charmap @
-
-# Date
-# Used if structure=date (@attr 4=5)
-index d
-completeness 0
-charmap @
-
-# Sort, with prefixes to ignore
-sort s
-completeness 1
-charmap sort.chr
-
+++ /dev/null
-
-name my
-reference WAIS-schema
-attset bib1.att
-tagset generic.tag
-xpath enable
-
-varset var1.var
-
-esetname B @
-esetname F @
-
-elm title Title !:p,!:w,!:s
+++ /dev/null
-<my>
- <title>first computer</title>
-</my>
+++ /dev/null
-<my>
- <title>second computer</title>
-</my>
+++ /dev/null
-<my>
- <title>A third computer</title>
-</my>
+++ /dev/null
-<my>
- <title>the fourth computer</title>
-</my>
+++ /dev/null
-# character map that removes some leading prefixes
-#
-
-# Define the basic value-set. *Beware* of changing this without re-indexing
-# your databases.
-
-lowercase {0-9}{a-y}üzæäøöå
-uppercase {0-9}{A-Y}ÜZÆÄØÖÅ
-
-# Breaking characters
-
-space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~
-
-# Characters to be considered equivalent for searching purposes.
-
-# equivalent æä(ae)
-# equivalent øö(oe)
-# equivalent å(aa)
-# equivalent uü
-
-map (^The\s) @
-map (^the\s) @
-map (^a\s) @
-map (^A\s) @
-
-#map éÉ e
-#map á a
-#map ó o
-#map í i
-
-#map (Aa) (AA)
-
-#map (aa) a
--- /dev/null
+
+name my
+reference WAIS-schema
+attset bib1.att
+tagset generic.tag
+xpath enable
+
+varset var1.var
+
+esetname B @
+esetname F @
+
+elm title Title !:p,!:w,!:s
+++ /dev/null
-/* This file is part of the Zebra server.
- Copyright (C) 1995-2008 Index Data
-
-Zebra 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) any later
-version.
-
-Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-*/
-
-#include "../api/testlib.h"
-
-static void tst(int argc, char **argv)
-{
- ZebraService zs = tl_start_up(0, argc, argv);
- ZebraHandle zh = zebra_open(zs, 0);
- char path[256];
- int i;
- zint ids[5];
-
- YAZ_CHECK(zebra_select_database(zh, "Default") == ZEBRA_OK);
-
- zebra_init(zh);
-
- YAZ_CHECK(zebra_begin_trans(zh, 1) == ZEBRA_OK);
- for (i = 1; i <= 4; i++)
- {
- sprintf(path, "%.200s/rec%d.xml", tl_get_srcdir(), i);
- zebra_repository_update(zh, path);
- }
- YAZ_CHECK(zebra_end_trans(zh) == ZEBRA_OK);
- zebra_commit(zh);
-
- ids[0] = 2;
- ids[1] = 5;
- ids[2] = 3;
- ids[3] = 4;
- YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=4 0", 4, ids));
-
- YAZ_CHECK(tl_close_down(zh, zs));
-}
-
-TL_MAIN
-/*
- * Local variables:
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- * vim: shiftwidth=4 tabstop=8 expandtab
- */
-
--- /dev/null
+/* This file is part of the Zebra server.
+ Copyright (C) 1995-2008 Index Data
+
+Zebra 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) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+*/
+
+#include "../api/testlib.h"
+
+static void tst(int argc, char **argv)
+{
+ ZebraService zs = tl_start_up("test_sort2.cfg", argc, argv);
+ ZebraHandle zh = zebra_open(zs, 0);
+ char path[256];
+ zint ids[5];
+
+ YAZ_CHECK(zebra_select_database(zh, "Default") == ZEBRA_OK);
+
+ zebra_init(zh);
+
+ YAZ_CHECK(zebra_begin_trans(zh, 1) == ZEBRA_OK);
+ sprintf(path, "%.200s/test_sort2_rec.xml", tl_get_srcdir());
+ zebra_repository_update(zh, path);
+
+ YAZ_CHECK(zebra_end_trans(zh) == ZEBRA_OK);
+ zebra_commit(zh);
+
+ ids[0] = 2;
+ ids[1] = 5;
+ ids[2] = 3;
+ ids[3] = 4;
+ YAZ_CHECK(tl_sort(zh, "@or @attr 1=4 computer @attr 7=1 @attr 1=4 0", 4, ids));
+
+ YAZ_CHECK(tl_close_down(zh, zs));
+}
+
+TL_MAIN
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+
--- /dev/null
+# Simple Zebra configuration file
+#
+# Where the schema files, attribute files, etc are located.
+profilePath: ${srcdir:-.}:${srcdir:-.}/../../tab
+
+# Files that describe the attribute sets supported.
+attset: bib1.att
+attset: explain.att
+
+recordtype.xml: grs.sgml
+isam: b
+
+index: test_sort2.idx
--- /dev/null
+# character map that removes some leading prefixes
+#
+
+# Define the basic value-set. *Beware* of changing this without re-indexing
+# your databases.
+
+lowercase {0-9}{a-y}üzæäøöå
+uppercase {0-9}{A-Y}ÜZÆÄØÖÅ
+
+# Breaking characters
+
+space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~
+
+# Characters to be considered equivalent for searching purposes.
+
+# equivalent æä(ae)
+# equivalent øö(oe)
+# equivalent å(aa)
+# equivalent uü
+
+map (^The\s) @
+map (^the\s) @
+map (^a\s) @
+map (^A\s) @
+
+#map éÉ e
+#map á a
+#map ó o
+#map í i
+
+#map (Aa) (AA)
+
+#map (aa) a
--- /dev/null
+# Zebra indexes as referred to from the *.abs-files.
+#
+
+# Traditional word index
+# Used if completenss is 'incomplete field' (@attr 6=1) and
+# structure is word/phrase/word-list/free-form-text/document-text
+index w
+completeness 0
+position 1
+charmap test_sort2.chr
+
+# Phrase index
+# Used if completeness is 'complete {sub}field' (@attr 6=2, @attr 6=1)
+# and structure is word/phrase/word-list/free-form-text/document-text
+index p
+completeness 1
+charmap test_sort2.chr
+
+# URX (URL) index
+# Used if structure=urx (@attr 4=104)
+index u
+completeness 0
+charmap urx.chr
+
+# Numeric index
+# Used if structure=numeric (@attr 4=109)
+index n
+completeness 0
+charmap numeric.chr
+
+# Null map index (no mapping at all)
+# Used if structure=key (@attr 4=3)
+index 0
+completeness 0
+position 1
+charmap @
+
+# Year
+# Used if structure=year (@attr 4=4)
+index y
+completeness 0
+charmap @
+
+# Date
+# Used if structure=date (@attr 4=5)
+index d
+completeness 0
+charmap @
+
+# Sort, with prefixes to ignore
+sort s
+completeness 1
+charmap test_sort2.chr
+
--- /dev/null
+<sort2>
+ <title>first computer</title>
+</sort2>
+<sort2>
+ <title>second computer</title>
+</sort2>
+<sort2>
+ <title>A third computer</title>
+</sort2>
+<sort2>
+ <title>the fourth computer</title>
+</sort2>
+++ /dev/null
-# Simple Zebra configuration file
-#
-# Where the schema files, attribute files, etc are located.
-profilePath: ${srcdir:-.}:${srcdir:-.}/../../tab
-
-# Files that describe the attribute sets supported.
-attset: bib1.att
-attset: explain.att
-
-recordtype.xml: grs.sgml
-isam: b