<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>2013/05/25 on Yano&#39;s digital garage</title>
    <link>https://www.bravotouring.com/~yano/archives/2013/05/25/</link>
    <description>Recent content in 2013/05/25 on Yano&#39;s digital garage</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 25 May 2013 22:06:19 +0900</lastBuildDate>
    <atom:link href="https://www.bravotouring.com/~yano/archives/2013/05/25/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>epgrec一式改修</title>
      <link>https://www.bravotouring.com/~yano/diary/it/20130525epgrec.htm</link>
      <pubDate>Sat, 25 May 2013 22:06:19 +0900</pubDate>
      <guid>https://www.bravotouring.com/~yano/diary/it/20130525epgrec.htm</guid>
      <description>&lt;p&gt;予てより&lt;span class=&#34;Path&#34;&gt;/var/log/messages&lt;/span&gt;に時々現れていた&lt;blockquote class=&#34;Log&#34;&gt;epgdump[5897]: segfault at 7fff3b687000 ip 0000000000403c55 sp 00007fff3b680cb0 error 4 in epgdump[400000+9000]&lt;/blockquote&gt;の頻度が高くなってきた気がした。&lt;/p&gt;&#xA;&lt;p&gt;結果的には2時間間隔で実行する番組表の取得に失敗しているわけだが、何回かに1回でもきちんと取得できていれば大筋で問題無い仕組みなのでスルーしていたのだが、&lt;a href=&#34;http://sourceforge.jp/projects/epgrec/&#34;&gt;epgrec プロジェクト - SourceForge.JP&lt;/a&gt;では特にアップデートされた形跡は無いものの、いろいろと有志が改修を試みているようなので、ひとつまじめに取り組んでみた。&#xA;&lt;blockquote class=&#34;Log&#34;&gt;&#xA;yano@GT110b:~/software/tv$ diff -bc epgdumpr2_20111001/ epgdumpr2/&lt;br/&gt;&#xA;diff -bc epgdumpr2_20111001/Makefile epgdumpr2/Makefile&lt;br/&gt;&#xA;*** epgdumpr2_20111001/Makefile 2009-03-15 21:33:35.000000000 +0900&lt;br/&gt;&#xA;--- epgdumpr2/Makefile  2013-05-17 12:00:24.366854210 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 1,10 ****&lt;br/&gt;&#xA;  TARGETS               = epgdump&lt;br/&gt;&#xA;  OBJ_TARGETS   = epgdump.o aribstr.o eit.o ts.o util.o sdt.o&lt;br/&gt;&#xA;  HEDDERDEPEND  = eit.h sdt.h aribstr.h ts.h util.h&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  LANG=C&lt;br/&gt;&#xA;  CC            = gcc&lt;br/&gt;&#xA;! CFLAGS                =  -std=c99 -O2 -Wall -g&lt;br/&gt;&#xA;  #LDFLAGS              = -pthread&lt;br/&gt;&#xA;  LIBS          =&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;--- 1,12 ----&lt;br/&gt;&#xA;+ PREFIX          = /usr/local&lt;br/&gt;&#xA;  TARGETS               = epgdump&lt;br/&gt;&#xA;  OBJ_TARGETS   = epgdump.o aribstr.o eit.o ts.o util.o sdt.o&lt;br/&gt;&#xA;  HEDDERDEPEND  = eit.h sdt.h aribstr.h ts.h util.h&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  LANG=C&lt;br/&gt;&#xA;  CC            = gcc&lt;br/&gt;&#xA;! #CFLAGS               =  -std=c99 -O2 -Wall -g&lt;br/&gt;&#xA;! CFLAGS          =  -std=c99 -O2 -Wall -g -Werror -Wno-return-type&lt;br/&gt;&#xA;  #LDFLAGS              = -pthread&lt;br/&gt;&#xA;  LIBS          =&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 21,23 ****&lt;br/&gt;&#xA;--- 23,28 ----&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  clean:&lt;br/&gt;&#xA;                rm -f core ${TARGETS} *.o&lt;br/&gt;&#xA;+&lt;br/&gt;&#xA;+ install:&lt;br/&gt;&#xA;+       install -m 755 ${TARGETS} ${PREFIX}/bin&lt;br/&gt;&#xA;diff -bc epgdumpr2_20111001/aribstr.c epgdumpr2/aribstr.c&lt;br/&gt;&#xA;*** epgdumpr2_20111001/aribstr.c        2009-11-18 12:35:20.000000000 +0900&lt;br/&gt;&#xA;--- epgdumpr2/aribstr.c 2013-05-17 11:27:45.868259545 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 318,324 ****&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;        fptr = code;&lt;br/&gt;&#xA;        tptr = xcode;&lt;br/&gt;&#xA;!       iconv(cd, &amp;fptr, &amp;inbyte, &amp;tptr, &amp;outbyte);&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;        iconv_close(cd);&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;--- 318,324 ----&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;        fptr = code;&lt;br/&gt;&#xA;        tptr = xcode;&lt;br/&gt;&#xA;!       iconv(cd, (char **)&amp;fptr, &amp;inbyte, &amp;tptr, &amp;outbyte);&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;        iconv_close(cd);&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 622,644 ****&lt;br/&gt;&#xA;  void LockingShiftGL(const BYTE byIndexG)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;        // LSx&lt;br/&gt;&#xA;!       m_pLockingGL = &amp;m_CodeG[byIndexG];&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  void LockingShiftGR(const BYTE byIndexG)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;        // LSxR&lt;br/&gt;&#xA;!       m_pLockingGR = &amp;m_CodeG[byIndexG];&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  void SingleShiftGL(const BYTE byIndexG)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;        // SSx&lt;br/&gt;&#xA;!       m_pSingleGL  = &amp;m_CodeG[byIndexG];&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;! const bool DesignationGSET(const BYTE byIndexG, const BYTE byCode)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;        // Gのグラフィックセットを割り当てる&lt;br/&gt;&#xA;        switch(byCode){&lt;br/&gt;&#xA;        case 0x42U      : m_CodeG[byIndexG] = CODE_KANJI;                               return true;    // Kanji&lt;br/&gt;&#xA;--- 622,646 ----&lt;br/&gt;&#xA;  void LockingShiftGL(const BYTE byIndexG)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;        // LSx&lt;br/&gt;&#xA;!       m_pLockingGL = &amp;m_CodeG[(int)byIndexG];&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  void LockingShiftGR(const BYTE byIndexG)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;        // LSxR&lt;br/&gt;&#xA;!       m_pLockingGR = &amp;m_CodeG[(int)byIndexG];&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  void SingleShiftGL(const BYTE byIndexG)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;        // SSx&lt;br/&gt;&#xA;!       m_pSingleGL  = &amp;m_CodeG[(int)byIndexG];&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;! const bool DesignationGSET(const BYTE byIndexG_arg, const BYTE byCode)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;+       int byIndexG = (int)byIndexG_arg;&lt;br/&gt;&#xA;+&lt;br/&gt;&#xA;        // Gのグラフィックセットを割り当てる&lt;br/&gt;&#xA;        switch(byCode){&lt;br/&gt;&#xA;        case 0x42U      : m_CodeG[byIndexG] = CODE_KANJI;                               return true;    // Kanji&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 660,667 ****&lt;br/&gt;&#xA;        }&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;! const bool DesignationDRCS(const BYTE byIndexG, const BYTE byCode)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;        // DRCSのグラフィックセットを割り当てる&lt;br/&gt;&#xA;        switch(byCode){&lt;br/&gt;&#xA;        case 0x40U      : m_CodeG[byIndexG] = CODE_UNKNOWN;                             return true;    // DRCS-0&lt;br/&gt;&#xA;--- 662,671 ----&lt;br/&gt;&#xA;        }&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;! const bool DesignationDRCS(const BYTE byIndexG_arg, const BYTE byCode)&lt;br/&gt;&#xA;  {&lt;br/&gt;&#xA;+       int byIndexG = (int)byIndexG_arg;&lt;br/&gt;&#xA;+&lt;br/&gt;&#xA;        // DRCSのグラフィックセットを割り当てる&lt;br/&gt;&#xA;        switch(byCode){&lt;br/&gt;&#xA;        case 0x40U      : m_CodeG[byIndexG] = CODE_UNKNOWN;                             return true;    // DRCS-0&lt;br/&gt;&#xA;diff -bc epgdumpr2_20111001/eit.h epgdumpr2/eit.h&lt;br/&gt;&#xA;*** epgdumpr2_20111001/eit.h    2009-11-18 12:23:01.000000000 +0900&lt;br/&gt;&#xA;--- epgdumpr2/eit.h     2013-05-17 11:27:45.868259545 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 28,34 ****&lt;br/&gt;&#xA;  typedef struct _EITbody {&lt;br/&gt;&#xA;        int event_id;&lt;br/&gt;&#xA;        char start_time[5];&lt;br/&gt;&#xA;!       char duration[3];&lt;br/&gt;&#xA;        int running_status;&lt;br/&gt;&#xA;        int free_CA_mode;&lt;br/&gt;&#xA;        int descriptors_loop_length;&lt;br/&gt;&#xA;--- 28,34 ----&lt;br/&gt;&#xA;  typedef struct _EITbody {&lt;br/&gt;&#xA;        int event_id;&lt;br/&gt;&#xA;        char start_time[5];&lt;br/&gt;&#xA;!       unsigned char duration[3];&lt;br/&gt;&#xA;        int running_status;&lt;br/&gt;&#xA;        int free_CA_mode;&lt;br/&gt;&#xA;        int descriptors_loop_length;&lt;br/&gt;&#xA;diff -bc epgdumpr2_20111001/ts.c epgdumpr2/ts.c&lt;br/&gt;&#xA;*** epgdumpr2_20111001/ts.c     2010-02-27 16:45:15.000000000 +0900&lt;br/&gt;&#xA;--- epgdumpr2/ts.c      2013-05-21 13:30:28.732126582 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 40,52 ****&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;        /* 戻すべき残りがあるか? */&lt;br/&gt;&#xA;        if(ridx &gt;= 0 &amp;&amp; secs[ridx].cont) {&lt;br/&gt;&#xA;                /* バッファチェック */&lt;br/&gt;&#xA;                if((secs[ridx].cur.payload[secs[ridx].curlen] &amp; 0xFF) == 0xFF) {&lt;br/&gt;&#xA;                        secs[ridx].cont = 0;&lt;br/&gt;&#xA;                        secs[ridx].seclen = 0;&lt;br/&gt;&#xA;                        secs[ridx].setlen = 0;&lt;br/&gt;&#xA;                        secs[ridx].curlen = 0;&lt;br/&gt;&#xA;!               } else {&lt;br/&gt;&#xA;                        len = secs[ridx].cur.payloadlen - secs[ridx].curlen;&lt;br/&gt;&#xA;                        /* 全部設定済みチェック */&lt;br/&gt;&#xA;                        if(len == 0) {&lt;br/&gt;&#xA;--- 40,56 ----&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;        /* 戻すべき残りがあるか? */&lt;br/&gt;&#xA;        if(ridx &gt;= 0 &amp;&amp; secs[ridx].cont) {&lt;br/&gt;&#xA;+ /*&lt;br/&gt;&#xA;+ printf(&#34;secs[%d].cur.cont=%d, secs[%d].cur.payloadlen=%d, secs[%d].curlen=%d, secs[%d].seclen=%d, len=%d\n&#34;,&lt;br/&gt;&#xA;+ ridx, secs[ridx].cur.cont, ridx, secs[ridx].cur.payloadlen, ridx, secs[ridx].curlen, ridx, secs[ridx].seclen, len);&lt;br/&gt;&#xA;+ */&lt;br/&gt;&#xA;                /* バッファチェック */&lt;br/&gt;&#xA;                if((secs[ridx].cur.payload[secs[ridx].curlen] &amp; 0xFF) == 0xFF) {&lt;br/&gt;&#xA;                        secs[ridx].cont = 0;&lt;br/&gt;&#xA;                        secs[ridx].seclen = 0;&lt;br/&gt;&#xA;                        secs[ridx].setlen = 0;&lt;br/&gt;&#xA;                        secs[ridx].curlen = 0;&lt;br/&gt;&#xA;!               } else if ( secs[ridx].curlen &lt;= secs[ridx].cur.payloadlen ){&lt;br/&gt;&#xA;                        len = secs[ridx].cur.payloadlen - secs[ridx].curlen;&lt;br/&gt;&#xA;                        /* 全部設定済みチェック */&lt;br/&gt;&#xA;                        if(len == 0) {&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 68,73 ****&lt;br/&gt;&#xA;--- 72,82 ----&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;                                boff = 12;&lt;br/&gt;&#xA;                                secs[ridx].seclen = getBit(&amp;secs[ridx].cur.payload[secs[ridx].curlen], &amp;boff, 12) + 3; // ヘッダ&lt;br/&gt;&#xA;+                               if(secs[ridx].seclen &gt; MAXSECLEN){&lt;br/&gt;&#xA;+                                       // セクションが MAXSECLEN より大きい時はこのセクションをスキップ&lt;br/&gt;&#xA;+                                       secs[ridx].cont = 0;&lt;br/&gt;&#xA;+                                       goto retry;&lt;br/&gt;&#xA;+                               }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;                                /*&lt;br/&gt;&#xA;                                  if(secs[ridx].seclen == 2334) {&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 96,101 ****&lt;br/&gt;&#xA;--- 105,116 ----&lt;br/&gt;&#xA;                                        goto retry; /* もう一回 */&lt;br/&gt;&#xA;                                }&lt;br/&gt;&#xA;                        }&lt;br/&gt;&#xA;+               } else {&lt;br/&gt;&#xA;+ /*&lt;br/&gt;&#xA;+ printf(&#34;secs[%d].cont=%d, secs[%d].cur.payloadlen=%d, secs[%d].curlen=%d, secs[%d].seclen=%d\n&#34;,&lt;br/&gt;&#xA;+ ridx, secs[ridx].cont, ridx, secs[ridx].cur.payloadlen, ridx, secs[ridx].curlen, ridx, secs[ridx].seclen);&lt;br/&gt;&#xA;+ */&lt;br/&gt;&#xA;+                       secs[ridx].cont = 0;&lt;br/&gt;&#xA;                }&lt;br/&gt;&#xA;        }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 203,209 ****&lt;br/&gt;&#xA;                }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;                memset(pk.payload, 0xFF, sizeof(pk.payload));&lt;br/&gt;&#xA;!               if(pk.payloadlen &lt;= 0){&lt;br/&gt;&#xA;                        continue;&lt;br/&gt;&#xA;                }&lt;br/&gt;&#xA;                memcpy(pk.payload, payptr, pk.payloadlen);&lt;br/&gt;&#xA;--- 218,224 ----&lt;br/&gt;&#xA;                }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;                memset(pk.payload, 0xFF, sizeof(pk.payload));&lt;br/&gt;&#xA;!               if( !(0 &lt; pk.payloadlen &amp;&amp; pk.payloadlen &lt;= sizeof(pk.payload)) ){&lt;br/&gt;&#xA;                        continue;&lt;br/&gt;&#xA;                }&lt;br/&gt;&#xA;                memcpy(pk.payload, payptr, pk.payloadlen);&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 227,232 ****&lt;br/&gt;&#xA;--- 242,252 ----&lt;br/&gt;&#xA;                                        /* 最初 セクション長を調べる */&lt;br/&gt;&#xA;                                        boff = 12;&lt;br/&gt;&#xA;                                        secs[i].seclen = getBit(secs[i].cur.payload, &amp;boff, 12) + 3; // ヘッダ;&lt;br/&gt;&#xA;+                                       if(secs[i].seclen &gt; MAXSECLEN){&lt;br/&gt;&#xA;+                                               /* セクション長が MAXSECLEN より長いときはこのセクションをスキップ */&lt;br/&gt;&#xA;+                                               secs[i].cont = 0;&lt;br/&gt;&#xA;+                                               goto retry;&lt;br/&gt;&#xA;+                                       }&lt;br/&gt;&#xA;                                        /*&lt;br/&gt;&#xA;                                          if(secs[i].seclen == 2334) {&lt;br/&gt;&#xA;                                          printf(&#34;aa&#34;);&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 274,280 ****&lt;br/&gt;&#xA;                }&lt;br/&gt;&#xA;        }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;!       //return NULL;&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  /* BonTest/TsStream.cppからのパクリ */&lt;br/&gt;&#xA;--- 294,300 ----&lt;br/&gt;&#xA;                }&lt;br/&gt;&#xA;        }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;!       return NULL;&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  /* BonTest/TsStream.cppからのパクリ */&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 311,316 ****&lt;br/&gt;&#xA;--- 331,342 ----&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  int checkcrc(SECcache *secs) {&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;+       /* regard a section with more than MAXSECLEN data as an error. */&lt;br/&gt;&#xA;+       if(secs-&gt;seclen &gt; MAXSECLEN) {&lt;br/&gt;&#xA;+               fprintf(stderr, &#34;SECcache overrun secs-&gt;seclen=%d\n&#34;, secs-&gt;seclen);&lt;br/&gt;&#xA;+               return 0;&lt;br/&gt;&#xA;+       }&lt;br/&gt;&#xA;+&lt;br/&gt;&#xA;        /* セクションの終りに置かれる4バイトのCRC32は、&lt;br/&gt;&#xA;           CRC計算の結果0になるように設定される。&lt;br/&gt;&#xA;           値が発生した場合は、エラーなので対象外にする */&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 320,323 ****&lt;br/&gt;&#xA;        }&lt;br/&gt;&#xA;        return 1;&lt;br/&gt;&#xA;  }&lt;br/&gt;&#xA;-&lt;br/&gt;&#xA;--- 346,348 ----&lt;br/&gt;&#xA;diff -bc epgdumpr2_20111001/util.h epgdumpr2/util.h&lt;br/&gt;&#xA;*** epgdumpr2_20111001/util.h   2009-03-08 16:53:42.000000000 +0900&lt;br/&gt;&#xA;--- epgdumpr2/util.h    2013-05-17 11:46:37.356293005 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 1,12 ****&lt;br/&gt;&#xA;--- 1,15 ----&lt;br/&gt;&#xA;  #ifndef UTIL_H&lt;br/&gt;&#xA;  #define UTILH 1&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;+ // try for segfault at 7fff77650000 ip 0000000000403c55 sp 00007fff7764ae30 error 4 in epgdump[400000+9000]&lt;br/&gt;&#xA;+ // #define MAXSECLEN (4096*4)&lt;br/&gt;&#xA;  #define MAXSECLEN 4096&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  #ifdef __cplusplus&lt;br/&gt;&#xA;  extern &#34;C&#34;{&lt;br/&gt;&#xA;  #endif /* __cplusplus */&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;+       int   strrep(char *buf, char *mae, char *ato);&lt;br/&gt;&#xA;        int   getBit(unsigned char *byte, int *pbit, int gbit);&lt;br/&gt;&#xA;        void  getStr(char *tostr, unsigned char *byte, int *pbit, int len);&lt;br/&gt;&#xA;        int   parseOTHERdesc(unsigned char *data);&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;しかし、この改修を行っても&lt;a href=&#34;http://www.news24.jp/&#34;&gt;日テレNEWS24&lt;/a&gt;の番組表が空っぽのままだったので更に調べてみたところ、&lt;a href=&#34;http://www.news24.jp/&#34;&gt;日テレNEWS24&lt;/a&gt;のチャンネルがCS24:350からCS8:349に移っていた。ついでに&lt;a href=&#34;http://www.disneychannel.jp/junior/&#34;&gt;ディズニージュニア&lt;/a&gt;がCS8:339でスタートしたのも思い出したので、そのへんも追加。差分は「&lt;a href=&#34;https://www.bravotouring.com/~yano/diary/it/20110715jsports.htm&#34;&gt;BS新チャンネル&lt;/a&gt;対応公式版」の&lt;a href=&#34;http://sourceforge.jp/projects/epgrec/downloads/53385/epgdumpr2_20111001.tar.gz/&#34;&gt;epgdumpr2_20111001.tar.gz&lt;/a&gt;に対する差分なので、&lt;a href=&#34;https://www.bravotouring.com/~yano/diary/it/20121108epgdump.htm&#34;&gt;2011年11月版のCSチャンネル対応&lt;/a&gt;も含む。&#xA;&lt;blockquote class=&#34;Log&#34;&gt;&#xA;diff -bc epgdumpr2_20111001/epgdump.c epgdumpr2/epgdump.c&lt;br/&gt;&#xA;*** epgdumpr2_20111001/epgdump.c        2011-10-01 17:35:13.000000000 +0900&lt;br/&gt;&#xA;--- epgdumpr2/epgdump.c 2013-05-21 18:10:05.744396429 +0900&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 78,88 ****&lt;br/&gt;&#xA;        { &#34;D-Life&#34;, &#34;4258.epgdata.ontvjapan&#34;, 18290, 4, 258},&lt;br/&gt;&#xA;        { &#34;NHK総合テレビジョン（東京）&#34;, &#34;4291.epgdata.ontvjapan&#34;, 17168, 4, 291},&lt;br/&gt;&#xA;        { &#34;NHK教育テレビジョン（東京）&#34;, &#34;4292.epgdata.ontvjapan&#34;, 17168, 4, 292},&lt;br/&gt;&#xA;        { &#34;日本テレビ&#34;, &#34;4294.epgdata.ontvjapan&#34;, 17169, 4, 294},&lt;br/&gt;&#xA;        { &#34;テレビ朝日&#34;, &#34;4295.epgdata.ontvjapan&#34;, 17169, 4, 295},&lt;br/&gt;&#xA;        { &#34;TBSテレビ&#34;, &#34;4296.epgdata.ontvjapan&#34;, 17169, 4, 296},&lt;br/&gt;&#xA;        { &#34;テレビ東京&#34;, &#34;4297.epgdata.ontvjapan&#34;, 17169, 4, 297},&lt;br/&gt;&#xA;-       { &#34;フジテレビ&#34;, &#34;4298.epgdata.ontvjapan&#34;, 17168, 4, 298},&lt;br/&gt;&#xA;        { &#34;放送大学ラジオ&#34;, &#34;4531.epgdata.ontvjapan&#34;, 18098, 4, 531},&lt;br/&gt;&#xA;        { &#34;WNI&#34;, &#34;4910.ontvjapan.com&#34;, 16626, 4, 910},&lt;br/&gt;&#xA;  };&lt;br/&gt;&#xA;--- 78,88 ----&lt;br/&gt;&#xA;        { &#34;D-Life&#34;, &#34;4258.epgdata.ontvjapan&#34;, 18290, 4, 258},&lt;br/&gt;&#xA;        { &#34;NHK総合テレビジョン（東京）&#34;, &#34;4291.epgdata.ontvjapan&#34;, 17168, 4, 291},&lt;br/&gt;&#xA;        { &#34;NHK教育テレビジョン（東京）&#34;, &#34;4292.epgdata.ontvjapan&#34;, 17168, 4, 292},&lt;br/&gt;&#xA;+       { &#34;フジテレビ&#34;, &#34;4298.epgdata.ontvjapan&#34;, 17168, 4, 298},&lt;br/&gt;&#xA;        { &#34;日本テレビ&#34;, &#34;4294.epgdata.ontvjapan&#34;, 17169, 4, 294},&lt;br/&gt;&#xA;        { &#34;テレビ朝日&#34;, &#34;4295.epgdata.ontvjapan&#34;, 17169, 4, 295},&lt;br/&gt;&#xA;        { &#34;TBSテレビ&#34;, &#34;4296.epgdata.ontvjapan&#34;, 17169, 4, 296},&lt;br/&gt;&#xA;        { &#34;テレビ東京&#34;, &#34;4297.epgdata.ontvjapan&#34;, 17169, 4, 297},&lt;br/&gt;&#xA;        { &#34;放送大学ラジオ&#34;, &#34;4531.epgdata.ontvjapan&#34;, 18098, 4, 531},&lt;br/&gt;&#xA;        { &#34;WNI&#34;, &#34;4910.ontvjapan.com&#34;, 16626, 4, 910},&lt;br/&gt;&#xA;  };&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 92,162 ****&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  static STATION csSta[] = {&lt;br/&gt;&#xA;!       { &#34;スターｃｈプラス&#34;, &#34;1002.ontvjapan.com&#34;, 24608, 6, 237},&lt;br/&gt;&#xA;!       { &#34;日本映画専門ｃｈＨＤ&#34;, &#34;1086.ontvjapan.com&#34;, 24608, 6, 239},&lt;br/&gt;&#xA;!       { &#34;フジテレビＮＥＸＴ&#34;, &#34;306ch.epgdata.ontvjapan&#34;, 24608, 6, 306},&lt;br/&gt;&#xA;        { &#34;ショップチャンネル&#34;, &#34;1059.ontvjapan.com&#34;, 24704, 6, 55},&lt;br/&gt;&#xA;!       { &#34;キッズステーションＨＤ&#34;, &#34;1045.ontvjapan.com&#34;, 24704, 6, 335},&lt;br/&gt;&#xA;!       { &#34;ザ・シネマ&#34;, &#34;1217.ontvjapan.com&#34;, 24736, 6, 228},&lt;br/&gt;&#xA;!       { &#34;スカチャンＨＤ８００&#34;, &#34;800ch.epgdata.ontvjapan&#34;, 24736, 6, 800},&lt;br/&gt;&#xA;!       { &#34;スカチャン８０１&#34;, &#34;801ch.epgdata.ontvjapan&#34;, 24736, 6, 801},&lt;br/&gt;&#xA;!       { &#34;スカチャン８０２&#34;, &#34;802ch.epgdata.ontvjapan&#34;, 24736, 6, 802},&lt;br/&gt;&#xA;!       { &#34;ｅ２プロモ&#34;, &#34;100ch.epgdata.ontvjapan&#34;, 28736, 7, 100},&lt;br/&gt;&#xA;!       { &#34;ホームドラマチャンネル&#34;, &#34;294ch.epgdata.ontvjapan&#34;, 28736, 7, 294},&lt;br/&gt;&#xA;!       { &#34;Ｊスポーツ　ＥＳＰＮ&#34;, &#34;1025.ontvjapan.com&#34;, 28736, 7, 256},&lt;br/&gt;&#xA;!       { &#34;ＦＯＸ&#34;, &#34;1016.ontvjapan.com&#34;, 28736, 7, 312},&lt;br/&gt;&#xA;!       { &#34;スペースシャワーＴＶ&#34;, &#34;1018.ontvjapan.com&#34;, 28736, 7, 322},&lt;br/&gt;&#xA;!       { &#34;カートゥーン　ネット&#34;, &#34;1046.ontvjapan.com&#34;, 28736, 7, 331},&lt;br/&gt;&#xA;!       { &#34;ディズニーＸＤ&#34;, &#34;1213.ontvjapan.com&#34;, 28736, 7, 334},&lt;br/&gt;&#xA;!       { &#34;東映チャンネル&#34;, &#34;1010.ontvjapan.com&#34;, 28768, 7, 221},&lt;br/&gt;&#xA;!       { &#34;衛星劇場&#34;, &#34;1005.ontvjapan.com&#34;, 28768, 7, 222},&lt;br/&gt;&#xA;!       { &#34;チャンネルＮＥＣＯ&#34;, &#34;1008.ontvjapan.com&#34;, 28768, 7, 223},&lt;br/&gt;&#xA;!       { &#34;洋画★シネフィル&#34;, &#34;1009.ontvjapan.com&#34;, 28768, 7, 224},&lt;br/&gt;&#xA;!       { &#34;スター・クラシック&#34;, &#34;1003.ontvjapan.com&#34;, 28768, 7, 238},&lt;br/&gt;&#xA;!       { &#34;時代劇専門チャンネル&#34;, &#34;1133.ontvjapan.com&#34;, 28768, 7, 292},&lt;br/&gt;&#xA;!       { &#34;スーパードラマ&#34;, &#34;1006.ontvjapan.com&#34;, 28768, 7, 310},&lt;br/&gt;&#xA;!       { &#34;ＡＸＮ&#34;, &#34;1014.ontvjapan.com&#34;, 28768, 7, 311},&lt;br/&gt;&#xA;!       { &#34;ナショジオチャンネル&#34;, &#34;1204.ontvjapan.com&#34;, 28768, 7, 343},&lt;br/&gt;&#xA;!       { &#34;ワンテンポータル&#34;, &#34;110ch.epgdata.ontvjapan&#34;, 28864, 7, 110},&lt;br/&gt;&#xA;!       { &#34;ゴルフチャンネル&#34;, &#34;1028.ontvjapan.com&#34;, 28864, 7, 260},&lt;br/&gt;&#xA;!       { &#34;テレ朝チャンネル&#34;, &#34;1092.ontvjapan.com&#34;, 28864, 7, 303},&lt;br/&gt;&#xA;!       { &#34;ＭＴＶ&#34;, &#34;1019.ontvjapan.com&#34;, 28864, 7, 323},&lt;br/&gt;&#xA;!       { &#34;ミュージック・エア&#34;, &#34;1024.ontvjapan.com&#34;, 28864, 7, 324},&lt;br/&gt;&#xA;!       { &#34;朝日ニュースター&#34;, &#34;1067.ontvjapan.com&#34;, 28864, 7, 352},&lt;br/&gt;&#xA;!       { &#34;ＢＢＣワールド&#34;, &#34;1070.ontvjapan.com&#34;, 28864, 7, 353},&lt;br/&gt;&#xA;!       { &#34;ＣＮＮｊ&#34;, &#34;1069.ontvjapan.com&#34;, 28864, 7, 354},&lt;br/&gt;&#xA;!       { &#34;Ｊスポーツ　１&#34;, &#34;1041.ontvjapan.com&#34;, 28896, 7, 251},&lt;br/&gt;&#xA;!       { &#34;Ｊスポーツ　２&#34;, &#34;1042.ontvjapan.com&#34;, 28896, 7, 252},&lt;br/&gt;&#xA;!       { &#34;ＪスポーツＰｌｕｓＨ&#34;, &#34;1043.ontvjapan.com&#34;, 28896, 7, 253},&lt;br/&gt;&#xA;!       { &#34;ＧＡＯＲＡ&#34;, &#34;1026.ontvjapan.com&#34;, 28896, 7, 254},&lt;br/&gt;&#xA;!       { &#34;ｓｋｙ・Ａスポーツ＋&#34;, &#34;1040.ontvjapan.com&#34;, 28896, 7, 255},&lt;br/&gt;&#xA;!       { &#34;宝塚プロモチャンネル&#34;, &#34;101ch.epgdata.ontvjapan&#34;, 28928, 7, 101},&lt;br/&gt;&#xA;!       { &#34;ＳＫＹ・ＳＴＡＧＥ&#34;, &#34;1207.ontvjapan.com&#34;, 28928, 7, 290},&lt;br/&gt;&#xA;        { &#34;チャンネル銀河&#34;, &#34;305ch.epgdata.ontvjapan&#34;, 28928, 7, 305},&lt;br/&gt;&#xA;!       { &#34;ＡＴ-Ｘ&#34;, &#34;1201.ontvjapan.com&#34;, 28928, 7, 333},&lt;br/&gt;&#xA;!       { &#34;ヒストリーチャンネル&#34;, &#34;1050.ontvjapan.com&#34;, 28928, 7, 342},&lt;br/&gt;&#xA;!       { &#34;スカチャン８０３&#34;, &#34;803ch.epgdata.ontvjapan&#34;, 28928, 7, 803},&lt;br/&gt;&#xA;!       { &#34;スカチャン８０４&#34;, &#34;804ch.epgdata.ontvjapan&#34;, 28928, 7, 804},&lt;br/&gt;&#xA;!       { &#34;ムービープラスＨＤ&#34;, &#34;1007.ontvjapan.com&#34;, 28960, 7, 240},&lt;br/&gt;&#xA;        { &#34;ゴルフネットワーク&#34;, &#34;1027.ontvjapan.com&#34;, 28960, 7, 262},&lt;br/&gt;&#xA;!       { &#34;ＬａＬａ　ＨＤ&#34;, &#34;1074.ontvjapan.com&#34;, 28960, 7, 314},&lt;br/&gt;&#xA;!       { &#34;フジテレビＯＮＥ&#34;, &#34;1073.ontvjapan.com&#34;, 28992, 7, 307},&lt;br/&gt;&#xA;!       { &#34;フジテレビＴＷＯ&#34;, &#34;1072.ontvjapan.com&#34;, 28992, 7, 308},&lt;br/&gt;&#xA;!       { &#34;アニマックス&#34;, &#34;1047.ontvjapan.com&#34;, 28992, 7, 332},&lt;br/&gt;&#xA;!       { &#34;ディスカバリー&#34;, &#34;1062.ontvjapan.com&#34;, 28992, 7, 340},&lt;br/&gt;&#xA;!       { &#34;アニマルプラネット&#34;, &#34;1193.ontvjapan.com&#34;, 28992, 7, 341},&lt;br/&gt;&#xA;!       { &#34;Ｃ-ＴＢＳウエルカム&#34;, &#34;160ch.epgdata.ontvjapan&#34;, 29024, 7, 160},&lt;br/&gt;&#xA;!       { &#34;ＱＶＣ&#34;, &#34;1120.ontvjapan.com&#34;, 29024, 7, 161},&lt;br/&gt;&#xA;!       { &#34;プライム３６５．ＴＶ&#34;, &#34;185ch.epgdata.ontvjapan&#34;, 29024, 7, 185},&lt;br/&gt;&#xA;!       { &#34;ファミリー劇場&#34;, &#34;1015.ontvjapan.com&#34;, 29024, 7, 293},&lt;br/&gt;&#xA;!       { &#34;ＴＢＳチャンネル&#34;, &#34;3201.ontvjapan.com&#34;, 29024, 7, 301},&lt;br/&gt;&#xA;!       { &#34;ディズニーチャンネル&#34;, &#34;1090.ontvjapan.com&#34;, 29024, 7, 304},&lt;br/&gt;&#xA;!       { &#34;MUSIC ON! TV&#34;, &#34;1022.ontvjapan.com&#34;, 29024, 7, 325},&lt;br/&gt;&#xA;!       { &#34;ＴＢＳニュースバード&#34;, &#34;1076.ontvjapan.com&#34;, 29024, 7, 351},&lt;br/&gt;&#xA;!       { &#34;日テレＧ＋ＨＤ&#34;, &#34;1068.ontvjapan.com&#34;, 29056, 7, 257},&lt;br/&gt;&#xA;        { &#34;日テレプラス&#34;, &#34;300ch.epgdata.ontvjapan&#34;, 29056, 7, 300},&lt;br/&gt;&#xA;!       { &#34;Music Japan TV&#34;, &#34;1208.ontvjapan.com&#34;, 29056, 7, 321},&lt;br/&gt;&#xA;!       { &#34;日テレＮＥＷＳ２４&#34;, &#34;2002.ontvjapan.com&#34;, 29056, 7, 350},&lt;br/&gt;&#xA;        { &#34;旅チャンネル&#34;, &#34;1052.ontvjapan.com&#34;, 29056, 7, 362},&lt;br/&gt;&#xA;  };&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;--- 92,159 ----&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;  static STATION csSta[] = {&lt;br/&gt;&#xA;! /* ND2 */&lt;br/&gt;&#xA;!       { &#34;TBSチャンネル&#34;, &#34;3201.ontvjapan.com&#34;, 24608, 6, 296},&lt;br/&gt;&#xA;!       { &#34;テレ朝チャンネル&#34;, &#34;1092.ontvjapan.com&#34;, 24608, 6, 298},&lt;br/&gt;&#xA;!       { &#34;朝日ニュースター&#34;, &#34;1067.ontvjapan.com&#34;, 24608, 6, 299},&lt;br/&gt;&#xA;! /* ND4 */&lt;br/&gt;&#xA;!       { &#34;e2プロモ&#34;, &#34;100ch.epgdata.ontvjapan&#34;, 28736, 7, 100},&lt;br/&gt;&#xA;!       { &#34;ザ・シネマ&#34;, &#34;1217.ontvjapan.com&#34;, 28736, 7, 227},&lt;br/&gt;&#xA;!       { &#34;チャンネルNECO&#34;, &#34;1008.ontvjapan.com&#34;, 28736, 7, 223},&lt;br/&gt;&#xA;!       { &#34;ヒストリーチャンネル&#34;, &#34;1050.ontvjapan.com&#34;, 28736, 7, 342},&lt;br/&gt;&#xA;!       { &#34;スカイ・A Sports+&#34;, &#34;1040.ontvjapan.com&#34;, 28736, 7, 250},&lt;br/&gt;&#xA;! /* ND6 */&lt;br/&gt;&#xA;!       { &#34;ディスカバリー&#34;, &#34;1062.ontvjapan.com&#34;, 28768, 7, 340},&lt;br/&gt;&#xA;!       { &#34;アニマルプラネット&#34;, &#34;1193.ontvjapan.com&#34;, 28768, 7, 341},&lt;br/&gt;&#xA;!       { &#34;ホームドラマチャンネル&#34;, &#34;294ch.epgdata.ontvjapan&#34;, 28768, 7, 294},&lt;br/&gt;&#xA;!       { &#34;MTV&#34;, &#34;1019.ontvjapan.com&#34;, 28768, 7, 323},&lt;br/&gt;&#xA;!       { &#34;CNNJ&#34;, &#34;1069.ontvjapan.com&#34;, 28768, 7, 354},&lt;br/&gt;&#xA;! /* ND8 */&lt;br/&gt;&#xA;        { &#34;ショップチャンネル&#34;, &#34;1059.ontvjapan.com&#34;, 24704, 6, 55},&lt;br/&gt;&#xA;!       { &#34;東映チャンネル&#34;, &#34;1010.ontvjapan.com&#34;, 24704, 6, 218},&lt;br/&gt;&#xA;!       { &#34;衛星劇場&#34;, &#34;1005.ontvjapan.com&#34;, 24704, 6, 219},&lt;br/&gt;&#xA;!       { &#34;ミュージック・エア&#34;, &#34;1024.ontvjapan.com&#34;, 24704, 6, 326},&lt;br/&gt;&#xA;!       &lt;span class=&#34;Topics&#34;&gt;{ &#34;ディズニージュニア&#34;, &#34;339ch.epgdata.ontvjapan&#34;, 24704, 6, 339},&lt;/span&gt;&lt;br/&gt;&#xA;!       &lt;span class=&#34;Topics&#34;&gt;{ &#34;日テレNEWS24&#34;, &#34;2002.ontvjapan.com&#34;, 24704, 6, 349},&lt;/span&gt;&lt;br/&gt;&#xA;! /* ND10 */&lt;br/&gt;&#xA;!       { &#34;スカチャン0HD&#34;, &#34;800ch.epgdata.ontvjapan&#34;, 24736, 6, 800},&lt;br/&gt;&#xA;!       { &#34;スカチャン1HD&#34;, &#34;801ch.epgdata.ontvjapan&#34;, 24736, 6, 801},&lt;br/&gt;&#xA;!       { &#34;スカチャン2&#34;, &#34;802ch.epgdata.ontvjapan&#34;, 24736, 6, 802},&lt;br/&gt;&#xA;!       { &#34;スカチャン3&#34;, &#34;803ch.epgdata.ontvjapan&#34;, 24736, 6, 805},&lt;br/&gt;&#xA;! /* ND12 */&lt;br/&gt;&#xA;!       { &#34;キッズステーションHD&#34;, &#34;1045.ontvjapan.com&#34;, 28864, 7, 330},&lt;br/&gt;&#xA;!       { &#34;GAORA&#34;, &#34;1026.ontvjapan.com&#34;, 28864, 7, 254},&lt;br/&gt;&#xA;!       { &#34;MUSIC ON! TV&#34;, &#34;1022.ontvjapan.com&#34;, 28864, 7, 325},&lt;br/&gt;&#xA;! /* ND14 */&lt;br/&gt;&#xA;!       { &#34;時代劇専門チャンネル&#34;, &#34;1133.ontvjapan.com&#34;, 28896, 7, 292},&lt;br/&gt;&#xA;!       { &#34;ファミリー劇場&#34;, &#34;1015.ontvjapan.com&#34;, 28896, 7, 293},&lt;br/&gt;&#xA;!       { &#34;スーパー！ドラマTV&#34;, &#34;1006.ontvjapan.com&#34;, 28896, 7, 310},&lt;br/&gt;&#xA;! /* ND16 */&lt;br/&gt;&#xA;!       { &#34;SKY STAGE&#34;, &#34;1207.ontvjapan.com&#34;, 28928, 7, 290},&lt;br/&gt;&#xA;        { &#34;チャンネル銀河&#34;, &#34;305ch.epgdata.ontvjapan&#34;, 28928, 7, 305},&lt;br/&gt;&#xA;!       { &#34;AT-X&#34;, &#34;1201.ontvjapan.com&#34;, 28928, 7, 333},&lt;br/&gt;&#xA;!       { &#34;AXN&#34;, &#34;1014.ontvjapan.com&#34;, 28928, 7, 311},&lt;br/&gt;&#xA;!       { &#34;ナショジオチャンネル&#34;, &#34;1204.ontvjapan.com&#34;, 28928, 7, 343},&lt;br/&gt;&#xA;!       { &#34;BBCワールドニュース&#34;, &#34;1070.ontvjapan.com&#34;, 28928, 7, 353},&lt;br/&gt;&#xA;! /* ND18 */&lt;br/&gt;&#xA;!       { &#34;ムービープラスHD&#34;, &#34;1007.ontvjapan.com&#34;, 28960, 7, 240},&lt;br/&gt;&#xA;        { &#34;ゴルフネットワーク&#34;, &#34;1027.ontvjapan.com&#34;, 28960, 7, 262},&lt;br/&gt;&#xA;!       { &#34;LaLa HD&#34;, &#34;1074.ontvjapan.com&#34;, 28960, 7, 314},&lt;br/&gt;&#xA;! /* ND20 */&lt;br/&gt;&#xA;!       { &#34;フジテレビONE&#34;, &#34;1073.ontvjapan.com&#34;, 28992, 7, 307},&lt;br/&gt;&#xA;!       { &#34;フジテレビTWO&#34;, &#34;1072.ontvjapan.com&#34;, 28992, 7, 308},&lt;br/&gt;&#xA;!       { &#34;フジテレビNEXT&#34;, &#34;306ch.epgdata.ontvjapan&#34;, 28992, 7, 309},&lt;br/&gt;&#xA;! /* ND22 */&lt;br/&gt;&#xA;!       { &#34;QVC&#34;, &#34;1120.ontvjapan.com&#34;, 29024, 7, 161},&lt;br/&gt;&#xA;!       { &#34;TBSニュースバード&#34;, &#34;1076.ontvjapan.com&#34;, 29024, 7, 351},&lt;br/&gt;&#xA;!       { &#34;FOX&#34;, &#34;1016.ontvjapan.com&#34;, 29024, 7, 312},&lt;br/&gt;&#xA;!       { &#34;スペースシャワーTV&#34;, &#34;1018.ontvjapan.com&#34;, 29024, 7, 322},&lt;br/&gt;&#xA;!       { &#34;カートゥーン ネットワーク&#34;, &#34;1046.ontvjapan.com&#34;, 29024, 7, 331},&lt;br/&gt;&#xA;! /* ND 24*/&lt;br/&gt;&#xA;!       { &#34;日テレG+HD&#34;, &#34;1068.ontvjapan.com&#34;, 29056, 7, 257},&lt;br/&gt;&#xA;        { &#34;日テレプラス&#34;, &#34;300ch.epgdata.ontvjapan&#34;, 29056, 7, 300},&lt;br/&gt;&#xA;!       { &#34;FOXムービー プレミアム&#34;, &#34;229ch.epgdata.ontvjapan&#34;, 29056, 7, 229},&lt;br/&gt;&#xA;!       { &#34;スペースシャワーTVプラス&#34;, &#34;321ch.epgdata.ontvjapan&#34;, 29056, 7, 321},&lt;br/&gt;&#xA;        { &#34;旅チャンネル&#34;, &#34;1052.ontvjapan.com&#34;, 29056, 7, 362},&lt;br/&gt;&#xA;  };&lt;br/&gt;&#xA;&lt;br/&gt;&#xA;***************&lt;br/&gt;&#xA;*** 352,357 ****&lt;br/&gt;&#xA;--- 349,358 ----&lt;br/&gt;&#xA;                staCount = csStaCount;&lt;br/&gt;&#xA;                act = 0 ;&lt;br/&gt;&#xA;        }else{&lt;br/&gt;&#xA;+               if(infile == NULL){&lt;br/&gt;&#xA;+                       fprintf(stderr, &#34;Can&#39;t open file: %s\n&#34;, file);&lt;br/&gt;&#xA;+                       return 1;&lt;br/&gt;&#xA;+               }&lt;br/&gt;&#xA;                act = 1 ;&lt;br/&gt;&#xA;                svttop = calloc(1, sizeof(SVT_CONTROL));&lt;br/&gt;&#xA;                GetSDT(infile, svttop, secs, SECCOUNT);&#xA;&lt;/blockquote&gt;&#xA;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
