[med-svn] [Git][med-team/damapper][master] 6 commits: New upstream version 0.0+git20240314.b025cf9
Étienne Mollier (@emollier)
gitlab at salsa.debian.org
Sun Aug 25 17:31:24 BST 2024
Étienne Mollier pushed to branch master at Debian Med / damapper
Commits:
0f76cbf4 by Étienne Mollier at 2024-08-25T18:19:39+02:00
New upstream version 0.0+git20240314.b025cf9
- - - - -
f28aff8f by Étienne Mollier at 2024-08-25T18:19:40+02:00
Update upstream source from tag 'upstream/0.0+git20240314.b025cf9'
Update to upstream version '0.0+git20240314.b025cf9'
with Debian dir 659a7d8d13bef0b8db3e16536db20ae79cb15a2d
- - - - -
7b3c2d69 by Étienne Mollier at 2024-08-25T18:23:04+02:00
d/control: add myself to uploaders.
- - - - -
08587ddd by Étienne Mollier at 2024-08-25T18:23:24+02:00
d/control: declare compliance to standards version 4.7.0.
- - - - -
36e6e250 by Étienne Mollier at 2024-08-25T18:29:21+02:00
typo.patch: new: fix a typo caught by lintian.
- - - - -
ac4cd21c by Étienne Mollier at 2024-08-25T18:29:52+02:00
Ready for upload to unstable.
- - - - -
8 changed files:
- DB.c
- QV.c
- align.c
- align.h
- debian/changelog
- debian/control
- debian/patches/series
- + debian/patches/typo.patch
Changes:
=====================================
DB.c
=====================================
@@ -2208,7 +2208,7 @@ int Read_Extra(FILE *afile, char *aname, DAZZ_EXTRA *extra)
}
if (accum != extra->accum)
{ EPRINTF(EPLACE,
- "%s: Reduction indicator of extra %s does not agree with previos .anno block files\n",
+ "%s: Reduction indicator of extra %s does not agree with previous .anno block files\n",
Prog_Name,name);
goto error;
}
@@ -2829,7 +2829,7 @@ static Block_Looper *parse_block_arg(char *arg, int isDB)
first = last = -1;
else
{ if (index(ppnt+1,BLOCK_SYMBOL) != NULL)
- { EPRINTF(EPLACE,"%s: Two or more occurences of %c-sign in source name '%s'\n",
+ { EPRINTF(EPLACE,"%s: Two or more occurrences of %c-sign in source name '%s'\n",
Prog_Name,BLOCK_SYMBOL,root);
goto error;
}
=====================================
QV.c
=====================================
@@ -1319,7 +1319,7 @@ error:
EXIT(NULL);
}
- // Free all the auxilliary storage associated with the encoding argument
+ // Free all the auxiliary storage associated with the encoding argument
void Free_QVcoding(QVcoding *coding)
{ if (coding->subChar >= 0)
=====================================
align.c
=====================================
@@ -163,6 +163,8 @@ void Free_Work_Data(Work_Data *ework)
// 2*TRIM_LEN edits are prefix-positive at rate ave_corr*f(bias)
// (max value is 20)
+#define DUB_TRIM 45 // = 3*TRIM_LEN
+
#define PATH_LEN 60 // Follow the last PATH_LEN columns/edges (max value is 63)
// Derivative fixed parameters
@@ -236,6 +238,8 @@ Align_Spec *New_Align_Spec(double ave_corr, int trace_space, float *freq, int re
spec->freq[3] = freq[3];
match = freq[0] + freq[3];
+ if ((match <= 0.) == (match > 0.)) // frequencies accidentally undefined?
+ match = .5;
if (match > .5)
match = 1.-match;
bias = (int) ((match+.025)*20.-1.);
@@ -1729,6 +1733,7 @@ Path *Local_Alignment(Alignment *align, Work_Data *ework, Align_Spec *espec,
int aoff, boff;
int minp, maxp;
int selfie;
+ int fshort, rshort;
{ int alen, blen;
int maxtp, wsize;
@@ -1765,6 +1770,9 @@ Path *Local_Alignment(Alignment *align, Work_Data *ework, Align_Spec *espec,
#endif
selfie = (align->aseq == align->bseq);
+
+ while (((anti-hgh) >> 1) < 0)
+ hgh -= 1;
if (lbord < 0)
{ if (selfie && low >= 0)
@@ -1799,9 +1807,11 @@ Path *Local_Alignment(Alignment *align, Work_Data *ework, Align_Spec *espec,
if (forward_wave(work,spec,align,bpath,&low,hgh,anti,minp,maxp,aoff,boff))
EXIT(NULL);
+ fshort = ((apath->aepos + apath->bepos) - anti < DUB_TRIM);
+
#ifdef DEBUG_PASSES
printf("F1 (%d,%d) ~ %d => (%d,%d) %d\n",
- (2*anti+(low+hgh))/4,(anti-(low+hgh))/4,hgh-low,
+ (2*anti+(low+hgh))/4,(2*anti-(low+hgh))/4,hgh-low,
apath->aepos,apath->bepos,apath->diffs);
#endif
@@ -1813,6 +1823,37 @@ Path *Local_Alignment(Alignment *align, Work_Data *ework, Align_Spec *espec,
(anti+low)/2,(anti-low)/2,apath->abpos,apath->bbpos,apath->diffs);
#endif
+ rshort = (anti - (apath->abpos + apath->bbpos) < DUB_TRIM);
+
+ if (fshort)
+ { if (rshort)
+ { apath->aepos = apath->abpos = (apath->abpos+apath->aepos)/2;
+ apath->bepos = apath->bbpos = (apath->bbpos+apath->bepos)/2;
+ bpath->aepos = bpath->abpos = (bpath->abpos+bpath->aepos)/2;
+ bpath->bepos = bpath->bbpos = (bpath->bbpos+bpath->bepos)/2;
+ apath->tlen = 0;
+ bpath->tlen = 0;
+ }
+ else
+ { low = apath->abpos - apath->bbpos;
+ anti = apath->abpos + apath->bbpos;
+ apath->tlen = bpath->tlen = 0;
+ if (forward_wave(work,spec,align,bpath,&low,low,anti,minp,maxp,aoff,boff))
+ EXIT(NULL);
+ }
+ }
+ else
+ { if (rshort)
+ { low = apath->aepos - apath->bepos;
+ anti = apath->aepos + apath->bepos;
+ apath->tlen = bpath->tlen = 0;
+ apath->diffs = 0;
+ if (reverse_wave(work,spec,align,bpath,low,low,anti,minp,maxp,aoff,boff))
+ EXIT(NULL);
+ }
+ }
+
+
bpath->diffs = apath->diffs;
if (ACOMP(align->flags))
{ uint16 *trace = (uint16 *) apath->trace;
@@ -3338,7 +3379,9 @@ int Print_Alignment(FILE *file, Alignment *align, Work_Data *ework,
blen = align->blen;
Abuf[width] = Bbuf[width] = Dbuf[width] = '\0';
- /* buffer/output next column */
+
+ // buffer/output next column
+
#define COLUMN(x,y) \
{ int u, v; \
if (o >= width) \
@@ -3389,19 +3432,18 @@ int Print_Alignment(FILE *file, Alignment *align, Work_Data *ework,
b = align->bseq - 1;
o = 0;
- i = j = 1;
+ i = align->path->abpos;
+ j = align->path->bbpos;
- prefa = align->path->abpos;
- prefb = align->path->bbpos;
+ prefa = 0;
+ for (prefa = 0; prefa < border && a[i] != 4; prefa++)
+ i -= 1;
+ i += 1;
- if (prefa > border)
- { i = prefa-(border-1);
- prefa = border;
- }
- if (prefb > border)
- { j = prefb-(border-1);
- prefb = border;
- }
+ prefb = 0;
+ for (prefb = 0; prefb < border && b[j] != 4; prefb++)
+ j -= 1;
+ j += 1;
sa = i-1;
sb = j-1;
@@ -3652,19 +3694,18 @@ int Print_Reference(FILE *file, Alignment *align, Work_Data *ework,
b = align->bseq - 1;
o = 0;
- i = j = 1;
+ i = align->path->abpos;
+ j = align->path->bbpos;
- prefa = align->path->abpos;
- prefb = align->path->bbpos;
+ prefa = 0;
+ for (prefa = 0; prefa < border && a[i] != 4; prefa++)
+ i -= 1;
+ i += 1;
- if (prefa > border)
- { i = prefa-(border-1);
- prefa = border;
- }
- if (prefb > border)
- { j = prefb-(border-1);
- prefb = border;
- }
+ prefb = 0;
+ for (prefb = 0; prefb < border && b[j] != 4; prefb++)
+ j -= 1;
+ j += 1;
s0 = i;
sa = i-1;
@@ -5155,6 +5196,8 @@ int Compute_Trace_PTS(Alignment *align, Work_Data *ework, int trace_spacing, int
}
if (tlen <= 1)
nmax = N;
+ if (dmax & 0x1)
+ dmax += 1;
s = (dmax+3)*2*((trace_spacing+nmax+3)*sizeof(int) + sizeof(int *));
@@ -5265,6 +5308,8 @@ int Compute_Trace_MID(Alignment *align, Work_Data *ework, int trace_spacing, int
}
if (tlen <= 1)
nmax = N;
+ if (dmax & 0x1)
+ dmax += 1;
s = (dmax+3)*4*((trace_spacing+nmax+3)*sizeof(int) + sizeof(int *));
@@ -5451,3 +5496,397 @@ int Compute_Trace_IRR(Alignment *align, Work_Data *ework, int mode)
return (0);
}
+
+#undef DEBUG_BOX
+#undef DEBUG_DP
+#undef DEBUG_BACK
+#undef BOX_STATS
+
+#define LONG_SNAKE 50
+
+#ifdef DEBUG
+
+static int ASCII[5] = { 'a', 'c', 'g', 't', '.' };
+
+static inline void print_string(char *a, int l)
+{ int i;
+
+ for (i = 0; i < l; i++)
+ printf("%c",ASCII[(int) a[i]]);
+}
+
+#endif
+
+static inline int hamming(char *a, char *b, int n)
+{ int h, i, x, y;
+
+ h = 0;
+ for (i = 0; i < n; i++)
+ { x = *a++;
+ if (x == 4)
+ break;
+ y = *b++;
+ if (x != y)
+ { if (y == 4)
+ break;
+ else
+ h += 1;
+ }
+ }
+ return (h);
+}
+
+static inline int snake(char *a, char *b)
+{ int i, x;
+
+ for (i = 0; 1; i++)
+ { x = *a++;
+ if (x == 4)
+ break;
+ if (x != *b++)
+ break;
+ }
+ return (i);
+}
+
+static inline int rsnake(char *a, char *b)
+{ int i, x;
+
+ for (i = 0; 1; i++)
+ { x = *--a;
+ if (x == 4)
+ break;
+ if (x != *--b)
+ break;
+ }
+ return (i);
+}
+
+#ifdef BOX_STATS
+
+static int MaxBxArea;
+static int MaxBxWidth;
+static int MaxBxHeight;
+static int64 SumBx;
+static int NumBx;
+static int BxHist[101];
+static int BxExtend;
+static int BxGaps;
+
+void BeginBoxStats()
+{ int i;
+
+ MaxBxArea = 0;
+ MaxBxWidth = 0;
+ MaxBxHeight = 0;
+ SumBx = 0;
+ NumBx = 0;
+ for (i = 0; i <= 100; i++)
+ BxHist[i] = 0;
+ BxExtend = 0;
+ BxGaps = 0;
+}
+
+void EndBoxStats()
+{ int i;
+
+ printf("\n# of Boxes = %d with average work %lld\n",NumBx,SumBx/NumBx);
+ printf("\nMax Work = %d\n",MaxBxArea);
+ printf("Max Diags = %d\n",MaxBxWidth);
+ printf("Max Waves = %d\n",MaxBxHeight);
+ printf("\nBox extended = %d\n",BxExtend);
+ printf("Gaps removed = %d\n",BxGaps);
+ printf("\nHistogram of box work:\n");
+ for (i = 0; i <= 100; i++)
+ if (BxHist[i] > 0)
+ printf(" %3d00: %10d\n",i,BxHist[i]);
+}
+
+#endif
+
+void Gap_Improver(Alignment *aln, Work_Data *ework)
+{ _Work_Data *work = (_Work_Data *) ework;
+ int *F, *H;
+ int *f, *h;
+
+ char *A, *B;
+ int x;
+ int p, q;
+ int d, m;
+ int *t, T;
+ int Fpos, Lpos, Fdag, Hamm, Gaps, Diag;
+ int passes;
+
+ A = aln->aseq-1;
+ B = aln->bseq-1;
+ t = (int *) aln->path->trace;
+ T = aln->path->tlen;
+ F = (int *) work->vector;
+
+ d = aln->path->abpos - aln->path->bbpos;
+ q = t[0];
+ x = 0;
+ while (x < T)
+ { p = q;
+ m = x;
+ Fdag = d;
+ Fpos = p;
+ Hamm = 0;
+ Gaps = 1;
+ while (1)
+ { x += 1;
+ q = 0;
+ if (x >= T || (q = t[x]) != p)
+ { m = x-m;
+ if (p < 0)
+ { d -= m;
+ if (q >= 0)
+ break;
+ if (p-q >= LONG_SNAKE)
+ break;
+ Hamm += hamming(A-p,B-(d+p),p-q);
+ }
+ else
+ { d += m;
+ if (q <= 0)
+ break;
+ if (q-p >= LONG_SNAKE)
+ break;
+ Hamm += hamming(A+(p+d),B+p,q-p);
+ }
+ Gaps += 1;
+ p = q;
+ m = x;
+ }
+ }
+ if (Gaps == 1)
+ continue;
+ Lpos = p;
+ Diag = abs(Fdag-d)+1;
+
+ // Process box
+
+ p = Diag*(Gaps+Hamm+1)*sizeof(int);
+ if (p > work->vecmax)
+ { if (enlarge_vector(work,p))
+ EXIT (1);
+ F = (int *) work->vector;
+ }
+ H = F + Diag;
+
+#ifdef BOX_STATS
+ { int hgt = Gaps+Hamm+1;
+ int area = Diag*hgt;
+ if (area > MaxBxArea)
+ MaxBxArea = area;
+ if (Diag > MaxBxWidth)
+ MaxBxWidth = Diag;
+ if (hgt > MaxBxHeight)
+ MaxBxHeight = hgt;
+ NumBx += 1;
+ SumBx += area;
+ if (area >= 10000)
+ BxHist[100] += 1;
+ else
+ BxHist[area/100] += 1;
+ }
+#endif
+#ifdef DEBUG_BOX
+ printf("Box: %5d :: %4d x %3d (%2d+%2d) :: %5d .. %5d %6d .. %6d\n",
+ (Gaps+Hamm+1)*Diag,abs(Fpos-Lpos),Diag,Hamm,Gaps,Fpos,Lpos,Fdag,d);
+ fflush(stdout);
+#endif
+
+ if (Fpos < 0)
+ { Fpos = -Fpos;
+ Lpos = -Lpos;
+
+ while (A[Fpos-1] != B[(Fpos-Fdag)-1] && A[Fpos-1] != 4 && B[(Fpos-Fdag)-1] != 4)
+ { Fpos -= 1;
+#ifdef BOX_STATS
+ BxExtend += 1;
+#endif
+ }
+ while (A[Lpos] != B[Lpos-d] && A[Lpos] != 4 && B[Lpos-d] != 4)
+ { Lpos += 1;
+#ifdef BOX_STATS
+ BxExtend += 1;
+#endif
+ }
+
+ f = F;
+ *f++ = p = Fpos + snake(A+Fpos,B+(Fpos-Fdag));
+ for (m = Fdag-1; m >= d; m--)
+ *f++ = Fpos-1;
+ passes = 0;
+
+#ifdef DEBUG_DP
+ printf(" %2d:",passes);
+ for (m = Fdag; m >= d; m--)
+ printf(" %d",F[Fdag-m]);
+ printf("\n");
+ fflush(stdout);
+#endif
+
+ h = H;
+ p = Fpos;
+ while (p < Lpos)
+ { int b, c;
+
+ b = Fpos;
+ c = 0;
+ f = F;
+ for (m = Fdag; m >= d; m--)
+ { p = b;
+ if (*f >= b)
+ { b = *f;
+ c = 0;
+ p = b+1;
+ }
+ else
+ c += 1;
+ *h++ = c;
+ *f++ = p += snake(A+p,B+(p-m));
+ }
+ passes += 1;
+
+#ifdef DEBUG_DP
+ printf(" %2d:",passes);
+ for (m = Fdag; m >= d; m--)
+ printf(" %d(%2d)",F[Fdag-m],h[(d-m)-1]);
+ printf("\n");
+ fflush(stdout);
+#endif
+ }
+
+ if (passes < Gaps+Hamm)
+ { int y, k;
+
+ p = Lpos;
+ m = d;
+ y = x;
+#ifdef DEBUG_BACK
+ printf("Short cut %d\n",(Gaps+Hamm)-passes);
+ printf("Path (%d,%d)",p,m);
+#endif
+#ifdef BOX_STATS
+ BxGaps += (Gaps+Hamm)-passes;
+#endif
+ while (h > H)
+ { p -= rsnake(A+p,B+(p-m));
+ if (p < Fpos)
+ p = Fpos;
+ h -= Diag;
+ k = h[Fdag-m];
+ if (k == 0)
+ p -= 1;
+ else
+ { m += k;
+ for (; k > 0; k--)
+ t[--y] = -p;
+ }
+#ifdef DEBUG_BACK
+ printf(" (%d,%d)",p,m);
+#endif
+ }
+#ifdef DEBUG_BACK
+ printf("\n");
+#endif
+ }
+ }
+ else
+ { while (B[Fpos-1] != A[(Fpos+Fdag)-1] && B[Fpos-1] != 4 && A[(Fpos+Fdag)-1] != 4)
+ { Fpos -= 1;
+#ifdef BOX_STATS
+ BxExtend += 1;
+#endif
+ }
+ while (B[Lpos] != A[Lpos+d] && B[Lpos] != 4 && A[Lpos+d] != 4)
+ { Lpos += 1;
+#ifdef BOX_STATS
+ BxExtend += 1;
+#endif
+ }
+
+ f = F;
+ *f++ = p = Fpos + snake(A+(Fpos+Fdag),B+Fpos);
+ for (m = Fdag+1; m <= d; m++)
+ *f++ = Fpos-1;
+ passes = 0;
+
+#ifdef DEBUG_DP
+ printf(" %2d:",passes);
+ for (m = Fdag; m <= d; m++)
+ printf(" %d",F[m-Fdag]);
+ printf("\n");
+ fflush(stdout);
+#endif
+
+ h = H;
+ p = Fpos;
+ while (p < Lpos)
+ { int b, c;
+
+ b = Fpos;
+ c = 0;
+ f = F;
+ for (m = Fdag; m <= d; m++)
+ { p = b;
+ if (*f >= b)
+ { b = *f;
+ c = 0;
+ p = b+1;
+ }
+ else
+ c += 1;
+ *h++ = c;
+ *f++ = p += snake(A+(m+p),B+p);
+ }
+ passes += 1;
+
+#ifdef DEBUG_DP
+ printf(" %2d:",passes);
+ for (m = Fdag; m <= d; m++)
+ printf(" %d(%2d)",F[m-Fdag],h[(m-d)-1]);
+ printf("\n");
+ fflush(stdout);
+#endif
+ }
+
+ if (passes < Gaps+Hamm)
+ { int y, k;
+
+ p = Lpos;
+ m = d;
+ y = x;
+#ifdef DEBUG_BACK
+ printf("Short cut %d\n",(Gaps+Hamm)-passes);
+ printf("Path (%d,%d)",p,m);
+#endif
+#ifdef BOX_STATS
+ BxGaps += (Gaps+Hamm)-passes;
+#endif
+ while (h > H)
+ { p -= rsnake(A+(p+m),B+p);
+ if (p < Fpos)
+ p = Fpos;
+ h -= Diag;
+ k = h[m-Fdag];
+ if (k == 0)
+ p -= 1;
+ else
+ { m -= k;
+ for (; k > 0; k--)
+ t[--y] = p;
+ }
+#ifdef DEBUG_BACK
+ printf(" (%d,%d)",p,m);
+#endif
+ }
+#ifdef DEBUG_BACK
+ printf("\n");
+#endif
+ }
+ }
+ }
+}
=====================================
align.h
=====================================
@@ -99,12 +99,12 @@ typedef struct
An alignment is modeled by an Alignment record, which in addition to a *pointer* to a
'path', gives pointers to the A and B sequences, their lengths, and indicates whether
- the B-sequence needs to be complemented ('comp' non-zero if so). The 'trace' pointer
- of the 'path' subrecord can be either NULL, a list of pass-through points, or an exact
+ the B- or A-sequence needs to be complemented ('comp' non-zero if so). The 'trace' pointer
+ of the 'path' subrecord can be either NULL, a list of trace points, or an exact
trace depending on what routines have been called on the record.
One can (1) compute a trace, with Compute_Trace, either from scratch if 'path.trace' = NULL,
- or using the sequence of pass-through points in trace, (2) print an ASCII representation
+ or using the sequence of trace points in trace, (2) print an ASCII representation
of an alignment, or (3) reverse the roles of A and B, and (4) complement a sequence
(which is a reversible process).
@@ -209,8 +209,8 @@ void Complement_Seq(char *a, int n);
(b) it passes through one of the points (anti+k)/2,(anti-k)/2 for k in [low,hgh] within
the underlying dynamic programming matrix (i.e. the points on diagonals low to hgh
on anti-diagonal anti or anti-1 (depending on whether the diagonal is odd or even)),
- (c) if lbord >= 0, then the alignment is always above diagonal low-lbord, and
- (d) if hbord >= 0, then the alignment is always below diagonal hgh+hbord.
+ (c) if lbord >= 0, then the alignment is always above or on diagonal low-lbord, and
+ (d) if hbord >= 0, then the alignment is always below or on diagonal hgh+hbord.
The path record of 'align' has its 'trace' filled from the point of view of an overlap
between the aread and the bread. In addition a Path record from the point of view of the
@@ -244,7 +244,7 @@ void Complement_Seq(char *a, int n);
Compute_Trace_PTS computes a trace by computing the trace between successive trace points.
It is much, much faster than Compute_Alignment below but at the tradeoff of not necessarily
- being optimal as pass-through points are not all perfect. Compute_Trace_MID computes a trace
+ being optimal as trace points are not all perfect. Compute_Trace_MID computes a trace
by computing the trace between the mid-points of alignments between two adjacent pairs of trace
points. It is generally twice as slow as Compute_Trace_PTS, but it produces nearer optimal
alignments. Both these routines return 1 if an error occurred and 0 otherwise.
@@ -307,7 +307,8 @@ void Complement_Seq(char *a, int n);
Flip_Alignment modifies align so the roles of A and B are reversed. If full is off then
the trace is ignored, otherwise the trace must be to a full alignment trace and this trace
- is also appropriately inverted.
+ is also appropriately inverted. Similarly, Complement_Alignment switches which sequence
+ is complemented when an alignment involves said, and does nothing otherwise.
*/
void Alignment_Cartoon(FILE *file, Alignment *align, int indent, int coord);
@@ -374,4 +375,12 @@ typedef struct {
int Check_Trace_Points(Overlap *ovl, int tspace, int verbose, char *fname);
+ /* Gap_Improver takes an alignment trace and improves it so the alignment has fewer, larger
+ gaps as if computed under an affine gap penalty. It should be called immediately after
+ Compute_Trace_(PTS|MID). The modified trace alignment is guaranteed to have the same
+ length as the input alignment.
+ */
+
+ void Gap_Improver(Alignment *align, Work_Data *work);
+
#endif // _A_MODULE
=====================================
debian/changelog
=====================================
@@ -1,3 +1,12 @@
+damapper (0.0+git20240314.b025cf9-1) unstable; urgency=medium
+
+ * New upstream version 0.0+git20240314.b025cf9
+ * d/control: add myself to uploaders.
+ * d/control: declare compliance to standards version 4.7.0.
+ * typo.patch: new: fix a typo caught by lintian.
+
+ -- Étienne Mollier <emollier at debian.org> Sun, 25 Aug 2024 18:29:43 +0200
+
damapper (0.0+git20210330.ab45103-2) unstable; urgency=medium
* Team upload.
=====================================
debian/control
=====================================
@@ -1,10 +1,11 @@
Source: damapper
Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
-Uploaders: Shayan Doust <hello at shayandoust.me>
+Uploaders: Shayan Doust <hello at shayandoust.me>,
+ Étienne Mollier <emollier at debian.org>
Section: science
Priority: optional
Build-Depends: debhelper-compat (= 13)
-Standards-Version: 4.6.2
+Standards-Version: 4.7.0
Vcs-Browser: https://salsa.debian.org/med-team/damapper
Vcs-Git: https://salsa.debian.org/med-team/damapper.git
Homepage: https://github.com/thegenemyers/DAMAPPER
=====================================
debian/patches/series
=====================================
@@ -1,2 +1,3 @@
modify_makefile.patch
cross.patch
+typo.patch
=====================================
debian/patches/typo.patch
=====================================
@@ -0,0 +1,17 @@
+Description: fix typo caught by linting.
+Author: Étienne Mollier <emollier at debian.org>
+Forwarded: https://github.com/thegenemyers/DALIGNER/commit/f4289baceee5c5c933ecd276af9a2198474711f7
+Last-Update: 2024-08-25
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- damapper.orig/damapper.c
++++ damapper/damapper.c
+@@ -648,7 +648,7 @@
+ ARG_POSITIVE(SPACING,"Trace spacing")
+ break;
+ case 't':
+- ARG_POSITIVE(MAX_REPS,"Tuple supression frequency")
++ ARG_POSITIVE(MAX_REPS,"Tuple suppression frequency")
+ break;
+ case 'M':
+ { int limit;
View it on GitLab: https://salsa.debian.org/med-team/damapper/-/compare/7060bade91abeeff8b6a9f8846fd0af8300f8cbb...ac4cd21cb713a5b2b413746f4345ddafed45267e
--
View it on GitLab: https://salsa.debian.org/med-team/damapper/-/compare/7060bade91abeeff8b6a9f8846fd0af8300f8cbb...ac4cd21cb713a5b2b413746f4345ddafed45267e
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20240825/4a6c90f0/attachment-0001.htm>
More information about the debian-med-commit
mailing list