Olena-patches
Threads by month
- ----- 2025 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2011
- 7 participants
- 173 discussions

15 Sep '11
---
scribo/ChangeLog | 4 +++
scribo/README | 55 ++++++++++++++++++++++++++++++++++++++++++-----------
2 files changed, 47 insertions(+), 12 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index fb44bec..ab8c4c7 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,5 +1,9 @@
2011-09-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+ * README: Add more information.
+
+2011-09-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
* demo/viewer/main.cc: Fix an issue with Tesseract 2.x and
specific locales.
diff --git a/scribo/README b/scribo/README
index 8506c66..84fe60a 100644
--- a/scribo/README
+++ b/scribo/README
@@ -1,4 +1,5 @@
-Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
+Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+Laboratory (LRDE)
This file is part of Scribo.
@@ -33,20 +34,50 @@ Scribo aims to provide tools for Document Image Analysis (DIA).
demo/
- demat
- Sample GUI used to retrieve text from a whole document or a
- region of interest.
-
- wizard
- Sample GUI used to retrieve text from a whole document or a
- region of interest.
-
- tip
- Sample GUI used to display text localization in picture results.
+ viewer/
+ GUI for analyzing a document and save it as PDF or HTML.
+ xml2doc/
+ Command line tool to convert a document image and its
+ content analysis to PDF or HTML.
scribo/
The C++ headers of Scribo.
src/
- Various small tools related to DIA. See src/README.
\ No newline at end of file
+ Various small tools related to DIA. See src/README.
+
+
+============
+Dependencies
+============
+
+In order to use all the features provided by Scribo, the following
+dependencies should be installed :
+
+- Qt 4.x
+- xsltproc
+- fop
+- GraphicsMagick++ or ImageMagick++
+- Tesseract 2.x or 3.x (strongly recommended)
+
+Warning: Tesseract 2.x is still supported however, you may encounter
+crashes because of bugs with Tesseract and specific locales. Moreover,
+results quality is far from what it can be expected with version
+3.x. Thus, we strongly advise you to use Tesseract 3.x if possible.
+
+
+============
+KNOWN ISSUES
+============
+
+- Tesseract 2.x may cause crashes with specific system locales. It is
+ fixed in Tesseract 3.x
+
+- Apple's GCC (llvm-{gcc,g++} 4.2) compiler provided with Mac OS X
+ Lion (10.7.0) has some trouble with strict aliasing and our code. If
+ you encounter any crashes or strange behaviors, try compiling with
+ -fno-strict-aliasing flag.
+
+- On Mac OS X Lion (10.7.0) prefer using GraphicsMagick++ instead of
+ ImageMagick++. The latter may cause crashes.
\ No newline at end of file
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch next-next has been updated
via e80b2c3d8bb12a622721384de6c202d81be09575 (commit)
via 23e94fc9b9b5c330175c666a775002dd5213e105 (commit)
from 7b475d5b5b1460d20193d9812ceb68c74ff8f5ad (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
e80b2c3 Update SCRIBO tests w.r.t. the new version of lena.pgm.
23e94fc Update Milena tests w.r.t. the new version of lena.pgm.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 6 ++++++
milena/tests/linear/log.cc | 4 ++--
scribo/ChangeLog | 8 ++++++++
scribo/tests/binarization/sauvola.ref.pbm | Bin 32884 -> 32884 bytes
scribo/tests/binarization/sauvola_ms.ref.pbm | Bin 32884 -> 32884 bytes
5 files changed, 16 insertions(+), 2 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

last-svn-commit-1008-ge80b2c3 Update SCRIBO tests w.r.t. the new version of lena.pgm.
by Roland Levillain 15 Sep '11
by Roland Levillain 15 Sep '11
15 Sep '11
* tests/binarization/sauvola.ref.pbm,
* tests/binarization/sauvola_ms.ref.pbm:
Update reference outputs.
---
scribo/ChangeLog | 8 ++++++++
scribo/tests/binarization/sauvola.ref.pbm | Bin 32884 -> 32884 bytes
scribo/tests/binarization/sauvola_ms.ref.pbm | Bin 32884 -> 32884 bytes
3 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index bdf6dde..c0f58bb 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,11 @@
+2011-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Update SCRIBO tests w.r.t. the new version of lena.pgm.
+
+ * tests/binarization/sauvola.ref.pbm,
+ * tests/binarization/sauvola_ms.ref.pbm:
+ Update reference outputs.
+
2011-06-09 Roland Levillain <roland(a)lrde.epita.fr>
Make SCRIBO's copyright headers uniform.
diff --git a/scribo/tests/binarization/sauvola.ref.pbm b/scribo/tests/binarization/sauvola.ref.pbm
index 6730ad45546f12a6e4dd166c41395689594bc2d1..65d5a727ac838bb32766c26942a2047686001a57 100644
GIT binary patch
literal 32884
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
XpZz4Qs9nTP4c^<(&4=~>|IGhio$JT>
literal 32884
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
Yn;N{gq35|3-mI*f&idB>-Ut8x0P<7s-v9sr
diff --git a/scribo/tests/binarization/sauvola_ms.ref.pbm b/scribo/tests/binarization/sauvola_ms.ref.pbm
index 685efe7175c19cbcabd696fe357bd4a69401db06..e02712f3731d0a5e071fcf59093412be6e0bdcd3 100644
GIT binary patch
literal 32884
zcmd^|e~@0)dEd|7yL#V6TC|I?!@6E{Um{OL>ewtMHR~XBUjlBN8Mn|(rtP%uXmL$&
z8W*jB38Ip9&a%WJEsor2r^T)9mFsEanM?=T%oO5bc#pg`vSaGSaZ}?M{9Yl#V)J8P
zAwci4@7~kz^PF?;ulL>6s{OOi4ELP#oab|%^ZVR;-@D?LU){dD@f)|@aoe4@-hJCA
z8=tth@ppdr)3@DmYvbw<Of?#xy8G_gU%Tq61El%Dr|<maZ6CO8_IK~T^#i|iC#a9y
z@|(YXL*ut@yX&@F@BF8qYTSCqCmT22_WQSe`oQczzwM5@8y~y%69-V}fjjSQT=}uz
zy6Gdoy!~%o{lNzQ+isi;`N&qnpx@~KcV6{($;O(zvwGg>Bax9le%>&5*73Gtzgh9|
z^M*RJ$VyT&)15z(^THde*qGaW;(TEuokcI>=UV533i(Oo5;-p(HCyk1PVD$j=KsFP
ztgSh1+l4-;rcF08R&t*DujRDWpj}mTuXUOv^REt>wU?`Q8>M?=E=T3OG;+%mAbq#v
zMb2M;0rSu7uzZ^HB6dY?DcEhTdO3fCG$!5>OGX!2%Wlp$_gmH0u5;F`lk>;pt&!HM
zZG$A|zuGcyIjzmx^!k*|)j5CvXU(}yky7R<n^HNipphk;%@S^=ivqu}@%-&C=?tqd
z{Mr1O!<0VIZ@7WR@)-V%58@3>2dY<Di{a0B+J9ODZ3iiPlC&89oQI}O$}NfAwv!6K
zC6tX)zUl%m<ko3pQnpqF-p%L>Dg=1e{<(z<X}@(-<mclHnSadF@MZpg{T?G*w%Dy+
zOFR{{yj9W|S^zZsnSZr))?4Z#FBUGS{bx~#D)Esoc1t0hV1#G&r^p3tAl+p{t2gK8
zP+$vXY*D&<Dm>c1@=vx1!>m^~wEA=ZnE&Tm7r+N?9{#NTw0|sZolgVF!=LeVeqVs3
zq0y!K-zP6%`-P*x4u9rf_#=IbmAJ$Xf5xjVa^9?Mhd<**-REpAT&(i)g65C;p&h>5
ze>~XlMsxbC9lo63Gnl7^Hc%2CzKmBF*#D-&Z!~_{4Sux}y6j*4WW8!()3FWgiBT|7
z6+UohdclOF3sr?nTRdyO@VA6j^S@?AtLonkzvol2^YSWb)1B5peT6sTdh@UxWZ8>Z
zTb&1e{Bzc>uZT2aRdpUz`QTqwTj)!gq)7VreA0zgUIc4zR!m&-#AOu89@Lz+j~Dm;
z<Ce=S2b~D%v%0KwyJunl3_kxS?TU>}c4=j=k5=;B^27Mqc_+4Cu~IQ{$sWzDKbfjz
z=DfX^5<$4HV&ap6#_pEbCvE7KFZ_2UX@q$HzBWbrMU9)aZ&&Y+l5GAuet7rqeYT$^
zjTZkty{XFUj87yPiQta44LYDB{>}dworuXQ7uCnd`}5pVtSf^5K2kkj9FF#DN!H>b
zv(W^^K{+wfh{-AwKYfU2C1%348%#jhep3za&sd7s!xxpv`Eze>z|%<+=%~c|;Rmlc
zL)8Cl?VgfJo=_-2MR^)AKl}k&P8q2fKCsrJ*Z|Ssn^7qvfr=z_yb)JzeEx7}#U)-d
zEpY0k&i}>VYn3dD2{M*Ng*&_jcKx);8A80>Dp?d03Vc*l6nOUvL(H32$)cFheLNH_
zk?C^%ji~>qT|`Rp1h#c(viAnr^ocPO$TStf0a~Vmh4=_rxNEbL@e(6RD)8NnZ-8jD
zV_5N4MCOI*=lP*SKcbw0LOh+%Jq$OCpMID=9q#`W`CpbUw=W>`2-+U(S^V@vd5P7D
zk+pWq<@N<sUH0$!1PT)H`U*A|Lr2;hoWQoZ#JjPAQ>M94b)%#L@|~Pg6`}4f@jB;&
zTiI9)nO3`k<w?i){4Dl-gd5SXvYB|-{@lDTrd<1Z6p@QGi!|xb99xTeyS38Cd4;xo
z>UoEwIz5qCe$T=t^#@N=ug9ZEv&{)q@6?vRZ0(6Q#|B-JGViBf0RH2SkN%^1co51u
z%opna9@m0GD;WOnzLzAKi0FG?rf{%e0#f}`$NT9ET_^JXSD)Q@0Xp9M_dM#<xxT?J
zea{Z|j|$uVvkS;i{|Gbjnx`2F_MThW*grbl^5`)Lx|1cw^p6)=B^J)T%8|hrJ&>2g
zCzg)~Jig`=DsjAEW9|Hd7hjoWmHNA_M-Omp;H6XImE&PrpE|{WxNIQjm0eouH13i#
zj;GELXXi*`#C9nq#|B<{%%dA)%69Il$Zh}I`d4E=mK*m!W{&e86?htw`pO>C7&Y9k
zc3|m#qR9K@L;O|k&shHQ+q3uItf*Yv{PzL3fR;r4tsjzQs&>4*;r2%cij3iy0>6AB
z#J9OxiyhIc3rKGy+VNCpKmB9G_q3m7MC|^(QhQlhxM%|1H1^X!hU)uo+{so7uas9f
zHu&QG(=d2mA|9G11Io@!j=M{{m`KP!H5@_W#-H+k^5{(z7*Uh_Qi>CN>Be~+K0Pn7
zW-L$B&%E4zlFdYogTkdF3kiGl(!j@M{zJyDe^LMAqB-LB!OtuC=y$xb{;4a>U$!1$
z6LHZVZ|cIuQkr>czs#mTwa8rOenL^T%PaQ}O9OdcbJjo22=m@W+wo}FvA9UI+r^Yg
zUH?&~EiNK582##uq)>?~|9Y7s8wg(bWb>!UhvyPWh!8itceD9}iIUBKWebRj(_%<c
zD8zsLXB1{)w}mXpJo+z!#_^IeQIregD_f-Sa?(d!IFAs#L{Q<`K#10%(gLnF#_?pV
z;S^%Iz=gw=`P=5~{IZB>Pw<@8jB^zAPsj%QTU6M;N;R=%P=C1dugC{sQ!-zV5#(au
zkmqS*d7d+trvWjhA(W&L!%%YCBV|$OCyTC~GYQwf&bc~dp7!SwzglD|PKq9_KEM7g
zFVthCg8vqWxJVx<g<YiFvx4={O)+}-6*jXyOVJIs!F6PHZJ%2{B4e}tZ?-uU7yIWY
zGTcDAw$F<EMen!%a{u-eYYi%*W9w}Bm@Sfrts%~5_xt5CDF!#f{cc<2|FUiSOKdl7
zTM}RUx}UX)w1FV8@t)iDEAPLmuZx)DIfR(?Z~680mpD&cZcW^k8&T3w!f7?Rx639o
z;e#<tZF&^h^=F3?v*oNLOzh0yl`OVFg#CNo+0giJa{o~(iFrE}@b<{g7x5mm)-G9X
zoM7Hge`9`R?ehDt!9!mxt;D+w@u9X`e}jj<$SVP{Q_;Nnvb}9p*JKvwtw53QJz+U@
znf*~I8|19G{s{At(;u?_#k<^(di~~onj*h?z-FsG8|)i>wA=q<m+{ArziWWu1}gS1
z%b8+oqm8R<M=3!fo&K~9(f%z9^WOSDIsPiS<qja;Pygk=a(um=Z+vbhc^B2N$eVxZ
z_|fw&J6{alMe*%8Dc-cVpLl<B$mgFgWZo~IwZGWU_TqgRcD`j?;+H>hB;#dP#HJDE
z-SRQdedbZiL$O7k?gIVtGwU}vzOa9urvYXDs+RTtQyX$(^9w&dM9$_1|IID{doq*q
zy!!|9vEzRh-or8R0n@UoGw0h!OZ@Ije#7#yrLljwbI_;zLVo;^PJQOem}4TQ=}Qy0
z@6Lzw3m4{n`WdmrQNjBk@jWSh=HM`)@$*@U*v(OT|7uT=)$>(=c)$G2l(?CB+(oUp
z9W-BuoYQwH@vo0N|M9stekSQN9-tuJonFQ~gM*7i?V~HT|9r#8$FE<0W@6YDrS?Au
zl>MU}n~H}2jDKeP9yS*LfacFK#oKh*L{yP~)fJ`cRQJ<_wdk^m5I^Sg-#79wN7W7r
z*niB5jV~pBySB|$yW*Rz|Kjj>`^#G6?LYFx|BZ%?iC=5AjafvZc<0@VZEoRuy3GGX
z**sOJcArF|$fvQ*EnGw9GyT)Q(&9|9!=O**3x;O-lra$$>qTWR<n1r^y61LDj;ioA
zgjD}b+TH8TF{C<~h7xt=rPrP1b%!(YGScw)`J3M;{k)+&)>0=V5pRD`TUouthISeh
z{bL+X7;_XGLgZ{IP?pa$XKq~JxTvo^T&ceSzrJp|JEP1R&uKAlUzw&eW23hIrT*i`
zjqZC2lZ~FBV%mPP<!`#a{S&nQZT%5p>A);$miUg4Wj?*S#kOikJLB7|IoAW<ZR!%Q
z0+Yah$QFG0&o*lB-%oR5!KzkI&6!RJKC)?C=>eAbdZzi2wow?tzvZP>on3y}sJh};
zF3!FK&nU3Ko4;?ZMUCd~56Ld23oqkS$3`Y$ZPRq6x}d-UAAA4rrfu8$_x7z5JH>Rd
zv6wnBPyf9BJi`E}tBAskFG#8;^-PgZaNAZoebFP2Nha+1S>jt=aq-u_IaH{uLih3X
ziE=M*TV7pDDtgGy_g^h8ZGEXGq6N~D2yv->`4(}KF6W+>99IzqywvRN!<tza;@aD%
zYa)&*3xbsw^YEb;GkINdR7Eku(o&rj;*QT9tcfF(LjvBt{D?Wtm#14CsQ0%erZ>e~
zbir)EKs_aHsEM9r1vYk?_s|w+g!yxuiSrX?%v;4uFA%|B1^3m0?1p548cBF|^9<7^
zYp$XeB3)@yxUO_U5j+--4u@x*t{35u<=v;qr!CGF?`pR(ni2{64}3Bz>fPGJ@E9j?
z=|=Fy!(W(@CViOm#WvY?Jg3cyo)YzBbbMQ6(^$$B<KZvyHe1yxENpcvA`x{xDK3t!
z0eX&V!Z$BP{-<rux9hjSzZNL5vpFqBB<IuUWjux<lb(%<u@)j3pUM|PA$Ey_O}rPj
z(&dSqQ1=)4^##sW7cC=9V@j;yzhlX;5R>BUeHq^w-2=TQzOeoH)1?_n<eG>sB&QSD
zO$R53sM0KYCt(We5^wf%u87EM&UX{oT^Sy$MVyVxT<ua^2`}?DU%julA2AH(3T<TO
z6|_=(G@KZXkYEXpUgL+K$I7YSwjov~3HT+BC^0i6n&^U<ljxdY@r!==i~QOX);{<?
zty>EtqC~R>espil*))8&K8HC()i3NQIGwG5ip*zWdD2<0sUcAl<6>m`UZ*i5H$3HE
zU5<GjLOWze>}ZoR+dz{cu@n9$rnA*o6L{06*ng2<`!nM3{Knf(W{r8iQ+z>8T=QMd
z#${d{cHJ)`uS3|fUtNf?n3Ng+&<JJ^KKzirMdrj0q+7iu-Z<VqKd!sw+Y`UQ{J6||
zR3p!>z7n5)SdwG4```ftU5cYqd*YpzKhS0cF3I88b$|Y>1hxECNfx+&B3YLlV3|&%
z1o4jX+ie=xWID35zqI{fpOIuDE_sUrBl!wP(_(l;hyvdk8OWPwV?xxnLqDNV(gn^$
zLtp_4k^AqCj(Pu*ZQSJ{PO0IP)0{BN3FZz<-C3b)Y8jvD5Ly3mOi4Au=Qb6xfct3j
zKZF9p0zXuD)2Fz7nYFG2V>dU<MoyS>#M7-qy}$>aFK$03{gma0Wedd^zL;gI`!?`9
zuOcN&51*Jo11a&nFG$K(qip0ZFS3~~EMHpsgZbkzK`NrF7d?Xh3lbsrO0NPRI{(G(
z&zyTCCX)(}k!Sv3hGXsrcK0f8U+Jd?^JoFiifld61~QO;d))GM4xBr*T!`jj5iC0e
zf}GFC1nQskB-xbvFJb<}I$WVVD>*;rRTTdC4M~9-&rMTIUq}-NC}nxU-3O^l_p@gG
zH8+2@NpELTd&rBa{4tO6GCs;IDe{)2tNH~FC~DHCm?1w?BI2~W4CbF`#FVcuc2)>*
zkI*E3y0lTiza*_Fm71pCkVLA&q)dd+FnjMr@jeA6o{tIe@^gCwh>rwwvHaZ=rG-Yk
zLb2uT$NUSs|LC1Lj%`B2Y;PYQE2t~H>BdCrh^|gFw}0<wp-sq9B4)hYD?gu>M3s2k
zf3;nug_83O5JaLA8$=xN1;gKjr!P#_a~)!t|C085jTWU(#B{atmgBKu7Db7Oilv+2
zg8aE{j*_`f3+!I_<Zow`>kvyEU+$IvV0qonZIkWHi&~uP5YvPB^dI&6S9J12w!*L9
znXngiAorz)1&$su9LijW80t@@mbafbKY0sVsfElI-!h^D12J4~DDkR~H{W{6@==j*
z1Ue9v=>vX@`SPg#FSmac#%g$2glen&ryq*Rv%cB-?;!wR6GLJoY+IeX4)(7`V#>GA
zZ)}-@9~DEx<Mjnj`wMtY?Jw2;?XSD>i@cfX4cEnl7#bb7w?vt~<M={Lar}O<5tD_w
zEVJv4)@c5WHg<AOruY8K{J&OgrChD>iDY-AM%5f`>>~7Jfv;=Ih%yaD{^%Pq1t?{O
z!ft4ikM1P1cjA+FNWO*>F@R4`e={bt<UMq?{4LB6i_apRhS#wk7cJ@u%B}cceJLh`
zIoGPBo;JsKk=d{~L>XpAazN|9o<LvWd!3l_RhzD;N4+N=As%-x_Q8?AJfSR%T!M@;
zpT7D`M45`OmTyr14UN0$?>~CPX<Sc`VaJ;omLIwKFKx0@e@Zm}Hmrh%<K2(ubnjM2
z8CAaP>hH!ssefOH|1yO2JL7xao`SvL6~{YI)}L8@Jf>J)|D_@EIobdlb!XA!NGHMr
zAp4h2?}BGyifETQd-Tb0Ze9p2rYyf^4ss;H`V9y0>DMhUT>(pp<45d>o_R}h<lOhP
z<DH=obWAZF(Ul|#!#R9aA-LIZE}wdF&FU3)F7|Je{`!`k|8tR3bj8k4;pxqe^Ye*N
z_i#=ZJwJe7U$eY@e+0_}yimAz5HV74Dz0VzIPp|Sc~?w-@STYAZ7GN(V)D|V0QU~e
z!`==b-_i`=&ABP&lbfj&h#m$X(!-0Sdo~DnKki9f{mcH>XB!b=$s}E|{$?gWxJLxE
z)l2ud%kzkPj@w`6_cldDoN~WkcE#kK#AB<5mfAbRK*Ij%>Zc`9#ysWPry@?`!D+Tx
z2Vd90ihbK*KiW`%2HMZR&~W}UzN2pjAM)};tpoefh`I>u03Q9q(@V$fKkbN9>NSCP
zCxUi=FoFF*UR;c_n6I;;zjT%5l~Z(rIq{<9TeM~2Zs9>>rIvpl=`wH38xf(pg$w>m
zhK9tG%-4}pqB&wdCyC!i{%I7rx-j<Aiz&wQ2Qj?068}zM0*Wzd%t7&q5%VM>cyWud
z7|cfoLhVl@v#usYfE`5R(FxkF_)K7yk=0XI5KptH>c11g(43Gk+65rvM@cPaL$ln%
zF{Nql^8DSH$LBE}oLs?cwEfr@S_w9fb0}x+`T9n@z5h&Lq{mDGlIjonFf=A{pZu?N
z#=uh_*y%!fPAq>4DfFR6&+WE6pF94A=xQ$_er*76`~PKh7FzZ|kciOolFGM*Ba~>G
z2v!I1nSUHK=}4Gd5-!0?h-Ko<0$&XtvJ&vr|FP9%*KR~nyah>cbPq?z$HOHBGqK_y
zhAA785Z~O0UxYzqI<=m7N6>x%c+lpD@%0w5Bnmp}gP2qK<@t!>Xn!JcdTM=jn0~?X
zq+g5a3ZbfV|4UBhm)9eTp8$^$4CmA(^XU|9vHbYqwMDs*H#Xw!{6lZy<+%zL)%ZMh
zH7zrHep{TkLhe78&VpV<(HH2Fh~S(WU!<-g{xs<_X`=qrh)m%kZvInBX<<6!Pf86l
zOolQ)yagVQXdUrJOng+l^`gQ*X?fmFDeWbRD2D#S-!foy6LByexBLR>a#39WK7NK5
zB=aFQeJ$i!;55ymoTb=c{!L6f2(>k>3Gs#&@ryIer!i&ZqG>O!9DkS>*8eHk^>*S8
zLk~wUB;aNKGTId}*#8@v{XY*QytNxUqiV<gKr`>xp05FT_z!*3h3m&7ijjZJ(WPZI
z7Mvs=hfhqpTx|WTd{43eQ*9V_#ZpVv=V+;b$9gD<<uR{Hk~*H0NpNhR2p*581$9%E
zPq_YlykP%}`>FcDA02_`Ck`{OV=6P3O?kZlht1$Y%<w3Yin>Y3oTXSI1p2S)|1Ye6
zjar-#!5?DjjcLi<j3F$E<+-*6{ezZIB6>qS6w}gG;Nhma(!k>$yuzpNwHg|~Z>wP}
zA3Xb_6R?+}3rjMP-&4zZqb6gx9}%gBGW%mGUx*&$|D|Te_fjz((}Od;XNfQx9(1AQ
zqq6oz*P_$-$>CW&D|6o7_Y|xZ`>*f~$DfjB`Fh<sL`&cLr(cgtq6hJ39Df2YZC6k0
z>lO1@#AYC`XkRD_&TAf#Z)3YUds10`ErD55Z9j^}%Bb?rKlr8PC9w}i!{T22%x!eF
z{)2gC{iFWo*jL0ZjR#k8Z+FZ5$gt(VNw+@}<NLr1(W9|bgX=Ggt*3`V%O}_`_8pvZ
z{9&+YZCMl#Ooe~i^`FN2Ix;&I&!9kYWZxhj8MHf>3k{mqKk-t3ND@Ds?hEL=D_c@k
z!B>>p)t~rP_4{%b@4UCAlL4LA71M!y<Ce_-i8b+xoWie$VLBT2^Qh1O|F~b{`J<&d
zb$0eC;&;}~NNBoS^Z#C7fAGs!Jd5wCL@jDz`FDgW*WdcDPO6s*{0lekJ@5rQxyKRs
zq{^d1giNYD)+_IbIyR?Pp8U|tLqg1A6JcJKDnNYP$9J6n1oe-;G_?f2abyI2f;-VN
zPxbHTgReXP(kw1a%q~3uzDF;f`*`cWdVJ|dHhyzoY0NA=i2lPSisdI%JfQwnzNf5z
ztiSoko5?cxow35y*}y+{R-xQpGw1i}Wchv}B0T>Qk14^jZi6nhKYJNtbvSaBt^W%A
z-z)U;li0tR$1{xdMjQ_2SH~?6lle5zr@@Q5LMuge{4r7@>hu4zM+$tXPoKnwSi|Xw
zUpp%P2lLOn`gdDqzE{_G(Jxn%;8ELb{_@`rnS}lO<1ck>`{m;}Y9I;Tv>mQLaESQ5
zmZw`H7W)RO%=^5b|F-ATUpibLIkb$gF7{$bP}@`9rpueQF8TL)jgMOXluU0wJT`F`
z-8)W$$IS+gG%M-82ocLutSHkMR7#&V>F<1FY~s*aH7RD%r9~cJj=(~p<gspqSWy~|
zKV{M<AKNu?$f&(yhNpj!)!*7PZ*SHM1^lAp(SP$|@A12cPteJ*9>~W9mZHC=uvQ>2
z4#hzQJ{I(g4DP`AV;;)0g6fO0>OG~|ekIll<OF!t`NUm#5D%23-8=Y!<@~kGyO&yc
z+^{?zREL73hHj360B2br56vL|;#pWjQ2+Tr51B|u=>0Y}i;DjZ_%rVHCi-tE)S-!z
zUBq|ctn~Or=K=Yb>@C0O#MYnukEy^cF#jm=Kg_KVW4_+UH(dL5%iM>3cj?QW`!FGQ
z(_-^oWQ(B^@pw@x6A36;h5FxjM2MrU&QCFW_9V~`;$Pp0e_k5V72{*AZUX*heW5)3
z2dMP1M^_Ue)03)?rxuBNxlfDrZ<`>|BVoLb4qa~(|FcqED}38!!cI~Y{_9DTcno41
zL0$aqm<&iY$bVq@$c!cU$>?Ev6T7yHjC)jWCJCtq@wWdl{$ojFI6O*kqTV`8#;;^7
zMKr1SBj1u5N=b^OWv+%vut<+BFYsh}g)=CV1erx1=LHLt9BOH<(Bd89R(kAswL1j;
z<I<YgtAa*^*_>#*JSaJq$TZYL?-8FdbNEfXQ-l6v(%EpJpegV^3rdbA_@zUOch4V`
zCye>i0X*RazU>M?lO;tp{=!p>%TMo>i^klQQ2n2ZDZ@*JUvhe=Ifngn7`)jfv3V?O
zvM%yxQqtgD@lxPH(3h*}a1$$U0r7N2lkrV4;`YTvhc+ZgKpK{|3!&r~_J6#&jLg!x
zwpr)BUfdK>j>ZSWamOzI0>40c5MQU|m2`smlWUP#Z7FhQ{o|d0irw~6;M)X4JioM(
z;wQTZ2N9-kOt`q|Dz?CQLU{Ywgg5Q9!8Kl&#vEb384>8D%D0@}`!^AK=+`6u0_rWE
zzM{nQ@-6sZ$oM+PQp>l@<w$OUk22nlDPAy+iW{Q^e(7T?+Z=N?6eMVpa$`m57F{5|
z{#}XjyD^H0Z`;b^E+7}pd_Mj#W5Jr_uoHtn5gju(qwEcNJ68x;V2b=(K8brDCtgA?
z6F7qu{VSyLpQGqiw-s-d#NCgJ@3xj=QfnAPHsQIO$kbbD*_{kN?|8*{VYQGQ`5)N+
zHkAW@FL>Lo|2uv<_=6|RQIuuZT5+}c<ukDT5&2I{XF8nQXTDb8GiyJi^7<G0Z!G77
z)chf4hMj(ButZ^2XhsEv8ujtoBnLy0$~EwI`jvQ^5dk(eUtS-NpBKR!Nd|8E;C92C
zvkLwP@evzoqh^PMoz@8qS+2_X1nEtA_@4p~iFvIsZ<iJ+t9&maEkuZjL$rUY27Wz_
z{qz&=n?lOh8~cx$Pt55?&2_kfF-z`WBVDY2!N2F{k6YgUfyy9$IPX99Nf&qfjF%7d
ziR1nBLlM&3De}K5Z;qaqzkf6TMmc`9;6L*IsX4)B{0Z{__#-hk;IxTXh*q)*bY33s
zJT<<MB>=paYzH|ne<CIRHR4}U9?#m#P1>~nIu!}t&yqvD(#u354PibU-2R9yH2xu?
zVUg}ZqR7XbxhZe^NFNNy|Fy7xJ@f7-$HqJ==J@I0IOYrdrP=m@a%|?tJeIocWB6}?
zkKn(^Z<A2C_S28LoGM(Pa{O9|7r$~B@`}8xfbIW&o=h!&0*`<2|0VAX36>q~jEfxL
zpLQzCFVc@U`0EnsDr;$9;f;6=GrP!-njytJ3h*qZJbQOd8sMKSEx&M-vSqptJR(kP
z-8Sq$u9mZ@as7#xiN{6c{M-GD=3mQeDD0A9$g1@F)_;UQ*~<3soF^3w0@GRmho2Ss
z%7(!L#d}X$9usDni{(1Rltn@V$ozW5X?wB!eoAy}fu2YE!Jk31=>8cZDT_scpM(GO
zPo>i!NXW+e?~DdI5HanmxL3woL6+P$asJKO=VFjnG#l|8KQ#$nMQL;nZ5zO&O<aFt
zzLD2TF&|N3-<%ZSQ55wItLY*siv=Cv_=jl5+5UqCx`6%bz2G&E<;q#*+wW<F%HO}>
zpMpxwGUZUGqOTY_aS)&UY0RZ1`o}tv!BXH8&!cuTzjA_dXq-?kPr${lxH?F}ReII4
zs=a?nW>#RVcs}FLngqS#u;)BZcJ_a=BQ6b+xgP1eiRUTh1eLWskJ=n*Q6+&&SU$mD
zyL1#C-=;S^;>O>x90;M=zxgf>X5L6N@x2Due@Wx-9nL7Z60exvBgkMW^4j}H2aLgy
zJ=Be{-$}K#sNvI-*tE}?RqB{NK7oI`Ry97PBwoP=y}<Ry3ag3J;Fr#tZdVLjUXq!U
zF8o`*BO(nY4IlWfRVr~LSjIn9dT!114iDmKv0Kxg_0Ovxz2$isJ{g?to<qU=Jnwx|
zm}dUhlbFVzS6_jTjk@vZE6BNH*B~C<=KSMkxxi=jkBm5a^r=r_1BpB@$*~ue@g4S`
zpg^?W*8dzPM>;-+52wH{Sbj*vo~2M{e3$=Fw#2`QvZln5y1)r?(tdz}0V(mYw_Sw~
zD;8~eBbk4i)%d=qE_UuWiy1FrmI?aH@z~>_)r6p5trGDDCe~0rGN;!SQb?5jV^$5~
z-4~j$pTSxd;gUJKu8|VMV}<<#{xIGdPnA+cAk6%O!K-srZC%s+8y-`V?7U#U*{SLj
z=<(T%r}x$<4x1qORpv3vq-QA{z$Y1xZ??e)K@#8<SvTSNA7MEZrQ%<}8}$&^pKn@b
z1C`*l<=W$xU(m9Mqrs*63sFl%<am6ZqC_W99s26j@v%nf1<@rQ%?TCp^JMY{-Jat&
ztA~jHN{8z&H{~%L_{a{MH}kI(e@f^Fr(?WH<E4dP+Ym2EQt}TzLJ^LCOW^(m{O6|Q
zmglSWcU!G15z}cO_bB@(9(RB<CwJiw3G3E>AK&1kCg=C^jB<QUh(t`yFC2AzL&TN-
z@7kj(=Vvj5`1F?)Z-`-m7pN0AE-bhF9YnSLWxhl98P7FN@E4OSr(=V|ghVFN`LY3C
zB^A>6Tjm1KpC=`%Hgo%_xOcPTEA{W=liWW>1O2DMWX~CsUPGV3ozH(F!sAt5h+n)G
zZ_>a|fj7ziLValg73+`LpsIXR1lN7dq<DRPeqPh`qksL3`=5@iFadu#)*m{i!Tw9`
z4gQhPf<j|`^AmlUUw}!NfX2`y1#^m)cqL*bwwL{bI%cGqXCCdZ@G2@Ol>Kv<LjCIr
z*3b^{i!>V4f31Q&qE()aZ2M`%$B2Iqc+;aB!2bGIcskL1{S!p-0$qrU&PbfVh+wm=
z%)i1%&ZrE34OHSI4GRAb@%k3|$H|Md^-mDJUgN?)d$51}h*xfY$v=MJ#F#gW^}kmU
zPYlflY&KOsiSq(2U#kBZ1uCFhIEsKjm78;{!Y5=^sQ;<sNMAvg7zf(gPHe*CFIE#6
z`TEoN%^%05u^-SPBE-vb0i|E>@M98LN$Umip>PJnK1FMcPb2(>U&hN{lr?GlDe{xy
zEYf^Ch_hi({Y(B8Z9l}b7sMxqW{_^+%O{BsIRzF=wfz<TILr(6$NEKj2A^)cJ2IFX
z{d_krG)N6KVUGS|FLZw5IKv)}|Fg-&INjV~9Tm(e+LZ-`V)LSZdV+)hHs0j##te$>
z%q$>f9-9XwZ$BsDznxBs;7jM_-7`X!KUFsd!#GC2tMJKG@J~<YnP}@T&idb`^-27r
zn&=DanN4|R?W_JDy2luNL;-Pk7MVkAE3%Miun~HR`=93m)?@I%2V?rE9)e%=3g#5W
z#K`418-drP13yKI;K8_cjQQX^yu}MVRiP2qVl)2=m$W(mB77;>;ky~~e^vw<sm4%^
z?q4Yy_Vcv0dPx-Zae=Q>sv*K-W}bOGs~3+u&-oA&%<&1S&f>E%lF@Kp+JB=2|Fr#P
zJPv%`Wg=gH?mqDN0D$)|d_fp_X9Gg&EfU9{vnk?n+pLhnI=ZaN6$UVIfa^d1(ru!y
zL%fTG4Dz4mC2qiv*S`~<xY_ch<<3<}$M^dxRe0X<(4ph?Bv^cs_{el4Z|uYFc-Ezg
zY#^@vzW(FbgciB5sJvZr5$H5u6ws#SdHnb+r8IU$`plOmMrpfaE+Kzb$b<xLNU^3U
zfs5=k@c|4ZHc4zv^J{|gt&&}knd5oLDILGv2$`3C$G0&F4C-854>5)RFih-!l@mBb
zA{<P^l!1*w=ALaVp^S*)e8N&{%>JV>w*KHRH^BkYqocHi3fF`(cnIwDQ<;Cyi&3*^
z$HLth6=-80*|9Nj%<jL=e+xyi44FkP8&+)C&!c7B6Q1Yx$4ZPdADUMWQUuF)BR&GJ
z={sE#=O0VP@_?}SQ#ZQ@V;E=BWg8j+O*SNBW|gwpCo4?K+aH#n9jOdPgx;ap4n%k*
zo8ylz$RZmLwC>ZC0sR1er_I9Mo0rJ?FYx$`9fEn0t(B|_y^9;1#e5S{nhjk4$2h?X
ze1{AHA7z}6^v0e>7W8DI#5PVapZRZ$nH8w<@9`u9_&V7^k17Vo@q&Xs^5FJ!or!~E
z-pk_B-J+{N8s<FwgI~wn0?N$R6aFFAHWd@uKWTEH=f@6lmh0|ayd6~dQS$`xvEg}E
z;p=IG>)#<0d}t@G>+>%n?u*#|-B*PlqJfKyNeCxC?&o(<;eqV?ew>P`uQ#cO-1M8y
z`K<p&CVrFs`}cZ8<--4j19$}&d}7BK3uNPqWfna;GI5Z2Jbcu1EQ<xQ$^NZ1DjM1P
zr|eVA>7B!qhfyt@z6x1=GIt&Fa5CcB!1F5eWaNId2~=%(^e~;I_-aG;(Wv*dBF1{_
z<1bbke|x;|e&XG~i(V;1{X<PWDvrZ9<TzW{`d>7!M~8;?eGdGX#{EOTs2$AU0wLb5
zF~`q6JsJ*SR?$b~{i_ef=_{~nVQRAfdNbo~i{3r|bS+f-kqe3Xy@MZWQVz0rppA;Q
zDJ#??&5Q1PriQQopoYkSeDJ&)iKzS0$#qTRY~>NCn!$a&5TBhwoflj#MF*b|zcfaZ
zWs>?R=ck}*24OE0-;oL8S;fkHBJMd6)1T6j|NR>0jmvL9r9<#)CdTOS#4e+pO2q!a
zuz`XJ{u3>0)j*W^i`3LUDn4*}o10z9zg>Of);}#k5+p@44AO0Sdf!3BFS6?DwIkxT
zS<^6pwCRG|ZIT9}Gh@L|>-vlFUc?Vrb@kd2*R7bhkxwG&;s%hSjau;2Fd2>hE#k6D
z+B9Ch^X5tB{MVF4eySEMg~{GXpNGeHhL%?dtbdvjg7_fWhu1Q6^E^=K%WiDm7<}*F
zTGEUV6FY;Yxuj0Z!cWU;Azhwtf<{R2G;*HUKlqb#34Vsjmqi~R9)gN~HG&P7;%Z8Y
z5%7BU()%%g1};93U2(a@mu{AaUDi^iFeP^di+VP=|9@g?R2{o?m;Rl`R5CA<B9HxS
zbTa&&o*MoZ&cA2_zE{5nynVk?;f1(=GW_oI2Zv|CZ-C>EinwRF<@OM8?ML;utI6Oy
z-GjBp?aHr;zG8Y}59x>x`uJcXc&fWM6uXlR{o}2R=dr_=+AoH{f9o*#xHH`6*eUG)
zhlTyS{{yJqfYzv}8y*Y39q%0yd%J#D=qm>PTTs%-IscZ&ju;THckRVr?mp!@r4Ppj
Q8qms2z}Id4{~!7P13!iR-~a#s
literal 32884
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
--
1.7.2.5
1
0

last-svn-commit-1007-g23e94fc Update Milena tests w.r.t. the new version of lena.pgm.
by Roland Levillain 15 Sep '11
by Roland Levillain 15 Sep '11
15 Sep '11
* tests/linear/log.cc: Update references values.
---
milena/ChangeLog | 6 ++++++
milena/tests/linear/log.cc | 4 ++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index d6c5474..e565b8b 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,9 @@
+2011-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Update Milena tests w.r.t. the new version of lena.pgm.
+
+ * tests/linear/log.cc: Update references values.
+
2011-05-12 Guillaume Lazzara <z(a)lrde.epita.fr>
* mln/io/dicom/load.hh: Fix invalid data while loading large
diff --git a/milena/tests/linear/log.cc b/milena/tests/linear/log.cc
index 5631ea2..f9703d5 100644
--- a/milena/tests/linear/log.cc
+++ b/milena/tests/linear/log.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -53,7 +53,7 @@ int main()
{
float min, max;
estim::min_max(tmp, min, max);
- mln_assertion(min == -929 && max == 1260);
+ mln_assertion(min == -925 && max == 1247);
}
out = data::stretch(int_u8(), tmp);
--
1.7.2.5
1
0

last-svn-commit-1013-gbe6caa8 distrib/macports/Portfile.in: Use -fno-strict-aliasing flag for Mac OS X Lion.
by Guillaume Lazzara 15 Sep '11
by Guillaume Lazzara 15 Sep '11
15 Sep '11
---
ChangeLog | 5 +++++
distrib/macports/Portfile.in | 7 ++++++-
2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ea52f60..596ad39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2011-09-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+ * distrib/macports/Portfile.in: Use -fno-strict-aliasing flag for
+ Mac OS X Lion.
+
+2011-09-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Fix Portfile dependencies.
* distrib/macports/Portfile.in: Set fop as run dependency.
diff --git a/distrib/macports/Portfile.in b/distrib/macports/Portfile.in
index d63ec8d..13d5ea7 100644
--- a/distrib/macports/Portfile.in
+++ b/distrib/macports/Portfile.in
@@ -39,4 +39,9 @@ variant swilena description {Add Python bindings} {
configure.args-append --enable-swilena
}
-default_variants +scribo
\ No newline at end of file
+# Temporary workaround because of a Apple's GCC bug.
+platform darwin 11 {
+ configure.env-append CXXFLAGS=-fno-strict-aliasing
+}
+
+default_variants +scribo
--
1.7.2.5
1
0
* distrib/macports/Portfile.in: Set fop as run dependency.
(depends_lib): Use GraphicsMagick instead of ImageMagick.
Signed-off-by: Guillaume Lazzara <z(a)lrde.epita.fr>
---
ChangeLog | 7 +++++++
distrib/macports/Portfile.in | 5 +++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 1909858..ea52f60 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-09-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix Portfile dependencies.
+
+ * distrib/macports/Portfile.in: Set fop as run dependency.
+ (depends_lib): Use GraphicsMagick instead of ImageMagick.
+
2011-09-12 Guillaume Lazzara <z(a)lrde.epita.fr>
Fix Portfile related dependencies.
diff --git a/distrib/macports/Portfile.in b/distrib/macports/Portfile.in
index 54e45eb..d63ec8d 100644
--- a/distrib/macports/Portfile.in
+++ b/distrib/macports/Portfile.in
@@ -20,7 +20,7 @@ checksums md5 @package_md5@ \
sha1 @package_sha1@ \
rmd160 @package_rmd160@
-depends_lib port:ImageMagick \
+depends_lib port:GraphicsMagick \
port:tiff
supported_archs i386 x86_64
@@ -28,9 +28,10 @@ supported_archs i386 x86_64
variant scribo description {Add a DIA framework} {
depends_lib-append port:tesseract \
port:qt4-mac \
- port:fop \
port:libxslt
+ depends_run-append port:fop
+
configure.args-append --enable-scribo
}
--
1.7.2.5
1
0
* demo/viewer/Makefile.am: Take into account no-strict-aliasing
flag.
* demo/review/Makefile.am,
* src/toolchain/nepomuk/Makefile.am: Do not distribute some
examples.
---
milena/ChangeLog | 11 +++++++++++
scribo/demo/review/Makefile.am | 2 +-
scribo/demo/viewer/Makefile.am | 3 ++-
scribo/src/toolchain/nepomuk/Makefile.am | 7 ++++---
4 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index e447f1b..5712ee9 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,16 @@
2011-09-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Fix Scribo build system.
+
+ * demo/viewer/Makefile.am: Take into account no-strict-aliasing
+ flag.
+
+ * demo/review/Makefile.am,
+ * src/toolchain/nepomuk/Makefile.am: Do not distribute some
+ examples.
+
+2011-09-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Improve text justification in HTML document reconstruction.
* demo/xml2doc/templates/html/css.css,
diff --git a/scribo/demo/review/Makefile.am b/scribo/demo/review/Makefile.am
index d451f88..ec4a971 100644
--- a/scribo/demo/review/Makefile.am
+++ b/scribo/demo/review/Makefile.am
@@ -17,7 +17,7 @@
include $(top_srcdir)/build-aux/autotroll.mk
-bin_PROGRAMS = scribo-review
+noinst_PROGRAMS = scribo-review
BUILT_SOURCES = src/mainwindow.moc.cc \
mainwindow.ui.h
diff --git a/scribo/demo/viewer/Makefile.am b/scribo/demo/viewer/Makefile.am
index fb68e50..0b4e17f 100644
--- a/scribo/demo/viewer/Makefile.am
+++ b/scribo/demo/viewer/Makefile.am
@@ -50,7 +50,8 @@ scribo_viewer_CPPFLAGS = $(QT_CPPFLAGS) $(AM_CPPFLAGS) -I$(srcdir) \
$(TESSERACT_CPPFLAGS) \
$(TIFF_CPPFLAGS) \
-DNDEBUG -DMLN_WO_GLOBAL_VARS
-scribo_viewer_CXXFLAGS = $(QT_CXXFLAGS) $(AM_CXXFLAGS) -O3
+scribo_viewer_CXXFLAGS = $(QT_CXXFLAGS) $(AM_CXXFLAGS) \
+ $(STRICT_ALIASING_CXXFLAGS) -O3
scribo_viewer_LDFLAGS = $(QT_LDFLAGS) $(LDFLAGS) \
$(MAGICKXX_LDFLAGS) \
$(TESSERACT_LDFLAGS) \
diff --git a/scribo/src/toolchain/nepomuk/Makefile.am b/scribo/src/toolchain/nepomuk/Makefile.am
index 4328be5..62a7fdb 100644
--- a/scribo/src/toolchain/nepomuk/Makefile.am
+++ b/scribo/src/toolchain/nepomuk/Makefile.am
@@ -1,4 +1,5 @@
-# Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE).
+# Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
+# (LRDE).
#
# This file is part of Olena.
#
@@ -16,13 +17,13 @@
include $(top_srcdir)/scribo/scribo.mk
-bin_PROGRAMS =
+noinst_PROGRAMS =
if HAVE_QT
if HAVE_MAGICKXX
if HAVE_TESSERACT
-bin_PROGRAMS += \
+noinst_PROGRAMS += \
text_extraction
text_extraction_SOURCES = text_extraction.cc
--
1.7.2.5
1
0
* mln/algebra/h_vec.hh,
* mln/core/image/dmorph/sub_image.hh,
* mln/core/internal/pixel_impl.hh,
* mln/core/site_set/box.hh,
* mln/core/site_set/p_array.hh,
* mln/metal/vec.hh,
* mln/pw/internal/image_base.hh,
* mln/topo/adj_higher_face_iter.hh,
* mln/topo/adj_lower_face_iter.hh,
* mln/topo/algebraic_face.hh,
* mln/topo/face.hh,
* mln/topo/face_data.hh:
Use `class' and `struct' uniformly in declarations and
definitions.
* mln/convert/impl/from_double_to_value.hh,
* mln/convert/impl/from_float_to_value.hh,
* mln/convert/impl/from_int_to_value.hh,
* mln/core/image/complex_window_piter.hh,
* mln/core/point.hh,
* mln/opt/element.hh,
* mln/value/lut_vec.hh:
Comment out unused arguments.
* mln/topo/complex.hh [NDEBUG]: Avoid a warning about an unused
variable.
---
milena/ChangeLog | 29 +++++++++++++++++++++++
milena/mln/algebra/h_vec.hh | 8 ++++--
milena/mln/convert/impl/from_double_to_value.hh | 6 ++--
milena/mln/convert/impl/from_float_to_value.hh | 7 +++--
milena/mln/convert/impl/from_int_to_value.hh | 7 +++--
milena/mln/core/image/complex_window_piter.hh | 6 +++-
milena/mln/core/image/dmorph/sub_image.hh | 6 +++-
milena/mln/core/internal/pixel_impl.hh | 5 ++-
milena/mln/core/point.hh | 2 +-
milena/mln/core/site_set/box.hh | 13 +++++----
milena/mln/core/site_set/p_array.hh | 9 ++++---
milena/mln/metal/vec.hh | 5 ++-
milena/mln/opt/element.hh | 6 ++--
milena/mln/pw/internal/image_base.hh | 6 ++--
milena/mln/topo/adj_higher_face_iter.hh | 5 ++-
milena/mln/topo/adj_lower_face_iter.hh | 5 ++-
milena/mln/topo/algebraic_face.hh | 5 ++-
milena/mln/topo/complex.hh | 5 +++-
milena/mln/topo/face.hh | 5 ++-
milena/mln/topo/face_data.hh | 11 ++++----
milena/mln/value/lut_vec.hh | 5 ++-
21 files changed, 103 insertions(+), 53 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index a2d2e4e..843f891 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,32 @@
+2010-11-29 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Address clang's warnings.
+
+ * mln/algebra/h_vec.hh,
+ * mln/core/image/dmorph/sub_image.hh,
+ * mln/core/internal/pixel_impl.hh,
+ * mln/core/site_set/box.hh,
+ * mln/core/site_set/p_array.hh,
+ * mln/metal/vec.hh,
+ * mln/pw/internal/image_base.hh,
+ * mln/topo/adj_higher_face_iter.hh,
+ * mln/topo/adj_lower_face_iter.hh,
+ * mln/topo/algebraic_face.hh,
+ * mln/topo/face.hh,
+ * mln/topo/face_data.hh:
+ Use `class' and `struct' uniformly in declarations and
+ definitions.
+ * mln/convert/impl/from_double_to_value.hh,
+ * mln/convert/impl/from_float_to_value.hh,
+ * mln/convert/impl/from_int_to_value.hh,
+ * mln/core/image/complex_window_piter.hh,
+ * mln/core/point.hh,
+ * mln/opt/element.hh,
+ * mln/value/lut_vec.hh:
+ Comment out unused arguments.
+ * mln/topo/complex.hh [NDEBUG]: Avoid a warning about an unused
+ variable.
+
2009-10-06 Roland Levillain <roland(a)lrde.epita.fr>
Update tests/core/image/graph_image.
diff --git a/milena/mln/algebra/h_vec.hh b/milena/mln/algebra/h_vec.hh
index 38e0e05..f772e55 100644
--- a/milena/mln/algebra/h_vec.hh
+++ b/milena/mln/algebra/h_vec.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,7 +40,7 @@ namespace mln
// Forward declaration.
namespace algebra {
- template <unsigned d, typename C> struct h_vec;
+ template <unsigned d, typename C> class h_vec;
}
@@ -90,8 +91,9 @@ namespace mln
*
*/
template <unsigned d, typename C>
- struct h_vec : public vec<d + 1, C>
+ class h_vec : public vec<d + 1, C>
{
+ public:
/// Dimension is the 'natural' one (3 for 3D), not the one of the vector (dim + 1).
enum { dim = d };
diff --git a/milena/mln/convert/impl/from_double_to_value.hh b/milena/mln/convert/impl/from_double_to_value.hh
index de766df..757fb55 100644
--- a/milena/mln/convert/impl/from_double_to_value.hh
+++ b/milena/mln/convert/impl/from_double_to_value.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -86,8 +86,8 @@ namespace mln
template <typename V>
inline
void
- from_double_to_value(const double& from,
- Value<V>& to)
+ from_double_to_value(const double& /* from */,
+ Value<V>& /* to */)
{
mlc_abort(V)::check();
}
diff --git a/milena/mln/convert/impl/from_float_to_value.hh b/milena/mln/convert/impl/from_float_to_value.hh
index f516419..b50173b 100644
--- a/milena/mln/convert/impl/from_float_to_value.hh
+++ b/milena/mln/convert/impl/from_float_to_value.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -86,8 +87,8 @@ namespace mln
template <typename V>
inline
void
- from_float_to_value(const float& from,
- Value<V>& to)
+ from_float_to_value(const float& /* from */,
+ Value<V>& /* to */)
{
mlc_abort(V)::check();
}
diff --git a/milena/mln/convert/impl/from_int_to_value.hh b/milena/mln/convert/impl/from_int_to_value.hh
index 30840b3..b17040b 100644
--- a/milena/mln/convert/impl/from_int_to_value.hh
+++ b/milena/mln/convert/impl/from_int_to_value.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -73,8 +74,8 @@ namespace mln
template <typename V>
inline
void
- from_int_to_value(const int& from,
- Value<V>& to)
+ from_int_to_value(const int& /* from */,
+ Value<V>& /* to */)
{
mlc_abort(V)::check();
}
diff --git a/milena/mln/core/image/complex_window_piter.hh b/milena/mln/core/image/complex_window_piter.hh
index 8a54adb..5f1daa5 100644
--- a/milena/mln/core/image/complex_window_piter.hh
+++ b/milena/mln/core/image/complex_window_piter.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -363,8 +364,9 @@ namespace mln
template <typename Pref>
inline
void
- complex_window_bkd_piter<I, G, W>::center_at_(const Pref& c)
+ complex_window_bkd_piter<I, G, W>::center_at_(const Pref& /* c */)
{
+ // FIXME: Argument C is not used here... Is this normal?
iter_.center_at(this->center().face());
}
diff --git a/milena/mln/core/image/dmorph/sub_image.hh b/milena/mln/core/image/dmorph/sub_image.hh
index 9155b09..7aef40c 100644
--- a/milena/mln/core/image/dmorph/sub_image.hh
+++ b/milena/mln/core/image/dmorph/sub_image.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -98,10 +99,11 @@ namespace mln
/// \ingroup modimagedomainmorpher
//
template <typename I, typename S>
- struct sub_image : public internal::image_domain_morpher< I,
+ class sub_image : public internal::image_domain_morpher< I,
S,
sub_image<I,S> >
{
+ public:
/// Skeleton.
typedef sub_image< tag::image_<I>, tag::domain_<S> > skeleton;
diff --git a/milena/mln/core/internal/pixel_impl.hh b/milena/mln/core/internal/pixel_impl.hh
index 45ea553..4e30f4c 100644
--- a/milena/mln/core/internal/pixel_impl.hh
+++ b/milena/mln/core/internal/pixel_impl.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -51,7 +52,7 @@ namespace mln
// image whatever it is a fastest one or not.
template <bool is_fastest, typename I, typename E>
- class pixel_impl_base_;
+ struct pixel_impl_base_;
template <typename I, typename E>
diff --git a/milena/mln/core/point.hh b/milena/mln/core/point.hh
index 7862e95..a912fac 100644
--- a/milena/mln/core/point.hh
+++ b/milena/mln/core/point.hh
@@ -677,7 +677,7 @@ namespace mln
template <typename C>
inline
const util::yes&
- cut_(const point<grid::tick,C>& p)
+ cut_(const point<grid::tick,C>& /* p */)
{
util::yes* the_;
return *the_;
diff --git a/milena/mln/core/site_set/box.hh b/milena/mln/core/site_set/box.hh
index 12b049a..4256dc4 100644
--- a/milena/mln/core/site_set/box.hh
+++ b/milena/mln/core/site_set/box.hh
@@ -43,9 +43,9 @@ namespace mln
{
// Fwd decls.
- template <typename P> struct box;
- template <typename P> struct box_fwd_piter_;
- template <typename P> struct box_bkd_piter_;
+ template <typename P> class box;
+ template <typename P> class box_fwd_piter_;
+ template <typename P> class box_bkd_piter_;
namespace trait
@@ -78,10 +78,11 @@ namespace mln
/// \ingroup modsitesetbasic
//
template <typename P>
- struct box : public Box< box<P> >,
- public internal::box_impl_< P::dim, mln_coord(P), box<P> >,
- private mlc_is_unqualif(P)::check_t
+ class box : public Box< box<P> >,
+ public internal::box_impl_< P::dim, mln_coord(P), box<P> >,
+ private mlc_is_unqualif(P)::check_t
{
+ public:
/// Dimension.
enum { dim = P::dim };
diff --git a/milena/mln/core/site_set/p_array.hh b/milena/mln/core/site_set/p_array.hh
index 218a95a..6a7a236 100644
--- a/milena/mln/core/site_set/p_array.hh
+++ b/milena/mln/core/site_set/p_array.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -51,9 +52,9 @@ namespace mln
// Forward declarations.
template <typename P> class p_array;
- template <typename S> class p_indexed_psite;
- template <typename S> struct p_indexed_fwd_piter;
- template <typename S> struct p_indexed_bkd_piter;
+ template <typename S> class p_indexed_psite;
+ template <typename S> class p_indexed_fwd_piter;
+ template <typename S> class p_indexed_bkd_piter;
diff --git a/milena/mln/metal/vec.hh b/milena/mln/metal/vec.hh
index a2e51a4..a129d68 100644
--- a/milena/mln/metal/vec.hh
+++ b/milena/mln/metal/vec.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2006, 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2006, 2007, 2008, 2009, 2010 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -57,7 +58,7 @@ namespace mln
namespace literal {
struct zero_t;
}
- template <unsigned d, typename C> struct h_vec;
+ template <unsigned d, typename C> class h_vec;
diff --git a/milena/mln/opt/element.hh b/milena/mln/opt/element.hh
index cec8ebe..0aabf6b 100644
--- a/milena/mln/opt/element.hh
+++ b/milena/mln/opt/element.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -60,7 +60,7 @@ namespace mln
template <typename I>
inline
mln_rvalue(I) element_impl(trait::image::category::domain_morpher,
- const Image<I>& ima, unsigned index)
+ const Image<I>& ima, unsigned /* index */)
{
return element(*exact(ima).delegatee_());
}
@@ -82,7 +82,7 @@ namespace mln
template <typename I>
inline
mln_lvalue(I) element_impl(trait::image::category::domain_morpher,
- Image<I>& ima, unsigned index)
+ Image<I>& ima, unsigned /* index */)
{
return element(*exact(ima).delegatee_());
}
diff --git a/milena/mln/pw/internal/image_base.hh b/milena/mln/pw/internal/image_base.hh
index 46099e3..537f2eb 100644
--- a/milena/mln/pw/internal/image_base.hh
+++ b/milena/mln/pw/internal/image_base.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -49,7 +49,7 @@ namespace mln
{
template <typename F, typename S, typename E>
- struct image_base;
+ class image_base;
} // end of namespace mln::pw::internal
@@ -111,7 +111,7 @@ namespace mln
/// Parameter \p F is the image value type.
/// Parameter \p S is the image site set type.
template <typename F, typename S, typename E>
- struct image_base
+ class image_base
: public mln::internal::image_primary<mln_result(F), S, E >
{
typedef typename F::mutable_result mutable_result;
diff --git a/milena/mln/topo/adj_higher_face_iter.hh b/milena/mln/topo/adj_higher_face_iter.hh
index 21f6d34..2b4ef65 100644
--- a/milena/mln/topo/adj_higher_face_iter.hh
+++ b/milena/mln/topo/adj_higher_face_iter.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -56,7 +57,7 @@ namespace mln
} // end of mln::topo::internal
template <unsigned D>
- struct algebraic_face;
+ class algebraic_face;
/*------------------------------------.
| topo::adj_higher_face_fwd_iter<D>. |
diff --git a/milena/mln/topo/adj_lower_face_iter.hh b/milena/mln/topo/adj_lower_face_iter.hh
index e7010db..a903460 100644
--- a/milena/mln/topo/adj_lower_face_iter.hh
+++ b/milena/mln/topo/adj_lower_face_iter.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -56,7 +57,7 @@ namespace mln
} // end of namespace mln::topo::internal
template <unsigned D>
- struct algebraic_face;
+ class algebraic_face;
/*-----------------------------------.
diff --git a/milena/mln/topo/algebraic_face.hh b/milena/mln/topo/algebraic_face.hh
index 5cf9da5..bcedcba 100644
--- a/milena/mln/topo/algebraic_face.hh
+++ b/milena/mln/topo/algebraic_face.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -56,7 +57,7 @@ namespace mln
/// Contrary to an mln::topo::algebraic_n_face, the dimension of an
/// mln::topo::algebraic_face is not fixed.
template <unsigned D>
- struct algebraic_face : public face<D>
+ class algebraic_face : public face<D>
{
typedef face<D> super_;
diff --git a/milena/mln/topo/complex.hh b/milena/mln/topo/complex.hh
index 3662396..9cfd266 100644
--- a/milena/mln/topo/complex.hh
+++ b/milena/mln/topo/complex.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -961,6 +962,8 @@ namespace mln
{
// If we reached this method, then N should be 0.
mln_precondition(n == 0);
+ // Prevent ``unused variable'' warnings when NDEBUG is defined.
+ (void) n;
return f(faces_);
}
diff --git a/milena/mln/topo/face.hh b/milena/mln/topo/face.hh
index 98b81c7..da95019 100644
--- a/milena/mln/topo/face.hh
+++ b/milena/mln/topo/face.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -60,7 +61,7 @@ namespace mln
/// Contrary to an mln::topo::n_face, the dimension of an
/// mln::topo::face is not fixed.
template <unsigned D>
- struct face
+ class face
{
public:
// The type of the complex this handle points to.
diff --git a/milena/mln/topo/face_data.hh b/milena/mln/topo/face_data.hh
index 6a7bd8e..de8028b 100644
--- a/milena/mln/topo/face_data.hh
+++ b/milena/mln/topo/face_data.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -115,8 +116,8 @@ namespace mln
void connect_lower_dim_face(const algebraic_n_face<N - 1, D>& f);
private:
- friend class mln::topo::internal::lower_dim_faces_set_mixin<N, D>;
- friend class mln::topo::internal::lower_dim_adj_faces_if_dim_matches_<N, D>;
+ friend struct mln::topo::internal::lower_dim_faces_set_mixin<N, D>;
+ friend struct mln::topo::internal::lower_dim_adj_faces_if_dim_matches_<N, D>;
friend lower_dim_faces_type
mln::topo::n_face<N, D>::lower_dim_adj_faces() const;
@@ -133,8 +134,8 @@ namespace mln
void connect_higher_dim_face(const algebraic_n_face<N + 1, D>& f);
private:
- friend class mln::topo::internal::higher_dim_faces_set_mixin<N, D>;
- friend class mln::topo::internal::higher_dim_adj_faces_if_dim_matches_<N, D>;
+ friend struct mln::topo::internal::higher_dim_faces_set_mixin<N, D>;
+ friend struct mln::topo::internal::higher_dim_adj_faces_if_dim_matches_<N, D>;
friend higher_dim_faces_type
mln::topo::n_face<N, D>::higher_dim_adj_faces() const;
diff --git a/milena/mln/value/lut_vec.hh b/milena/mln/value/lut_vec.hh
index 7886dc1..b86e541 100644
--- a/milena/mln/value/lut_vec.hh
+++ b/milena/mln/value/lut_vec.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2010 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -135,7 +136,7 @@ namespace mln
template <typename S, typename T>
inline
unsigned
- lut_vec<S,T>::index_of(const T& v) const
+ lut_vec<S,T>::index_of(const T& /* v */) const
{
mln_invariant(0); // FIXME
return 0;
--
1.7.2.5
1
0

last-svn-commit-996-g6fa9f28 Make SCRIBO's copyright headers uniform.
by Roland Levillain 14 Sep '11
by Roland Levillain 14 Sep '11
14 Sep '11
* tests/data.hh.in: Here.
---
scribo/ChangeLog | 6 ++++++
scribo/tests/data.hh.in | 28 +++++++++++++---------------
2 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index 23025bc..b0cf043 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Make SCRIBO's copyright headers uniform.
+
+ * tests/data.hh.in: Here.
+
2011-09-14 Roland Levillain <roland(a)lrde.epita.fr>
Fix the distcleancheck target.
diff --git a/scribo/tests/data.hh.in b/scribo/tests/data.hh.in
index 5966fba..599f357 100644
--- a/scribo/tests/data.hh.in
+++ b/scribo/tests/data.hh.in
@@ -1,30 +1,28 @@
// Copyright (C) 2008, 2011 EPITA Research and Development Laboratory
// (LRDE)
//
-// This file is part of the Olena Library. This library is free
-// software; you can redistribute it and/or modify it under the terms
-// of the GNU General Public License version 2 as published by the
-// Free Software Foundation.
+// This file is part of Olena.
//
-// This library is distributed in the hope that it will be useful,
+// Olena 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, version 2 of the License.
+//
+// Olena 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 library; see the file COPYING. If not, write to
-// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-// Boston, MA 02111-1307, USA.
+// along with Olena. If not, see <http://www.gnu.org/licenses/>.
//
// As a special exception, you may use this file as part of a free
-// software library without restriction. Specifically, if other files
+// software project without restriction. Specifically, if other files
// instantiate templates or use macros or inline functions from this
-// file, or you compile this file and link it with other files to
-// produce an executable, this file does not by itself cause the
-// resulting executable to be covered by the GNU General Public
-// License. This exception does not however invalidate any other
-// reasons why the executable file might be covered by the GNU General
-// Public License.
+// file, or you compile this file and link it with other files to produce
+// an executable, this file does not by itself cause the resulting
+// executable to be covered by the GNU General Public License. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
#ifndef SCRIBO_TESTS_DATA_HH
# define SCRIBO_TESTS_DATA_HH
--
1.7.2.5
1
0
---
milena/ChangeLog | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 839b808..8946192 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -2684,12 +2684,12 @@
Merge doc/ Makefile helpers into doc/Makefile.am.
- * milena/doc/doc.mk,
- * milena/doc/examples/make.mk,
- * milena/doc/ref_guide/ref_guide.mk,
- * milena/doc/technical/technical.mk,
- * milena/doc/tutorial/tutorial.mk,
- * milena/doc/white_paper/white_paper.mk:
+ * doc/doc.mk,
+ * doc/examples/make.mk,
+ * doc/ref_guide/ref_guide.mk,
+ * doc/technical/technical.mk,
+ * doc/tutorial/tutorial.mk,
+ * doc/white_paper/white_paper.mk:
Remove and inline these files...
* doc/Makefile.am: ...here.
Do not include $(top_srcdir)/milena/tests/tests.mk.
@@ -2800,7 +2800,7 @@
Adjust targets' dependencies.
(fig-convert): Remove (phony) target.
Clean up.
- * milena/doc/examples-outputs.mk: New (generated file).
+ * doc/examples-outputs.mk: New (generated file).
2010-03-12 Roland Levillain <roland(a)lrde.epita.fr>
@@ -2978,7 +2978,7 @@
* doc/examples/ima-save.cc,
* doc/tools/sample_utils.hh:
Adjust as well.
- * milena/doc/examples/split/ima-save-1.cc.raw: Regen.
+ * doc/examples/split/ima-save-1.cc.raw: Regen.
2010-03-03 Roland Levillain <roland(a)lrde.epita.fr>
--
1.7.2.5
1
0