From: Laurent MAZET Date: Tue, 7 Oct 2025 17:29:47 +0000 (+0200) Subject: add forgotten message generator X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=025dce2f90842e7572b8bc9eddb9e2b9ff30ed91;p=benchmarks.git add forgotten message generator --- diff --git a/msg.c b/msg.c new file mode 100644 index 0000000..f550890 --- /dev/null +++ b/msg.c @@ -0,0 +1,34 @@ +#include +#include +#include + +#include "msg.h" + +char *get_msg (int len) +{ + const char *text = + "Et eodem impetu Domitianum praecipitem per scalas itidem funibus constrinxerunt, eosque coniunctos per ampla spatia civitatis acri raptavere discursu. iamque artuum et membrorum divulsa conpage superscandentes corpora mortuorum ad ultimam truncata deformitatem velut exsaturati mox abiecerunt in flumen.\n" + "Ex turba vero imae sortis et paupertinae in tabernis aliqui pernoctant vinariis, non nulli velariis umbraculorum theatralium latent, quae Campanam imitatus lasciviam Catulus in aedilitate sua suspendit omnium primus; aut pugnaciter aleis certant turpi sono fragosis naribus introrsum reducto spiritu concrepantes; aut quod est studiorum omnium maximum ab ortu lucis ad vesperam sole fatiscunt vel pluviis, per minutias aurigarum equorumque praecipua vel delicta scrutantes.\n" + "Saepissime igitur mihi de amicitia cogitanti maxime illud considerandum videri solet, utrum propter imbecillitatem atque inopiam desiderata sit amicitia, ut dandis recipiendisque meritis quod quisque minus per se ipse posset, id acciperet ab alio vicissimque redderet, an esset hoc quidem proprium amicitiae, sed antiquior et pulchrior et magis a natura ipsa profecta alia causa. Amor enim, ex quo amicitia nominata est, princeps est ad benevolentiam coniungendam. Nam utilitates quidem etiam ab iis percipiuntur saepe qui simulatione amicitiae coluntur et observantur temporis causa, in amicitia autem nihil fictum est, nihil simulatum et, quidquid est, id est verum et voluntarium.\n" + "Constituendi autem sunt qui sint in amicitia fines et quasi termini diligendi. De quibus tres video sententias ferri, quarum nullam probo, unam, ut eodem modo erga amicum adfecti simus, quo erga nosmet ipsos, alteram, ut nostra in amicos benevolentia illorum erga nos benevolentiae pariter aequaliterque respondeat, tertiam, ut, quanti quisque se ipse facit, tanti fiat ab amicis.\n" + "Sin autem ad adulescentiam perduxissent, dirimi tamen interdum contentione vel uxoriae condicionis vel commodi alicuius, quod idem adipisci uterque non posset. Quod si qui longius in amicitia provecti essent, tamen saepe labefactari, si in honoris contentionem incidissent; pestem enim nullam maiorem esse amicitiis quam in plerisque pecuniae cupiditatem, in optimis quibusque honoris certamen et gloriae; ex quo inimicitias maximas saepe inter amicissimos exstitisse.\n"; + const int text_len = strlen (text); + static int offset = 0; + + static char *buffer = NULL; + static int buffer_len = 0; + + if ((buffer == NULL) || (buffer_len != len)) { + free (buffer); + buffer = (char *) calloc (len, 1); + assert (buffer); + buffer_len = len; + } + + for (int i = 0; i < len - 1; i++) { + buffer[i] = text[offset++ % text_len]; + } + offset %= text_len; + + return buffer; +} diff --git a/msg.h b/msg.h new file mode 100644 index 0000000..cf132e4 --- /dev/null +++ b/msg.h @@ -0,0 +1,8 @@ +/* random text module */ + +#ifndef __MSG_H__ +#define __MSG_H__ + +char *get_msg (int len); + +#endif /* __MSG_H__ */