Version 18.6.3

This commit is contained in:
Antonio Cañas Vargas 2018-10-17 10:32:18 +02:00
parent 182b6eb2e1
commit c95fe7dc36
14 changed files with 322 additions and 176 deletions

View File

@ -355,10 +355,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.6.2 (2018-10-17)"
#define Log_PLATFORM_VERSION "SWAD 18.6.3 (2018-10-17)"
#define CSS_FILE "swad18.4.css"
#define JS_FILE "swad17.17.1.js"
/*
Version 18.6.3: Oct 17, 2018 Some sprintf changed by snprintf or asprintf. (235954 lines)
Version 18.6.2: Oct 17, 2018 Some sprintf changed by snprintf. (235808 lines)
Version 18.6.1: Oct 16, 2018 Some sprintf changed by snprintf. (235755 lines)
Version 18.6: Oct 16, 2018 sprintf changed by snprintf in alerts. (235730 lines)

View File

@ -144,7 +144,9 @@ void Cht_ShowListOfAvailableChatRooms (void)
/***** Link to chat available for all the users *****/
IsLastItemInLevel[1] = (!Gbl.Usrs.Me.IBelongToCurrentCrs &&
!Gbl.Usrs.Me.MyDegs.Num);
sprintf (ThisRoomFullName,"%s (%s)",Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
"%s (%s)",
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
Cht_WriteLinkToChat1 ("GBL_USR",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL],ThisRoomFullName,1,IsLastItemInLevel);
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
" alt=\"%s\" title=\"%s\""
@ -158,8 +160,9 @@ void Cht_ShowListOfAvailableChatRooms (void)
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_STD:
sprintf (ThisRoomFullName,"%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_ALL]);
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
"%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_ALL]);
Cht_WriteLinkToChat1 ("GBL_STD",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],ThisRoomFullName,1,IsLastItemInLevel);
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
" alt=\"%s\" title=\"%s\""
@ -170,8 +173,9 @@ void Cht_ShowListOfAvailableChatRooms (void)
break;
case Rol_NET:
case Rol_TCH:
sprintf (ThisRoomFullName,"%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
"%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
Cht_WriteLinkToChat1 ("GBL_TCH",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],ThisRoomFullName,1,IsLastItemInLevel);
fprintf (Gbl.F.Out,"<img src=\"%s/chat64x64.gif\""
" alt=\"%s\" title=\"%s\""
@ -196,9 +200,15 @@ void Cht_ShowListOfAvailableChatRooms (void)
/* Link to the room of this degree */
IsLastItemInLevel[1] = (NumMyDeg == Gbl.Usrs.Me.MyDegs.Num - 1);
sprintf (ThisRoomCode,"DEG_%ld",Deg.DegCod);
sprintf (ThisRoomShrtName,"%s",Deg.ShrtName);
sprintf (ThisRoomFullName,"%s %s",Txt_Degree,Deg.ShrtName);
snprintf (ThisRoomCode,sizeof (ThisRoomCode),
"DEG_%ld",
Deg.DegCod);
snprintf (ThisRoomShrtName,sizeof (ThisRoomShrtName),
"%s",
Deg.ShrtName);
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
"%s %s",
Txt_Degree,Deg.ShrtName);
Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShrtName,ThisRoomFullName,1,IsLastItemInLevel);
Log_DrawLogo (Sco_SCOPE_DEG,Deg.DegCod,Deg.ShrtName,20,NULL,true);
Cht_WriteLinkToChat2 (ThisRoomCode,ThisRoomFullName);
@ -220,9 +230,15 @@ void Cht_ShowListOfAvailableChatRooms (void)
/* Link to the room of this course */
IsLastItemInLevel[2] = (NumRow == NumRows - 1);
sprintf (ThisRoomCode,"CRS_%ld",Crs.CrsCod);
sprintf (ThisRoomShrtName,"%s",Crs.ShrtName);
sprintf (ThisRoomFullName,"%s %s",Txt_Course,Crs.ShrtName);
snprintf (ThisRoomCode,sizeof (ThisRoomCode),
"CRS_%ld",
Crs.CrsCod);
snprintf (ThisRoomShrtName,sizeof (ThisRoomShrtName),
"%s",
Crs.ShrtName);
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
"%s %s",
Txt_Course,Crs.ShrtName);
Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShrtName,ThisRoomFullName,2,IsLastItemInLevel);
fprintf (Gbl.F.Out,"<img src=\"%s/dot64x64.png\""
" alt=\"%s\" title=\"%s\""
@ -448,7 +464,9 @@ void Cht_OpenChatWindow (void)
Usr_MAX_BYTES_FULL_NAME);
/***** Build the lists of available rooms *****/
sprintf (ListRoomCodes,"#%s",RoomCode);
snprintf (ListRoomCodes,sizeof (ListRoomCodes),
"#%s",
RoomCode);
Str_Copy (ListRoomShrtNames,RoomShrtName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
Str_Copy (ListRoomFullNames ,RoomFullName,
@ -459,12 +477,15 @@ void Cht_OpenChatWindow (void)
Str_Concat (ListRoomCodes,"|#GBL_USR",
Cht_MAX_BYTES_ROOM_CODES);
sprintf (RoomShrtName,"|%s",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
snprintf (RoomShrtName,sizeof (RoomShrtName),
"|%s",
Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
Str_Concat (ListRoomShrtNames,RoomShrtName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (RoomFullName,"|%s (%s)",
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
snprintf (RoomFullName,sizeof (RoomFullName),
"|%s (%s)",
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
Str_Concat (ListRoomFullNames,RoomFullName,
Cht_MAX_BYTES_ROOM_FULL_NAMES);
}
@ -475,12 +496,15 @@ void Cht_OpenChatWindow (void)
Str_Concat (ListRoomCodes,"|#GBL_STD",
Cht_MAX_BYTES_ROOM_CODES);
sprintf (RoomShrtName,"|%s",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
snprintf (RoomShrtName,sizeof (RoomShrtName),
"|%s",
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
Str_Concat (ListRoomShrtNames,RoomShrtName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (RoomFullName,"|%s (%s)",Txt_General,
Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_ALL]);
snprintf (RoomFullName,sizeof (RoomFullName),
"|%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_ALL]);
Str_Concat (ListRoomFullNames,RoomFullName,
Cht_MAX_BYTES_ROOM_FULL_NAMES);
}
@ -492,12 +516,15 @@ void Cht_OpenChatWindow (void)
Str_Concat (ListRoomCodes,"|#GBL_TCH",
Cht_MAX_BYTES_ROOM_CODES);
sprintf (RoomShrtName,"|%s",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
snprintf (RoomShrtName,sizeof (RoomShrtName),
"|%s",
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
Str_Concat (ListRoomShrtNames,RoomShrtName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (RoomFullName,"|%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
snprintf (RoomFullName,sizeof (RoomFullName),
"|%s (%s)",
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_ALL]);
Str_Concat (ListRoomFullNames,RoomFullName,
Cht_MAX_BYTES_ROOM_FULL_NAMES);
}
@ -506,7 +533,9 @@ void Cht_OpenChatWindow (void)
NumMyDeg < Gbl.Usrs.Me.MyDegs.Num;
NumMyDeg++)
{
sprintf (ThisRoomCode,"DEG_%ld",Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod);
snprintf (ThisRoomCode,sizeof (ThisRoomCode),
"DEG_%ld",
Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod);
if (strcmp (RoomCode,ThisRoomCode))
{
Str_Concat (ListRoomCodes,"|#",
@ -518,13 +547,17 @@ void Cht_OpenChatWindow (void)
Deg.DegCod = Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod;
Deg_GetDataOfDegreeByCod (&Deg);
sprintf (ThisRoomShortName,"%s",Deg.ShrtName);
snprintf (ThisRoomShortName,sizeof (ThisRoomShortName),
"%s",
Deg.ShrtName);
Str_Concat (ListRoomShrtNames,"|",
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (ThisRoomFullName,"%s %s",Txt_Degree,Deg.ShrtName);
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
"%s %s",
Txt_Degree,Deg.ShrtName);
Str_Concat (ListRoomFullNames,"|",
Cht_MAX_BYTES_ROOM_FULL_NAMES);
Str_Concat (ListRoomFullNames,ThisRoomFullName,
@ -536,7 +569,9 @@ void Cht_OpenChatWindow (void)
NumMyCrs < Gbl.Usrs.Me.MyCrss.Num;
NumMyCrs++)
{
sprintf (ThisRoomCode,"CRS_%ld",Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod);
snprintf (ThisRoomCode,sizeof (ThisRoomCode),
"CRS_%ld",
Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod);
if (strcmp (RoomCode,ThisRoomCode))
{
Str_Concat (ListRoomCodes,"|#",
@ -548,13 +583,17 @@ void Cht_OpenChatWindow (void)
Crs.CrsCod = Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod;
Crs_GetDataOfCourseByCod (&Crs);
sprintf (ThisRoomShortName,"%s",Crs.ShrtName);
snprintf (ThisRoomShortName,sizeof (ThisRoomShortName),
"%s",
Crs.ShrtName);
Str_Concat (ListRoomShrtNames,"|",
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
Str_Concat (ListRoomShrtNames,ThisRoomShortName,
Cht_MAX_BYTES_ROOM_SHRT_NAMES);
sprintf (ThisRoomFullName,"%s %s",Txt_Course,Crs.ShrtName);
snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),
"%s %s",
Txt_Course,Crs.ShrtName);
Str_Concat (ListRoomFullNames,"|",
Cht_MAX_BYTES_ROOM_FULL_NAMES);
Str_Concat (ListRoomFullNames,ThisRoomFullName,

View File

@ -28,9 +28,9 @@
/** Uncomment one of the following installations of SWAD or create your own **/
/*****************************************************************************/
//#define LOCALHOST_UBUNTU // Comment this line if not applicable
#define LOCALHOST_UBUNTU // Comment this line if not applicable
//#define OPENSWAD_ORG // Comment this line if not applicable
#define SWAD_UGR_ES // Comment this line if not applicable
//#define SWAD_UGR_ES // Comment this line if not applicable
//#define SWADBERRY_UGR_ES // Comment this line if not applicable
/*****************************************************************************/

View File

@ -97,8 +97,10 @@ void Con_ShowConnectedUsrs (void)
/***** Start box *****/
/* Current time */
sprintf (Gbl.Title,"%s<div id=\"connected_current_time\"></div>",
Txt_Connected_users);
snprintf (Gbl.Title,sizeof (Gbl.Title),
"%s"
"<div id=\"connected_current_time\"></div>",
Txt_Connected_users);
Box_StartBox (NULL,Gbl.Title,Con_PutIconToUpdateConnected,
Hlp_USERS_Connected,Box_NOT_CLOSABLE);
fprintf (Gbl.F.Out,"<script type=\"text/javascript\">"

View File

@ -52,17 +52,20 @@ int main (void)
char OldPathUsr[PATH_MAX + 1];
char Command[1024 + PATH_MAX * 2];
sprintf (Command,"mv %s/%s %s/%s_backup",
PATH_SWAD_PRIVATE,FOLDER_USR,
PATH_SWAD_PRIVATE,FOLDER_USR);
snprintf (Command,sizeof (Command),
"mv %s/%s %s/%s_backup",
PATH_SWAD_PRIVATE,FOLDER_USR,
PATH_SWAD_PRIVATE,FOLDER_USR);
ExecuteCommand (Command);
sprintf (Command,"mkdir %s/%s",
PATH_SWAD_PRIVATE,FOLDER_USR);
snprintf (Command,sizeof (Command),
"mkdir %s/%s",
PATH_SWAD_PRIVATE,FOLDER_USR);
ExecuteCommand (Command);
for (i=0; i<100; i++)
{
sprintf (Command,"mkdir %s/%s/%02u",
PATH_SWAD_PRIVATE,FOLDER_USR,i);
snprintf (Command,sizeof (Command),
"mkdir %s/%s/%02u",
PATH_SWAD_PRIVATE,FOLDER_USR,i);
ExecuteCommand (Command);
}
@ -98,13 +101,15 @@ int main (void)
{
Str_Copy (UsrID,row[1],
ID_MAX_BYTES_USR_ID); // UsrID
sprintf (OldPathUsr,"%s/%s_backup/%c/%s",
PATH_SWAD_PRIVATE,FOLDER_USR,UsrID[strlen (UsrID)-1],UsrID);
snprintf (OldPathUsr,sizeof (OldPathUsr),
"%s/%s_backup/%c/%s",
PATH_SWAD_PRIVATE,FOLDER_USR,UsrID[strlen (UsrID)-1],UsrID);
if (CheckIfPathExists (OldPathUsr))
{
sprintf (Command,"mv %s %s/%s/%02u/%ld",
OldPathUsr,
PATH_SWAD_PRIVATE,FOLDER_USR,(unsigned) (UsrCod % 100),UsrCod);
snprintf (Command,sizeof (Command),
"mv %s %s/%s/%02u/%ld",
OldPathUsr,
PATH_SWAD_PRIVATE,FOLDER_USR,(unsigned) (UsrCod % 100),UsrCod);
ExecuteCommand (Command);
NumUsrs++;
}
@ -112,9 +117,10 @@ int main (void)
}
}
mysql_free_result (mysql_res);
sprintf (Command,"chown -R %s:%s %s/%s",
WEB_USER,WEB_USER,
PATH_SWAD_PRIVATE,FOLDER_USR);
snprintf (Command,sizeof (Command),
"chown -R %s:%s %s/%s",
WEB_USER,WEB_USER,
PATH_SWAD_PRIVATE,FOLDER_USR);
ExecuteCommand (Command);
printf ("# Rows : %u\n"

View File

@ -53,17 +53,20 @@ int main (void)
char OldPathPhoto[PATH_MAX + 1];
char Command[1024 + PATH_MAX * 2];
sprintf (Command,"mv %s/%s %s/%s_backup",
PATH_SWAD_PRIVATE,FOLDER_PHOTO,
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
snprintf (Command,sizeof (Command),
"mv %s/%s %s/%s_backup",
PATH_SWAD_PRIVATE,FOLDER_PHOTO,
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
ExecuteCommand (Command);
sprintf (Command,"mkdir %s/%s",
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
snprintf (Command,sizeof (Command),
"mkdir %s/%s",
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
ExecuteCommand (Command);
for (i=0; i<100; i++)
{
sprintf (Command,"mkdir %s/%s/%02u",
PATH_SWAD_PRIVATE,FOLDER_PHOTO,i);
snprintf (Command,sizeof (Command),
"mkdir %s/%s/%02u",
PATH_SWAD_PRIVATE,FOLDER_PHOTO,i);
ExecuteCommand (Command);
}
@ -99,23 +102,27 @@ int main (void)
{
Str_Copy (UsrID,row[1],
ID_MAX_BYTES_USR_ID); // UsrID
sprintf (OldPathPhoto,"%s/%s_backup/%s_original.jpg",
PATH_SWAD_PRIVATE,FOLDER_PHOTO,UsrID);
snprintf (OldPathPhoto,sizeof (OldPathPhoto),
"%s/%s_backup/%s_original.jpg",
PATH_SWAD_PRIVATE,FOLDER_PHOTO,UsrID);
if (CheckIfPathExists (OldPathPhoto))
{
sprintf (Command,"cp -a %s %s/%s/%02u/%ld_original.jpg",
OldPathPhoto,
PATH_SWAD_PRIVATE,FOLDER_PHOTO,(unsigned) (UsrCod % 100),UsrCod);
snprintf (Command,sizeof (Command),
"cp -a %s %s/%s/%02u/%ld_original.jpg",
OldPathPhoto,
PATH_SWAD_PRIVATE,FOLDER_PHOTO,(unsigned) (UsrCod % 100),UsrCod);
ExecuteCommand (Command);
}
sprintf (OldPathPhoto,"%s/%s_backup/%s.jpg",
PATH_SWAD_PRIVATE,FOLDER_PHOTO,UsrID);
snprintf (OldPathPhoto,sizeof (OldPathPhoto),
"%s/%s_backup/%s.jpg",
PATH_SWAD_PRIVATE,FOLDER_PHOTO,UsrID);
if (CheckIfPathExists (OldPathPhoto))
{
sprintf (Command,"cp -a %s %s/%s/%02u/%ld.jpg",
OldPathPhoto,
PATH_SWAD_PRIVATE,FOLDER_PHOTO,(unsigned) (UsrCod % 100),UsrCod);
snprintf (Command,sizeof (Command),
"cp -a %s %s/%s/%02u/%ld.jpg",
OldPathPhoto,
PATH_SWAD_PRIVATE,FOLDER_PHOTO,(unsigned) (UsrCod % 100),UsrCod);
ExecuteCommand (Command);
NumPhotos++;
}
@ -123,13 +130,15 @@ int main (void)
}
}
mysql_free_result (mysql_res);
sprintf (Command,"chown -R %s:%s %s/%s",
WEB_USER,WEB_USER,
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
snprintf (Command,sizeof (Command),
"chown -R %s:%s %s/%s",
WEB_USER,WEB_USER,
PATH_SWAD_PRIVATE,FOLDER_PHOTO);
ExecuteCommand (Command);
sprintf (Command,"rm -f %s/%s/*.jpg",
PATH_SWAD_PUBLIC,FOLDER_PHOTO);
snprintf (Command,sizeof (Command),
"rm -f %s/%s/*.jpg",
PATH_SWAD_PUBLIC,FOLDER_PHOTO);
ExecuteCommand (Command);
printf ("# Rows : %u\n"

View File

@ -82,21 +82,28 @@ int main (void)
}
if ((NumCrss = (unsigned) mysql_num_rows (mysql_res_crs)))
{
for (NumCrs=0; NumCrs<NumCrss; NumCrs++)
for (NumCrs = 0;
NumCrs < NumCrss;
NumCrs++)
{
row = mysql_fetch_row (mysql_res_crs);
if (row[0])
if (row[0][0])
if (sscanf (row[0],"%ld",&CrsCod) == 1) // CrsCod
{
sprintf (OldPathUsrs,"%s/%s/%ld/%s",
PATH_SWAD_PRIVATE,FOLDER_CRS,CrsCod,FOLDER_USR);
snprintf (OldPathUsrs,sizeof (OldPathUsrs),
"%s/%s/%ld/%s",
PATH_SWAD_PRIVATE,FOLDER_CRS,CrsCod,FOLDER_USR);
if (CheckIfPathExists (OldPathUsrs))
{
sprintf (Command,"mv %s %s_backup",OldPathUsrs,OldPathUsrs);
snprintf (Command,sizeof (Command),
"mv %s %s_backup",
OldPathUsrs,OldPathUsrs);
ExecuteCommand (Command);
sprintf (Command,"mkdir %s",OldPathUsrs);
snprintf (Command,sizeof (Command),
"mkdir %s",
OldPathUsrs);
ExecuteCommand (Command);
sprintf (Query,"SELECT usr_IDs.UsrCod,usr_IDs.UsrID"
@ -128,27 +135,38 @@ int main (void)
{
Str_Copy (UsrID,row[1],
ID_MAX_BYTES_USR_ID,62); // UsrID
sprintf (OldPathUsr,"%s_backup/%s",OldPathUsrs,UsrID);
snprintf (OldPathUsr,sizeof (OldPathUsr),
"%s_backup/%s",
OldPathUsrs,UsrID);
if (CheckIfPathExists (OldPathUsr))
{
sprintf (Path02u,"%s/%02u",
OldPathUsrs,(unsigned) (UsrCod % 100));
snprintf (Path02u,sizeof (Path02u),
"%s/%02u",
OldPathUsrs,(unsigned) (UsrCod % 100));
if (!CheckIfPathExists (Path02u))
{
sprintf (Command,"mkdir %s",Path02u);
snprintf (Command,sizeof (Command),
"mkdir %s",
Path02u);
ExecuteCommand (Command);
}
sprintf (Command,"mv %s %s/%ld",OldPathUsr,Path02u,UsrCod);
snprintf (Command,sizeof (Command),
"mv %s %s/%ld",
OldPathUsr,Path02u,UsrCod);
ExecuteCommand (Command);
}
}
}
mysql_free_result (mysql_res_usr);
}
sprintf (Command,"chown -R %s:%s %s",WEB_USER,WEB_USER,OldPathUsrs);
snprintf (Command,sizeof (Command),
"chown -R %s:%s %s",
WEB_USER,WEB_USER,OldPathUsrs);
ExecuteCommand (Command);
/*
sprintf (Command,"rm -Rf %s_backup",OldPathUsrs);
snprintf (Command,sizeof (Command),
"rm -Rf %s_backup",
OldPathUsrs);
ExecuteCommand (Command);
*/
printf ("\n");

View File

@ -385,8 +385,9 @@ static void Cty_Configuration (bool PrintView)
/* Form to go to see institutions of this country */
Act_StartFormGoTo (ActSeeIns);
Cty_PutParamCtyCod (Gbl.CurrentCty.Cty.CtyCod);
sprintf (Gbl.Title,Txt_Institutions_of_COUNTRY_X,
Gbl.CurrentCty.Cty.Name[Gbl.Prefs.Language]);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Institutions_of_COUNTRY_X,
Gbl.CurrentCty.Cty.Name[Gbl.Prefs.Language]);
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
fprintf (Gbl.F.Out,"%u</a>",
Ins_GetNumInssInCty (Gbl.CurrentCty.Cty.CtyCod));
@ -803,7 +804,9 @@ void Cty_DrawCountryMapAndNameWithLink (struct Country *Cty,Act_Action_t Action,
fprintf (Gbl.F.Out,"<div class=\"%s\">",ClassContainer);
/***** Link to action *****/
sprintf (Gbl.Title,Txt_Go_to_X,Cty->Name[Gbl.Prefs.Language]);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
Cty->Name[Gbl.Prefs.Language]);
Act_LinkFormSubmit (Gbl.Title,ClassLink,NULL);
/***** Draw country map *****/
@ -852,12 +855,13 @@ bool Cty_CheckIfCountryMapExists (struct Country *Cty)
{
char PathMap[PATH_MAX + 1];
sprintf (PathMap,"%s/%s/%s/%s/%s.png",
Cfg_PATH_SWAD_PUBLIC,
Cfg_FOLDER_PUBLIC_ICON,
Cfg_ICON_FOLDER_COUNTRIES,
Cty->Alpha2,
Cty->Alpha2);
snprintf (PathMap,sizeof (PathMap),
"%s/%s/%s/%s/%s.png",
Cfg_PATH_SWAD_PUBLIC,
Cfg_FOLDER_PUBLIC_ICON,
Cfg_ICON_FOLDER_COUNTRIES,
Cty->Alpha2,
Cty->Alpha2);
return Fil_CheckIfPathExists (PathMap);
}
@ -1015,21 +1019,25 @@ void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData)
Lan <= Txt_NUM_LANGUAGES;
Lan++)
{
sprintf (StrField,"countries.Name_%s,",
Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
"countries.Name_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam1,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"Name_%s,",
Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
"Name_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam2,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"countries.WWW_%s,",
Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
"countries.WWW_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW1,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"WWW_%s,",
Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
"WWW_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW2,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
}
@ -1311,17 +1319,25 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraD
Lan <= Txt_NUM_LANGUAGES;
Lan++)
{
sprintf (StrField,"countries.Name_%s,",Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
"countries.Name_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam1,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"Name_%s,",Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
"Name_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam2,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"countries.WWW_%s,",Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
"countries.WWW_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW1,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
sprintf (StrField,"WWW_%s,",Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
"WWW_%s,",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW2,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
}
@ -1773,7 +1789,9 @@ void Cty_RenameCountry (void)
else
{
/* Update the table changing old name by new name */
sprintf (FieldName,"Name_%s",Txt_STR_LANG_ID[Language]);
snprintf (FieldName,sizeof (FieldName),
"Name_%s",
Txt_STR_LANG_ID[Language]);
Cty_UpdateCtyNameDB (Cty->CtyCod,FieldName,NewCtyName);
/* Write message to show the change made */
@ -2149,7 +2167,9 @@ void Cty_RecFormNewCountry (void)
Lan <= Txt_NUM_LANGUAGES;
Lan++)
{
sprintf (ParamName,"Name_%s",Txt_STR_LANG_ID[Lan]);
snprintf (ParamName,sizeof (ParamName),
"Name_%s",
Txt_STR_LANG_ID[Lan]);
Par_GetParToText (ParamName,Cty->Name[Lan],Cty_MAX_BYTES_NAME);
if (Cty->Name[Lan][0]) // If there's a country name
@ -2172,7 +2192,9 @@ void Cty_RecFormNewCountry (void)
break;
}
sprintf (ParamName,"WWW_%s",Txt_STR_LANG_ID[Lan]);
snprintf (ParamName,sizeof (ParamName),
"WWW_%s",
Txt_STR_LANG_ID[Lan]);
Par_GetParToText (ParamName,Cty->WWW[Lan],Cns_MAX_BYTES_WWW);
}
}
@ -2218,7 +2240,9 @@ static void Cty_CreateCountry (struct Country *Cty)
Lan <= Txt_NUM_LANGUAGES;
Lan++)
{
sprintf (StrField,",Name_%s",Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
",Name_%s",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryNam1,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
@ -2229,7 +2253,9 @@ static void Cty_CreateCountry (struct Country *Cty)
Str_Concat (SubQueryNam2,"'",
Cty_MAX_BYTES_SUBQUERY_CTYS_NAME);
sprintf (StrField,",WWW_%s",Txt_STR_LANG_ID[Lan]);
snprintf (StrField,sizeof (StrField),
",WWW_%s",
Txt_STR_LANG_ID[Lan]);
Str_Concat (SubQueryWWW1,StrField,
Cty_MAX_BYTES_SUBQUERY_CTYS);
@ -2379,9 +2405,10 @@ unsigned Cty_ListCtysFound (const char *Query)
{
/***** Start box and table *****/
/* Number of countries found */
sprintf (Gbl.Title,"%u %s",
NumCtys,NumCtys == 1 ? Txt_country :
Txt_countries);
snprintf (Gbl.Title,sizeof (Gbl.Title),
"%u %s",
NumCtys,NumCtys == 1 ? Txt_country :
Txt_countries);
Box_StartBoxTable (NULL,Gbl.Title,NULL,
NULL,Box_NOT_CLOSABLE,2);

View File

@ -448,8 +448,10 @@ static void Crs_Configuration (bool PrintView)
The_ClassForm[Gbl.Prefs.Theme],
Txt_Indicators);
Act_StartForm (ActReqStaCrs);
sprintf (Gbl.Title,"%u %s %u",
Indicators.NumIndicators,Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS);
snprintf (Gbl.Title,sizeof (Gbl.Title),
"%u %s %u",
Indicators.NumIndicators,
Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS);
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
fprintf (Gbl.F.Out,"%s "
"<img src=\"%s/%s\" alt=\"%s\""
@ -544,7 +546,9 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
char ClassHighlight[64];
ClassNormal = The_ClassForm[Gbl.Prefs.Theme];
sprintf (ClassHighlight,"%s LIGHT_BLUE",The_ClassFormDark[Gbl.Prefs.Theme]);
snprintf (ClassHighlight,sizeof (ClassHighlight),
"%s LIGHT_BLUE",
The_ClassFormDark[Gbl.Prefs.Theme]);
/***** Start box *****/
Box_StartBox (NULL,Txt_My_courses,Crs_PutIconToSearchCourses,
@ -734,7 +738,9 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
Lay_IndentDependingOnLevel (5,IsLastItemInLevel);
Act_StartForm (ActMyCrs);
Crs_PutParamCrsCod (Crs.CrsCod);
sprintf (Gbl.Title,Txt_Go_to_X,Crs.ShrtName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
Crs.ShrtName);
Act_LinkFormSubmit (Gbl.Title,
Highlight ? ClassHighlight :
ClassNormal,NULL);
@ -1135,7 +1141,9 @@ static void Crs_ListCourses (void)
unsigned Year;
/***** Start box *****/
sprintf (Gbl.Title,Txt_Courses_of_DEGREE_X,Gbl.CurrentDeg.Deg.ShrtName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Courses_of_DEGREE_X,
Gbl.CurrentDeg.Deg.ShrtName);
Box_StartBox (NULL,Gbl.Title,Crs_PutIconsListCourses,
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
@ -1284,7 +1292,9 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
TxtClassStrong,BgColor);
Act_StartFormGoTo (ActSeeCrsInf);
Crs_PutParamCrsCod (Crs->CrsCod);
sprintf (Gbl.Title,Txt_Go_to_X,Crs->FullName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
Crs->FullName);
Act_LinkFormSubmit (Gbl.Title,TxtClassStrong,NULL);
fprintf (Gbl.F.Out,"%s</a>",
Crs->FullName);
@ -2274,11 +2284,13 @@ static void Crs_EmptyCourseCompletely (long CrsCod)
DB_QueryDELETE (Query,"can not remove users from a course");
/***** Remove directories of the course *****/
sprintf (PathRelCrs,"%s/%s/%ld",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,CrsCod);
snprintf (PathRelCrs,sizeof (PathRelCrs),
"%s/%s/%ld",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CRS,CrsCod);
Fil_RemoveTree (PathRelCrs);
sprintf (PathRelCrs,"%s/%s/%ld",
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_CRS,CrsCod);
snprintf (PathRelCrs,sizeof (PathRelCrs),
"%s/%s/%ld",
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_CRS,CrsCod);
Fil_RemoveTree (PathRelCrs);
}
}
@ -2881,7 +2893,9 @@ static void Crs_PutButtonToGoToCrs (void)
{
Act_StartForm (ActSeeCrsInf);
Crs_PutParamCrsCod (Gbl.Degs.EditingCrs.CrsCod);
sprintf (Gbl.Title,Txt_Go_to_X,Gbl.Degs.EditingCrs.ShrtName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
Gbl.Degs.EditingCrs.ShrtName);
Btn_PutConfirmButton (Gbl.Title);
Act_EndForm ();
}
@ -2901,7 +2915,9 @@ static void Crs_PutButtonToRegisterInCrs (void)
// If the course beeing edited is different to the current one...
if (Gbl.Degs.EditingCrs.CrsCod != Gbl.CurrentCrs.Crs.CrsCod)
Crs_PutParamCrsCod (Gbl.Degs.EditingCrs.CrsCod);
sprintf (Gbl.Title,Txt_Register_me_in_X,Gbl.Degs.EditingCrs.ShrtName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Register_me_in_X,
Gbl.Degs.EditingCrs.ShrtName);
Btn_PutCreateButton (Gbl.Title);
Act_EndForm ();
}
@ -3075,9 +3091,10 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
NULL,Box_NOT_CLOSABLE,2);
/* Heading row */
sprintf (Gbl.Title,Txt_USER_in_COURSE,
Role == Rol_UNK ? Txt_User[Usr_SEX_UNKNOWN] : // Role == Rol_UNK ==> any role
Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_USER_in_COURSE,
Role == Rol_UNK ? Txt_User[Usr_SEX_UNKNOWN] : // Role == Rol_UNK ==> any role
Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]);
fprintf (Gbl.F.Out,"<tr>"
"<th colspan=\"7\" class=\"LEFT_MIDDLE\">%s:</th>"
"</tr>"
@ -3153,9 +3170,10 @@ unsigned Crs_ListCrssFound (const char *Query)
{
/***** Start box and table *****/
/* Number of courses found */
sprintf (Gbl.Title,"%u %s",
NumCrss,(NumCrss == 1) ? Txt_course :
Txt_courses);
snprintf (Gbl.Title,sizeof (Gbl.Title),
"%u %s",
NumCrss,(NumCrss == 1) ? Txt_course :
Txt_courses);
Box_StartBoxTable (NULL,Gbl.Title,NULL,
NULL,Box_NOT_CLOSABLE,2);
@ -3298,7 +3316,9 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
StyleNoBR,BgColor);
Act_StartFormGoTo (ActSeeDegInf);
Deg_PutParamDegCod (Deg.DegCod);
sprintf (Gbl.Title,Txt_Go_to_X,row[2]);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
row[2]);
Act_LinkFormSubmit (Gbl.Title,StyleNoBR,NULL);
Log_DrawLogo (Sco_SCOPE_DEG,Deg.DegCod,Deg.ShrtName,20,"CENTER_TOP",true);
fprintf (Gbl.F.Out," %s (%s)"
@ -3318,7 +3338,9 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
Style,BgColor);
Act_StartFormGoTo (ActSeeCrsInf);
Crs_PutParamCrsCod (CrsCod);
sprintf (Gbl.Title,Txt_Go_to_X,row[6]);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
row[6]);
Act_LinkFormSubmit (Gbl.Title,Style,NULL);
fprintf (Gbl.F.Out,"%s</a>",row[5]);
Act_EndForm ();

View File

@ -149,7 +149,8 @@ void Cry_CreateUniqueNameEncrypted (char UniqueNameEncrypted[Cry_BYTES_ENCRYPTED
char UniqueNamePlain[Cns_MAX_BYTES_IP + 1 + 10 + 1 + 10 + 1 + 10 + 1];
NumCall++;
sprintf (UniqueNamePlain,"%s-%lx-%x-%x",
Gbl.IP,Gbl.StartExecutionTimeUTC,Gbl.PID,NumCall);
snprintf (UniqueNamePlain,sizeof (UniqueNamePlain),
"%s-%lx-%x-%x",
Gbl.IP,Gbl.StartExecutionTimeUTC,Gbl.PID,NumCall);
Cry_EncryptSHA256Base64 (UniqueNamePlain,UniqueNameEncrypted); // Make difficult to guess a unique name
}

View File

@ -3195,9 +3195,10 @@ void DB_FreeMySQLResult (MYSQL_RES **mysql_res)
void DB_ExitOnMySQLError (const char *Message)
{
char BigErrorMsg[1024 * 1024];
char BigErrorMsg[64 * 1024];
sprintf (BigErrorMsg,"Database error: %s (%s).",
Message,mysql_error (&Gbl.mysql));
snprintf (BigErrorMsg,sizeof (BigErrorMsg),
"Database error: %s (%s).",
Message,mysql_error (&Gbl.mysql));
Lay_ShowErrorAndExit (BigErrorMsg);
}

View File

@ -251,13 +251,15 @@ void Dat_GetAndConvertCurrentDateTime (void)
Gbl.Now.Time.Second = tm_ptr->tm_sec;
/***** Initialize current date in format YYYYMMDD *****/
sprintf (Gbl.Now.Date.YYYYMMDD,"%04u%02u%02u",
Gbl.Now.Date.Year,Gbl.Now.Date.Month,Gbl.Now.Date.Day);
snprintf (Gbl.Now.Date.YYYYMMDD,sizeof (Gbl.Now.Date.YYYYMMDD),
"%04u%02u%02u",
Gbl.Now.Date.Year,Gbl.Now.Date.Month,Gbl.Now.Date.Day);
/***** Initialize current time in format YYYYMMDDHHMMSS *****/
sprintf (Gbl.Now.YYYYMMDDHHMMSS,"%04u%02u%02u%02u%02u%02u",
Gbl.Now.Date.Year,Gbl.Now.Date.Month,Gbl.Now.Date.Day,
Gbl.Now.Time.Hour,Gbl.Now.Time.Minute,Gbl.Now.Time.Second);
snprintf (Gbl.Now.YYYYMMDDHHMMSS,sizeof (Gbl.Now.YYYYMMDDHHMMSS),
"%04u%02u%02u%02u%02u%02u",
Gbl.Now.Date.Year,Gbl.Now.Date.Month,Gbl.Now.Date.Day,
Gbl.Now.Time.Hour,Gbl.Now.Time.Minute,Gbl.Now.Time.Second);
/***** Compute what day was yesterday *****/
Dat_GetDateBefore (&Gbl.Now.Date,&Gbl.Yesterday);
@ -393,22 +395,25 @@ void Dat_ConvDateToDateStr (struct Date *Date,char StrDate[Cns_MAX_BYTES_DATE +
switch (Gbl.Prefs.DateFormat)
{
case Dat_FORMAT_YYYY_MM_DD:
sprintf (StrDate,"%04u-%02u-%02u",
Date->Year,
Date->Month,
Date->Day);
snprintf (StrDate,Cns_MAX_BYTES_DATE,
"%04u-%02u-%02u",
Date->Year,
Date->Month,
Date->Day);
break;
case Dat_FORMAT_DD_MONTH_YYYY:
sprintf (StrDate,"%u&nbsp;%s&nbsp;%04u",
Date->Day,
Txt_MONTHS_SMALL_SHORT[Date->Month - 1],
Date->Year);
snprintf (StrDate,Cns_MAX_BYTES_DATE,
"%u&nbsp;%s&nbsp;%04u",
Date->Day,
Txt_MONTHS_SMALL_SHORT[Date->Month - 1],
Date->Year);
break;
case Dat_FORMAT_MONTH_DD_YYYY:
sprintf (StrDate,"%s&nbsp;%u,&nbsp;%04u",
Txt_MONTHS_SMALL_SHORT[Date->Month - 1],
Date->Day,
Date->Year);
snprintf (StrDate,Cns_MAX_BYTES_DATE,
"%s&nbsp;%u,&nbsp;%04u",
Txt_MONTHS_SMALL_SHORT[Date->Month - 1],
Date->Day,
Date->Year);
break;
}
}
@ -776,13 +781,15 @@ void Dat_GetBrowserTimeZone (char BrowserTimeZone[Dat_MAX_BYTES_TIME_ZONE + 1])
/* Convert from minutes to +-hh:mm */
// BrowserTimeZone must have space for strings in +hh:mm format (6 chars + \0)
if (ClientUTCMinusLocal > 0)
sprintf (BrowserTimeZone,"-%02u:%02u",
(unsigned) ClientUTCMinusLocal / 60,
(unsigned) ClientUTCMinusLocal % 60);
snprintf (BrowserTimeZone,Dat_MAX_BYTES_TIME_ZONE,
"-%02u:%02u",
(unsigned) ClientUTCMinusLocal / 60,
(unsigned) ClientUTCMinusLocal % 60);
else // ClientUTCMinusLocal <= 0
sprintf (BrowserTimeZone,"+%02u:%02u",
(unsigned) (-ClientUTCMinusLocal) / 60,
(unsigned) (-ClientUTCMinusLocal) % 60);
snprintf (BrowserTimeZone,Dat_MAX_BYTES_TIME_ZONE,
"+%02u:%02u",
(unsigned) (-ClientUTCMinusLocal) / 60,
(unsigned) (-ClientUTCMinusLocal) % 60);
}
}

View File

@ -243,7 +243,9 @@ void Deg_DrawDegreeLogoAndNameWithLink (struct Degree *Deg,Act_Action_t Action,
Deg_PutParamDegCod (Deg->DegCod);
/***** Link to action *****/
sprintf (Gbl.Title,Txt_Go_to_X,Deg->FullName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
Deg->FullName);
Act_LinkFormSubmit (Gbl.Title,ClassLink,NULL);
/***** Draw degree logo *****/
@ -510,8 +512,9 @@ static void Deg_Configuration (bool PrintView)
/* Form to go to see courses of this degree */
Act_StartFormGoTo (ActSeeCrs);
Deg_PutParamDegCod (Gbl.CurrentDeg.Deg.DegCod);
sprintf (Gbl.Title,Txt_Courses_of_DEGREE_X,
Gbl.CurrentDeg.Deg.ShrtName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Courses_of_DEGREE_X,
Gbl.CurrentDeg.Deg.ShrtName);
Act_LinkFormSubmit (Gbl.Title,"DAT",NULL);
fprintf (Gbl.F.Out,"%u</a>",
Crs_GetNumCrssInDeg (Gbl.CurrentDeg.Deg.DegCod));
@ -1173,7 +1176,9 @@ static void Deg_ListDegrees (void)
unsigned NumDeg;
/***** Start box *****/
sprintf (Gbl.Title,Txt_Degrees_of_CENTRE_X,Gbl.CurrentCtr.Ctr.ShrtName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Degrees_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.ShrtName);
Box_StartBox (NULL,Gbl.Title,Deg_PutIconsListDegrees,
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
@ -1351,8 +1356,9 @@ void Deg_EditDegrees (void)
DT_GetListDegreeTypes (Sco_SCOPE_SYS,DT_ORDER_BY_DEGREE_TYPE);
/***** Start box *****/
sprintf (Gbl.Title,Txt_Degrees_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.FullName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Degrees_of_CENTRE_X,
Gbl.CurrentCtr.Ctr.FullName);
Box_StartBox (NULL,Gbl.Title,Deg_PutIconsEditingDegrees,
Hlp_CENTRE_Degrees,Box_NOT_CLOSABLE);
@ -1877,10 +1883,11 @@ void Deg_RemoveDegreeCompletely (long DegCod)
Brw_RemoveDegFilesFromDB (DegCod);
/***** Remove directories of the degree *****/
sprintf (PathDeg,"%s/%s/%02u/%u",
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_DEG,
(unsigned) (DegCod % 100),
(unsigned) DegCod);
snprintf (PathDeg,sizeof (PathDeg),
"%s/%s/%02u/%u",
Cfg_PATH_SWAD_PUBLIC,Cfg_FOLDER_DEG,
(unsigned) (DegCod % 100),
(unsigned) DegCod);
Fil_RemoveTree (PathDeg);
/***** Remove administrators of this degree *****/
@ -2288,7 +2295,9 @@ void Deg_ShowAlertAndButtonToGoToDeg (void)
if (Gbl.Degs.EditingDeg.DegCod != Gbl.CurrentDeg.Deg.DegCod)
{
/***** Alert with button to go to degree *****/
sprintf (Gbl.Title,Txt_Go_to_X,Gbl.Degs.EditingDeg.ShrtName);
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Go_to_X,
Gbl.Degs.EditingDeg.ShrtName);
Ale_ShowAlertAndButton (Gbl.Alert.Type,Gbl.Alert.Txt,
ActSeeCrs,NULL,NULL,Deg_PutParamGoToDeg,
Btn_CONFIRM_BUTTON,Gbl.Title);
@ -2580,9 +2589,10 @@ unsigned Deg_ListDegsFound (const char *Query)
{
/***** Start box and table *****/
/* Number of degrees found */
sprintf (Gbl.Title,"%u %s",
NumDegs,(NumDegs == 1) ? Txt_degree :
Txt_degrees);
snprintf (Gbl.Title,sizeof (Gbl.Title),
"%u %s",
NumDegs,(NumDegs == 1) ? Txt_degree :
Txt_degrees);
Box_StartBoxTable (NULL,Gbl.Title,NULL,
NULL,Box_NOT_CLOSABLE,2);

View File

@ -25,6 +25,8 @@
/*********************************** Headers *********************************/
/*****************************************************************************/
#define _GNU_SOURCE // For asprintf
#include <stdio.h> // For asprintf
#include <stdlib.h> // For exit, system, malloc, free, rand, etc.
#include <string.h> // For string functions
@ -2154,10 +2156,11 @@ void Enr_GetNotifEnrolmentRequest (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
Ntf_MAX_BYTES_SUMMARY);
if (GetContent)
if ((*ContentStr = (char *) malloc (256)))
/* Write desired role into content */
sprintf (*ContentStr,"%s", // TODO: Write more info in this content
Txt_ROLES_SINGUL_Abc[DesiredRole][UsrDat.Sex]);
/* Write desired role into content */
if (asprintf (ContentStr,
"%s", // TODO: Write more info in this content
Txt_ROLES_SINGUL_Abc[DesiredRole][UsrDat.Sex]) < 0)
Lay_ShowErrorAndExit ("Not enough memory to store string.");
/* Free memory used for user's data */
Usr_UsrDataDestructor (&UsrDat);