7df6e18265341f87a69fba808aa1f92f8ebca841
markd
  Wed Apr 15 13:39:42 2026 -0700
move copy of htslib

diff --git src/htslib/test/test_view.c src/htslib/test/test_view.c
deleted file mode 100644
index 6dbef00d62c..00000000000
--- src/htslib/test/test_view.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*  test/test_view.c -- simple view tool, purely for use in a test harness.
-
-    Copyright (C) 2012 Broad Institute.
-    Copyright (C) 2013-2014 Genome Research Ltd.
-
-    Author: Heng Li <lh3@sanger.ac.uk>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.  */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "cram/cram.h"
-
-#include "htslib/sam.h"
-
-int main(int argc, char *argv[])
-{
-    samFile *in;
-    char *fn_ref = 0;
-    int flag = 0, c, clevel = -1, ignore_sam_err = 0;
-    char moder[8];
-    bam_hdr_t *h;
-    bam1_t *b;
-    htsFile *out;
-    char modew[800];
-    int r = 0, exit_code = 0;
-    hts_opt *in_opts = NULL, *out_opts = NULL;
-    int nreads = 0;
-    int extra_hdr_nuls = 0;
-    int benchmark = 0;
-
-    while ((c = getopt(argc, argv, "IbDCSl:t:i:o:N:BZ:")) >= 0) {
-        switch (c) {
-        case 'S': flag |= 1; break;
-        case 'b': flag |= 2; break;
-        case 'D': flag |= 4; break;
-        case 'C': flag |= 8; break;
-        case 'B': benchmark = 1; break;
-        case 'l': clevel = atoi(optarg); flag |= 2; break;
-        case 't': fn_ref = optarg; break;
-        case 'I': ignore_sam_err = 1; break;
-        case 'i': if (hts_opt_add(&in_opts,  optarg)) return 1; break;
-        case 'o': if (hts_opt_add(&out_opts, optarg)) return 1; break;
-        case 'N': nreads = atoi(optarg); break;
-        case 'Z': extra_hdr_nuls = atoi(optarg); break;
-        }
-    }
-    if (argc == optind) {
-        fprintf(stderr, "Usage: samview [-bSCSIB] [-N num_reads] [-l level] [-o option=value] [-Z hdr_nuls] <in.bam>|<in.sam>|<in.cram> [region]\n");
-        return 1;
-    }
-    strcpy(moder, "r");
-    if (flag&4) strcat(moder, "c");
-    else if ((flag&1) == 0) strcat(moder, "b");
-
-    in = sam_open(argv[optind], moder);
-    if (in == NULL) {
-        fprintf(stderr, "Error opening \"%s\"\n", argv[optind]);
-        return EXIT_FAILURE;
-    }
-    h = sam_hdr_read(in);
-    if (h == NULL) {
-        fprintf(stderr, "Couldn't read header for \"%s\"\n", argv[optind]);
-        return EXIT_FAILURE;
-    }
-    h->ignore_sam_err = ignore_sam_err;
-    if (extra_hdr_nuls) {
-        char *new_text = realloc(h->text, h->l_text + extra_hdr_nuls);
-        if (new_text == NULL) {
-            fprintf(stderr, "Error reallocing header text\n");
-            return EXIT_FAILURE;
-        }
-        h->text = new_text;
-        memset(&h->text[h->l_text], 0, extra_hdr_nuls);
-        h->l_text += extra_hdr_nuls;
-    }
-
-    b = bam_init1();
-
-    strcpy(modew, "w");
-    if (clevel >= 0 && clevel <= 9) sprintf(modew + 1, "%d", clevel);
-    if (flag&8) strcat(modew, "c");
-    else if (flag&2) strcat(modew, "b");
-    out = hts_open("-", modew);
-    if (out == NULL) {
-        fprintf(stderr, "Error opening standard output\n");
-        return EXIT_FAILURE;
-    }
-
-    /* CRAM output */
-    if (flag & 8) {
-        int ret;
-
-        // Parse input header and use for CRAM output
-        out->fp.cram->header = sam_hdr_parse_(h->text, h->l_text);
-
-        // Create CRAM references arrays
-        if (fn_ref)
-            ret = cram_set_option(out->fp.cram, CRAM_OPT_REFERENCE, fn_ref);
-        else
-            // Attempt to fill out a cram->refs[] array from @SQ headers
-            ret = cram_set_option(out->fp.cram, CRAM_OPT_REFERENCE, NULL);
-
-        if (ret != 0)
-            return EXIT_FAILURE;
-    }
-
-    // Process any options; currently cram only.
-    if (hts_opt_apply(in, in_opts))
-        return EXIT_FAILURE;
-    hts_opt_free(in_opts);
-
-    if (hts_opt_apply(out, out_opts))
-        return EXIT_FAILURE;
-    hts_opt_free(out_opts);
-
-    if (!benchmark)
-        sam_hdr_write(out, h);
-    if (optind + 1 < argc && !(flag&1)) { // BAM input and has a region
-        int i;
-        hts_idx_t *idx;
-        if ((idx = sam_index_load(in, argv[optind])) == 0) {
-            fprintf(stderr, "[E::%s] fail to load the BAM index\n", __func__);
-            return 1;
-        }
-        for (i = optind + 1; i < argc; ++i) {
-            hts_itr_t *iter;
-            if ((iter = sam_itr_querys(idx, h, argv[i])) == 0) {
-                fprintf(stderr, "[E::%s] fail to parse region '%s'\n", __func__, argv[i]);
-                continue;
-            }
-            while ((r = sam_itr_next(in, iter, b)) >= 0) {
-                if (!benchmark && sam_write1(out, h, b) < 0) {
-                    fprintf(stderr, "Error writing output.\n");
-                    exit_code = 1;
-                    break;
-                }
-                if (nreads && --nreads == 0)
-                    break;
-            }
-            hts_itr_destroy(iter);
-        }
-        hts_idx_destroy(idx);
-    } else while ((r = sam_read1(in, h, b)) >= 0) {
-        if (!benchmark && sam_write1(out, h, b) < 0) {
-            fprintf(stderr, "Error writing output.\n");
-            exit_code = 1;
-            break;
-        }
-        if (nreads && --nreads == 0)
-            break;
-    }
-
-    if (r < -1) {
-        fprintf(stderr, "Error parsing input.\n");
-        exit_code = 1;
-    }
-
-    r = sam_close(out);
-    if (r < 0) {
-        fprintf(stderr, "Error closing output.\n");
-        exit_code = 1;
-    }
-
-    bam_destroy1(b);
-    bam_hdr_destroy(h);
-
-    r = sam_close(in);
-    if (r < 0) {
-        fprintf(stderr, "Error closing input.\n");
-        exit_code = 1;
-    }
-
-    return exit_code;
-}