home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c160 / 1.ddi / SOURCE / M4CONVER.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-11-21  |  2.3 KB  |  107 lines

  1. /* m4convert.c   (c)Copyright Sequiter Software Inc., 1987-1990.  All rights reserved. */
  2.  
  3. #include "p4misc.h"
  4. #include "d4all.h"
  5. #include "u4error.h"
  6.  
  7. #include <string.h>
  8. #ifndef UNIX
  9. #include <io.h>
  10. #endif
  11.  
  12. typedef  struct  memo_header_st
  13. {
  14.    long  next_block ;
  15.    char  zero[4] ;
  16.    char  file_name[8] ;
  17.    char  zero2[2] ;
  18.    int   x102 ;
  19.    int   block_size ;
  20.    char  zero3[2] ;
  21. }  MEMO_HEADER ;
  22.  
  23.  
  24. m4renamed( char *file_name )
  25. {
  26.    int   rc, hand ;
  27.    MEMO_HEADER  hdr ;
  28.    char  name[90] ;
  29.  
  30.    u4name_full( name, file_name, "DBT" ) ;
  31.    hand =  u4open( name, 0 ) ;
  32.    if ( hand < 0 )  return -1 ;
  33.  
  34.    lseek( hand, 0L, 0 ) ;
  35.    rc =  read( hand, (char *) &hdr, (unsigned int) sizeof(hdr) ) ;
  36.    if ( rc != (int) sizeof(hdr) )
  37.    {
  38.       u4error( E_READ, "Memo File: ", file_name, (char *) 0 ) ;
  39.       return -1 ;
  40.    }
  41.  
  42.    u4name_part( hdr.file_name, file_name, 0,0 ) ;
  43.    u4upper( hdr.file_name ) ;
  44.  
  45.    lseek( hand, 0L, 0 ) ;
  46.    rc =  write( hand, (char *) &hdr, (unsigned int) sizeof(hdr) ) ;
  47.    if ( rc != (int) sizeof(hdr) )
  48.    {
  49.       u4error( E_WRITE, "Memo File: ", file_name, (char *) 0 ) ;
  50.       return -1 ;
  51.    }
  52.  
  53.    close( hand ) ;
  54.  
  55.    return 0 ;
  56. }
  57.  
  58.  
  59. m4convert( char *file_name )
  60. {
  61.    char   memo_name[90] ;
  62.    int    hand, rc ;
  63.    MEMO_HEADER  m_hdr ;
  64.    long   len ;
  65.  
  66.    memset( (char *) &m_hdr, 0, sizeof(m_hdr) ) ;
  67.  
  68.    u4name_part( memo_name, file_name, 1,0 ) ;
  69.    u4name_full( memo_name, memo_name, ".DBT" ) ;
  70.  
  71.    hand =  u4open( memo_name, 0 ) ;
  72.    if ( hand < 0 )  return -1 ;
  73.  
  74.    lseek( hand, 0L, 0 ) ;
  75.    rc =  read( hand, (char *) &m_hdr, (unsigned int) sizeof(long) ) ;
  76.    if ( rc != sizeof(long) )
  77.    {
  78.       u4error( E_READ, "Memo File: ", file_name, (char *) 0 ) ;
  79.       return -1 ;
  80.    }
  81.  
  82.    if ( (len =  filelength(hand)) < 0L)
  83.    {
  84.       u4error( E_INTERNAL, (char *) 0 ) ;
  85.       return -1L ;
  86.    }
  87.    m_hdr.next_block =  (len+0x1FF)/0x200 ;
  88.  
  89.    u4name_part( m_hdr.file_name, file_name, 0,0 ) ;
  90.    u4upper( m_hdr.file_name ) ;
  91.    m_hdr.x102       =  0x102 ;
  92.    m_hdr.block_size =  0x200 ;  /* 512 */
  93.  
  94.    lseek( hand, 0L, 0 ) ;
  95.    if ( write( hand, (char *) &m_hdr, (unsigned int) sizeof(m_hdr))
  96.                  != (int) sizeof(m_hdr) )
  97.    {
  98.       close( hand ) ;
  99.       u4error( E_WRITE, memo_name, (char *) 0 ) ;
  100.       return( -1 ) ;
  101.    }
  102.  
  103.    close( hand ) ;
  104.  
  105.    return 0 ;
  106. }
  107.