diff --git a/swad_changelog.h b/swad_changelog.h index 843272467..3db00ba25 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -103,11 +103,12 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.117 (2015/07/15)" +#define Log_PLATFORM_VERSION "SWAD 14.117.1 (2015/07/15)" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1 /* + Version 14.117.1: Jul 15, 2015 Fixed minor bug when showing user's photo. (184892 lines) Version 14.117: Jul 15, 2015 User's ID is no longer mandatory. (184885 lines) Version 14.116.1: Jul 14, 2015 Changes in some messages. (184850 lines) Version 14.116: Jul 13, 2015 New function createAccount in web service. (184849 lines) diff --git a/swad_photo.c b/swad_photo.c index 19a5035af..062d4e9ec 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -277,6 +277,7 @@ void Pho_ReqPhoto (const struct UsrData *UsrDat,bool PhotoExists,const char *Pho /***** Show current photo and help message *****/ fprintf (Gbl.F.Out,"" ""); + // if (PhotoExists) Pho_ShowUsrPhoto (UsrDat,PhotoURL,"PHOTO150x200",Pho_NO_ZOOM); Lay_ShowAlert (Lay_INFO,Txt_You_can_send_a_file_with_an_image_in_jpg_format_); fprintf (Gbl.F.Out,"" @@ -989,6 +990,7 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL, char SpecialFullName [3*(Usr_MAX_BYTES_NAME_SPEC_CHAR+1)+1]; char SpecialShortName[3*(Usr_MAX_BYTES_NAME_SPEC_CHAR+1)+6]; char SpecialSurnames [2*(Usr_MAX_BYTES_NAME_SPEC_CHAR+1)+1]; + bool PhotoExists; bool PutLinkToPublicProfile = !Gbl.InsideForm && // Only if not inside another form Act_Actions[Gbl.CurrentAct].BrowserWindow == Act_MAIN_WINDOW; // Only in main window bool PutZoomCode = PhotoURL && // Photo exists @@ -1011,7 +1013,11 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL, /***** Start image *****/ fprintf (Gbl.F.Out,"Surname1 ,row[2],sizeof (UsrDat->Surname1 )-1); - strncpy (UsrDat->Surname2 ,row[3],sizeof (UsrDat->Surname2 )-1); - strncpy (UsrDat->FirstName,row[4],sizeof (UsrDat->FirstName)-1); + strncpy (UsrDat->Surname1 ,row[2],sizeof (UsrDat->Surname1 ) - 1); + UsrDat->Surname1 [sizeof (UsrDat->Surname1 ) - 1] = '\0'; + strncpy (UsrDat->Surname2 ,row[3],sizeof (UsrDat->Surname2 ) - 1); + UsrDat->Surname2 [sizeof (UsrDat->Surname2 ) - 1] = '\0'; + strncpy (UsrDat->FirstName,row[4],sizeof (UsrDat->FirstName) - 1); + UsrDat->FirstName[sizeof (UsrDat->FirstName) - 1] = '\0'; /* Get sex */ UsrDat->Sex = Usr_GetSexFromStr (row[5]); @@ -473,7 +476,8 @@ void Usr_GetUsrDataFromUsrCod (struct UsrData *UsrDat) } /* Get rest of data */ - strncpy (UsrDat->Photo,row[10],sizeof (UsrDat->Photo)-1); + strncpy (UsrDat->Photo,row[10],sizeof (UsrDat->Photo) - 1); + UsrDat->Photo[sizeof (UsrDat->Photo) - 1] = '\0'; UsrDat->PhotoVisibility = Pri_GetVisibilityFromStr (row[11]); UsrDat->ProfileVisibility = Pri_GetVisibilityFromStr (row[12]); UsrDat->CtyCod = Str_ConvertStrCodToLongCod (row[13]); @@ -482,14 +486,21 @@ void Usr_GetUsrDataFromUsrCod (struct UsrData *UsrDat) UsrDat->Tch.DptCod = Str_ConvertStrCodToLongCod (row[16]); UsrDat->Tch.CtrCod = Str_ConvertStrCodToLongCod (row[17]); - strncpy (UsrDat->Tch.Office ,row[18],sizeof (UsrDat->Tch.Office )-1); - strncpy (UsrDat->Tch.OfficePhone,row[19],sizeof (UsrDat->Tch.OfficePhone)-1); + strncpy (UsrDat->Tch.Office ,row[18],sizeof (UsrDat->Tch.Office ) - 1); + UsrDat->Tch.Office [sizeof (UsrDat->Tch.Office ) - 1] = '\0'; + strncpy (UsrDat->Tch.OfficePhone,row[19],sizeof (UsrDat->Tch.OfficePhone) - 1); + UsrDat->Tch.OfficePhone[sizeof (UsrDat->Tch.OfficePhone) - 1] = '\0'; - strncpy (UsrDat->LocalAddress ,row[20],sizeof (UsrDat->LocalAddress )-1); - strncpy (UsrDat->LocalPhone ,row[21],sizeof (UsrDat->LocalPhone )-1); - strncpy (UsrDat->FamilyAddress ,row[22],sizeof (UsrDat->FamilyAddress )-1); - strncpy (UsrDat->FamilyPhone ,row[23],sizeof (UsrDat->FamilyPhone )-1); - strncpy (UsrDat->OriginPlace ,row[24],sizeof (UsrDat->OriginPlace )-1); + strncpy (UsrDat->LocalAddress ,row[20],sizeof (UsrDat->LocalAddress ) - 1); + UsrDat->LocalAddress [sizeof (UsrDat->LocalAddress ) - 1] = '\0'; + strncpy (UsrDat->LocalPhone ,row[21],sizeof (UsrDat->LocalPhone ) - 1); + UsrDat->LocalPhone [sizeof (UsrDat->LocalPhone ) - 1] = '\0'; + strncpy (UsrDat->FamilyAddress,row[22],sizeof (UsrDat->FamilyAddress) - 1); + UsrDat->FamilyAddress[sizeof (UsrDat->FamilyAddress) - 1] = '\0'; + strncpy (UsrDat->FamilyPhone ,row[23],sizeof (UsrDat->FamilyPhone ) - 1); + UsrDat->FamilyPhone [sizeof (UsrDat->FamilyPhone ) - 1] = '\0'; + strncpy (UsrDat->OriginPlace ,row[24],sizeof (UsrDat->OriginPlace ) - 1); + UsrDat->OriginPlace [sizeof (UsrDat->OriginPlace ) - 1] = '\0'; strcpy (StrBirthday, row[25] ? row[25] : "0000-00-00"); @@ -522,31 +533,18 @@ void Usr_GetUsrDataFromUsrCod (struct UsrData *UsrDat) if (UsrDat->Prefs.EmailNtfEvents >= (1 << Ntf_NUM_NOTIFY_EVENTS)) // Maximum binary value for NotifyEvents is 000...0011...11 UsrDat->Prefs.EmailNtfEvents = 0; - UsrDat->Surname1[sizeof (UsrDat->Surname1)-1] = '\0'; - UsrDat->Surname2[sizeof (UsrDat->Surname2)-1] = '\0'; - UsrDat->FirstName[sizeof (UsrDat->FirstName)-1] = '\0'; Str_ConvertToTitleType (UsrDat->Surname1 ); Str_ConvertToTitleType (UsrDat->Surname2 ); Str_ConvertToTitleType (UsrDat->FirstName); /* Create full name using FirstName, Surname1 and Surname2 */ Usr_BuildFullName (UsrDat); - UsrDat->Photo[sizeof (UsrDat->Photo)-1] = '\0'; - - UsrDat->OriginPlace [sizeof (UsrDat->OriginPlace )-1] = '\0'; if (sscanf (StrBirthday,"%u-%u-%u", &(UsrDat->Birthday.Year), &(UsrDat->Birthday.Month), &(UsrDat->Birthday.Day)) != 3) Lay_ShowErrorAndExit ("Wrong date."); Dat_ConvDateToDateStr (&(UsrDat->Birthday),UsrDat->StrBirthday); - UsrDat->LocalAddress [sizeof (UsrDat->LocalAddress )-1] = '\0'; - UsrDat->LocalPhone [sizeof (UsrDat->LocalPhone )-1] = '\0'; - UsrDat->FamilyAddress[sizeof (UsrDat->FamilyAddress)-1] = '\0'; - UsrDat->FamilyPhone [sizeof (UsrDat->FamilyPhone )-1] = '\0'; - - UsrDat->Tch.Office [sizeof (UsrDat->Tch.Office )-1] = '\0'; - UsrDat->Tch.OfficePhone[sizeof (UsrDat->Tch.OfficePhone)-1] = '\0'; /***** Free structure that stores the query result *****/ DB_FreeMySQLResult (&mysql_res);