Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
John McEleney
/
mailutils
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
cb247618
...
cb24761827f2e55a8f3297a6ddd78a0d52f8908a
authored
2003-08-28 21:54:06 +0000
by
Sergey Poznyakoff
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
(_auth_lb_writelines): New function.
1 parent
b637f9c8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
71 additions
and
9 deletions
auth/lbuf.c
auth/lbuf.h
auth/lbuf.c
View file @
cb24761
...
...
@@ -110,7 +110,46 @@ _auth_lb_readline (struct _line_buffer *s, const char *ptr, size_t size)
size
=
p
-
s
->
buffer
+
1
;
return
_auth_lb_read
(
s
,
ptr
,
size
);
}
int
_auth_lb_writelines
(
struct
_line_buffer
*
s
,
const
char
*
iptr
,
size_t
isize
,
off_t
offset
,
int
(
*
wr
)
(
void
*
data
,
char
*
start
,
char
*
end
),
void
*
data
,
size_t
*
nbytes
)
{
if
(
s
->
level
>
2
)
{
char
*
start
,
*
end
;
for
(
start
=
s
->
buffer
,
end
=
strchr
(
start
,
'\n'
);
end
&&
end
<
s
->
buffer
+
s
->
level
;
start
=
end
+
1
,
end
=
strchr
(
start
,
'\n'
))
if
(
end
[
-
1
]
==
'\r'
)
{
int
rc
=
wr
(
data
,
start
,
end
);
if
(
rc
)
return
rc
;
}
if
(
start
>
s
->
buffer
)
{
if
(
start
<
s
->
buffer
+
s
->
level
)
{
int
rest
=
s
->
buffer
+
s
->
level
-
start
+
1
;
memmove
(
s
->
buffer
,
start
,
rest
);
s
->
level
=
rest
;
}
else
s
->
level
=
0
;
}
}
if
(
nbytes
)
*
nbytes
=
isize
;
return
0
;
}
int
_auth_lb_level
(
struct
_line_buffer
*
s
)
{
...
...
auth/lbuf.h
View file @
cb24761
/* GNU Mailutils -- a suite of utilities for electronic mail
Copyright (C) 2003 Free Software Foundation, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
struct
_line_buffer
;
int
_auth_lb_create
(
struct
_line_buffer
**
s
);
void
_auth_lb_destroy
(
struct
_line_buffer
**
s
);
void
_auth_lb_drop
(
struct
_line_buffer
*
s
);
int
_auth_lb_create
__P
((
struct
_line_buffer
**
s
)
);
void
_auth_lb_destroy
__P
((
struct
_line_buffer
**
s
)
);
void
_auth_lb_drop
__P
((
struct
_line_buffer
*
s
)
);
int
_auth_lb_grow
(
struct
_line_buffer
*
s
,
const
char
*
ptr
,
size_t
size
);
int
_auth_lb_read
(
struct
_line_buffer
*
s
,
const
char
*
ptr
,
size_t
size
);
int
_auth_lb_readline
(
struct
_line_buffer
*
s
,
const
char
*
ptr
,
size_t
size
);
int
_auth_lb_level
(
struct
_line_buffer
*
s
);
char
*
_auth_lb_data
(
struct
_line_buffer
*
s
);
int
_auth_lb_grow
__P
((
struct
_line_buffer
*
s
,
const
char
*
ptr
,
size_t
size
));
int
_auth_lb_read
__P
((
struct
_line_buffer
*
s
,
const
char
*
ptr
,
size_t
size
));
int
_auth_lb_readline
__P
((
struct
_line_buffer
*
s
,
const
char
*
ptr
,
size_t
size
));
int
_auth_lb_writelines
__P
((
struct
_line_buffer
*
s
,
const
char
*
iptr
,
size_t
isize
,
off_t
offset
,
int
(
*
wr
)
__PMT
((
void
*
data
,
char
*
start
,
char
*
end
)),
void
*
data
,
size_t
*
nbytes
));
int
_auth_lb_level
__P
((
struct
_line_buffer
*
s
));
char
*
_auth_lb_data
__P
((
struct
_line_buffer
*
s
));
...
...
Please
register
or
sign in
to post a comment