Changeset 167 for trunk/src/slib.c


Ignore:
Timestamp:
Mar 15, 2008, 12:38:20 PM (17 years ago)
Author:
katerina
Message:

First parts of changes for MODI_TXT

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/slib.c

    r162 r167  
    5656#include "sh_static.h"
    5757#include "sh_pthread.h"
     58#include "sh_string.h"
    5859
    5960#undef  FIL__
     
    15041505  int fd;               /* The file descriptor. */
    15051506  char * path;          /* The file path.       */
     1507  sh_string * content;  /* The file content     */
    15061508} SL_OFILE;
    15071509
     
    16241626
    16251627  sl_strlcpy (ofiles[fd]->path, filename, len);
    1626   ofiles[fd]->ticket = ticket;
    1627   ofiles[fd]->fd     = fd;
     1628  ofiles[fd]->ticket  = ticket;
     1629  ofiles[fd]->fd      = fd;
     1630  ofiles[fd]->content = NULL;
    16281631
    16291632  SL_IRETURN(ticket, _("sl_make_ticket"));
     
    18621865
    18631866  sl_strlcpy (ofiles[fd]->path, filename, len);
    1864   ofiles[fd]->ticket = ticket;
    1865   ofiles[fd]->fd     = fd;
     1867  ofiles[fd]->ticket  = ticket;
     1868  ofiles[fd]->fd      = fd;
     1869  ofiles[fd]->content = NULL;
    18661870
    18671871  SL_IRETURN(ticket, _("sl_open_file"));
     
    19811985}
    19821986
     1987int sl_init_content (SL_TICKET ticket, size_t size)
     1988{
     1989  int fd;
     1990
     1991  if (SL_ISERROR(fd = sl_read_ticket(ticket)))
     1992    return (fd);
     1993
     1994  if (ofiles[fd] == NULL || fd != ofiles[fd]->fd || fd < 0)
     1995    return (SL_EINTERNAL);
     1996
     1997  if (ofiles[fd]->content)
     1998    sh_string_destroy(&(ofiles[fd]->content));
     1999  ofiles[fd]->content = sh_string_new(size);
     2000
     2001  return SL_ENONE;
     2002}
     2003
     2004sh_string * sl_get_content (SL_TICKET ticket)
     2005{
     2006  int fd;
     2007
     2008  if (SL_ISERROR(fd = sl_read_ticket(ticket)))
     2009    return (NULL);
     2010
     2011  if (ofiles[fd] == NULL || fd != ofiles[fd]->fd || fd < 0)
     2012    return (NULL);
     2013
     2014  return (ofiles[fd]->content);
     2015}
     2016
    19832017int sl_close (SL_TICKET ticket)
    19842018{
     
    20012035  if (ofiles[fd] != NULL)
    20022036    {
     2037      if (ofiles[fd]->content)
     2038        sh_string_destroy(&(ofiles[fd]->content));
    20032039      (void) free(ofiles[fd]->path);
    20042040      (void) free(ofiles[fd]);
     
    20152051      if (ofiles[fd] != NULL && fd != except)
    20162052        {
     2053          if (ofiles[fd]->content)
     2054            sh_string_destroy(&(ofiles[fd]->content));
    20172055          if (ofiles[fd]->path != NULL)
    20182056            (void) free(ofiles[fd]->path);
Note: See TracChangeset for help on using the changeset viewer.