strcasecmp() is a POSIX standard and not a in the C programming standard as pointed out in this stack overflow question. Therefore the
sort_entries() function may not compile or link on some systems. It would be better if the program that contained the
sort_entries() function also contained a version of
Generally a bubble sort will be implemented as nested loops, the inner loop going over the whole input list to perform as many swaps as possible in a single pass. This implementation restarts at the beginning after a single swap requiring more passes. There is no performance improvement by this single loop over the nested loop implementation, and there may be a performance hit.
If the code swapped the pointers rather than the strings themselves there might be an improvement in the performance.
It is better from a maintainability perspective and overall code comprehension to create variables as needed rather than create all the variables at the top of the function. It would be better if the variables
value were defined within the loop rather than at the top of the function. The variables
next are only needed within the if statement.