The main problem with this is the author decided that s1, s2, and s3 were good variable names. That happens in every language. It could use some more comments, and some of the sections are written in a somewhat old style (really? not using strndup?), but it's a perfectly normal parser algorithm that is perfectly understandable to anyone who understands basic C.
Anyone who struggles with this code probably doesn't actually understand pointers and memory.
RT: https://shrimpposter.club/objects/fd58d477-cde4-465c-acb5-23501760f329
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.