OSDN Git Service

penndingへ移動
authorMyun2 <myun2@nwhite.info>
Sat, 19 May 2012 08:27:32 +0000 (17:27 +0900)
committerMyun2 <myun2@nwhite.info>
Sat, 19 May 2012 08:27:32 +0000 (17:27 +0900)
roast_bufsafe.h, roast_str.c

1  2 
roast/include/roast_bufsafe.h
roast/source/roast_str.c

diff --cc roast/include/roast_bufsafe.h
index c3c03ad,c3c03ad..0000000
deleted file mode 100644,100644
+++ /dev/null
@@@ -1,174 -1,174 +1,0 @@@
--/*    Roast+ License
--
--//    ### C compilable ###
--
--//    Safe\8cn\8aÖ\90\94 (\83o\83b\83t\83@\83I\81[\83o\81[\83\89\83\93\96h\8e~)
--//            - \83o\83b\83t\83@\82ð\89z\82¦\82æ\82¤\82Æ\82µ\82½\8fê\8d\87\82Í\81A\94[\82Ü\82è\90Ø\82ç\82È\82©\82Á\82½\95\8e\9a\97ñ\82ð\90Ø\82è\8eÌ\82Ä\82Ü\82·\81B
--*/
--#ifndef __SFJP_OPENMGL_roast_bufsafe_H__
--#define __SFJP_OPENMGL_roast_bufsafe_H__
--
--#include <stdio.h>
--#include <string.h>
--#include "roast_common.h"
--#include "roast_str.h"
--
--
--/*////////////////////////////////////////////////////////////////*/
--
--/*    \95\8e\9a\97ñ\83o\83b\83t\83@\82Ì\8dÅ\8cã\82ð\0\82É\82·\82é\81B */
--#define ROAST_STR_ZTERM(STR,BUFSIZE)          STR[BUFSIZE-1] = '\0'
--#define ROAST_STR_ZERO_TERM(STR,BUFSIZE)      ROAST_STR_ZTERM(STR,BUFSIZE)    /*      alias to ROAST_STR_ZTERM */
--
--
--/*////////////////////////////////////////////////////////////////*/
--
--/*    strcpy\82Ì\83Z\81[\83t\94Å */
--#define roast_safe_strcpy(dest,src,dest_memsize)              \
--      (ROAST_STR_ZTERM(dest,dest_memsize),                            \
--      strncpy( dest, src, dest_memsize-1 ))
--
--#define roast_safe_strcat(dest,src,dest_memsize)              \
--      (ROAST_STR_ZTERM(dest,dest_memsize),                            \
--      dest_memsize-1 - strlen(dest) >= 0 ?                            \
--              strncat( dest, src, dest_memsize-1 - strlen(dest) ) : dest)
--
--/*#define roast_safe_strcat(dest,src,dest_memsize)            \
--      ROAST_STR_ZTERM(dest,dest_memsize),                                     \
--      int copy_size = dest_memsize-1 - strlen(dest),          \
--      if ( copy_size < 0 )                                                            \
--              copy_size = 0,                                                                  \
--      strncat( dest, src, copy_size )*/
--
--#define roast_safe_strccpy(dest,src,c,dest_memsize)           \
--      (ROAST_STR_ZTERM(dest,dest_memsize),                            \
--      roast_strcncpy( dest, src, c, dest_memsize-1 ))
--
--
--/*    Auto Sizeof */
--#define ROAST_SAFE_STRCPY_AS(DEST,SRC)                roast_safe_strcpy(DEST,SRC,sizeof(DEST))
--#define ROAST_SAFE_STRCAT_AS(DEST,SRC)                roast_safe_strcat(DEST,SRC,sizeof(DEST))
--#define ROAST_SAFE_STRCCPY_AS(DEST,SRC,C)     roast_safe_strccpy(DEST,SRC,C,sizeof(DEST))
--
--
--/*////////////////////////////////////////////////////////////////*/
--
--
--/*  \88À\91S\82È delete, delete[], Release()  */
--#define ROAST_SAFE_DELETE(p)                  { if ( p != NULL ) { delete p; p=NULL; }}
--#define ROAST_SAFE_DELETE_ARY(p)              { if ( p != NULL ) { delete []p; p=NULL; }}
--#define ROAST_SAFE_DELETE_ARRAY(p)            { if ( p != NULL ) { delete []p; p=NULL; }}
--#define ROAST_SAFE_FREE(p)                            { if ( p != NULL ) { free(p); p=NULL; }}
--#define ROAST_SAFE_RELEASE(p)                 { if ( p != NULL ) { (p)->Release(); (p)=NULL; }}
--
--
--/*#define ROAST_SAFE_NEW(p)                           { if ( p != NULL ) { delete p; p=NULL; }}*/
--
--
--/*//////////////////////////////////////////////////////////////////////*/
--/*//////////////////////////////////////////////////////////////////////*/
--/*//////////////////////////////////////////////////////////////////////*/
--/*//////////////////////////////////////////////////////////////////////*/
--/*//////////////////////////////////////////////////////////////////////*/
--
--
--
--#ifdef ROAST_WIN32
--
--      /*///////////////////////////////////////////////////////////////////
--      //
--      //      VC\82Ì_snprintf\82ÍC99\82Ìsnprintf\82Æ\8b\93\93®\82ª\88á\82¤\82Ì\82Å\81A\82±\82ê\82ð\8f\80\8b\92\82³\82¹\82é
--      //
--      /////////////////////////////////////////////////////////////////////*/
--
--      __ROAST_EXTERN_C_START
--      
--      int roast_vc_vsnprintf_conformed_c99(
--              char *str, size_t size, const char *format, va_list ap );
--      
--      int roast_vc_snprintf_conformed_c99(
--              char *str, size_t size, const char *format, ... );
--      
--      __ROAST_EXTERN_C_END
--
--      #define roast_vsnprintf roast_vc_vsnprintf_conformed_c99
--      #define roast_snprintf roast_vc_snprintf_conformed_c99
--
--#else /* UNIX/Linux */
--
--      #define roast_vsnprintf vsnprintf
--      #define roast_snprintf snprintf
--
--#endif
--
--/*
--
--//    snprintf \82ð roast_snprintf \82É\82µ\82¿\82á\82¤
--//    \81i\81¦ _ROAST_NOT_SNPRINTF_REPLACES \82ðdefine\82·\82é\8e\96\82É\89ñ\94ð\89Â\94\\81j
--
--#ifndef _ROAST_NOT_SNPRINTF_REPLACES
--      #define vsnprintf roast_vsnprintf
--      #define snprintf roast_snprintf
--#endif//_ROAST_NOT_SNPRINTF_REPLACES
--
--*/
--
--/*////////////////////////////////////////////////////////////////*/
--
--#ifdef _ROAST_REMOVE_MACRO_NS
--
--      #define STR_ZTERM                               ROAST_STR_ZTERM
--      #define STR_ZERO_TERM                   ROAST_STR_ZERO_TERM
--      
--      #define safe_strcpy                             roast_safe_strcpy
--      #define safe_strcat                             roast_safe_strcat
--      #define safe_strccpy                    roast_safe_strccpy
--      
--      #define SAFE_STRCPY_AS                  ROAST_SAFE_STRCPY_AS
--      #define SAFE_STRCAT_AS                  ROAST_SAFE_STRCAT_AS
--      #define SAFE_STRCCPY_AS                 ROAST_SAFE_STRCCPY_AS
--
--/*
--      #define STR_ZTERM(DEST,SRC)                                     ROAST_STR_ZTERM(DEST,SRC)
--      #define STR_ZERO_TERM(DEST,SRC)                         ROAST_STR_ZERO_TERM(DEST,SRC)
--      
--      #define safe_strcpy(DEST,SRC,BUFSIZE)           roast_safe_strcpy(DEST,SRC,BUFSIZE)
--      #define safe_strcat(DEST,SRC,BUFSIZE)           roast_safe_strcat(DEST,SRC,BUFSIZE)
--      #define safe_strccpy(DEST,SRC,C,BUFSIZE)        roast_safe_strccpy(DEST,SRC,C,BUFSIZE)
--      
--      #define SAFE_STRCPY_AS(DEST,SRC)                        ROAST_SAFE_STRCPY_AS(DEST,SRC)
--      #define SAFE_STRCAT_AS(DEST,SRC)                        ROAST_SAFE_STRCAT_AS(DEST,SRC)
--      #define SAFE_STRCCPY_AS(DEST,SRC,C)                     ROAST_SAFE_STRCCPY_AS(DEST,SRC,C)
--*/
--
--      #ifndef _ROAST_NOT_SNPRINTF_REPLACES
--              #define vsnprintf roast_vsnprintf
--              #define snprintf roast_snprintf
--      #endif/*_ROAST_NOT_SNPRINTF_REPLACES*/
--      
--      
--      
--      #ifndef SAFE_DELETE
--              #define SAFE_DELETE                     ROAST_SAFE_DELETE
--      #endif
--      
--      #ifndef SAFE_DELETE_ARY
--              #define SAFE_DELETE_ARY         ROAST_SAFE_DELETE_ARY
--      #endif
--      
--      #ifndef SAFE_DELETE_ARRAY
--              #define SAFE_DELETE_ARRAY       ROAST_SAFE_DELETE_ARRAY
--      #endif
--      
--      #ifndef SAFE_RELEASE
--              #define SAFE_RELEASE            ROAST_SAFE_RELEASE
--      #endif
--
--#endif
--
--/*
--namespace roast{
--}
--*/
--
--#endif/*__SFJP_OPENMGL_roast_bufsafe_H__*/
diff --cc roast/source/roast_str.c
index 5403a8a,5403a8a..0000000
deleted file mode 100644,100644
+++ /dev/null
@@@ -1,315 -1,315 +1,0 @@@
--/*    Roast+ License v0.1
--
--//    ### C compilable ###
--*/
--#include <stdio.h>
--#include <string.h>
--#include <stdlib.h>
--#include "roast_str.h"
--#include "roast_bufsafe.h"
--
--__ROAST_EXTERN_C_START
--
--
--/*  roast_strccpy  */
--char* roast_strccpy( char* to, const char* from, const char c )
--{
--      char *to_pre = to;
--      
--      /*for( ; *from != c; from++, to++ )*/
--      for( ; *from != c && *from != '\0'; from++, to++ )      /*      \82È\82ñ\82Å\93ü\82Á\82Ä\82È\82¢\82ñ\82¾\82Á\82¯\81H\81i\82¢\82Â\82©\82Íc\82É\82È\82é\82©\82ç\81H */
--              *to = *from;
--      
--      *to = '\0';
--      
--      return to_pre;
--}
--
--
--
--/*    roast_strcncpy  */
--/*    \8cÃ\82¢\83o\81[\83W\83\87\83\93\81Bstrncpy\82Æ\82©\82Æ\8b\93\93®\82ª\88á\82¤\81B\94p\8e~   */
--char* roast_strcncpy_Old1( char* to, const char* from, const char c, int n )
--{
--      char *to_pre = to;
--      const char* p_to_buflast = to + n - 1;
--      
--      for( ; *from != c && *from != '\0' && to != p_to_buflast; from++, to++ )
--              *to = *from;
--      
--      /*int i=0;
--      for( ; *from != c && *from != '\0' && i < n; from++, to++, i++ )
--              *to = *from;*/
--      
--      *to = '\0';
--      
--      return to_pre;
--}
--
--
--/*    roast_strcncpy  */
--char* roast_strcncpy( char* to, const char* from, const char c, int n )
--{
--      char *to_pre = to;
--      const char* p_to_buflast = to + n;
--      
--      for( ; *from != c && *from != '\0' && to < p_to_buflast; from++, to++ )
--              *to = *from;
--      
--      if ( *from != c )
--      {
--              for( ; to < p_to_buflast; to++ )
--                      *to = '\0';
--      }
--      
--      return to_pre;
--}
--
--/*    roast_strchrrpc  */
--char* roast_strchrrpc( char* buf, char from, char to )
--{
--      char *p = buf;
--
--      for(; *p != '\0' ; p++ )
--      {
--              if ( *p == from )
--                      *p = to;
--      }
--
--      return buf;
--}
--
--/*********************************************************************************************************/
--
--
--/*    roast_strrpc    */
--/*char* roast_strrpc( char* target_str, size_t str_bufsize, const char* keyword_from, const char* keyword_to )
--{
--      return str;
--}*/
--
--
--
--/*    \95\8e\9a\97ñ\92u\8a·\8aÖ\90\94\81B\93ü\97Í\8fo\97Í\83o\83b\83t\83@\82ª\93¯\82\8e\96\82É\82æ\82é\92x\82¢\83o\81[\83W\83\87\83\93\81B\94p\8e~      */
--char* roast_strrpc1( char* buf, unsigned int bufsize, const char* find_str, const char* new_str )
--//char* roast_strrpc( char *str, const char *target_str, const char *new_str, size_t size )
--{
--      const int find_len = strlen(find_str);          /*      find_str\82Ì\95\8e\9a\97ñ\92·\82ð\97\\82ß\8cv\8eZ\82µ\82Ä\82¨\82­\81i\89½\89ñ\82à\8eg\82¤\82Ì\82Å\81j*/
--      const int new_len = strlen(new_str);            /*      new_str\82Ì\95\8e\9a\97ñ\92·\82ð\97\\82ß\8cv\8eZ\82µ\82Ä\82¨\82­\81i\89½\89ñ\82à\8eg\82¤\82Ì\82Å\81j*/
--      const int diff_len = new_len - find_len;        /*      find_str\82Ænew_str\82Ì\8d·\95ª\95\8e\9a\97ñ\92·\82ð\97\\82ß\8cv\8eZ\82µ\82Ä\82¨\82­\81i\89½\89ñ\82à\8eg\82¤\82Ì\82Å\81j*/
--
--      char *p = buf;                                  /*      \8c»\8dÝ\88Ê\92u\82ð\8bL\89¯\82·\82é\82½\82ß\82Ì\83|\83C\83\93\83^\81i\95Ï\93®\81j*/
--      int buf_len = strlen(buf);              /*      \8c»\8dÝ\82Ì\83o\83b\83t\83@\95\8e\9a\97ñ\92·\81i\95Ï\93®\81j*/
--      /*int p_len = strlen(buf);               *      p\82©\82ç\82Ì\95\8e\9a\97ñ\92·\81i\95Ï\93®\81j-> \91å\82µ\82Ä\91¬\93x\89ü\91P\82³\82ê\82È\82³\82»\82¤\82¾\82Á\82½\82Ì\82Å\82â\82ß\82½  */
--
--      /*//////////////////////////////////////////////////////////////////////////////////////////////*/
--      
--      
--      /*      \8c\9f\8dõ\83\8b\81[\83v      */
--      while( NULL != (p = strstr(p, find_str)) )
--      {
--              /*      \92u\8a·\82·\82é\82Ì\82É\8f\\95ª\82È\83\81\83\82\83\8a\82ª\82 \82é\82©\81H      */
--              /*if ( strlen(p) + diff_len > bufsize-1 )       */
--              if ( buf_len + diff_len > (int)bufsize-1 )      /*      strlen()\82ð\97p\82¢\82È\82¢\8e\96\82É\82æ\82è\82æ\82è\8d\82\91¬\82É\81I\81c\82É\82È\82Á\82½\94¤\81B\81B\81B*/
--              {
--                      /*      \91«\82è\82È\82¢\82Ì\82Å\92\86\92f\81B\82Æ\8c¾\82¤\8ed\97l\82É\82·\82é\82©\81c\82Æ\82è\82 \82¦\82¸\81c      */
--                      return NULL;
--              }
--              
--
--              /*      \92u\8a·\82É\82æ\82è\88È\8d~\82Ì\95\8e\9a\97ñ\88Ê\92u\82ª\82¸\82ê\82é\8fê\8d\87(diff_len\82ª0\88È\8aO)\82Í\82¸\82ç\82µ\82Ä\82¨\82­   */
--              /*      \81i\88ø\90\94\8cv\8eZ\81A\8aÖ\90\94\8cÄ\82Ñ\8fo\82µ\82¾\82¯\82Å\82à\8c\8b\8d\\82È\83I\81[\83o\81[\83w\83b\83h\82É\82È\82é\82Æ\8ev\82¤\82ñ\82Å\81Aif\82Å\88Í\82Á\82½\95û\82ª\8cø\97¦\97Ç\82¢\82Æ\8ev\82¤\82ñ\82¾\82º\81B\81j    */
--              if ( diff_len != 0 )
--                      memmove( p + new_len, p + find_len, (buf_len-(p-buf)) - find_len + 1 ); /*      strlen()\82ð\97p\82¢\82È\82¢\8e\96\82É\82æ\82è\82æ\82è\8d\82\91¬\82É\81I\81c\82É\82È\82Á\82½\94¤\81B\81B\81B*/
--                      /*memmove( p + new_len, p + find_len, strlen(p) - find_len + 1 );       */
--                      /*memmove( p, p + diff_len, strlen(p) + 1 );    \81ª\82Ì\95û\82ª\97]\95ª\82È\83R\83s\81[\8ds\82í\82È\82¢\82Ì\82Å\8d\82\91¬\82©\81E\81E\81E\81B\82½\82¾\82µ\88ø\90\94\8cv\8eZ\82Ì\83R\83X\83g\82Í\82 \82é\82¯\82Ç\82È\81B*/
--
--
--              /*      \95\8e\9a\97ñ\82ð\8fã\8f\91\82«\82·\82é      */
--              memcpy( p, new_str, new_len );
--
--              /*      \83|\83C\83\93\83^\82ðnew_len\95ª\90i\82ß\82é */
--              p += new_len;
--
--              /*      buf_len\82à\8dX\90V   */
--              buf_len += diff_len;
--      }
--
--      return buf;
--}
--
--
--/************* V2 : Fast Version *****************/
--/*    \93ü\97Í\8fo\97Í\83o\83b\83t\83@\82ð\95Ê\81X\82Æ\82·\82é\8e\96\82É\82æ\82è\8d\82\91¬\82É\82È\82è\82Ü\82µ\82½\81B  */
--/*    \81\96\82±\82Á\82¿\82Í\83o\83b\83t\83@\83T\83C\83Y\82ð\83`\83F\83b\83N\82µ\82È\82¢\83o\81[\83W\83\87\83\93\82Å\82·\81B\83o\83b\83t\83@\83T\83C\83Y\82ð\83`\83F\83b\83N\82·\82é\82Ì\82Í roast_safe_strrpc2() \82Å\82·  */
--char* roast_strrpc2( char* outbuf, const char* inbuf, const char* find_str, const char* rpc_str )
--{
--      const unsigned int find_len = strlen(find_str);                 /*      find_str\82Ì\95\8e\9a\97ñ\92·\82ð\97\\82ß\8cv\8eZ\82µ\82Ä\82¨\82­\81i\89½\89ñ\82à\8eg\82¤\82Ì\82Å\81j*/
--      const unsigned int rpcstr_len = strlen(rpc_str);                /*      rpc_str\82Ì\95\8e\9a\97ñ\92·\82ð\97\\82ß\8cv\8eZ\82µ\82Ä\82¨\82­\81i\89½\89ñ\82à\8eg\82¤\82Ì\82Å\81j*/
--
--      const char *p_from = inbuf;
--      const char *p_from_next = NULL;
--      char *p_to = outbuf;
--      unsigned int copy_len = 0;              /*      \83R\83s\81[\92·\82ð\88ê\8e\9e\93I\82É\95Û\91\82·\82é\95Ï\90\94  */
--
--      /*//////////////////////////////////////////////////////////////////////////////////////////////*/
--      
--#define __ROAST_STRRPC__STRNCPY(FROM, COPY_LEN)       strncpy(p_to, FROM, COPY_LEN);
--/*#define __ROAST_STRRPC__STRNCPY(FROM, LEN)          {       \
--              if ( (p_to+LEN) > p_to_last ){  \
--                      strncpy(p_to, FROM, p_to_last - p_to - 1 );     \
--                      *(p_to_last-1) = '\0';  \
--                      break;  \
--              }else{  \
--                      strncpy(p_to, FROM, LEN);       \
--              }}*/
--
--      for(;;)
--      {
--              /*      \8c\9f\8dõ    */
--              p_from_next = strstr(p_from, find_str);
--
--
--              /*      \92u\8a·\91Î\8fÛ\82 \82è    */
--              if ( p_from_next != NULL )
--              {
--                      /*      \92u\8a·\82·\82é\95\8e\9a\97ñ\82Ì\91O\82Ü\82Å\82ðp_to\82É\83R\83s\81[    */
--                      copy_len = p_from_next - p_from;
--                      /*strncpy(p_to, p_from, copy_len);*/
--                      __ROAST_STRRPC__STRNCPY(p_from, copy_len);
--                      p_to += copy_len;
--
--                      /*      \92u\8a·\8cã\82Ì\95\8e\9a\97ñ\82ð\83R\83s\81[  */
--                      /*strncpy(p_to, rpc_str, rpcstr_len);*/
--                      __ROAST_STRRPC__STRNCPY(rpc_str, rpcstr_len);
--                      p_to += rpcstr_len;
--
--                      /*      p_from\82Ì\83I\83t\83Z\83b\83g\82ðp_from_next\81{find_len\82É     */
--                      p_from = p_from_next + find_len;
--              }
--
--
--              /*      \82à\82¤\82±\82ê\88È\8fã\92u\8a·\91Î\8fÛ\82Í\82È\82¢\82æ    */
--              else
--              {
--                      /*      \8cã\89½\95\8e\9a\83R\83s\81[\82·\82ê\82Î\82¢\82¢\82ñ\82¾    */
--                      copy_len = strlen(p_from);
--
--                      /*      \94c\88¬\81B\83R\83s\81[\82·\82é\82æ\81B\81i'\0'\8aÜ\82ß\82Ä\81j      */
--                      /*strncpy(p_to, p_from, n+1);*/
--                      __ROAST_STRRPC__STRNCPY(p_from, copy_len+1);
--
--                      /*      \8fI\82í\82è\82Á\82·\81B\8fI\97¹\82Á\82·\81B\94²\82¯\82é\82Á\82·        */
--                      break;
--              }
--      }
--#undef __ROAST_STRRPC__STRNCPY
--      return outbuf;
--}
--
--
--/*    safe\83o\81[\83W\83\87\83\93\81i\83o\83b\83t\83@\83T\83C\83Y\82ð\83`\83F\83b\83N\81j      */
--char* roast_safe_strrpc2( char* outbuf, unsigned int outbuf_size, const char* inbuf, const char* find_str, const char* rpc_str )
--{
--      const unsigned int find_len = strlen(find_str);                 /*      find_str\82Ì\95\8e\9a\97ñ\92·\82ð\97\\82ß\8cv\8eZ\82µ\82Ä\82¨\82­\81i\89½\89ñ\82à\8eg\82¤\82Ì\82Å\81j*/
--      const unsigned int rpcstr_len = strlen(rpc_str);                /*      rpc_str\82Ì\95\8e\9a\97ñ\92·\82ð\97\\82ß\8cv\8eZ\82µ\82Ä\82¨\82­\81i\89½\89ñ\82à\8eg\82¤\82Ì\82Å\81j*/
--
--      const char *p_from = inbuf;
--      const char *p_from_next = NULL;
--      char *p_to_last = outbuf + outbuf_size;
--      char *p_to = outbuf;
--      unsigned int copy_len = 0;              /*      \83R\83s\81[\92·\82ð\88ê\8e\9e\93I\82É\95Û\91\82·\82é\95Ï\90\94  */
--
--      /*//////////////////////////////////////////////////////////////////////////////////////////////*/
--      
--//#define __ROAST_STRRPC__STRNCPY(FROM, COPY_LEN)     strncpy(p_to, FROM, COPY_LEN);
--#define __ROAST_STRRPC__STRNCPY(FROM, LEN)            {       \
--              if ( (p_to+LEN) > p_to_last ){  \
--                      strncpy(p_to, FROM, p_to_last - p_to - 1 );     \
--                      *(p_to_last-1) = '\0';  \
--                      break;  \
--              }else{  \
--                      strncpy(p_to, FROM, LEN);       \
--              }}
--
--      for(;;)
--      {
--              /*      \8c\9f\8dõ    */
--              p_from_next = strstr(p_from, find_str);
--
--
--              /*      \92u\8a·\91Î\8fÛ\82 \82è    */
--              if ( p_from_next != NULL )
--              {
--                      /*      \92u\8a·\82·\82é\95\8e\9a\97ñ\82Ì\91O\82Ü\82Å\82ðp_to\82É\83R\83s\81[    */
--                      copy_len = p_from_next - p_from;
--                      /*strncpy(p_to, p_from, copy_len);*/
--                      __ROAST_STRRPC__STRNCPY(p_from, copy_len);
--                      p_to += copy_len;
--
--                      /*      \92u\8a·\8cã\82Ì\95\8e\9a\97ñ\82ð\83R\83s\81[  */
--                      /*strncpy(p_to, rpc_str, rpcstr_len);*/
--                      __ROAST_STRRPC__STRNCPY(rpc_str, rpcstr_len);
--                      p_to += rpcstr_len;
--
--                      /*      p_from\82Ì\83I\83t\83Z\83b\83g\82ðp_from_next\81{find_len\82É     */
--                      p_from = p_from_next + find_len;
--              }
--
--
--              /*      \82à\82¤\82±\82ê\88È\8fã\92u\8a·\91Î\8fÛ\82Í\82È\82¢\82æ    */
--              else
--              {
--                      /*      \8cã\89½\95\8e\9a\83R\83s\81[\82·\82ê\82Î\82¢\82¢\82ñ\82¾    */
--                      copy_len = strlen(p_from);
--
--                      /*      \94c\88¬\81B\83R\83s\81[\82·\82é\82æ\81B\81i'\0'\8aÜ\82ß\82Ä\81j      */
--                      /*strncpy(p_to, p_from, n+1);*/
--                      __ROAST_STRRPC__STRNCPY(p_from, copy_len+1);
--
--                      /*      \8fI\82í\82è\82Á\82·\81B\8fI\97¹\82Á\82·\81B\94²\82¯\82é\82Á\82·        */
--                      break;
--              }
--      }
--#undef __ROAST_STRRPC__STRNCPY
--
--      return outbuf;
--}
--
--
--/*    \95\8e\9a\97ñ\92·\82³\82ª\92Z\82­\82È\82é\8e\96\82ª\95ª\82©\82é\8fê\8d\87\82Ì\82Ý\8eg\82Á\82Ä\89º\82³\82¢\81B    */
--/*    Result string to short only usable.     */
--char* roast_strrpc_toshort( char* iobuf, const char* find_str, const char* rpc_str )
--{
--      const char* inbuf = iobuf;
--      char* outbuf = (char*)malloc( strlen(iobuf)+1 );
--      roast_strrpc( outbuf, inbuf, find_str, rpc_str );
--      strcpy( iobuf, outbuf );
--      free(outbuf);
--      return iobuf;
--}
--
--
--/*    \93ü\8fo\97Í\83o\83b\83t\83@\8b¤\92Ê\83o\81[\83W\83\87\83\93\81B\8eÀ\8dÛ\82É\82Í\88ê\8e\9e\83o\83b\83t\83@\82ð\8dì\82Á\82Ä\82â\82Á\82Ä\82é\81B    */
--/*    I/O Buffer shared version. */
--char* roast_safe_strrpc_bufshare( char* iobuf, unsigned int buf_size, const char* find_str, const char* rpc_str )
--{
--      const char* inbuf = iobuf;
--      char* outbuf = (char*)malloc( buf_size );
--      roast_safe_strrpc( outbuf, buf_size, inbuf, find_str, rpc_str );
--      strcpy( iobuf, outbuf );
--      free(outbuf);
--      return iobuf;
--}
--
--
--/*    roast_strrpc1\82ð\96³\97\9d\82â\82è\8eg\82¤\83o\81[\83W\83\87\83\93
--char* roast_strrpc( char* outbuf, unsigned int outbuf_size, const char* inbuf, const char* find_str, const char* rpc_str )
--{
--      roast_safe_strcpy(outbuf, inbuf, outbuf_size);
--
--      return roast_strrpc1(outbuf, outbuf_size, find_str, rpc_str);
--}
--*/
--
--__ROAST_EXTERN_C_END